[raylib][文字描画] ひらがなと漢字が混在する文章で一部の漢字が描画されない原因が知りたい

質問内容

提示画像ですがひらがなと漢字を交えた文字の描画で確認用の用の字が描画されない原因が知りたいです。
よくみると確認の認の右上に文字化け?のような白い点が描画されているので文字データ自体は行っているののですがなにかしらの原因で文字列の文字を正常に読み込めていないのだと思うのですがこれはなぜでしょうか?日本語は2バイトと聞いていますがそれも関係しているのですか?だとすればどうやって修正すればいいのでしょうか?

実現したいこと

ひらがな漢字が混在する文章を描画したい

前提

ライブラリ:raylib
言語: C++

発生している問題・エラーメッセージ

漢字のみの場合

イメージ説明

ひらがなと漢字の場合

イメージ説明

該当のソースコード

cpp

1#include "raylib.h"2#include <locale.h>3#include <stdlib.h>4#include <stdio.h>5 6int main()7{8 setlocale(LC_ALL, "ja_JP.UTF-8");9 const int screenWidth = 800;10 const int screenHeight = 600;11 12 int* codePoint = NULL;13 int codeCount = 0;14 InitWindow(screenWidth, screenHeight, "Test");15 16 //codePoint = LoadCodepoints("あいうえお確認用",&codeCount);17 codePoint = LoadCodepoints("確認用",&codeCount);18 Font font = LoadFontEx("asset/font/NotoSansJP.ttf", 40,codePoint,codeCount);19 if (font.texture.id == 0)20 {21 // フォントの読み込みに失敗した場合のエラー処理22 TraceLog(LOG_ERROR, "Failed to load font!");23 }24 25 free(codePoint);26 27#if 128 // 確認用29 Image fontImage = LoadImageFromTexture(font.texture);30 if (IsImageReady(fontImage))31 {32 ExportImage(fontImage, "fontImage.png");33 UnloadImage(fontImage);34 }35#endif36 37 while (WindowShouldClose() == false)38 {39 Vector2 position;40 position.x = 100;41 position.y = 100;42 43 BeginDrawing();44 45 ClearBackground(BLACK);46 47 //DrawTextEx(font, u8"あいうえお確認用", position, font.baseSize, 0.0f, WHITE);48 DrawTextEx(font, u8"確認用", position, font.baseSize, 0.0f, WHITE);49 EndDrawing();50 }51 52 CloseWindow();53 return 0;54}

確認したこと

1: #if 1コード部のテクスチャーを確認しました

2: LoadCodepoints()関数とDrawTextEx()の文字を漢字のみにすると正常に描画され、あいうえお確認用等のひらがなを交えてた日本語の場合上記の参考画像のようになります

3: DrawTextEx()のu8という文字列指定の記述を消しましたが全く別の文章が表示され正常に描画できません

コメントを投稿

0 コメント