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

Side by Side Diff: gpu/command_buffer/service/framebuffer_manager.cc

Issue 2208733002: Command buffer: clear rect for a specific layer/level of the uncleared texture for CopyTexSubImage3D (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Do not assign a default value 0 to layer, UpdateMipCleared for all layers for 3D texture Created 4 years, 4 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
« no previous file with comments | « no previous file | gpu/command_buffer/service/gles2_cmd_decoder.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "gpu/command_buffer/service/framebuffer_manager.h" 5 #include "gpu/command_buffer/service/framebuffer_manager.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after
201 201
202 GLint layer() const { return layer_; } 202 GLint layer() const { return layer_; }
203 203
204 GLenum target() const { return target_; } 204 GLenum target() const { return target_; }
205 205
206 GLint level() const { return level_; } 206 GLint level() const { return level_; }
207 207
208 GLuint object_name() const override { return texture_ref_->client_id(); } 208 GLuint object_name() const override { return texture_ref_->client_id(); }
209 209
210 bool cleared() const override { 210 bool cleared() const override {
211 return texture_ref_->texture()->IsLevelCleared(target_, level_); 211 return texture_ref_->texture()->IsLevelCleared(target_, level_, layer_);
212 } 212 }
213 213
214 void SetCleared(RenderbufferManager* /* renderbuffer_manager */, 214 void SetCleared(RenderbufferManager* /* renderbuffer_manager */,
215 TextureManager* texture_manager, 215 TextureManager* texture_manager,
216 bool cleared) override { 216 bool cleared) override {
217 DCHECK(texture_manager); 217 DCHECK(texture_manager);
218 texture_manager->SetLevelCleared( 218 texture_manager->SetLevelCleared(
219 texture_ref_.get(), target_, level_, cleared); 219 texture_ref_.get(), target_, level_, layer_, cleared);
220 } 220 }
221 221
222 bool IsPartiallyCleared() const override { 222 bool IsPartiallyCleared() const override {
223 return texture_ref_->texture()->IsLevelPartiallyCleared(target_, level_); 223 return texture_ref_->texture()->IsLevelPartiallyCleared(
224 target_, level_, layer_);
224 } 225 }
225 226
226 bool IsTextureAttachment() const override { return true; } 227 bool IsTextureAttachment() const override { return true; }
227 bool IsRenderbufferAttachment() const override { return false; } 228 bool IsRenderbufferAttachment() const override { return false; }
228 229
229 bool IsTexture(TextureRef* texture) const override { 230 bool IsTexture(TextureRef* texture) const override {
230 return texture == texture_ref_.get(); 231 return texture == texture_ref_.get();
231 } 232 }
232 233
233 bool IsSameAttachment(const Attachment* attachment) const override { 234 bool IsSameAttachment(const Attachment* attachment) const override {
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
297 } 298 }
298 299
299 size_t GetSignatureSize(TextureManager* texture_manager) const override { 300 size_t GetSignatureSize(TextureManager* texture_manager) const override {
300 return texture_manager->GetSignatureSize(); 301 return texture_manager->GetSignatureSize();
301 } 302 }
302 303
303 void AddToSignature(TextureManager* texture_manager, 304 void AddToSignature(TextureManager* texture_manager,
304 std::string* signature) const override { 305 std::string* signature) const override {
305 DCHECK(signature); 306 DCHECK(signature);
306 texture_manager->AddToSignature( 307 texture_manager->AddToSignature(
307 texture_ref_.get(), target_, level_, signature); 308 texture_ref_.get(), target_, level_, layer_, signature);
308 } 309 }
309 310
310 bool FormsFeedbackLoop(TextureRef* texture, 311 bool FormsFeedbackLoop(TextureRef* texture,
311 GLint level, GLint layer) const override { 312 GLint level, GLint layer) const override {
312 return texture == texture_ref_.get() && 313 return texture == texture_ref_.get() &&
313 level == level_ && layer == layer_; 314 level == level_ && layer == layer_;
314 } 315 }
315 316
316 bool EmulatingRGB() const override { 317 bool EmulatingRGB() const override {
317 return texture_ref_->texture()->EmulatingRGB(); 318 return texture_ref_->texture()->EmulatingRGB();
(...skipping 761 matching lines...) Expand 10 before | Expand all | Expand 10 after
1079 1080
1080 bool FramebufferManager::IsComplete( 1081 bool FramebufferManager::IsComplete(
1081 Framebuffer* framebuffer) { 1082 Framebuffer* framebuffer) {
1082 DCHECK(framebuffer); 1083 DCHECK(framebuffer);
1083 return framebuffer->framebuffer_complete_state_count_id() == 1084 return framebuffer->framebuffer_complete_state_count_id() ==
1084 framebuffer_state_change_count_; 1085 framebuffer_state_change_count_;
1085 } 1086 }
1086 1087
1087 } // namespace gles2 1088 } // namespace gles2
1088 } // namespace gpu 1089 } // namespace gpu
OLDNEW
« no previous file with comments | « no previous file | gpu/command_buffer/service/gles2_cmd_decoder.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698