Added an identity flag to VertexBuffer11's conversions.

TRAC #22297 Signed-off-by: Jamie Madill Signed-off-by: Nicolas Capens Author: Geoff Lang git-svn-id: https://angleproject.googlecode.com/svn/branches/dx11proto@1884 736b8ea6-26fd-11df-bfd4-992fa37f6226
parent 76655416
......@@ -305,86 +305,86 @@ const VertexBuffer11::VertexConverter VertexBuffer11::mPossibleTranslations[NUM_
{
{ // GL_BYTE
{ // unnormalized
{ &copyToFloatVertexData<GLbyte, 1, false>, DXGI_FORMAT_R32_FLOAT, 4 },
{ &copyToFloatVertexData<GLbyte, 2, false>, DXGI_FORMAT_R32G32_FLOAT, 8 },
{ &copyToFloatVertexData<GLbyte, 3, false>, DXGI_FORMAT_R32G32B32_FLOAT, 12 },
{ &copyToFloatVertexData<GLbyte, 4, false>, DXGI_FORMAT_R32G32B32A32_FLOAT, 16 },
{ &copyToFloatVertexData<GLbyte, 1, false>, false, DXGI_FORMAT_R32_FLOAT, 4 },
{ &copyToFloatVertexData<GLbyte, 2, false>, false, DXGI_FORMAT_R32G32_FLOAT, 8 },
{ &copyToFloatVertexData<GLbyte, 3, false>, false, DXGI_FORMAT_R32G32B32_FLOAT, 12 },
{ &copyToFloatVertexData<GLbyte, 4, false>, false, DXGI_FORMAT_R32G32B32A32_FLOAT, 16 },
},
{ // normalized
{ &copyVertexData<GLbyte, 1, false, true>, DXGI_FORMAT_R8_SNORM, 1 },
{ &copyVertexData<GLbyte, 2, false, true>, DXGI_FORMAT_R8G8_SNORM, 2 },
{ &copyVertexData<GLbyte, 3, true, true>, DXGI_FORMAT_R8G8B8A8_SNORM, 4 },
{ &copyVertexData<GLbyte, 4, false, true>, DXGI_FORMAT_R8G8B8A8_SNORM, 4 },
{ &copyVertexData<GLbyte, 1, false, true>, true, DXGI_FORMAT_R8_SNORM, 1 },
{ &copyVertexData<GLbyte, 2, false, true>, true, DXGI_FORMAT_R8G8_SNORM, 2 },
{ &copyVertexData<GLbyte, 3, true, true>, false, DXGI_FORMAT_R8G8B8A8_SNORM, 4 },
{ &copyVertexData<GLbyte, 4, false, true>, true, DXGI_FORMAT_R8G8B8A8_SNORM, 4 },
},
},
{ // GL_UNSIGNED_BYTE
{ // unnormalized
{ &copyToFloatVertexData<GLubyte, 1, false>, DXGI_FORMAT_R32_FLOAT, 4 },
{ &copyToFloatVertexData<GLubyte, 2, false>, DXGI_FORMAT_R32G32_FLOAT, 8 },
{ &copyToFloatVertexData<GLubyte, 3, false>, DXGI_FORMAT_R32G32B32_FLOAT, 12 },
{ &copyToFloatVertexData<GLubyte, 4, false>, DXGI_FORMAT_R32G32B32A32_FLOAT, 16 },
{ &copyToFloatVertexData<GLubyte, 1, false>, false, DXGI_FORMAT_R32_FLOAT, 4 },
{ &copyToFloatVertexData<GLubyte, 2, false>, false, DXGI_FORMAT_R32G32_FLOAT, 8 },
{ &copyToFloatVertexData<GLubyte, 3, false>, false, DXGI_FORMAT_R32G32B32_FLOAT, 12 },
{ &copyToFloatVertexData<GLubyte, 4, false>, false, DXGI_FORMAT_R32G32B32A32_FLOAT, 16 },
},
{ // normalized
{ &copyVertexData<GLubyte, 1, false, true>, DXGI_FORMAT_R8_UNORM, 1 },
{ &copyVertexData<GLubyte, 2, false, true>, DXGI_FORMAT_R8G8_UNORM, 2 },
{ &copyVertexData<GLubyte, 3, true, true>, DXGI_FORMAT_R8G8B8A8_UNORM, 4 },
{ &copyVertexData<GLubyte, 4, false, true>, DXGI_FORMAT_R8G8B8A8_UNORM, 4 },
{ &copyVertexData<GLubyte, 1, false, true>, true, DXGI_FORMAT_R8_UNORM, 1 },
{ &copyVertexData<GLubyte, 2, false, true>, true, DXGI_FORMAT_R8G8_UNORM, 2 },
{ &copyVertexData<GLubyte, 3, true, true>, false, DXGI_FORMAT_R8G8B8A8_UNORM, 4 },
{ &copyVertexData<GLubyte, 4, false, true>, true, DXGI_FORMAT_R8G8B8A8_UNORM, 4 },
},
},
{ // GL_SHORT
{ // unnormalized
{ &copyToFloatVertexData<GLshort, 1, false>, DXGI_FORMAT_R32_FLOAT, 4 },
{ &copyToFloatVertexData<GLshort, 2, false>, DXGI_FORMAT_R32G32_FLOAT, 8 },
{ &copyToFloatVertexData<GLshort, 3, false>, DXGI_FORMAT_R32G32B32_FLOAT, 12 },
{ &copyToFloatVertexData<GLshort, 4, false>, DXGI_FORMAT_R32G32B32A32_FLOAT, 16 },
{ &copyToFloatVertexData<GLshort, 1, false>, false, DXGI_FORMAT_R32_FLOAT, 4 },
{ &copyToFloatVertexData<GLshort, 2, false>, false, DXGI_FORMAT_R32G32_FLOAT, 8 },
{ &copyToFloatVertexData<GLshort, 3, false>, false, DXGI_FORMAT_R32G32B32_FLOAT, 12 },
{ &copyToFloatVertexData<GLshort, 4, false>, false, DXGI_FORMAT_R32G32B32A32_FLOAT, 16 },
},
{ // normalized
{ &copyVertexData<GLshort, 1, false, true>, DXGI_FORMAT_R16_SNORM, 2 },
{ &copyVertexData<GLshort, 2, false, true>, DXGI_FORMAT_R16G16_SNORM, 4 },
{ &copyVertexData<GLshort, 3, true, true>, DXGI_FORMAT_R16G16B16A16_SNORM, 8 },
{ &copyVertexData<GLshort, 4, false, true>, DXGI_FORMAT_R16G16B16A16_SNORM, 8 },
{ &copyVertexData<GLshort, 1, false, true>, true, DXGI_FORMAT_R16_SNORM, 2 },
{ &copyVertexData<GLshort, 2, false, true>, true, DXGI_FORMAT_R16G16_SNORM, 4 },
{ &copyVertexData<GLshort, 3, true, true>, false, DXGI_FORMAT_R16G16B16A16_SNORM, 8 },
{ &copyVertexData<GLshort, 4, false, true>, true, DXGI_FORMAT_R16G16B16A16_SNORM, 8 },
},
},
{ // GL_UNSIGNED_SHORT
{ // unnormalized
{ &copyToFloatVertexData<GLushort, 1, false>, DXGI_FORMAT_R32_FLOAT, 4 },
{ &copyToFloatVertexData<GLushort, 2, false>, DXGI_FORMAT_R32G32_FLOAT, 8 },
{ &copyToFloatVertexData<GLushort, 3, false>, DXGI_FORMAT_R32G32B32_FLOAT, 12 },
{ &copyToFloatVertexData<GLushort, 4, false>, DXGI_FORMAT_R32G32B32A32_FLOAT, 16 },
{ &copyToFloatVertexData<GLushort, 1, false>, false, DXGI_FORMAT_R32_FLOAT, 4 },
{ &copyToFloatVertexData<GLushort, 2, false>, false, DXGI_FORMAT_R32G32_FLOAT, 8 },
{ &copyToFloatVertexData<GLushort, 3, false>, false, DXGI_FORMAT_R32G32B32_FLOAT, 12 },
{ &copyToFloatVertexData<GLushort, 4, false>, false, DXGI_FORMAT_R32G32B32A32_FLOAT, 16 },
},
{ // normalized
{ &copyVertexData<GLushort, 1, false, true>, DXGI_FORMAT_R16_UNORM, 2 },
{ &copyVertexData<GLushort, 2, false, true>, DXGI_FORMAT_R16G16_UNORM, 4 },
{ &copyVertexData<GLushort, 3, true, true>, DXGI_FORMAT_R16G16B16A16_UNORM, 8 },
{ &copyVertexData<GLushort, 4, false, true>, DXGI_FORMAT_R16G16B16A16_UNORM, 8 },
{ &copyVertexData<GLushort, 1, false, true>, true, DXGI_FORMAT_R16_UNORM, 2 },
{ &copyVertexData<GLushort, 2, false, true>, true, DXGI_FORMAT_R16G16_UNORM, 4 },
{ &copyVertexData<GLushort, 3, true, true>, false, DXGI_FORMAT_R16G16B16A16_UNORM, 8 },
{ &copyVertexData<GLushort, 4, false, true>, true, DXGI_FORMAT_R16G16B16A16_UNORM, 8 },
},
},
{ // GL_FIXED
{ // unnormalized
{ &copyFixedVertexData<1>, DXGI_FORMAT_R32_FLOAT, 4 },
{ &copyFixedVertexData<2>, DXGI_FORMAT_R32G32_FLOAT, 8 },
{ &copyFixedVertexData<3>, DXGI_FORMAT_R32G32B32_FLOAT, 12 },
{ &copyFixedVertexData<4>, DXGI_FORMAT_R32G32B32A32_FLOAT, 16 },
{ &copyFixedVertexData<1>, false, DXGI_FORMAT_R32_FLOAT, 4 },
{ &copyFixedVertexData<2>, false, DXGI_FORMAT_R32G32_FLOAT, 8 },
{ &copyFixedVertexData<3>, false, DXGI_FORMAT_R32G32B32_FLOAT, 12 },
{ &copyFixedVertexData<4>, false, DXGI_FORMAT_R32G32B32A32_FLOAT, 16 },
},
{ // normalized
{ &copyFixedVertexData<1>, DXGI_FORMAT_R32_FLOAT, 4 },
{ &copyFixedVertexData<2>, DXGI_FORMAT_R32G32_FLOAT, 8 },
{ &copyFixedVertexData<3>, DXGI_FORMAT_R32G32B32_FLOAT, 12 },
{ &copyFixedVertexData<4>, DXGI_FORMAT_R32G32B32A32_FLOAT, 16 },
{ &copyFixedVertexData<1>, false, DXGI_FORMAT_R32_FLOAT, 4 },
{ &copyFixedVertexData<2>, false, DXGI_FORMAT_R32G32_FLOAT, 8 },
{ &copyFixedVertexData<3>, false, DXGI_FORMAT_R32G32B32_FLOAT, 12 },
{ &copyFixedVertexData<4>, false, DXGI_FORMAT_R32G32B32A32_FLOAT, 16 },
},
},
{ // GL_FLOAT
{ // unnormalized
{ &copyVertexData<GLfloat, 1, false, false>, DXGI_FORMAT_R32_FLOAT, 4 },
{ &copyVertexData<GLfloat, 2, false, false>, DXGI_FORMAT_R32G32_FLOAT, 8 },
{ &copyVertexData<GLfloat, 3, false, false>, DXGI_FORMAT_R32G32B32_FLOAT, 12 },
{ &copyVertexData<GLfloat, 4, false, false>, DXGI_FORMAT_R32G32B32A32_FLOAT, 16 },
{ &copyVertexData<GLfloat, 1, false, false>, true, DXGI_FORMAT_R32_FLOAT, 4 },
{ &copyVertexData<GLfloat, 2, false, false>, true, DXGI_FORMAT_R32G32_FLOAT, 8 },
{ &copyVertexData<GLfloat, 3, false, false>, true, DXGI_FORMAT_R32G32B32_FLOAT, 12 },
{ &copyVertexData<GLfloat, 4, false, false>, true, DXGI_FORMAT_R32G32B32A32_FLOAT, 16 },
},
{ // normalized
{ &copyVertexData<GLfloat, 1, false, false>, DXGI_FORMAT_R32_FLOAT, 4 },
{ &copyVertexData<GLfloat, 2, false, false>, DXGI_FORMAT_R32G32_FLOAT, 8 },
{ &copyVertexData<GLfloat, 3, false, false>, DXGI_FORMAT_R32G32B32_FLOAT, 12 },
{ &copyVertexData<GLfloat, 4, false, false>, DXGI_FORMAT_R32G32B32A32_FLOAT, 16 },
{ &copyVertexData<GLfloat, 1, false, false>, true, DXGI_FORMAT_R32_FLOAT, 4 },
{ &copyVertexData<GLfloat, 2, false, false>, true, DXGI_FORMAT_R32G32_FLOAT, 8 },
{ &copyVertexData<GLfloat, 3, false, false>, true, DXGI_FORMAT_R32G32B32_FLOAT, 12 },
{ &copyVertexData<GLfloat, 4, false, false>, true, DXGI_FORMAT_R32G32B32A32_FLOAT, 16 },
},
},
};
......
......@@ -55,6 +55,7 @@ class VertexBuffer11 : public VertexBuffer
struct VertexConverter
{
VertexConversionFunction conversionFunc;
bool identity;
DXGI_FORMAT dxgiFormat;
unsigned int outputElementSize;
};
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment