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

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

Issue 659903002: Add subscribeUniform extension pipeline (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: V3 API Created 6 years, 1 month 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
(Empty)
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
3 // found in the LICENSE file.
4
5 #include "gpu/command_buffer/service/gles2_cmd_decoder.h"
6
7 #include "base/command_line.h"
8 #include "gpu/command_buffer/common/gles2_cmd_format.h"
9 #include "gpu/command_buffer/common/gles2_cmd_utils.h"
10 #include "gpu/command_buffer/service/gles2_cmd_decoder_unittest.h"
11
12 #include "gpu/command_buffer/service/test_helper.h"
13 #include "gpu/command_buffer/service/valuebuffer_manager.h"
14 #include "testing/gtest/include/gtest/gtest.h"
15 #include "ui/gl/gl_implementation.h"
16 #include "ui/gl/gl_mock.h"
17 #include "ui/gl/gl_surface_stub.h"
18
19 using ::gfx::MockGLInterface;
20
21 namespace gpu {
22 namespace gles2 {
23
24 using namespace cmds;
25
26 TEST_P(GLES2DecoderWithShaderTest, ValuebufferBasic) {
27 const uint32 kBufferId = 123;
28 GLint* kMousePos = new GLint[2];
29 kMousePos[0] = 111;
30 kMousePos[1] = 222;
31 IntValueState* valuestate =
32 new IntValueState(GL_MOUSE_POSITION_CHROMIUM, kMousePos);
33 valuebuffer_manager()->CreateValuebuffer(kBufferId);
34 valuebuffer_manager()->UpdateValueState(valuestate);
35 BindValuebufferCHROMIUM cmd1;
36 cmd1.Init(GL_SUBSCRIBED_VALUES_BUFFER_CHROMIUM, kBufferId);
37 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd1));
38 SubscribeValueCHROMIUM cmd2;
39 cmd2.Init(GL_SUBSCRIBED_VALUES_BUFFER_CHROMIUM, GL_MOUSE_POSITION_CHROMIUM);
40 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd2));
41 PopulateSubscribedValuesCHROMIUM cmd3;
42 cmd3.Init(GL_SUBSCRIBED_VALUES_BUFFER_CHROMIUM);
43 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd3));
44 EXPECT_CALL(*gl_, Uniform2iv(kUniform2RealLocation, 1, kMousePos)).Times(1);
45 UniformValuebufferCHROMIUM cmd4;
46 cmd4.Init(kUniform2FakeLocation, GL_SUBSCRIBED_VALUES_BUFFER_CHROMIUM,
47 GL_MOUSE_POSITION_CHROMIUM);
48 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd4));
49 }
50
51 TEST_P(GLES2DecoderWithShaderTest, SubscribeValuebufferNotBound) {
52 const uint32 kBufferId = 123;
53 GLint* kMousePos = new GLint[2];
54 kMousePos[0] = 111;
55 kMousePos[1] = 222;
56 IntValueState* valuestate =
57 new IntValueState(GL_MOUSE_POSITION_CHROMIUM, kMousePos);
58 valuebuffer_manager()->CreateValuebuffer(kBufferId);
59 valuebuffer_manager()->UpdateValueState(valuestate);
60 SubscribeValueCHROMIUM cmd1;
61 cmd1.Init(GL_SUBSCRIBED_VALUES_BUFFER_CHROMIUM, GL_MOUSE_POSITION_CHROMIUM);
62 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd1));
63 EXPECT_EQ(GL_INVALID_OPERATION, GetGLError());
64 }
65
66 TEST_P(GLES2DecoderWithShaderTest, PopulateValuebufferNoSubscription) {
67 const uint32 kBufferId = 123;
68 GLint* kMousePos = new GLint[2];
69 kMousePos[0] = 111;
70 kMousePos[1] = 222;
71 IntValueState* valuestate =
72 new IntValueState(GL_MOUSE_POSITION_CHROMIUM, kMousePos);
73 valuebuffer_manager()->CreateValuebuffer(kBufferId);
74 valuebuffer_manager()->UpdateValueState(valuestate);
75 BindValuebufferCHROMIUM cmd1;
76 cmd1.Init(GL_SUBSCRIBED_VALUES_BUFFER_CHROMIUM, kBufferId);
77 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd1));
78 PopulateSubscribedValuesCHROMIUM cmd2;
79 cmd2.Init(GL_SUBSCRIBED_VALUES_BUFFER_CHROMIUM);
80 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd2));
81 EXPECT_EQ(GL_NONE, GetGLError());
82 }
83
84 TEST_P(GLES2DecoderWithShaderTest, UniformValuebufferNoState) {
85 const uint32 kBufferId = 123;
86 GLint* kMousePos = new GLint[2];
87 kMousePos[0] = 111;
88 kMousePos[1] = 222;
89 IntValueState* valuestate =
90 new IntValueState(GL_MOUSE_POSITION_CHROMIUM, kMousePos);
91 valuebuffer_manager()->CreateValuebuffer(kBufferId);
92 valuebuffer_manager()->UpdateValueState(valuestate);
93 BindValuebufferCHROMIUM cmd1;
94 cmd1.Init(GL_SUBSCRIBED_VALUES_BUFFER_CHROMIUM, kBufferId);
95 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd1));
96 SubscribeValueCHROMIUM cmd2;
97 cmd2.Init(GL_SUBSCRIBED_VALUES_BUFFER_CHROMIUM, GL_MOUSE_POSITION_CHROMIUM);
98 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd2));
99 EXPECT_CALL(*gl_, Uniform2iv(kUniform2RealLocation, 1, kMousePos)).Times(0);
100 UniformValuebufferCHROMIUM cmd3;
101 cmd3.Init(kUniform2FakeLocation, GL_SUBSCRIBED_VALUES_BUFFER_CHROMIUM,
102 GL_MOUSE_POSITION_CHROMIUM);
103 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd3));
104 EXPECT_EQ(GL_NONE, GetGLError());
105 }
106
107 TEST_P(GLES2DecoderWithShaderTest, UniformValuebufferInvalidLocation) {
108 const uint32 kBufferId = 123;
109 GLint* kMousePos = new GLint[2];
110 kMousePos[0] = 111;
111 kMousePos[1] = 222;
112 IntValueState* valuestate =
113 new IntValueState(GL_MOUSE_POSITION_CHROMIUM, kMousePos);
114 valuebuffer_manager()->CreateValuebuffer(kBufferId);
115 valuebuffer_manager()->UpdateValueState(valuestate);
116 BindValuebufferCHROMIUM cmd1;
117 cmd1.Init(GL_SUBSCRIBED_VALUES_BUFFER_CHROMIUM, kBufferId);
118 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd1));
119 SubscribeValueCHROMIUM cmd2;
120 cmd2.Init(GL_SUBSCRIBED_VALUES_BUFFER_CHROMIUM, GL_MOUSE_POSITION_CHROMIUM);
121 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd2));
122 PopulateSubscribedValuesCHROMIUM cmd3;
123 cmd3.Init(GL_SUBSCRIBED_VALUES_BUFFER_CHROMIUM);
124 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd3));
125 EXPECT_CALL(*gl_, Uniform2iv(kUniform2RealLocation, 1, kMousePos)).Times(0);
126 UniformValuebufferCHROMIUM cmd4;
127 cmd4.Init(kUniform1FakeLocation, GL_SUBSCRIBED_VALUES_BUFFER_CHROMIUM,
128 GL_MOUSE_POSITION_CHROMIUM);
129 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd4));
130 EXPECT_EQ(GL_INVALID_OPERATION, GetGLError());
131 }
132
133 } // namespace gles2
134 } // namespace gpu
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698