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

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

Issue 293293002: Updating calls to offscreen buffers to use a size of (0,0) when they do not require an actual buffer (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 6 years, 6 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 // This include must be here so that the includes provided transitively 5 // This include must be here so that the includes provided transitively
6 // by gl_surface_egl.h don't make it impossible to compile this code. 6 // by gl_surface_egl.h don't make it impossible to compile this code.
7 #include "third_party/mesa/src/include/GL/osmesa.h" 7 #include "third_party/mesa/src/include/GL/osmesa.h"
8 8
9 #include "ui/gl/gl_surface_egl.h" 9 #include "ui/gl/gl_surface_egl.h"
10 10
(...skipping 471 matching lines...) Expand 10 before | Expand all | Expand 10 after
482 #endif 482 #endif
483 } 483 }
484 484
485 void NativeViewGLSurfaceEGL::SetHandle(EGLSurface surface) { 485 void NativeViewGLSurfaceEGL::SetHandle(EGLSurface surface) {
486 surface_ = surface; 486 surface_ = surface;
487 } 487 }
488 488
489 PbufferGLSurfaceEGL::PbufferGLSurfaceEGL(const gfx::Size& size) 489 PbufferGLSurfaceEGL::PbufferGLSurfaceEGL(const gfx::Size& size)
490 : size_(size), 490 : size_(size),
491 surface_(NULL) { 491 surface_(NULL) {
492 // Some implementations of Pbuffer do not support having a 0 size. For such
493 // cases use a (1, 1) surface.
494 if (size_.GetArea() == 0)
495 size_.SetSize(1, 1);
492 } 496 }
493 497
494 bool PbufferGLSurfaceEGL::Initialize() { 498 bool PbufferGLSurfaceEGL::Initialize() {
495 EGLSurface old_surface = surface_; 499 EGLSurface old_surface = surface_;
496 500
497 EGLDisplay display = GetDisplay(); 501 EGLDisplay display = GetDisplay();
498 if (!display) { 502 if (!display) {
499 LOG(ERROR) << "Trying to create surface with invalid display."; 503 LOG(ERROR) << "Trying to create surface with invalid display.";
500 return false; 504 return false;
501 } 505 }
502 506
503 if (size_.GetArea() == 0) {
504 LOG(ERROR) << "Error: surface has zero area "
505 << size_.width() << " x " << size_.height();
506 return false;
507 }
508
509 // Allocate the new pbuffer surface before freeing the old one to ensure 507 // Allocate the new pbuffer surface before freeing the old one to ensure
510 // they have different addresses. If they have the same address then a 508 // they have different addresses. If they have the same address then a
511 // future call to MakeCurrent might early out because it appears the current 509 // future call to MakeCurrent might early out because it appears the current
512 // context and surface have not changed. 510 // context and surface have not changed.
513 const EGLint pbuffer_attribs[] = { 511 const EGLint pbuffer_attribs[] = {
514 EGL_WIDTH, size_.width(), 512 EGL_WIDTH, size_.width(),
515 EGL_HEIGHT, size_.height(), 513 EGL_HEIGHT, size_.height(),
516 EGL_NONE 514 EGL_NONE
517 }; 515 };
518 516
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after
651 } 649 }
652 650
653 void* SurfacelessEGL::GetShareHandle() { 651 void* SurfacelessEGL::GetShareHandle() {
654 return NULL; 652 return NULL;
655 } 653 }
656 654
657 SurfacelessEGL::~SurfacelessEGL() { 655 SurfacelessEGL::~SurfacelessEGL() {
658 } 656 }
659 657
660 } // namespace gfx 658 } // namespace gfx
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698