Mir
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
mock_egl.h
Go to the documentation of this file.
1 /*
2  * Copyright © 2012 Canonical Ltd.
3  *
4  * This program is free software: you can redistribute it and/or modify it
5  * under the terms of the GNU General Public License version 3,
6  * as published by the Free Software Foundation.
7  *
8  * This program is distributed in the hope that it will be useful,
9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11  * GNU General Public License for more details.
12  *
13  * You should have received a copy of the GNU General Public License
14  * along with this program. If not, see <http://www.gnu.org/licenses/>.
15  *
16  * Authored by: Thomas Voss <thomas.voss@canonical.com>
17  */
18 
19 #ifndef MIR_TEST_DOUBLES_MOCK_EGL_H_
20 #define MIR_TEST_DOUBLES_MOCK_EGL_H_
21 
22 #include <gmock/gmock.h>
23 
24 #define GL_GLEXT_PROTOTYPES
25 #define EGL_EGLEXT_PROTOTYPES
26 #include <EGL/egl.h>
27 #include <EGL/eglext.h>
28 //for GL extensions
29 #include <GLES2/gl2.h>
30 #include <GLES2/gl2ext.h>
31 
32 namespace mir
33 {
34 namespace test
35 {
36 namespace doubles
37 {
38 
39 class MockEGL
40 {
41 public:
42  MockEGL();
43  ~MockEGL();
44  void silence_uninteresting();
45 
46  typedef void (*generic_function_pointer_t)(void);
47 
48  MOCK_METHOD1(eglGetDisplay, EGLDisplay(NativeDisplayType));
49  MOCK_METHOD3(eglInitialize, EGLBoolean(EGLDisplay,EGLint*,EGLint*));
50  MOCK_METHOD1(eglTerminate, EGLBoolean(EGLDisplay));
51  MOCK_METHOD2(eglQueryString,const char*(EGLDisplay, EGLint));
52  MOCK_METHOD1(eglBindApi, EGLBoolean(EGLenum));
53  MOCK_METHOD1(eglGetProcAddress,generic_function_pointer_t(const char*));
54 
55  // Config management
56  MOCK_METHOD4(eglGetConfigs, EGLBoolean(EGLDisplay,EGLConfig*,EGLint,EGLint*));
57  MOCK_METHOD5(eglChooseConfig, EGLBoolean(EGLDisplay, const EGLint*,EGLConfig*,EGLint,EGLint*));
58  MOCK_METHOD4(eglGetConfigAttrib, EGLBoolean(EGLDisplay,EGLConfig,EGLint,EGLint*));
59 
60  // Surface management
61  MOCK_METHOD4(eglCreateWindowSurface, EGLSurface(EGLDisplay,EGLConfig,NativeWindowType,const EGLint*));
62  MOCK_METHOD4(eglCreatePixmapSurface, EGLSurface(EGLDisplay,EGLConfig,NativePixmapType,const EGLint*));
63  MOCK_METHOD3(eglCreatePbufferSurface, EGLSurface(EGLDisplay,EGLConfig,const EGLint*));
64  MOCK_METHOD2(eglDestroySurface, EGLBoolean(EGLDisplay,EGLSurface));
65  MOCK_METHOD4(eglQuerySurface, EGLBoolean(EGLDisplay,EGLSurface,EGLint,EGLint*));
66 
67  // EGL 1.1 render-to-texture APIs
68  MOCK_METHOD4(eglSurfaceAttrib, EGLBoolean(EGLDisplay,EGLSurface,EGLint,EGLint));
69  MOCK_METHOD3(eglBindTexImage, EGLBoolean(EGLDisplay,EGLSurface,EGLint));
70  MOCK_METHOD3(eglReleaseTexImage, EGLBoolean(EGLDisplay,EGLSurface,EGLint));
71 
72  // EGL 1.1 swap control API
73  MOCK_METHOD2(eglSwapInterval, EGLBoolean(EGLDisplay,EGLint));
74 
75  MOCK_METHOD4(eglCreateContext, EGLContext(EGLDisplay,EGLConfig,EGLContext,const EGLint*));
76  MOCK_METHOD2(eglDestroyContext, EGLBoolean(EGLDisplay,EGLContext));
77  MOCK_METHOD4(eglMakeCurrent, EGLBoolean(EGLDisplay,EGLSurface,EGLSurface,EGLContext));
78  MOCK_METHOD0(eglGetCurrentContext,EGLContext());
79  MOCK_METHOD1(eglGetCurrentSurface,EGLSurface(EGLint));
80  MOCK_METHOD0(eglGetCurrentDisplay, EGLDisplay());
81  MOCK_METHOD4(eglQueryContext, EGLBoolean(EGLDisplay,EGLContext,EGLint,EGLint*));
82 
83  MOCK_METHOD0(eglWaitGL, EGLBoolean());
84  MOCK_METHOD1(eglWaitNative, EGLBoolean(EGLint));
85  MOCK_METHOD2(eglSwapBuffers, EGLBoolean(EGLDisplay,EGLSurface));
86  MOCK_METHOD3(eglCopyBuffers, EGLBoolean(EGLDisplay,EGLSurface,NativePixmapType));
87 
88  MOCK_METHOD0(eglGetError, EGLint (void));
89 
90  MOCK_METHOD5(eglCreateImageKHR, EGLImageKHR(EGLDisplay, EGLContext, EGLenum, EGLClientBuffer, const EGLint*));
91  MOCK_METHOD2(eglDestroyImageKHR,EGLBoolean(EGLDisplay, EGLImageKHR));
92  MOCK_METHOD2(glEGLImageTargetTexture2DOES, void(GLenum, GLeglImageOES));
93 
94  EGLDisplay fake_egl_display;
95  EGLConfig* fake_configs;
97  EGLSurface fake_egl_surface;
98  EGLContext fake_egl_context;
99  EGLImageKHR fake_egl_image;
101 };
102 
103 }
104 }
105 }
106 
107 #endif /* MIR_TEST_DOUBLES_MOCK_EGL_H_ */

Copyright © 2012,2013 Canonical Ltd.
Generated on Wed Oct 30 18:52:19 UTC 2013