19 #ifndef MIR_TEST_DOUBLES_MOCK_EGL_H_ 20 #define MIR_TEST_DOUBLES_MOCK_EGL_H_ 22 #include <gmock/gmock.h> 26 #include <unordered_map> 28 #ifndef GL_GLEXT_PROTOTYPES 29 #define GL_GLEXT_PROTOTYPES 31 #define EGL_EGLEXT_PROTOTYPES 33 #include <EGL/eglext.h> 35 #include <GLES2/gl2.h> 36 #include <GLES2/gl2ext.h> 45 MATCHER_P(AttrMatches, val, std::string(
"matches"))
48 while ((val[i] != EGL_NONE) && (arg[i] != EGL_NONE))
55 if ((val[i] == EGL_NONE) && (arg[i] == EGL_NONE))
64 bool attrib_position =
true;
65 bool attrib_found =
false;
67 while (!attrib_position || *arg != EGL_NONE)
69 if (attrib_position && *arg == attrib)
73 else if (!attrib_position)
75 if (attrib_found && *arg == value)
82 attrib_position = !attrib_position;
108 MOCK_METHOD3(eglInitialize, EGLBoolean(EGLDisplay,EGLint*,EGLint*));
110 MOCK_METHOD2(eglQueryString,
const char*(EGLDisplay, EGLint));
115 MOCK_METHOD4(eglGetConfigs, EGLBoolean(EGLDisplay,EGLConfig*,EGLint,EGLint*));
116 MOCK_METHOD5(eglChooseConfig, EGLBoolean(EGLDisplay,
const EGLint*,EGLConfig*,EGLint,EGLint*));
117 MOCK_METHOD4(eglGetConfigAttrib, EGLBoolean(EGLDisplay,EGLConfig,EGLint,EGLint*));
120 MOCK_METHOD4(eglCreateWindowSurface, EGLSurface(EGLDisplay,EGLConfig,AnyNativeType,
const EGLint*));
121 MOCK_METHOD4(eglCreatePixmapSurface, EGLSurface(EGLDisplay,EGLConfig,AnyNativeType,
const EGLint*));
122 MOCK_METHOD3(eglCreatePbufferSurface, EGLSurface(EGLDisplay,EGLConfig,
const EGLint*));
123 MOCK_METHOD2(eglDestroySurface, EGLBoolean(EGLDisplay,EGLSurface));
124 MOCK_METHOD4(eglQuerySurface, EGLBoolean(EGLDisplay,EGLSurface,EGLint,EGLint*));
127 MOCK_METHOD4(eglSurfaceAttrib, EGLBoolean(EGLDisplay,EGLSurface,EGLint,EGLint));
128 MOCK_METHOD3(eglBindTexImage, EGLBoolean(EGLDisplay,EGLSurface,EGLint));
129 MOCK_METHOD3(eglReleaseTexImage, EGLBoolean(EGLDisplay,EGLSurface,EGLint));
132 MOCK_METHOD2(eglSwapInterval, EGLBoolean(EGLDisplay,EGLint));
134 MOCK_METHOD4(eglCreateContext, EGLContext(EGLDisplay,EGLConfig,EGLContext,
const EGLint*));
135 MOCK_METHOD2(eglDestroyContext, EGLBoolean(EGLDisplay,EGLContext));
136 MOCK_METHOD4(eglMakeCurrent, EGLBoolean(EGLDisplay,EGLSurface,EGLSurface,EGLContext));
140 MOCK_METHOD4(eglQueryContext, EGLBoolean(EGLDisplay,EGLContext,EGLint,EGLint*));
144 MOCK_METHOD2(eglSwapBuffers, EGLBoolean(EGLDisplay,EGLSurface));
145 MOCK_METHOD3(eglCopyBuffers, EGLBoolean(EGLDisplay,EGLSurface,AnyNativeType));
149 MOCK_METHOD5(eglCreateImageKHR, EGLImageKHR(EGLDisplay, EGLContext, EGLenum, EGLClientBuffer,
const EGLint*));
150 MOCK_METHOD2(eglDestroyImageKHR,EGLBoolean(EGLDisplay, EGLImageKHR));
151 MOCK_METHOD2(glEGLImageTargetTexture2DOES,
void(GLenum, GLeglImageOES));
153 MOCK_METHOD3(eglCreateSyncKHR, EGLSyncKHR(EGLDisplay, EGLenum, EGLint
const*));
154 MOCK_METHOD2(eglDestroySyncKHR, EGLBoolean(EGLDisplay, EGLSyncKHR));
155 MOCK_METHOD4(eglClientWaitSyncKHR, EGLint(EGLDisplay, EGLSyncKHR, EGLint, EGLTimeKHR));
157 MOCK_METHOD5(eglGetSyncValuesCHROMIUM, EGLBoolean(EGLDisplay, EGLSurface,
162 EGLBoolean(EGLDisplay,
struct wl_display*));
164 EGLBoolean(EGLDisplay,
struct wl_display*));
166 EGLBoolean(EGLDisplay,
struct wl_resource*, EGLint, EGLint*));
std::mutex current_contexts_mutex
Definition: mock_egl.h:175
AutoUnblockThread is a helper thread class that can gracefully shutdown at destruction time...
Definition: sw_splash.h:26
MOCK_METHOD0(eglGetCurrentContext, EGLContext())
EGLImageKHR const fake_egl_image
Definition: mock_egl.h:173
MATCHER_P(DisplayConfigMatches, config, "")
Definition: display_config_matchers.h:119
int const fake_visual_id
Definition: mock_egl.h:174
EGLConfig const *const fake_configs
Definition: mock_egl.h:169
MOCK_METHOD5(eglChooseConfig, EGLBoolean(EGLDisplay, const EGLint *, EGLConfig *, EGLint, EGLint *))
MOCK_METHOD1(eglGetDisplay, EGLDisplay(AnyNativeType))
MOCK_METHOD4(eglGetConfigs, EGLBoolean(EGLDisplay, EGLConfig *, EGLint, EGLint *))
void(* generic_function_pointer_t)(void)
Definition: mock_egl.h:104
void provide_egl_extensions()
EGLint const fake_configs_num
Definition: mock_egl.h:170
EGLContext const fake_egl_context
Definition: mock_egl.h:172
MOCK_METHOD3(eglInitialize, EGLBoolean(EGLDisplay, EGLint *, EGLint *))
MATCHER_P2(EGLConfigContainsAttrib, attrib, value, "")
Definition: mock_egl.h:62
void * AnyNativeType
Definition: mock_egl.h:105
std::unordered_map< std::thread::id, EGLContext > current_contexts
Definition: mock_egl.h:176
Definition: mock_egl.h:89
MOCK_METHOD2(eglQueryString, const char *(EGLDisplay, EGLint))
EGLDisplay const fake_egl_display
Definition: mock_egl.h:168
void expect_nested_egl_usage()
void provide_stub_platform_buffer_swapping()
EGLSurface const fake_egl_surface
Definition: mock_egl.h:171