提示コードの////コメント部内部コードですが.Draw();関数で指定した文字列をstd::format関数を使って可変長文字列を生成したいのですがとりあえずstd::cout<<で表示する描画が異なります。これはなぜなのでしょうか?
参考サイト: https://cpprefjp.github.io/reference/format/format.html
cpp
1 text.Draw(glm::vec2(100, 100), "Font/PressStart2P.ttf", 25, glm::vec4(0, 255, 0, 255), "Hello World ! {} ",a);
cpp
1 2// ##################################### 可変文字列 描画 ##################################### 3void FrameWork::Text::Draw(const glm::vec2 pos, const char* font, unsigned short pixel, const glm::vec4 color, const char *str,...) 4{ 5 //マルチバイト文字をワイド文字変換 6////////////////////////////////////////// 7 std::vector<char> charText(0); 8 va_list args = NULL; 9 va_start(args, str); 10 charText.clear(); 11 charText.resize(strlen(str) + 100); 12 //vsprintf_s(charText.data(), charText.size(), str, args); 13 std::string sr = std::format(str, args); 14 va_end(args); 15////////////////////////////////////////// 16 std::cout << sr << std::endl;//////////////////////////////////////////ここ 17 //std::format(); 18 19 20 21 22 //フォントサイズ、フォント名を変更する時 23 24 25 if (NULL == font) 26 { 27 std::cout << "文字列がNULL" << std::endl; 28 29 fontName = std::string(DEFAULT_FONT); //既定フォント 30 pixelSize = pixel; //ピクセルサイズ 31 32 setFontName(fontName.c_str()); //フォント 33 setPixelSize(pixelSize); //ピクセルサイズ 34 35 36 charText = charText; 37 text = getTexture(getWchar_t(charText), fontName.c_str(), pixelSize, face); //テクスチャを生成 38 } 39 else if ( (pixelSize != pixel) || (fontName != std::string(font))) 40 { 41 std::cout << "フォントサイズ、フォント名を変更する時" << std::endl; 42 if (font == NULL) 43 { 44 fontName = std::string(DEFAULT_FONT); 45 } 46 else 47 { 48 fontName = font; 49 } 50 51 pixelSize = pixel; //ピクセルサイズ 52 53 setFontName(fontName.c_str()); //フォント 54 setPixelSize(pixelSize); //ピクセルサイズ 55 56 57 charText = charText; 58 text = getTexture(getWchar_t(charText), fontName.c_str(), pixelSize, face); //テクスチャを生成 59 } 60 else if( std::string(charText.data()) != std::string(charText.data()) ) 61 { 62 std::cout << "FixText" << std::endl; 63 FixText(text,getWchar_t(charText)); 64 charText = charText; 65 } 66 else 67 { 68 std::cout << "ああああ" << std::endl; 69 } 70 71 setTextSize(textSize, text); //文字列のサイズを取得 72 73 74 75 RenderCharacter(pos, pixelSize,color, text); //文字描画 76}
「参考サイト」はあなたが参考にしたサイト、という意味ではないのでしょうか。
読んだ上で、「std::string sr = std::format(str, args);」なんてことをしているのでしょうか。
回答2件
あなたの回答
tips
プレビュー