mirror of
https://github.com/Drezil/imgui.git
synced 2024-11-22 11:57:00 +00:00
Backends: DX9: Fix to support colored glyphs, using newly introduced 'TexPixelsUseColors' info. (#3369, #3844)
This commit is contained in:
parent
eb57484935
commit
4537d98d46
@ -45,6 +45,12 @@ struct CUSTOMVERTEX
|
|||||||
};
|
};
|
||||||
#define D3DFVF_CUSTOMVERTEX (D3DFVF_XYZ|D3DFVF_DIFFUSE|D3DFVF_TEX1)
|
#define D3DFVF_CUSTOMVERTEX (D3DFVF_XYZ|D3DFVF_DIFFUSE|D3DFVF_TEX1)
|
||||||
|
|
||||||
|
#ifdef IMGUI_USE_BGRA_PACKED_COLOR
|
||||||
|
#define IMGUI_COL_TO_DX9_ARGB(_COL) (_COL)
|
||||||
|
#else
|
||||||
|
#define IMGUI_COL_TO_DX9_ARGB(_COL) (((_COL) & 0xFF00FF00) | (((_COL) & 0xFF0000) >> 16) | (((_COL) & 0xFF) << 16))
|
||||||
|
#endif
|
||||||
|
|
||||||
static void ImGui_ImplDX9_SetupRenderState(ImDrawData* draw_data)
|
static void ImGui_ImplDX9_SetupRenderState(ImDrawData* draw_data)
|
||||||
{
|
{
|
||||||
// Setup viewport
|
// Setup viewport
|
||||||
@ -157,11 +163,7 @@ void ImGui_ImplDX9_RenderDrawData(ImDrawData* draw_data)
|
|||||||
vtx_dst->pos[0] = vtx_src->pos.x;
|
vtx_dst->pos[0] = vtx_src->pos.x;
|
||||||
vtx_dst->pos[1] = vtx_src->pos.y;
|
vtx_dst->pos[1] = vtx_src->pos.y;
|
||||||
vtx_dst->pos[2] = 0.0f;
|
vtx_dst->pos[2] = 0.0f;
|
||||||
#ifdef IMGUI_USE_BGRA_PACKED_COLOR
|
vtx_dst->col = IMGUI_COL_TO_DX9_ARGB(vtx_src->col);
|
||||||
vtx_dst->col = vtx_src->col;
|
|
||||||
#else
|
|
||||||
vtx_dst->col = (vtx_src->col & 0xFF00FF00) | ((vtx_src->col & 0xFF0000) >> 16) | ((vtx_src->col & 0xFF) << 16); // RGBA --> ARGB for DirectX9
|
|
||||||
#endif
|
|
||||||
vtx_dst->uv[0] = vtx_src->uv.x;
|
vtx_dst->uv[0] = vtx_src->uv.x;
|
||||||
vtx_dst->uv[1] = vtx_src->uv.y;
|
vtx_dst->uv[1] = vtx_src->uv.y;
|
||||||
vtx_dst++;
|
vtx_dst++;
|
||||||
@ -248,6 +250,13 @@ static bool ImGui_ImplDX9_CreateFontsTexture()
|
|||||||
int width, height, bytes_per_pixel;
|
int width, height, bytes_per_pixel;
|
||||||
io.Fonts->GetTexDataAsRGBA32(&pixels, &width, &height, &bytes_per_pixel);
|
io.Fonts->GetTexDataAsRGBA32(&pixels, &width, &height, &bytes_per_pixel);
|
||||||
|
|
||||||
|
// Convert RGBA32 to BGRA32 as the earlier is not well supported by DX9 devices
|
||||||
|
#ifndef IMGUI_USE_BGRA_PACKED_COLOR
|
||||||
|
if (io.Fonts->TexPixelsUseColors)
|
||||||
|
for (ImU32* p = (ImU32*)pixels, *p_end = p + width * height; p < p_end; p++)
|
||||||
|
*p = IMGUI_COL_TO_DX9_ARGB(*p);
|
||||||
|
#endif
|
||||||
|
|
||||||
// Upload texture to graphics system
|
// Upload texture to graphics system
|
||||||
g_FontTexture = NULL;
|
g_FontTexture = NULL;
|
||||||
if (g_pd3dDevice->CreateTexture(width, height, 1, D3DUSAGE_DYNAMIC, D3DFMT_A8R8G8B8, D3DPOOL_DEFAULT, &g_FontTexture, NULL) < 0)
|
if (g_pd3dDevice->CreateTexture(width, height, 1, D3DUSAGE_DYNAMIC, D3DFMT_A8R8G8B8, D3DPOOL_DEFAULT, &g_FontTexture, NULL) < 0)
|
||||||
|
@ -63,6 +63,7 @@ Other Changes:
|
|||||||
accross all backends), facilitating compositing of the output buffer with another buffer.
|
accross all backends), facilitating compositing of the output buffer with another buffer.
|
||||||
(#2693, #2764, #2766, #2873, #3447, #3813, #3816) [@ocornut, @thedmd, @ShawnM427, @Ubpa, @aiekick]
|
(#2693, #2764, #2766, #2873, #3447, #3813, #3816) [@ocornut, @thedmd, @ShawnM427, @Ubpa, @aiekick]
|
||||||
- Backends: DX9: Fix to support IMGUI_USE_BGRA_PACKED_COLOR. (#3844) [@Xiliusha]
|
- Backends: DX9: Fix to support IMGUI_USE_BGRA_PACKED_COLOR. (#3844) [@Xiliusha]
|
||||||
|
- Backends: DX9: Fix to support colored glyphs, using newly introduced 'TexPixelsUseColors' info. (#3844)
|
||||||
- Examples: Reworked setup of clear color to be compatible with transparent values.
|
- Examples: Reworked setup of clear color to be compatible with transparent values.
|
||||||
- CI: Use a dedicated "scheduled" workflow to trigger scheduled builds. Forks may disable this workflow if
|
- CI: Use a dedicated "scheduled" workflow to trigger scheduled builds. Forks may disable this workflow if
|
||||||
scheduled builds builds are not required. [@rokups]
|
scheduled builds builds are not required. [@rokups]
|
||||||
|
Loading…
Reference in New Issue
Block a user