diff --git a/imgui.h b/imgui.h index 44f48c263..14396377e 100644 --- a/imgui.h +++ b/imgui.h @@ -343,6 +343,7 @@ struct ImTextureRef ImTextureRef(void* tex_id) { memset(this, 0, sizeof(*this)); _TexID = (ImTextureID)(size_t)tex_id; } // For legacy backends casting to ImTextureID //inline operator intptr_t() const { return (intptr_t)_TexID; } // For legacy backends casting to ImTextureID #endif + inline ImTextureID GetTexID() const; // == (_TexData ? _TexData->TexID : _TexID) // Implemented below in the file. // Members ImTextureData* _TexData; // Texture, generally owned by a ImFontAtlas @@ -3072,7 +3073,7 @@ struct ImDrawCmd // Since 1.83: returns ImTextureID associated with this draw call. Warning: DO NOT assume this is always same as 'TextureId' (we will change this function for an upcoming feature) // Since 1.92: removed ImDrawCmd::TextureId field, the getter function must be used! // If for some reason you non C++ tech stack makes it difficult to call it, we may decide to separate the fields in ImDrawCmd. - inline ImTextureID GetTexID() const; + inline ImTextureID GetTexID() const; // == (TexRef._TexData ? TexRef._TexData->TexID : TexRef._TexID }; // Vertex layout @@ -3735,7 +3736,12 @@ struct ImFont IMGUI_API bool IsGlyphRangeUnused(unsigned int c_begin, unsigned int c_last); }; -// Added indirection to avoid patching ImDrawCmd after texture updates. +// We added an indirection to avoid patching ImDrawCmd after texture updates but this could be a solution too. +inline ImTextureID ImTextureRef::GetTexID() const +{ + return _TexData ? _TexData->TexID : _TexID; +} + inline ImTextureID ImDrawCmd::GetTexID() const { // If you are getting this assert: A renderer backend with support for ImGuiBackendFlags_RendererHasTextures (1.92)