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

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

Issue 1106773002: gpu: Disallow zero sized offscreen framebuffers (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: removed glGetError dcheck Created 5 years, 8 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 (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 #include "base/bind.h" 5 #include "base/bind.h"
6 #include "base/bind_helpers.h" 6 #include "base/bind_helpers.h"
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/hash.h" 8 #include "base/hash.h"
9 #include "base/json/json_writer.h" 9 #include "base/json/json_writer.h"
10 #include "base/memory/shared_memory.h" 10 #include "base/memory/shared_memory.h"
(...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after
194 new GpuCommandBufferMemoryTracker(channel), 194 new GpuCommandBufferMemoryTracker(channel),
195 channel_->gpu_channel_manager()->shader_translator_cache(), 195 channel_->gpu_channel_manager()->shader_translator_cache(),
196 NULL, 196 NULL,
197 subscription_ref_set, 197 subscription_ref_set,
198 pending_valuebuffer_state, 198 pending_valuebuffer_state,
199 attrib_parser.bind_generates_resource); 199 attrib_parser.bind_generates_resource);
200 } 200 }
201 201
202 use_virtualized_gl_context_ |= 202 use_virtualized_gl_context_ |=
203 context_group_->feature_info()->workarounds().use_virtualized_gl_contexts; 203 context_group_->feature_info()->workarounds().use_virtualized_gl_contexts;
204
205 bool is_offscreen = surface_id_ == 0;
206 if (is_offscreen && initial_size_.IsEmpty()) {
hendrikw 2015/04/24 18:33:38 I might rename initial_size_ to initial_offscreen_
207 // If we're an offscreen surface with zero width and/or height, set to a
208 // non-zero size so that we have a complete framebuffer for operations like
209 // glClear.
210 initial_size_ = gfx::Size(1, 1);
211 }
204 } 212 }
205 213
206 GpuCommandBufferStub::~GpuCommandBufferStub() { 214 GpuCommandBufferStub::~GpuCommandBufferStub() {
207 Destroy(); 215 Destroy();
208 216
209 GpuChannelManager* gpu_channel_manager = channel_->gpu_channel_manager(); 217 GpuChannelManager* gpu_channel_manager = channel_->gpu_channel_manager();
210 gpu_channel_manager->Send(new GpuHostMsg_DestroyCommandBuffer(surface_id())); 218 gpu_channel_manager->Send(new GpuHostMsg_DestroyCommandBuffer(surface_id()));
211 } 219 }
212 220
213 GpuMemoryManager* GpuCommandBufferStub::GetMemoryManager() const { 221 GpuMemoryManager* GpuCommandBufferStub::GetMemoryManager() const {
(...skipping 888 matching lines...) Expand 10 before | Expand all | Expand 10 after
1102 Send(new GpuCommandBufferMsg_SwapBuffersCompleted(route_id_, latency_info)); 1110 Send(new GpuCommandBufferMsg_SwapBuffersCompleted(route_id_, latency_info));
1103 } 1111 }
1104 1112
1105 void GpuCommandBufferStub::SendUpdateVSyncParameters(base::TimeTicks timebase, 1113 void GpuCommandBufferStub::SendUpdateVSyncParameters(base::TimeTicks timebase,
1106 base::TimeDelta interval) { 1114 base::TimeDelta interval) {
1107 Send(new GpuCommandBufferMsg_UpdateVSyncParameters(route_id_, timebase, 1115 Send(new GpuCommandBufferMsg_UpdateVSyncParameters(route_id_, timebase,
1108 interval)); 1116 interval));
1109 } 1117 }
1110 1118
1111 } // namespace content 1119 } // namespace content
OLDNEW
« no previous file with comments | « no previous file | gpu/command_buffer/service/gles2_cmd_decoder.cc » ('j') | gpu/command_buffer/service/gles2_cmd_decoder.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698