Store the shader bytecode in ShaderExecutable to pass it to CreateInputLayout.
TRAC #22191
Signed-off-by: Shannon Woods
Signed-off-by: Daniel Koch
Author: Nicolas Capens
git-svn-id: https://angleproject.googlecode.com/svn/branches/dx11proto@1535 736b8ea6-26fd-11df-bfd4-992fa37f6226
diff --git a/src/libGLESv2/renderer/Renderer11.cpp b/src/libGLESv2/renderer/Renderer11.cpp
index a5813cc..3dd1612 100644
--- a/src/libGLESv2/renderer/Renderer11.cpp
+++ b/src/libGLESv2/renderer/Renderer11.cpp
@@ -683,8 +683,10 @@
{"TEXCOORD", 0, DXGI_FORMAT_R32G32B32_FLOAT, 0, 0, D3D11_INPUT_PER_VERTEX_DATA, 0}
};
+ ShaderExecutable *vertexExecutable = programBinary->getVertexExecutable();
+
ID3D11InputLayout *inputLayout = NULL;
- result = mDevice->CreateInputLayout(inputElementDescriptions, 1, NULL /*FIXME: vertex shader blob */, 0 /* FIXME: vertex shader size */, &inputLayout);
+ result = mDevice->CreateInputLayout(inputElementDescriptions, 1, vertexExecutable->getFunction(), vertexExecutable->getLength(), &inputLayout);
ASSERT(SUCCEEDED(result));
mDeviceContext->IASetInputLayout(inputLayout);
@@ -1178,7 +1180,7 @@
return NULL;
}
-ShaderExecutable *Renderer11::loadExecutable(const DWORD *function, size_t length, GLenum type, void *data)
+ShaderExecutable *Renderer11::loadExecutable(const void *function, size_t length, GLenum type, void *data)
{
ShaderExecutable11 *executable = NULL;
@@ -1192,7 +1194,7 @@
if (vshader)
{
- executable = new ShaderExecutable11(vshader);
+ executable = new ShaderExecutable11(function, length, vshader);
}
}
break;
@@ -1204,7 +1206,7 @@
if (pshader)
{
- executable = new ShaderExecutable11(pshader);
+ executable = new ShaderExecutable11(function, length, pshader);
}
}
break;