From 8f7926039b960ea7580721a1ddc16c609db25320 Mon Sep 17 00:00:00 2001 From: Kevin Harrison Date: Fri, 14 Dec 2018 14:46:02 -0500 Subject: [PATCH] Add Quad support for images --- example/skin.lua | 28 ++++++++----- example/skin/button.png | Bin 2428 -> 4281 bytes example/skin/button_active.png | Bin 2368 -> 0 bytes example/skin/button_hover.png | Bin 2414 -> 0 bytes example/skin/checkbox.png | Bin 0 -> 2441 bytes example/skin/checkbox_false.png | Bin 1198 -> 0 bytes example/skin/checkbox_true.png | Bin 2970 -> 0 bytes src/nuklear_love.c | 69 ++++++++++++++++++++------------ 8 files changed, 61 insertions(+), 36 deletions(-) delete mode 100644 example/skin/button_active.png delete mode 100644 example/skin/button_hover.png create mode 100644 example/skin/checkbox.png delete mode 100644 example/skin/checkbox_false.png delete mode 100644 example/skin/checkbox_true.png diff --git a/example/skin.lua b/example/skin.lua index 968e0a8..77827b4 100644 --- a/example/skin.lua +++ b/example/skin.lua @@ -1,28 +1,34 @@ -- Basic skinning example. local windowHeader = love.graphics.newImage 'skin/window_header.png' -local checkboxSkin = love.graphics.newImage 'skin/checkbox_false.png' -local checkboxCheck = love.graphics.newImage 'skin/checkbox_true.png' +local windowBody = love.graphics.newImage 'skin/window.png' +local checkboxTexture = love.graphics.newImage 'skin/checkbox.png' +local checkboxOff = {checkboxTexture, love.graphics.newQuad(0, 0, 51, 55, 58, 115)} +local checkboxOn = {checkboxTexture, love.graphics.newQuad(0, 55, 58, 60, 58, 115)} +local buttonTexture = love.graphics.newImage 'skin/button.png' +local buttonNormal = {buttonTexture, love.graphics.newQuad(0, 0, 69, 52, 69, 156)} +local buttonActive = {buttonTexture, love.graphics.newQuad(0, 52, 69, 52, 69, 156)} +local buttonHover = {buttonTexture, love.graphics.newQuad(0, 104, 69, 52, 69, 156)} local style = { ['text'] = { ['color'] = '#000000' }, ['button'] = { - ['normal'] = love.graphics.newImage 'skin/button.png', - ['hover'] = love.graphics.newImage 'skin/button_hover.png', - ['active'] = love.graphics.newImage 'skin/button_active.png', + ['normal'] = buttonNormal, + ['hover'] = buttonHover, + ['active'] = buttonActive, ['text background'] = '#00000000', ['text normal'] = '#000000', ['text hover'] = '#000000', ['text active'] = '#ffffff' }, ['checkbox'] = { - ['normal'] = checkboxSkin, - ['hover'] = checkboxSkin, - ['active'] = checkboxSkin, - ['cursor normal'] = checkboxCheck, - ['cursor hover'] = checkboxCheck, + ['normal'] = checkboxOff, + ['hover'] = checkboxOff, + ['active'] = checkboxOff, + ['cursor normal'] = checkboxOn, + ['cursor hover'] = checkboxOn, ['text normal'] = '#000000', ['text hover'] = '#000000', ['text active'] = '#000000', @@ -38,7 +44,7 @@ local style = { ['label active'] = '#000000', ['label padding'] = {x = 10, y = 8} }, - ['fixed background'] = love.graphics.newImage 'skin/window.png', + ['fixed background'] = windowBody, ['background'] = '#d3ceaa' } } diff --git a/example/skin/button.png b/example/skin/button.png index 0c4783dfb72eb4546b06d6160a6b9ff093478ffc..d0381a10e428c2670342a6c5cb438dd32cfc7197 100644 GIT binary patch delta 4278 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 YBp>1-=npal+yDRo07*qoM6N<$f-DV7=>Px# literal 2428 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 diff --git a/example/skin/checkbox.png b/example/skin/checkbox.png new file mode 100644 index 0000000000000000000000000000000000000000..fd04d56d47a090327de29a5002802734b4e3926d GIT binary patch literal 2441 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 Hu0mjfcgnO; literal 0 HcmV?d00001 diff --git a/example/skin/checkbox_false.png b/example/skin/checkbox_false.png deleted file mode 100644 index df85f65883a5b93a54b2e2a251e9da1996a37962..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1198 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 = nk_handle_id(ref); - image->w = width; - image->h = height; - image->region[0] = 0; - image->region[1] = 0; - image->region[2] = width; - image->region[3] = height; - lua_pop(L, 3); + lua_pop(L, 2); } static int nk_love_is_hex(char c) @@ -847,20 +865,21 @@ static void nk_love_draw_image(int x, int y, unsigned int w, unsigned int h, lua_getfield(L, -1, "draw"); nk_love_pushregistry("image"); lua_rawgeti(L, -1, image.handle.id); + lua_rawgeti(L, -1, 1); + lua_replace(L, -3); + lua_rawgeti(L, -1, 2); lua_replace(L, -2); - lua_getfield(L, -3, "newQuad"); - lua_pushnumber(L, image.region[0]); - lua_pushnumber(L, image.region[1]); - lua_pushnumber(L, image.region[2]); - lua_pushnumber(L, image.region[3]); - lua_pushnumber(L, image.w); - lua_pushnumber(L, image.h); - lua_call(L, 6, 1); lua_pushnumber(L, x); lua_pushnumber(L, y); lua_pushnumber(L, 0); - lua_pushnumber(L, (double) w / image.region[2]); - lua_pushnumber(L, (double) h / image.region[3]); + lua_getfield(L, -4, "getViewport"); + lua_pushvalue(L, -5); + lua_call(L, 1, 4); + double viewportWidth = lua_tonumber(L, -2); + double viewportHeight = lua_tonumber(L, -1); + lua_pop(L, 4); + lua_pushnumber(L, (double) w / viewportWidth); + lua_pushnumber(L, (double) h / viewportHeight); lua_call(L, 7, 0); lua_pop(L, 1); }