| 2717 | } |
| 2718 | |
| 2719 | static void ImFontAtlasBuildRenderDefaultTexData(ImFontAtlas* atlas) |
| 2720 | { |
| 2721 | ImFontAtlasCustomRect* r = atlas->GetCustomRectByIndex(atlas->PackIdMouseCursors); |
| 2722 | IM_ASSERT(r->IsPacked()); |
| 2723 | |
| 2724 | const int w = atlas->TexWidth; |
| 2725 | if (!(atlas->Flags & ImFontAtlasFlags_NoMouseCursors)) |
| 2726 | { |
| 2727 | // Render/copy pixels |
| 2728 | IM_ASSERT(r->Width == FONT_ATLAS_DEFAULT_TEX_DATA_W * 2 + 1 && r->Height == FONT_ATLAS_DEFAULT_TEX_DATA_H); |
| 2729 | const int x_for_white = r->X; |
| 2730 | const int x_for_black = r->X + FONT_ATLAS_DEFAULT_TEX_DATA_W + 1; |
| 2731 | if (atlas->TexPixelsAlpha8 != NULL) |
| 2732 | { |
| 2733 | ImFontAtlasBuildRender8bppRectFromString(atlas, x_for_white, r->Y, FONT_ATLAS_DEFAULT_TEX_DATA_W, FONT_ATLAS_DEFAULT_TEX_DATA_H, FONT_ATLAS_DEFAULT_TEX_DATA_PIXELS, '.', 0xFF); |
| 2734 | ImFontAtlasBuildRender8bppRectFromString(atlas, x_for_black, r->Y, FONT_ATLAS_DEFAULT_TEX_DATA_W, FONT_ATLAS_DEFAULT_TEX_DATA_H, FONT_ATLAS_DEFAULT_TEX_DATA_PIXELS, 'X', 0xFF); |
| 2735 | } |
| 2736 | else |
| 2737 | { |
| 2738 | ImFontAtlasBuildRender32bppRectFromString(atlas, x_for_white, r->Y, FONT_ATLAS_DEFAULT_TEX_DATA_W, FONT_ATLAS_DEFAULT_TEX_DATA_H, FONT_ATLAS_DEFAULT_TEX_DATA_PIXELS, '.', IM_COL32_WHITE); |
| 2739 | ImFontAtlasBuildRender32bppRectFromString(atlas, x_for_black, r->Y, FONT_ATLAS_DEFAULT_TEX_DATA_W, FONT_ATLAS_DEFAULT_TEX_DATA_H, FONT_ATLAS_DEFAULT_TEX_DATA_PIXELS, 'X', IM_COL32_WHITE); |
| 2740 | } |
| 2741 | } |
| 2742 | else |
| 2743 | { |
| 2744 | // Render 4 white pixels |
| 2745 | IM_ASSERT(r->Width == 2 && r->Height == 2); |
| 2746 | const int offset = (int)r->X + (int)r->Y * w; |
| 2747 | if (atlas->TexPixelsAlpha8 != NULL) |
| 2748 | { |
| 2749 | atlas->TexPixelsAlpha8[offset] = atlas->TexPixelsAlpha8[offset + 1] = atlas->TexPixelsAlpha8[offset + w] = atlas->TexPixelsAlpha8[offset + w + 1] = 0xFF; |
| 2750 | } |
| 2751 | else |
| 2752 | { |
| 2753 | atlas->TexPixelsRGBA32[offset] = atlas->TexPixelsRGBA32[offset + 1] = atlas->TexPixelsRGBA32[offset + w] = atlas->TexPixelsRGBA32[offset + w + 1] = IM_COL32_WHITE; |
| 2754 | } |
| 2755 | } |
| 2756 | atlas->TexUvWhitePixel = ImVec2((r->X + 0.5f) * atlas->TexUvScale.x, (r->Y + 0.5f) * atlas->TexUvScale.y); |
| 2757 | } |
| 2758 | |
| 2759 | static void ImFontAtlasBuildRenderLinesTexData(ImFontAtlas* atlas) |
| 2760 | { |
no test coverage detected