|
@@ -1864,7 +1864,10 @@ struct ImColor
|
|
|
// A) Change your GPU render state,
|
|
|
// 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() }'
|
|
|
+// 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);
|
|
|
+#endif
|
|
|
|
|
|
// 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.
|
|
@@ -1906,7 +1909,7 @@ struct ImDrawVert
|
|
|
#else
|
|
|
// You can override the vertex format layout by defining IMGUI_OVERRIDE_DRAWVERT_STRUCT_LAYOUT in imconfig.h
|
|
|
// The code expect ImVec2 pos (8 bytes), ImVec2 uv (8 bytes), ImU32 col (4 bytes), but you can re-order them or add other fields as needed to simplify integration in your engine.
|
|
|
-// The type has to be described within the macro (you can either declare the struct or use a typedef)
|
|
|
+// The type has to be described within the macro (you can either declare the struct or use a typedef). This is because ImVec2/ImU32 are likely not declared a the time you'd want to set your type up.
|
|
|
// NOTE: IMGUI DOESN'T CLEAR THE STRUCTURE AND DOESN'T CALL A CONSTRUCTOR SO ANY CUSTOM FIELD WILL BE UNINITIALIZED. IF YOU ADD EXTRA FIELDS (SUCH AS A 'Z' COORDINATES) YOU WILL NEED TO CLEAR THEM DURING RENDER OR TO IGNORE THEM.
|
|
|
IMGUI_OVERRIDE_DRAWVERT_STRUCT_LAYOUT;
|
|
|
#endif
|