|
|
|
@ -340,18 +340,11 @@ |
|
|
|
|
this necessary change will break your rendering function! the fix should be very easy. sorry for that :( |
|
|
|
|
- if you are using a vanilla copy of one of the imgui_impl_XXXX.cpp provided in the example, you just need to update your copy and you can ignore the rest. |
|
|
|
|
- the signature of the io.RenderDrawListsFn handler has changed! |
|
|
|
|
ImGui_XXXX_RenderDrawLists(ImDrawList** const cmd_lists, int cmd_lists_count) |
|
|
|
|
became: |
|
|
|
|
ImGui_XXXX_RenderDrawLists(ImDrawData* draw_data). |
|
|
|
|
argument 'cmd_lists' -> 'draw_data->CmdLists' |
|
|
|
|
argument 'cmd_lists_count' -> 'draw_data->CmdListsCount' |
|
|
|
|
ImDrawList 'commands' -> 'CmdBuffer' |
|
|
|
|
ImDrawList 'vtx_buffer' -> 'VtxBuffer' |
|
|
|
|
ImDrawList n/a -> 'IdxBuffer' (new) |
|
|
|
|
ImDrawCmd 'vtx_count' -> 'ElemCount' |
|
|
|
|
ImDrawCmd 'clip_rect' -> 'ClipRect' |
|
|
|
|
ImDrawCmd 'user_callback' -> 'UserCallback' |
|
|
|
|
ImDrawCmd 'texture_id' -> 'TextureId' |
|
|
|
|
old: ImGui_XXXX_RenderDrawLists(ImDrawList** const cmd_lists, int cmd_lists_count) |
|
|
|
|
new: ImGui_XXXX_RenderDrawLists(ImDrawData* draw_data). |
|
|
|
|
argument: 'cmd_lists' becomes 'draw_data->CmdLists', 'cmd_lists_count' becomes 'draw_data->CmdListsCount' |
|
|
|
|
ImDrawList: 'commands' becomes 'CmdBuffer', 'vtx_buffer' becomes 'VtxBuffer', 'IdxBuffer' is new. |
|
|
|
|
ImDrawCmd: 'vtx_count' becomes 'ElemCount', 'clip_rect' becomes 'ClipRect', 'user_callback' becomes 'UserCallback', 'texture_id' becomes 'TextureId'. |
|
|
|
|
- each ImDrawList now contains both a vertex buffer and an index buffer. For each command, render ElemCount/3 triangles using indices from the index buffer. |
|
|
|
|
- if you REALLY cannot render indexed primitives, you can call the draw_data->DeIndexAllBuffers() method to de-index the buffers. This is slow and a waste of CPU/GPU. Prefer using indexed rendering! |
|
|
|
|
- refer to code in the examples/ folder or ask on the GitHub if you are unsure of how to upgrade. please upgrade! |
|
|
|
@ -382,18 +375,9 @@ |
|
|
|
|
- 2015/01/19 (1.30) - renamed ImGuiStorage::GetIntPtr()/GetFloatPtr() to GetIntRef()/GetIntRef() because Ptr was conflicting with actual pointer storage functions. |
|
|
|
|
- 2015/01/11 (1.30) - big font/image API change! now loads TTF file. allow for multiple fonts. no need for a PNG loader. |
|
|
|
|
(1.30) - removed GetDefaultFontData(). uses io.Fonts->GetTextureData*() API to retrieve uncompressed pixels. |
|
|
|
|
this sequence: |
|
|
|
|
const void* png_data; |
|
|
|
|
unsigned int png_size; |
|
|
|
|
ImGui::GetDefaultFontData(NULL, NULL, &png_data, &png_size); |
|
|
|
|
// <Copy to GPU>
|
|
|
|
|
became: |
|
|
|
|
unsigned char* pixels; |
|
|
|
|
int width, height; |
|
|
|
|
io.Fonts->GetTexDataAsRGBA32(&pixels, &width, &height); |
|
|
|
|
// <Copy to GPU>
|
|
|
|
|
io.Fonts->TexID = (your_texture_identifier); |
|
|
|
|
you now have much more flexibility to load multiple TTF fonts and manage the texture buffer for internal needs. |
|
|
|
|
font init: const void* png_data; unsigned int png_size; ImGui::GetDefaultFontData(NULL, NULL, &png_data, &png_size); <..Upload texture to GPU..> |
|
|
|
|
became: unsigned char* pixels; int width, height; io.Fonts->GetTexDataAsRGBA32(&pixels, &width, &height); <..Upload texture to GPU>; io.Fonts->TexId = YourTextureIdentifier; |
|
|
|
|
you now more flexibility to load multiple TTF fonts and manage the texture buffer for internal needs. |
|
|
|
|
it is now recommended that you sample the font texture with bilinear interpolation. |
|
|
|
|
(1.30) - added texture identifier in ImDrawCmd passed to your render function (we can now render images). make sure to set io.Fonts->TexID. |
|
|
|
|
(1.30) - removed IO.PixelCenterOffset (unnecessary, can be handled in user projection matrix) |
|
|
|
|