Refactoring Shader objects

This change refactors shaders to no longer be dependent on D3D-only concepts.

BUG=angle:731
Change-Id: I4fc1efeba9df4f873b3d7c8ba6f67f00b6532b9c
Reviewed-on: https://chromium-review.googlesource.com/213803
Reviewed-by: Brandon Jones <bajones@chromium.org>
Tested-by: Brandon Jones <bajones@chromium.org>
diff --git a/src/libGLESv2/libGLESv2.cpp b/src/libGLESv2/libGLESv2.cpp
index aeeddcc..5dd0855 100644
--- a/src/libGLESv2/libGLESv2.cpp
+++ b/src/libGLESv2/libGLESv2.cpp
@@ -3584,7 +3584,12 @@
 {
     EVENT("()");
 
-    gl::Shader::releaseCompiler();
+    gl::Context *context = gl::getNonLostContext();
+
+    if (context)
+    {
+        context->releaseShaderCompiler();
+    }
 }
 
 void __stdcall glRenderbufferStorageMultisampleANGLE(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height)