OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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.h" | 5 #include "gpu/command_buffer/service/gles2_cmd_decoder.h" |
6 | 6 |
7 #include <limits.h> | 7 #include <limits.h> |
8 #include <stddef.h> | 8 #include <stddef.h> |
9 #include <stdint.h> | 9 #include <stdint.h> |
10 | 10 |
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
83 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); | 83 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); |
84 EXPECT_EQ(static_cast<GLenum>(GL_FRAMEBUFFER_COMPLETE), *result); | 84 EXPECT_EQ(static_cast<GLenum>(GL_FRAMEBUFFER_COMPLETE), *result); |
85 } | 85 } |
86 | 86 |
87 TEST_P(GLES2DecoderWithShaderTest, BindAndDeleteFramebuffer) { | 87 TEST_P(GLES2DecoderWithShaderTest, BindAndDeleteFramebuffer) { |
88 SetupTexture(); | 88 SetupTexture(); |
89 AddExpectationsForSimulatedAttrib0(kNumVertices, 0); | 89 AddExpectationsForSimulatedAttrib0(kNumVertices, 0); |
90 SetupExpectationsForApplyingDefaultDirtyState(); | 90 SetupExpectationsForApplyingDefaultDirtyState(); |
91 DoBindFramebuffer( | 91 DoBindFramebuffer( |
92 GL_FRAMEBUFFER, client_framebuffer_id_, kServiceFramebufferId); | 92 GL_FRAMEBUFFER, client_framebuffer_id_, kServiceFramebufferId); |
93 DoDeleteFramebuffer(client_framebuffer_id_, | 93 DoDeleteFramebuffer(client_framebuffer_id_, kServiceFramebufferId); |
94 kServiceFramebufferId, | 94 EXPECT_CALL(*gl_, BindFramebufferEXT(GL_FRAMEBUFFER, 0)) |
95 true, | 95 .Times(1) |
96 GL_FRAMEBUFFER, | 96 .RetiresOnSaturation(); |
97 0, | |
98 true, | |
99 GL_FRAMEBUFFER, | |
100 0); | |
101 EXPECT_CALL(*gl_, DrawArrays(GL_TRIANGLES, 0, kNumVertices)) | 97 EXPECT_CALL(*gl_, DrawArrays(GL_TRIANGLES, 0, kNumVertices)) |
102 .Times(1) | 98 .Times(1) |
103 .RetiresOnSaturation(); | 99 .RetiresOnSaturation(); |
104 DrawArrays cmd; | 100 DrawArrays cmd; |
105 cmd.Init(GL_TRIANGLES, 0, kNumVertices); | 101 cmd.Init(GL_TRIANGLES, 0, kNumVertices); |
106 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); | 102 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); |
107 EXPECT_EQ(GL_NO_ERROR, GetGLError()); | 103 EXPECT_EQ(GL_NO_ERROR, GetGLError()); |
108 } | 104 } |
109 | 105 |
110 TEST_P(GLES2DecoderTest, FramebufferRenderbufferWithNoBoundTarget) { | 106 TEST_P(GLES2DecoderTest, FramebufferRenderbufferWithNoBoundTarget) { |
(...skipping 2635 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2746 EXPECT_TRUE(framebuffer_manager->IsComplete(framebuffer)); | 2742 EXPECT_TRUE(framebuffer_manager->IsComplete(framebuffer)); |
2747 | 2743 |
2748 // Test deleting renderbuffer marks fbo as not complete. | 2744 // Test deleting renderbuffer marks fbo as not complete. |
2749 DoDeleteRenderbuffer(client_renderbuffer_id_, kServiceRenderbufferId); | 2745 DoDeleteRenderbuffer(client_renderbuffer_id_, kServiceRenderbufferId); |
2750 if (bound_fbo) { | 2746 if (bound_fbo) { |
2751 EXPECT_FALSE(framebuffer_manager->IsComplete(framebuffer)); | 2747 EXPECT_FALSE(framebuffer_manager->IsComplete(framebuffer)); |
2752 } else { | 2748 } else { |
2753 EXPECT_TRUE(framebuffer_manager->IsComplete(framebuffer)); | 2749 EXPECT_TRUE(framebuffer_manager->IsComplete(framebuffer)); |
2754 } | 2750 } |
2755 // Cleanup | 2751 // Cleanup |
2756 DoDeleteFramebuffer(client_framebuffer_id_, | 2752 DoDeleteFramebuffer(client_framebuffer_id_, kServiceFramebufferId); |
2757 kServiceFramebufferId, | |
2758 bound_fbo, | |
2759 GL_FRAMEBUFFER, | |
2760 0, | |
2761 bound_fbo, | |
2762 GL_FRAMEBUFFER, | |
2763 0); | |
2764 } | 2753 } |
2765 | 2754 |
2766 TEST_P(GLES2DecoderWithShaderTest, | 2755 TEST_P(GLES2DecoderWithShaderTest, |
2767 RenderbufferChangesMarkFBOAsNotCompleteBoundFBO) { | 2756 RenderbufferChangesMarkFBOAsNotCompleteBoundFBO) { |
2768 CheckRenderbufferChangesMarkFBOAsNotComplete(true); | 2757 CheckRenderbufferChangesMarkFBOAsNotComplete(true); |
2769 } | 2758 } |
2770 | 2759 |
2771 TEST_P(GLES2DecoderWithShaderTest, | 2760 TEST_P(GLES2DecoderWithShaderTest, |
2772 RenderbufferChangesMarkFBOAsNotCompleteUnboundFBO) { | 2761 RenderbufferChangesMarkFBOAsNotCompleteUnboundFBO) { |
2773 CheckRenderbufferChangesMarkFBOAsNotComplete(false); | 2762 CheckRenderbufferChangesMarkFBOAsNotComplete(false); |
(...skipping 22 matching lines...) Expand all Loading... |
2796 DoFramebufferTexture2D(GL_FRAMEBUFFER, | 2785 DoFramebufferTexture2D(GL_FRAMEBUFFER, |
2797 GL_COLOR_ATTACHMENT0, | 2786 GL_COLOR_ATTACHMENT0, |
2798 GL_TEXTURE_2D, | 2787 GL_TEXTURE_2D, |
2799 kFBOClientTextureId, | 2788 kFBOClientTextureId, |
2800 kFBOServiceTextureId, | 2789 kFBOServiceTextureId, |
2801 0, | 2790 0, |
2802 GL_NO_ERROR); | 2791 GL_NO_ERROR); |
2803 | 2792 |
2804 DoBindRenderbuffer( | 2793 DoBindRenderbuffer( |
2805 GL_RENDERBUFFER, client_renderbuffer_id_, kServiceRenderbufferId); | 2794 GL_RENDERBUFFER, client_renderbuffer_id_, kServiceRenderbufferId); |
2806 DoBindFramebuffer( | |
2807 GL_FRAMEBUFFER, client_framebuffer_id_, kServiceFramebufferId); | |
2808 DoRenderbufferStorage(GL_RENDERBUFFER, | 2795 DoRenderbufferStorage(GL_RENDERBUFFER, |
2809 GL_DEPTH_COMPONENT16, | 2796 GL_DEPTH_COMPONENT16, |
2810 GL_DEPTH_COMPONENT, | 2797 GL_DEPTH_COMPONENT, |
2811 1, | 2798 1, |
2812 1, | 2799 1, |
2813 GL_NO_ERROR); | 2800 GL_NO_ERROR); |
2814 DoFramebufferRenderbuffer(GL_FRAMEBUFFER, | 2801 DoFramebufferRenderbuffer(GL_FRAMEBUFFER, |
2815 GL_DEPTH_ATTACHMENT, | 2802 GL_DEPTH_ATTACHMENT, |
2816 GL_RENDERBUFFER, | 2803 GL_RENDERBUFFER, |
2817 client_renderbuffer_id_, | 2804 client_renderbuffer_id_, |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2862 framebuffer_manager->MarkAsComplete(framebuffer); | 2849 framebuffer_manager->MarkAsComplete(framebuffer); |
2863 EXPECT_TRUE(framebuffer_manager->IsComplete(framebuffer)); | 2850 EXPECT_TRUE(framebuffer_manager->IsComplete(framebuffer)); |
2864 DoDeleteTexture(kFBOClientTextureId, kFBOServiceTextureId); | 2851 DoDeleteTexture(kFBOClientTextureId, kFBOServiceTextureId); |
2865 | 2852 |
2866 if (bound_fbo) { | 2853 if (bound_fbo) { |
2867 EXPECT_FALSE(framebuffer_manager->IsComplete(framebuffer)); | 2854 EXPECT_FALSE(framebuffer_manager->IsComplete(framebuffer)); |
2868 } else { | 2855 } else { |
2869 EXPECT_TRUE(framebuffer_manager->IsComplete(framebuffer)); | 2856 EXPECT_TRUE(framebuffer_manager->IsComplete(framebuffer)); |
2870 } | 2857 } |
2871 // Cleanup | 2858 // Cleanup |
2872 DoDeleteFramebuffer(client_framebuffer_id_, | 2859 DoDeleteFramebuffer(client_framebuffer_id_, kServiceFramebufferId); |
2873 kServiceFramebufferId, | |
2874 bound_fbo, | |
2875 GL_FRAMEBUFFER, | |
2876 0, | |
2877 bound_fbo, | |
2878 GL_FRAMEBUFFER, | |
2879 0); | |
2880 } | 2860 } |
2881 | 2861 |
2882 TEST_P(GLES2DecoderWithShaderTest, TextureChangesMarkFBOAsNotCompleteBoundFBO) { | 2862 TEST_P(GLES2DecoderWithShaderTest, TextureChangesMarkFBOAsNotCompleteBoundFBO) { |
2883 CheckTextureChangesMarkFBOAsNotComplete(true); | 2863 CheckTextureChangesMarkFBOAsNotComplete(true); |
2884 } | 2864 } |
2885 | 2865 |
2886 TEST_P(GLES2DecoderWithShaderTest, | 2866 TEST_P(GLES2DecoderWithShaderTest, |
2887 TextureChangesMarkFBOAsNotCompleteUnboundFBO) { | 2867 TextureChangesMarkFBOAsNotCompleteUnboundFBO) { |
2888 CheckTextureChangesMarkFBOAsNotComplete(false); | 2868 CheckTextureChangesMarkFBOAsNotComplete(false); |
2889 } | 2869 } |
(...skipping 423 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3313 EXPECT_EQ(1, result->GetNumResults()); | 3293 EXPECT_EQ(1, result->GetNumResults()); |
3314 EXPECT_EQ(GL_NO_ERROR, GetGLError()); | 3294 EXPECT_EQ(GL_NO_ERROR, GetGLError()); |
3315 } | 3295 } |
3316 | 3296 |
3317 // TODO(gman): PixelStorei | 3297 // TODO(gman): PixelStorei |
3318 | 3298 |
3319 // TODO(gman): SwapBuffers | 3299 // TODO(gman): SwapBuffers |
3320 | 3300 |
3321 } // namespace gles2 | 3301 } // namespace gles2 |
3322 } // namespace gpu | 3302 } // namespace gpu |
OLD | NEW |