From 7090a8601d6441b94e159c46bbc5a8e360176586 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Madar=C3=A1sz?= Date: Sat, 15 May 2021 20:00:57 +0200 Subject: [PATCH] make texed resizable --- art/demo.ecotex | Bin 146 -> 157 bytes art/gen/demo.ecotex.h | 1856 +++++++++++++++++++----------- art/gen/demo.ecotex.png | Bin 9273 -> 9839 bytes code/game/source/editors/texed.c | 49 +- 4 files changed, 1187 insertions(+), 718 deletions(-) diff --git a/art/demo.ecotex b/art/demo.ecotex index 192be5c1cdcfdd8b143632a1176958e0caa3e396..179aa5a21815e32ea5c098e1b69e908f06b54135 100644 GIT binary patch delta 72 zcmbQlIG0h1iRF|-bD!ljhC`DVnVA65iZm#gXdouWbZF{AgM|iA8AE3iGfQVTw~1~( O+-yMg76w4H&;S6ak{Nvf delta 58 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 T?e=N1kPKL|aCvZLpfKZqxTOY# literal 9273 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 diff --git a/code/game/source/editors/texed.c b/code/game/source/editors/texed.c index f90ab0d..37be880 100644 --- a/code/game/source/editors/texed.c +++ b/code/game/source/editors/texed.c @@ -19,6 +19,9 @@ static uint16_t screenWidth = 1280; static uint16_t screenHeight = 720; static float zoom = 4.0f; +static Texture2D checker_tex; +static uint16_t old_screen_w; +static uint16_t old_screen_h; #define TD_DEFAULT_IMG_WIDTH 64 #define TD_DEFAULT_IMG_HEIGHT 64 @@ -128,33 +131,39 @@ Rectangle aabb2_ray(zpl_aabb2 r) { void texed_run(void) { InitWindow(screenWidth, screenHeight, "eco2d - texture editor"); + SetWindowState(FLAG_WINDOW_RESIZABLE); SetTargetFPS(60); texed_new(TD_DEFAULT_IMG_WIDTH, TD_DEFAULT_IMG_HEIGHT); GuiSetStyle(TEXTBOX, TEXT_COLOR_NORMAL, ColorToInt(RAYWHITE)); - zpl_aabb2 screen = { - .min = (zpl_vec2) {.x = 0.0f, .y = 0.0f}, - .max = (zpl_vec2) {.x = screenWidth, .y = screenHeight}, - }; - - zpl_aabb2 topbar = zpl_aabb2_cut_top(&screen, 25.0f); - zpl_aabb2 oplist_pane = zpl_aabb2_cut_right(&screen, screenWidth / 2.0f); - zpl_aabb2 preview_window = zpl_aabb2_cut_top(&screen, (screen.max.y-screen.min.y) / 2.0f); - zpl_aabb2 property_pane = screen; - - // NOTE(zaklaus): contract all panes for a clean UI separation - oplist_pane = zpl_aabb2_contract(&oplist_pane, TD_UI_PADDING); - preview_window = zpl_aabb2_contract(&preview_window, TD_UI_PADDING); - property_pane = zpl_aabb2_contract(&property_pane, TD_UI_PADDING); - - Rectangle preview_rect = aabb2_ray(preview_window); - Image checkerboard = GenImageChecked(preview_rect.width, preview_rect.height, 16, 16, BLACK, ColorAlpha(GRAY, 0.2f)); - Texture2D checker_tex = LoadTextureFromImage(checkerboard); - UnloadImage(checkerboard); - while (!WindowShouldClose()) { + zpl_aabb2 screen = { + .min = (zpl_vec2) {.x = 0.0f, .y = 0.0f}, + .max = (zpl_vec2) {.x = GetScreenWidth(), .y = GetScreenHeight()}, + }; + + zpl_aabb2 topbar = zpl_aabb2_cut_top(&screen, 25.0f); + zpl_aabb2 oplist_pane = zpl_aabb2_cut_right(&screen, screenWidth / 2.0f); + zpl_aabb2 preview_window = zpl_aabb2_cut_top(&screen, (screen.max.y-screen.min.y) / 2.0f); + zpl_aabb2 property_pane = screen; + + // NOTE(zaklaus): contract all panes for a clean UI separation + oplist_pane = zpl_aabb2_contract(&oplist_pane, TD_UI_PADDING); + preview_window = zpl_aabb2_contract(&preview_window, TD_UI_PADDING); + property_pane = zpl_aabb2_contract(&property_pane, TD_UI_PADDING); + + Rectangle preview_rect = aabb2_ray(preview_window); + + if (old_screen_w != GetScreenWidth() || old_screen_h != GetScreenHeight()) { + old_screen_w = GetScreenWidth(); + old_screen_h = GetScreenHeight(); + Image checkerboard = GenImageChecked(preview_rect.width, preview_rect.height, 16, 16, BLACK, ColorAlpha(GRAY, 0.2f)); + checker_tex = LoadTextureFromImage(checkerboard); + UnloadImage(checkerboard); + } + BeginDrawing(); ClearBackground(GetColor(0x222034)); {