mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-10-30 20:51:06 +01:00 
			
		
		
		
	ImDrawCallback: Allow to override the signature of ImDrawCallback by #define-ing it. This is meant to facilitate custom rendering back-ends passing local render-specific data to the draw callback.
This commit is contained in:
		| @@ -84,6 +84,8 @@ Other Changes: | |||||||
|   support 32-bits indices. Most examples back-ends have been modified to support the VtxOffset field. |   support 32-bits indices. Most examples back-ends have been modified to support the VtxOffset field. | ||||||
| - ImDrawList: Added ImDrawCmd::IdxOffset value, equivalent to summing element count for each draw command. | - ImDrawList: Added ImDrawCmd::IdxOffset value, equivalent to summing element count for each draw command. | ||||||
|   This is provided for convenience and consistency with VtxOffset. |   This is provided for convenience and consistency with VtxOffset. | ||||||
|  | - ImDrawCallback: Allow to override the signature of ImDrawCallback by #define-ing it. This is meant to | ||||||
|  |   facilitate custom rendering back-ends passing local render-specific data to the draw callback. | ||||||
| - ImFontAtlas: FreeType: Added RasterizerFlags::Monochrome flag to disable font anti-aliasing. (#2545) | - ImFontAtlas: FreeType: Added RasterizerFlags::Monochrome flag to disable font anti-aliasing. (#2545) | ||||||
|   Combine with RasterizerFlags::MonoHinting for best results. |   Combine with RasterizerFlags::MonoHinting for best results. | ||||||
| - ImFontGlyphRangesBuilder: Fixed unnecessarily over-sized buffer, which incidentally was also not | - ImFontGlyphRangesBuilder: Fixed unnecessarily over-sized buffer, which incidentally was also not | ||||||
|   | |||||||
| @@ -68,6 +68,12 @@ | |||||||
| // Read about ImGuiBackendFlags_RendererHasVtxOffset for details. | // Read about ImGuiBackendFlags_RendererHasVtxOffset for details. | ||||||
| //#define ImDrawIdx unsigned int | //#define ImDrawIdx unsigned int | ||||||
|  |  | ||||||
|  | //---- Override ImDrawCallback signature (will need to modify renderer back-ends accordingly) | ||||||
|  | //struct ImDrawList; | ||||||
|  | //struct ImDrawCmd; | ||||||
|  | //typedef void (*MyImDrawCallback)(const ImDrawList* draw_list, const ImDrawCmd* cmd, void* my_renderer_user_data); | ||||||
|  | //#define ImDrawCallback MyImDrawCallback | ||||||
|  |  | ||||||
| //---- Tip: You can add extra functions within the ImGui:: namespace, here or in your own headers files. | //---- Tip: You can add extra functions within the ImGui:: namespace, here or in your own headers files. | ||||||
| /* | /* | ||||||
| namespace ImGui | namespace ImGui | ||||||
|   | |||||||
							
								
								
									
										3
									
								
								imgui.h
									
									
									
									
									
								
							
							
						
						
									
										3
									
								
								imgui.h
									
									
									
									
									
								
							| @@ -1771,7 +1771,10 @@ struct ImColor | |||||||
| //  A) Change your GPU render state, | //  A) Change your GPU render state, | ||||||
| //  B) render a complex 3D scene inside a UI element without an intermediate texture/render target, etc. | //  B) render a complex 3D scene inside a UI element without an intermediate texture/render target, etc. | ||||||
| // The expected behavior from your rendering function is 'if (cmd.UserCallback != NULL) { cmd.UserCallback(parent_list, cmd); } else { RenderTriangles() }' | // The expected behavior from your rendering function is 'if (cmd.UserCallback != NULL) { cmd.UserCallback(parent_list, cmd); } else { RenderTriangles() }' | ||||||
|  | // If you want to override the signature of ImDrawCallback, you can simply use e.g. '#define ImDrawCallback MyDrawCallback' (in imconfig.h) + update rendering back-end accordingly. | ||||||
|  | #ifndef ImDrawCallback | ||||||
| typedef void (*ImDrawCallback)(const ImDrawList* parent_list, const ImDrawCmd* cmd); | typedef void (*ImDrawCallback)(const ImDrawList* parent_list, const ImDrawCmd* cmd); | ||||||
|  | #endif | ||||||
|  |  | ||||||
| // Special Draw callback value to request renderer back-end to reset the graphics/render state. | // Special Draw callback value to request renderer back-end to reset the graphics/render state. | ||||||
| // The renderer back-end needs to handle this special value, otherwise it will crash trying to call a function at this address. | // The renderer back-end needs to handle this special value, otherwise it will crash trying to call a function at this address. | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user