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

Side by Side Diff: content/common/gpu/image_transport_surface.cc

Issue 7890046: Command to mark surface inactive, so gpu process can release resources. (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: Flush only on hide Created 9 years, 2 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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 #if defined(ENABLE_GPU) 5 #if defined(ENABLE_GPU)
6 6
7 #include "content/common/gpu/image_transport_surface.h" 7 #include "content/common/gpu/image_transport_surface.h"
8 8
9 #include "base/callback.h" 9 #include "base/callback.h"
10 #include "content/common/gpu/gpu_channel.h" 10 #include "content/common/gpu/gpu_channel.h"
(...skipping 24 matching lines...) Expand all
35 35
36 bool ImageTransportHelper::Initialize() { 36 bool ImageTransportHelper::Initialize() {
37 gpu::gles2::GLES2Decoder* decoder = Decoder(); 37 gpu::gles2::GLES2Decoder* decoder = Decoder();
38 38
39 if (!decoder) 39 if (!decoder)
40 return false; 40 return false;
41 41
42 decoder->SetResizeCallback( 42 decoder->SetResizeCallback(
43 NewCallback(this, &ImageTransportHelper::Resize)); 43 NewCallback(this, &ImageTransportHelper::Resize));
44 44
45 decoder->SetSurfaceVisibleCallback(
46 NewCallback(this, &ImageTransportHelper::SurfaceVisible));
47
45 return true; 48 return true;
46 } 49 }
47 50
48 void ImageTransportHelper::Destroy() { 51 void ImageTransportHelper::Destroy() {
49 } 52 }
50 53
51 bool ImageTransportHelper::OnMessageReceived(const IPC::Message& message) { 54 bool ImageTransportHelper::OnMessageReceived(const IPC::Message& message) {
52 bool handled = true; 55 bool handled = true;
53 IPC_BEGIN_MESSAGE_MAP(ImageTransportHelper, message) 56 IPC_BEGIN_MESSAGE_MAP(ImageTransportHelper, message)
54 IPC_MESSAGE_HANDLER(AcceleratedSurfaceMsg_BuffersSwappedACK, 57 IPC_MESSAGE_HANDLER(AcceleratedSurfaceMsg_BuffersSwappedACK,
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
105 void ImageTransportHelper::OnNewSurfaceACK( 108 void ImageTransportHelper::OnNewSurfaceACK(
106 uint64 surface_id, 109 uint64 surface_id,
107 TransportDIB::Handle shm_handle) { 110 TransportDIB::Handle shm_handle) {
108 surface_->OnNewSurfaceACK(surface_id, shm_handle); 111 surface_->OnNewSurfaceACK(surface_id, shm_handle);
109 } 112 }
110 113
111 void ImageTransportHelper::Resize(gfx::Size size) { 114 void ImageTransportHelper::Resize(gfx::Size size) {
112 surface_->OnResize(size); 115 surface_->OnResize(size);
113 } 116 }
114 117
118 void ImageTransportHelper::SurfaceVisible(bool visible) {
119 surface_->OnSurfaceVisible(visible);
120 }
121
115 bool ImageTransportHelper::MakeCurrent() { 122 bool ImageTransportHelper::MakeCurrent() {
116 gpu::gles2::GLES2Decoder* decoder = Decoder(); 123 gpu::gles2::GLES2Decoder* decoder = Decoder();
117 if (!decoder) 124 if (!decoder)
118 return false; 125 return false;
119 return decoder->MakeCurrent(); 126 return decoder->MakeCurrent();
120 } 127 }
121 128
122 gpu::GpuScheduler* ImageTransportHelper::Scheduler() { 129 gpu::GpuScheduler* ImageTransportHelper::Scheduler() {
123 GpuChannel* channel = manager_->LookupChannel(renderer_id_); 130 GpuChannel* channel = manager_->LookupChannel(renderer_id_);
124 if (!channel) 131 if (!channel)
(...skipping 14 matching lines...) Expand all
139 146
140 GpuCommandBufferStub* stub = 147 GpuCommandBufferStub* stub =
141 channel->LookupCommandBuffer(command_buffer_id_); 148 channel->LookupCommandBuffer(command_buffer_id_);
142 if (!stub) 149 if (!stub)
143 return NULL; 150 return NULL;
144 151
145 return stub->decoder(); 152 return stub->decoder();
146 } 153 }
147 154
148 #endif // defined(ENABLE_GPU) 155 #endif // defined(ENABLE_GPU)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698