[1].Variable declaration
VertexPositionTexture[] verts;
VertexBuffer vertexBuffer;
Texture2D projectTexture;
BasicEffect basicEffect;
[2].Camera and World Matrix
public Matrix view { get; protected set; }
public Matrix projection { get; protected set; }
// Initialize view matrix
view = Matrix.CreateLookAt(pos, target, up);
// Initialize projection matrix
projection = Matrix.CreatePerspectiveFieldOfView(
MathHelper.PiOver4,
(float)Game.Window.ClientBounds.Width /
(float)Game.Window.ClientBounds.Height,
1, 1000);
[3].Initialize and loadcontent
//basic effect
basicEffect = new BasicEffect(GraphicsDevice);
//verts
verts = new VertexPositionTexture[4];
verts[0] = new VertexPositionTexture();
…
//vertex buffer
vertexBuffer = new VertexBuffer(GraphicsDevice, typeof(VertexPositionTexture), verts.Length, BufferUsage.None);
vertexBuffer.SetData(verts);
//Texture
projectTexture = game.Content.Load<Texture2D>("Textures/1");
[4].Set parameters and Draw the texture
basicEffect.World = World;
basicEffect.View = camera.view;
basicEffect.Projection = camera.projection;
basicEffect.Texture = projectTexture;
basicEffect.TextureEnabled = true;
GraphicsDevice.SetVertexBuffer(vertexBuffer);
spriteBatch.Begin(SpriteSortMode.Immediate, BlendState.AlphaBlend, null, null, null, basicEffect);
foreach (EffectPass pass in basicEffect.CurrentTechnique.Passes)
{
pass.Apply();
GraphicsDevice.DrawUserPrimitives<VertexPositionTexture>
(PrimitiveType.TriangleStrip, verts, 0, 2);
}
spriteBatch.End();
VertexPositionTexture[] verts;
VertexBuffer vertexBuffer;
Texture2D projectTexture;
BasicEffect basicEffect;
[2].Camera and World Matrix
public Matrix view { get; protected set; }
public Matrix projection { get; protected set; }
// Initialize view matrix
view = Matrix.CreateLookAt(pos, target, up);
// Initialize projection matrix
projection = Matrix.CreatePerspectiveFieldOfView(
MathHelper.PiOver4,
(float)Game.Window.ClientBounds.Width /
(float)Game.Window.ClientBounds.Height,
1, 1000);
[3].Initialize and loadcontent
//basic effect
basicEffect = new BasicEffect(GraphicsDevice);
//verts
verts = new VertexPositionTexture[4];
verts[0] = new VertexPositionTexture();
…
//vertex buffer
vertexBuffer = new VertexBuffer(GraphicsDevice, typeof(VertexPositionTexture), verts.Length, BufferUsage.None);
vertexBuffer.SetData(verts);
//Texture
projectTexture = game.Content.Load<Texture2D>("Textures/1");
[4].Set parameters and Draw the texture
basicEffect.World = World;
basicEffect.View = camera.view;
basicEffect.Projection = camera.projection;
basicEffect.Texture = projectTexture;
basicEffect.TextureEnabled = true;
GraphicsDevice.SetVertexBuffer(vertexBuffer);
spriteBatch.Begin(SpriteSortMode.Immediate, BlendState.AlphaBlend, null, null, null, basicEffect);
foreach (EffectPass pass in basicEffect.CurrentTechnique.Passes)
{
pass.Apply();
GraphicsDevice.DrawUserPrimitives<VertexPositionTexture>
(PrimitiveType.TriangleStrip, verts, 0, 2);
}
spriteBatch.End();