Index: gpu/command_buffer/service/shader_translator.h |
diff --git a/gpu/command_buffer/service/shader_translator.h b/gpu/command_buffer/service/shader_translator.h |
index ef25ebb5592ece8e49fc6f707b76b91768c2bb61..818be5d22241c4550979c99f6770039f3015aa19 100644 |
--- a/gpu/command_buffer/service/shader_translator.h |
+++ b/gpu/command_buffer/service/shader_translator.h |
@@ -27,8 +27,10 @@ typedef base::hash_map<std::string, std::string> NameMap; |
// Translates a GLSL ES 2.0 shader to desktop GLSL shader, or just |
// validates GLSL ES 2.0 shaders on a true GLSL ES implementation. |
-class ShaderTranslatorInterface { |
+class ShaderTranslatorInterface |
+ : public base::RefCounted<ShaderTranslatorInterface> { |
public: |
+ ShaderTranslatorInterface() {} |
enum GlslImplementationType { |
kGlsl, |
kGlslES |
@@ -62,12 +64,15 @@ class ShaderTranslatorInterface { |
protected: |
virtual ~ShaderTranslatorInterface() {} |
+ |
+ private: |
+ friend class base::RefCounted<ShaderTranslatorInterface>; |
+ DISALLOW_COPY_AND_ASSIGN(ShaderTranslatorInterface); |
}; |
// Implementation of ShaderTranslatorInterface |
class GPU_EXPORT ShaderTranslator |
- : public base::RefCounted<ShaderTranslator>, |
- NON_EXPORTED_BASE(public ShaderTranslatorInterface) { |
+ : NON_EXPORTED_BASE(public ShaderTranslatorInterface) { |
public: |
class DestructionObserver { |
public: |
@@ -104,17 +109,14 @@ class GPU_EXPORT ShaderTranslator |
void RemoveDestructionObserver(DestructionObserver* observer); |
private: |
- friend class base::RefCounted<ShaderTranslator>; |
- |
~ShaderTranslator() override; |
+ |
int GetCompileOptions() const; |
ShHandle compiler_; |
bool implementation_is_glsl_es_; |
ShCompileOptions driver_bug_workarounds_; |
ObserverList<DestructionObserver> destruction_observers_; |
- |
- DISALLOW_COPY_AND_ASSIGN(ShaderTranslator); |
}; |
} // namespace gles2 |