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

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

Issue 1354483004: Re-land: ui: Add GLImage unit test framework. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 5 years, 2 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
« no previous file with comments | « ui/gl/gl_image_shared_memory_unittest.cc ('k') | ui/gl/gl_tests.gyp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 extern "C" { 5 extern "C" {
6 #include <X11/Xlib.h> 6 #include <X11/Xlib.h>
7 } 7 }
8 8
9 #include "ui/gl/gl_surface_glx.h" 9 #include "ui/gl/gl_surface_glx.h"
10 10
(...skipping 16 matching lines...) Expand all
27 #include "ui/gfx/x/x11_types.h" 27 #include "ui/gfx/x/x11_types.h"
28 #include "ui/gl/gl_bindings.h" 28 #include "ui/gl/gl_bindings.h"
29 #include "ui/gl/gl_implementation.h" 29 #include "ui/gl/gl_implementation.h"
30 #include "ui/gl/sync_control_vsync_provider.h" 30 #include "ui/gl/sync_control_vsync_provider.h"
31 31
32 namespace gfx { 32 namespace gfx {
33 33
34 namespace { 34 namespace {
35 35
36 Display* g_display = nullptr; 36 Display* g_display = nullptr;
37 const char* g_glx_extensions = nullptr;
38 bool g_glx_context_create = false; 37 bool g_glx_context_create = false;
39 bool g_glx_create_context_robustness_supported = false; 38 bool g_glx_create_context_robustness_supported = false;
40 bool g_glx_texture_from_pixmap_supported = false; 39 bool g_glx_texture_from_pixmap_supported = false;
41 bool g_glx_oml_sync_control_supported = false; 40 bool g_glx_oml_sync_control_supported = false;
42 41
43 // Track support of glXGetMscRateOML separately from GLX_OML_sync_control as a 42 // Track support of glXGetMscRateOML separately from GLX_OML_sync_control as a
44 // whole since on some platforms (e.g. crosbug.com/34585), glXGetMscRateOML 43 // whole since on some platforms (e.g. crosbug.com/34585), glXGetMscRateOML
45 // always fails even though GLX_OML_sync_control is reported as being supported. 44 // always fails even though GLX_OML_sync_control is reported as being supported.
46 bool g_glx_get_msc_rate_oml_supported = false; 45 bool g_glx_get_msc_rate_oml_supported = false;
47 46
(...skipping 294 matching lines...) Expand 10 before | Expand all | Expand 10 after
342 if (!glXQueryVersion(g_display, &major, &minor)) { 341 if (!glXQueryVersion(g_display, &major, &minor)) {
343 LOG(ERROR) << "glxQueryVersion failed"; 342 LOG(ERROR) << "glxQueryVersion failed";
344 return false; 343 return false;
345 } 344 }
346 345
347 if (major == 1 && minor < 3) { 346 if (major == 1 && minor < 3) {
348 LOG(ERROR) << "GLX 1.3 or later is required."; 347 LOG(ERROR) << "GLX 1.3 or later is required.";
349 return false; 348 return false;
350 } 349 }
351 350
352 g_glx_extensions = glXQueryExtensionsString(g_display, 0);
353 g_glx_context_create = 351 g_glx_context_create =
354 HasGLXExtension("GLX_ARB_create_context"); 352 HasGLXExtension("GLX_ARB_create_context");
355 g_glx_create_context_robustness_supported = 353 g_glx_create_context_robustness_supported =
356 HasGLXExtension("GLX_ARB_create_context_robustness"); 354 HasGLXExtension("GLX_ARB_create_context_robustness");
357 g_glx_texture_from_pixmap_supported = 355 g_glx_texture_from_pixmap_supported =
358 HasGLXExtension("GLX_EXT_texture_from_pixmap"); 356 HasGLXExtension("GLX_EXT_texture_from_pixmap");
359 g_glx_oml_sync_control_supported = 357 g_glx_oml_sync_control_supported =
360 HasGLXExtension("GLX_OML_sync_control"); 358 HasGLXExtension("GLX_OML_sync_control");
361 g_glx_get_msc_rate_oml_supported = g_glx_oml_sync_control_supported; 359 g_glx_get_msc_rate_oml_supported = g_glx_oml_sync_control_supported;
362 g_glx_sgi_video_sync_supported = 360 g_glx_sgi_video_sync_supported =
363 HasGLXExtension("GLX_SGI_video_sync"); 361 HasGLXExtension("GLX_SGI_video_sync");
364 362
365 if (!g_glx_get_msc_rate_oml_supported && g_glx_sgi_video_sync_supported) 363 if (!g_glx_get_msc_rate_oml_supported && g_glx_sgi_video_sync_supported)
366 SGIVideoSyncProviderThreadShim::display_ = gfx::OpenNewXDisplay(); 364 SGIVideoSyncProviderThreadShim::display_ = gfx::OpenNewXDisplay();
367 365
368 initialized = true; 366 initialized = true;
369 return true; 367 return true;
370 } 368 }
371 369
372 // static 370 // static
373 const char* GLSurfaceGLX::GetGLXExtensions() { 371 const char* GLSurfaceGLX::GetGLXExtensions() {
374 return g_glx_extensions; 372 return glXQueryExtensionsString(g_display, 0);
375 } 373 }
376 374
377 // static 375 // static
378 bool GLSurfaceGLX::HasGLXExtension(const char* name) { 376 bool GLSurfaceGLX::HasGLXExtension(const char* name) {
379 return ExtensionsContain(GetGLXExtensions(), name); 377 return ExtensionsContain(GetGLXExtensions(), name);
380 } 378 }
381 379
382 // static 380 // static
383 bool GLSurfaceGLX::IsCreateContextSupported() { 381 bool GLSurfaceGLX::IsCreateContextSupported() {
384 return g_glx_context_create; 382 return g_glx_context_create;
(...skipping 251 matching lines...) Expand 10 before | Expand all | Expand 10 after
636 if (!config_) 634 if (!config_)
637 config_ = GLSurfaceGLX::GetConfig(window_); 635 config_ = GLSurfaceGLX::GetConfig(window_);
638 return config_; 636 return config_;
639 } 637 }
640 638
641 UnmappedNativeViewGLSurfaceGLX::~UnmappedNativeViewGLSurfaceGLX() { 639 UnmappedNativeViewGLSurfaceGLX::~UnmappedNativeViewGLSurfaceGLX() {
642 Destroy(); 640 Destroy();
643 } 641 }
644 642
645 } // namespace gfx 643 } // namespace gfx
OLDNEW
« no previous file with comments | « ui/gl/gl_image_shared_memory_unittest.cc ('k') | ui/gl/gl_tests.gyp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698