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

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

Issue 202683003: gl: Clean up gfx::AcceleratedWidget usage in gl_surface_egl (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: typofix Created 6 years, 9 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
« no previous file with comments | « ui/gl/gl_surface_egl.h ('k') | ui/gl/gl_surface_win.cc » ('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 // 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 312 matching lines...) Expand 10 before | Expand all | Expand 10 after
323 bool GLSurfaceEGL::HasEGLExtension(const char* name) { 323 bool GLSurfaceEGL::HasEGLExtension(const char* name) {
324 return ExtensionsContain(GetEGLExtensions(), name); 324 return ExtensionsContain(GetEGLExtensions(), name);
325 } 325 }
326 326
327 bool GLSurfaceEGL::IsCreateContextRobustnessSupported() { 327 bool GLSurfaceEGL::IsCreateContextRobustnessSupported() {
328 return g_egl_create_context_robustness_supported; 328 return g_egl_create_context_robustness_supported;
329 } 329 }
330 330
331 GLSurfaceEGL::~GLSurfaceEGL() {} 331 GLSurfaceEGL::~GLSurfaceEGL() {}
332 332
333 NativeViewGLSurfaceEGL::NativeViewGLSurfaceEGL(gfx::AcceleratedWidget window) 333 NativeViewGLSurfaceEGL::NativeViewGLSurfaceEGL(EGLNativeWindowType window)
334 : window_(window), 334 : window_(window),
335 surface_(NULL), 335 surface_(NULL),
336 supports_post_sub_buffer_(false), 336 supports_post_sub_buffer_(false),
337 config_(NULL), 337 config_(NULL),
338 size_(1, 1) { 338 size_(1, 1) {
339 #if defined(OS_ANDROID) 339 #if defined(OS_ANDROID)
340 if (window) 340 if (window)
341 ANativeWindow_acquire(window); 341 ANativeWindow_acquire(window);
342 #endif 342 #endif
343 } 343 }
344 344
345 bool NativeViewGLSurfaceEGL::Initialize() { 345 bool NativeViewGLSurfaceEGL::Initialize() {
346 return Initialize(scoped_ptr<VSyncProvider>()); 346 return Initialize(scoped_ptr<VSyncProvider>());
347 } 347 }
348 348
349 bool NativeViewGLSurfaceEGL::Initialize( 349 bool NativeViewGLSurfaceEGL::Initialize(
350 scoped_ptr<VSyncProvider> sync_provider) { 350 scoped_ptr<VSyncProvider> sync_provider) {
351 DCHECK(!surface_); 351 DCHECK(!surface_);
352 352
353 if (window_ == kNullAcceleratedWidget) {
rjkroege 2014/03/20 17:52:04 why did you take this out?
spang 2014/03/20 19:06:44 I don't believe there is a NULL value for EGLNativ
354 LOG(ERROR) << "Trying to create surface without window.";
355 return false;
356 }
357
358 if (!GetDisplay()) { 353 if (!GetDisplay()) {
359 LOG(ERROR) << "Trying to create surface with invalid display."; 354 LOG(ERROR) << "Trying to create surface with invalid display.";
360 return false; 355 return false;
361 } 356 }
362 357
363 std::vector<EGLint> egl_window_attributes; 358 std::vector<EGLint> egl_window_attributes;
364 359
365 if (g_egl_window_fixed_size_supported) { 360 if (g_egl_window_fixed_size_supported) {
366 egl_window_attributes.push_back(EGL_FIXED_SIZE_ANGLE); 361 egl_window_attributes.push_back(EGL_FIXED_SIZE_ANGLE);
367 egl_window_attributes.push_back(EGL_TRUE); 362 egl_window_attributes.push_back(EGL_TRUE);
(...skipping 398 matching lines...) Expand 10 before | Expand all | Expand 10 after
766 SurfacelessEGL::~SurfacelessEGL() { 761 SurfacelessEGL::~SurfacelessEGL() {
767 } 762 }
768 763
769 #if defined(ANDROID) || defined(USE_OZONE) 764 #if defined(ANDROID) || defined(USE_OZONE)
770 765
771 // A thin subclass of |GLSurfaceOSMesa| that can be used in place 766 // A thin subclass of |GLSurfaceOSMesa| that can be used in place
772 // of a native hardware-provided surface when a native surface 767 // of a native hardware-provided surface when a native surface
773 // provider is not available. 768 // provider is not available.
774 class GLSurfaceOSMesaHeadless : public GLSurfaceOSMesa { 769 class GLSurfaceOSMesaHeadless : public GLSurfaceOSMesa {
775 public: 770 public:
776 explicit GLSurfaceOSMesaHeadless(gfx::AcceleratedWidget window); 771 explicit GLSurfaceOSMesaHeadless();
rjkroege 2014/03/20 17:52:04 why not EGLNativeWindow?
spang 2014/03/20 19:06:44 We could, but why pass a value that is not used?
777 772
778 virtual bool IsOffscreen() OVERRIDE; 773 virtual bool IsOffscreen() OVERRIDE;
779 virtual bool SwapBuffers() OVERRIDE; 774 virtual bool SwapBuffers() OVERRIDE;
780 775
781 protected: 776 protected:
782 virtual ~GLSurfaceOSMesaHeadless(); 777 virtual ~GLSurfaceOSMesaHeadless();
783 778
784 private: 779 private:
785 780
786 DISALLOW_COPY_AND_ASSIGN(GLSurfaceOSMesaHeadless); 781 DISALLOW_COPY_AND_ASSIGN(GLSurfaceOSMesaHeadless);
787 }; 782 };
788 783
789 bool GLSurfaceOSMesaHeadless::IsOffscreen() { return false; } 784 bool GLSurfaceOSMesaHeadless::IsOffscreen() { return false; }
790 785
791 bool GLSurfaceOSMesaHeadless::SwapBuffers() { return true; } 786 bool GLSurfaceOSMesaHeadless::SwapBuffers() { return true; }
792 787
793 GLSurfaceOSMesaHeadless::GLSurfaceOSMesaHeadless(gfx::AcceleratedWidget window) 788 GLSurfaceOSMesaHeadless::GLSurfaceOSMesaHeadless()
794 : GLSurfaceOSMesa(OSMESA_BGRA, gfx::Size(1, 1)) { 789 : GLSurfaceOSMesa(OSMESA_BGRA, gfx::Size(1, 1)) {}
795 DCHECK(window);
796 }
797 790
798 GLSurfaceOSMesaHeadless::~GLSurfaceOSMesaHeadless() { Destroy(); } 791 GLSurfaceOSMesaHeadless::~GLSurfaceOSMesaHeadless() { Destroy(); }
799 792
800 // static 793 // static
801 bool GLSurface::InitializeOneOffInternal() { 794 bool GLSurface::InitializeOneOffInternal() {
802 switch (GetGLImplementation()) { 795 switch (GetGLImplementation()) {
803 case kGLImplementationEGLGLES2: 796 case kGLImplementationEGLGLES2:
804 if (!GLSurfaceEGL::InitializeOneOff()) { 797 if (!GLSurfaceEGL::InitializeOneOff()) {
805 LOG(ERROR) << "GLSurfaceEGL::InitializeOneOff failed."; 798 LOG(ERROR) << "GLSurfaceEGL::InitializeOneOff failed.";
806 return false; 799 return false;
807 } 800 }
808 default: 801 default:
809 break; 802 break;
810 } 803 }
811 return true; 804 return true;
812 } 805 }
813 806
814 // static 807 // static
815 scoped_refptr<GLSurface> 808 scoped_refptr<GLSurface>
816 GLSurface::CreateViewGLSurface(gfx::AcceleratedWidget window) { 809 GLSurface::CreateViewGLSurface(gfx::AcceleratedWidget window) {
817 810
818 if (GetGLImplementation() == kGLImplementationOSMesaGL) { 811 if (GetGLImplementation() == kGLImplementationOSMesaGL) {
819 scoped_refptr<GLSurface> surface(new GLSurfaceOSMesaHeadless(window)); 812 scoped_refptr<GLSurface> surface(new GLSurfaceOSMesaHeadless());
820 if (!surface->Initialize()) 813 if (!surface->Initialize())
821 return NULL; 814 return NULL;
822 return surface; 815 return surface;
823 } 816 }
824 DCHECK(GetGLImplementation() == kGLImplementationEGLGLES2); 817 DCHECK(GetGLImplementation() == kGLImplementationEGLGLES2);
825 if (window) { 818 if (window != kNullAcceleratedWidget) {
819 EGLNativeWindowType egl_window;
826 scoped_refptr<NativeViewGLSurfaceEGL> surface; 820 scoped_refptr<NativeViewGLSurfaceEGL> surface;
827 scoped_ptr<VSyncProvider> sync_provider; 821 scoped_ptr<VSyncProvider> sync_provider;
828 #if defined(USE_OZONE) 822 #if defined(USE_OZONE)
829 window = gfx::SurfaceFactoryOzone::GetInstance()->RealizeAcceleratedWidget( 823 egl_window =
830 window); 824 gfx::SurfaceFactoryOzone::GetInstance()->RealizeAcceleratedWidget(
825 window);
831 sync_provider = 826 sync_provider =
832 gfx::SurfaceFactoryOzone::GetInstance()->CreateVSyncProvider(window); 827 gfx::SurfaceFactoryOzone::GetInstance()->CreateVSyncProvider(
828 egl_window);
829 #else
830 egl_window = window;
833 #endif 831 #endif
834 surface = new NativeViewGLSurfaceEGL(window); 832 surface = new NativeViewGLSurfaceEGL(egl_window);
835 if(surface->Initialize(sync_provider.Pass())) 833 if(surface->Initialize(sync_provider.Pass()))
836 return surface; 834 return surface;
837 } else { 835 } else {
838 scoped_refptr<GLSurface> surface = new GLSurfaceStub(); 836 scoped_refptr<GLSurface> surface = new GLSurfaceStub();
839 if (surface->Initialize()) 837 if (surface->Initialize())
840 return surface; 838 return surface;
841 } 839 }
842 return NULL; 840 return NULL;
843 } 841 }
844 842
(...skipping 22 matching lines...) Expand all
867 } 865 }
868 default: 866 default:
869 NOTREACHED(); 867 NOTREACHED();
870 return NULL; 868 return NULL;
871 } 869 }
872 } 870 }
873 871
874 #endif 872 #endif
875 873
876 } // namespace gfx 874 } // namespace gfx
OLDNEW
« no previous file with comments | « ui/gl/gl_surface_egl.h ('k') | ui/gl/gl_surface_win.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698