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

Unified Diff: gpu/command_buffer/service/gles2_cmd_decoder_unittest_base.cc

Issue 1168213003: gpu: Make sure we restore scissor rect after clearing a texture level. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: enable scissor test in UnClearedAttachmentsGetClearedOnClear Created 5 years, 6 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 side-by-side diff with in-line comments
Download patch
Index: gpu/command_buffer/service/gles2_cmd_decoder_unittest_base.cc
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_base.cc b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_base.cc
index b9fd068d8cb1e6f99a04143c4baddc11f56844ee..12981d1ee6e41b701db114377e2b28c4cb658418 100644
--- a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_base.cc
+++ b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_base.cc
@@ -690,19 +690,16 @@ void GLES2DecoderTestBase::SetupExpectationsForFramebufferClearing(
GLclampf restore_alpha,
GLuint restore_stencil,
GLclampf restore_depth,
- bool restore_scissor_test) {
+ bool restore_scissor_test,
+ GLint restore_scissor_x,
+ GLint restore_scissor_y,
+ GLsizei restore_scissor_width,
+ GLsizei restore_scissor_height) {
SetupExpectationsForFramebufferClearingMulti(
- 0,
- 0,
- target,
- clear_bits,
- restore_red,
- restore_green,
- restore_blue,
- restore_alpha,
- restore_stencil,
- restore_depth,
- restore_scissor_test);
+ 0, 0, target, clear_bits, restore_red, restore_green, restore_blue,
+ restore_alpha, restore_stencil, restore_depth, restore_scissor_test,
+ restore_scissor_x, restore_scissor_y, restore_scissor_width,
+ restore_scissor_height);
}
void GLES2DecoderTestBase::SetupExpectationsForRestoreClearState(
@@ -712,7 +709,11 @@ void GLES2DecoderTestBase::SetupExpectationsForRestoreClearState(
GLclampf restore_alpha,
GLuint restore_stencil,
GLclampf restore_depth,
- bool restore_scissor_test) {
+ bool restore_scissor_test,
+ GLint restore_scissor_x,
+ GLint restore_scissor_y,
+ GLsizei restore_scissor_width,
+ GLsizei restore_scissor_height) {
EXPECT_CALL(*gl_, ClearColor(
restore_red, restore_green, restore_blue, restore_alpha))
.Times(1)
@@ -723,11 +724,11 @@ void GLES2DecoderTestBase::SetupExpectationsForRestoreClearState(
EXPECT_CALL(*gl_, ClearDepth(restore_depth))
.Times(1)
.RetiresOnSaturation();
- if (restore_scissor_test) {
- EXPECT_CALL(*gl_, Enable(GL_SCISSOR_TEST))
- .Times(1)
- .RetiresOnSaturation();
- }
+ SetupExpectationsForEnableDisable(GL_SCISSOR_TEST, restore_scissor_test);
+ EXPECT_CALL(*gl_, Scissor(restore_scissor_x, restore_scissor_y,
+ restore_scissor_width, restore_scissor_height))
+ .Times(1)
+ .RetiresOnSaturation();
}
void GLES2DecoderTestBase::SetupExpectationsForFramebufferClearingMulti(
@@ -741,7 +742,11 @@ void GLES2DecoderTestBase::SetupExpectationsForFramebufferClearingMulti(
GLclampf restore_alpha,
GLuint restore_stencil,
GLclampf restore_depth,
- bool restore_scissor_test) {
+ bool restore_scissor_test,
+ GLint restore_scissor_x,
+ GLint restore_scissor_y,
+ GLsizei restore_scissor_width,
+ GLsizei restore_scissor_height) {
// TODO(gman): Figure out why InSequence stopped working.
// InSequence sequence;
EXPECT_CALL(*gl_, CheckFramebufferStatusEXT(target))
@@ -781,8 +786,9 @@ void GLES2DecoderTestBase::SetupExpectationsForFramebufferClearingMulti(
.Times(1)
.RetiresOnSaturation();
SetupExpectationsForRestoreClearState(
- restore_red, restore_green, restore_blue, restore_alpha,
- restore_stencil, restore_depth, restore_scissor_test);
+ restore_red, restore_green, restore_blue, restore_alpha, restore_stencil,
+ restore_depth, restore_scissor_test, restore_scissor_x, restore_scissor_y,
+ restore_scissor_width, restore_scissor_height);
if (target == GL_READ_FRAMEBUFFER_EXT) {
EXPECT_CALL(*gl_, BindFramebufferEXT(
GL_READ_FRAMEBUFFER_EXT, read_framebuffer_service_id))
@@ -1674,6 +1680,18 @@ void GLES2DecoderTestBase::DoBufferSubData(
EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
}
+void GLES2DecoderTestBase::DoScissor(GLint x,
+ GLint y,
+ GLsizei width,
+ GLsizei height) {
+ EXPECT_CALL(*gl_, Scissor(x, y, width, height))
+ .Times(1)
+ .RetiresOnSaturation();
+ cmds::Scissor cmd;
+ cmd.Init(x, y, width, height);
+ EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
+}
+
void GLES2DecoderTestBase::SetupVertexBuffer() {
DoEnableVertexAttribArray(1);
DoBindBuffer(GL_ARRAY_BUFFER, client_buffer_id_, kServiceBufferId);

Powered by Google App Engine
This is Rietveld 408576698