- 325 名前:デフォルトの名無しさん mailto:sage [2007/10/19(金) 22:34:05 ]
- 複数のテキストをOpenGLの画面に渡すためにSDL_ttfを使っているのですが、
TTF_RenderUTF8_Solidして作ったいくつかのSDL_Surfaceを、 SDL_BlitSurfaceで、既にOpenGLのフォーマットにしてある大きなサーフィスにコピーして集めて画面をつくり、 その大きなサーフィスをglTexSubImage2DでOpenGLテクスチャとして更新して表示 という方法で、やりたいことはできたのですが、 テキスト1行1行を別々のテクスチャとして扱いたかったのに加えて、 ここの処理だけSDL側でコピーするのも気持ち悪いな、と思い、 TTF_RenderUTF8_Solidして作ったSDL_Surfaceを SDL_ConvertSurfaceを用いてOpenGLのフォーマットに変換して、 glTexSubImage2DでOpenGLのテクスチャを部分更新して転送する という方法に変えたところ、テキストのテクスチャの背景部分が透過されなくなってしまいました。 OpenGLテクスチャ上では、文字部分はα値1でカラー値さまざま かつ 文字の無い部分はα値0で完全に透明 にしたいのですが、どうしたらいいのですか? もともとの方法では、SDL_BlitSurfaceの時に、TTF_RenderUTF8_Solidの作ったサーフィスの文字の無い部分は 自動的に透過されたのですが、SDL_ConvertSurfaceをする場合は、同じように透過されないのでしょうか?
|

|