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

Side by Side Diff: content/common/gpu/image_transport_surface_fbo_mac.h

Issue 517733002: Revert of Fix assorted issues with remote CoreAnimation (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@clean_up_accel_layers
Patch Set: Created 6 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 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 #ifndef CONTENT_COMMON_GPU_IMAGE_TRANSPORT_SURFACE_FBO_MAC_H_ 5 #ifndef CONTENT_COMMON_GPU_IMAGE_TRANSPORT_SURFACE_FBO_MAC_H_
6 #define CONTENT_COMMON_GPU_IMAGE_TRANSPORT_SURFACE_FBO_MAC_H_ 6 #define CONTENT_COMMON_GPU_IMAGE_TRANSPORT_SURFACE_FBO_MAC_H_
7 7
8 #include "base/mac/scoped_cftyperef.h" 8 #include "base/mac/scoped_cftyperef.h"
9 #include "base/memory/scoped_ptr.h" 9 #include "base/memory/scoped_ptr.h"
10 #include "content/common/gpu/gpu_command_buffer_stub.h" 10 #include "content/common/gpu/gpu_command_buffer_stub.h"
(...skipping 23 matching lines...) Expand all
34 // Allocate the storage for the color buffer. The specified context is 34 // Allocate the storage for the color buffer. The specified context is
35 // current, and there is a texture bound to GL_TEXTURE_RECTANGLE_ARB. 35 // current, and there is a texture bound to GL_TEXTURE_RECTANGLE_ARB.
36 virtual bool AllocateColorBufferStorage( 36 virtual bool AllocateColorBufferStorage(
37 CGLContextObj context, GLuint texture, 37 CGLContextObj context, GLuint texture,
38 gfx::Size size, float scale_factor) = 0; 38 gfx::Size size, float scale_factor) = 0;
39 39
40 // Free the storage allocated in the AllocateColorBufferStorage call. The 40 // Free the storage allocated in the AllocateColorBufferStorage call. The
41 // GL texture that was bound has already been deleted by the caller. 41 // GL texture that was bound has already been deleted by the caller.
42 virtual void FreeColorBufferStorage() = 0; 42 virtual void FreeColorBufferStorage() = 0;
43 43
44 // Swap buffers and return the handle for the surface to send to the browser 44 // Retrieve the handle for the surface to send to the browser process to
45 // process to display. 45 // display.
46 virtual void SwapBuffers(const gfx::Size& size, float scale_factor) = 0; 46 virtual uint64 GetSurfaceHandle() const = 0;
47 47
48 // Indicate that the backbuffer will be written to. 48 // Called when a new frame has been rendered into the texture, and the
49 virtual void WillWriteToBackbuffer() = 0; 49 // browser is about to be sent the surface to display.
50 virtual void WillSwapBuffers() = 0;
50 51
51 // Indicate that the backbuffer has been discarded and should not be seen 52 // Called once for every WillSwapBuffers call when the buffer that was sent
52 // again. 53 // to the browser may be released by the GPU process (this may be because
53 virtual void DiscardBackbuffer() = 0; 54 // the browser is holding a reference, in which case this will come
54 55 // quickly, or it may be because the browser is done with the surface, in
55 // Called once for every SwapBuffers call when the IPC for the present has 56 // which case it will come much later).
56 // been processed by the browser. 57 virtual void CanFreeSwappedBuffer() = 0;
57 virtual void SwapBuffersAckedByBrowser() = 0;
58 }; 58 };
59 59
60 ImageTransportSurfaceFBO(GpuChannelManager* manager, 60 ImageTransportSurfaceFBO(GpuChannelManager* manager,
61 GpuCommandBufferStub* stub, 61 GpuCommandBufferStub* stub,
62 gfx::PluginWindowHandle handle); 62 gfx::PluginWindowHandle handle);
63 63
64 // GLSurface implementation 64 // GLSurface implementation
65 virtual bool Initialize() OVERRIDE; 65 virtual bool Initialize() OVERRIDE;
66 virtual void Destroy() OVERRIDE; 66 virtual void Destroy() OVERRIDE;
67 virtual bool DeferDraws() OVERRIDE; 67 virtual bool DeferDraws() OVERRIDE;
68 virtual bool IsOffscreen() OVERRIDE; 68 virtual bool IsOffscreen() OVERRIDE;
69 virtual bool SwapBuffers() OVERRIDE; 69 virtual bool SwapBuffers() OVERRIDE;
70 virtual bool PostSubBuffer(int x, int y, int width, int height) OVERRIDE; 70 virtual bool PostSubBuffer(int x, int y, int width, int height) OVERRIDE;
71 virtual bool SupportsPostSubBuffer() OVERRIDE; 71 virtual bool SupportsPostSubBuffer() OVERRIDE;
72 virtual gfx::Size GetSize() OVERRIDE; 72 virtual gfx::Size GetSize() OVERRIDE;
73 virtual void* GetHandle() OVERRIDE; 73 virtual void* GetHandle() OVERRIDE;
74 virtual void* GetDisplay() OVERRIDE; 74 virtual void* GetDisplay() OVERRIDE;
75 virtual bool OnMakeCurrent(gfx::GLContext* context) OVERRIDE; 75 virtual bool OnMakeCurrent(gfx::GLContext* context) OVERRIDE;
76 virtual unsigned int GetBackingFrameBufferObject() OVERRIDE; 76 virtual unsigned int GetBackingFrameBufferObject() OVERRIDE;
77 virtual bool SetBackbufferAllocation(bool allocated) OVERRIDE; 77 virtual bool SetBackbufferAllocation(bool allocated) OVERRIDE;
78 virtual void SetFrontbufferAllocation(bool allocated) OVERRIDE; 78 virtual void SetFrontbufferAllocation(bool allocated) OVERRIDE;
79 79
80 // Called when the context may continue to make forward progress after a swap. 80 // Called when the context may continue to make forward progress after a swap.
81 void SendSwapBuffers(uint64 surface_handle, 81 void UnblockContextAfterPendingSwap();
82 const gfx::Size pixel_size,
83 float scale_factor);
84 82
85 protected: 83 protected:
86 // ImageTransportSurface implementation 84 // ImageTransportSurface implementation
87 virtual void OnBufferPresented( 85 virtual void OnBufferPresented(
88 const AcceleratedSurfaceMsg_BufferPresented_Params& params) OVERRIDE; 86 const AcceleratedSurfaceMsg_BufferPresented_Params& params) OVERRIDE;
89 virtual void OnResize(gfx::Size size, float scale_factor) OVERRIDE; 87 virtual void OnResize(gfx::Size size, float scale_factor) OVERRIDE;
90 virtual void SetLatencyInfo( 88 virtual void SetLatencyInfo(
91 const std::vector<ui::LatencyInfo>&) OVERRIDE; 89 const std::vector<ui::LatencyInfo>&) OVERRIDE;
92 virtual void WakeUpGpu() OVERRIDE; 90 virtual void WakeUpGpu() OVERRIDE;
93 91
(...skipping 21 matching lines...) Expand all
115 // Weak pointer to the context that this was last made current to. 113 // Weak pointer to the context that this was last made current to.
116 gfx::GLContext* context_; 114 gfx::GLContext* context_;
117 115
118 gfx::Size size_; 116 gfx::Size size_;
119 gfx::Size rounded_size_; 117 gfx::Size rounded_size_;
120 float scale_factor_; 118 float scale_factor_;
121 119
122 // Whether or not we've successfully made the surface current once. 120 // Whether or not we've successfully made the surface current once.
123 bool made_current_; 121 bool made_current_;
124 122
125 // Whether a SwapBuffers IPC needs to be sent to the browser. 123 // Whether a SwapBuffers is pending.
126 bool is_swap_buffers_send_pending_; 124 bool is_swap_buffers_pending_;
125
126 // Whether we unscheduled command buffer because of pending SwapBuffers.
127 bool did_unschedule_;
128
127 std::vector<ui::LatencyInfo> latency_info_; 129 std::vector<ui::LatencyInfo> latency_info_;
128 130
129 scoped_ptr<ImageTransportHelper> helper_; 131 scoped_ptr<ImageTransportHelper> helper_;
130 132
131 DISALLOW_COPY_AND_ASSIGN(ImageTransportSurfaceFBO); 133 DISALLOW_COPY_AND_ASSIGN(ImageTransportSurfaceFBO);
132 }; 134 };
133 135
134 } // namespace content 136 } // namespace content
135 137
136 #endif // CONTENT_COMMON_GPU_IMAGE_TRANSPORT_SURFACE_MAC_H_ 138 #endif // CONTENT_COMMON_GPU_IMAGE_TRANSPORT_SURFACE_MAC_H_
OLDNEW
« no previous file with comments | « content/common/gpu/image_transport_surface_calayer_mac.mm ('k') | content/common/gpu/image_transport_surface_fbo_mac.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698