From 344016aeab5f24edcb30fdcf23701ba12bc226a9 Mon Sep 17 00:00:00 2001 From: Tom Black Date: Wed, 26 Sep 2018 20:01:42 -0700 Subject: Add ability to set the window icon --- ext/ruby2d/ruby2d.c | 8 +++++++- lib/ruby2d/window.rb | 1 + test/media | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/ext/ruby2d/ruby2d.c b/ext/ruby2d/ruby2d.c index 1dcafa1..cf89990 100644 --- a/ext/ruby2d/ruby2d.c +++ b/ext/ruby2d/ruby2d.c @@ -965,9 +965,14 @@ static R_VAL ruby2d_window_ext_show(R_VAL self) { int width = NUM2INT(r_iv_get(self, "@width")); int height = NUM2INT(r_iv_get(self, "@height")); int fps_cap = NUM2INT(r_iv_get(self, "@fps_cap")); - int flags = 0; + + // Get the window icon + char *icon = NULL; + R_VAL iv_icon = r_iv_get(self, "@icon"); + if (r_test(iv_icon)) icon = RSTRING_PTR(iv_icon); // Get window flags + int flags = 0; if (r_test(r_iv_get(self, "@resizable"))) { flags = flags | S2D_RESIZABLE; } @@ -998,6 +1003,7 @@ static R_VAL ruby2d_window_ext_show(R_VAL self) { window->viewport.width = viewport_width; window->viewport.height = viewport_height; window->fps_cap = fps_cap; + window->icon = icon; window->on_key = on_key; window->on_mouse = on_mouse; window->on_controller = on_controller; diff --git a/lib/ruby2d/window.rb b/lib/ruby2d/window.rb index fee0893..5b0b7cb 100644 --- a/lib/ruby2d/window.rb +++ b/lib/ruby2d/window.rb @@ -189,6 +189,7 @@ module Ruby2D if Color.is_valid? opts[:background] @background = Color.new(opts[:background]) end + @icon = opts[:icon] || @icon @width = opts[:width] || @width @height = opts[:height] || @height @fps_cap = opts[:fps_cap] || @fps_cap diff --git a/test/media b/test/media index 44ae8c4..728a7d8 160000 --- a/test/media +++ b/test/media @@ -1 +1 @@ -Subproject commit 44ae8c4a971e3ba6520ad9953fb4dd12eb36d2c7 +Subproject commit 728a7d8499c470baa52f93ed38a4ed1a62bf000d -- cgit v1.2.3