#pragma once #include "FrameBuffer.h" #include "Renderer.h" #include <GLES2/gl2.h> #include <stdint.h> #include <stdio.h> #include <stdlib.h> class SurfaceTextureRenderer: public Renderer { public: SurfaceTextureRenderer(); virtual ~SurfaceTextureRenderer(); // Initialize OpenGL resources // @return true if successful bool InitializeGLProgram(); bool DrawTexture(GLfloat *affine); void SetViewportMatrix(int w, int h, int W, int H); void SetScalingMatrix(float xscale, float yscale); void SetSTMatrix(float *stmat); private: // Source code for shaders. const char* VertexShaderSource() const; const char* FragmentShaderSource() const; // Attribute locations GLint mScalingtransLoc; GLint muSTMatrixHandle; GLint maPositionHandle; GLint maTextureHandle; GLfloat mViewportMatrix[16]; GLfloat mScalingMatrix[16]; GLfloat mSTMatrix[16]; };