[RenderEngine] Strip GLES implementation off Image and Surface.
Image and Surface contain GLES implementation details. This patch moves them to
dedicated classes and move all Surface/Image manipulation methods from
impl::RenderEngine to gl::GLES20RenderEngine.
BUG: 112585051
Test: Build, flash, boot and run some display validation.
Change-Id: I77327f79082dff8e87e0a9472baae0c794f047bf
diff --git a/services/surfaceflinger/RenderEngine/gl/GLES20RenderEngine.h b/services/surfaceflinger/RenderEngine/gl/GLES20RenderEngine.h
index c830184..e256f07 100644
--- a/services/surfaceflinger/RenderEngine/gl/GLES20RenderEngine.h
+++ b/services/surfaceflinger/RenderEngine/gl/GLES20RenderEngine.h
@@ -35,6 +35,9 @@
namespace gl {
+class GLImage;
+class GLSurface;
+
class GLES20RenderEngine : public impl::RenderEngine {
GLuint mProtectedTexName;
GLint mMaxViewportDims[2];
@@ -60,6 +63,18 @@
GLES20RenderEngine(uint32_t featureFlags); // See RenderEngine::FeatureFlag
virtual ~GLES20RenderEngine();
+ std::unique_ptr<renderengine::Surface> createSurface() override;
+ std::unique_ptr<renderengine::Image> createImage() override;
+
+ void primeCache() const override;
+
+ bool isCurrent() const;
+ bool setCurrentSurface(const Surface& surface) override;
+ void resetCurrentSurface() override;
+
+ void bindExternalTextureImage(uint32_t texName, const renderengine::Image& image) override;
+
+
protected:
virtual void dump(String8& result);
virtual void setViewportAndProjection(size_t vpw, size_t vph, Rect sourceCrop, size_t hwh,