マネージドDirectXを使用して、スプライトを使用してテクスチャとテキストを画面に描画しようとしています。残念ながら、テキストとテクスチャを同じスプライトに配置すると、描画コマンドを実行する順序に関係なく、テクスチャがテキストを上書き(上書きしますか?)します。
最終的にはテクスチャとテキストを散在させたいので、これらのスプライトのZオーダーを指定するにはどうすればよいですか。各レイヤーは別々のスプライトにある必要がありますか?
現在のコードは次のとおりです。
m_device.BeginScene();
m_device.Clear(ClearFlags.Target, Color.Black, 1.0f, 0);
m_sprite.Begin(SpriteFlags.SortTexture | SpriteFlags.AlphaBlend);
// Switching the order of following two statements doesn't change the Z-Order!
m_sprite.Draw(m_texture, Vector3.Empty, new Vector3(0, 0, 0),
Color.White.ToArgb());
m_d3dFont.DrawText(m_sprite, m_text, x, y, color);
m_sprite.End();
m_device.EndScene();
m_device.Present();
注:SpriteFlags.SortDepthBackToFrontまたはSpriteFlags.SortDepthBackToFrontを使用しても、動作は変わりません。
これはおそらく私の側の概念的な誤解ですが、コードが役立つ場合は、C++またはその他の言語を使用したアンマネージドDirectXのサンプルを喜んで受け入れます。
よろしくお願いします!