Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(400)

Unified Diff: src/gpu/gl/command_buffer/SkCommandBufferGLContext.cpp

Issue 1505233002: Use correct config variable in command buffer gl context (Closed) Base URL: https://skia.googlesource.com/skia.git@commandbuffer-as-api-04-extended-config
Patch Set: remove dependency Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/gpu/gl/command_buffer/SkCommandBufferGLContext.cpp
diff --git a/src/gpu/gl/command_buffer/SkCommandBufferGLContext.cpp b/src/gpu/gl/command_buffer/SkCommandBufferGLContext.cpp
index 585f1d079eb3a4039b6a4fcc11f7c25526d9a035..61eab4bebfc20d1a300bd1f4a2b036983dedf93b 100644
--- a/src/gpu/gl/command_buffer/SkCommandBufferGLContext.cpp
+++ b/src/gpu/gl/command_buffer/SkCommandBufferGLContext.cpp
@@ -185,46 +185,73 @@ void SkCommandBufferGLContext::initializeGLContext(void* nativeWindow, const int
const int* surfaceAttribs) {
LoadCommandBufferOnce();
if (!gfFunctionsLoadedSuccessfully) {
+ SkDebugf("Command Buffer: Could not load EGL functions.\n");
return;
}
- fDisplay = gfGetDisplay(static_cast<EGLNativeDisplayType>(EGL_DEFAULT_DISPLAY));
+ fDisplay = gfGetDisplay(EGL_DEFAULT_DISPLAY);
if (EGL_NO_DISPLAY == fDisplay) {
- SkDebugf("Could not create EGL display!");
+ SkDebugf("Command Buffer: Could not create EGL display.\n");
return;
}
EGLint majorVersion;
EGLint minorVersion;
- gfInitialize(fDisplay, &majorVersion, &minorVersion);
+ if (!gfInitialize(fDisplay, &majorVersion, &minorVersion)) {
+ SkDebugf("Command Buffer: Could not initialize EGL display.\n");
+ this->destroyGLContext();
+ return;
+ }
- EGLConfig surfaceConfig = static_cast<EGLConfig>(fConfig);
EGLint numConfigs;
- gfChooseConfig(fDisplay, configAttribs, &surfaceConfig, 1, &numConfigs);
+ if (!gfChooseConfig(fDisplay, configAttribs, static_cast<EGLConfig*>(&fConfig), 1,
+ &numConfigs) || numConfigs != 1) {
+ SkDebugf("Command Buffer: Could not choose EGL config.\n");
+ this->destroyGLContext();
+ return;
+ }
if (nativeWindow) {
- fSurface = gfCreateWindowSurface(fDisplay, surfaceConfig,
- (EGLNativeWindowType)nativeWindow, surfaceAttribs);
+ fSurface = gfCreateWindowSurface(fDisplay,
+ static_cast<EGLConfig>(fConfig),
+ (EGLNativeWindowType)nativeWindow,
+ surfaceAttribs);
} else {
- fSurface = gfCreatePbufferSurface(fDisplay, surfaceConfig, surfaceAttribs);
+ fSurface = gfCreatePbufferSurface(fDisplay,
+ static_cast<EGLConfig>(fConfig),
+ surfaceAttribs);
+ }
+ if (EGL_NO_SURFACE == fSurface) {
+ SkDebugf("Command Buffer: Could not create EGL surface.\n");
+ this->destroyGLContext();
+ return;
}
static const EGLint contextAttribs[] = {
EGL_CONTEXT_CLIENT_VERSION, 2,
EGL_NONE
};
- fContext = gfCreateContext(fDisplay, surfaceConfig, nullptr, contextAttribs);
+ fContext = gfCreateContext(fDisplay, static_cast<EGLConfig>(fConfig), nullptr, contextAttribs);
+ if (EGL_NO_CONTEXT == fContext) {
+ SkDebugf("Command Buffer: Could not create EGL context.\n");
+ this->destroyGLContext();
+ return;
+ }
- gfMakeCurrent(fDisplay, fSurface, fSurface, fContext);
+ if (!gfMakeCurrent(fDisplay, fSurface, fSurface, fContext)) {
+ SkDebugf("Command Buffer: Could not make EGL context current.\n");
+ this->destroyGLContext();
+ return;
+ }
SkAutoTUnref<const GrGLInterface> gl(GrGLCreateCommandBufferInterface());
if (nullptr == gl.get()) {
- SkDebugf("Could not create CommandBuffer GL interface!\n");
+ SkDebugf("Command Buffer: Could not create CommandBuffer GL interface.\n");
this->destroyGLContext();
return;
}
if (!gl->validate()) {
- SkDebugf("Could not validate CommandBuffer GL interface!\n");
+ SkDebugf("Command Buffer: Could not validate CommandBuffer GL interface.\n");
this->destroyGLContext();
return;
}
@@ -264,7 +291,7 @@ void SkCommandBufferGLContext::onPlatformMakeCurrent() const {
return;
}
if (!gfMakeCurrent(fDisplay, fSurface, fSurface, fContext)) {
- SkDebugf("Could not set the context.\n");
+ SkDebugf("Command Buffer: Could not make EGL context current.\n");
}
}
@@ -273,7 +300,7 @@ void SkCommandBufferGLContext::onPlatformSwapBuffers() const {
return;
}
if (!gfSwapBuffers(fDisplay, fSurface)) {
- SkDebugf("Could not complete gfSwapBuffers.\n");
+ SkDebugf("Command Buffer: Could not complete gfSwapBuffers.\n");
}
}
@@ -298,14 +325,12 @@ bool SkCommandBufferGLContext::makeCurrent() {
int SkCommandBufferGLContext::getStencilBits() {
EGLint result = 0;
- EGLConfig surfaceConfig = static_cast<EGLConfig>(fConfig);
- gfGetConfigAttrib(fDisplay, surfaceConfig, EGL_STENCIL_SIZE, &result);
+ gfGetConfigAttrib(fDisplay, static_cast<EGLConfig>(fConfig), EGL_STENCIL_SIZE, &result);
return result;
}
int SkCommandBufferGLContext::getSampleCount() {
EGLint result = 0;
- EGLConfig surfaceConfig = static_cast<EGLConfig>(fConfig);
- gfGetConfigAttrib(fDisplay, surfaceConfig, EGL_SAMPLES, &result);
+ gfGetConfigAttrib(fDisplay, static_cast<EGLConfig>(fConfig), EGL_SAMPLES, &result);
return result;
}
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698