From 5b34ac63e19599b0a2494e57cbd8761bd9737e03 Mon Sep 17 00:00:00 2001 From: shevernitskiy Date: Fri, 1 Sep 2023 18:31:19 +0300 Subject: [PATCH] fix for gcc --- library/modules/Textures.cpp | 44 +++++++++++++++++++----------------- 1 file changed, 23 insertions(+), 21 deletions(-) diff --git a/library/modules/Textures.cpp b/library/modules/Textures.cpp index e52445f18..bdb1e815a 100644 --- a/library/modules/Textures.cpp +++ b/library/modules/Textures.cpp @@ -29,6 +29,27 @@ namespace DFHack { DBG_DECLARE(core, textures, DebugCategory::LINFO); } +struct ReservedRange { + void init(int32_t start) { + this->start = start; + this->end = start + ReservedRange::size; + this->current = start; + } + long get_new_texpos() { + if (this->current == this->end) + return -1; + current = this->current; + this->current++; + return current; + } + + static const int32_t size = 10000; // size of reserved texpos buffer + int32_t start = -1; + int32_t end = -1; + long current = -1; +}; + +static ReservedRange reserved_range{}; static std::unordered_map g_handle_to_texpos; static std::unordered_map g_handle_to_reserved_texpos; static std::unordered_map g_handle_to_surface; @@ -36,25 +57,6 @@ static std::unordered_map> g_tileset_to_h static std::mutex g_adding_mutex; static std::atomic loading_state = false; -struct Reserved { - static void init(int32_t start) { - reserved_range.start = start; - reserved_range.end = start + Reserved::size; - reserved_range.current = start; - } - static long get_new_texpos() { - if (reserved_range.current == reserved_range.end) - return -1; - current = reserved_range.current; - reserved_range.current++; - return current; - } - static const int32_t size = 10000; // size of reserved texpos buffer - inline static int32_t start = -1; - inline static int32_t end = -1; - inline static long current = -1; -} reserved_range; - // Converts an arbitrary Surface to something like the display format // (32-bit RGBA), and converts magenta to transparency if convert_magenta is set // and the source surface didn't already have an alpha channel. @@ -381,10 +383,10 @@ static void reserve_static_range() { reserved_range.init(enabler->textures.init_texture_size); auto dummy_surface = DFSDL_CreateRGBSurfaceWithFormat(0, 0, 0, 32, SDL_PixelFormatEnum::SDL_PIXELFORMAT_RGBA32); - for (int32_t i = 0; i < Reserved::size; i++) { + for (int32_t i = 0; i < ReservedRange::size; i++) { add_texture(dummy_surface); } - enabler->textures.init_texture_size += Reserved::size; + enabler->textures.init_texture_size += ReservedRange::size; } void Textures::init(color_ostream& out) {