Dan Stoza | f3730fb | 2013-11-26 15:10:10 -0800 | [diff] [blame^] | 1 | #ifndef ANDROID_GL_TEST_H |
| 2 | #define ANDROID_GL_TEST_H |
| 3 | |
| 4 | #include <gtest/gtest.h> |
| 5 | |
| 6 | #include <gui/SurfaceComposerClient.h> |
| 7 | |
| 8 | #include <EGL/egl.h> |
| 9 | #include <GLES/gl.h> |
| 10 | |
| 11 | namespace android { |
| 12 | |
| 13 | class GLTest : public ::testing::Test { |
| 14 | protected: |
| 15 | GLTest() : |
| 16 | mEglDisplay(EGL_NO_DISPLAY), |
| 17 | mEglSurface(EGL_NO_SURFACE), |
| 18 | mEglContext(EGL_NO_CONTEXT) { |
| 19 | } |
| 20 | |
| 21 | virtual void SetUp(); |
| 22 | virtual void TearDown(); |
| 23 | |
| 24 | virtual EGLint const* getConfigAttribs(); |
| 25 | virtual EGLint const* getContextAttribs(); |
| 26 | virtual EGLint getSurfaceWidth(); |
| 27 | virtual EGLint getSurfaceHeight(); |
| 28 | virtual EGLSurface createWindowSurface(EGLDisplay display, EGLConfig config, |
| 29 | sp<ANativeWindow>& window) const; |
| 30 | |
| 31 | ::testing::AssertionResult checkPixel(int x, int y, |
| 32 | int r, int g, int b, int a, int tolerance = 2); |
| 33 | ::testing::AssertionResult assertRectEq(const Rect &r1, const Rect &r2, |
| 34 | int tolerance = 1); |
| 35 | |
| 36 | static void loadShader(GLenum shaderType, const char* pSource, |
| 37 | GLuint* outShader); |
| 38 | static void createProgram(const char* pVertexSource, |
| 39 | const char* pFragmentSource, GLuint* outPgm); |
| 40 | |
| 41 | int mDisplaySecs; |
| 42 | sp<SurfaceComposerClient> mComposerClient; |
| 43 | sp<SurfaceControl> mSurfaceControl; |
| 44 | |
| 45 | EGLDisplay mEglDisplay; |
| 46 | EGLSurface mEglSurface; |
| 47 | EGLContext mEglContext; |
| 48 | EGLConfig mGlConfig; |
| 49 | }; |
| 50 | |
| 51 | } // namespace android |
| 52 | |
| 53 | #endif |