blob: 5ba112835cab04d12e873618c5e5d98e38440d32 [file] [log] [blame]
Dan Stozaf3730fb2013-11-26 15:10:10 -08001#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
11namespace android {
12
13class GLTest : public ::testing::Test {
14protected:
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