OLD | NEW |
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/gles2_cmd_decoder_unittest_base.h" | 5 #include "gpu/command_buffer/service/gles2_cmd_decoder_unittest_base.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <string> | 8 #include <string> |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
(...skipping 672 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
683 | 683 |
684 void GLES2DecoderTestBase::SetupExpectationsForFramebufferClearing( | 684 void GLES2DecoderTestBase::SetupExpectationsForFramebufferClearing( |
685 GLenum target, | 685 GLenum target, |
686 GLuint clear_bits, | 686 GLuint clear_bits, |
687 GLclampf restore_red, | 687 GLclampf restore_red, |
688 GLclampf restore_green, | 688 GLclampf restore_green, |
689 GLclampf restore_blue, | 689 GLclampf restore_blue, |
690 GLclampf restore_alpha, | 690 GLclampf restore_alpha, |
691 GLuint restore_stencil, | 691 GLuint restore_stencil, |
692 GLclampf restore_depth, | 692 GLclampf restore_depth, |
693 bool restore_scissor_test) { | 693 bool restore_scissor_test, |
| 694 GLint restore_scissor_x, |
| 695 GLint restore_scissor_y, |
| 696 GLsizei restore_scissor_width, |
| 697 GLsizei restore_scissor_height) { |
694 SetupExpectationsForFramebufferClearingMulti( | 698 SetupExpectationsForFramebufferClearingMulti( |
695 0, | 699 0, 0, target, clear_bits, restore_red, restore_green, restore_blue, |
696 0, | 700 restore_alpha, restore_stencil, restore_depth, restore_scissor_test, |
697 target, | 701 restore_scissor_x, restore_scissor_y, restore_scissor_width, |
698 clear_bits, | 702 restore_scissor_height); |
699 restore_red, | |
700 restore_green, | |
701 restore_blue, | |
702 restore_alpha, | |
703 restore_stencil, | |
704 restore_depth, | |
705 restore_scissor_test); | |
706 } | 703 } |
707 | 704 |
708 void GLES2DecoderTestBase::SetupExpectationsForRestoreClearState( | 705 void GLES2DecoderTestBase::SetupExpectationsForRestoreClearState( |
709 GLclampf restore_red, | 706 GLclampf restore_red, |
710 GLclampf restore_green, | 707 GLclampf restore_green, |
711 GLclampf restore_blue, | 708 GLclampf restore_blue, |
712 GLclampf restore_alpha, | 709 GLclampf restore_alpha, |
713 GLuint restore_stencil, | 710 GLuint restore_stencil, |
714 GLclampf restore_depth, | 711 GLclampf restore_depth, |
715 bool restore_scissor_test) { | 712 bool restore_scissor_test, |
| 713 GLint restore_scissor_x, |
| 714 GLint restore_scissor_y, |
| 715 GLsizei restore_scissor_width, |
| 716 GLsizei restore_scissor_height) { |
716 EXPECT_CALL(*gl_, ClearColor( | 717 EXPECT_CALL(*gl_, ClearColor( |
717 restore_red, restore_green, restore_blue, restore_alpha)) | 718 restore_red, restore_green, restore_blue, restore_alpha)) |
718 .Times(1) | 719 .Times(1) |
719 .RetiresOnSaturation(); | 720 .RetiresOnSaturation(); |
720 EXPECT_CALL(*gl_, ClearStencil(restore_stencil)) | 721 EXPECT_CALL(*gl_, ClearStencil(restore_stencil)) |
721 .Times(1) | 722 .Times(1) |
722 .RetiresOnSaturation(); | 723 .RetiresOnSaturation(); |
723 EXPECT_CALL(*gl_, ClearDepth(restore_depth)) | 724 EXPECT_CALL(*gl_, ClearDepth(restore_depth)) |
724 .Times(1) | 725 .Times(1) |
725 .RetiresOnSaturation(); | 726 .RetiresOnSaturation(); |
726 if (restore_scissor_test) { | 727 SetupExpectationsForEnableDisable(GL_SCISSOR_TEST, restore_scissor_test); |
727 EXPECT_CALL(*gl_, Enable(GL_SCISSOR_TEST)) | 728 EXPECT_CALL(*gl_, Scissor(restore_scissor_x, restore_scissor_y, |
728 .Times(1) | 729 restore_scissor_width, restore_scissor_height)) |
729 .RetiresOnSaturation(); | 730 .Times(1) |
730 } | 731 .RetiresOnSaturation(); |
731 } | 732 } |
732 | 733 |
733 void GLES2DecoderTestBase::SetupExpectationsForFramebufferClearingMulti( | 734 void GLES2DecoderTestBase::SetupExpectationsForFramebufferClearingMulti( |
734 GLuint read_framebuffer_service_id, | 735 GLuint read_framebuffer_service_id, |
735 GLuint draw_framebuffer_service_id, | 736 GLuint draw_framebuffer_service_id, |
736 GLenum target, | 737 GLenum target, |
737 GLuint clear_bits, | 738 GLuint clear_bits, |
738 GLclampf restore_red, | 739 GLclampf restore_red, |
739 GLclampf restore_green, | 740 GLclampf restore_green, |
740 GLclampf restore_blue, | 741 GLclampf restore_blue, |
741 GLclampf restore_alpha, | 742 GLclampf restore_alpha, |
742 GLuint restore_stencil, | 743 GLuint restore_stencil, |
743 GLclampf restore_depth, | 744 GLclampf restore_depth, |
744 bool restore_scissor_test) { | 745 bool restore_scissor_test, |
| 746 GLint restore_scissor_x, |
| 747 GLint restore_scissor_y, |
| 748 GLsizei restore_scissor_width, |
| 749 GLsizei restore_scissor_height) { |
745 // TODO(gman): Figure out why InSequence stopped working. | 750 // TODO(gman): Figure out why InSequence stopped working. |
746 // InSequence sequence; | 751 // InSequence sequence; |
747 EXPECT_CALL(*gl_, CheckFramebufferStatusEXT(target)) | 752 EXPECT_CALL(*gl_, CheckFramebufferStatusEXT(target)) |
748 .WillOnce(Return(GL_FRAMEBUFFER_COMPLETE)) | 753 .WillOnce(Return(GL_FRAMEBUFFER_COMPLETE)) |
749 .RetiresOnSaturation(); | 754 .RetiresOnSaturation(); |
750 if (target == GL_READ_FRAMEBUFFER_EXT) { | 755 if (target == GL_READ_FRAMEBUFFER_EXT) { |
751 EXPECT_CALL(*gl_, BindFramebufferEXT(GL_READ_FRAMEBUFFER_EXT, 0)) | 756 EXPECT_CALL(*gl_, BindFramebufferEXT(GL_READ_FRAMEBUFFER_EXT, 0)) |
752 .Times(1) | 757 .Times(1) |
753 .RetiresOnSaturation(); | 758 .RetiresOnSaturation(); |
754 EXPECT_CALL(*gl_, BindFramebufferEXT( | 759 EXPECT_CALL(*gl_, BindFramebufferEXT( |
(...skipping 19 matching lines...) Expand all Loading... |
774 EXPECT_CALL(*gl_, ClearDepth(1.0f)) | 779 EXPECT_CALL(*gl_, ClearDepth(1.0f)) |
775 .Times(1) | 780 .Times(1) |
776 .RetiresOnSaturation(); | 781 .RetiresOnSaturation(); |
777 SetupExpectationsForDepthMask(true); | 782 SetupExpectationsForDepthMask(true); |
778 } | 783 } |
779 SetupExpectationsForEnableDisable(GL_SCISSOR_TEST, false); | 784 SetupExpectationsForEnableDisable(GL_SCISSOR_TEST, false); |
780 EXPECT_CALL(*gl_, Clear(clear_bits)) | 785 EXPECT_CALL(*gl_, Clear(clear_bits)) |
781 .Times(1) | 786 .Times(1) |
782 .RetiresOnSaturation(); | 787 .RetiresOnSaturation(); |
783 SetupExpectationsForRestoreClearState( | 788 SetupExpectationsForRestoreClearState( |
784 restore_red, restore_green, restore_blue, restore_alpha, | 789 restore_red, restore_green, restore_blue, restore_alpha, restore_stencil, |
785 restore_stencil, restore_depth, restore_scissor_test); | 790 restore_depth, restore_scissor_test, restore_scissor_x, restore_scissor_y, |
| 791 restore_scissor_width, restore_scissor_height); |
786 if (target == GL_READ_FRAMEBUFFER_EXT) { | 792 if (target == GL_READ_FRAMEBUFFER_EXT) { |
787 EXPECT_CALL(*gl_, BindFramebufferEXT( | 793 EXPECT_CALL(*gl_, BindFramebufferEXT( |
788 GL_READ_FRAMEBUFFER_EXT, read_framebuffer_service_id)) | 794 GL_READ_FRAMEBUFFER_EXT, read_framebuffer_service_id)) |
789 .Times(1) | 795 .Times(1) |
790 .RetiresOnSaturation(); | 796 .RetiresOnSaturation(); |
791 EXPECT_CALL(*gl_, BindFramebufferEXT( | 797 EXPECT_CALL(*gl_, BindFramebufferEXT( |
792 GL_DRAW_FRAMEBUFFER_EXT, draw_framebuffer_service_id)) | 798 GL_DRAW_FRAMEBUFFER_EXT, draw_framebuffer_service_id)) |
793 .Times(1) | 799 .Times(1) |
794 .RetiresOnSaturation(); | 800 .RetiresOnSaturation(); |
795 } | 801 } |
(...skipping 871 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1667 EXPECT_CALL(*gl_, BufferSubData(target, offset, size, | 1673 EXPECT_CALL(*gl_, BufferSubData(target, offset, size, |
1668 shared_memory_address_)) | 1674 shared_memory_address_)) |
1669 .Times(1) | 1675 .Times(1) |
1670 .RetiresOnSaturation(); | 1676 .RetiresOnSaturation(); |
1671 memcpy(shared_memory_address_, data, size); | 1677 memcpy(shared_memory_address_, data, size); |
1672 cmds::BufferSubData cmd; | 1678 cmds::BufferSubData cmd; |
1673 cmd.Init(target, offset, size, shared_memory_id_, shared_memory_offset_); | 1679 cmd.Init(target, offset, size, shared_memory_id_, shared_memory_offset_); |
1674 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); | 1680 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); |
1675 } | 1681 } |
1676 | 1682 |
| 1683 void GLES2DecoderTestBase::DoScissor(GLint x, |
| 1684 GLint y, |
| 1685 GLsizei width, |
| 1686 GLsizei height) { |
| 1687 EXPECT_CALL(*gl_, Scissor(x, y, width, height)) |
| 1688 .Times(1) |
| 1689 .RetiresOnSaturation(); |
| 1690 cmds::Scissor cmd; |
| 1691 cmd.Init(x, y, width, height); |
| 1692 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); |
| 1693 } |
| 1694 |
1677 void GLES2DecoderTestBase::SetupVertexBuffer() { | 1695 void GLES2DecoderTestBase::SetupVertexBuffer() { |
1678 DoEnableVertexAttribArray(1); | 1696 DoEnableVertexAttribArray(1); |
1679 DoBindBuffer(GL_ARRAY_BUFFER, client_buffer_id_, kServiceBufferId); | 1697 DoBindBuffer(GL_ARRAY_BUFFER, client_buffer_id_, kServiceBufferId); |
1680 DoBufferData(GL_ARRAY_BUFFER, kNumVertices * 2 * sizeof(GLfloat)); | 1698 DoBufferData(GL_ARRAY_BUFFER, kNumVertices * 2 * sizeof(GLfloat)); |
1681 } | 1699 } |
1682 | 1700 |
1683 void GLES2DecoderTestBase::SetupAllNeededVertexBuffers() { | 1701 void GLES2DecoderTestBase::SetupAllNeededVertexBuffers() { |
1684 DoBindBuffer(GL_ARRAY_BUFFER, client_buffer_id_, kServiceBufferId); | 1702 DoBindBuffer(GL_ARRAY_BUFFER, client_buffer_id_, kServiceBufferId); |
1685 DoBufferData(GL_ARRAY_BUFFER, kNumVertices * 16 * sizeof(float)); | 1703 DoBufferData(GL_ARRAY_BUFFER, kNumVertices * 16 * sizeof(float)); |
1686 DoEnableVertexAttribArray(0); | 1704 DoEnableVertexAttribArray(0); |
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1816 SetupDefaultProgram(); | 1834 SetupDefaultProgram(); |
1817 } | 1835 } |
1818 | 1836 |
1819 // Include the auto-generated part of this file. We split this because it means | 1837 // Include the auto-generated part of this file. We split this because it means |
1820 // we can easily edit the non-auto generated parts right here in this file | 1838 // we can easily edit the non-auto generated parts right here in this file |
1821 // instead of having to edit some template or the code generator. | 1839 // instead of having to edit some template or the code generator. |
1822 #include "gpu/command_buffer/service/gles2_cmd_decoder_unittest_0_autogen.h" | 1840 #include "gpu/command_buffer/service/gles2_cmd_decoder_unittest_0_autogen.h" |
1823 | 1841 |
1824 } // namespace gles2 | 1842 } // namespace gles2 |
1825 } // namespace gpu | 1843 } // namespace gpu |
OLD | NEW |