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 12class 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