2012-04-05 18 views
0

私は、Silverlight-PhoneApplicationPageとそのコントロールをTriangleStripsとして描画するいくつかの四角形の上に描画します。WP7/XNA/Silverlight:TriangleStripを描画した後、どのようにスプライトバッチを描画できますか?

他の方法は、周りに完全に正常に動作しますが、四角は、私のコントロールの上に描画されている - 私は私の描画機能でこのような何かを:私は後spriteBatchを描画しようとした場合

private void OnDraw(object sender, GameTimerEventArgs e) 
{ 
    // Clean up device 
    graphicsDevice.Clear(Microsoft.Xna.Framework.Color.Black); 
    graphicsDevice.BlendState = BlendState.AlphaBlend; 
    RasterizerState stat = new RasterizerState(); 
    stat.CullMode = CullMode.None; 
    graphicsDevice.RasterizerState = stat; 

    // Draw Silverlight UI element to Texture 
    elementRenderer.Render(); 

    // Draw Silverlight UI element 
    spriteBatch.Begin(); 
    spriteBatch.Draw(elementRenderer.Texture, Vector2.Zero, Microsoft.Xna.Framework.Color.White); 
    spriteBatch.End(); 

    effect.Texture = tex; 
    effect.TextureEnabled = true; 
    effect.World = BillboardMatrix; 
    effect.View = view; 
    effect.Projection = projection; 

    foreach (EffectPass pass in effect.CurrentTechnique.Passes) 
    { 
     pass.Apply(); 
     graphicsDevice.DrawUserPrimitives<VertexPositionTexture>(PrimitiveType.TriangleStrip, vertices, 0, 2); 
    } 
} 

三角形私はこのエラーを受け取ります: "NotSupportedException - 2の累乗でないテクスチャサイズを使用する場合、XNA Framework ReachプロファイルがTextureAddressModeをクランプする必要があります。

private void OnDraw(object sender, GameTimerEventArgs e) 
{ 
    // Clean up device 
    graphicsDevice.Clear(Microsoft.Xna.Framework.Color.Black); 
    graphicsDevice.BlendState = BlendState.AlphaBlend; 
    RasterizerState stat = new RasterizerState(); 
    stat.CullMode = CullMode.None; 
    graphicsDevice.RasterizerState = stat; 

    // Draw Silverlight UI element to Texture 
    elementRenderer.Render(); 

    effect.Texture = tex; 
    effect.TextureEnabled = true; 
    effect.World = BillboardMatrix; 
    effect.View = view; 
    effect.Projection = projection; 

    foreach (EffectPass pass in effect.CurrentTechnique.Passes) 
    { 
     pass.Apply(); 
     graphicsDevice.DrawUserPrimitives<VertexPositionTexture>(PrimitiveType.TriangleStrip, vertices, 0, 2); 
    } 

    // Draw Silverlight UI element 
    spriteBatch.Begin(); 
    spriteBatch.Draw(elementRenderer.Texture, Vector2.Zero, Microsoft.Xna.Framework.Color.White); 
    spriteBatch.End(); 
} 

また、私はgraphicsDevice.SamplerStates[i] = SamplerState.LinearClamp;を設定しようとしましたが、動作しませんでした。私は間違って何をしていますか?

答えて

0

それが機能するようになりました - 私はCullModeを変更:

stat.CullMode = CullMode.None; 

stat.CullMode = CullMode.CullCounterClockwiseFace; 
関連する問題