ドキュメントまたは例で見つけることができるコードの例..
#include <sstream>
std::ostringstream str;
str << "Time: " << time;
// get the std::string
str.str();
// get the C char*
str.str().c_str();
// reset the string stream
str.str("Initial value");
したがって、C char 配列を使用する場合
const char* text = str.str().c_str();
SDL_GL_RenderText(text, font, color, &position);
これを実現する別の方法は、SDL_GL_RenderText の呼び出しをカスタムのstd::strbuf
andstd::ostream
でラップすることです。これにより、次のようなことが可能になります:
gl_out << font << color << position << "Timer :" << time << std::flush;
フォントによると、色と位置には実際の型があり、void* や単に int のようなものではありません。その場合は、カスタム タイプでラップできます。
この方法は少し複雑で、標準 C++ ライブラリのストリーム管理をよく理解している必要がありますが、IMO の方がはるかに洗練されています。OpenGL でこれを試したことはありませんが、syslog (ログ レベル指定あり) やその他のテキスト出力メディアで動作しました。