mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-10-31 13:11:05 +01:00 
			
		
		
		
	ImDrawList::AddImage* renamed uv_ parameters to be more consistent. Fix AddImageQuad to use IM_COL32_A_MASK (#1009)
This commit is contained in:
		
							
								
								
									
										8
									
								
								imgui.h
									
									
									
									
									
								
							
							
						
						
									
										8
									
								
								imgui.h
									
									
									
									
									
								
							| @@ -1050,9 +1050,9 @@ struct ImGuiSizeConstraintCallbackData | ||||
| #define IM_COL32_A_MASK     0xFF000000 | ||||
| #endif | ||||
| #define IM_COL32(R,G,B,A)    (((ImU32)(A)<<IM_COL32_A_SHIFT) | ((ImU32)(B)<<IM_COL32_B_SHIFT) | ((ImU32)(G)<<IM_COL32_G_SHIFT) | ((ImU32)(R)<<IM_COL32_R_SHIFT)) | ||||
| #define IM_COL32_WHITE       IM_COL32(255,255,255,255)  // Opaque white | ||||
| #define IM_COL32_WHITE       IM_COL32(255,255,255,255)  // Opaque white = 0xFFFFFFFF | ||||
| #define IM_COL32_BLACK       IM_COL32(0,0,0,255)        // Opaque black | ||||
| #define IM_COL32_BLACK_TRANS IM_COL32(0,0,0,0)          // Transparent black | ||||
| #define IM_COL32_BLACK_TRANS IM_COL32(0,0,0,0)          // Transparent black = 0x00000000 | ||||
|  | ||||
| // ImColor() helper to implicity converts colors to either ImU32 (packed 4x1 byte) or ImVec4 (4x1 float) | ||||
| // Prefer using IM_COL32() macros if you want a guaranteed compile-time ImU32 for usage with ImDrawList API. | ||||
| @@ -1202,8 +1202,8 @@ struct ImDrawList | ||||
|     IMGUI_API void  AddCircleFilled(const ImVec2& centre, float radius, ImU32 col, int num_segments = 12); | ||||
|     IMGUI_API void  AddText(const ImVec2& pos, ImU32 col, const char* text_begin, const char* text_end = NULL); | ||||
|     IMGUI_API void  AddText(const ImFont* font, float font_size, const ImVec2& pos, ImU32 col, const char* text_begin, const char* text_end = NULL, float wrap_width = 0.0f, const ImVec4* cpu_fine_clip_rect = NULL); | ||||
|     IMGUI_API void  AddImage(ImTextureID user_texture_id, const ImVec2& a, const ImVec2& b, const ImVec2& uv0 = ImVec2(0,0), const ImVec2& uv1 = ImVec2(1,1), ImU32 col = 0xFFFFFFFF); | ||||
|     IMGUI_API void  AddImageQuad(ImTextureID user_texture_id, const ImVec2& a, const ImVec2& b, const ImVec2& c, const ImVec2& d, const ImVec2& uva = ImVec2(0,0), const ImVec2& uvb = ImVec2(1,0), const ImVec2& uvc = ImVec2(1,1), const ImVec2& uvd = ImVec2(0,1), ImU32 col = 0xFFFFFFFF); | ||||
|     IMGUI_API void  AddImage(ImTextureID user_texture_id, const ImVec2& a, const ImVec2& b, const ImVec2& uv_a = ImVec2(0,0), const ImVec2& uv_b = ImVec2(1,1), ImU32 col = 0xFFFFFFFF); | ||||
|     IMGUI_API void  AddImageQuad(ImTextureID user_texture_id, const ImVec2& a, const ImVec2& b, const ImVec2& c, const ImVec2& d, const ImVec2& uv_a = ImVec2(0,0), const ImVec2& uv_b = ImVec2(1,0), const ImVec2& uv_c = ImVec2(1,1), const ImVec2& uv_d = ImVec2(0,1), ImU32 col = 0xFFFFFFFF); | ||||
|     IMGUI_API void  AddPolyline(const ImVec2* points, const int num_points, ImU32 col, bool closed, float thickness, bool anti_aliased); | ||||
|     IMGUI_API void  AddConvexPolyFilled(const ImVec2* points, const int num_points, ImU32 col, bool anti_aliased); | ||||
|     IMGUI_API void  AddBezierCurve(const ImVec2& pos0, const ImVec2& cp0, const ImVec2& cp1, const ImVec2& pos1, ImU32 col, float thickness, int num_segments = 0); | ||||
|   | ||||
| @@ -958,7 +958,7 @@ void ImDrawList::AddText(const ImVec2& pos, ImU32 col, const char* text_begin, c | ||||
|     AddText(GImGui->Font, GImGui->FontSize, pos, col, text_begin, text_end); | ||||
| } | ||||
|  | ||||
| void ImDrawList::AddImage(ImTextureID user_texture_id, const ImVec2& a, const ImVec2& b, const ImVec2& uv0, const ImVec2& uv1, ImU32 col) | ||||
| void ImDrawList::AddImage(ImTextureID user_texture_id, const ImVec2& a, const ImVec2& b, const ImVec2& uv_a, const ImVec2& uv_b, ImU32 col) | ||||
| { | ||||
|     if ((col & IM_COL32_A_MASK) == 0) | ||||
|         return; | ||||
| @@ -969,24 +969,23 @@ void ImDrawList::AddImage(ImTextureID user_texture_id, const ImVec2& a, const Im | ||||
|         PushTextureID(user_texture_id); | ||||
|  | ||||
|     PrimReserve(6, 4); | ||||
|     PrimRectUV(a, b, uv0, uv1, col); | ||||
|     PrimRectUV(a, b, uv_a, uv_b, col); | ||||
|  | ||||
|     if (push_texture_id) | ||||
|         PopTextureID(); | ||||
| } | ||||
|  | ||||
| void ImDrawList::AddImageQuad(ImTextureID user_texture_id, const ImVec2& a, const ImVec2& b, const ImVec2& c, const ImVec2& d, const ImVec2& uva, const ImVec2& uvb, const ImVec2& uvc, const ImVec2& uvd, ImU32 col) | ||||
| void ImDrawList::AddImageQuad(ImTextureID user_texture_id, const ImVec2& a, const ImVec2& b, const ImVec2& c, const ImVec2& d, const ImVec2& uv_a, const ImVec2& uv_b, const ImVec2& uv_c, const ImVec2& uv_d, ImU32 col) | ||||
| { | ||||
|     if ((col >> 24) == 0) | ||||
|     if ((col & IM_COL32_A_MASK) == 0) | ||||
|         return; | ||||
|  | ||||
|     // FIXME-OPT: This is wasting draw calls. | ||||
|     const bool push_texture_id = _TextureIdStack.empty() || user_texture_id != _TextureIdStack.back(); | ||||
|     if (push_texture_id) | ||||
|         PushTextureID(user_texture_id); | ||||
|  | ||||
|     PrimReserve(6, 4); | ||||
|     PrimQuadUV(a, b, c, d, uva, uvb, uvc, uvd, col); | ||||
|     PrimQuadUV(a, b, c, d, uv_a, uv_b, uv_c, uv_d, col); | ||||
|  | ||||
|     if (push_texture_id) | ||||
|         PopTextureID(); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user