diff options
author | Juan Linietsky <reduzio@gmail.com> | 2017-05-17 07:36:47 -0300 |
---|---|---|
committer | Juan Linietsky <reduzio@gmail.com> | 2017-05-17 07:37:45 -0300 |
commit | 98a329670227c726a5d7a196e5cba8dbdd54301b (patch) | |
tree | 7346f7a3e38eb35b784ac1a68a227d07cc8881b4 /platform | |
parent | d801ff2b3db2de105c1b36a74ce116e360143d4e (diff) |
Removal of Image from Variant, converted to a Resource.
Diffstat (limited to 'platform')
-rw-r--r-- | platform/android/export/export.cpp | 2 | ||||
-rw-r--r-- | platform/javascript/export/export.cpp | 2 | ||||
-rw-r--r-- | platform/osx/os_osx.h | 2 | ||||
-rw-r--r-- | platform/osx/os_osx.mm | 19 | ||||
-rw-r--r-- | platform/uwp/os_uwp.cpp | 2 | ||||
-rw-r--r-- | platform/uwp/os_uwp.h | 2 | ||||
-rw-r--r-- | platform/windows/export/export.cpp | 2 | ||||
-rw-r--r-- | platform/windows/os_windows.cpp | 15 | ||||
-rw-r--r-- | platform/windows/os_windows.h | 2 | ||||
-rw-r--r-- | platform/x11/export/export.cpp | 2 | ||||
-rw-r--r-- | platform/x11/os_x11.cpp | 14 | ||||
-rw-r--r-- | platform/x11/os_x11.h | 2 |
12 files changed, 34 insertions, 32 deletions
diff --git a/platform/android/export/export.cpp b/platform/android/export/export.cpp index 72d665329e..84fc4f10bf 100644 --- a/platform/android/export/export.cpp +++ b/platform/android/export/export.cpp @@ -3523,7 +3523,7 @@ public: EditorExportAndroid() { - Image img(_android_logo); + Ref<Image> img = memnew(Image(_android_logo)); logo = Ref<ImageTexture>(memnew(ImageTexture)); logo->create_from_image(img); diff --git a/platform/javascript/export/export.cpp b/platform/javascript/export/export.cpp index 1a3c5f3e8f..ea388072c5 100644 --- a/platform/javascript/export/export.cpp +++ b/platform/javascript/export/export.cpp @@ -316,7 +316,7 @@ Error EditorExportPlatformJavaScript::run(const Ref<EditorExportPreset> &p_prese EditorExportPlatformJavaScript::EditorExportPlatformJavaScript() { - Image img(_javascript_logo); + Ref<Image> img = memnew(Image(_javascript_logo)); logo.instance(); logo->create_from_image(img); } diff --git a/platform/osx/os_osx.h b/platform/osx/os_osx.h index 2ecc379a7f..ff02bf0794 100644 --- a/platform/osx/os_osx.h +++ b/platform/osx/os_osx.h @@ -151,7 +151,7 @@ public: virtual Size2 get_window_size() const; - virtual void set_icon(const Image &p_icon); + virtual void set_icon(const Ref<Image> &p_icon); virtual MainLoop *get_main_loop() const; diff --git a/platform/osx/os_osx.mm b/platform/osx/os_osx.mm index 7a914a88fb..065506c612 100644 --- a/platform/osx/os_osx.mm +++ b/platform/osx/os_osx.mm @@ -1227,26 +1227,27 @@ void OS_OSX::set_window_title(const String &p_title) { [window_object setTitle:[NSString stringWithUTF8String:p_title.utf8().get_data()]]; } -void OS_OSX::set_icon(const Image &p_icon) { +void OS_OSX::set_icon(const Ref<Image> &p_icon) { - Image img = p_icon; - img.convert(Image::FORMAT_RGBA8); + Ref<Image> img = p_icon; + img = img->duplicate(); + img->convert(Image::FORMAT_RGBA8); NSBitmapImageRep *imgrep = [[[NSBitmapImageRep alloc] initWithBitmapDataPlanes:NULL - pixelsWide:p_icon.get_width() - pixelsHigh:p_icon.get_height() + pixelsWide:img->get_width() + pixelsHigh:img->get_height() bitsPerSample:8 samplesPerPixel:4 hasAlpha:YES isPlanar:NO colorSpaceName:NSDeviceRGBColorSpace - bytesPerRow:p_icon.get_width() * 4 + bytesPerRow:img->get_width() * 4 bitsPerPixel:32] autorelease]; ERR_FAIL_COND(imgrep == nil); uint8_t *pixels = [imgrep bitmapData]; - int len = img.get_width() * img.get_height(); - PoolVector<uint8_t> data = img.get_data(); + int len = img->get_width() * img->get_height(); + PoolVector<uint8_t> data = img->get_data(); PoolVector<uint8_t>::Read r = data.read(); /* Premultiply the alpha channel */ @@ -1258,7 +1259,7 @@ void OS_OSX::set_icon(const Image &p_icon) { pixels[i * 4 + 3] = alpha; } - NSImage *nsimg = [[[NSImage alloc] initWithSize:NSMakeSize(img.get_width(), img.get_height())] autorelease]; + NSImage *nsimg = [[[NSImage alloc] initWithSize:NSMakeSize(img->get_width(), img->get_height())] autorelease]; ERR_FAIL_COND(nsimg == nil); [nsimg addRepresentation:imgrep]; diff --git a/platform/uwp/os_uwp.cpp b/platform/uwp/os_uwp.cpp index 818b827e83..c68b2ffa33 100644 --- a/platform/uwp/os_uwp.cpp +++ b/platform/uwp/os_uwp.cpp @@ -746,7 +746,7 @@ String OSUWP::get_executable_path() const { return ""; } -void OSUWP::set_icon(const Image &p_icon) { +void OSUWP::set_icon(const Ref<Image> &p_icon) { } bool OSUWP::has_environment(const String &p_var) const { diff --git a/platform/uwp/os_uwp.h b/platform/uwp/os_uwp.h index 7d9e681da1..22602e4564 100644 --- a/platform/uwp/os_uwp.h +++ b/platform/uwp/os_uwp.h @@ -227,7 +227,7 @@ public: virtual String get_clipboard() const; void set_cursor_shape(CursorShape p_shape); - void set_icon(const Image &p_icon); + void set_icon(const Ref<Image> &p_icon); virtual String get_executable_path() const; diff --git a/platform/windows/export/export.cpp b/platform/windows/export/export.cpp index 2d11bfe4d8..3802e7e784 100644 --- a/platform/windows/export/export.cpp +++ b/platform/windows/export/export.cpp @@ -35,7 +35,7 @@ void register_windows_exporter() { Ref<EditorExportPlatformPC> platform; platform.instance(); - Image img(_windows_logo); + Ref<Image> img = memnew(Image(_windows_logo)); Ref<ImageTexture> logo; logo.instance(); logo->create_from_image(img); diff --git a/platform/windows/os_windows.cpp b/platform/windows/os_windows.cpp index 9dee2da21e..42597f79c8 100644 --- a/platform/windows/os_windows.cpp +++ b/platform/windows/os_windows.cpp @@ -1996,13 +1996,14 @@ String OS_Windows::get_executable_path() const { return s; } -void OS_Windows::set_icon(const Image &p_icon) { +void OS_Windows::set_icon(const Ref<Image> &p_icon) { - Image icon = p_icon; - if (icon.get_format() != Image::FORMAT_RGBA8) - icon.convert(Image::FORMAT_RGBA8); - int w = icon.get_width(); - int h = icon.get_height(); + ERR_FAIL_COND(!p_icon.is_valid()); + Ref<Image> icon = p_icon->duplicate(); + if (icon->get_format() != Image::FORMAT_RGBA8) + icon->convert(Image::FORMAT_RGBA8); + int w = icon->get_width(); + int h = icon->get_height(); /* Create temporary bitmap buffer */ int icon_len = 40 + h * w * 4; @@ -2023,7 +2024,7 @@ void OS_Windows::set_icon(const Image &p_icon) { encode_uint32(0, &icon_bmp[36]); uint8_t *wr = &icon_bmp[40]; - PoolVector<uint8_t>::Read r = icon.get_data().read(); + PoolVector<uint8_t>::Read r = icon->get_data().read(); for (int i = 0; i < h; i++) { diff --git a/platform/windows/os_windows.h b/platform/windows/os_windows.h index 87eceafa02..4dd05928df 100644 --- a/platform/windows/os_windows.h +++ b/platform/windows/os_windows.h @@ -254,7 +254,7 @@ public: virtual String get_clipboard() const; void set_cursor_shape(CursorShape p_shape); - void set_icon(const Image &p_icon); + void set_icon(const Ref<Image> &p_icon); virtual String get_executable_path() const; diff --git a/platform/x11/export/export.cpp b/platform/x11/export/export.cpp index b9ded188bf..d6bad95e5b 100644 --- a/platform/x11/export/export.cpp +++ b/platform/x11/export/export.cpp @@ -37,7 +37,7 @@ void register_x11_exporter() { Ref<EditorExportPlatformPC> platform; platform.instance(); - Image img(_x11_logo); + Ref<Image> img = memnew(Image(_x11_logo)); Ref<ImageTexture> logo; logo.instance(); logo->create_from_image(img); diff --git a/platform/x11/os_x11.cpp b/platform/x11/os_x11.cpp index 2e2fe3ba8a..59ac1fed96 100644 --- a/platform/x11/os_x11.cpp +++ b/platform/x11/os_x11.cpp @@ -1857,15 +1857,15 @@ void OS_X11::alert(const String &p_alert, const String &p_title) { execute("/usr/bin/xmessage", args, true); } -void OS_X11::set_icon(const Image &p_icon) { +void OS_X11::set_icon(const Ref<Image> &p_icon) { Atom net_wm_icon = XInternAtom(x11_display, "_NET_WM_ICON", False); - if (!p_icon.empty()) { - Image img = p_icon; - img.convert(Image::FORMAT_RGBA8); + if (p_icon.is_valid()) { + Ref<Image> img = p_icon->duplicate(); + img->convert(Image::FORMAT_RGBA8); - int w = img.get_width(); - int h = img.get_height(); + int w = img->get_width(); + int h = img->get_height(); // We're using long to have wordsize (32Bit build -> 32 Bits, 64 Bit build -> 64 Bits Vector<long> pd; @@ -1875,7 +1875,7 @@ void OS_X11::set_icon(const Image &p_icon) { pd[0] = w; pd[1] = h; - PoolVector<uint8_t>::Read r = img.get_data().read(); + PoolVector<uint8_t>::Read r = img->get_data().read(); long *wr = &pd[2]; uint8_t const *pr = r.ptr(); diff --git a/platform/x11/os_x11.h b/platform/x11/os_x11.h index 44994e40ec..7f01f9c617 100644 --- a/platform/x11/os_x11.h +++ b/platform/x11/os_x11.h @@ -206,7 +206,7 @@ public: virtual int get_mouse_button_state() const; virtual void set_window_title(const String &p_title); - virtual void set_icon(const Image &p_icon); + virtual void set_icon(const Ref<Image> &p_icon); virtual MainLoop *get_main_loop() const; |