Move shader cache into Renderer
Trac #21727
git-svn-id: https://angleproject.googlecode.com/svn/branches/dx11proto@1333 736b8ea6-26fd-11df-bfd4-992fa37f6226
diff --git a/src/libGLESv2/ProgramBinary.cpp b/src/libGLESv2/ProgramBinary.cpp
index 7a1cccf..b0e541e 100644
--- a/src/libGLESv2/ProgramBinary.cpp
+++ b/src/libGLESv2/ProgramBinary.cpp
@@ -64,7 +64,8 @@
ProgramBinary::ProgramBinary() : RefCountObject(0), mSerial(issueSerial())
{
- mDevice = getDevice(); // D3D9_REPLACE
+ mRenderer = getDisplay()->getRenderer();
+ mDevice = mRenderer->getDevice(); // D3D9_REPLACE
mPixelExecutable = NULL;
mVertexExecutable = NULL;
@@ -1746,7 +1747,7 @@
ptr += sizeof(GUID);
// D3D9_REPLACE
- D3DADAPTER_IDENTIFIER9 *currentIdentifier = getDisplay()->getRenderer()->getAdapterIdentifier();
+ D3DADAPTER_IDENTIFIER9 *currentIdentifier = mRenderer->getAdapterIdentifier();
if (memcmp(¤tIdentifier->DeviceIdentifier, binaryIdentifier, sizeof(GUID)) != 0)
{
infoLog.append("Invalid program binary.");
@@ -1759,14 +1760,14 @@
const char *vertexShaderFunction = ptr;
ptr += vertexShaderSize;
- mPixelExecutable = getDisplay()->createPixelShader(reinterpret_cast<const DWORD*>(pixelShaderFunction), pixelShaderSize);
+ mPixelExecutable = mRenderer->createPixelShader(reinterpret_cast<const DWORD*>(pixelShaderFunction), pixelShaderSize);
if (!mPixelExecutable)
{
infoLog.append("Could not create pixel shader.");
return false;
}
- mVertexExecutable = getDisplay()->createVertexShader(reinterpret_cast<const DWORD*>(vertexShaderFunction), vertexShaderSize);
+ mVertexExecutable = mRenderer->createVertexShader(reinterpret_cast<const DWORD*>(vertexShaderFunction), vertexShaderSize);
if (!mVertexExecutable)
{
infoLog.append("Could not create vertex shader.");
@@ -1853,7 +1854,7 @@
stream.write(vertexShaderSize);
// D3D9_REPLACE
- D3DADAPTER_IDENTIFIER9 *identifier = getDisplay()->getRenderer()->getAdapterIdentifier();
+ D3DADAPTER_IDENTIFIER9 *identifier = mRenderer->getAdapterIdentifier();
GLsizei streamLength = stream.length();
const void *streamData = stream.data();
@@ -1940,13 +1941,13 @@
if (vertexBinary && pixelBinary)
{
- mVertexExecutable = getDisplay()->createVertexShader((DWORD*)vertexBinary->GetBufferPointer(), vertexBinary->GetBufferSize());
+ mVertexExecutable = mRenderer->createVertexShader((DWORD*)vertexBinary->GetBufferPointer(), vertexBinary->GetBufferSize());
if (!mVertexExecutable)
{
return error(GL_OUT_OF_MEMORY, false);
}
- mPixelExecutable = getDisplay()->createPixelShader((DWORD*)pixelBinary->GetBufferPointer(), pixelBinary->GetBufferSize());
+ mPixelExecutable = mRenderer->createPixelShader((DWORD*)pixelBinary->GetBufferPointer(), pixelBinary->GetBufferSize());
if (!mPixelExecutable)
{
mVertexExecutable->Release();