diff --git a/RenderSystems/ANX.Framework.Windows.GL3/BlendStateGL3.cs b/RenderSystems/ANX.Framework.Windows.GL3/BlendStateGL3.cs
index 4a5ee928..9a094b69 100644
--- a/RenderSystems/ANX.Framework.Windows.GL3/BlendStateGL3.cs
+++ b/RenderSystems/ANX.Framework.Windows.GL3/BlendStateGL3.cs
@@ -190,28 +190,30 @@ namespace ANX.Framework.Windows.GL3
{
IsBound = true;
- GL.BlendEquationSeparate(
- TranslateBlendFunction(ColorBlendFunction),
- TranslateBlendFunction(AlphaBlendFunction));
- ErrorHelper.Check("BlendEquationSeparate");
+ GL.Enable(EnableCap.Blend);
- GL.BlendFuncSeparate(
- TranslateBlendSrc(ColorSourceBlend),
- TranslateBlendDest(ColorDestinationBlend),
- TranslateBlendSrc(AlphaSourceBlend),
- TranslateBlendDest(AlphaDestinationBlend));
- ErrorHelper.Check("BlendFuncSeparate");
+ GL.BlendEquationSeparate(
+ TranslateBlendFunction(ColorBlendFunction),
+ TranslateBlendFunction(AlphaBlendFunction));
+ ErrorHelper.Check("BlendEquationSeparate");
- SetColorWriteChannel(0, ColorWriteChannels);
- SetColorWriteChannel(1, ColorWriteChannels1);
- SetColorWriteChannel(2, ColorWriteChannels2);
- SetColorWriteChannel(3, ColorWriteChannels3);
+ GL.BlendFuncSeparate(
+ TranslateBlendSrc(ColorSourceBlend),
+ TranslateBlendDest(ColorDestinationBlend),
+ TranslateBlendSrc(AlphaSourceBlend),
+ TranslateBlendDest(AlphaDestinationBlend));
+ ErrorHelper.Check("BlendFuncSeparate");
- GL.BlendColor(BlendFactor.R * DatatypesMapping.ColorMultiplier,
- BlendFactor.G * DatatypesMapping.ColorMultiplier,
- BlendFactor.B * DatatypesMapping.ColorMultiplier,
- BlendFactor.A * DatatypesMapping.ColorMultiplier);
- ErrorHelper.Check("BlendColor");
+ SetColorWriteChannel(0, ColorWriteChannels);
+ SetColorWriteChannel(1, ColorWriteChannels1);
+ SetColorWriteChannel(2, ColorWriteChannels2);
+ SetColorWriteChannel(3, ColorWriteChannels3);
+
+ GL.BlendColor(BlendFactor.R * DatatypesMapping.ColorMultiplier,
+ BlendFactor.G * DatatypesMapping.ColorMultiplier,
+ BlendFactor.B * DatatypesMapping.ColorMultiplier,
+ BlendFactor.A * DatatypesMapping.ColorMultiplier);
+ ErrorHelper.Check("BlendColor");
// TODO: multi sample mask
}
@@ -245,14 +247,10 @@ namespace ANX.Framework.Windows.GL3
/// Mask channels to enable.
private void SetColorWriteChannel(int index, ColorWriteChannels channels)
{
- bool r = (channels == Graphics.ColorWriteChannels.All ||
- channels == Graphics.ColorWriteChannels.Red);
- bool g = (channels == Graphics.ColorWriteChannels.All ||
- channels == Graphics.ColorWriteChannels.Green);
- bool b = (channels == Graphics.ColorWriteChannels.All ||
- channels == Graphics.ColorWriteChannels.Blue);
- bool a = (channels == Graphics.ColorWriteChannels.All ||
- channels == Graphics.ColorWriteChannels.Alpha);
+ bool r = (channels & Graphics.ColorWriteChannels.Red) == Graphics.ColorWriteChannels.Red;
+ bool g = (channels & Graphics.ColorWriteChannels.Green) == Graphics.ColorWriteChannels.Green;
+ bool b = (channels & Graphics.ColorWriteChannels.Blue) == Graphics.ColorWriteChannels.Blue;
+ bool a = (channels & Graphics.ColorWriteChannels.Alpha) == Graphics.ColorWriteChannels.Alpha;
GL.ColorMask(index, r, g, b, a);
ErrorHelper.Check("ColorMask");
@@ -358,24 +356,25 @@ namespace ANX.Framework.Windows.GL3
/// OpenGL Blend Equation Mode.
private BlendEquationMode TranslateBlendFunction(BlendFunction func)
{
- switch (func)
- {
- default:
- case BlendFunction.Add:
- return BlendEquationMode.FuncAdd;
+ switch (func)
+ {
+ case BlendFunction.Add:
+ return BlendEquationMode.FuncAdd;
- case BlendFunction.Subtract:
- return BlendEquationMode.FuncSubtract;
+ case BlendFunction.Subtract:
+ return BlendEquationMode.FuncSubtract;
- case BlendFunction.ReverseSubtract:
- return BlendEquationMode.FuncReverseSubtract;
+ case BlendFunction.ReverseSubtract:
+ return BlendEquationMode.FuncReverseSubtract;
- case BlendFunction.Min:
- return BlendEquationMode.Min;
+ case BlendFunction.Min:
+ return BlendEquationMode.Min;
- case BlendFunction.Max:
- return BlendEquationMode.Max;
- }
+ case BlendFunction.Max:
+ return BlendEquationMode.Max;
+ }
+
+ throw new ArgumentException("don't know how to translate BlendFunction '" + func.ToString() + "' to BlendEquationMode");
}
#endregion
}
diff --git a/RenderSystems/ANX.Framework.Windows.GL3/GraphicsDeviceWindowsGL3.cs b/RenderSystems/ANX.Framework.Windows.GL3/GraphicsDeviceWindowsGL3.cs
index 39a914fd..954bdd12 100644
--- a/RenderSystems/ANX.Framework.Windows.GL3/GraphicsDeviceWindowsGL3.cs
+++ b/RenderSystems/ANX.Framework.Windows.GL3/GraphicsDeviceWindowsGL3.cs
@@ -158,7 +158,7 @@ namespace ANX.Framework.Windows.GL3
nativeWindowInfo = Utilities.CreateWindowsWindowInfo(
presentationParameters.DeviceWindowHandle);
- GraphicsMode graphicsMode = new GraphicsMode(
+ GraphicsMode graphicsMode = new GraphicsMode(
DatatypesMapping.SurfaceToColorFormat(
presentationParameters.BackBufferFormat),
depth, stencil,
diff --git a/RenderSystems/ANX.Framework.Windows.GL3/Properties/AssemblyInfo.cs b/RenderSystems/ANX.Framework.Windows.GL3/Properties/AssemblyInfo.cs
index bfd713e3..c43b02c4 100644
--- a/RenderSystems/ANX.Framework.Windows.GL3/Properties/AssemblyInfo.cs
+++ b/RenderSystems/ANX.Framework.Windows.GL3/Properties/AssemblyInfo.cs
@@ -32,7 +32,7 @@ using System.Runtime.InteropServices;
// Sie können alle Werte angeben oder die standardmäßigen Build- und Revisionsnummern
// übernehmen, indem Sie "*" eingeben:
// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("0.5.5.0")]
-[assembly: AssemblyFileVersion("0.5.5.0")]
+[assembly: AssemblyVersion("0.5.6.0")]
+[assembly: AssemblyFileVersion("0.5.6.0")]
[assembly: InternalsVisibleTo("ANX.Framework.ContentPipeline")]
diff --git a/RenderSystems/ANX.Framework.Windows.GL3/Texture2DGL3.cs b/RenderSystems/ANX.Framework.Windows.GL3/Texture2DGL3.cs
index 1120c3fa..2972c674 100644
--- a/RenderSystems/ANX.Framework.Windows.GL3/Texture2DGL3.cs
+++ b/RenderSystems/ANX.Framework.Windows.GL3/Texture2DGL3.cs
@@ -125,7 +125,7 @@ namespace ANX.Framework.Windows.GL3
int wrapMode = (int)All.ClampToEdge;
int filter = (int)(mipCount > 1 ? All.LinearMipmapLinear : All.Linear);
-
+
GL.TexParameter(TextureTarget.Texture2D,
TextureParameterName.TextureWrapS, wrapMode);
GL.TexParameter(TextureTarget.Texture2D,
@@ -147,7 +147,7 @@ namespace ANX.Framework.Windows.GL3
public void SetData(GraphicsDevice graphicsDevice, T[] data)
where T : struct
{
- SetData(graphicsDevice, data, 0, data.Length);
+ SetData(graphicsDevice, 0, data, 0, data.Length);
}
public void SetData(GraphicsDevice graphicsDevice, T[] data,
@@ -186,9 +186,9 @@ namespace ANX.Framework.Windows.GL3
}
else
{
- GL.TexImage2D(TextureTarget.Texture2D, 0, nativeFormat,
- width, height, 0, (PixelFormat)nativeFormat,
- PixelType.UnsignedByte, dataPointer);
+ GL.TexImage2D(TextureTarget.Texture2D, 0, nativeFormat,
+ width, height, 0, (PixelFormat)nativeFormat,
+ PixelType.UnsignedByte, dataPointer);
#if DEBUG
ErrorHelper.Check("TexImage2D Format=" + nativeFormat);
#endif
diff --git a/RenderSystems/ANX.Framework.Windows.GL3/VertexBufferGL3.cs b/RenderSystems/ANX.Framework.Windows.GL3/VertexBufferGL3.cs
index 60fd2c7c..c39b81d6 100644
--- a/RenderSystems/ANX.Framework.Windows.GL3/VertexBufferGL3.cs
+++ b/RenderSystems/ANX.Framework.Windows.GL3/VertexBufferGL3.cs
@@ -215,7 +215,7 @@ namespace ANX.Framework.Windows.GL3
GL.EnableVertexAttribArray(col);
ErrorHelper.Check("EnableVertexAttribArray col");
GL.VertexAttribPointer(col, 4, VertexAttribPointerType.UnsignedByte,
- false, vertexDeclaration.VertexStride, element.Offset);
+ true, vertexDeclaration.VertexStride, element.Offset);
ErrorHelper.Check("VertexAttribPointer col");
break;
diff --git a/Samples/SimpleSprite/Game1.cs b/Samples/SimpleSprite/Game1.cs
index 6a1e24b4..5f43357e 100644
--- a/Samples/SimpleSprite/Game1.cs
+++ b/Samples/SimpleSprite/Game1.cs
@@ -108,10 +108,17 @@ namespace WindowsGame1
// Create a new SpriteBatch, which can be used to draw textures.
spriteBatch = new SpriteBatch(GraphicsDevice);
- //this.texture = Content.Load(@"Textures/DotColor4x4");
+ //this.alternateTexture = Content.Load(@"Textures/DotColor4x4");
this.alternateTexture = Content.Load(@"Textures/DotWhiteTopLeft5x5");
this.texture = Content.Load(@"Textures/ANX.logo");
- //this.texture = new Texture2D(GraphicsDevice, 64, 64);
+
+ //this.alternateTexture = new Texture2D(GraphicsDevice, 64, 64);
+ //Color[] color = new Color[this.alternateTexture.Width * this.alternateTexture.Height];
+ //for (int i = 0; i < color.Length; i++)
+ //{
+ // color[i] = new Color(1.0f, 1.0f, 0, 0.5f);
+ //}
+ //this.alternateTexture.SetData(color);
}
///