diff options
Diffstat (limited to 'jni_mosaic/feature_mos/src/mosaic_renderer/WarpRenderer.h')
-rwxr-xr-x | jni_mosaic/feature_mos/src/mosaic_renderer/WarpRenderer.h | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/jni_mosaic/feature_mos/src/mosaic_renderer/WarpRenderer.h b/jni_mosaic/feature_mos/src/mosaic_renderer/WarpRenderer.h new file mode 100755 index 000000000..8e9a694ec --- /dev/null +++ b/jni_mosaic/feature_mos/src/mosaic_renderer/WarpRenderer.h @@ -0,0 +1,48 @@ +#pragma once + +#include "FrameBuffer.h" +#include "Renderer.h" + +#include <GLES2/gl2.h> + +#include <stdint.h> +#include <stdio.h> +#include <stdlib.h> + +class WarpRenderer: public Renderer { + public: + WarpRenderer(); + virtual ~WarpRenderer(); + + // Initialize OpenGL resources + // @return true if successful + bool InitializeGLProgram(); + + void SetViewportMatrix(int w, int h, int W, int H); + void SetScalingMatrix(float xscale, float yscale); + + bool DrawTexture(GLfloat *affine); + + private: + // Source code for shaders. + const char* VertexShaderSource() const; + const char* FragmentShaderSource() const; + + GLuint mTexHandle; // Handle to s_texture. + GLuint mTexCoordHandle; // Handle to a_texCoord. + GLuint mTriangleVerticesHandle; // Handle to vPosition. + + // Attribute locations + GLint mPositionLoc; + GLint mAffinetransLoc; + GLint mViewporttransLoc; + GLint mScalingtransLoc; + GLint mTexCoordLoc; + + GLfloat mViewportMatrix[16]; + GLfloat mScalingMatrix[16]; + + // Sampler location + GLint mSamplerLoc; +}; + |