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

Side by Side Diff: ui/gl/gl_context_egl.cc

Issue 10392152: RefCounted types should not have public destructors, Linux fixes (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 7 months 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "ui/gl/gl_context_egl.h" 5 #include "ui/gl/gl_context_egl.h"
6 6
7 #include "base/debug/trace_event.h" 7 #include "base/debug/trace_event.h"
8 #include "base/logging.h" 8 #include "base/logging.h"
9 #include "base/memory/scoped_ptr.h" 9 #include "base/memory/scoped_ptr.h"
10 #include "build/build_config.h" 10 #include "build/build_config.h"
11 #include "third_party/angle/include/EGL/egl.h" 11 #include "third_party/angle/include/EGL/egl.h"
12 #include "ui/gl/egl_util.h" 12 #include "ui/gl/egl_util.h"
13 #include "ui/gl/gl_surface.h" 13 #include "ui/gl/gl_surface.h"
14 14
15 // This header must come after the above third-party include, as 15 // This header must come after the above third-party include, as
16 // it brings in #defines that cause conflicts. 16 // it brings in #defines that cause conflicts.
17 #include "ui/gl/gl_bindings.h" 17 #include "ui/gl/gl_bindings.h"
18 18
19 #if defined(USE_X11) 19 #if defined(USE_X11)
20 extern "C" { 20 extern "C" {
21 #include <X11/Xlib.h> 21 #include <X11/Xlib.h>
22 } 22 }
23 #endif 23 #endif
24 24
25 namespace gfx { 25 namespace gfx {
26 26
27 std::string GLContextEGL::GetExtensions() {
28 const char* extensions = eglQueryString(display_,
29 EGL_EXTENSIONS);
30 if (!extensions)
31 return GLContext::GetExtensions();
32
33 return GLContext::GetExtensions() + " " + extensions;
34 }
35
36 GLContextEGL::GLContextEGL(GLShareGroup* share_group) 27 GLContextEGL::GLContextEGL(GLShareGroup* share_group)
37 : GLContext(share_group), 28 : GLContext(share_group),
38 context_(NULL), 29 context_(NULL),
39 display_(NULL), 30 display_(NULL),
40 config_(NULL) { 31 config_(NULL) {
41 } 32 }
42 33
43 GLContextEGL::~GLContextEGL() {
44 Destroy();
45 }
46
47 bool GLContextEGL::Initialize( 34 bool GLContextEGL::Initialize(
48 GLSurface* compatible_surface, GpuPreference gpu_preference) { 35 GLSurface* compatible_surface, GpuPreference gpu_preference) {
49 DCHECK(compatible_surface); 36 DCHECK(compatible_surface);
50 DCHECK(!context_); 37 DCHECK(!context_);
51 38
52 static const EGLint kContextAttributes[] = { 39 static const EGLint kContextAttributes[] = {
53 EGL_CONTEXT_CLIENT_VERSION, 2, 40 EGL_CONTEXT_CLIENT_VERSION, 2,
54 EGL_NONE 41 EGL_NONE
55 }; 42 };
56 43
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
150 } 137 }
151 138
152 void GLContextEGL::SetSwapInterval(int interval) { 139 void GLContextEGL::SetSwapInterval(int interval) {
153 DCHECK(IsCurrent(NULL)); 140 DCHECK(IsCurrent(NULL));
154 if (!eglSwapInterval(display_, interval)) { 141 if (!eglSwapInterval(display_, interval)) {
155 LOG(ERROR) << "eglSwapInterval failed with error " 142 LOG(ERROR) << "eglSwapInterval failed with error "
156 << GetLastEGLErrorString(); 143 << GetLastEGLErrorString();
157 } 144 }
158 } 145 }
159 146
147 std::string GLContextEGL::GetExtensions() {
148 const char* extensions = eglQueryString(display_,
149 EGL_EXTENSIONS);
150 if (!extensions)
151 return GLContext::GetExtensions();
152
153 return GLContext::GetExtensions() + " " + extensions;
154 }
155
156 GLContextEGL::~GLContextEGL() {
157 Destroy();
158 }
159
160 } // namespace gfx 160 } // namespace gfx
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698