summaryrefslogtreecommitdiffstats
path: root/content/gpu
diff options
context:
space:
mode:
authorantonm@chromium.org <antonm@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-05-12 13:37:32 +0000
committerantonm@chromium.org <antonm@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-05-12 13:37:32 +0000
commit82642bb1c9402e67e46e0a48bdc075fd505fa36d (patch)
treecdbf1eea862acdbc63634ba23e3a8b921bbf72bf /content/gpu
parentcc12116ee5640dcca9507900f259ed6d6ed4542b (diff)
downloadchromium_src-82642bb1c9402e67e46e0a48bdc075fd505fa36d.zip
chromium_src-82642bb1c9402e67e46e0a48bdc075fd505fa36d.tar.gz
chromium_src-82642bb1c9402e67e46e0a48bdc075fd505fa36d.tar.bz2
Revert "Reland 85013 - Split GLContext::Create*GLContext into GLSurface::Create*GLSurface plus a
surface type independent GLContext::CreateGLContext". git-svn-id: svn://svn.chromium.org/chrome/trunk/src@85124 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/gpu')
-rw-r--r--content/gpu/gpu_child_thread.cc4
-rw-r--r--content/gpu/gpu_info_collector.cc39
2 files changed, 22 insertions, 21 deletions
diff --git a/content/gpu/gpu_child_thread.cc b/content/gpu/gpu_child_thread.cc
index 8612a66..c9a5acd 100644
--- a/content/gpu/gpu_child_thread.cc
+++ b/content/gpu/gpu_child_thread.cc
@@ -18,8 +18,8 @@
#include "content/gpu/gpu_info_collector.h"
#include "content/gpu/gpu_watchdog_thread.h"
#include "ipc/ipc_channel_handle.h"
+#include "ui/gfx/gl/gl_context.h"
#include "ui/gfx/gl/gl_implementation.h"
-#include "ui/gfx/gl/gl_surface.h"
#if defined(OS_MACOSX)
#include "content/common/sandbox_init_wrapper.h"
@@ -121,7 +121,7 @@ void GpuChildThread::OnInitialize() {
// Load the GL implementation and locate the bindings before starting the GPU
// watchdog because this can take a lot of time and the GPU watchdog might
// terminate the GPU process.
- if (!gfx::GLSurface::InitializeOneOff()) {
+ if (!gfx::GLContext::InitializeOneOff()) {
LOG(INFO) << "GLContext::InitializeOneOff failed";
MessageLoop::current()->Quit();
return;
diff --git a/content/gpu/gpu_info_collector.cc b/content/gpu/gpu_info_collector.cc
index 07a5f1c..6b37c27 100644
--- a/content/gpu/gpu_info_collector.cc
+++ b/content/gpu/gpu_info_collector.cc
@@ -7,45 +7,44 @@
#include <string>
#include <vector>
-#include "base/memory/scoped_ptr.h"
#include "base/logging.h"
#include "base/string_number_conversions.h"
#include "base/string_piece.h"
#include "base/string_split.h"
#include "ui/gfx/gl/gl_bindings.h"
#include "ui/gfx/gl/gl_context.h"
-#include "ui/gfx/gl/gl_surface.h"
namespace {
// This creates an offscreen GL context for gl queries. Returned GLContext
// should be deleted in FinalizeGLContext.
gfx::GLContext* InitializeGLContext() {
- if (!gfx::GLSurface::InitializeOneOff()) {
+ if (!gfx::GLContext::InitializeOneOff()) {
LOG(ERROR) << "gfx::GLContext::InitializeOneOff() failed";
return NULL;
}
- scoped_ptr<gfx::GLSurface> surface(gfx::GLSurface::CreateOffscreenGLSurface(
- gfx::Size(1, 1)));
- if (!surface.get()) {
- LOG(ERROR) << "gfx::GLContext::CreateOffscreenGLSurface failed";
+ gfx::GLContext* context = gfx::GLContext::CreateOffscreenGLContext(NULL);
+ if (context == NULL) {
+ LOG(ERROR) << "gfx::GLContext::CreateOffscreenGLContext(NULL) failed";
return NULL;
}
-
- scoped_ptr<gfx::GLContext> context(gfx::GLContext::CreateGLContext(
- surface.release(),
- NULL));
- if (!context.get()) {
- LOG(ERROR) << "gfx::GLContext::CreateGLContext failed";
- return NULL;
- }
-
if (!context->MakeCurrent()) {
LOG(ERROR) << "gfx::GLContext::MakeCurrent() failed";
+ context->Destroy();
+ delete context;
return NULL;
}
+ return context;
+}
- return context.release();
+// This destroy and delete the GL context.
+void FinalizeGLContext(gfx::GLContext** context) {
+ DCHECK(context);
+ if (*context) {
+ (*context)->Destroy();
+ delete *context;
+ *context = NULL;
+ }
}
std::string GetGLString(unsigned int pname) {
@@ -81,8 +80,8 @@ namespace gpu_info_collector {
bool CollectGraphicsInfoGL(GPUInfo* gpu_info) {
DCHECK(gpu_info);
- scoped_ptr<gfx::GLContext> context(InitializeGLContext());
- if (!context.get())
+ gfx::GLContext* context = InitializeGLContext();
+ if (context == NULL)
return false;
gpu_info->gl_renderer = GetGLString(GL_RENDERER);
@@ -94,6 +93,8 @@ bool CollectGraphicsInfoGL(GPUInfo* gpu_info) {
bool validVideoCardInfo = CollectVideoCardInfo(gpu_info);
bool validDriverInfo = CollectDriverInfoGL(gpu_info);
+ FinalizeGLContext(&context);
+
return (validGLVersionInfo && validVideoCardInfo && validDriverInfo);
}