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_ ...@@ -305,86 +305,86 @@ const VertexBuffer11::VertexConverter VertexBuffer11::mPossibleTranslations[NUM_
{ {
{ // GL_BYTE { // GL_BYTE
{ // unnormalized { // unnormalized
{ &copyToFloatVertexData<GLbyte, 1, false>, DXGI_FORMAT_R32_FLOAT, 4 }, { &copyToFloatVertexData<GLbyte, 1, false>, false, DXGI_FORMAT_R32_FLOAT, 4 },
{ &copyToFloatVertexData<GLbyte, 2, false>, DXGI_FORMAT_R32G32_FLOAT, 8 }, { &copyToFloatVertexData<GLbyte, 2, false>, false, DXGI_FORMAT_R32G32_FLOAT, 8 },
{ &copyToFloatVertexData<GLbyte, 3, false>, DXGI_FORMAT_R32G32B32_FLOAT, 12 }, { &copyToFloatVertexData<GLbyte, 3, false>, false, DXGI_FORMAT_R32G32B32_FLOAT, 12 },
{ &copyToFloatVertexData<GLbyte, 4, false>, DXGI_FORMAT_R32G32B32A32_FLOAT, 16 }, { &copyToFloatVertexData<GLbyte, 4, false>, false, DXGI_FORMAT_R32G32B32A32_FLOAT, 16 },
}, },
{ // normalized { // normalized
{ &copyVertexData<GLbyte, 1, false, true>, DXGI_FORMAT_R8_SNORM, 1 }, { &copyVertexData<GLbyte, 1, false, true>, true, DXGI_FORMAT_R8_SNORM, 1 },
{ &copyVertexData<GLbyte, 2, false, true>, DXGI_FORMAT_R8G8_SNORM, 2 }, { &copyVertexData<GLbyte, 2, false, true>, true, DXGI_FORMAT_R8G8_SNORM, 2 },
{ &copyVertexData<GLbyte, 3, true, true>, DXGI_FORMAT_R8G8B8A8_SNORM, 4 }, { &copyVertexData<GLbyte, 3, true, true>, false, DXGI_FORMAT_R8G8B8A8_SNORM, 4 },
{ &copyVertexData<GLbyte, 4, false, true>, DXGI_FORMAT_R8G8B8A8_SNORM, 4 }, { &copyVertexData<GLbyte, 4, false, true>, true, DXGI_FORMAT_R8G8B8A8_SNORM, 4 },
}, },
}, },
{ // GL_UNSIGNED_BYTE { // GL_UNSIGNED_BYTE
{ // unnormalized { // unnormalized
{ &copyToFloatVertexData<GLubyte, 1, false>, DXGI_FORMAT_R32_FLOAT, 4 }, { &copyToFloatVertexData<GLubyte, 1, false>, false, DXGI_FORMAT_R32_FLOAT, 4 },
{ &copyToFloatVertexData<GLubyte, 2, false>, DXGI_FORMAT_R32G32_FLOAT, 8 }, { &copyToFloatVertexData<GLubyte, 2, false>, false, DXGI_FORMAT_R32G32_FLOAT, 8 },
{ &copyToFloatVertexData<GLubyte, 3, false>, DXGI_FORMAT_R32G32B32_FLOAT, 12 }, { &copyToFloatVertexData<GLubyte, 3, false>, false, DXGI_FORMAT_R32G32B32_FLOAT, 12 },
{ &copyToFloatVertexData<GLubyte, 4, false>, DXGI_FORMAT_R32G32B32A32_FLOAT, 16 }, { &copyToFloatVertexData<GLubyte, 4, false>, false, DXGI_FORMAT_R32G32B32A32_FLOAT, 16 },
}, },
{ // normalized { // normalized
{ &copyVertexData<GLubyte, 1, false, true>, DXGI_FORMAT_R8_UNORM, 1 }, { &copyVertexData<GLubyte, 1, false, true>, true, DXGI_FORMAT_R8_UNORM, 1 },
{ &copyVertexData<GLubyte, 2, false, true>, DXGI_FORMAT_R8G8_UNORM, 2 }, { &copyVertexData<GLubyte, 2, false, true>, true, DXGI_FORMAT_R8G8_UNORM, 2 },
{ &copyVertexData<GLubyte, 3, true, true>, DXGI_FORMAT_R8G8B8A8_UNORM, 4 }, { &copyVertexData<GLubyte, 3, true, true>, false, DXGI_FORMAT_R8G8B8A8_UNORM, 4 },
{ &copyVertexData<GLubyte, 4, false, true>, DXGI_FORMAT_R8G8B8A8_UNORM, 4 }, { &copyVertexData<GLubyte, 4, false, true>, true, DXGI_FORMAT_R8G8B8A8_UNORM, 4 },
}, },
}, },
{ // GL_SHORT { // GL_SHORT
{ // unnormalized { // unnormalized
{ &copyToFloatVertexData<GLshort, 1, false>, DXGI_FORMAT_R32_FLOAT, 4 }, { &copyToFloatVertexData<GLshort, 1, false>, false, DXGI_FORMAT_R32_FLOAT, 4 },
{ &copyToFloatVertexData<GLshort, 2, false>, DXGI_FORMAT_R32G32_FLOAT, 8 }, { &copyToFloatVertexData<GLshort, 2, false>, false, DXGI_FORMAT_R32G32_FLOAT, 8 },
{ &copyToFloatVertexData<GLshort, 3, false>, DXGI_FORMAT_R32G32B32_FLOAT, 12 }, { &copyToFloatVertexData<GLshort, 3, false>, false, DXGI_FORMAT_R32G32B32_FLOAT, 12 },
{ &copyToFloatVertexData<GLshort, 4, false>, DXGI_FORMAT_R32G32B32A32_FLOAT, 16 }, { &copyToFloatVertexData<GLshort, 4, false>, false, DXGI_FORMAT_R32G32B32A32_FLOAT, 16 },
}, },
{ // normalized { // normalized
{ &copyVertexData<GLshort, 1, false, true>, DXGI_FORMAT_R16_SNORM, 2 }, { &copyVertexData<GLshort, 1, false, true>, true, DXGI_FORMAT_R16_SNORM, 2 },
{ &copyVertexData<GLshort, 2, false, true>, DXGI_FORMAT_R16G16_SNORM, 4 }, { &copyVertexData<GLshort, 2, false, true>, true, DXGI_FORMAT_R16G16_SNORM, 4 },
{ &copyVertexData<GLshort, 3, true, true>, DXGI_FORMAT_R16G16B16A16_SNORM, 8 }, { &copyVertexData<GLshort, 3, true, true>, false, DXGI_FORMAT_R16G16B16A16_SNORM, 8 },
{ &copyVertexData<GLshort, 4, false, true>, DXGI_FORMAT_R16G16B16A16_SNORM, 8 }, { &copyVertexData<GLshort, 4, false, true>, true, DXGI_FORMAT_R16G16B16A16_SNORM, 8 },
}, },
}, },
{ // GL_UNSIGNED_SHORT { // GL_UNSIGNED_SHORT
{ // unnormalized { // unnormalized
{ &copyToFloatVertexData<GLushort, 1, false>, DXGI_FORMAT_R32_FLOAT, 4 }, { &copyToFloatVertexData<GLushort, 1, false>, false, DXGI_FORMAT_R32_FLOAT, 4 },
{ &copyToFloatVertexData<GLushort, 2, false>, DXGI_FORMAT_R32G32_FLOAT, 8 }, { &copyToFloatVertexData<GLushort, 2, false>, false, DXGI_FORMAT_R32G32_FLOAT, 8 },
{ &copyToFloatVertexData<GLushort, 3, false>, DXGI_FORMAT_R32G32B32_FLOAT, 12 }, { &copyToFloatVertexData<GLushort, 3, false>, false, DXGI_FORMAT_R32G32B32_FLOAT, 12 },
{ &copyToFloatVertexData<GLushort, 4, false>, DXGI_FORMAT_R32G32B32A32_FLOAT, 16 }, { &copyToFloatVertexData<GLushort, 4, false>, false, DXGI_FORMAT_R32G32B32A32_FLOAT, 16 },
}, },
{ // normalized { // normalized
{ &copyVertexData<GLushort, 1, false, true>, DXGI_FORMAT_R16_UNORM, 2 }, { &copyVertexData<GLushort, 1, false, true>, true, DXGI_FORMAT_R16_UNORM, 2 },
{ &copyVertexData<GLushort, 2, false, true>, DXGI_FORMAT_R16G16_UNORM, 4 }, { &copyVertexData<GLushort, 2, false, true>, true, DXGI_FORMAT_R16G16_UNORM, 4 },
{ &copyVertexData<GLushort, 3, true, true>, DXGI_FORMAT_R16G16B16A16_UNORM, 8 }, { &copyVertexData<GLushort, 3, true, true>, false, DXGI_FORMAT_R16G16B16A16_UNORM, 8 },
{ &copyVertexData<GLushort, 4, false, true>, DXGI_FORMAT_R16G16B16A16_UNORM, 8 }, { &copyVertexData<GLushort, 4, false, true>, true, DXGI_FORMAT_R16G16B16A16_UNORM, 8 },
}, },
}, },
{ // GL_FIXED { // GL_FIXED
{ // unnormalized { // unnormalized
{ &copyFixedVertexData<1>, DXGI_FORMAT_R32_FLOAT, 4 }, { &copyFixedVertexData<1>, false, DXGI_FORMAT_R32_FLOAT, 4 },
{ &copyFixedVertexData<2>, DXGI_FORMAT_R32G32_FLOAT, 8 }, { &copyFixedVertexData<2>, false, DXGI_FORMAT_R32G32_FLOAT, 8 },
{ &copyFixedVertexData<3>, DXGI_FORMAT_R32G32B32_FLOAT, 12 }, { &copyFixedVertexData<3>, false, DXGI_FORMAT_R32G32B32_FLOAT, 12 },
{ &copyFixedVertexData<4>, DXGI_FORMAT_R32G32B32A32_FLOAT, 16 }, { &copyFixedVertexData<4>, false, DXGI_FORMAT_R32G32B32A32_FLOAT, 16 },
}, },
{ // normalized { // normalized
{ &copyFixedVertexData<1>, DXGI_FORMAT_R32_FLOAT, 4 }, { &copyFixedVertexData<1>, false, DXGI_FORMAT_R32_FLOAT, 4 },
{ &copyFixedVertexData<2>, DXGI_FORMAT_R32G32_FLOAT, 8 }, { &copyFixedVertexData<2>, false, DXGI_FORMAT_R32G32_FLOAT, 8 },
{ &copyFixedVertexData<3>, DXGI_FORMAT_R32G32B32_FLOAT, 12 }, { &copyFixedVertexData<3>, false, DXGI_FORMAT_R32G32B32_FLOAT, 12 },
{ &copyFixedVertexData<4>, DXGI_FORMAT_R32G32B32A32_FLOAT, 16 }, { &copyFixedVertexData<4>, false, DXGI_FORMAT_R32G32B32A32_FLOAT, 16 },
}, },
}, },
{ // GL_FLOAT { // GL_FLOAT
{ // unnormalized { // unnormalized
{ &copyVertexData<GLfloat, 1, false, false>, DXGI_FORMAT_R32_FLOAT, 4 }, { &copyVertexData<GLfloat, 1, false, false>, true, DXGI_FORMAT_R32_FLOAT, 4 },
{ &copyVertexData<GLfloat, 2, false, false>, DXGI_FORMAT_R32G32_FLOAT, 8 }, { &copyVertexData<GLfloat, 2, false, false>, true, DXGI_FORMAT_R32G32_FLOAT, 8 },
{ &copyVertexData<GLfloat, 3, false, false>, DXGI_FORMAT_R32G32B32_FLOAT, 12 }, { &copyVertexData<GLfloat, 3, false, false>, true, DXGI_FORMAT_R32G32B32_FLOAT, 12 },
{ &copyVertexData<GLfloat, 4, false, false>, DXGI_FORMAT_R32G32B32A32_FLOAT, 16 }, { &copyVertexData<GLfloat, 4, false, false>, true, DXGI_FORMAT_R32G32B32A32_FLOAT, 16 },
}, },
{ // normalized { // normalized
{ &copyVertexData<GLfloat, 1, false, false>, DXGI_FORMAT_R32_FLOAT, 4 }, { &copyVertexData<GLfloat, 1, false, false>, true, DXGI_FORMAT_R32_FLOAT, 4 },
{ &copyVertexData<GLfloat, 2, false, false>, DXGI_FORMAT_R32G32_FLOAT, 8 }, { &copyVertexData<GLfloat, 2, false, false>, true, DXGI_FORMAT_R32G32_FLOAT, 8 },
{ &copyVertexData<GLfloat, 3, false, false>, DXGI_FORMAT_R32G32B32_FLOAT, 12 }, { &copyVertexData<GLfloat, 3, false, false>, true, DXGI_FORMAT_R32G32B32_FLOAT, 12 },
{ &copyVertexData<GLfloat, 4, false, false>, DXGI_FORMAT_R32G32B32A32_FLOAT, 16 }, { &copyVertexData<GLfloat, 4, false, false>, true, DXGI_FORMAT_R32G32B32A32_FLOAT, 16 },
}, },
}, },
}; };
......
...@@ -55,6 +55,7 @@ class VertexBuffer11 : public VertexBuffer ...@@ -55,6 +55,7 @@ class VertexBuffer11 : public VertexBuffer
struct VertexConverter struct VertexConverter
{ {
VertexConversionFunction conversionFunc; VertexConversionFunction conversionFunc;
bool identity;
DXGI_FORMAT dxgiFormat; DXGI_FORMAT dxgiFormat;
unsigned int outputElementSize; 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