OLD | NEW |
1 | 1 |
2 /* | 2 /* |
3 * Copyright 2012 Google Inc. | 3 * Copyright 2012 Google Inc. |
4 * | 4 * |
5 * Use of this source code is governed by a BSD-style license that can be | 5 * Use of this source code is governed by a BSD-style license that can be |
6 * found in the LICENSE file. | 6 * found in the LICENSE file. |
7 */ | 7 */ |
8 | 8 |
9 #include "GLContext_angle.h" | 9 #include "GLTestContext_angle.h" |
10 | 10 |
11 #include <EGL/egl.h> | 11 #include <EGL/egl.h> |
12 #include <EGL/eglext.h> | 12 #include <EGL/eglext.h> |
13 | 13 |
14 #include "gl/GrGLDefines.h" | 14 #include "gl/GrGLDefines.h" |
15 #include "gl/GrGLUtil.h" | 15 #include "gl/GrGLUtil.h" |
16 | 16 |
17 #include "gl/GrGLInterface.h" | 17 #include "gl/GrGLInterface.h" |
18 #include "gl/GrGLAssembleInterface.h" | 18 #include "gl/GrGLAssembleInterface.h" |
19 #include "../ports/SkOSLibrary.h" | 19 #include "../ports/SkOSLibrary.h" |
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
77 EGL_NONE | 77 EGL_NONE |
78 }, | 78 }, |
79 }; | 79 }; |
80 for (int i = 0; i < 3 && display == EGL_NO_DISPLAY; ++i) { | 80 for (int i = 0; i < 3 && display == EGL_NO_DISPLAY; ++i) { |
81 display = eglGetPlatformDisplayEXT(EGL_PLATFORM_ANGLE_ANGLE,nativeDi
splay, attribs[i]); | 81 display = eglGetPlatformDisplayEXT(EGL_PLATFORM_ANGLE_ANGLE,nativeDi
splay, attribs[i]); |
82 } | 82 } |
83 } | 83 } |
84 return display; | 84 return display; |
85 } | 85 } |
86 | 86 |
87 class ANGLEGLContext : public sk_gpu_test::GLContext { | 87 class ANGLEGLContext : public sk_gpu_test::GLTestContext { |
88 public: | 88 public: |
89 ANGLEGLContext(bool preferGLBackend); | 89 ANGLEGLContext(bool preferGLBackend); |
90 ~ANGLEGLContext() override; | 90 ~ANGLEGLContext() override; |
91 | 91 |
92 GrEGLImage texture2DToEGLImage(GrGLuint texID) const override; | 92 GrEGLImage texture2DToEGLImage(GrGLuint texID) const override; |
93 void destroyEGLImage(GrEGLImage) const override; | 93 void destroyEGLImage(GrEGLImage) const override; |
94 GrGLuint eglImageToExternalTexture(GrEGLImage) const override; | 94 GrGLuint eglImageToExternalTexture(GrEGLImage) const override; |
95 sk_gpu_test::GLContext* createNew() const override; | 95 sk_gpu_test::GLTestContext* createNew() const override; |
96 | 96 |
97 private: | 97 private: |
98 void destroyGLContext(); | 98 void destroyGLContext(); |
99 | 99 |
100 void onPlatformMakeCurrent() const override; | 100 void onPlatformMakeCurrent() const override; |
101 void onPlatformSwapBuffers() const override; | 101 void onPlatformSwapBuffers() const override; |
102 GrGLFuncPtr onPlatformGetProcAddress(const char* name) const override; | 102 GrGLFuncPtr onPlatformGetProcAddress(const char* name) const override; |
103 | 103 |
104 void* fContext; | 104 void* fContext; |
105 void* fDisplay; | 105 void* fDisplay; |
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
216 return 0; | 216 return 0; |
217 } | 217 } |
218 glEGLImageTargetTexture2D(GR_GL_TEXTURE_EXTERNAL, image); | 218 glEGLImageTargetTexture2D(GR_GL_TEXTURE_EXTERNAL, image); |
219 if (GR_GL_GET_ERROR(this->gl()) != GR_GL_NO_ERROR) { | 219 if (GR_GL_GET_ERROR(this->gl()) != GR_GL_NO_ERROR) { |
220 GR_GL_CALL(this->gl(), DeleteTextures(1, &texID)); | 220 GR_GL_CALL(this->gl(), DeleteTextures(1, &texID)); |
221 return 0; | 221 return 0; |
222 } | 222 } |
223 return texID; | 223 return texID; |
224 } | 224 } |
225 | 225 |
226 sk_gpu_test::GLContext* ANGLEGLContext::createNew() const { | 226 sk_gpu_test::GLTestContext* ANGLEGLContext::createNew() const { |
227 #ifdef SK_BUILD_FOR_WIN | 227 #ifdef SK_BUILD_FOR_WIN |
228 sk_gpu_test::GLContext* ctx = fIsGLBackend ? sk_gpu_test::CreateANGLEOpenGLG
LContext() | 228 sk_gpu_test::GLTestContext* ctx = fIsGLBackend? |
229 : sk_gpu_test::CreateANGLEDirect3
DGLContext(); | 229 ? sk_gpu_test::CreateANGLEOpenGLGLTestContext() |
| 230 : sk_gpu_test::CreateANGLEDirect3DGLTestContext(); |
230 #else | 231 #else |
231 sk_gpu_test::GLContext* ctx = sk_gpu_test::CreateANGLEOpenGLGLContext(); | 232 sk_gpu_test::GLTestContext* ctx = sk_gpu_test::CreateANGLEOpenGLGLTestContex
t(); |
232 #endif | 233 #endif |
233 if (ctx) { | 234 if (ctx) { |
234 ctx->makeCurrent(); | 235 ctx->makeCurrent(); |
235 } | 236 } |
236 return ctx; | 237 return ctx; |
237 } | 238 } |
238 | 239 |
239 void ANGLEGLContext::destroyGLContext() { | 240 void ANGLEGLContext::destroyGLContext() { |
240 if (fDisplay) { | 241 if (fDisplay) { |
241 eglMakeCurrent(fDisplay, 0, 0, 0); | 242 eglMakeCurrent(fDisplay, 0, 0, 0); |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
292 | 293 |
293 if (nullptr == gLibs.fGLLib || nullptr == gLibs.fEGLLib) { | 294 if (nullptr == gLibs.fGLLib || nullptr == gLibs.fEGLLib) { |
294 // We can't setup the interface correctly w/o the so | 295 // We can't setup the interface correctly w/o the so |
295 return nullptr; | 296 return nullptr; |
296 } | 297 } |
297 | 298 |
298 return GrGLAssembleGLESInterface(&gLibs, angle_get_gl_proc); | 299 return GrGLAssembleGLESInterface(&gLibs, angle_get_gl_proc); |
299 } | 300 } |
300 | 301 |
301 #ifdef SK_BUILD_FOR_WIN | 302 #ifdef SK_BUILD_FOR_WIN |
302 GLContext* CreateANGLEDirect3DGLContext() { | 303 GLTestContext* CreateANGLEDirect3DGLTestContext() { |
303 ANGLEGLContext* ctx = new ANGLEGLContext(false); | 304 ANGLEGLContext* ctx = new ANGLEGLContext(false); |
304 if (!ctx->isValid()) { | 305 if (!ctx->isValid()) { |
305 delete ctx; | 306 delete ctx; |
306 return NULL; | 307 return NULL; |
307 } | 308 } |
308 return ctx; | 309 return ctx; |
309 } | 310 } |
310 #endif | 311 #endif |
311 | 312 |
312 GLContext* CreateANGLEOpenGLGLContext() { | 313 GLTestContext* CreateANGLEOpenGLGLTestContext() { |
313 ANGLEGLContext* ctx = new ANGLEGLContext(true); | 314 ANGLEGLContext* ctx = new ANGLEGLContext(true); |
314 if (!ctx->isValid()) { | 315 if (!ctx->isValid()) { |
315 delete ctx; | 316 delete ctx; |
316 return NULL; | 317 return NULL; |
317 } | 318 } |
318 return ctx; | 319 return ctx; |
319 } | 320 } |
320 } // namespace sk_gpu_test | 321 } // namespace sk_gpu_test |
OLD | NEW |