1 #pragma once 2 3 #include "FrameBuffer.h" 4 #include "Renderer.h" 5 6 #include <GLES2/gl2.h> 7 8 #include <stdint.h> 9 #include <stdio.h> 10 #include <stdlib.h> 11 12 class SurfaceTextureRenderer: public Renderer { 13 public: 14 SurfaceTextureRenderer(); 15 virtual ~SurfaceTextureRenderer(); 16 17 // Initialize OpenGL resources 18 // @return true if successful 19 bool InitializeGLProgram(); 20 21 bool DrawTexture(GLfloat *affine); 22 23 void SetViewportMatrix(int w, int h, int W, int H); 24 void SetScalingMatrix(float xscale, float yscale); 25 void SetSTMatrix(float *stmat); 26 27 private: 28 // Source code for shaders. 29 const char* VertexShaderSource() const; 30 const char* FragmentShaderSource() const; 31 32 // Attribute locations 33 GLint mScalingtransLoc; 34 GLint muSTMatrixHandle; 35 GLint maPositionHandle; 36 GLint maTextureHandle; 37 38 GLfloat mViewportMatrix[16]; 39 GLfloat mScalingMatrix[16]; 40 41 GLfloat mSTMatrix[16]; 42 43 }; 44 45