summaryrefslogtreecommitdiffstats
path: root/ui/gfx/gl/gl_surface_linux.cc
diff options
context:
space:
mode:
authorapatrick@chromium.org <apatrick@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-05-31 21:42:02 +0000
committerapatrick@chromium.org <apatrick@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-05-31 21:42:02 +0000
commit9d756882750dabd1abbe70b30292531abb86a34b (patch)
treecd6f3ba4d5481a39953e87570abf9a1402630772 /ui/gfx/gl/gl_surface_linux.cc
parent8ca0b64248afd305ff938b080afdcb880a98e61b (diff)
downloadchromium_src-9d756882750dabd1abbe70b30292531abb86a34b.zip
chromium_src-9d756882750dabd1abbe70b30292531abb86a34b.tar.gz
chromium_src-9d756882750dabd1abbe70b30292531abb86a34b.tar.bz2
Support for glSetSurfaceCHROMIUM.
This command allows a previously created GPU surface to be made current for a command buffer. There are no surfaces registered at this point so this command is currently a no-op. Review URL: http://codereview.chromium.org/7077001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@87371 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ui/gfx/gl/gl_surface_linux.cc')
-rw-r--r--ui/gfx/gl/gl_surface_linux.cc32
1 files changed, 17 insertions, 15 deletions
diff --git a/ui/gfx/gl/gl_surface_linux.cc b/ui/gfx/gl/gl_surface_linux.cc
index 26c1631..fe96989 100644
--- a/ui/gfx/gl/gl_surface_linux.cc
+++ b/ui/gfx/gl/gl_surface_linux.cc
@@ -243,31 +243,32 @@ bool NativeViewGLSurfaceOSMesa::UpdateSize() {
return true;
}
-GLSurface* GLSurface::CreateViewGLSurface(gfx::PluginWindowHandle window) {
+scoped_refptr<GLSurface> GLSurface::CreateViewGLSurface(
+ gfx::PluginWindowHandle window) {
switch (GetGLImplementation()) {
case kGLImplementationOSMesaGL: {
- scoped_ptr<NativeViewGLSurfaceOSMesa> surface(
+ scoped_refptr<GLSurface> surface(
new NativeViewGLSurfaceOSMesa(window));
if (!surface->Initialize())
return NULL;
- return surface.release();
+ return surface;
}
case kGLImplementationEGLGLES2: {
- scoped_ptr<NativeViewGLSurfaceEGL> surface(new NativeViewGLSurfaceEGL(
+ scoped_refptr<GLSurface> surface(new NativeViewGLSurfaceEGL(
window));
if (!surface->Initialize())
return NULL;
- return surface.release();
+ return surface;
}
case kGLImplementationDesktopGL: {
- scoped_ptr<NativeViewGLSurfaceGLX> surface(new NativeViewGLSurfaceGLX(
+ scoped_refptr<GLSurface> surface(new NativeViewGLSurfaceGLX(
window));
if (!surface->Initialize())
return NULL;
- return surface.release();
+ return surface;
}
case kGLImplementationMockGL:
return new GLSurfaceStub;
@@ -277,29 +278,30 @@ GLSurface* GLSurface::CreateViewGLSurface(gfx::PluginWindowHandle window) {
}
}
-GLSurface* GLSurface::CreateOffscreenGLSurface(const gfx::Size& size) {
+scoped_refptr<GLSurface> GLSurface::CreateOffscreenGLSurface(
+ const gfx::Size& size) {
switch (GetGLImplementation()) {
case kGLImplementationOSMesaGL: {
- scoped_ptr<GLSurfaceOSMesa> surface(new GLSurfaceOSMesa(OSMESA_RGBA,
- size));
+ scoped_refptr<GLSurface> surface(new GLSurfaceOSMesa(OSMESA_RGBA,
+ size));
if (!surface->Initialize())
return NULL;
- return surface.release();
+ return surface;
}
case kGLImplementationEGLGLES2: {
- scoped_ptr<PbufferGLSurfaceEGL> surface(new PbufferGLSurfaceEGL(size));
+ scoped_refptr<GLSurface> surface(new PbufferGLSurfaceEGL(size));
if (!surface->Initialize())
return NULL;
- return surface.release();
+ return surface;
}
case kGLImplementationDesktopGL: {
- scoped_ptr<PbufferGLSurfaceGLX> surface(new PbufferGLSurfaceGLX(size));
+ scoped_refptr<GLSurface> surface(new PbufferGLSurfaceGLX(size));
if (!surface->Initialize())
return NULL;
- return surface.release();
+ return surface;
}
case kGLImplementationMockGL:
return new GLSurfaceStub;