OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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_surface.h" | 5 #include "ui/gl/gl_surface.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/callback.h" | 8 #include "base/callback.h" |
9 #include "base/location.h" | 9 #include "base/location.h" |
10 #include "base/logging.h" | 10 #include "base/logging.h" |
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
68 scoped_ptr<ui::SurfaceOzoneEGL> ozone_surface_; | 68 scoped_ptr<ui::SurfaceOzoneEGL> ozone_surface_; |
69 AcceleratedWidget widget_; | 69 AcceleratedWidget widget_; |
70 | 70 |
71 DISALLOW_COPY_AND_ASSIGN(GLSurfaceOzoneEGL); | 71 DISALLOW_COPY_AND_ASSIGN(GLSurfaceOzoneEGL); |
72 }; | 72 }; |
73 | 73 |
74 GLSurfaceOzoneEGL::GLSurfaceOzoneEGL( | 74 GLSurfaceOzoneEGL::GLSurfaceOzoneEGL( |
75 scoped_ptr<ui::SurfaceOzoneEGL> ozone_surface, | 75 scoped_ptr<ui::SurfaceOzoneEGL> ozone_surface, |
76 AcceleratedWidget widget) | 76 AcceleratedWidget widget) |
77 : NativeViewGLSurfaceEGL(ozone_surface->GetNativeWindow()), | 77 : NativeViewGLSurfaceEGL(ozone_surface->GetNativeWindow()), |
78 ozone_surface_(ozone_surface.Pass()), | 78 ozone_surface_(std::move(ozone_surface)), |
79 widget_(widget) {} | 79 widget_(widget) {} |
80 | 80 |
81 bool GLSurfaceOzoneEGL::Initialize() { | 81 bool GLSurfaceOzoneEGL::Initialize() { |
82 return Initialize(ozone_surface_->CreateVSyncProvider()); | 82 return Initialize(ozone_surface_->CreateVSyncProvider()); |
83 } | 83 } |
84 | 84 |
85 bool GLSurfaceOzoneEGL::Resize(const gfx::Size& size, | 85 bool GLSurfaceOzoneEGL::Resize(const gfx::Size& size, |
86 float scale_factor, | 86 float scale_factor, |
87 bool has_alpha) { | 87 bool has_alpha) { |
88 if (!ozone_surface_->ResizeNativeWindow(size)) { | 88 if (!ozone_surface_->ResizeNativeWindow(size)) { |
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
212 for (const auto& overlay : overlays) | 212 for (const auto& overlay : overlays) |
213 if (!overlay.ScheduleOverlayPlane(widget)) | 213 if (!overlay.ScheduleOverlayPlane(widget)) |
214 return false; | 214 return false; |
215 return true; | 215 return true; |
216 } | 216 } |
217 | 217 |
218 GLSurfaceOzoneSurfaceless::GLSurfaceOzoneSurfaceless( | 218 GLSurfaceOzoneSurfaceless::GLSurfaceOzoneSurfaceless( |
219 scoped_ptr<ui::SurfaceOzoneEGL> ozone_surface, | 219 scoped_ptr<ui::SurfaceOzoneEGL> ozone_surface, |
220 AcceleratedWidget widget) | 220 AcceleratedWidget widget) |
221 : SurfacelessEGL(gfx::Size()), | 221 : SurfacelessEGL(gfx::Size()), |
222 ozone_surface_(ozone_surface.Pass()), | 222 ozone_surface_(std::move(ozone_surface)), |
223 widget_(widget), | 223 widget_(widget), |
224 has_implicit_external_sync_( | 224 has_implicit_external_sync_( |
225 HasEGLExtension("EGL_ARM_implicit_external_sync")), | 225 HasEGLExtension("EGL_ARM_implicit_external_sync")), |
226 last_swap_buffers_result_(true), | 226 last_swap_buffers_result_(true), |
227 swap_buffers_pending_(false), | 227 swap_buffers_pending_(false), |
228 weak_factory_(this) { | 228 weak_factory_(this) { |
229 unsubmitted_frames_.push_back(new PendingFrame()); | 229 unsubmitted_frames_.push_back(new PendingFrame()); |
230 } | 230 } |
231 | 231 |
232 bool GLSurfaceOzoneSurfaceless::Initialize() { | 232 bool GLSurfaceOzoneSurfaceless::Initialize() { |
(...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
442 GLuint fbo_; | 442 GLuint fbo_; |
443 GLuint textures_[2]; | 443 GLuint textures_[2]; |
444 scoped_refptr<GLImage> images_[2]; | 444 scoped_refptr<GLImage> images_[2]; |
445 int current_surface_; | 445 int current_surface_; |
446 DISALLOW_COPY_AND_ASSIGN(GLSurfaceOzoneSurfacelessSurfaceImpl); | 446 DISALLOW_COPY_AND_ASSIGN(GLSurfaceOzoneSurfacelessSurfaceImpl); |
447 }; | 447 }; |
448 | 448 |
449 GLSurfaceOzoneSurfacelessSurfaceImpl::GLSurfaceOzoneSurfacelessSurfaceImpl( | 449 GLSurfaceOzoneSurfacelessSurfaceImpl::GLSurfaceOzoneSurfacelessSurfaceImpl( |
450 scoped_ptr<ui::SurfaceOzoneEGL> ozone_surface, | 450 scoped_ptr<ui::SurfaceOzoneEGL> ozone_surface, |
451 AcceleratedWidget widget) | 451 AcceleratedWidget widget) |
452 : GLSurfaceOzoneSurfaceless(ozone_surface.Pass(), widget), | 452 : GLSurfaceOzoneSurfaceless(std::move(ozone_surface), widget), |
453 context_(nullptr), | 453 context_(nullptr), |
454 fbo_(0), | 454 fbo_(0), |
455 current_surface_(0) { | 455 current_surface_(0) { |
456 for (auto& texture : textures_) | 456 for (auto& texture : textures_) |
457 texture = 0; | 457 texture = 0; |
458 } | 458 } |
459 | 459 |
460 unsigned int | 460 unsigned int |
461 GLSurfaceOzoneSurfacelessSurfaceImpl::GetBackingFrameBufferObject() { | 461 GLSurfaceOzoneSurfacelessSurfaceImpl::GetBackingFrameBufferObject() { |
462 return fbo_; | 462 return fbo_; |
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
587 | 587 |
588 scoped_refptr<GLSurface> CreateViewGLSurfaceOzone( | 588 scoped_refptr<GLSurface> CreateViewGLSurfaceOzone( |
589 gfx::AcceleratedWidget window) { | 589 gfx::AcceleratedWidget window) { |
590 scoped_ptr<ui::SurfaceOzoneEGL> surface_ozone = | 590 scoped_ptr<ui::SurfaceOzoneEGL> surface_ozone = |
591 ui::OzonePlatform::GetInstance() | 591 ui::OzonePlatform::GetInstance() |
592 ->GetSurfaceFactoryOzone() | 592 ->GetSurfaceFactoryOzone() |
593 ->CreateEGLSurfaceForWidget(window); | 593 ->CreateEGLSurfaceForWidget(window); |
594 if (!surface_ozone) | 594 if (!surface_ozone) |
595 return nullptr; | 595 return nullptr; |
596 scoped_refptr<GLSurface> surface = | 596 scoped_refptr<GLSurface> surface = |
597 new GLSurfaceOzoneEGL(surface_ozone.Pass(), window); | 597 new GLSurfaceOzoneEGL(std::move(surface_ozone), window); |
598 if (!surface->Initialize()) | 598 if (!surface->Initialize()) |
599 return nullptr; | 599 return nullptr; |
600 return surface; | 600 return surface; |
601 } | 601 } |
602 | 602 |
603 scoped_refptr<GLSurface> CreateViewGLSurfaceOzoneSurfacelessSurfaceImpl( | 603 scoped_refptr<GLSurface> CreateViewGLSurfaceOzoneSurfacelessSurfaceImpl( |
604 gfx::AcceleratedWidget window) { | 604 gfx::AcceleratedWidget window) { |
605 scoped_ptr<ui::SurfaceOzoneEGL> surface_ozone = | 605 scoped_ptr<ui::SurfaceOzoneEGL> surface_ozone = |
606 ui::OzonePlatform::GetInstance() | 606 ui::OzonePlatform::GetInstance() |
607 ->GetSurfaceFactoryOzone() | 607 ->GetSurfaceFactoryOzone() |
608 ->CreateSurfacelessEGLSurfaceForWidget(window); | 608 ->CreateSurfacelessEGLSurfaceForWidget(window); |
609 if (!surface_ozone) | 609 if (!surface_ozone) |
610 return nullptr; | 610 return nullptr; |
611 scoped_refptr<GLSurface> surface = | 611 scoped_refptr<GLSurface> surface = new GLSurfaceOzoneSurfacelessSurfaceImpl( |
612 new GLSurfaceOzoneSurfacelessSurfaceImpl(surface_ozone.Pass(), window); | 612 std::move(surface_ozone), window); |
613 if (!surface->Initialize()) | 613 if (!surface->Initialize()) |
614 return nullptr; | 614 return nullptr; |
615 return surface; | 615 return surface; |
616 } | 616 } |
617 | 617 |
618 } // namespace | 618 } // namespace |
619 | 619 |
620 // static | 620 // static |
621 bool GLSurface::InitializeOneOffInternal() { | 621 bool GLSurface::InitializeOneOffInternal() { |
622 switch (GetGLImplementation()) { | 622 switch (GetGLImplementation()) { |
(...skipping 18 matching lines...) Expand all Loading... |
641 if (GetGLImplementation() == kGLImplementationEGLGLES2 && | 641 if (GetGLImplementation() == kGLImplementationEGLGLES2 && |
642 window != kNullAcceleratedWidget && | 642 window != kNullAcceleratedWidget && |
643 GLSurfaceEGL::IsEGLSurfacelessContextSupported()) { | 643 GLSurfaceEGL::IsEGLSurfacelessContextSupported()) { |
644 scoped_ptr<ui::SurfaceOzoneEGL> surface_ozone = | 644 scoped_ptr<ui::SurfaceOzoneEGL> surface_ozone = |
645 ui::OzonePlatform::GetInstance() | 645 ui::OzonePlatform::GetInstance() |
646 ->GetSurfaceFactoryOzone() | 646 ->GetSurfaceFactoryOzone() |
647 ->CreateSurfacelessEGLSurfaceForWidget(window); | 647 ->CreateSurfacelessEGLSurfaceForWidget(window); |
648 if (!surface_ozone) | 648 if (!surface_ozone) |
649 return nullptr; | 649 return nullptr; |
650 scoped_refptr<GLSurface> surface; | 650 scoped_refptr<GLSurface> surface; |
651 surface = new GLSurfaceOzoneSurfaceless(surface_ozone.Pass(), window); | 651 surface = new GLSurfaceOzoneSurfaceless(std::move(surface_ozone), window); |
652 if (surface->Initialize()) | 652 if (surface->Initialize()) |
653 return surface; | 653 return surface; |
654 } | 654 } |
655 | 655 |
656 return nullptr; | 656 return nullptr; |
657 } | 657 } |
658 | 658 |
659 // static | 659 // static |
660 scoped_refptr<GLSurface> GLSurface::CreateViewGLSurface( | 660 scoped_refptr<GLSurface> GLSurface::CreateViewGLSurface( |
661 gfx::AcceleratedWidget window) { | 661 gfx::AcceleratedWidget window) { |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
713 } | 713 } |
714 } | 714 } |
715 | 715 |
716 EGLNativeDisplayType GetPlatformDefaultEGLNativeDisplay() { | 716 EGLNativeDisplayType GetPlatformDefaultEGLNativeDisplay() { |
717 return ui::OzonePlatform::GetInstance() | 717 return ui::OzonePlatform::GetInstance() |
718 ->GetSurfaceFactoryOzone() | 718 ->GetSurfaceFactoryOzone() |
719 ->GetNativeDisplay(); | 719 ->GetNativeDisplay(); |
720 } | 720 } |
721 | 721 |
722 } // namespace gfx | 722 } // namespace gfx |
OLD | NEW |