aboutsummaryrefslogtreecommitdiffhomepage
path: root/tools
diff options
context:
space:
mode:
Diffstat (limited to 'tools')
-rw-r--r--tools/gpu/gl/angle/GLTestContext_angle.cpp26
1 files changed, 23 insertions, 3 deletions
diff --git a/tools/gpu/gl/angle/GLTestContext_angle.cpp b/tools/gpu/gl/angle/GLTestContext_angle.cpp
index c0ea48595c..a35a9cf9b9 100644
--- a/tools/gpu/gl/angle/GLTestContext_angle.cpp
+++ b/tools/gpu/gl/angle/GLTestContext_angle.cpp
@@ -161,6 +161,24 @@ ANGLEGLContext::ANGLEGLContext(ANGLEBackend type, ANGLEContextVersion version,
return;
}
+#ifdef SK_DEBUG
+ // Verify that the interface we requested was actuall returned to us
+ const GrGLubyte* rendererUByte;
+ GR_GL_CALL_RET(gl.get(), rendererUByte, GetString(GR_GL_RENDERER));
+ const char* renderer = reinterpret_cast<const char*>(rendererUByte);
+ switch (type) {
+ case ANGLEBackend::kD3D9:
+ SkASSERT(strstr(renderer, "Direct3D9"));
+ break;
+ case ANGLEBackend::kD3D11:
+ SkASSERT(strstr(renderer, "Direct3D11"));
+ break;
+ case ANGLEBackend::kOpenGL:
+ SkASSERT(strstr(renderer, "OpenGL"));
+ break;
+ }
+#endif
+
this->init(gl.release());
}
@@ -229,7 +247,7 @@ std::unique_ptr<sk_gpu_test::GLTestContext> ANGLEGLContext::makeNew() const {
void ANGLEGLContext::destroyGLContext() {
if (fDisplay) {
- eglMakeCurrent(fDisplay, 0, 0, 0);
+ eglMakeCurrent(fDisplay, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);
if (fContext) {
eglDestroyContext(fDisplay, fContext);
@@ -241,8 +259,10 @@ void ANGLEGLContext::destroyGLContext() {
fSurface = EGL_NO_SURFACE;
}
- //TODO should we close the display?
- fDisplay = EGL_NO_DISPLAY;
+ if (EGL_NO_DISPLAY != fDisplay) {
+ eglTerminate(fDisplay);
+ fDisplay = EGL_NO_DISPLAY;
+ }
}
}