Remove duplication in Texture.
This commit is contained in:
committed by
RoosterDragon
parent
ce8112fb5a
commit
afe3e24cda
@@ -72,6 +72,15 @@ namespace OpenRA.Platforms.Default
|
|||||||
OpenGL.CheckGLError();
|
OpenGL.CheckGLError();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void SetData(IntPtr data, int width, int height)
|
||||||
|
{
|
||||||
|
PrepareTexture();
|
||||||
|
var glInternalFormat = OpenGL.Features.HasFlag(OpenGL.GLFeatures.GLES) ? OpenGL.GL_BGRA : OpenGL.GL_RGBA8;
|
||||||
|
OpenGL.glTexImage2D(OpenGL.GL_TEXTURE_2D, 0, glInternalFormat, width, height,
|
||||||
|
0, OpenGL.GL_BGRA, OpenGL.GL_UNSIGNED_BYTE, data);
|
||||||
|
OpenGL.CheckGLError();
|
||||||
|
}
|
||||||
|
|
||||||
public void SetData(byte[] colors, int width, int height)
|
public void SetData(byte[] colors, int width, int height)
|
||||||
{
|
{
|
||||||
VerifyThreadAffinity();
|
VerifyThreadAffinity();
|
||||||
@@ -82,14 +91,7 @@ namespace OpenRA.Platforms.Default
|
|||||||
unsafe
|
unsafe
|
||||||
{
|
{
|
||||||
fixed (byte* ptr = &colors[0])
|
fixed (byte* ptr = &colors[0])
|
||||||
{
|
SetData(new IntPtr(ptr), width, height);
|
||||||
var intPtr = new IntPtr((void*)ptr);
|
|
||||||
PrepareTexture();
|
|
||||||
var glInternalFormat = OpenGL.Features.HasFlag(OpenGL.GLFeatures.GLES) ? OpenGL.GL_BGRA : OpenGL.GL_RGBA8;
|
|
||||||
OpenGL.glTexImage2D(OpenGL.GL_TEXTURE_2D, 0, glInternalFormat, width, height,
|
|
||||||
0, OpenGL.GL_BGRA, OpenGL.GL_UNSIGNED_BYTE, intPtr);
|
|
||||||
OpenGL.CheckGLError();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -107,14 +109,7 @@ namespace OpenRA.Platforms.Default
|
|||||||
unsafe
|
unsafe
|
||||||
{
|
{
|
||||||
fixed (uint* ptr = &colors[0, 0])
|
fixed (uint* ptr = &colors[0, 0])
|
||||||
{
|
SetData(new IntPtr(ptr), width, height);
|
||||||
var intPtr = new IntPtr((void*)ptr);
|
|
||||||
PrepareTexture();
|
|
||||||
var glInternalFormat = OpenGL.Features.HasFlag(OpenGL.GLFeatures.GLES) ? OpenGL.GL_BGRA : OpenGL.GL_RGBA8;
|
|
||||||
OpenGL.glTexImage2D(OpenGL.GL_TEXTURE_2D, 0, glInternalFormat, width, height,
|
|
||||||
0, OpenGL.GL_BGRA, OpenGL.GL_UNSIGNED_BYTE, intPtr);
|
|
||||||
OpenGL.CheckGLError();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -178,11 +173,7 @@ namespace OpenRA.Platforms.Default
|
|||||||
throw new InvalidDataException("Non-power-of-two array {0}x{1}".F(width, height));
|
throw new InvalidDataException("Non-power-of-two array {0}x{1}".F(width, height));
|
||||||
|
|
||||||
Size = new Size(width, height);
|
Size = new Size(width, height);
|
||||||
PrepareTexture();
|
SetData(IntPtr.Zero, width, height);
|
||||||
var glInternalFormat = OpenGL.Features.HasFlag(OpenGL.GLFeatures.GLES) ? OpenGL.GL_BGRA : OpenGL.GL_RGBA8;
|
|
||||||
OpenGL.glTexImage2D(OpenGL.GL_TEXTURE_2D, 0, glInternalFormat, width, height,
|
|
||||||
0, OpenGL.GL_BGRA, OpenGL.GL_UNSIGNED_BYTE, IntPtr.Zero);
|
|
||||||
OpenGL.CheckGLError();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Dispose()
|
public void Dispose()
|
||||||
|
|||||||
Reference in New Issue
Block a user