فهرست منبع

Fonts: detect if backend assign to texture on creation but doesn't update Status.

ocornut 5 ماه پیش
والد
کامیت
cb4c03756a
1فایلهای تغییر یافته به همراه3 افزوده شده و 1 حذف شده
  1. 3 1
      imgui_draw.cpp

+ 3 - 1
imgui_draw.cpp

@@ -2765,10 +2765,12 @@ void ImFontAtlasUpdateNewFrame(ImFontAtlas* atlas, int frame_count)
             tex->UpdateRect.x = tex->UpdateRect.y = (unsigned short)~0;
             tex->UpdateRect.x = tex->UpdateRect.y = (unsigned short)~0;
             tex->UpdateRect.w = tex->UpdateRect.h = 0;
             tex->UpdateRect.w = tex->UpdateRect.h = 0;
         }
         }
+        if (tex->Status == ImTextureStatus_WantCreate && atlas->RendererHasTextures)
+            IM_ASSERT(tex->TexID == ImTextureID_Invalid && tex->BackendUserData == NULL && "Backend set texture's TexID/BackendUserData but did not update Status to OK.");
 
 
         if (tex->Status == ImTextureStatus_Destroyed)
         if (tex->Status == ImTextureStatus_Destroyed)
         {
         {
-            IM_ASSERT(tex->TexID == ImTextureID_Invalid && tex->BackendUserData == NULL);
+            IM_ASSERT(tex->TexID == ImTextureID_Invalid && tex->BackendUserData == NULL && "Backend set texture Status to Destroyed but did not clear TexID/BackendUserData!");
             if (tex->WantDestroyNextFrame)
             if (tex->WantDestroyNextFrame)
                 remove_from_list = true; // Destroy was scheduled by us
                 remove_from_list = true; // Destroy was scheduled by us
             else
             else