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

Side by Side Diff: gpu/ipc/service/image_transport_surface_overlay_mac.h

Issue 2365583004: Mac: Clean up plumbing of accelerated widgets (Closed)
Patch Set: Created 4 years, 3 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
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 #ifndef GPU_IPC_SERVICE_IMAGE_TRANSPORT_SURFACE_OVERLAY_MAC_H_ 5 #ifndef GPU_IPC_SERVICE_IMAGE_TRANSPORT_SURFACE_OVERLAY_MAC_H_
6 #define GPU_IPC_SERVICE_IMAGE_TRANSPORT_SURFACE_OVERLAY_MAC_H_ 6 #define GPU_IPC_SERVICE_IMAGE_TRANSPORT_SURFACE_OVERLAY_MAC_H_
7 7
8 #include <list> 8 #include <list>
9 #include <memory> 9 #include <memory>
10 #include <vector> 10 #include <vector>
(...skipping 17 matching lines...) Expand all
28 28
29 namespace gl { 29 namespace gl {
30 class GLFence; 30 class GLFence;
31 } 31 }
32 32
33 namespace gpu { 33 namespace gpu {
34 34
35 class ImageTransportSurfaceOverlayMac : public gl::GLSurface, 35 class ImageTransportSurfaceOverlayMac : public gl::GLSurface,
36 public ui::GpuSwitchingObserver { 36 public ui::GpuSwitchingObserver {
37 public: 37 public:
38 ImageTransportSurfaceOverlayMac(GpuCommandBufferStub* stub, 38 ImageTransportSurfaceOverlayMac(GpuCommandBufferStub* stub);
piman 2016/09/23 00:55:24 nit: explicit
39 SurfaceHandle handle);
40 39
41 // GLSurface implementation 40 // GLSurface implementation
42 bool Initialize(gl::GLSurface::Format format) override; 41 bool Initialize(gl::GLSurface::Format format) override;
43 void Destroy() override; 42 void Destroy() override;
44 bool Resize(const gfx::Size& size, 43 bool Resize(const gfx::Size& size,
45 float scale_factor, 44 float scale_factor,
46 bool has_alpha) override; 45 bool has_alpha) override;
47 bool IsOffscreen() override; 46 bool IsOffscreen() override;
48 gfx::SwapResult SwapBuffers() override; 47 gfx::SwapResult SwapBuffers() override;
49 gfx::SwapResult PostSubBuffer(int x, int y, int width, int height) override; 48 gfx::SwapResult PostSubBuffer(int x, int y, int width, int height) override;
(...skipping 12 matching lines...) Expand all
62 bool IsSurfaceless() const override; 61 bool IsSurfaceless() const override;
63 62
64 // ui::GpuSwitchingObserver implementation. 63 // ui::GpuSwitchingObserver implementation.
65 void OnGpuSwitched() override; 64 void OnGpuSwitched() override;
66 65
67 private: 66 private:
68 ~ImageTransportSurfaceOverlayMac() override; 67 ~ImageTransportSurfaceOverlayMac() override;
69 68
70 void SetLatencyInfo(const std::vector<ui::LatencyInfo>& latency_info); 69 void SetLatencyInfo(const std::vector<ui::LatencyInfo>& latency_info);
71 void SendAcceleratedSurfaceBuffersSwapped( 70 void SendAcceleratedSurfaceBuffersSwapped(
72 gpu::SurfaceHandle surface_handle,
73 CAContextID ca_context_id, 71 CAContextID ca_context_id,
74 bool fullscreen_low_power_ca_context_valid, 72 bool fullscreen_low_power_ca_context_valid,
75 CAContextID fullscreen_low_power_ca_context_id, 73 CAContextID fullscreen_low_power_ca_context_id,
76 const gfx::ScopedRefCountedIOSurfaceMachPort& io_surface, 74 const gfx::ScopedRefCountedIOSurfaceMachPort& io_surface,
77 const gfx::Size& size, 75 const gfx::Size& size,
78 float scale_factor, 76 float scale_factor,
79 std::vector<ui::LatencyInfo> latency_info); 77 std::vector<ui::LatencyInfo> latency_info);
80 gfx::SwapResult SwapBuffersInternal(const gfx::Rect& pixel_damage_rect); 78 gfx::SwapResult SwapBuffersInternal(const gfx::Rect& pixel_damage_rect);
81 79
82 base::WeakPtr<GpuCommandBufferStub> stub_; 80 base::WeakPtr<GpuCommandBufferStub> stub_;
83 SurfaceHandle handle_;
84 std::vector<ui::LatencyInfo> latency_info_; 81 std::vector<ui::LatencyInfo> latency_info_;
85 82
86 bool use_remote_layer_api_; 83 bool use_remote_layer_api_;
87 base::scoped_nsobject<CAContext> ca_context_; 84 base::scoped_nsobject<CAContext> ca_context_;
88 base::scoped_nsobject<CAContext> fullscreen_low_power_ca_context_; 85 base::scoped_nsobject<CAContext> fullscreen_low_power_ca_context_;
89 std::unique_ptr<ui::CALayerTreeCoordinator> ca_layer_tree_coordinator_; 86 std::unique_ptr<ui::CALayerTreeCoordinator> ca_layer_tree_coordinator_;
90 87
91 gfx::Size pixel_size_; 88 gfx::Size pixel_size_;
92 float scale_factor_; 89 float scale_factor_;
93 90
94 std::vector<CALayerInUseQuery> ca_layer_in_use_queries_; 91 std::vector<CALayerInUseQuery> ca_layer_in_use_queries_;
95 92
96 // A GLFence marking the end of the previous frame. Must only be accessed 93 // A GLFence marking the end of the previous frame. Must only be accessed
97 // while in a ScopedSetGLToRealGLApi, and while the associated 94 // while in a ScopedSetGLToRealGLApi, and while the associated
98 // |previous_frame_context_| is bound. 95 // |previous_frame_context_| is bound.
99 std::unique_ptr<gl::GLFence> previous_frame_fence_; 96 std::unique_ptr<gl::GLFence> previous_frame_fence_;
100 base::ScopedTypeRef<CGLContextObj> fence_context_obj_; 97 base::ScopedTypeRef<CGLContextObj> fence_context_obj_;
101 98
102 // The renderer ID that all contexts made current to this surface should be 99 // The renderer ID that all contexts made current to this surface should be
103 // targeting. 100 // targeting.
104 GLint gl_renderer_id_; 101 GLint gl_renderer_id_;
105 }; 102 };
106 103
107 } // namespace gpu 104 } // namespace gpu
108 105
109 #endif // GPU_IPC_SERVICE_IMAGE_TRANSPORT_SURFACE_OVERLAY_MAC_H_ 106 #endif // GPU_IPC_SERVICE_IMAGE_TRANSPORT_SURFACE_OVERLAY_MAC_H_
OLDNEW
« no previous file with comments | « gpu/ipc/service/image_transport_surface_mac.mm ('k') | gpu/ipc/service/image_transport_surface_overlay_mac.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698