Implement Renderer11::applyShaders.

TRAC #22153
Signed-off-by: Daniel Koch
Signed-off-by: Geoff Lang
Author: Nicolas Capens

git-svn-id: https://angleproject.googlecode.com/svn/branches/dx11proto@1541 736b8ea6-26fd-11df-bfd4-992fa37f6226
diff --git a/src/libGLESv2/renderer/Renderer11.cpp b/src/libGLESv2/renderer/Renderer11.cpp
index 41e6fc7..82f3b2a 100644
--- a/src/libGLESv2/renderer/Renderer11.cpp
+++ b/src/libGLESv2/renderer/Renderer11.cpp
@@ -717,8 +717,18 @@
 
 void Renderer11::applyShaders(gl::ProgramBinary *programBinary)
 {
-    // TODO
-    UNIMPLEMENTED();
+    ShaderExecutable *vertexExe = programBinary->getVertexExecutable();
+    ShaderExecutable *pixelExe = programBinary->getPixelExecutable();
+
+    ID3D11VertexShader *vertexShader = NULL;
+    if (vertexExe) vertexShader = ShaderExecutable11::makeShaderExecutable11(vertexExe)->getVertexShader();
+
+    ID3D11PixelShader *pixelShader = NULL;
+    if (pixelExe) pixelShader = ShaderExecutable11::makeShaderExecutable11(pixelExe)->getPixelShader();
+
+    mDeviceContext->PSSetShader(pixelShader, NULL, 0);
+    mDeviceContext->VSSetShader(vertexShader, NULL, 0);
+    programBinary->dirtyAllUniforms();
 }
 
 void Renderer11::clear(const gl::ClearParameters &clearParams, gl::Framebuffer *frameBuffer)