Get rid of ShaderExecutable9 usage in ProgramBinary

Trac #22155 Signed-off-by: Geoff Lang Signed-off-by: Nicolas Capens git-svn-id: https://angleproject.googlecode.com/svn/branches/dx11proto@1510 736b8ea6-26fd-11df-bfd4-992fa37f6226
parent 4f6024ad
...@@ -1643,26 +1643,23 @@ bool ProgramBinary::load(InfoLog &infoLog, const void *binary, GLsizei length) ...@@ -1643,26 +1643,23 @@ bool ProgramBinary::load(InfoLog &infoLog, const void *binary, GLsizei length)
const char *vertexShaderFunction = ptr; const char *vertexShaderFunction = ptr;
ptr += vertexShaderSize; ptr += vertexShaderSize;
rx::ShaderExecutable *executable; mPixelExecutable = mRenderer->loadExecutable(reinterpret_cast<const DWORD*>(pixelShaderFunction),
executable = mRenderer->loadExecutable(reinterpret_cast<const DWORD*>(pixelShaderFunction),
pixelShaderSize, GL_FRAGMENT_SHADER, NULL); pixelShaderSize, GL_FRAGMENT_SHADER, NULL);
if (!executable) if (!mPixelExecutable)
{ {
infoLog.append("Could not create pixel shader."); infoLog.append("Could not create pixel shader.");
return false; return false;
} }
mPixelExecutable = rx::ShaderExecutable9::makeShaderExecutable9(executable);
executable = mRenderer->loadExecutable(reinterpret_cast<const DWORD*>(vertexShaderFunction), mVertexExecutable = mRenderer->loadExecutable(reinterpret_cast<const DWORD*>(vertexShaderFunction),
vertexShaderSize, GL_VERTEX_SHADER, NULL); vertexShaderSize, GL_VERTEX_SHADER, NULL);
if (!executable) if (!mVertexExecutable)
{ {
infoLog.append("Could not create vertex shader."); infoLog.append("Could not create vertex shader.");
delete mPixelExecutable; delete mPixelExecutable;
mPixelExecutable = NULL; mPixelExecutable = NULL;
return false; return false;
} }
mVertexExecutable = rx::ShaderExecutable9::makeShaderExecutable9(executable);
return true; return true;
} }
...@@ -1822,14 +1819,12 @@ bool ProgramBinary::link(InfoLog &infoLog, const AttributeBindings &attributeBin ...@@ -1822,14 +1819,12 @@ bool ProgramBinary::link(InfoLog &infoLog, const AttributeBindings &attributeBin
bool success = true; bool success = true;
D3DConstantTable *constantTableVS = NULL; D3DConstantTable *constantTableVS = NULL;
D3DConstantTable *constantTablePS = NULL; D3DConstantTable *constantTablePS = NULL;
rx::ShaderExecutable *vertexExecutable = mRenderer->compileToExecutable(infoLog, vertexHLSL.c_str(), GL_VERTEX_SHADER); mVertexExecutable = mRenderer->compileToExecutable(infoLog, vertexHLSL.c_str(), GL_VERTEX_SHADER);
rx::ShaderExecutable *pixelExecutable = mRenderer->compileToExecutable(infoLog, pixelHLSL.c_str(), GL_FRAGMENT_SHADER); mPixelExecutable = mRenderer->compileToExecutable(infoLog, pixelHLSL.c_str(), GL_FRAGMENT_SHADER);
if (vertexExecutable && pixelExecutable) if (mVertexExecutable && mPixelExecutable)
{ {
mVertexExecutable = rx::ShaderExecutable9::makeShaderExecutable9(vertexExecutable); // D3D9_REPLACE
mPixelExecutable = rx::ShaderExecutable9::makeShaderExecutable9(pixelExecutable);
constantTableVS = mVertexExecutable->getConstantTable(); constantTableVS = mVertexExecutable->getConstantTable();
constantTablePS = mPixelExecutable->getConstantTable(); constantTablePS = mPixelExecutable->getConstantTable();
} }
...@@ -1838,10 +1833,10 @@ bool ProgramBinary::link(InfoLog &infoLog, const AttributeBindings &attributeBin ...@@ -1838,10 +1833,10 @@ bool ProgramBinary::link(InfoLog &infoLog, const AttributeBindings &attributeBin
infoLog.append("Failed to create D3D shaders."); infoLog.append("Failed to create D3D shaders.");
success = false; success = false;
delete vertexExecutable; delete mVertexExecutable;
vertexExecutable = NULL; mVertexExecutable = NULL;
delete pixelExecutable; delete mPixelExecutable;
pixelExecutable = NULL; mPixelExecutable = NULL;
} }
if (!linkAttributes(infoLog, attributeBindings, fragmentShader, vertexShader)) if (!linkAttributes(infoLog, attributeBindings, fragmentShader, vertexShader))
......
...@@ -23,7 +23,7 @@ ...@@ -23,7 +23,7 @@
#include "libGLESv2/mathutil.h" #include "libGLESv2/mathutil.h"
#include "libGLESv2/Shader.h" #include "libGLESv2/Shader.h"
#include "libGLESv2/renderer/ShaderExecutable9.h" #include "libGLESv2/renderer/ShaderExecutable.h"
namespace gl namespace gl
{ {
...@@ -188,8 +188,8 @@ class ProgramBinary : public RefCountObject ...@@ -188,8 +188,8 @@ class ProgramBinary : public RefCountObject
rx::Renderer9 *mRenderer; // D3D9_REPLACE rx::Renderer9 *mRenderer; // D3D9_REPLACE
IDirect3DDevice9 *mDevice; // D3D9_REPLACE IDirect3DDevice9 *mDevice; // D3D9_REPLACE
rx::ShaderExecutable9 *mPixelExecutable; // D3D9_REPLACE rx::ShaderExecutable *mPixelExecutable;
rx::ShaderExecutable9 *mVertexExecutable; // D3D9_REPLACE rx::ShaderExecutable *mVertexExecutable;
Attribute mLinkedAttribute[MAX_VERTEX_ATTRIBS]; Attribute mLinkedAttribute[MAX_VERTEX_ATTRIBS];
int mSemanticIndex[MAX_VERTEX_ATTRIBS]; int mSemanticIndex[MAX_VERTEX_ATTRIBS];
......
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