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 WarpRenderer: public Renderer {
13   public:
14     WarpRenderer();
15     virtual ~WarpRenderer();
16 
17     // Initialize OpenGL resources
18     // @return true if successful
19     bool InitializeGLProgram();
20 
21     void SetViewportMatrix(int w, int h, int W, int H);
22     void SetScalingMatrix(float xscale, float yscale);
23 
24     bool DrawTexture(GLfloat *affine);
25 
26  private:
27     // Source code for shaders.
28     const char* VertexShaderSource() const;
29     const char* FragmentShaderSource() const;
30 
31     GLuint mTexHandle;                  // Handle to s_texture.
32     GLuint mTexCoordHandle;             // Handle to a_texCoord.
33     GLuint mTriangleVerticesHandle;     // Handle to vPosition.
34 
35     // Attribute locations
36     GLint  mPositionLoc;
37     GLint  mAffinetransLoc;
38     GLint  mViewporttransLoc;
39     GLint  mScalingtransLoc;
40     GLint  mTexCoordLoc;
41 
42     GLfloat mViewportMatrix[16];
43     GLfloat mScalingMatrix[16];
44 
45     // Sampler location
46     GLint mSamplerLoc;
47 };
48 
49