- added a SimpleEffect.fx to test the model rendering
- fixed model implementation - enabled all NotImplementedExceptions on BasicEffect again - disabled property setting in BasicEffectReader, until BasicEffect is implemented
This commit is contained in:
parent
0bbb2d7b35
commit
5659159780
@ -251,7 +251,7 @@ namespace ANX.Framework.Content
|
|||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
throw new ContentLoadException("failed to open stream for '" + assetName + "'", ex);
|
throw new ContentLoadException(String.Format("failed to open stream for '{0}'", assetName), ex);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -64,17 +64,18 @@ namespace ANX.Framework.Content
|
|||||||
var graphics = input.ResolveGraphicsDevice();
|
var graphics = input.ResolveGraphicsDevice();
|
||||||
var effect = new BasicEffect(graphics);
|
var effect = new BasicEffect(graphics);
|
||||||
Texture2D texture = input.ReadExternalReference<Texture2D>();
|
Texture2D texture = input.ReadExternalReference<Texture2D>();
|
||||||
if (texture != null)
|
// TODO: enable parameter setup when basic effect is implemented
|
||||||
{
|
//if (texture != null)
|
||||||
effect.Texture = texture;
|
//{
|
||||||
effect.TextureEnabled = true;
|
// effect.Texture = texture;
|
||||||
}
|
// effect.TextureEnabled = true;
|
||||||
effect.DiffuseColor = input.ReadVector3();
|
//}
|
||||||
effect.EmissiveColor = input.ReadVector3();
|
/*effect.DiffuseColor = */input.ReadVector3();
|
||||||
effect.SpecularColor = input.ReadVector3();
|
/*effect.EmissiveColor = */input.ReadVector3();
|
||||||
effect.SpecularPower = input.ReadSingle();
|
/*effect.SpecularColor = */input.ReadVector3();
|
||||||
effect.Alpha = input.ReadSingle();
|
/*effect.SpecularPower = */input.ReadSingle();
|
||||||
effect.VertexColorEnabled = input.ReadBoolean();
|
/*effect.Alpha = */input.ReadSingle();
|
||||||
|
/*effect.VertexColorEnabled = */input.ReadBoolean();
|
||||||
return effect;
|
return effect;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -172,9 +172,15 @@ namespace ANX.Framework.Content
|
|||||||
object meshPartTag = reader.ReadObject<object>();
|
object meshPartTag = reader.ReadObject<object>();
|
||||||
|
|
||||||
ModelMeshPart meshPart = new ModelMeshPart(vertexOffset, numVertices, startIndex, primitiveCount, meshPartTag);
|
ModelMeshPart meshPart = new ModelMeshPart(vertexOffset, numVertices, startIndex, primitiveCount, meshPartTag);
|
||||||
reader.ReadSharedResource<VertexBuffer>((buffer) => { meshPart.VertexBuffer = buffer; });
|
reader.ReadSharedResource<VertexBuffer>((buffer) => {
|
||||||
reader.ReadSharedResource<IndexBuffer>((buffer) => { meshPart.IndexBuffer = buffer; });
|
meshPart.VertexBuffer = buffer;
|
||||||
reader.ReadSharedResource<Effect>((effect) => { meshPart.Effect = effect; });
|
});
|
||||||
|
reader.ReadSharedResource<IndexBuffer>((buffer) => {
|
||||||
|
meshPart.IndexBuffer = buffer;
|
||||||
|
});
|
||||||
|
reader.ReadSharedResource<Effect>((effect) => {
|
||||||
|
meshPart.Effect = effect;
|
||||||
|
});
|
||||||
meshParts[j] = meshPart;
|
meshParts[j] = meshPart;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -84,12 +84,11 @@ namespace ANX.Framework.Graphics
|
|||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
return false;
|
throw new NotImplementedException();
|
||||||
//throw new NotImplementedException();
|
|
||||||
}
|
}
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
//throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -138,12 +137,11 @@ namespace ANX.Framework.Graphics
|
|||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
return Vector3.One;
|
throw new NotImplementedException();
|
||||||
//throw new NotImplementedException();
|
|
||||||
}
|
}
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
//throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -166,12 +164,11 @@ namespace ANX.Framework.Graphics
|
|||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
return false;
|
throw new NotImplementedException();
|
||||||
//throw new NotImplementedException();
|
|
||||||
}
|
}
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
//throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -179,12 +176,11 @@ namespace ANX.Framework.Graphics
|
|||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
return Vector3.One;
|
throw new NotImplementedException();
|
||||||
//throw new NotImplementedException();
|
|
||||||
}
|
}
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
//throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -192,12 +188,11 @@ namespace ANX.Framework.Graphics
|
|||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
return false;
|
throw new NotImplementedException();
|
||||||
//throw new NotImplementedException();
|
|
||||||
}
|
}
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
//throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -205,12 +200,11 @@ namespace ANX.Framework.Graphics
|
|||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
return 0;
|
throw new NotImplementedException();
|
||||||
//throw new NotImplementedException();
|
|
||||||
}
|
}
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
//throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -218,12 +212,11 @@ namespace ANX.Framework.Graphics
|
|||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
return 0;
|
throw new NotImplementedException();
|
||||||
//throw new NotImplementedException();
|
|
||||||
}
|
}
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
//throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -231,12 +224,11 @@ namespace ANX.Framework.Graphics
|
|||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
return null;
|
throw new NotImplementedException();
|
||||||
//throw new NotImplementedException();
|
|
||||||
}
|
}
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
//throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -244,12 +236,11 @@ namespace ANX.Framework.Graphics
|
|||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
return false;
|
throw new NotImplementedException();
|
||||||
//throw new NotImplementedException();
|
|
||||||
}
|
}
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
//throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -257,12 +248,11 @@ namespace ANX.Framework.Graphics
|
|||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
return Vector3.One;
|
throw new NotImplementedException();
|
||||||
//throw new NotImplementedException();
|
|
||||||
}
|
}
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
//throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -270,12 +260,11 @@ namespace ANX.Framework.Graphics
|
|||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
return Vector3.One;
|
throw new NotImplementedException();
|
||||||
//throw new NotImplementedException();
|
|
||||||
}
|
}
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
//throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -283,12 +272,11 @@ namespace ANX.Framework.Graphics
|
|||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
return Vector3.One;
|
throw new NotImplementedException();
|
||||||
//throw new NotImplementedException();
|
|
||||||
}
|
}
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
//throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -296,12 +284,11 @@ namespace ANX.Framework.Graphics
|
|||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
return 16;
|
throw new NotImplementedException();
|
||||||
//throw new NotImplementedException();
|
|
||||||
}
|
}
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
//throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -309,12 +296,11 @@ namespace ANX.Framework.Graphics
|
|||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
return 1;
|
throw new NotImplementedException();
|
||||||
//throw new NotImplementedException();
|
|
||||||
}
|
}
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
//throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -346,8 +332,8 @@ namespace ANX.Framework.Graphics
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
this.CurrentTechnique = Techniques["NormalTex"]; //TODO: this is for ModelSample to be work
|
//this.CurrentTechnique = Techniques["NormalTex"]; //TODO: this is for ModelSample to be work
|
||||||
//throw new InvalidOperationException("Currently ANX's BasicEffect only supports VertexColor technique");
|
throw new InvalidOperationException("Currently ANX's BasicEffect only supports VertexColor technique");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -147,7 +147,7 @@ namespace ANX.Framework.Graphics
|
|||||||
|
|
||||||
if (newEffect != null && !newEffectIsKnown)
|
if (newEffect != null && !newEffectIsKnown)
|
||||||
{
|
{
|
||||||
effects.Add(oldEffect);
|
effects.Add(newEffect);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -64,6 +64,12 @@ namespace ModelSample
|
|||||||
GraphicsDeviceManager graphics;
|
GraphicsDeviceManager graphics;
|
||||||
SpriteBatch spriteBatch;
|
SpriteBatch spriteBatch;
|
||||||
Model cubeModel;
|
Model cubeModel;
|
||||||
|
Effect effect;
|
||||||
|
bool overrideWithSimpleEffect = true;
|
||||||
|
|
||||||
|
Matrix world;
|
||||||
|
Matrix view;
|
||||||
|
Matrix projection;
|
||||||
|
|
||||||
public Game1()
|
public Game1()
|
||||||
{
|
{
|
||||||
@ -71,10 +77,36 @@ namespace ModelSample
|
|||||||
Content.RootDirectory = "SampleContent";
|
Content.RootDirectory = "SampleContent";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected override void Initialize()
|
||||||
|
{
|
||||||
|
const float nearplane = 1;
|
||||||
|
const float farplane = 100;
|
||||||
|
float aspect = (float)graphics.PreferredBackBufferWidth / (float)graphics.PreferredBackBufferHeight;
|
||||||
|
|
||||||
|
world = Matrix.Identity;
|
||||||
|
view = Matrix.CreateLookAt(Vector3.Backward * 10, world.Translation, Vector3.Up);
|
||||||
|
projection = Matrix.CreatePerspectiveFieldOfView(MathHelper.PiOver4, aspect, nearplane, farplane);
|
||||||
|
|
||||||
|
base.Initialize();
|
||||||
|
}
|
||||||
|
|
||||||
protected override void LoadContent()
|
protected override void LoadContent()
|
||||||
{
|
{
|
||||||
spriteBatch = new SpriteBatch(GraphicsDevice);
|
spriteBatch = new SpriteBatch(GraphicsDevice);
|
||||||
|
effect = Content.Load<Effect>("Effects/SimpleEffect");
|
||||||
cubeModel = Content.Load<Model>("Models/Cube");
|
cubeModel = Content.Load<Model>("Models/Cube");
|
||||||
|
|
||||||
|
// Ovrride the basic effect in the model for testing
|
||||||
|
if (overrideWithSimpleEffect)
|
||||||
|
{
|
||||||
|
foreach (var mesh in cubeModel.Meshes)
|
||||||
|
{
|
||||||
|
foreach (var part in mesh.MeshParts)
|
||||||
|
{
|
||||||
|
part.Effect = effect;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void Update(GameTime gameTime)
|
protected override void Update(GameTime gameTime)
|
||||||
@ -83,13 +115,32 @@ namespace ModelSample
|
|||||||
Keyboard.GetState().IsKeyDown(Keys.Escape))
|
Keyboard.GetState().IsKeyDown(Keys.Escape))
|
||||||
this.Exit();
|
this.Exit();
|
||||||
|
|
||||||
|
if (Keyboard.GetState().IsKeyDown(Keys.Space))
|
||||||
|
{
|
||||||
|
world = Matrix.Identity;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
world = Matrix.Identity * Matrix.CreateRotationX(MathHelper.PiOver4) * Matrix.CreateRotationY(MathHelper.PiOver4);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
base.Update(gameTime);
|
base.Update(gameTime);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void Draw(GameTime gameTime)
|
protected override void Draw(GameTime gameTime)
|
||||||
{
|
{
|
||||||
GraphicsDevice.Clear(Color.CornflowerBlue);
|
GraphicsDevice.Clear(Color.CornflowerBlue);
|
||||||
cubeModel.Draw(Matrix.Identity, Matrix.Identity, Matrix.Identity);
|
|
||||||
|
if (overrideWithSimpleEffect)
|
||||||
|
{
|
||||||
|
this.effect.Parameters["World"].SetValue(this.world);
|
||||||
|
this.effect.Parameters["View"].SetValue(this.view);
|
||||||
|
this.effect.Parameters["Projection"].SetValue(this.projection);
|
||||||
|
this.effect.CurrentTechnique.Passes[0].Apply();
|
||||||
|
}
|
||||||
|
|
||||||
|
cubeModel.Draw(world, view, projection);
|
||||||
base.Draw(gameTime);
|
base.Draw(gameTime);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
91
Samples/SampleContent/Effects/SimpleEffect.fx
Normal file
91
Samples/SampleContent/Effects/SimpleEffect.fx
Normal file
@ -0,0 +1,91 @@
|
|||||||
|
//
|
||||||
|
// This file is part of the ANX.Framework created by the "ANX.Framework developer group".
|
||||||
|
//
|
||||||
|
// This file is released under the Ms-PL license.
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// Microsoft Public License (Ms-PL)
|
||||||
|
//
|
||||||
|
// This license governs use of the accompanying software. If you use the software, you accept this license.
|
||||||
|
// If you do not accept the license, do not use the software.
|
||||||
|
//
|
||||||
|
// 1.Definitions
|
||||||
|
// The terms "reproduce," "reproduction," "derivative works," and "distribution" have the same meaning
|
||||||
|
// here as under U.S. copyright law.
|
||||||
|
// A "contribution" is the original software, or any additions or changes to the software.
|
||||||
|
// A "contributor" is any person that distributes its contribution under this license.
|
||||||
|
// "Licensed patents" are a contributor's patent claims that read directly on its contribution.
|
||||||
|
//
|
||||||
|
// 2.Grant of Rights
|
||||||
|
// (A) Copyright Grant- Subject to the terms of this license, including the license conditions and limitations
|
||||||
|
// in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to
|
||||||
|
// reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution
|
||||||
|
// or any derivative works that you create.
|
||||||
|
// (B) Patent Grant- Subject to the terms of this license, including the license conditions and limitations in
|
||||||
|
// section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed
|
||||||
|
// patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution
|
||||||
|
// in the software or derivative works of the contribution in the software.
|
||||||
|
//
|
||||||
|
// 3.Conditions and Limitations
|
||||||
|
// (A) No Trademark License- This license does not grant you rights to use any contributors' name, logo, or trademarks.
|
||||||
|
// (B) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your
|
||||||
|
// patent license from such contributor to the software ends automatically.
|
||||||
|
// (C) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution
|
||||||
|
// notices that are present in the software.
|
||||||
|
// (D) If you distribute any portion of the software in source code form, you may do so only under this license by including
|
||||||
|
// a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or
|
||||||
|
// object code form, you may only do so under a license that complies with this license.
|
||||||
|
// (E) The software is licensed "as-is." You bear the risk of using it. The contributors give no express warranties, guarantees,
|
||||||
|
// or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the
|
||||||
|
// extent permitted under your local laws, the contributors exclude the implied warranties of merchantability, fitness for a
|
||||||
|
// particular purpose and non-infringement.
|
||||||
|
|
||||||
|
uniform extern float4x4 World;
|
||||||
|
uniform extern float4x4 View;
|
||||||
|
uniform extern float4x4 Projection;
|
||||||
|
|
||||||
|
struct VertexShaderInput
|
||||||
|
{
|
||||||
|
// SV_POSITION semantic does not work. Results in an exception on draw call
|
||||||
|
// float4 Position : SV_POSITION;
|
||||||
|
|
||||||
|
float4 Position : POSITION0;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct VertexShaderOutput
|
||||||
|
{
|
||||||
|
// POSITION semantic does not work -> blank screen
|
||||||
|
// float4 Position : POSITION;
|
||||||
|
|
||||||
|
// POSITION semantic does not work -> blank screen
|
||||||
|
// float4 Position : POSITION0;
|
||||||
|
|
||||||
|
// SV_POSITION semantic does work
|
||||||
|
float4 Position : SV_POSITION;
|
||||||
|
};
|
||||||
|
|
||||||
|
VertexShaderOutput VertexShaderFunction(VertexShaderInput input)
|
||||||
|
{
|
||||||
|
VertexShaderOutput output;
|
||||||
|
|
||||||
|
float4 worldPosition = mul(input.Position.xyz, World);
|
||||||
|
float4 viewPosition = mul(worldPosition, View);
|
||||||
|
output.Position = mul(viewPosition, Projection);
|
||||||
|
|
||||||
|
return output;
|
||||||
|
}
|
||||||
|
|
||||||
|
float4 PixelShaderFunction(VertexShaderOutput input) : SV_TARGET
|
||||||
|
{
|
||||||
|
return float4(1, 0, 0, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
technique10 Technique1
|
||||||
|
{
|
||||||
|
pass Pass1
|
||||||
|
{
|
||||||
|
VertexShader = compile vs_4_0 VertexShaderFunction();
|
||||||
|
PixelShader = compile ps_4_0 PixelShaderFunction();
|
||||||
|
}
|
||||||
|
}
|
@ -119,6 +119,14 @@
|
|||||||
<ProcessorParameters_OutputFormat>DX10_HLSL</ProcessorParameters_OutputFormat>
|
<ProcessorParameters_OutputFormat>DX10_HLSL</ProcessorParameters_OutputFormat>
|
||||||
</Compile>
|
</Compile>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Compile Include="Effects\SimpleEffect.fx">
|
||||||
|
<Name>SimpleEffect</Name>
|
||||||
|
<Importer>EffectImporter</Importer>
|
||||||
|
<Processor>AnxEffectProcessor</Processor>
|
||||||
|
<ProcessorParameters_OutputFormat>DX10_HLSL</ProcessorParameters_OutputFormat>
|
||||||
|
</Compile>
|
||||||
|
</ItemGroup>
|
||||||
<Import Project="$(MSBuildExtensionsPath)\Microsoft\XNA Game Studio\$(XnaFrameworkVersion)\Microsoft.Xna.GameStudio.ContentPipeline.targets" />
|
<Import Project="$(MSBuildExtensionsPath)\Microsoft\XNA Game Studio\$(XnaFrameworkVersion)\Microsoft.Xna.GameStudio.ContentPipeline.targets" />
|
||||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||||
Other similar extension points exist, see Microsoft.Common.targets.
|
Other similar extension points exist, see Microsoft.Common.targets.
|
||||||
|
@ -111,7 +111,7 @@ namespace TextRendering
|
|||||||
spriteBatch.DrawString(this.debugFont, "This screen is powered by the ANX.Framework!\r\nsecond line", new Vector2(100, 100 + this.debugFont.LineSpacing), Color.Black, 0.0f, new Vector2(1, -1), Vector2.One, SpriteEffects.None, 0.0f);
|
spriteBatch.DrawString(this.debugFont, "This screen is powered by the ANX.Framework!\r\nsecond line", new Vector2(100, 100 + this.debugFont.LineSpacing), Color.Black, 0.0f, new Vector2(1, -1), Vector2.One, SpriteEffects.None, 0.0f);
|
||||||
spriteBatch.DrawString(this.debugFont, "This screen is powered by the ANX.Framework!\r\nsecond line", new Vector2(100, 100 + this.debugFont.LineSpacing), Color.Red, 0.0f, Vector2.Zero, Vector2.One, SpriteEffects.None, 1.0f);
|
spriteBatch.DrawString(this.debugFont, "This screen is powered by the ANX.Framework!\r\nsecond line", new Vector2(100, 100 + this.debugFont.LineSpacing), Color.Red, 0.0f, Vector2.Zero, Vector2.One, SpriteEffects.None, 1.0f);
|
||||||
spriteBatch.DrawString(this.debugFont, "Mouse X: " + Mouse.GetState().X, new Vector2(100, 100 + this.debugFont.LineSpacing * 3), Color.DarkOrange);
|
spriteBatch.DrawString(this.debugFont, "Mouse X: " + Mouse.GetState().X, new Vector2(100, 100 + this.debugFont.LineSpacing * 3), Color.DarkOrange);
|
||||||
spriteBatch.DrawString(this.debugFont, "Mouse Y:" + Mouse.GetState().Y, new Vector2(100, 100 + this.debugFont.LineSpacing * 4), Color.DarkOrange);
|
spriteBatch.DrawString(this.debugFont, "Mouse Y: " + Mouse.GetState().Y, new Vector2(100, 100 + this.debugFont.LineSpacing * 4), Color.DarkOrange);
|
||||||
spriteBatch.DrawString(this.debugFont, "rotated Text", new Vector2(100, 150), Color.Green, MathHelper.ToRadians(90), Vector2.Zero, 1.0f, SpriteEffects.None, 1.0f);
|
spriteBatch.DrawString(this.debugFont, "rotated Text", new Vector2(100, 150), Color.Green, MathHelper.ToRadians(90), Vector2.Zero, 1.0f, SpriteEffects.None, 1.0f);
|
||||||
|
|
||||||
GamePadState state = GamePad.GetState(PlayerIndex.One);
|
GamePadState state = GamePad.GetState(PlayerIndex.One);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user