Passes the Renderer to various objects at construction time.

TRAC #22000

Signed-off-by: Daniel Koch

Author:    Shannon Woods

git-svn-id: https://angleproject.googlecode.com/svn/branches/dx11proto@1406 736b8ea6-26fd-11df-bfd4-992fa37f6226
diff --git a/src/libGLESv2/Program.cpp b/src/libGLESv2/Program.cpp
index 5f53a1f..2a72e02 100644
--- a/src/libGLESv2/Program.cpp
+++ b/src/libGLESv2/Program.cpp
@@ -136,7 +136,7 @@
     }
 }
 
-Program::Program(ResourceManager *manager, GLuint handle) : mResourceManager(manager), mHandle(handle)
+Program::Program(rx::Renderer *renderer, ResourceManager *manager, GLuint handle) : mResourceManager(manager), mHandle(handle)
 {
     mFragmentShader = NULL;
     mVertexShader = NULL;
@@ -144,6 +144,7 @@
     mDeleteStatus = false;
     mLinked = false;
     mRefCount = 0;
+    mRenderer = renderer;
 }
 
 Program::~Program()
@@ -247,7 +248,7 @@
 
     mInfoLog.reset();
 
-    mProgramBinary.set(new ProgramBinary());
+    mProgramBinary.set(new ProgramBinary(mRenderer));
     mLinked = mProgramBinary->link(mInfoLog, mAttributeBindings, mFragmentShader, mVertexShader);
 
     return mLinked;
@@ -304,7 +305,7 @@
 
     mInfoLog.reset();
 
-    mProgramBinary.set(new ProgramBinary());
+    mProgramBinary.set(new ProgramBinary(mRenderer));
     mLinked = mProgramBinary->load(mInfoLog, binary, length);
     if (!mLinked)
     {