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 // This file is auto-generated from | 5 // This file is auto-generated from |
6 // gpu/command_buffer/build_gles2_cmd_buffer.py | 6 // gpu/command_buffer/build_gles2_cmd_buffer.py |
7 // DO NOT EDIT! | 7 // DO NOT EDIT! |
8 | 8 |
9 // This file is included by gles2_implementation.h to declare the | 9 // This file is included by gles2_implementation.cc to define the |
10 // GL api functions. | 10 // GL api functions. |
11 #ifndef GPU_COMMAND_BUFFER_CLIENT_GLES2_IMPLEMENTATION_AUTOGEN_H_ | 11 #ifndef GPU_COMMAND_BUFFER_CLIENT_GLES2_IMPLEMENTATION_IMPL_AUTOGEN_H_ |
12 #define GPU_COMMAND_BUFFER_CLIENT_GLES2_IMPLEMENTATION_AUTOGEN_H_ | 12 #define GPU_COMMAND_BUFFER_CLIENT_GLES2_IMPLEMENTATION_IMPL_AUTOGEN_H_ |
13 | 13 |
14 void ActiveTexture(GLenum texture); | 14 void GLES2Implementation::AttachShader(GLuint program, GLuint shader) { |
15 | |
16 void AttachShader(GLuint program, GLuint shader) { | |
17 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 15 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
18 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glAttachShader(" << program << ", "
<< shader << ")"); // NOLINT | 16 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glAttachShader(" << program << ", "
<< shader << ")"); // NOLINT |
19 helper_->AttachShader(program, shader); | 17 helper_->AttachShader(program, shader); |
20 } | 18 } |
21 | 19 |
22 void BindAttribLocation(GLuint program, GLuint index, const char* name); | 20 void GLES2Implementation::BindBuffer(GLenum target, GLuint buffer) { |
23 | |
24 void BindBuffer(GLenum target, GLuint buffer) { | |
25 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 21 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
26 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glBindBuffer(" << GLES2Util::GetStr
ingBufferTarget(target) << ", " << buffer << ")"); // NOLINT | 22 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glBindBuffer(" << GLES2Util::GetStr
ingBufferTarget(target) << ", " << buffer << ")"); // NOLINT |
27 if (IsBufferReservedId(buffer)) { | 23 if (IsBufferReservedId(buffer)) { |
28 SetGLError(GL_INVALID_OPERATION, "BindBuffer", "buffer reserved id"); | 24 SetGLError(GL_INVALID_OPERATION, "BindBuffer", "buffer reserved id"); |
29 return; | 25 return; |
30 } | 26 } |
31 BindBufferHelper(target, buffer); | 27 BindBufferHelper(target, buffer); |
32 helper_->BindBuffer(target, buffer); | 28 helper_->BindBuffer(target, buffer); |
33 } | 29 } |
34 | 30 |
35 void BindFramebuffer(GLenum target, GLuint framebuffer) { | 31 void GLES2Implementation::BindFramebuffer(GLenum target, GLuint framebuffer) { |
36 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 32 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
37 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glBindFramebuffer(" << GLES2Util::G
etStringFrameBufferTarget(target) << ", " << framebuffer << ")"); // NOLINT | 33 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glBindFramebuffer(" << GLES2Util::G
etStringFrameBufferTarget(target) << ", " << framebuffer << ")"); // NOLINT |
38 if (IsFramebufferReservedId(framebuffer)) { | 34 if (IsFramebufferReservedId(framebuffer)) { |
39 SetGLError( | 35 SetGLError( |
40 GL_INVALID_OPERATION, "BindFramebuffer", "framebuffer reserved id"); | 36 GL_INVALID_OPERATION, "BindFramebuffer", "framebuffer reserved id"); |
41 return; | 37 return; |
42 } | 38 } |
43 BindFramebufferHelper(target, framebuffer); | 39 BindFramebufferHelper(target, framebuffer); |
44 helper_->BindFramebuffer(target, framebuffer); | 40 helper_->BindFramebuffer(target, framebuffer); |
45 } | 41 } |
46 | 42 |
47 void BindRenderbuffer(GLenum target, GLuint renderbuffer) { | 43 void GLES2Implementation::BindRenderbuffer( |
| 44 GLenum target, GLuint renderbuffer) { |
48 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 45 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
49 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glBindRenderbuffer(" << GLES2Util::
GetStringRenderBufferTarget(target) << ", " << renderbuffer << ")"); // NOLINT | 46 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glBindRenderbuffer(" << GLES2Util::
GetStringRenderBufferTarget(target) << ", " << renderbuffer << ")"); // NOLINT |
50 if (IsRenderbufferReservedId(renderbuffer)) { | 47 if (IsRenderbufferReservedId(renderbuffer)) { |
51 SetGLError( | 48 SetGLError( |
52 GL_INVALID_OPERATION, "BindRenderbuffer", "renderbuffer reserved id"); | 49 GL_INVALID_OPERATION, "BindRenderbuffer", "renderbuffer reserved id"); |
53 return; | 50 return; |
54 } | 51 } |
55 BindRenderbufferHelper(target, renderbuffer); | 52 BindRenderbufferHelper(target, renderbuffer); |
56 helper_->BindRenderbuffer(target, renderbuffer); | 53 helper_->BindRenderbuffer(target, renderbuffer); |
57 } | 54 } |
58 | 55 |
59 void BindTexture(GLenum target, GLuint texture) { | 56 void GLES2Implementation::BindTexture(GLenum target, GLuint texture) { |
60 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 57 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
61 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glBindTexture(" << GLES2Util::GetSt
ringTextureBindTarget(target) << ", " << texture << ")"); // NOLINT | 58 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glBindTexture(" << GLES2Util::GetSt
ringTextureBindTarget(target) << ", " << texture << ")"); // NOLINT |
62 if (IsTextureReservedId(texture)) { | 59 if (IsTextureReservedId(texture)) { |
63 SetGLError(GL_INVALID_OPERATION, "BindTexture", "texture reserved id"); | 60 SetGLError(GL_INVALID_OPERATION, "BindTexture", "texture reserved id"); |
64 return; | 61 return; |
65 } | 62 } |
66 BindTextureHelper(target, texture); | 63 BindTextureHelper(target, texture); |
67 helper_->BindTexture(target, texture); | 64 helper_->BindTexture(target, texture); |
68 } | 65 } |
69 | 66 |
70 void BlendColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha) { | 67 void GLES2Implementation::BlendColor( |
| 68 GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha) { |
71 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 69 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
72 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glBlendColor(" << red << ", " << gr
een << ", " << blue << ", " << alpha << ")"); // NOLINT | 70 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glBlendColor(" << red << ", " << gr
een << ", " << blue << ", " << alpha << ")"); // NOLINT |
73 helper_->BlendColor(red, green, blue, alpha); | 71 helper_->BlendColor(red, green, blue, alpha); |
74 } | 72 } |
75 | 73 |
76 void BlendEquation(GLenum mode) { | 74 void GLES2Implementation::BlendEquation(GLenum mode) { |
77 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 75 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
78 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glBlendEquation(" << GLES2Util::Get
StringEquation(mode) << ")"); // NOLINT | 76 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glBlendEquation(" << GLES2Util::Get
StringEquation(mode) << ")"); // NOLINT |
79 helper_->BlendEquation(mode); | 77 helper_->BlendEquation(mode); |
80 } | 78 } |
81 | 79 |
82 void BlendEquationSeparate(GLenum modeRGB, GLenum modeAlpha) { | 80 void GLES2Implementation::BlendEquationSeparate( |
| 81 GLenum modeRGB, GLenum modeAlpha) { |
83 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 82 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
84 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glBlendEquationSeparate(" << GLES2U
til::GetStringEquation(modeRGB) << ", " << GLES2Util::GetStringEquation(modeAlph
a) << ")"); // NOLINT | 83 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glBlendEquationSeparate(" << GLES2U
til::GetStringEquation(modeRGB) << ", " << GLES2Util::GetStringEquation(modeAlph
a) << ")"); // NOLINT |
85 helper_->BlendEquationSeparate(modeRGB, modeAlpha); | 84 helper_->BlendEquationSeparate(modeRGB, modeAlpha); |
86 } | 85 } |
87 | 86 |
88 void BlendFunc(GLenum sfactor, GLenum dfactor) { | 87 void GLES2Implementation::BlendFunc(GLenum sfactor, GLenum dfactor) { |
89 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 88 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
90 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glBlendFunc(" << GLES2Util::GetStri
ngSrcBlendFactor(sfactor) << ", " << GLES2Util::GetStringDstBlendFactor(dfactor)
<< ")"); // NOLINT | 89 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glBlendFunc(" << GLES2Util::GetStri
ngSrcBlendFactor(sfactor) << ", " << GLES2Util::GetStringDstBlendFactor(dfactor)
<< ")"); // NOLINT |
91 helper_->BlendFunc(sfactor, dfactor); | 90 helper_->BlendFunc(sfactor, dfactor); |
92 } | 91 } |
93 | 92 |
94 void BlendFuncSeparate( | 93 void GLES2Implementation::BlendFuncSeparate( |
95 GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha) { | 94 GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha) { |
96 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 95 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
97 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glBlendFuncSeparate(" << GLES2Util:
:GetStringSrcBlendFactor(srcRGB) << ", " << GLES2Util::GetStringDstBlendFactor(d
stRGB) << ", " << GLES2Util::GetStringSrcBlendFactor(srcAlpha) << ", " << GLES2U
til::GetStringDstBlendFactor(dstAlpha) << ")"); // NOLINT | 96 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glBlendFuncSeparate(" << GLES2Util:
:GetStringSrcBlendFactor(srcRGB) << ", " << GLES2Util::GetStringDstBlendFactor(d
stRGB) << ", " << GLES2Util::GetStringSrcBlendFactor(srcAlpha) << ", " << GLES2U
til::GetStringDstBlendFactor(dstAlpha) << ")"); // NOLINT |
98 helper_->BlendFuncSeparate(srcRGB, dstRGB, srcAlpha, dstAlpha); | 97 helper_->BlendFuncSeparate(srcRGB, dstRGB, srcAlpha, dstAlpha); |
99 } | 98 } |
100 | 99 |
101 void BufferData( | 100 GLenum GLES2Implementation::CheckFramebufferStatus(GLenum target) { |
102 GLenum target, GLsizeiptr size, const void* data, GLenum usage); | |
103 | |
104 void BufferSubData( | |
105 GLenum target, GLintptr offset, GLsizeiptr size, const void* data); | |
106 | |
107 GLenum CheckFramebufferStatus(GLenum target) { | |
108 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 101 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
109 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glCheckFramebufferStatus(" << GLES2
Util::GetStringFrameBufferTarget(target) << ")"); // NOLINT | 102 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glCheckFramebufferStatus(" << GLES2
Util::GetStringFrameBufferTarget(target) << ")"); // NOLINT |
110 typedef CheckFramebufferStatus::Result Result; | 103 typedef CheckFramebufferStatus::Result Result; |
111 Result* result = GetResultAs<Result*>(); | 104 Result* result = GetResultAs<Result*>(); |
112 if (!result) { | 105 if (!result) { |
113 return GL_FRAMEBUFFER_UNSUPPORTED; | 106 return GL_FRAMEBUFFER_UNSUPPORTED; |
114 } | 107 } |
115 *result = 0; | 108 *result = 0; |
116 helper_->CheckFramebufferStatus( | 109 helper_->CheckFramebufferStatus( |
117 target, GetResultShmId(), GetResultShmOffset()); | 110 target, GetResultShmId(), GetResultShmOffset()); |
118 WaitForCmd(); | 111 WaitForCmd(); |
119 GPU_CLIENT_LOG("returned " << *result); | 112 GPU_CLIENT_LOG("returned " << *result); |
120 return *result; | 113 return *result; |
121 } | 114 } |
122 | 115 |
123 void Clear(GLbitfield mask); | 116 void GLES2Implementation::ClearColor( |
124 | 117 GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha) { |
125 void ClearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha) { | |
126 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 118 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
127 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glClearColor(" << red << ", " << gr
een << ", " << blue << ", " << alpha << ")"); // NOLINT | 119 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glClearColor(" << red << ", " << gr
een << ", " << blue << ", " << alpha << ")"); // NOLINT |
128 helper_->ClearColor(red, green, blue, alpha); | 120 helper_->ClearColor(red, green, blue, alpha); |
129 } | 121 } |
130 | 122 |
131 void ClearDepthf(GLclampf depth) { | 123 void GLES2Implementation::ClearDepthf(GLclampf depth) { |
132 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 124 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
133 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glClearDepthf(" << depth << ")"); | 125 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glClearDepthf(" << depth << ")"); |
134 helper_->ClearDepthf(depth); | 126 helper_->ClearDepthf(depth); |
135 } | 127 } |
136 | 128 |
137 void ClearStencil(GLint s) { | 129 void GLES2Implementation::ClearStencil(GLint s) { |
138 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 130 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
139 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glClearStencil(" << s << ")"); | 131 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glClearStencil(" << s << ")"); |
140 helper_->ClearStencil(s); | 132 helper_->ClearStencil(s); |
141 } | 133 } |
142 | 134 |
143 void ColorMask( | 135 void GLES2Implementation::ColorMask( |
144 GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha) { | 136 GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha) { |
145 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 137 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
146 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glColorMask(" << GLES2Util::GetStri
ngBool(red) << ", " << GLES2Util::GetStringBool(green) << ", " << GLES2Util::Get
StringBool(blue) << ", " << GLES2Util::GetStringBool(alpha) << ")"); // NOLINT | 138 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glColorMask(" << GLES2Util::GetStri
ngBool(red) << ", " << GLES2Util::GetStringBool(green) << ", " << GLES2Util::Get
StringBool(blue) << ", " << GLES2Util::GetStringBool(alpha) << ")"); // NOLINT |
147 helper_->ColorMask(red, green, blue, alpha); | 139 helper_->ColorMask(red, green, blue, alpha); |
148 } | 140 } |
149 | 141 |
150 void CompileShader(GLuint shader) { | 142 void GLES2Implementation::CompileShader(GLuint shader) { |
151 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 143 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
152 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glCompileShader(" << shader << ")")
; // NOLINT | 144 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glCompileShader(" << shader << ")")
; // NOLINT |
153 helper_->CompileShader(shader); | 145 helper_->CompileShader(shader); |
154 } | 146 } |
155 | 147 |
156 void CompressedTexImage2D( | 148 void GLES2Implementation::CopyTexImage2D( |
157 GLenum target, GLint level, GLenum internalformat, GLsizei width, | |
158 GLsizei height, GLint border, GLsizei imageSize, const void* data); | |
159 | |
160 void CompressedTexSubImage2D( | |
161 GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, | |
162 GLsizei height, GLenum format, GLsizei imageSize, const void* data); | |
163 | |
164 void CopyTexImage2D( | |
165 GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, | 149 GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, |
166 GLsizei width, GLsizei height, GLint border) { | 150 GLsizei width, GLsizei height, GLint border) { |
167 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 151 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
168 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glCopyTexImage2D(" << GLES2Util::Ge
tStringTextureTarget(target) << ", " << level << ", " << GLES2Util::GetStringTex
tureInternalFormat(internalformat) << ", " << x << ", " << y << ", " << width <<
", " << height << ", " << border << ")"); // NOLINT | 152 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glCopyTexImage2D(" << GLES2Util::Ge
tStringTextureTarget(target) << ", " << level << ", " << GLES2Util::GetStringTex
tureInternalFormat(internalformat) << ", " << x << ", " << y << ", " << width <<
", " << height << ", " << border << ")"); // NOLINT |
169 if (width < 0) { | 153 if (width < 0) { |
170 SetGLError(GL_INVALID_VALUE, "glCopyTexImage2D", "width < 0"); | 154 SetGLError(GL_INVALID_VALUE, "glCopyTexImage2D", "width < 0"); |
171 return; | 155 return; |
172 } | 156 } |
173 if (height < 0) { | 157 if (height < 0) { |
174 SetGLError(GL_INVALID_VALUE, "glCopyTexImage2D", "height < 0"); | 158 SetGLError(GL_INVALID_VALUE, "glCopyTexImage2D", "height < 0"); |
175 return; | 159 return; |
176 } | 160 } |
177 helper_->CopyTexImage2D( | 161 helper_->CopyTexImage2D( |
178 target, level, internalformat, x, y, width, height, border); | 162 target, level, internalformat, x, y, width, height, border); |
179 } | 163 } |
180 | 164 |
181 void CopyTexSubImage2D( | 165 void GLES2Implementation::CopyTexSubImage2D( |
182 GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, | 166 GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, |
183 GLsizei width, GLsizei height) { | 167 GLsizei width, GLsizei height) { |
184 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 168 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
185 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glCopyTexSubImage2D(" << GLES2Util:
:GetStringTextureTarget(target) << ", " << level << ", " << xoffset << ", " << y
offset << ", " << x << ", " << y << ", " << width << ", " << height << ")"); //
NOLINT | 169 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glCopyTexSubImage2D(" << GLES2Util:
:GetStringTextureTarget(target) << ", " << level << ", " << xoffset << ", " << y
offset << ", " << x << ", " << y << ", " << width << ", " << height << ")"); //
NOLINT |
186 if (width < 0) { | 170 if (width < 0) { |
187 SetGLError(GL_INVALID_VALUE, "glCopyTexSubImage2D", "width < 0"); | 171 SetGLError(GL_INVALID_VALUE, "glCopyTexSubImage2D", "width < 0"); |
188 return; | 172 return; |
189 } | 173 } |
190 if (height < 0) { | 174 if (height < 0) { |
191 SetGLError(GL_INVALID_VALUE, "glCopyTexSubImage2D", "height < 0"); | 175 SetGLError(GL_INVALID_VALUE, "glCopyTexSubImage2D", "height < 0"); |
192 return; | 176 return; |
193 } | 177 } |
194 helper_->CopyTexSubImage2D( | 178 helper_->CopyTexSubImage2D( |
195 target, level, xoffset, yoffset, x, y, width, height); | 179 target, level, xoffset, yoffset, x, y, width, height); |
196 } | 180 } |
197 | 181 |
198 GLuint CreateProgram() { | 182 GLuint GLES2Implementation::CreateProgram() { |
199 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 183 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
200 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glCreateProgram(" << ")"); | 184 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glCreateProgram(" << ")"); |
201 GLuint client_id; | 185 GLuint client_id; |
202 GetIdHandler(id_namespaces::kProgramsAndShaders)-> | 186 GetIdHandler(id_namespaces::kProgramsAndShaders)-> |
203 MakeIds(this, 0, 1, &client_id); | 187 MakeIds(this, 0, 1, &client_id); |
204 helper_->CreateProgram(client_id); | 188 helper_->CreateProgram(client_id); |
205 GPU_CLIENT_LOG("returned " << client_id); | 189 GPU_CLIENT_LOG("returned " << client_id); |
206 return client_id; | 190 return client_id; |
207 } | 191 } |
208 | 192 |
209 GLuint CreateShader(GLenum type) { | 193 GLuint GLES2Implementation::CreateShader(GLenum type) { |
210 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 194 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
211 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glCreateShader(" << GLES2Util::GetS
tringShaderType(type) << ")"); // NOLINT | 195 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glCreateShader(" << GLES2Util::GetS
tringShaderType(type) << ")"); // NOLINT |
212 GLuint client_id; | 196 GLuint client_id; |
213 GetIdHandler(id_namespaces::kProgramsAndShaders)-> | 197 GetIdHandler(id_namespaces::kProgramsAndShaders)-> |
214 MakeIds(this, 0, 1, &client_id); | 198 MakeIds(this, 0, 1, &client_id); |
215 helper_->CreateShader(type, client_id); | 199 helper_->CreateShader(type, client_id); |
216 GPU_CLIENT_LOG("returned " << client_id); | 200 GPU_CLIENT_LOG("returned " << client_id); |
217 return client_id; | 201 return client_id; |
218 } | 202 } |
219 | 203 |
220 void CullFace(GLenum mode) { | 204 void GLES2Implementation::CullFace(GLenum mode) { |
221 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 205 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
222 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glCullFace(" << GLES2Util::GetStrin
gFaceType(mode) << ")"); // NOLINT | 206 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glCullFace(" << GLES2Util::GetStrin
gFaceType(mode) << ")"); // NOLINT |
223 helper_->CullFace(mode); | 207 helper_->CullFace(mode); |
224 } | 208 } |
225 | 209 |
226 void DeleteBuffers(GLsizei n, const GLuint* buffers) { | 210 void GLES2Implementation::DeleteBuffers(GLsizei n, const GLuint* buffers) { |
227 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 211 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
228 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glDeleteBuffers(" << n << ", " << s
tatic_cast<const void*>(buffers) << ")"); // NOLINT | 212 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glDeleteBuffers(" << n << ", " << s
tatic_cast<const void*>(buffers) << ")"); // NOLINT |
229 GPU_CLIENT_LOG_CODE_BLOCK({ | 213 GPU_CLIENT_LOG_CODE_BLOCK({ |
230 for (GLsizei i = 0; i < n; ++i) { | 214 for (GLsizei i = 0; i < n; ++i) { |
231 GPU_CLIENT_LOG(" " << i << ": " << buffers[i]); | 215 GPU_CLIENT_LOG(" " << i << ": " << buffers[i]); |
232 } | 216 } |
233 }); | 217 }); |
234 GPU_CLIENT_DCHECK_CODE_BLOCK({ | 218 GPU_CLIENT_DCHECK_CODE_BLOCK({ |
235 for (GLsizei i = 0; i < n; ++i) { | 219 for (GLsizei i = 0; i < n; ++i) { |
236 GPU_DCHECK(buffers[i] != 0); | 220 GPU_DCHECK(buffers[i] != 0); |
237 } | 221 } |
238 }); | 222 }); |
239 if (n < 0) { | 223 if (n < 0) { |
240 SetGLError(GL_INVALID_VALUE, "glDeleteBuffers", "n < 0"); | 224 SetGLError(GL_INVALID_VALUE, "glDeleteBuffers", "n < 0"); |
241 return; | 225 return; |
242 } | 226 } |
243 DeleteBuffersHelper(n, buffers); | 227 DeleteBuffersHelper(n, buffers); |
244 } | 228 } |
245 | 229 |
246 void DeleteFramebuffers(GLsizei n, const GLuint* framebuffers) { | 230 void GLES2Implementation::DeleteFramebuffers( |
| 231 GLsizei n, const GLuint* framebuffers) { |
247 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 232 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
248 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glDeleteFramebuffers(" << n << ", "
<< static_cast<const void*>(framebuffers) << ")"); // NOLINT | 233 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glDeleteFramebuffers(" << n << ", "
<< static_cast<const void*>(framebuffers) << ")"); // NOLINT |
249 GPU_CLIENT_LOG_CODE_BLOCK({ | 234 GPU_CLIENT_LOG_CODE_BLOCK({ |
250 for (GLsizei i = 0; i < n; ++i) { | 235 for (GLsizei i = 0; i < n; ++i) { |
251 GPU_CLIENT_LOG(" " << i << ": " << framebuffers[i]); | 236 GPU_CLIENT_LOG(" " << i << ": " << framebuffers[i]); |
252 } | 237 } |
253 }); | 238 }); |
254 GPU_CLIENT_DCHECK_CODE_BLOCK({ | 239 GPU_CLIENT_DCHECK_CODE_BLOCK({ |
255 for (GLsizei i = 0; i < n; ++i) { | 240 for (GLsizei i = 0; i < n; ++i) { |
256 GPU_DCHECK(framebuffers[i] != 0); | 241 GPU_DCHECK(framebuffers[i] != 0); |
257 } | 242 } |
258 }); | 243 }); |
259 if (n < 0) { | 244 if (n < 0) { |
260 SetGLError(GL_INVALID_VALUE, "glDeleteFramebuffers", "n < 0"); | 245 SetGLError(GL_INVALID_VALUE, "glDeleteFramebuffers", "n < 0"); |
261 return; | 246 return; |
262 } | 247 } |
263 DeleteFramebuffersHelper(n, framebuffers); | 248 DeleteFramebuffersHelper(n, framebuffers); |
264 } | 249 } |
265 | 250 |
266 void DeleteProgram(GLuint program) { | 251 void GLES2Implementation::DeleteProgram(GLuint program) { |
267 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 252 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
268 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glDeleteProgram(" << program << ")"
); // NOLINT | 253 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glDeleteProgram(" << program << ")"
); // NOLINT |
269 GPU_CLIENT_DCHECK(program != 0); | 254 GPU_CLIENT_DCHECK(program != 0); |
270 DeleteProgramHelper(program); | 255 DeleteProgramHelper(program); |
271 } | 256 } |
272 | 257 |
273 void DeleteRenderbuffers(GLsizei n, const GLuint* renderbuffers) { | 258 void GLES2Implementation::DeleteRenderbuffers( |
| 259 GLsizei n, const GLuint* renderbuffers) { |
274 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 260 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
275 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glDeleteRenderbuffers(" << n << ",
" << static_cast<const void*>(renderbuffers) << ")"); // NOLINT | 261 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glDeleteRenderbuffers(" << n << ",
" << static_cast<const void*>(renderbuffers) << ")"); // NOLINT |
276 GPU_CLIENT_LOG_CODE_BLOCK({ | 262 GPU_CLIENT_LOG_CODE_BLOCK({ |
277 for (GLsizei i = 0; i < n; ++i) { | 263 for (GLsizei i = 0; i < n; ++i) { |
278 GPU_CLIENT_LOG(" " << i << ": " << renderbuffers[i]); | 264 GPU_CLIENT_LOG(" " << i << ": " << renderbuffers[i]); |
279 } | 265 } |
280 }); | 266 }); |
281 GPU_CLIENT_DCHECK_CODE_BLOCK({ | 267 GPU_CLIENT_DCHECK_CODE_BLOCK({ |
282 for (GLsizei i = 0; i < n; ++i) { | 268 for (GLsizei i = 0; i < n; ++i) { |
283 GPU_DCHECK(renderbuffers[i] != 0); | 269 GPU_DCHECK(renderbuffers[i] != 0); |
284 } | 270 } |
285 }); | 271 }); |
286 if (n < 0) { | 272 if (n < 0) { |
287 SetGLError(GL_INVALID_VALUE, "glDeleteRenderbuffers", "n < 0"); | 273 SetGLError(GL_INVALID_VALUE, "glDeleteRenderbuffers", "n < 0"); |
288 return; | 274 return; |
289 } | 275 } |
290 DeleteRenderbuffersHelper(n, renderbuffers); | 276 DeleteRenderbuffersHelper(n, renderbuffers); |
291 } | 277 } |
292 | 278 |
293 void DeleteShader(GLuint shader) { | 279 void GLES2Implementation::DeleteShader(GLuint shader) { |
294 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 280 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
295 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glDeleteShader(" << shader << ")"); | 281 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glDeleteShader(" << shader << ")"); |
296 GPU_CLIENT_DCHECK(shader != 0); | 282 GPU_CLIENT_DCHECK(shader != 0); |
297 DeleteShaderHelper(shader); | 283 DeleteShaderHelper(shader); |
298 } | 284 } |
299 | 285 |
300 void DeleteTextures(GLsizei n, const GLuint* textures) { | 286 void GLES2Implementation::DeleteTextures(GLsizei n, const GLuint* textures) { |
301 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 287 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
302 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glDeleteTextures(" << n << ", " <<
static_cast<const void*>(textures) << ")"); // NOLINT | 288 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glDeleteTextures(" << n << ", " <<
static_cast<const void*>(textures) << ")"); // NOLINT |
303 GPU_CLIENT_LOG_CODE_BLOCK({ | 289 GPU_CLIENT_LOG_CODE_BLOCK({ |
304 for (GLsizei i = 0; i < n; ++i) { | 290 for (GLsizei i = 0; i < n; ++i) { |
305 GPU_CLIENT_LOG(" " << i << ": " << textures[i]); | 291 GPU_CLIENT_LOG(" " << i << ": " << textures[i]); |
306 } | 292 } |
307 }); | 293 }); |
308 GPU_CLIENT_DCHECK_CODE_BLOCK({ | 294 GPU_CLIENT_DCHECK_CODE_BLOCK({ |
309 for (GLsizei i = 0; i < n; ++i) { | 295 for (GLsizei i = 0; i < n; ++i) { |
310 GPU_DCHECK(textures[i] != 0); | 296 GPU_DCHECK(textures[i] != 0); |
311 } | 297 } |
312 }); | 298 }); |
313 if (n < 0) { | 299 if (n < 0) { |
314 SetGLError(GL_INVALID_VALUE, "glDeleteTextures", "n < 0"); | 300 SetGLError(GL_INVALID_VALUE, "glDeleteTextures", "n < 0"); |
315 return; | 301 return; |
316 } | 302 } |
317 DeleteTexturesHelper(n, textures); | 303 DeleteTexturesHelper(n, textures); |
318 } | 304 } |
319 | 305 |
320 void DepthFunc(GLenum func) { | 306 void GLES2Implementation::DepthFunc(GLenum func) { |
321 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 307 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
322 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glDepthFunc(" << GLES2Util::GetStri
ngCmpFunction(func) << ")"); // NOLINT | 308 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glDepthFunc(" << GLES2Util::GetStri
ngCmpFunction(func) << ")"); // NOLINT |
323 helper_->DepthFunc(func); | 309 helper_->DepthFunc(func); |
324 } | 310 } |
325 | 311 |
326 void DepthMask(GLboolean flag) { | 312 void GLES2Implementation::DepthMask(GLboolean flag) { |
327 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 313 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
328 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glDepthMask(" << GLES2Util::GetStri
ngBool(flag) << ")"); // NOLINT | 314 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glDepthMask(" << GLES2Util::GetStri
ngBool(flag) << ")"); // NOLINT |
329 helper_->DepthMask(flag); | 315 helper_->DepthMask(flag); |
330 } | 316 } |
331 | 317 |
332 void DepthRangef(GLclampf zNear, GLclampf zFar) { | 318 void GLES2Implementation::DepthRangef(GLclampf zNear, GLclampf zFar) { |
333 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 319 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
334 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glDepthRangef(" << zNear << ", " <<
zFar << ")"); // NOLINT | 320 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glDepthRangef(" << zNear << ", " <<
zFar << ")"); // NOLINT |
335 helper_->DepthRangef(zNear, zFar); | 321 helper_->DepthRangef(zNear, zFar); |
336 } | 322 } |
337 | 323 |
338 void DetachShader(GLuint program, GLuint shader) { | 324 void GLES2Implementation::DetachShader(GLuint program, GLuint shader) { |
339 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 325 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
340 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glDetachShader(" << program << ", "
<< shader << ")"); // NOLINT | 326 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glDetachShader(" << program << ", "
<< shader << ")"); // NOLINT |
341 helper_->DetachShader(program, shader); | 327 helper_->DetachShader(program, shader); |
342 } | 328 } |
343 | 329 |
344 void Disable(GLenum cap); | 330 void GLES2Implementation::FramebufferRenderbuffer( |
345 | |
346 void DrawArrays(GLenum mode, GLint first, GLsizei count); | |
347 | |
348 void DrawElements( | |
349 GLenum mode, GLsizei count, GLenum type, const void* indices); | |
350 | |
351 void Enable(GLenum cap); | |
352 | |
353 void Finish(); | |
354 | |
355 void Flush(); | |
356 | |
357 void ShallowFlushCHROMIUM(); | |
358 | |
359 void FramebufferRenderbuffer( | |
360 GLenum target, GLenum attachment, GLenum renderbuffertarget, | 331 GLenum target, GLenum attachment, GLenum renderbuffertarget, |
361 GLuint renderbuffer) { | 332 GLuint renderbuffer) { |
362 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 333 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
363 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glFramebufferRenderbuffer(" << GLES
2Util::GetStringFrameBufferTarget(target) << ", " << GLES2Util::GetStringAttachm
ent(attachment) << ", " << GLES2Util::GetStringRenderBufferTarget(renderbufferta
rget) << ", " << renderbuffer << ")"); // NOLINT | 334 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glFramebufferRenderbuffer(" << GLES
2Util::GetStringFrameBufferTarget(target) << ", " << GLES2Util::GetStringAttachm
ent(attachment) << ", " << GLES2Util::GetStringRenderBufferTarget(renderbufferta
rget) << ", " << renderbuffer << ")"); // NOLINT |
364 helper_->FramebufferRenderbuffer( | 335 helper_->FramebufferRenderbuffer( |
365 target, attachment, renderbuffertarget, renderbuffer); | 336 target, attachment, renderbuffertarget, renderbuffer); |
366 } | 337 } |
367 | 338 |
368 void FramebufferTexture2D( | 339 void GLES2Implementation::FramebufferTexture2D( |
369 GLenum target, GLenum attachment, GLenum textarget, GLuint texture, | 340 GLenum target, GLenum attachment, GLenum textarget, GLuint texture, |
370 GLint level) { | 341 GLint level) { |
371 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 342 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
372 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glFramebufferTexture2D(" << GLES2Ut
il::GetStringFrameBufferTarget(target) << ", " << GLES2Util::GetStringAttachment
(attachment) << ", " << GLES2Util::GetStringTextureTarget(textarget) << ", " <<
texture << ", " << level << ")"); // NOLINT | 343 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glFramebufferTexture2D(" << GLES2Ut
il::GetStringFrameBufferTarget(target) << ", " << GLES2Util::GetStringAttachment
(attachment) << ", " << GLES2Util::GetStringTextureTarget(textarget) << ", " <<
texture << ", " << level << ")"); // NOLINT |
373 helper_->FramebufferTexture2D(target, attachment, textarget, texture, level); | 344 helper_->FramebufferTexture2D(target, attachment, textarget, texture, level); |
374 } | 345 } |
375 | 346 |
376 void FrontFace(GLenum mode) { | 347 void GLES2Implementation::FrontFace(GLenum mode) { |
377 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 348 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
378 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glFrontFace(" << GLES2Util::GetStri
ngFaceMode(mode) << ")"); // NOLINT | 349 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glFrontFace(" << GLES2Util::GetStri
ngFaceMode(mode) << ")"); // NOLINT |
379 helper_->FrontFace(mode); | 350 helper_->FrontFace(mode); |
380 } | 351 } |
381 | 352 |
382 void GenBuffers(GLsizei n, GLuint* buffers) { | 353 void GLES2Implementation::GenBuffers(GLsizei n, GLuint* buffers) { |
383 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGenBuffers(" << n << ", " << stat
ic_cast<const void*>(buffers) << ")"); // NOLINT | 354 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGenBuffers(" << n << ", " << stat
ic_cast<const void*>(buffers) << ")"); // NOLINT |
384 if (n < 0) { | 355 if (n < 0) { |
385 SetGLError(GL_INVALID_VALUE, "glGenBuffers", "n < 0"); | 356 SetGLError(GL_INVALID_VALUE, "glGenBuffers", "n < 0"); |
386 return; | 357 return; |
387 } | 358 } |
388 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 359 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
389 GetIdHandler(id_namespaces::kBuffers)-> | 360 GetIdHandler(id_namespaces::kBuffers)-> |
390 MakeIds(this, 0, n, buffers); | 361 MakeIds(this, 0, n, buffers); |
391 helper_->GenBuffersImmediate(n, buffers); | 362 helper_->GenBuffersImmediate(n, buffers); |
392 GPU_CLIENT_LOG_CODE_BLOCK({ | 363 GPU_CLIENT_LOG_CODE_BLOCK({ |
393 for (GLsizei i = 0; i < n; ++i) { | 364 for (GLsizei i = 0; i < n; ++i) { |
394 GPU_CLIENT_LOG(" " << i << ": " << buffers[i]); | 365 GPU_CLIENT_LOG(" " << i << ": " << buffers[i]); |
395 } | 366 } |
396 }); | 367 }); |
397 } | 368 } |
398 | 369 |
399 void GenerateMipmap(GLenum target) { | 370 void GLES2Implementation::GenerateMipmap(GLenum target) { |
400 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 371 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
401 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGenerateMipmap(" << GLES2Util::Ge
tStringTextureBindTarget(target) << ")"); // NOLINT | 372 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGenerateMipmap(" << GLES2Util::Ge
tStringTextureBindTarget(target) << ")"); // NOLINT |
402 helper_->GenerateMipmap(target); | 373 helper_->GenerateMipmap(target); |
403 } | 374 } |
404 | 375 |
405 void GenFramebuffers(GLsizei n, GLuint* framebuffers) { | 376 void GLES2Implementation::GenFramebuffers(GLsizei n, GLuint* framebuffers) { |
406 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGenFramebuffers(" << n << ", " <<
static_cast<const void*>(framebuffers) << ")"); // NOLINT | 377 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGenFramebuffers(" << n << ", " <<
static_cast<const void*>(framebuffers) << ")"); // NOLINT |
407 if (n < 0) { | 378 if (n < 0) { |
408 SetGLError(GL_INVALID_VALUE, "glGenFramebuffers", "n < 0"); | 379 SetGLError(GL_INVALID_VALUE, "glGenFramebuffers", "n < 0"); |
409 return; | 380 return; |
410 } | 381 } |
411 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 382 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
412 GetIdHandler(id_namespaces::kFramebuffers)-> | 383 GetIdHandler(id_namespaces::kFramebuffers)-> |
413 MakeIds(this, 0, n, framebuffers); | 384 MakeIds(this, 0, n, framebuffers); |
414 helper_->GenFramebuffersImmediate(n, framebuffers); | 385 helper_->GenFramebuffersImmediate(n, framebuffers); |
415 GPU_CLIENT_LOG_CODE_BLOCK({ | 386 GPU_CLIENT_LOG_CODE_BLOCK({ |
416 for (GLsizei i = 0; i < n; ++i) { | 387 for (GLsizei i = 0; i < n; ++i) { |
417 GPU_CLIENT_LOG(" " << i << ": " << framebuffers[i]); | 388 GPU_CLIENT_LOG(" " << i << ": " << framebuffers[i]); |
418 } | 389 } |
419 }); | 390 }); |
420 } | 391 } |
421 | 392 |
422 void GenRenderbuffers(GLsizei n, GLuint* renderbuffers) { | 393 void GLES2Implementation::GenRenderbuffers(GLsizei n, GLuint* renderbuffers) { |
423 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGenRenderbuffers(" << n << ", " <
< static_cast<const void*>(renderbuffers) << ")"); // NOLINT | 394 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGenRenderbuffers(" << n << ", " <
< static_cast<const void*>(renderbuffers) << ")"); // NOLINT |
424 if (n < 0) { | 395 if (n < 0) { |
425 SetGLError(GL_INVALID_VALUE, "glGenRenderbuffers", "n < 0"); | 396 SetGLError(GL_INVALID_VALUE, "glGenRenderbuffers", "n < 0"); |
426 return; | 397 return; |
427 } | 398 } |
428 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 399 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
429 GetIdHandler(id_namespaces::kRenderbuffers)-> | 400 GetIdHandler(id_namespaces::kRenderbuffers)-> |
430 MakeIds(this, 0, n, renderbuffers); | 401 MakeIds(this, 0, n, renderbuffers); |
431 helper_->GenRenderbuffersImmediate(n, renderbuffers); | 402 helper_->GenRenderbuffersImmediate(n, renderbuffers); |
432 GPU_CLIENT_LOG_CODE_BLOCK({ | 403 GPU_CLIENT_LOG_CODE_BLOCK({ |
433 for (GLsizei i = 0; i < n; ++i) { | 404 for (GLsizei i = 0; i < n; ++i) { |
434 GPU_CLIENT_LOG(" " << i << ": " << renderbuffers[i]); | 405 GPU_CLIENT_LOG(" " << i << ": " << renderbuffers[i]); |
435 } | 406 } |
436 }); | 407 }); |
437 } | 408 } |
438 | 409 |
439 void GenTextures(GLsizei n, GLuint* textures) { | 410 void GLES2Implementation::GenTextures(GLsizei n, GLuint* textures) { |
440 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGenTextures(" << n << ", " << sta
tic_cast<const void*>(textures) << ")"); // NOLINT | 411 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGenTextures(" << n << ", " << sta
tic_cast<const void*>(textures) << ")"); // NOLINT |
441 if (n < 0) { | 412 if (n < 0) { |
442 SetGLError(GL_INVALID_VALUE, "glGenTextures", "n < 0"); | 413 SetGLError(GL_INVALID_VALUE, "glGenTextures", "n < 0"); |
443 return; | 414 return; |
444 } | 415 } |
445 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 416 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
446 GetIdHandler(id_namespaces::kTextures)-> | 417 GetIdHandler(id_namespaces::kTextures)-> |
447 MakeIds(this, 0, n, textures); | 418 MakeIds(this, 0, n, textures); |
448 helper_->GenTexturesImmediate(n, textures); | 419 helper_->GenTexturesImmediate(n, textures); |
449 GPU_CLIENT_LOG_CODE_BLOCK({ | 420 GPU_CLIENT_LOG_CODE_BLOCK({ |
450 for (GLsizei i = 0; i < n; ++i) { | 421 for (GLsizei i = 0; i < n; ++i) { |
451 GPU_CLIENT_LOG(" " << i << ": " << textures[i]); | 422 GPU_CLIENT_LOG(" " << i << ": " << textures[i]); |
452 } | 423 } |
453 }); | 424 }); |
454 } | 425 } |
455 | 426 |
456 void GetActiveAttrib( | 427 void GLES2Implementation::GetBooleanv(GLenum pname, GLboolean* params) { |
457 GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, | |
458 GLenum* type, char* name); | |
459 | |
460 void GetActiveUniform( | |
461 GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, | |
462 GLenum* type, char* name); | |
463 | |
464 void GetAttachedShaders( | |
465 GLuint program, GLsizei maxcount, GLsizei* count, GLuint* shaders); | |
466 | |
467 GLint GetAttribLocation(GLuint program, const char* name); | |
468 | |
469 void GetBooleanv(GLenum pname, GLboolean* params) { | |
470 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 428 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
471 GPU_CLIENT_VALIDATE_DESTINATION_INITALIZATION(GLboolean, params); | 429 GPU_CLIENT_VALIDATE_DESTINATION_INITALIZATION(GLboolean, params); |
472 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGetBooleanv(" << GLES2Util::GetSt
ringGLState(pname) << ", " << static_cast<const void*>(params) << ")"); // NOLI
NT | 430 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGetBooleanv(" << GLES2Util::GetSt
ringGLState(pname) << ", " << static_cast<const void*>(params) << ")"); // NOLI
NT |
473 if (GetBooleanvHelper(pname, params)) { | 431 if (GetBooleanvHelper(pname, params)) { |
474 return; | 432 return; |
475 } | 433 } |
476 typedef GetBooleanv::Result Result; | 434 typedef GetBooleanv::Result Result; |
477 Result* result = GetResultAs<Result*>(); | 435 Result* result = GetResultAs<Result*>(); |
478 if (!result) { | 436 if (!result) { |
479 return; | 437 return; |
480 } | 438 } |
481 result->SetNumResults(0); | 439 result->SetNumResults(0); |
482 helper_->GetBooleanv(pname, | 440 helper_->GetBooleanv(pname, |
483 GetResultShmId(), GetResultShmOffset()); | 441 GetResultShmId(), GetResultShmOffset()); |
484 WaitForCmd(); | 442 WaitForCmd(); |
485 result->CopyResult(params); | 443 result->CopyResult(params); |
486 GPU_CLIENT_LOG_CODE_BLOCK({ | 444 GPU_CLIENT_LOG_CODE_BLOCK({ |
487 for (int32 i = 0; i < result->GetNumResults(); ++i) { | 445 for (int32 i = 0; i < result->GetNumResults(); ++i) { |
488 GPU_CLIENT_LOG(" " << i << ": " << result->GetData()[i]); | 446 GPU_CLIENT_LOG(" " << i << ": " << result->GetData()[i]); |
489 } | 447 } |
490 }); | 448 }); |
491 } | 449 } |
492 void GetBufferParameteriv(GLenum target, GLenum pname, GLint* params) { | 450 void GLES2Implementation::GetBufferParameteriv( |
| 451 GLenum target, GLenum pname, GLint* params) { |
493 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 452 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
494 GPU_CLIENT_VALIDATE_DESTINATION_INITALIZATION(GLint, params); | 453 GPU_CLIENT_VALIDATE_DESTINATION_INITALIZATION(GLint, params); |
495 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGetBufferParameteriv(" << GLES2Ut
il::GetStringBufferTarget(target) << ", " << GLES2Util::GetStringBufferParameter
(pname) << ", " << static_cast<const void*>(params) << ")"); // NOLINT | 454 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGetBufferParameteriv(" << GLES2Ut
il::GetStringBufferTarget(target) << ", " << GLES2Util::GetStringBufferParameter
(pname) << ", " << static_cast<const void*>(params) << ")"); // NOLINT |
496 if (GetBufferParameterivHelper(target, pname, params)) { | 455 if (GetBufferParameterivHelper(target, pname, params)) { |
497 return; | 456 return; |
498 } | 457 } |
499 typedef GetBufferParameteriv::Result Result; | 458 typedef GetBufferParameteriv::Result Result; |
500 Result* result = GetResultAs<Result*>(); | 459 Result* result = GetResultAs<Result*>(); |
501 if (!result) { | 460 if (!result) { |
502 return; | 461 return; |
503 } | 462 } |
504 result->SetNumResults(0); | 463 result->SetNumResults(0); |
505 helper_->GetBufferParameteriv(target, pname, | 464 helper_->GetBufferParameteriv(target, pname, |
506 GetResultShmId(), GetResultShmOffset()); | 465 GetResultShmId(), GetResultShmOffset()); |
507 WaitForCmd(); | 466 WaitForCmd(); |
508 result->CopyResult(params); | 467 result->CopyResult(params); |
509 GPU_CLIENT_LOG_CODE_BLOCK({ | 468 GPU_CLIENT_LOG_CODE_BLOCK({ |
510 for (int32 i = 0; i < result->GetNumResults(); ++i) { | 469 for (int32 i = 0; i < result->GetNumResults(); ++i) { |
511 GPU_CLIENT_LOG(" " << i << ": " << result->GetData()[i]); | 470 GPU_CLIENT_LOG(" " << i << ": " << result->GetData()[i]); |
512 } | 471 } |
513 }); | 472 }); |
514 } | 473 } |
515 GLenum GetError(); | 474 void GLES2Implementation::GetFloatv(GLenum pname, GLfloat* params) { |
516 | |
517 void GetFloatv(GLenum pname, GLfloat* params) { | |
518 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 475 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
519 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGetFloatv(" << GLES2Util::GetStri
ngGLState(pname) << ", " << static_cast<const void*>(params) << ")"); // NOLINT | 476 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGetFloatv(" << GLES2Util::GetStri
ngGLState(pname) << ", " << static_cast<const void*>(params) << ")"); // NOLINT |
520 if (GetFloatvHelper(pname, params)) { | 477 if (GetFloatvHelper(pname, params)) { |
521 return; | 478 return; |
522 } | 479 } |
523 typedef GetFloatv::Result Result; | 480 typedef GetFloatv::Result Result; |
524 Result* result = GetResultAs<Result*>(); | 481 Result* result = GetResultAs<Result*>(); |
525 if (!result) { | 482 if (!result) { |
526 return; | 483 return; |
527 } | 484 } |
528 result->SetNumResults(0); | 485 result->SetNumResults(0); |
529 helper_->GetFloatv(pname, | 486 helper_->GetFloatv(pname, |
530 GetResultShmId(), GetResultShmOffset()); | 487 GetResultShmId(), GetResultShmOffset()); |
531 WaitForCmd(); | 488 WaitForCmd(); |
532 result->CopyResult(params); | 489 result->CopyResult(params); |
533 GPU_CLIENT_LOG_CODE_BLOCK({ | 490 GPU_CLIENT_LOG_CODE_BLOCK({ |
534 for (int32 i = 0; i < result->GetNumResults(); ++i) { | 491 for (int32 i = 0; i < result->GetNumResults(); ++i) { |
535 GPU_CLIENT_LOG(" " << i << ": " << result->GetData()[i]); | 492 GPU_CLIENT_LOG(" " << i << ": " << result->GetData()[i]); |
536 } | 493 } |
537 }); | 494 }); |
538 } | 495 } |
539 void GetFramebufferAttachmentParameteriv( | 496 void GLES2Implementation::GetFramebufferAttachmentParameteriv( |
540 GLenum target, GLenum attachment, GLenum pname, GLint* params) { | 497 GLenum target, GLenum attachment, GLenum pname, GLint* params) { |
541 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 498 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
542 GPU_CLIENT_VALIDATE_DESTINATION_INITALIZATION(GLint, params); | 499 GPU_CLIENT_VALIDATE_DESTINATION_INITALIZATION(GLint, params); |
543 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGetFramebufferAttachmentParameter
iv(" << GLES2Util::GetStringFrameBufferTarget(target) << ", " << GLES2Util::GetS
tringAttachment(attachment) << ", " << GLES2Util::GetStringFrameBufferParameter(
pname) << ", " << static_cast<const void*>(params) << ")"); // NOLINT | 500 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGetFramebufferAttachmentParameter
iv(" << GLES2Util::GetStringFrameBufferTarget(target) << ", " << GLES2Util::GetS
tringAttachment(attachment) << ", " << GLES2Util::GetStringFrameBufferParameter(
pname) << ", " << static_cast<const void*>(params) << ")"); // NOLINT |
544 if (GetFramebufferAttachmentParameterivHelper( | 501 if (GetFramebufferAttachmentParameterivHelper( |
545 target, attachment, pname, params)) { | 502 target, attachment, pname, params)) { |
546 return; | 503 return; |
547 } | 504 } |
548 typedef GetFramebufferAttachmentParameteriv::Result Result; | 505 typedef GetFramebufferAttachmentParameteriv::Result Result; |
549 Result* result = GetResultAs<Result*>(); | 506 Result* result = GetResultAs<Result*>(); |
550 if (!result) { | 507 if (!result) { |
551 return; | 508 return; |
552 } | 509 } |
553 result->SetNumResults(0); | 510 result->SetNumResults(0); |
554 helper_->GetFramebufferAttachmentParameteriv(target, attachment, pname, | 511 helper_->GetFramebufferAttachmentParameteriv(target, attachment, pname, |
555 GetResultShmId(), GetResultShmOffset()); | 512 GetResultShmId(), GetResultShmOffset()); |
556 WaitForCmd(); | 513 WaitForCmd(); |
557 result->CopyResult(params); | 514 result->CopyResult(params); |
558 GPU_CLIENT_LOG_CODE_BLOCK({ | 515 GPU_CLIENT_LOG_CODE_BLOCK({ |
559 for (int32 i = 0; i < result->GetNumResults(); ++i) { | 516 for (int32 i = 0; i < result->GetNumResults(); ++i) { |
560 GPU_CLIENT_LOG(" " << i << ": " << result->GetData()[i]); | 517 GPU_CLIENT_LOG(" " << i << ": " << result->GetData()[i]); |
561 } | 518 } |
562 }); | 519 }); |
563 } | 520 } |
564 void GetIntegerv(GLenum pname, GLint* params) { | 521 void GLES2Implementation::GetIntegerv(GLenum pname, GLint* params) { |
565 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 522 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
566 GPU_CLIENT_VALIDATE_DESTINATION_INITALIZATION(GLint, params); | 523 GPU_CLIENT_VALIDATE_DESTINATION_INITALIZATION(GLint, params); |
567 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGetIntegerv(" << GLES2Util::GetSt
ringGLState(pname) << ", " << static_cast<const void*>(params) << ")"); // NOLI
NT | 524 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGetIntegerv(" << GLES2Util::GetSt
ringGLState(pname) << ", " << static_cast<const void*>(params) << ")"); // NOLI
NT |
568 if (GetIntegervHelper(pname, params)) { | 525 if (GetIntegervHelper(pname, params)) { |
569 return; | 526 return; |
570 } | 527 } |
571 typedef GetIntegerv::Result Result; | 528 typedef GetIntegerv::Result Result; |
572 Result* result = GetResultAs<Result*>(); | 529 Result* result = GetResultAs<Result*>(); |
573 if (!result) { | 530 if (!result) { |
574 return; | 531 return; |
575 } | 532 } |
576 result->SetNumResults(0); | 533 result->SetNumResults(0); |
577 helper_->GetIntegerv(pname, | 534 helper_->GetIntegerv(pname, |
578 GetResultShmId(), GetResultShmOffset()); | 535 GetResultShmId(), GetResultShmOffset()); |
579 WaitForCmd(); | 536 WaitForCmd(); |
580 result->CopyResult(params); | 537 result->CopyResult(params); |
581 GPU_CLIENT_LOG_CODE_BLOCK({ | 538 GPU_CLIENT_LOG_CODE_BLOCK({ |
582 for (int32 i = 0; i < result->GetNumResults(); ++i) { | 539 for (int32 i = 0; i < result->GetNumResults(); ++i) { |
583 GPU_CLIENT_LOG(" " << i << ": " << result->GetData()[i]); | 540 GPU_CLIENT_LOG(" " << i << ": " << result->GetData()[i]); |
584 } | 541 } |
585 }); | 542 }); |
586 } | 543 } |
587 void GetProgramiv(GLuint program, GLenum pname, GLint* params) { | 544 void GLES2Implementation::GetProgramiv( |
| 545 GLuint program, GLenum pname, GLint* params) { |
588 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 546 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
589 GPU_CLIENT_VALIDATE_DESTINATION_INITALIZATION(GLint, params); | 547 GPU_CLIENT_VALIDATE_DESTINATION_INITALIZATION(GLint, params); |
590 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGetProgramiv(" << program << ", "
<< GLES2Util::GetStringProgramParameter(pname) << ", " << static_cast<const voi
d*>(params) << ")"); // NOLINT | 548 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGetProgramiv(" << program << ", "
<< GLES2Util::GetStringProgramParameter(pname) << ", " << static_cast<const voi
d*>(params) << ")"); // NOLINT |
591 if (GetProgramivHelper(program, pname, params)) { | 549 if (GetProgramivHelper(program, pname, params)) { |
592 return; | 550 return; |
593 } | 551 } |
594 typedef GetProgramiv::Result Result; | 552 typedef GetProgramiv::Result Result; |
595 Result* result = GetResultAs<Result*>(); | 553 Result* result = GetResultAs<Result*>(); |
596 if (!result) { | 554 if (!result) { |
597 return; | 555 return; |
598 } | 556 } |
599 result->SetNumResults(0); | 557 result->SetNumResults(0); |
600 helper_->GetProgramiv(program, pname, | 558 helper_->GetProgramiv(program, pname, |
601 GetResultShmId(), GetResultShmOffset()); | 559 GetResultShmId(), GetResultShmOffset()); |
602 WaitForCmd(); | 560 WaitForCmd(); |
603 result->CopyResult(params); | 561 result->CopyResult(params); |
604 GPU_CLIENT_LOG_CODE_BLOCK({ | 562 GPU_CLIENT_LOG_CODE_BLOCK({ |
605 for (int32 i = 0; i < result->GetNumResults(); ++i) { | 563 for (int32 i = 0; i < result->GetNumResults(); ++i) { |
606 GPU_CLIENT_LOG(" " << i << ": " << result->GetData()[i]); | 564 GPU_CLIENT_LOG(" " << i << ": " << result->GetData()[i]); |
607 } | 565 } |
608 }); | 566 }); |
609 } | 567 } |
610 void GetProgramInfoLog( | 568 void GLES2Implementation::GetProgramInfoLog( |
611 GLuint program, GLsizei bufsize, GLsizei* length, char* infolog) { | 569 GLuint program, GLsizei bufsize, GLsizei* length, char* infolog) { |
612 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 570 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
613 GPU_CLIENT_VALIDATE_DESTINATION_OPTIONAL_INITALIZATION(GLsizei, length); | 571 GPU_CLIENT_VALIDATE_DESTINATION_OPTIONAL_INITALIZATION(GLsizei, length); |
614 GPU_CLIENT_LOG("[" << GetLogPrefix() | 572 GPU_CLIENT_LOG("[" << GetLogPrefix() |
615 << "] glGetProgramInfoLog" << "(" | 573 << "] glGetProgramInfoLog" << "(" |
616 << program << ", " | 574 << program << ", " |
617 << bufsize << ", " | 575 << bufsize << ", " |
618 << static_cast<void*>(length) << ", " | 576 << static_cast<void*>(length) << ", " |
619 << static_cast<void*>(infolog) << ")"); | 577 << static_cast<void*>(infolog) << ")"); |
620 helper_->SetBucketSize(kResultBucketId, 0); | 578 helper_->SetBucketSize(kResultBucketId, 0); |
621 helper_->GetProgramInfoLog(program, kResultBucketId); | 579 helper_->GetProgramInfoLog(program, kResultBucketId); |
622 std::string str; | 580 std::string str; |
623 GLsizei max_size = 0; | 581 GLsizei max_size = 0; |
624 if (GetBucketAsString(kResultBucketId, &str)) { | 582 if (GetBucketAsString(kResultBucketId, &str)) { |
625 if (bufsize > 0) { | 583 if (bufsize > 0) { |
626 max_size = | 584 max_size = |
627 std::min(static_cast<size_t>(bufsize) - 1, str.size()); | 585 std::min(static_cast<size_t>(bufsize) - 1, str.size()); |
628 memcpy(infolog, str.c_str(), max_size); | 586 memcpy(infolog, str.c_str(), max_size); |
629 infolog[max_size] = '\0'; | 587 infolog[max_size] = '\0'; |
630 GPU_CLIENT_LOG("------\n" << infolog << "\n------"); | 588 GPU_CLIENT_LOG("------\n" << infolog << "\n------"); |
631 } | 589 } |
632 } | 590 } |
633 if (length != NULL) { | 591 if (length != NULL) { |
634 *length = max_size; | 592 *length = max_size; |
635 } | 593 } |
636 } | 594 } |
637 void GetRenderbufferParameteriv(GLenum target, GLenum pname, GLint* params) { | 595 void GLES2Implementation::GetRenderbufferParameteriv( |
| 596 GLenum target, GLenum pname, GLint* params) { |
638 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 597 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
639 GPU_CLIENT_VALIDATE_DESTINATION_INITALIZATION(GLint, params); | 598 GPU_CLIENT_VALIDATE_DESTINATION_INITALIZATION(GLint, params); |
640 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGetRenderbufferParameteriv(" << G
LES2Util::GetStringRenderBufferTarget(target) << ", " << GLES2Util::GetStringRen
derBufferParameter(pname) << ", " << static_cast<const void*>(params) << ")");
// NOLINT | 599 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGetRenderbufferParameteriv(" << G
LES2Util::GetStringRenderBufferTarget(target) << ", " << GLES2Util::GetStringRen
derBufferParameter(pname) << ", " << static_cast<const void*>(params) << ")");
// NOLINT |
641 if (GetRenderbufferParameterivHelper(target, pname, params)) { | 600 if (GetRenderbufferParameterivHelper(target, pname, params)) { |
642 return; | 601 return; |
643 } | 602 } |
644 typedef GetRenderbufferParameteriv::Result Result; | 603 typedef GetRenderbufferParameteriv::Result Result; |
645 Result* result = GetResultAs<Result*>(); | 604 Result* result = GetResultAs<Result*>(); |
646 if (!result) { | 605 if (!result) { |
647 return; | 606 return; |
648 } | 607 } |
649 result->SetNumResults(0); | 608 result->SetNumResults(0); |
650 helper_->GetRenderbufferParameteriv(target, pname, | 609 helper_->GetRenderbufferParameteriv(target, pname, |
651 GetResultShmId(), GetResultShmOffset()); | 610 GetResultShmId(), GetResultShmOffset()); |
652 WaitForCmd(); | 611 WaitForCmd(); |
653 result->CopyResult(params); | 612 result->CopyResult(params); |
654 GPU_CLIENT_LOG_CODE_BLOCK({ | 613 GPU_CLIENT_LOG_CODE_BLOCK({ |
655 for (int32 i = 0; i < result->GetNumResults(); ++i) { | 614 for (int32 i = 0; i < result->GetNumResults(); ++i) { |
656 GPU_CLIENT_LOG(" " << i << ": " << result->GetData()[i]); | 615 GPU_CLIENT_LOG(" " << i << ": " << result->GetData()[i]); |
657 } | 616 } |
658 }); | 617 }); |
659 } | 618 } |
660 void GetShaderiv(GLuint shader, GLenum pname, GLint* params) { | 619 void GLES2Implementation::GetShaderiv( |
| 620 GLuint shader, GLenum pname, GLint* params) { |
661 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 621 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
662 GPU_CLIENT_VALIDATE_DESTINATION_INITALIZATION(GLint, params); | 622 GPU_CLIENT_VALIDATE_DESTINATION_INITALIZATION(GLint, params); |
663 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGetShaderiv(" << shader << ", " <
< GLES2Util::GetStringShaderParameter(pname) << ", " << static_cast<const void*>
(params) << ")"); // NOLINT | 623 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGetShaderiv(" << shader << ", " <
< GLES2Util::GetStringShaderParameter(pname) << ", " << static_cast<const void*>
(params) << ")"); // NOLINT |
664 if (GetShaderivHelper(shader, pname, params)) { | 624 if (GetShaderivHelper(shader, pname, params)) { |
665 return; | 625 return; |
666 } | 626 } |
667 typedef GetShaderiv::Result Result; | 627 typedef GetShaderiv::Result Result; |
668 Result* result = GetResultAs<Result*>(); | 628 Result* result = GetResultAs<Result*>(); |
669 if (!result) { | 629 if (!result) { |
670 return; | 630 return; |
671 } | 631 } |
672 result->SetNumResults(0); | 632 result->SetNumResults(0); |
673 helper_->GetShaderiv(shader, pname, | 633 helper_->GetShaderiv(shader, pname, |
674 GetResultShmId(), GetResultShmOffset()); | 634 GetResultShmId(), GetResultShmOffset()); |
675 WaitForCmd(); | 635 WaitForCmd(); |
676 result->CopyResult(params); | 636 result->CopyResult(params); |
677 GPU_CLIENT_LOG_CODE_BLOCK({ | 637 GPU_CLIENT_LOG_CODE_BLOCK({ |
678 for (int32 i = 0; i < result->GetNumResults(); ++i) { | 638 for (int32 i = 0; i < result->GetNumResults(); ++i) { |
679 GPU_CLIENT_LOG(" " << i << ": " << result->GetData()[i]); | 639 GPU_CLIENT_LOG(" " << i << ": " << result->GetData()[i]); |
680 } | 640 } |
681 }); | 641 }); |
682 } | 642 } |
683 void GetShaderInfoLog( | 643 void GLES2Implementation::GetShaderInfoLog( |
684 GLuint shader, GLsizei bufsize, GLsizei* length, char* infolog) { | 644 GLuint shader, GLsizei bufsize, GLsizei* length, char* infolog) { |
685 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 645 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
686 GPU_CLIENT_VALIDATE_DESTINATION_OPTIONAL_INITALIZATION(GLsizei, length); | 646 GPU_CLIENT_VALIDATE_DESTINATION_OPTIONAL_INITALIZATION(GLsizei, length); |
687 GPU_CLIENT_LOG("[" << GetLogPrefix() | 647 GPU_CLIENT_LOG("[" << GetLogPrefix() |
688 << "] glGetShaderInfoLog" << "(" | 648 << "] glGetShaderInfoLog" << "(" |
689 << shader << ", " | 649 << shader << ", " |
690 << bufsize << ", " | 650 << bufsize << ", " |
691 << static_cast<void*>(length) << ", " | 651 << static_cast<void*>(length) << ", " |
692 << static_cast<void*>(infolog) << ")"); | 652 << static_cast<void*>(infolog) << ")"); |
693 helper_->SetBucketSize(kResultBucketId, 0); | 653 helper_->SetBucketSize(kResultBucketId, 0); |
694 helper_->GetShaderInfoLog(shader, kResultBucketId); | 654 helper_->GetShaderInfoLog(shader, kResultBucketId); |
695 std::string str; | 655 std::string str; |
696 GLsizei max_size = 0; | 656 GLsizei max_size = 0; |
697 if (GetBucketAsString(kResultBucketId, &str)) { | 657 if (GetBucketAsString(kResultBucketId, &str)) { |
698 if (bufsize > 0) { | 658 if (bufsize > 0) { |
699 max_size = | 659 max_size = |
700 std::min(static_cast<size_t>(bufsize) - 1, str.size()); | 660 std::min(static_cast<size_t>(bufsize) - 1, str.size()); |
701 memcpy(infolog, str.c_str(), max_size); | 661 memcpy(infolog, str.c_str(), max_size); |
702 infolog[max_size] = '\0'; | 662 infolog[max_size] = '\0'; |
703 GPU_CLIENT_LOG("------\n" << infolog << "\n------"); | 663 GPU_CLIENT_LOG("------\n" << infolog << "\n------"); |
704 } | 664 } |
705 } | 665 } |
706 if (length != NULL) { | 666 if (length != NULL) { |
707 *length = max_size; | 667 *length = max_size; |
708 } | 668 } |
709 } | 669 } |
710 void GetShaderPrecisionFormat( | 670 void GLES2Implementation::GetShaderSource( |
711 GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision); | |
712 | |
713 void GetShaderSource( | |
714 GLuint shader, GLsizei bufsize, GLsizei* length, char* source) { | 671 GLuint shader, GLsizei bufsize, GLsizei* length, char* source) { |
715 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 672 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
716 GPU_CLIENT_VALIDATE_DESTINATION_OPTIONAL_INITALIZATION(GLsizei, length); | 673 GPU_CLIENT_VALIDATE_DESTINATION_OPTIONAL_INITALIZATION(GLsizei, length); |
717 GPU_CLIENT_LOG("[" << GetLogPrefix() | 674 GPU_CLIENT_LOG("[" << GetLogPrefix() |
718 << "] glGetShaderSource" << "(" | 675 << "] glGetShaderSource" << "(" |
719 << shader << ", " | 676 << shader << ", " |
720 << bufsize << ", " | 677 << bufsize << ", " |
721 << static_cast<void*>(length) << ", " | 678 << static_cast<void*>(length) << ", " |
722 << static_cast<void*>(source) << ")"); | 679 << static_cast<void*>(source) << ")"); |
723 helper_->SetBucketSize(kResultBucketId, 0); | 680 helper_->SetBucketSize(kResultBucketId, 0); |
724 helper_->GetShaderSource(shader, kResultBucketId); | 681 helper_->GetShaderSource(shader, kResultBucketId); |
725 std::string str; | 682 std::string str; |
726 GLsizei max_size = 0; | 683 GLsizei max_size = 0; |
727 if (GetBucketAsString(kResultBucketId, &str)) { | 684 if (GetBucketAsString(kResultBucketId, &str)) { |
728 if (bufsize > 0) { | 685 if (bufsize > 0) { |
729 max_size = | 686 max_size = |
730 std::min(static_cast<size_t>(bufsize) - 1, str.size()); | 687 std::min(static_cast<size_t>(bufsize) - 1, str.size()); |
731 memcpy(source, str.c_str(), max_size); | 688 memcpy(source, str.c_str(), max_size); |
732 source[max_size] = '\0'; | 689 source[max_size] = '\0'; |
733 GPU_CLIENT_LOG("------\n" << source << "\n------"); | 690 GPU_CLIENT_LOG("------\n" << source << "\n------"); |
734 } | 691 } |
735 } | 692 } |
736 if (length != NULL) { | 693 if (length != NULL) { |
737 *length = max_size; | 694 *length = max_size; |
738 } | 695 } |
739 } | 696 } |
740 const GLubyte* GetString(GLenum name); | 697 void GLES2Implementation::GetTexParameterfv( |
741 | 698 GLenum target, GLenum pname, GLfloat* params) { |
742 void GetTexParameterfv(GLenum target, GLenum pname, GLfloat* params) { | |
743 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 699 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
744 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGetTexParameterfv(" << GLES2Util:
:GetStringGetTexParamTarget(target) << ", " << GLES2Util::GetStringTextureParame
ter(pname) << ", " << static_cast<const void*>(params) << ")"); // NOLINT | 700 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGetTexParameterfv(" << GLES2Util:
:GetStringGetTexParamTarget(target) << ", " << GLES2Util::GetStringTextureParame
ter(pname) << ", " << static_cast<const void*>(params) << ")"); // NOLINT |
745 if (GetTexParameterfvHelper(target, pname, params)) { | 701 if (GetTexParameterfvHelper(target, pname, params)) { |
746 return; | 702 return; |
747 } | 703 } |
748 typedef GetTexParameterfv::Result Result; | 704 typedef GetTexParameterfv::Result Result; |
749 Result* result = GetResultAs<Result*>(); | 705 Result* result = GetResultAs<Result*>(); |
750 if (!result) { | 706 if (!result) { |
751 return; | 707 return; |
752 } | 708 } |
753 result->SetNumResults(0); | 709 result->SetNumResults(0); |
754 helper_->GetTexParameterfv(target, pname, | 710 helper_->GetTexParameterfv(target, pname, |
755 GetResultShmId(), GetResultShmOffset()); | 711 GetResultShmId(), GetResultShmOffset()); |
756 WaitForCmd(); | 712 WaitForCmd(); |
757 result->CopyResult(params); | 713 result->CopyResult(params); |
758 GPU_CLIENT_LOG_CODE_BLOCK({ | 714 GPU_CLIENT_LOG_CODE_BLOCK({ |
759 for (int32 i = 0; i < result->GetNumResults(); ++i) { | 715 for (int32 i = 0; i < result->GetNumResults(); ++i) { |
760 GPU_CLIENT_LOG(" " << i << ": " << result->GetData()[i]); | 716 GPU_CLIENT_LOG(" " << i << ": " << result->GetData()[i]); |
761 } | 717 } |
762 }); | 718 }); |
763 } | 719 } |
764 void GetTexParameteriv(GLenum target, GLenum pname, GLint* params) { | 720 void GLES2Implementation::GetTexParameteriv( |
| 721 GLenum target, GLenum pname, GLint* params) { |
765 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 722 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
766 GPU_CLIENT_VALIDATE_DESTINATION_INITALIZATION(GLint, params); | 723 GPU_CLIENT_VALIDATE_DESTINATION_INITALIZATION(GLint, params); |
767 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGetTexParameteriv(" << GLES2Util:
:GetStringGetTexParamTarget(target) << ", " << GLES2Util::GetStringTextureParame
ter(pname) << ", " << static_cast<const void*>(params) << ")"); // NOLINT | 724 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGetTexParameteriv(" << GLES2Util:
:GetStringGetTexParamTarget(target) << ", " << GLES2Util::GetStringTextureParame
ter(pname) << ", " << static_cast<const void*>(params) << ")"); // NOLINT |
768 if (GetTexParameterivHelper(target, pname, params)) { | 725 if (GetTexParameterivHelper(target, pname, params)) { |
769 return; | 726 return; |
770 } | 727 } |
771 typedef GetTexParameteriv::Result Result; | 728 typedef GetTexParameteriv::Result Result; |
772 Result* result = GetResultAs<Result*>(); | 729 Result* result = GetResultAs<Result*>(); |
773 if (!result) { | 730 if (!result) { |
774 return; | 731 return; |
775 } | 732 } |
776 result->SetNumResults(0); | 733 result->SetNumResults(0); |
777 helper_->GetTexParameteriv(target, pname, | 734 helper_->GetTexParameteriv(target, pname, |
778 GetResultShmId(), GetResultShmOffset()); | 735 GetResultShmId(), GetResultShmOffset()); |
779 WaitForCmd(); | 736 WaitForCmd(); |
780 result->CopyResult(params); | 737 result->CopyResult(params); |
781 GPU_CLIENT_LOG_CODE_BLOCK({ | 738 GPU_CLIENT_LOG_CODE_BLOCK({ |
782 for (int32 i = 0; i < result->GetNumResults(); ++i) { | 739 for (int32 i = 0; i < result->GetNumResults(); ++i) { |
783 GPU_CLIENT_LOG(" " << i << ": " << result->GetData()[i]); | 740 GPU_CLIENT_LOG(" " << i << ": " << result->GetData()[i]); |
784 } | 741 } |
785 }); | 742 }); |
786 } | 743 } |
787 void GetUniformfv(GLuint program, GLint location, GLfloat* params); | 744 void GLES2Implementation::Hint(GLenum target, GLenum mode) { |
788 | |
789 void GetUniformiv(GLuint program, GLint location, GLint* params); | |
790 | |
791 GLint GetUniformLocation(GLuint program, const char* name); | |
792 | |
793 void GetVertexAttribPointerv(GLuint index, GLenum pname, void** pointer); | |
794 | |
795 void Hint(GLenum target, GLenum mode) { | |
796 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 745 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
797 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glHint(" << GLES2Util::GetStringHin
tTarget(target) << ", " << GLES2Util::GetStringHintMode(mode) << ")"); // NOLIN
T | 746 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glHint(" << GLES2Util::GetStringHin
tTarget(target) << ", " << GLES2Util::GetStringHintMode(mode) << ")"); // NOLIN
T |
798 helper_->Hint(target, mode); | 747 helper_->Hint(target, mode); |
799 } | 748 } |
800 | 749 |
801 GLboolean IsBuffer(GLuint buffer) { | 750 GLboolean GLES2Implementation::IsBuffer(GLuint buffer) { |
802 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 751 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
803 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glIsBuffer(" << buffer << ")"); | 752 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glIsBuffer(" << buffer << ")"); |
804 typedef IsBuffer::Result Result; | 753 typedef IsBuffer::Result Result; |
805 Result* result = GetResultAs<Result*>(); | 754 Result* result = GetResultAs<Result*>(); |
806 if (!result) { | 755 if (!result) { |
807 return GL_FALSE; | 756 return GL_FALSE; |
808 } | 757 } |
809 *result = 0; | 758 *result = 0; |
810 helper_->IsBuffer(buffer, GetResultShmId(), GetResultShmOffset()); | 759 helper_->IsBuffer(buffer, GetResultShmId(), GetResultShmOffset()); |
811 WaitForCmd(); | 760 WaitForCmd(); |
812 GPU_CLIENT_LOG("returned " << *result); | 761 GPU_CLIENT_LOG("returned " << *result); |
813 return *result; | 762 return *result; |
814 } | 763 } |
815 | 764 |
816 GLboolean IsEnabled(GLenum cap); | 765 GLboolean GLES2Implementation::IsFramebuffer(GLuint framebuffer) { |
817 | |
818 GLboolean IsFramebuffer(GLuint framebuffer) { | |
819 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 766 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
820 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glIsFramebuffer(" << framebuffer <<
")"); // NOLINT | 767 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glIsFramebuffer(" << framebuffer <<
")"); // NOLINT |
821 typedef IsFramebuffer::Result Result; | 768 typedef IsFramebuffer::Result Result; |
822 Result* result = GetResultAs<Result*>(); | 769 Result* result = GetResultAs<Result*>(); |
823 if (!result) { | 770 if (!result) { |
824 return GL_FALSE; | 771 return GL_FALSE; |
825 } | 772 } |
826 *result = 0; | 773 *result = 0; |
827 helper_->IsFramebuffer(framebuffer, GetResultShmId(), GetResultShmOffset()); | 774 helper_->IsFramebuffer(framebuffer, GetResultShmId(), GetResultShmOffset()); |
828 WaitForCmd(); | 775 WaitForCmd(); |
829 GPU_CLIENT_LOG("returned " << *result); | 776 GPU_CLIENT_LOG("returned " << *result); |
830 return *result; | 777 return *result; |
831 } | 778 } |
832 | 779 |
833 GLboolean IsProgram(GLuint program) { | 780 GLboolean GLES2Implementation::IsProgram(GLuint program) { |
834 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 781 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
835 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glIsProgram(" << program << ")"); | 782 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glIsProgram(" << program << ")"); |
836 typedef IsProgram::Result Result; | 783 typedef IsProgram::Result Result; |
837 Result* result = GetResultAs<Result*>(); | 784 Result* result = GetResultAs<Result*>(); |
838 if (!result) { | 785 if (!result) { |
839 return GL_FALSE; | 786 return GL_FALSE; |
840 } | 787 } |
841 *result = 0; | 788 *result = 0; |
842 helper_->IsProgram(program, GetResultShmId(), GetResultShmOffset()); | 789 helper_->IsProgram(program, GetResultShmId(), GetResultShmOffset()); |
843 WaitForCmd(); | 790 WaitForCmd(); |
844 GPU_CLIENT_LOG("returned " << *result); | 791 GPU_CLIENT_LOG("returned " << *result); |
845 return *result; | 792 return *result; |
846 } | 793 } |
847 | 794 |
848 GLboolean IsRenderbuffer(GLuint renderbuffer) { | 795 GLboolean GLES2Implementation::IsRenderbuffer(GLuint renderbuffer) { |
849 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 796 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
850 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glIsRenderbuffer(" << renderbuffer
<< ")"); // NOLINT | 797 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glIsRenderbuffer(" << renderbuffer
<< ")"); // NOLINT |
851 typedef IsRenderbuffer::Result Result; | 798 typedef IsRenderbuffer::Result Result; |
852 Result* result = GetResultAs<Result*>(); | 799 Result* result = GetResultAs<Result*>(); |
853 if (!result) { | 800 if (!result) { |
854 return GL_FALSE; | 801 return GL_FALSE; |
855 } | 802 } |
856 *result = 0; | 803 *result = 0; |
857 helper_->IsRenderbuffer( | 804 helper_->IsRenderbuffer( |
858 renderbuffer, GetResultShmId(), GetResultShmOffset()); | 805 renderbuffer, GetResultShmId(), GetResultShmOffset()); |
859 WaitForCmd(); | 806 WaitForCmd(); |
860 GPU_CLIENT_LOG("returned " << *result); | 807 GPU_CLIENT_LOG("returned " << *result); |
861 return *result; | 808 return *result; |
862 } | 809 } |
863 | 810 |
864 GLboolean IsShader(GLuint shader) { | 811 GLboolean GLES2Implementation::IsShader(GLuint shader) { |
865 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 812 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
866 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glIsShader(" << shader << ")"); | 813 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glIsShader(" << shader << ")"); |
867 typedef IsShader::Result Result; | 814 typedef IsShader::Result Result; |
868 Result* result = GetResultAs<Result*>(); | 815 Result* result = GetResultAs<Result*>(); |
869 if (!result) { | 816 if (!result) { |
870 return GL_FALSE; | 817 return GL_FALSE; |
871 } | 818 } |
872 *result = 0; | 819 *result = 0; |
873 helper_->IsShader(shader, GetResultShmId(), GetResultShmOffset()); | 820 helper_->IsShader(shader, GetResultShmId(), GetResultShmOffset()); |
874 WaitForCmd(); | 821 WaitForCmd(); |
875 GPU_CLIENT_LOG("returned " << *result); | 822 GPU_CLIENT_LOG("returned " << *result); |
876 return *result; | 823 return *result; |
877 } | 824 } |
878 | 825 |
879 GLboolean IsTexture(GLuint texture) { | 826 GLboolean GLES2Implementation::IsTexture(GLuint texture) { |
880 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 827 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
881 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glIsTexture(" << texture << ")"); | 828 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glIsTexture(" << texture << ")"); |
882 typedef IsTexture::Result Result; | 829 typedef IsTexture::Result Result; |
883 Result* result = GetResultAs<Result*>(); | 830 Result* result = GetResultAs<Result*>(); |
884 if (!result) { | 831 if (!result) { |
885 return GL_FALSE; | 832 return GL_FALSE; |
886 } | 833 } |
887 *result = 0; | 834 *result = 0; |
888 helper_->IsTexture(texture, GetResultShmId(), GetResultShmOffset()); | 835 helper_->IsTexture(texture, GetResultShmId(), GetResultShmOffset()); |
889 WaitForCmd(); | 836 WaitForCmd(); |
890 GPU_CLIENT_LOG("returned " << *result); | 837 GPU_CLIENT_LOG("returned " << *result); |
891 return *result; | 838 return *result; |
892 } | 839 } |
893 | 840 |
894 void LineWidth(GLfloat width) { | 841 void GLES2Implementation::LineWidth(GLfloat width) { |
895 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 842 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
896 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glLineWidth(" << width << ")"); | 843 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glLineWidth(" << width << ")"); |
897 helper_->LineWidth(width); | 844 helper_->LineWidth(width); |
898 } | 845 } |
899 | 846 |
900 void LinkProgram(GLuint program); | 847 void GLES2Implementation::PolygonOffset(GLfloat factor, GLfloat units) { |
901 | |
902 void PixelStorei(GLenum pname, GLint param); | |
903 | |
904 void PolygonOffset(GLfloat factor, GLfloat units) { | |
905 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 848 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
906 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glPolygonOffset(" << factor << ", "
<< units << ")"); // NOLINT | 849 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glPolygonOffset(" << factor << ", "
<< units << ")"); // NOLINT |
907 helper_->PolygonOffset(factor, units); | 850 helper_->PolygonOffset(factor, units); |
908 } | 851 } |
909 | 852 |
910 void ReadPixels( | 853 void GLES2Implementation::ReleaseShaderCompiler() { |
911 GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, | |
912 void* pixels); | |
913 | |
914 void ReleaseShaderCompiler() { | |
915 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 854 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
916 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glReleaseShaderCompiler(" << ")"); | 855 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glReleaseShaderCompiler(" << ")"); |
917 helper_->ReleaseShaderCompiler(); | 856 helper_->ReleaseShaderCompiler(); |
918 } | 857 } |
919 | 858 |
920 void RenderbufferStorage( | 859 void GLES2Implementation::RenderbufferStorage( |
921 GLenum target, GLenum internalformat, GLsizei width, GLsizei height) { | 860 GLenum target, GLenum internalformat, GLsizei width, GLsizei height) { |
922 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 861 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
923 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glRenderbufferStorage(" << GLES2Uti
l::GetStringRenderBufferTarget(target) << ", " << GLES2Util::GetStringRenderBuff
erFormat(internalformat) << ", " << width << ", " << height << ")"); // NOLINT | 862 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glRenderbufferStorage(" << GLES2Uti
l::GetStringRenderBufferTarget(target) << ", " << GLES2Util::GetStringRenderBuff
erFormat(internalformat) << ", " << width << ", " << height << ")"); // NOLINT |
924 if (width < 0) { | 863 if (width < 0) { |
925 SetGLError(GL_INVALID_VALUE, "glRenderbufferStorage", "width < 0"); | 864 SetGLError(GL_INVALID_VALUE, "glRenderbufferStorage", "width < 0"); |
926 return; | 865 return; |
927 } | 866 } |
928 if (height < 0) { | 867 if (height < 0) { |
929 SetGLError(GL_INVALID_VALUE, "glRenderbufferStorage", "height < 0"); | 868 SetGLError(GL_INVALID_VALUE, "glRenderbufferStorage", "height < 0"); |
930 return; | 869 return; |
931 } | 870 } |
932 helper_->RenderbufferStorage(target, internalformat, width, height); | 871 helper_->RenderbufferStorage(target, internalformat, width, height); |
933 } | 872 } |
934 | 873 |
935 void SampleCoverage(GLclampf value, GLboolean invert) { | 874 void GLES2Implementation::SampleCoverage(GLclampf value, GLboolean invert) { |
936 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 875 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
937 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glSampleCoverage(" << value << ", "
<< GLES2Util::GetStringBool(invert) << ")"); // NOLINT | 876 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glSampleCoverage(" << value << ", "
<< GLES2Util::GetStringBool(invert) << ")"); // NOLINT |
938 helper_->SampleCoverage(value, invert); | 877 helper_->SampleCoverage(value, invert); |
939 } | 878 } |
940 | 879 |
941 void Scissor(GLint x, GLint y, GLsizei width, GLsizei height) { | 880 void GLES2Implementation::Scissor( |
| 881 GLint x, GLint y, GLsizei width, GLsizei height) { |
942 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 882 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
943 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glScissor(" << x << ", " << y << ",
" << width << ", " << height << ")"); // NOLINT | 883 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glScissor(" << x << ", " << y << ",
" << width << ", " << height << ")"); // NOLINT |
944 if (width < 0) { | 884 if (width < 0) { |
945 SetGLError(GL_INVALID_VALUE, "glScissor", "width < 0"); | 885 SetGLError(GL_INVALID_VALUE, "glScissor", "width < 0"); |
946 return; | 886 return; |
947 } | 887 } |
948 if (height < 0) { | 888 if (height < 0) { |
949 SetGLError(GL_INVALID_VALUE, "glScissor", "height < 0"); | 889 SetGLError(GL_INVALID_VALUE, "glScissor", "height < 0"); |
950 return; | 890 return; |
951 } | 891 } |
952 helper_->Scissor(x, y, width, height); | 892 helper_->Scissor(x, y, width, height); |
953 } | 893 } |
954 | 894 |
955 void ShaderBinary( | 895 void GLES2Implementation::StencilFunc(GLenum func, GLint ref, GLuint mask) { |
956 GLsizei n, const GLuint* shaders, GLenum binaryformat, const void* binary, | |
957 GLsizei length); | |
958 | |
959 void ShaderSource( | |
960 GLuint shader, GLsizei count, const char** str, const GLint* length); | |
961 | |
962 void StencilFunc(GLenum func, GLint ref, GLuint mask) { | |
963 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 896 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
964 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glStencilFunc(" << GLES2Util::GetSt
ringCmpFunction(func) << ", " << ref << ", " << mask << ")"); // NOLINT | 897 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glStencilFunc(" << GLES2Util::GetSt
ringCmpFunction(func) << ", " << ref << ", " << mask << ")"); // NOLINT |
965 helper_->StencilFunc(func, ref, mask); | 898 helper_->StencilFunc(func, ref, mask); |
966 } | 899 } |
967 | 900 |
968 void StencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask) { | 901 void GLES2Implementation::StencilFuncSeparate( |
| 902 GLenum face, GLenum func, GLint ref, GLuint mask) { |
969 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 903 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
970 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glStencilFuncSeparate(" << GLES2Uti
l::GetStringFaceType(face) << ", " << GLES2Util::GetStringCmpFunction(func) << "
, " << ref << ", " << mask << ")"); // NOLINT | 904 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glStencilFuncSeparate(" << GLES2Uti
l::GetStringFaceType(face) << ", " << GLES2Util::GetStringCmpFunction(func) << "
, " << ref << ", " << mask << ")"); // NOLINT |
971 helper_->StencilFuncSeparate(face, func, ref, mask); | 905 helper_->StencilFuncSeparate(face, func, ref, mask); |
972 } | 906 } |
973 | 907 |
974 void StencilMask(GLuint mask) { | 908 void GLES2Implementation::StencilMask(GLuint mask) { |
975 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 909 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
976 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glStencilMask(" << mask << ")"); | 910 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glStencilMask(" << mask << ")"); |
977 helper_->StencilMask(mask); | 911 helper_->StencilMask(mask); |
978 } | 912 } |
979 | 913 |
980 void StencilMaskSeparate(GLenum face, GLuint mask) { | 914 void GLES2Implementation::StencilMaskSeparate(GLenum face, GLuint mask) { |
981 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 915 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
982 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glStencilMaskSeparate(" << GLES2Uti
l::GetStringFaceType(face) << ", " << mask << ")"); // NOLINT | 916 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glStencilMaskSeparate(" << GLES2Uti
l::GetStringFaceType(face) << ", " << mask << ")"); // NOLINT |
983 helper_->StencilMaskSeparate(face, mask); | 917 helper_->StencilMaskSeparate(face, mask); |
984 } | 918 } |
985 | 919 |
986 void StencilOp(GLenum fail, GLenum zfail, GLenum zpass) { | 920 void GLES2Implementation::StencilOp(GLenum fail, GLenum zfail, GLenum zpass) { |
987 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 921 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
988 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glStencilOp(" << GLES2Util::GetStri
ngStencilOp(fail) << ", " << GLES2Util::GetStringStencilOp(zfail) << ", " << GLE
S2Util::GetStringStencilOp(zpass) << ")"); // NOLINT | 922 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glStencilOp(" << GLES2Util::GetStri
ngStencilOp(fail) << ", " << GLES2Util::GetStringStencilOp(zfail) << ", " << GLE
S2Util::GetStringStencilOp(zpass) << ")"); // NOLINT |
989 helper_->StencilOp(fail, zfail, zpass); | 923 helper_->StencilOp(fail, zfail, zpass); |
990 } | 924 } |
991 | 925 |
992 void StencilOpSeparate(GLenum face, GLenum fail, GLenum zfail, GLenum zpass) { | 926 void GLES2Implementation::StencilOpSeparate( |
| 927 GLenum face, GLenum fail, GLenum zfail, GLenum zpass) { |
993 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 928 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
994 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glStencilOpSeparate(" << GLES2Util:
:GetStringFaceType(face) << ", " << GLES2Util::GetStringStencilOp(fail) << ", "
<< GLES2Util::GetStringStencilOp(zfail) << ", " << GLES2Util::GetStringStencilOp
(zpass) << ")"); // NOLINT | 929 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glStencilOpSeparate(" << GLES2Util:
:GetStringFaceType(face) << ", " << GLES2Util::GetStringStencilOp(fail) << ", "
<< GLES2Util::GetStringStencilOp(zfail) << ", " << GLES2Util::GetStringStencilOp
(zpass) << ")"); // NOLINT |
995 helper_->StencilOpSeparate(face, fail, zfail, zpass); | 930 helper_->StencilOpSeparate(face, fail, zfail, zpass); |
996 } | 931 } |
997 | 932 |
998 void TexImage2D( | 933 void GLES2Implementation::TexParameterf( |
999 GLenum target, GLint level, GLint internalformat, GLsizei width, | 934 GLenum target, GLenum pname, GLfloat param) { |
1000 GLsizei height, GLint border, GLenum format, GLenum type, | |
1001 const void* pixels); | |
1002 | |
1003 void TexParameterf(GLenum target, GLenum pname, GLfloat param) { | |
1004 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 935 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1005 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glTexParameterf(" << GLES2Util::Get
StringTextureBindTarget(target) << ", " << GLES2Util::GetStringTextureParameter(
pname) << ", " << param << ")"); // NOLINT | 936 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glTexParameterf(" << GLES2Util::Get
StringTextureBindTarget(target) << ", " << GLES2Util::GetStringTextureParameter(
pname) << ", " << param << ")"); // NOLINT |
1006 helper_->TexParameterf(target, pname, param); | 937 helper_->TexParameterf(target, pname, param); |
1007 } | 938 } |
1008 | 939 |
1009 void TexParameterfv(GLenum target, GLenum pname, const GLfloat* params) { | 940 void GLES2Implementation::TexParameterfv( |
| 941 GLenum target, GLenum pname, const GLfloat* params) { |
1010 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 942 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1011 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glTexParameterfv(" << GLES2Util::Ge
tStringTextureBindTarget(target) << ", " << GLES2Util::GetStringTextureParameter
(pname) << ", " << static_cast<const void*>(params) << ")"); // NOLINT | 943 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glTexParameterfv(" << GLES2Util::Ge
tStringTextureBindTarget(target) << ", " << GLES2Util::GetStringTextureParameter
(pname) << ", " << static_cast<const void*>(params) << ")"); // NOLINT |
1012 GPU_CLIENT_LOG("values: " << params[0]); | 944 GPU_CLIENT_LOG("values: " << params[0]); |
1013 helper_->TexParameterfvImmediate(target, pname, params); | 945 helper_->TexParameterfvImmediate(target, pname, params); |
1014 } | 946 } |
1015 | 947 |
1016 void TexParameteri(GLenum target, GLenum pname, GLint param) { | 948 void GLES2Implementation::TexParameteri( |
| 949 GLenum target, GLenum pname, GLint param) { |
1017 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 950 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1018 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glTexParameteri(" << GLES2Util::Get
StringTextureBindTarget(target) << ", " << GLES2Util::GetStringTextureParameter(
pname) << ", " << param << ")"); // NOLINT | 951 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glTexParameteri(" << GLES2Util::Get
StringTextureBindTarget(target) << ", " << GLES2Util::GetStringTextureParameter(
pname) << ", " << param << ")"); // NOLINT |
1019 helper_->TexParameteri(target, pname, param); | 952 helper_->TexParameteri(target, pname, param); |
1020 } | 953 } |
1021 | 954 |
1022 void TexParameteriv(GLenum target, GLenum pname, const GLint* params) { | 955 void GLES2Implementation::TexParameteriv( |
| 956 GLenum target, GLenum pname, const GLint* params) { |
1023 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 957 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1024 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glTexParameteriv(" << GLES2Util::Ge
tStringTextureBindTarget(target) << ", " << GLES2Util::GetStringTextureParameter
(pname) << ", " << static_cast<const void*>(params) << ")"); // NOLINT | 958 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glTexParameteriv(" << GLES2Util::Ge
tStringTextureBindTarget(target) << ", " << GLES2Util::GetStringTextureParameter
(pname) << ", " << static_cast<const void*>(params) << ")"); // NOLINT |
1025 GPU_CLIENT_LOG("values: " << params[0]); | 959 GPU_CLIENT_LOG("values: " << params[0]); |
1026 helper_->TexParameterivImmediate(target, pname, params); | 960 helper_->TexParameterivImmediate(target, pname, params); |
1027 } | 961 } |
1028 | 962 |
1029 void TexSubImage2D( | 963 void GLES2Implementation::Uniform1f(GLint location, GLfloat x) { |
1030 GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, | |
1031 GLsizei height, GLenum format, GLenum type, const void* pixels); | |
1032 | |
1033 void Uniform1f(GLint location, GLfloat x) { | |
1034 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 964 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1035 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform1f(" << location << ", " <
< x << ")"); // NOLINT | 965 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform1f(" << location << ", " <
< x << ")"); // NOLINT |
1036 helper_->Uniform1f(location, x); | 966 helper_->Uniform1f(location, x); |
1037 } | 967 } |
1038 | 968 |
1039 void Uniform1fv(GLint location, GLsizei count, const GLfloat* v) { | 969 void GLES2Implementation::Uniform1fv( |
| 970 GLint location, GLsizei count, const GLfloat* v) { |
1040 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 971 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1041 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform1fv(" << location << ", "
<< count << ", " << static_cast<const void*>(v) << ")"); // NOLINT | 972 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform1fv(" << location << ", "
<< count << ", " << static_cast<const void*>(v) << ")"); // NOLINT |
1042 GPU_CLIENT_LOG_CODE_BLOCK({ | 973 GPU_CLIENT_LOG_CODE_BLOCK({ |
1043 for (GLsizei i = 0; i < count; ++i) { | 974 for (GLsizei i = 0; i < count; ++i) { |
1044 GPU_CLIENT_LOG(" " << i << ": " << v[0 + i * 1]); | 975 GPU_CLIENT_LOG(" " << i << ": " << v[0 + i * 1]); |
1045 } | 976 } |
1046 }); | 977 }); |
1047 if (count < 0) { | 978 if (count < 0) { |
1048 SetGLError(GL_INVALID_VALUE, "glUniform1fv", "count < 0"); | 979 SetGLError(GL_INVALID_VALUE, "glUniform1fv", "count < 0"); |
1049 return; | 980 return; |
1050 } | 981 } |
1051 helper_->Uniform1fvImmediate(location, count, v); | 982 helper_->Uniform1fvImmediate(location, count, v); |
1052 } | 983 } |
1053 | 984 |
1054 void Uniform1i(GLint location, GLint x) { | 985 void GLES2Implementation::Uniform1i(GLint location, GLint x) { |
1055 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 986 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1056 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform1i(" << location << ", " <
< x << ")"); // NOLINT | 987 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform1i(" << location << ", " <
< x << ")"); // NOLINT |
1057 helper_->Uniform1i(location, x); | 988 helper_->Uniform1i(location, x); |
1058 } | 989 } |
1059 | 990 |
1060 void Uniform1iv(GLint location, GLsizei count, const GLint* v) { | 991 void GLES2Implementation::Uniform1iv( |
| 992 GLint location, GLsizei count, const GLint* v) { |
1061 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 993 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1062 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform1iv(" << location << ", "
<< count << ", " << static_cast<const void*>(v) << ")"); // NOLINT | 994 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform1iv(" << location << ", "
<< count << ", " << static_cast<const void*>(v) << ")"); // NOLINT |
1063 GPU_CLIENT_LOG_CODE_BLOCK({ | 995 GPU_CLIENT_LOG_CODE_BLOCK({ |
1064 for (GLsizei i = 0; i < count; ++i) { | 996 for (GLsizei i = 0; i < count; ++i) { |
1065 GPU_CLIENT_LOG(" " << i << ": " << v[0 + i * 1]); | 997 GPU_CLIENT_LOG(" " << i << ": " << v[0 + i * 1]); |
1066 } | 998 } |
1067 }); | 999 }); |
1068 if (count < 0) { | 1000 if (count < 0) { |
1069 SetGLError(GL_INVALID_VALUE, "glUniform1iv", "count < 0"); | 1001 SetGLError(GL_INVALID_VALUE, "glUniform1iv", "count < 0"); |
1070 return; | 1002 return; |
1071 } | 1003 } |
1072 helper_->Uniform1ivImmediate(location, count, v); | 1004 helper_->Uniform1ivImmediate(location, count, v); |
1073 } | 1005 } |
1074 | 1006 |
1075 void Uniform2f(GLint location, GLfloat x, GLfloat y) { | 1007 void GLES2Implementation::Uniform2f(GLint location, GLfloat x, GLfloat y) { |
1076 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1008 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1077 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform2f(" << location << ", " <
< x << ", " << y << ")"); // NOLINT | 1009 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform2f(" << location << ", " <
< x << ", " << y << ")"); // NOLINT |
1078 helper_->Uniform2f(location, x, y); | 1010 helper_->Uniform2f(location, x, y); |
1079 } | 1011 } |
1080 | 1012 |
1081 void Uniform2fv(GLint location, GLsizei count, const GLfloat* v) { | 1013 void GLES2Implementation::Uniform2fv( |
| 1014 GLint location, GLsizei count, const GLfloat* v) { |
1082 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1015 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1083 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform2fv(" << location << ", "
<< count << ", " << static_cast<const void*>(v) << ")"); // NOLINT | 1016 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform2fv(" << location << ", "
<< count << ", " << static_cast<const void*>(v) << ")"); // NOLINT |
1084 GPU_CLIENT_LOG_CODE_BLOCK({ | 1017 GPU_CLIENT_LOG_CODE_BLOCK({ |
1085 for (GLsizei i = 0; i < count; ++i) { | 1018 for (GLsizei i = 0; i < count; ++i) { |
1086 GPU_CLIENT_LOG(" " << i << ": " << v[0 + i * 2] << ", " << v[1 + i * 2])
; // NOLINT | 1019 GPU_CLIENT_LOG(" " << i << ": " << v[0 + i * 2] << ", " << v[1 + i * 2])
; // NOLINT |
1087 } | 1020 } |
1088 }); | 1021 }); |
1089 if (count < 0) { | 1022 if (count < 0) { |
1090 SetGLError(GL_INVALID_VALUE, "glUniform2fv", "count < 0"); | 1023 SetGLError(GL_INVALID_VALUE, "glUniform2fv", "count < 0"); |
1091 return; | 1024 return; |
1092 } | 1025 } |
1093 helper_->Uniform2fvImmediate(location, count, v); | 1026 helper_->Uniform2fvImmediate(location, count, v); |
1094 } | 1027 } |
1095 | 1028 |
1096 void Uniform2i(GLint location, GLint x, GLint y) { | 1029 void GLES2Implementation::Uniform2i(GLint location, GLint x, GLint y) { |
1097 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1030 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1098 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform2i(" << location << ", " <
< x << ", " << y << ")"); // NOLINT | 1031 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform2i(" << location << ", " <
< x << ", " << y << ")"); // NOLINT |
1099 helper_->Uniform2i(location, x, y); | 1032 helper_->Uniform2i(location, x, y); |
1100 } | 1033 } |
1101 | 1034 |
1102 void Uniform2iv(GLint location, GLsizei count, const GLint* v) { | 1035 void GLES2Implementation::Uniform2iv( |
| 1036 GLint location, GLsizei count, const GLint* v) { |
1103 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1037 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1104 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform2iv(" << location << ", "
<< count << ", " << static_cast<const void*>(v) << ")"); // NOLINT | 1038 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform2iv(" << location << ", "
<< count << ", " << static_cast<const void*>(v) << ")"); // NOLINT |
1105 GPU_CLIENT_LOG_CODE_BLOCK({ | 1039 GPU_CLIENT_LOG_CODE_BLOCK({ |
1106 for (GLsizei i = 0; i < count; ++i) { | 1040 for (GLsizei i = 0; i < count; ++i) { |
1107 GPU_CLIENT_LOG(" " << i << ": " << v[0 + i * 2] << ", " << v[1 + i * 2])
; // NOLINT | 1041 GPU_CLIENT_LOG(" " << i << ": " << v[0 + i * 2] << ", " << v[1 + i * 2])
; // NOLINT |
1108 } | 1042 } |
1109 }); | 1043 }); |
1110 if (count < 0) { | 1044 if (count < 0) { |
1111 SetGLError(GL_INVALID_VALUE, "glUniform2iv", "count < 0"); | 1045 SetGLError(GL_INVALID_VALUE, "glUniform2iv", "count < 0"); |
1112 return; | 1046 return; |
1113 } | 1047 } |
1114 helper_->Uniform2ivImmediate(location, count, v); | 1048 helper_->Uniform2ivImmediate(location, count, v); |
1115 } | 1049 } |
1116 | 1050 |
1117 void Uniform3f(GLint location, GLfloat x, GLfloat y, GLfloat z) { | 1051 void GLES2Implementation::Uniform3f( |
| 1052 GLint location, GLfloat x, GLfloat y, GLfloat z) { |
1118 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1053 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1119 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform3f(" << location << ", " <
< x << ", " << y << ", " << z << ")"); // NOLINT | 1054 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform3f(" << location << ", " <
< x << ", " << y << ", " << z << ")"); // NOLINT |
1120 helper_->Uniform3f(location, x, y, z); | 1055 helper_->Uniform3f(location, x, y, z); |
1121 } | 1056 } |
1122 | 1057 |
1123 void Uniform3fv(GLint location, GLsizei count, const GLfloat* v) { | 1058 void GLES2Implementation::Uniform3fv( |
| 1059 GLint location, GLsizei count, const GLfloat* v) { |
1124 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1060 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1125 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform3fv(" << location << ", "
<< count << ", " << static_cast<const void*>(v) << ")"); // NOLINT | 1061 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform3fv(" << location << ", "
<< count << ", " << static_cast<const void*>(v) << ")"); // NOLINT |
1126 GPU_CLIENT_LOG_CODE_BLOCK({ | 1062 GPU_CLIENT_LOG_CODE_BLOCK({ |
1127 for (GLsizei i = 0; i < count; ++i) { | 1063 for (GLsizei i = 0; i < count; ++i) { |
1128 GPU_CLIENT_LOG(" " << i << ": " << v[0 + i * 3] << ", " << v[1 + i * 3]
<< ", " << v[2 + i * 3]); // NOLINT | 1064 GPU_CLIENT_LOG(" " << i << ": " << v[0 + i * 3] << ", " << v[1 + i * 3]
<< ", " << v[2 + i * 3]); // NOLINT |
1129 } | 1065 } |
1130 }); | 1066 }); |
1131 if (count < 0) { | 1067 if (count < 0) { |
1132 SetGLError(GL_INVALID_VALUE, "glUniform3fv", "count < 0"); | 1068 SetGLError(GL_INVALID_VALUE, "glUniform3fv", "count < 0"); |
1133 return; | 1069 return; |
1134 } | 1070 } |
1135 helper_->Uniform3fvImmediate(location, count, v); | 1071 helper_->Uniform3fvImmediate(location, count, v); |
1136 } | 1072 } |
1137 | 1073 |
1138 void Uniform3i(GLint location, GLint x, GLint y, GLint z) { | 1074 void GLES2Implementation::Uniform3i( |
| 1075 GLint location, GLint x, GLint y, GLint z) { |
1139 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1076 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1140 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform3i(" << location << ", " <
< x << ", " << y << ", " << z << ")"); // NOLINT | 1077 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform3i(" << location << ", " <
< x << ", " << y << ", " << z << ")"); // NOLINT |
1141 helper_->Uniform3i(location, x, y, z); | 1078 helper_->Uniform3i(location, x, y, z); |
1142 } | 1079 } |
1143 | 1080 |
1144 void Uniform3iv(GLint location, GLsizei count, const GLint* v) { | 1081 void GLES2Implementation::Uniform3iv( |
| 1082 GLint location, GLsizei count, const GLint* v) { |
1145 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1083 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1146 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform3iv(" << location << ", "
<< count << ", " << static_cast<const void*>(v) << ")"); // NOLINT | 1084 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform3iv(" << location << ", "
<< count << ", " << static_cast<const void*>(v) << ")"); // NOLINT |
1147 GPU_CLIENT_LOG_CODE_BLOCK({ | 1085 GPU_CLIENT_LOG_CODE_BLOCK({ |
1148 for (GLsizei i = 0; i < count; ++i) { | 1086 for (GLsizei i = 0; i < count; ++i) { |
1149 GPU_CLIENT_LOG(" " << i << ": " << v[0 + i * 3] << ", " << v[1 + i * 3]
<< ", " << v[2 + i * 3]); // NOLINT | 1087 GPU_CLIENT_LOG(" " << i << ": " << v[0 + i * 3] << ", " << v[1 + i * 3]
<< ", " << v[2 + i * 3]); // NOLINT |
1150 } | 1088 } |
1151 }); | 1089 }); |
1152 if (count < 0) { | 1090 if (count < 0) { |
1153 SetGLError(GL_INVALID_VALUE, "glUniform3iv", "count < 0"); | 1091 SetGLError(GL_INVALID_VALUE, "glUniform3iv", "count < 0"); |
1154 return; | 1092 return; |
1155 } | 1093 } |
1156 helper_->Uniform3ivImmediate(location, count, v); | 1094 helper_->Uniform3ivImmediate(location, count, v); |
1157 } | 1095 } |
1158 | 1096 |
1159 void Uniform4f(GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w) { | 1097 void GLES2Implementation::Uniform4f( |
| 1098 GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w) { |
1160 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1099 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1161 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform4f(" << location << ", " <
< x << ", " << y << ", " << z << ", " << w << ")"); // NOLINT | 1100 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform4f(" << location << ", " <
< x << ", " << y << ", " << z << ", " << w << ")"); // NOLINT |
1162 helper_->Uniform4f(location, x, y, z, w); | 1101 helper_->Uniform4f(location, x, y, z, w); |
1163 } | 1102 } |
1164 | 1103 |
1165 void Uniform4fv(GLint location, GLsizei count, const GLfloat* v) { | 1104 void GLES2Implementation::Uniform4fv( |
| 1105 GLint location, GLsizei count, const GLfloat* v) { |
1166 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1106 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1167 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform4fv(" << location << ", "
<< count << ", " << static_cast<const void*>(v) << ")"); // NOLINT | 1107 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform4fv(" << location << ", "
<< count << ", " << static_cast<const void*>(v) << ")"); // NOLINT |
1168 GPU_CLIENT_LOG_CODE_BLOCK({ | 1108 GPU_CLIENT_LOG_CODE_BLOCK({ |
1169 for (GLsizei i = 0; i < count; ++i) { | 1109 for (GLsizei i = 0; i < count; ++i) { |
1170 GPU_CLIENT_LOG(" " << i << ": " << v[0 + i * 4] << ", " << v[1 + i * 4]
<< ", " << v[2 + i * 4] << ", " << v[3 + i * 4]); // NOLINT | 1110 GPU_CLIENT_LOG(" " << i << ": " << v[0 + i * 4] << ", " << v[1 + i * 4]
<< ", " << v[2 + i * 4] << ", " << v[3 + i * 4]); // NOLINT |
1171 } | 1111 } |
1172 }); | 1112 }); |
1173 if (count < 0) { | 1113 if (count < 0) { |
1174 SetGLError(GL_INVALID_VALUE, "glUniform4fv", "count < 0"); | 1114 SetGLError(GL_INVALID_VALUE, "glUniform4fv", "count < 0"); |
1175 return; | 1115 return; |
1176 } | 1116 } |
1177 helper_->Uniform4fvImmediate(location, count, v); | 1117 helper_->Uniform4fvImmediate(location, count, v); |
1178 } | 1118 } |
1179 | 1119 |
1180 void Uniform4i(GLint location, GLint x, GLint y, GLint z, GLint w) { | 1120 void GLES2Implementation::Uniform4i( |
| 1121 GLint location, GLint x, GLint y, GLint z, GLint w) { |
1181 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1122 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1182 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform4i(" << location << ", " <
< x << ", " << y << ", " << z << ", " << w << ")"); // NOLINT | 1123 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform4i(" << location << ", " <
< x << ", " << y << ", " << z << ", " << w << ")"); // NOLINT |
1183 helper_->Uniform4i(location, x, y, z, w); | 1124 helper_->Uniform4i(location, x, y, z, w); |
1184 } | 1125 } |
1185 | 1126 |
1186 void Uniform4iv(GLint location, GLsizei count, const GLint* v) { | 1127 void GLES2Implementation::Uniform4iv( |
| 1128 GLint location, GLsizei count, const GLint* v) { |
1187 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1129 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1188 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform4iv(" << location << ", "
<< count << ", " << static_cast<const void*>(v) << ")"); // NOLINT | 1130 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniform4iv(" << location << ", "
<< count << ", " << static_cast<const void*>(v) << ")"); // NOLINT |
1189 GPU_CLIENT_LOG_CODE_BLOCK({ | 1131 GPU_CLIENT_LOG_CODE_BLOCK({ |
1190 for (GLsizei i = 0; i < count; ++i) { | 1132 for (GLsizei i = 0; i < count; ++i) { |
1191 GPU_CLIENT_LOG(" " << i << ": " << v[0 + i * 4] << ", " << v[1 + i * 4]
<< ", " << v[2 + i * 4] << ", " << v[3 + i * 4]); // NOLINT | 1133 GPU_CLIENT_LOG(" " << i << ": " << v[0 + i * 4] << ", " << v[1 + i * 4]
<< ", " << v[2 + i * 4] << ", " << v[3 + i * 4]); // NOLINT |
1192 } | 1134 } |
1193 }); | 1135 }); |
1194 if (count < 0) { | 1136 if (count < 0) { |
1195 SetGLError(GL_INVALID_VALUE, "glUniform4iv", "count < 0"); | 1137 SetGLError(GL_INVALID_VALUE, "glUniform4iv", "count < 0"); |
1196 return; | 1138 return; |
1197 } | 1139 } |
1198 helper_->Uniform4ivImmediate(location, count, v); | 1140 helper_->Uniform4ivImmediate(location, count, v); |
1199 } | 1141 } |
1200 | 1142 |
1201 void UniformMatrix2fv( | 1143 void GLES2Implementation::UniformMatrix2fv( |
1202 GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) { | 1144 GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) { |
1203 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1145 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1204 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniformMatrix2fv(" << location <<
", " << count << ", " << GLES2Util::GetStringBool(transpose) << ", " << static_
cast<const void*>(value) << ")"); // NOLINT | 1146 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniformMatrix2fv(" << location <<
", " << count << ", " << GLES2Util::GetStringBool(transpose) << ", " << static_
cast<const void*>(value) << ")"); // NOLINT |
1205 GPU_CLIENT_LOG_CODE_BLOCK({ | 1147 GPU_CLIENT_LOG_CODE_BLOCK({ |
1206 for (GLsizei i = 0; i < count; ++i) { | 1148 for (GLsizei i = 0; i < count; ++i) { |
1207 GPU_CLIENT_LOG(" " << i << ": " << value[0 + i * 4] << ", " << value[1 +
i * 4] << ", " << value[2 + i * 4] << ", " << value[3 + i * 4]); // NOLINT | 1149 GPU_CLIENT_LOG(" " << i << ": " << value[0 + i * 4] << ", " << value[1 +
i * 4] << ", " << value[2 + i * 4] << ", " << value[3 + i * 4]); // NOLINT |
1208 } | 1150 } |
1209 }); | 1151 }); |
1210 if (count < 0) { | 1152 if (count < 0) { |
1211 SetGLError(GL_INVALID_VALUE, "glUniformMatrix2fv", "count < 0"); | 1153 SetGLError(GL_INVALID_VALUE, "glUniformMatrix2fv", "count < 0"); |
1212 return; | 1154 return; |
1213 } | 1155 } |
1214 helper_->UniformMatrix2fvImmediate(location, count, transpose, value); | 1156 helper_->UniformMatrix2fvImmediate(location, count, transpose, value); |
1215 } | 1157 } |
1216 | 1158 |
1217 void UniformMatrix3fv( | 1159 void GLES2Implementation::UniformMatrix3fv( |
1218 GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) { | 1160 GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) { |
1219 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1161 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1220 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniformMatrix3fv(" << location <<
", " << count << ", " << GLES2Util::GetStringBool(transpose) << ", " << static_
cast<const void*>(value) << ")"); // NOLINT | 1162 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniformMatrix3fv(" << location <<
", " << count << ", " << GLES2Util::GetStringBool(transpose) << ", " << static_
cast<const void*>(value) << ")"); // NOLINT |
1221 GPU_CLIENT_LOG_CODE_BLOCK({ | 1163 GPU_CLIENT_LOG_CODE_BLOCK({ |
1222 for (GLsizei i = 0; i < count; ++i) { | 1164 for (GLsizei i = 0; i < count; ++i) { |
1223 GPU_CLIENT_LOG(" " << i << ": " << value[0 + i * 9] << ", " << value[1 +
i * 9] << ", " << value[2 + i * 9] << ", " << value[3 + i * 9] << ", " << value
[4 + i * 9] << ", " << value[5 + i * 9] << ", " << value[6 + i * 9] << ", " << v
alue[7 + i * 9] << ", " << value[8 + i * 9]); // NOLINT | 1165 GPU_CLIENT_LOG(" " << i << ": " << value[0 + i * 9] << ", " << value[1 +
i * 9] << ", " << value[2 + i * 9] << ", " << value[3 + i * 9] << ", " << value
[4 + i * 9] << ", " << value[5 + i * 9] << ", " << value[6 + i * 9] << ", " << v
alue[7 + i * 9] << ", " << value[8 + i * 9]); // NOLINT |
1224 } | 1166 } |
1225 }); | 1167 }); |
1226 if (count < 0) { | 1168 if (count < 0) { |
1227 SetGLError(GL_INVALID_VALUE, "glUniformMatrix3fv", "count < 0"); | 1169 SetGLError(GL_INVALID_VALUE, "glUniformMatrix3fv", "count < 0"); |
1228 return; | 1170 return; |
1229 } | 1171 } |
1230 helper_->UniformMatrix3fvImmediate(location, count, transpose, value); | 1172 helper_->UniformMatrix3fvImmediate(location, count, transpose, value); |
1231 } | 1173 } |
1232 | 1174 |
1233 void UniformMatrix4fv( | 1175 void GLES2Implementation::UniformMatrix4fv( |
1234 GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) { | 1176 GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) { |
1235 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1177 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1236 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniformMatrix4fv(" << location <<
", " << count << ", " << GLES2Util::GetStringBool(transpose) << ", " << static_
cast<const void*>(value) << ")"); // NOLINT | 1178 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUniformMatrix4fv(" << location <<
", " << count << ", " << GLES2Util::GetStringBool(transpose) << ", " << static_
cast<const void*>(value) << ")"); // NOLINT |
1237 GPU_CLIENT_LOG_CODE_BLOCK({ | 1179 GPU_CLIENT_LOG_CODE_BLOCK({ |
1238 for (GLsizei i = 0; i < count; ++i) { | 1180 for (GLsizei i = 0; i < count; ++i) { |
1239 GPU_CLIENT_LOG(" " << i << ": " << value[0 + i * 16] << ", " << value[1
+ i * 16] << ", " << value[2 + i * 16] << ", " << value[3 + i * 16] << ", " << v
alue[4 + i * 16] << ", " << value[5 + i * 16] << ", " << value[6 + i * 16] << ",
" << value[7 + i * 16] << ", " << value[8 + i * 16] << ", " << value[9 + i * 16
] << ", " << value[10 + i * 16] << ", " << value[11 + i * 16] << ", " << value[1
2 + i * 16] << ", " << value[13 + i * 16] << ", " << value[14 + i * 16] << ", "
<< value[15 + i * 16]); // NOLINT | 1181 GPU_CLIENT_LOG(" " << i << ": " << value[0 + i * 16] << ", " << value[1
+ i * 16] << ", " << value[2 + i * 16] << ", " << value[3 + i * 16] << ", " << v
alue[4 + i * 16] << ", " << value[5 + i * 16] << ", " << value[6 + i * 16] << ",
" << value[7 + i * 16] << ", " << value[8 + i * 16] << ", " << value[9 + i * 16
] << ", " << value[10 + i * 16] << ", " << value[11 + i * 16] << ", " << value[1
2 + i * 16] << ", " << value[13 + i * 16] << ", " << value[14 + i * 16] << ", "
<< value[15 + i * 16]); // NOLINT |
1240 } | 1182 } |
1241 }); | 1183 }); |
1242 if (count < 0) { | 1184 if (count < 0) { |
1243 SetGLError(GL_INVALID_VALUE, "glUniformMatrix4fv", "count < 0"); | 1185 SetGLError(GL_INVALID_VALUE, "glUniformMatrix4fv", "count < 0"); |
1244 return; | 1186 return; |
1245 } | 1187 } |
1246 helper_->UniformMatrix4fvImmediate(location, count, transpose, value); | 1188 helper_->UniformMatrix4fvImmediate(location, count, transpose, value); |
1247 } | 1189 } |
1248 | 1190 |
1249 void UseProgram(GLuint program) { | 1191 void GLES2Implementation::UseProgram(GLuint program) { |
1250 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1192 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1251 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUseProgram(" << program << ")"); | 1193 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glUseProgram(" << program << ")"); |
1252 helper_->UseProgram(program); | 1194 helper_->UseProgram(program); |
1253 } | 1195 } |
1254 | 1196 |
1255 void ValidateProgram(GLuint program) { | 1197 void GLES2Implementation::ValidateProgram(GLuint program) { |
1256 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1198 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1257 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glValidateProgram(" << program << "
)"); // NOLINT | 1199 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glValidateProgram(" << program << "
)"); // NOLINT |
1258 helper_->ValidateProgram(program); | 1200 helper_->ValidateProgram(program); |
1259 } | 1201 } |
1260 | 1202 |
1261 void VertexAttrib1f(GLuint indx, GLfloat x) { | 1203 void GLES2Implementation::VertexAttrib1f(GLuint indx, GLfloat x) { |
1262 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1204 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1263 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glVertexAttrib1f(" << indx << ", "
<< x << ")"); // NOLINT | 1205 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glVertexAttrib1f(" << indx << ", "
<< x << ")"); // NOLINT |
1264 helper_->VertexAttrib1f(indx, x); | 1206 helper_->VertexAttrib1f(indx, x); |
1265 } | 1207 } |
1266 | 1208 |
1267 void VertexAttrib1fv(GLuint indx, const GLfloat* values) { | 1209 void GLES2Implementation::VertexAttrib1fv(GLuint indx, const GLfloat* values) { |
1268 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1210 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1269 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glVertexAttrib1fv(" << indx << ", "
<< static_cast<const void*>(values) << ")"); // NOLINT | 1211 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glVertexAttrib1fv(" << indx << ", "
<< static_cast<const void*>(values) << ")"); // NOLINT |
1270 GPU_CLIENT_LOG("values: " << values[0]); | 1212 GPU_CLIENT_LOG("values: " << values[0]); |
1271 helper_->VertexAttrib1fvImmediate(indx, values); | 1213 helper_->VertexAttrib1fvImmediate(indx, values); |
1272 } | 1214 } |
1273 | 1215 |
1274 void VertexAttrib2f(GLuint indx, GLfloat x, GLfloat y) { | 1216 void GLES2Implementation::VertexAttrib2f(GLuint indx, GLfloat x, GLfloat y) { |
1275 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1217 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1276 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glVertexAttrib2f(" << indx << ", "
<< x << ", " << y << ")"); // NOLINT | 1218 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glVertexAttrib2f(" << indx << ", "
<< x << ", " << y << ")"); // NOLINT |
1277 helper_->VertexAttrib2f(indx, x, y); | 1219 helper_->VertexAttrib2f(indx, x, y); |
1278 } | 1220 } |
1279 | 1221 |
1280 void VertexAttrib2fv(GLuint indx, const GLfloat* values) { | 1222 void GLES2Implementation::VertexAttrib2fv(GLuint indx, const GLfloat* values) { |
1281 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1223 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1282 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glVertexAttrib2fv(" << indx << ", "
<< static_cast<const void*>(values) << ")"); // NOLINT | 1224 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glVertexAttrib2fv(" << indx << ", "
<< static_cast<const void*>(values) << ")"); // NOLINT |
1283 GPU_CLIENT_LOG("values: " << values[0] << ", " << values[1]); | 1225 GPU_CLIENT_LOG("values: " << values[0] << ", " << values[1]); |
1284 helper_->VertexAttrib2fvImmediate(indx, values); | 1226 helper_->VertexAttrib2fvImmediate(indx, values); |
1285 } | 1227 } |
1286 | 1228 |
1287 void VertexAttrib3f(GLuint indx, GLfloat x, GLfloat y, GLfloat z) { | 1229 void GLES2Implementation::VertexAttrib3f( |
| 1230 GLuint indx, GLfloat x, GLfloat y, GLfloat z) { |
1288 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1231 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1289 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glVertexAttrib3f(" << indx << ", "
<< x << ", " << y << ", " << z << ")"); // NOLINT | 1232 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glVertexAttrib3f(" << indx << ", "
<< x << ", " << y << ", " << z << ")"); // NOLINT |
1290 helper_->VertexAttrib3f(indx, x, y, z); | 1233 helper_->VertexAttrib3f(indx, x, y, z); |
1291 } | 1234 } |
1292 | 1235 |
1293 void VertexAttrib3fv(GLuint indx, const GLfloat* values) { | 1236 void GLES2Implementation::VertexAttrib3fv(GLuint indx, const GLfloat* values) { |
1294 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1237 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1295 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glVertexAttrib3fv(" << indx << ", "
<< static_cast<const void*>(values) << ")"); // NOLINT | 1238 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glVertexAttrib3fv(" << indx << ", "
<< static_cast<const void*>(values) << ")"); // NOLINT |
1296 GPU_CLIENT_LOG("values: " << values[0] << ", " << values[1] << ", " << values[
2]); // NOLINT | 1239 GPU_CLIENT_LOG("values: " << values[0] << ", " << values[1] << ", " << values[
2]); // NOLINT |
1297 helper_->VertexAttrib3fvImmediate(indx, values); | 1240 helper_->VertexAttrib3fvImmediate(indx, values); |
1298 } | 1241 } |
1299 | 1242 |
1300 void VertexAttrib4f(GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w) { | 1243 void GLES2Implementation::VertexAttrib4f( |
| 1244 GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w) { |
1301 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1245 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1302 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glVertexAttrib4f(" << indx << ", "
<< x << ", " << y << ", " << z << ", " << w << ")"); // NOLINT | 1246 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glVertexAttrib4f(" << indx << ", "
<< x << ", " << y << ", " << z << ", " << w << ")"); // NOLINT |
1303 helper_->VertexAttrib4f(indx, x, y, z, w); | 1247 helper_->VertexAttrib4f(indx, x, y, z, w); |
1304 } | 1248 } |
1305 | 1249 |
1306 void VertexAttrib4fv(GLuint indx, const GLfloat* values) { | 1250 void GLES2Implementation::VertexAttrib4fv(GLuint indx, const GLfloat* values) { |
1307 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1251 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1308 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glVertexAttrib4fv(" << indx << ", "
<< static_cast<const void*>(values) << ")"); // NOLINT | 1252 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glVertexAttrib4fv(" << indx << ", "
<< static_cast<const void*>(values) << ")"); // NOLINT |
1309 GPU_CLIENT_LOG("values: " << values[0] << ", " << values[1] << ", " << values[
2] << ", " << values[3]); // NOLINT | 1253 GPU_CLIENT_LOG("values: " << values[0] << ", " << values[1] << ", " << values[
2] << ", " << values[3]); // NOLINT |
1310 helper_->VertexAttrib4fvImmediate(indx, values); | 1254 helper_->VertexAttrib4fvImmediate(indx, values); |
1311 } | 1255 } |
1312 | 1256 |
1313 void VertexAttribPointer( | 1257 void GLES2Implementation::Viewport( |
1314 GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, | 1258 GLint x, GLint y, GLsizei width, GLsizei height) { |
1315 const void* ptr); | |
1316 | |
1317 void Viewport(GLint x, GLint y, GLsizei width, GLsizei height) { | |
1318 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1259 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1319 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glViewport(" << x << ", " << y << "
, " << width << ", " << height << ")"); // NOLINT | 1260 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glViewport(" << x << ", " << y << "
, " << width << ", " << height << ")"); // NOLINT |
1320 if (width < 0) { | 1261 if (width < 0) { |
1321 SetGLError(GL_INVALID_VALUE, "glViewport", "width < 0"); | 1262 SetGLError(GL_INVALID_VALUE, "glViewport", "width < 0"); |
1322 return; | 1263 return; |
1323 } | 1264 } |
1324 if (height < 0) { | 1265 if (height < 0) { |
1325 SetGLError(GL_INVALID_VALUE, "glViewport", "height < 0"); | 1266 SetGLError(GL_INVALID_VALUE, "glViewport", "height < 0"); |
1326 return; | 1267 return; |
1327 } | 1268 } |
1328 helper_->Viewport(x, y, width, height); | 1269 helper_->Viewport(x, y, width, height); |
1329 } | 1270 } |
1330 | 1271 |
1331 void BlitFramebufferEXT( | 1272 void GLES2Implementation::BlitFramebufferEXT( |
1332 GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, | 1273 GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, |
1333 GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter) { | 1274 GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter) { |
1334 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1275 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1335 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glBlitFramebufferEXT(" << srcX0 <<
", " << srcY0 << ", " << srcX1 << ", " << srcY1 << ", " << dstX0 << ", " << dstY
0 << ", " << dstX1 << ", " << dstY1 << ", " << mask << ", " << GLES2Util::GetStr
ingBlitFilter(filter) << ")"); // NOLINT | 1276 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glBlitFramebufferEXT(" << srcX0 <<
", " << srcY0 << ", " << srcX1 << ", " << srcY1 << ", " << dstX0 << ", " << dstY
0 << ", " << dstX1 << ", " << dstY1 << ", " << mask << ", " << GLES2Util::GetStr
ingBlitFilter(filter) << ")"); // NOLINT |
1336 helper_->BlitFramebufferEXT( | 1277 helper_->BlitFramebufferEXT( |
1337 srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter); | 1278 srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter); |
1338 } | 1279 } |
1339 | 1280 |
1340 void RenderbufferStorageMultisampleEXT( | 1281 void GLES2Implementation::RenderbufferStorageMultisampleEXT( |
1341 GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, | 1282 GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, |
1342 GLsizei height) { | 1283 GLsizei height) { |
1343 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1284 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1344 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glRenderbufferStorageMultisampleEXT
(" << GLES2Util::GetStringRenderBufferTarget(target) << ", " << samples << ", "
<< GLES2Util::GetStringRenderBufferFormat(internalformat) << ", " << width << ",
" << height << ")"); // NOLINT | 1285 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glRenderbufferStorageMultisampleEXT
(" << GLES2Util::GetStringRenderBufferTarget(target) << ", " << samples << ", "
<< GLES2Util::GetStringRenderBufferFormat(internalformat) << ", " << width << ",
" << height << ")"); // NOLINT |
1345 if (samples < 0) { | 1286 if (samples < 0) { |
1346 SetGLError( | 1287 SetGLError( |
1347 GL_INVALID_VALUE, "glRenderbufferStorageMultisampleEXT", "samples < 0"); | 1288 GL_INVALID_VALUE, "glRenderbufferStorageMultisampleEXT", "samples < 0"); |
1348 return; | 1289 return; |
1349 } | 1290 } |
1350 if (width < 0) { | 1291 if (width < 0) { |
1351 SetGLError( | 1292 SetGLError( |
1352 GL_INVALID_VALUE, "glRenderbufferStorageMultisampleEXT", "width < 0"); | 1293 GL_INVALID_VALUE, "glRenderbufferStorageMultisampleEXT", "width < 0"); |
1353 return; | 1294 return; |
1354 } | 1295 } |
1355 if (height < 0) { | 1296 if (height < 0) { |
1356 SetGLError( | 1297 SetGLError( |
1357 GL_INVALID_VALUE, "glRenderbufferStorageMultisampleEXT", "height < 0"); | 1298 GL_INVALID_VALUE, "glRenderbufferStorageMultisampleEXT", "height < 0"); |
1358 return; | 1299 return; |
1359 } | 1300 } |
1360 helper_->RenderbufferStorageMultisampleEXT( | 1301 helper_->RenderbufferStorageMultisampleEXT( |
1361 target, samples, internalformat, width, height); | 1302 target, samples, internalformat, width, height); |
1362 } | 1303 } |
1363 | 1304 |
1364 void TexStorage2DEXT( | 1305 void GLES2Implementation::TexStorage2DEXT( |
1365 GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, | 1306 GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, |
1366 GLsizei height) { | 1307 GLsizei height) { |
1367 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1308 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1368 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glTexStorage2DEXT(" << GLES2Util::G
etStringTextureTarget(target) << ", " << levels << ", " << GLES2Util::GetStringT
extureInternalFormatStorage(internalFormat) << ", " << width << ", " << height <
< ")"); // NOLINT | 1309 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glTexStorage2DEXT(" << GLES2Util::G
etStringTextureTarget(target) << ", " << levels << ", " << GLES2Util::GetStringT
extureInternalFormatStorage(internalFormat) << ", " << width << ", " << height <
< ")"); // NOLINT |
1369 if (levels < 0) { | 1310 if (levels < 0) { |
1370 SetGLError(GL_INVALID_VALUE, "glTexStorage2DEXT", "levels < 0"); | 1311 SetGLError(GL_INVALID_VALUE, "glTexStorage2DEXT", "levels < 0"); |
1371 return; | 1312 return; |
1372 } | 1313 } |
1373 if (width < 0) { | 1314 if (width < 0) { |
1374 SetGLError(GL_INVALID_VALUE, "glTexStorage2DEXT", "width < 0"); | 1315 SetGLError(GL_INVALID_VALUE, "glTexStorage2DEXT", "width < 0"); |
1375 return; | 1316 return; |
1376 } | 1317 } |
1377 if (height < 0) { | 1318 if (height < 0) { |
1378 SetGLError(GL_INVALID_VALUE, "glTexStorage2DEXT", "height < 0"); | 1319 SetGLError(GL_INVALID_VALUE, "glTexStorage2DEXT", "height < 0"); |
1379 return; | 1320 return; |
1380 } | 1321 } |
1381 helper_->TexStorage2DEXT(target, levels, internalFormat, width, height); | 1322 helper_->TexStorage2DEXT(target, levels, internalFormat, width, height); |
1382 } | 1323 } |
1383 | 1324 |
1384 void GenQueriesEXT(GLsizei n, GLuint* queries) { | 1325 void GLES2Implementation::GenQueriesEXT(GLsizei n, GLuint* queries) { |
1385 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGenQueriesEXT(" << n << ", " << s
tatic_cast<const void*>(queries) << ")"); // NOLINT | 1326 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGenQueriesEXT(" << n << ", " << s
tatic_cast<const void*>(queries) << ")"); // NOLINT |
1386 if (n < 0) { | 1327 if (n < 0) { |
1387 SetGLError(GL_INVALID_VALUE, "glGenQueriesEXT", "n < 0"); | 1328 SetGLError(GL_INVALID_VALUE, "glGenQueriesEXT", "n < 0"); |
1388 return; | 1329 return; |
1389 } | 1330 } |
1390 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1331 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1391 GetIdHandler(id_namespaces::kQueries)-> | 1332 GetIdHandler(id_namespaces::kQueries)-> |
1392 MakeIds(this, 0, n, queries); | 1333 MakeIds(this, 0, n, queries); |
1393 helper_->GenQueriesEXTImmediate(n, queries); | 1334 helper_->GenQueriesEXTImmediate(n, queries); |
1394 GPU_CLIENT_LOG_CODE_BLOCK({ | 1335 GPU_CLIENT_LOG_CODE_BLOCK({ |
1395 for (GLsizei i = 0; i < n; ++i) { | 1336 for (GLsizei i = 0; i < n; ++i) { |
1396 GPU_CLIENT_LOG(" " << i << ": " << queries[i]); | 1337 GPU_CLIENT_LOG(" " << i << ": " << queries[i]); |
1397 } | 1338 } |
1398 }); | 1339 }); |
1399 } | 1340 } |
1400 | 1341 |
1401 void DeleteQueriesEXT(GLsizei n, const GLuint* queries) { | 1342 void GLES2Implementation::DeleteQueriesEXT(GLsizei n, const GLuint* queries) { |
1402 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1343 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1403 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glDeleteQueriesEXT(" << n << ", " <
< static_cast<const void*>(queries) << ")"); // NOLINT | 1344 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glDeleteQueriesEXT(" << n << ", " <
< static_cast<const void*>(queries) << ")"); // NOLINT |
1404 GPU_CLIENT_LOG_CODE_BLOCK({ | 1345 GPU_CLIENT_LOG_CODE_BLOCK({ |
1405 for (GLsizei i = 0; i < n; ++i) { | 1346 for (GLsizei i = 0; i < n; ++i) { |
1406 GPU_CLIENT_LOG(" " << i << ": " << queries[i]); | 1347 GPU_CLIENT_LOG(" " << i << ": " << queries[i]); |
1407 } | 1348 } |
1408 }); | 1349 }); |
1409 GPU_CLIENT_DCHECK_CODE_BLOCK({ | 1350 GPU_CLIENT_DCHECK_CODE_BLOCK({ |
1410 for (GLsizei i = 0; i < n; ++i) { | 1351 for (GLsizei i = 0; i < n; ++i) { |
1411 GPU_DCHECK(queries[i] != 0); | 1352 GPU_DCHECK(queries[i] != 0); |
1412 } | 1353 } |
1413 }); | 1354 }); |
1414 if (n < 0) { | 1355 if (n < 0) { |
1415 SetGLError(GL_INVALID_VALUE, "glDeleteQueriesEXT", "n < 0"); | 1356 SetGLError(GL_INVALID_VALUE, "glDeleteQueriesEXT", "n < 0"); |
1416 return; | 1357 return; |
1417 } | 1358 } |
1418 DeleteQueriesEXTHelper(n, queries); | 1359 DeleteQueriesEXTHelper(n, queries); |
1419 } | 1360 } |
1420 | 1361 |
1421 GLboolean IsQueryEXT(GLuint id); | 1362 void GLES2Implementation::GenVertexArraysOES(GLsizei n, GLuint* arrays) { |
1422 | |
1423 void BeginQueryEXT(GLenum target, GLuint id); | |
1424 | |
1425 void EndQueryEXT(GLenum target); | |
1426 | |
1427 void GetQueryivEXT(GLenum target, GLenum pname, GLint* params); | |
1428 | |
1429 void GetQueryObjectuivEXT(GLuint id, GLenum pname, GLuint* params); | |
1430 | |
1431 void InsertEventMarkerEXT(GLsizei length, const GLchar* marker); | |
1432 | |
1433 void PushGroupMarkerEXT(GLsizei length, const GLchar* marker); | |
1434 | |
1435 void PopGroupMarkerEXT(); | |
1436 | |
1437 void GenVertexArraysOES(GLsizei n, GLuint* arrays) { | |
1438 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGenVertexArraysOES(" << n << ", "
<< static_cast<const void*>(arrays) << ")"); // NOLINT | 1363 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glGenVertexArraysOES(" << n << ", "
<< static_cast<const void*>(arrays) << ")"); // NOLINT |
1439 if (n < 0) { | 1364 if (n < 0) { |
1440 SetGLError(GL_INVALID_VALUE, "glGenVertexArraysOES", "n < 0"); | 1365 SetGLError(GL_INVALID_VALUE, "glGenVertexArraysOES", "n < 0"); |
1441 return; | 1366 return; |
1442 } | 1367 } |
1443 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1368 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1444 GetIdHandler(id_namespaces::kVertexArrays)-> | 1369 GetIdHandler(id_namespaces::kVertexArrays)-> |
1445 MakeIds(this, 0, n, arrays); | 1370 MakeIds(this, 0, n, arrays); |
1446 helper_->GenVertexArraysOESImmediate(n, arrays); | 1371 helper_->GenVertexArraysOESImmediate(n, arrays); |
1447 GPU_CLIENT_LOG_CODE_BLOCK({ | 1372 GPU_CLIENT_LOG_CODE_BLOCK({ |
1448 for (GLsizei i = 0; i < n; ++i) { | 1373 for (GLsizei i = 0; i < n; ++i) { |
1449 GPU_CLIENT_LOG(" " << i << ": " << arrays[i]); | 1374 GPU_CLIENT_LOG(" " << i << ": " << arrays[i]); |
1450 } | 1375 } |
1451 }); | 1376 }); |
1452 } | 1377 } |
1453 | 1378 |
1454 void DeleteVertexArraysOES(GLsizei n, const GLuint* arrays) { | 1379 void GLES2Implementation::DeleteVertexArraysOES( |
| 1380 GLsizei n, const GLuint* arrays) { |
1455 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1381 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1456 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glDeleteVertexArraysOES(" << n << "
, " << static_cast<const void*>(arrays) << ")"); // NOLINT | 1382 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glDeleteVertexArraysOES(" << n << "
, " << static_cast<const void*>(arrays) << ")"); // NOLINT |
1457 GPU_CLIENT_LOG_CODE_BLOCK({ | 1383 GPU_CLIENT_LOG_CODE_BLOCK({ |
1458 for (GLsizei i = 0; i < n; ++i) { | 1384 for (GLsizei i = 0; i < n; ++i) { |
1459 GPU_CLIENT_LOG(" " << i << ": " << arrays[i]); | 1385 GPU_CLIENT_LOG(" " << i << ": " << arrays[i]); |
1460 } | 1386 } |
1461 }); | 1387 }); |
1462 GPU_CLIENT_DCHECK_CODE_BLOCK({ | 1388 GPU_CLIENT_DCHECK_CODE_BLOCK({ |
1463 for (GLsizei i = 0; i < n; ++i) { | 1389 for (GLsizei i = 0; i < n; ++i) { |
1464 GPU_DCHECK(arrays[i] != 0); | 1390 GPU_DCHECK(arrays[i] != 0); |
1465 } | 1391 } |
1466 }); | 1392 }); |
1467 if (n < 0) { | 1393 if (n < 0) { |
1468 SetGLError(GL_INVALID_VALUE, "glDeleteVertexArraysOES", "n < 0"); | 1394 SetGLError(GL_INVALID_VALUE, "glDeleteVertexArraysOES", "n < 0"); |
1469 return; | 1395 return; |
1470 } | 1396 } |
1471 DeleteVertexArraysOESHelper(n, arrays); | 1397 DeleteVertexArraysOESHelper(n, arrays); |
1472 } | 1398 } |
1473 | 1399 |
1474 GLboolean IsVertexArrayOES(GLuint array) { | 1400 GLboolean GLES2Implementation::IsVertexArrayOES(GLuint array) { |
1475 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1401 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1476 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glIsVertexArrayOES(" << array << ")
"); // NOLINT | 1402 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glIsVertexArrayOES(" << array << ")
"); // NOLINT |
1477 typedef IsVertexArrayOES::Result Result; | 1403 typedef IsVertexArrayOES::Result Result; |
1478 Result* result = GetResultAs<Result*>(); | 1404 Result* result = GetResultAs<Result*>(); |
1479 if (!result) { | 1405 if (!result) { |
1480 return GL_FALSE; | 1406 return GL_FALSE; |
1481 } | 1407 } |
1482 *result = 0; | 1408 *result = 0; |
1483 helper_->IsVertexArrayOES(array, GetResultShmId(), GetResultShmOffset()); | 1409 helper_->IsVertexArrayOES(array, GetResultShmId(), GetResultShmOffset()); |
1484 WaitForCmd(); | 1410 WaitForCmd(); |
1485 GPU_CLIENT_LOG("returned " << *result); | 1411 GPU_CLIENT_LOG("returned " << *result); |
1486 return *result; | 1412 return *result; |
1487 } | 1413 } |
1488 | 1414 |
1489 void BindVertexArrayOES(GLuint array) { | 1415 void GLES2Implementation::BindVertexArrayOES(GLuint array) { |
1490 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1416 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1491 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glBindVertexArrayOES(" << array <<
")"); // NOLINT | 1417 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glBindVertexArrayOES(" << array <<
")"); // NOLINT |
1492 if (IsVertexArrayReservedId(array)) { | 1418 if (IsVertexArrayReservedId(array)) { |
1493 SetGLError( | 1419 SetGLError( |
1494 GL_INVALID_OPERATION, "BindVertexArrayOES", "array reserved id"); | 1420 GL_INVALID_OPERATION, "BindVertexArrayOES", "array reserved id"); |
1495 return; | 1421 return; |
1496 } | 1422 } |
1497 BindVertexArrayHelper(array); | 1423 BindVertexArrayHelper(array); |
1498 helper_->BindVertexArrayOES(array); | 1424 helper_->BindVertexArrayOES(array); |
1499 } | 1425 } |
1500 | 1426 |
1501 void SwapBuffers(); | 1427 void GLES2Implementation::GetTranslatedShaderSourceANGLE( |
1502 | |
1503 GLuint GetMaxValueInBufferCHROMIUM( | |
1504 GLuint buffer_id, GLsizei count, GLenum type, GLuint offset); | |
1505 | |
1506 void GenSharedIdsCHROMIUM( | |
1507 GLuint namespace_id, GLuint id_offset, GLsizei n, GLuint* ids); | |
1508 | |
1509 void DeleteSharedIdsCHROMIUM( | |
1510 GLuint namespace_id, GLsizei n, const GLuint* ids); | |
1511 | |
1512 void RegisterSharedIdsCHROMIUM( | |
1513 GLuint namespace_id, GLsizei n, const GLuint* ids); | |
1514 | |
1515 GLboolean EnableFeatureCHROMIUM(const char* feature); | |
1516 | |
1517 void* MapBufferSubDataCHROMIUM( | |
1518 GLuint target, GLintptr offset, GLsizeiptr size, GLenum access); | |
1519 | |
1520 void UnmapBufferSubDataCHROMIUM(const void* mem); | |
1521 | |
1522 void* MapTexSubImage2DCHROMIUM( | |
1523 GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, | |
1524 GLsizei height, GLenum format, GLenum type, GLenum access); | |
1525 | |
1526 void UnmapTexSubImage2DCHROMIUM(const void* mem); | |
1527 | |
1528 void ResizeCHROMIUM(GLuint width, GLuint height); | |
1529 | |
1530 const GLchar* GetRequestableExtensionsCHROMIUM(); | |
1531 | |
1532 void RequestExtensionCHROMIUM(const char* extension); | |
1533 | |
1534 void RateLimitOffscreenContextCHROMIUM(); | |
1535 | |
1536 void GetMultipleIntegervCHROMIUM( | |
1537 const GLenum* pnames, GLuint count, GLint* results, GLsizeiptr size); | |
1538 | |
1539 void GetProgramInfoCHROMIUM( | |
1540 GLuint program, GLsizei bufsize, GLsizei* size, void* info); | |
1541 | |
1542 GLuint CreateStreamTextureCHROMIUM(GLuint texture); | |
1543 | |
1544 void DestroyStreamTextureCHROMIUM(GLuint texture); | |
1545 | |
1546 void GetTranslatedShaderSourceANGLE( | |
1547 GLuint shader, GLsizei bufsize, GLsizei* length, char* source) { | 1428 GLuint shader, GLsizei bufsize, GLsizei* length, char* source) { |
1548 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1429 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1549 GPU_CLIENT_VALIDATE_DESTINATION_OPTIONAL_INITALIZATION(GLsizei, length); | 1430 GPU_CLIENT_VALIDATE_DESTINATION_OPTIONAL_INITALIZATION(GLsizei, length); |
1550 GPU_CLIENT_LOG("[" << GetLogPrefix() | 1431 GPU_CLIENT_LOG("[" << GetLogPrefix() |
1551 << "] glGetTranslatedShaderSourceANGLE" << "(" | 1432 << "] glGetTranslatedShaderSourceANGLE" << "(" |
1552 << shader << ", " | 1433 << shader << ", " |
1553 << bufsize << ", " | 1434 << bufsize << ", " |
1554 << static_cast<void*>(length) << ", " | 1435 << static_cast<void*>(length) << ", " |
1555 << static_cast<void*>(source) << ")"); | 1436 << static_cast<void*>(source) << ")"); |
1556 helper_->SetBucketSize(kResultBucketId, 0); | 1437 helper_->SetBucketSize(kResultBucketId, 0); |
1557 helper_->GetTranslatedShaderSourceANGLE(shader, kResultBucketId); | 1438 helper_->GetTranslatedShaderSourceANGLE(shader, kResultBucketId); |
1558 std::string str; | 1439 std::string str; |
1559 GLsizei max_size = 0; | 1440 GLsizei max_size = 0; |
1560 if (GetBucketAsString(kResultBucketId, &str)) { | 1441 if (GetBucketAsString(kResultBucketId, &str)) { |
1561 if (bufsize > 0) { | 1442 if (bufsize > 0) { |
1562 max_size = | 1443 max_size = |
1563 std::min(static_cast<size_t>(bufsize) - 1, str.size()); | 1444 std::min(static_cast<size_t>(bufsize) - 1, str.size()); |
1564 memcpy(source, str.c_str(), max_size); | 1445 memcpy(source, str.c_str(), max_size); |
1565 source[max_size] = '\0'; | 1446 source[max_size] = '\0'; |
1566 GPU_CLIENT_LOG("------\n" << source << "\n------"); | 1447 GPU_CLIENT_LOG("------\n" << source << "\n------"); |
1567 } | 1448 } |
1568 } | 1449 } |
1569 if (length != NULL) { | 1450 if (length != NULL) { |
1570 *length = max_size; | 1451 *length = max_size; |
1571 } | 1452 } |
1572 } | 1453 } |
1573 void PostSubBufferCHROMIUM(GLint x, GLint y, GLint width, GLint height); | 1454 void GLES2Implementation::TexImageIOSurface2DCHROMIUM( |
1574 | |
1575 void TexImageIOSurface2DCHROMIUM( | |
1576 GLenum target, GLsizei width, GLsizei height, GLuint ioSurfaceId, | 1455 GLenum target, GLsizei width, GLsizei height, GLuint ioSurfaceId, |
1577 GLuint plane) { | 1456 GLuint plane) { |
1578 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1457 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1579 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glTexImageIOSurface2DCHROMIUM(" <<
GLES2Util::GetStringTextureBindTarget(target) << ", " << width << ", " << height
<< ", " << ioSurfaceId << ", " << plane << ")"); // NOLINT | 1458 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glTexImageIOSurface2DCHROMIUM(" <<
GLES2Util::GetStringTextureBindTarget(target) << ", " << width << ", " << height
<< ", " << ioSurfaceId << ", " << plane << ")"); // NOLINT |
1580 if (width < 0) { | 1459 if (width < 0) { |
1581 SetGLError(GL_INVALID_VALUE, "glTexImageIOSurface2DCHROMIUM", "width < 0"); | 1460 SetGLError(GL_INVALID_VALUE, "glTexImageIOSurface2DCHROMIUM", "width < 0"); |
1582 return; | 1461 return; |
1583 } | 1462 } |
1584 if (height < 0) { | 1463 if (height < 0) { |
1585 SetGLError( | 1464 SetGLError( |
1586 GL_INVALID_VALUE, "glTexImageIOSurface2DCHROMIUM", "height < 0"); | 1465 GL_INVALID_VALUE, "glTexImageIOSurface2DCHROMIUM", "height < 0"); |
1587 return; | 1466 return; |
1588 } | 1467 } |
1589 helper_->TexImageIOSurface2DCHROMIUM( | 1468 helper_->TexImageIOSurface2DCHROMIUM( |
1590 target, width, height, ioSurfaceId, plane); | 1469 target, width, height, ioSurfaceId, plane); |
1591 } | 1470 } |
1592 | 1471 |
1593 void CopyTextureCHROMIUM( | 1472 void GLES2Implementation::CopyTextureCHROMIUM( |
1594 GLenum target, GLenum source_id, GLenum dest_id, GLint level, | 1473 GLenum target, GLenum source_id, GLenum dest_id, GLint level, |
1595 GLint internalformat) { | 1474 GLint internalformat) { |
1596 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1475 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1597 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glCopyTextureCHROMIUM(" << GLES2Uti
l::GetStringEnum(target) << ", " << GLES2Util::GetStringEnum(source_id) << ", "
<< GLES2Util::GetStringEnum(dest_id) << ", " << level << ", " << internalformat
<< ")"); // NOLINT | 1476 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glCopyTextureCHROMIUM(" << GLES2Uti
l::GetStringEnum(target) << ", " << GLES2Util::GetStringEnum(source_id) << ", "
<< GLES2Util::GetStringEnum(dest_id) << ", " << level << ", " << internalformat
<< ")"); // NOLINT |
1598 helper_->CopyTextureCHROMIUM( | 1477 helper_->CopyTextureCHROMIUM( |
1599 target, source_id, dest_id, level, internalformat); | 1478 target, source_id, dest_id, level, internalformat); |
1600 } | 1479 } |
1601 | 1480 |
1602 void DrawArraysInstancedANGLE( | 1481 void GLES2Implementation::ProduceTextureCHROMIUM( |
1603 GLenum mode, GLint first, GLsizei count, GLsizei primcount); | 1482 GLenum target, const GLbyte* mailbox) { |
1604 | |
1605 void DrawElementsInstancedANGLE( | |
1606 GLenum mode, GLsizei count, GLenum type, const void* indices, | |
1607 GLsizei primcount); | |
1608 | |
1609 void VertexAttribDivisorANGLE(GLuint index, GLuint divisor); | |
1610 | |
1611 void GenMailboxCHROMIUM(GLbyte* mailbox); | |
1612 | |
1613 void ProduceTextureCHROMIUM(GLenum target, const GLbyte* mailbox) { | |
1614 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1483 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1615 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glProduceTextureCHROMIUM(" << GLES2
Util::GetStringTextureTarget(target) << ", " << static_cast<const void*>(mailbox
) << ")"); // NOLINT | 1484 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glProduceTextureCHROMIUM(" << GLES2
Util::GetStringTextureTarget(target) << ", " << static_cast<const void*>(mailbox
) << ")"); // NOLINT |
1616 GPU_CLIENT_LOG("values: " << mailbox[0] << ", " << mailbox[1] << ", " << mailb
ox[2] << ", " << mailbox[3] << ", " << mailbox[4] << ", " << mailbox[5] << ", "
<< mailbox[6] << ", " << mailbox[7] << ", " << mailbox[8] << ", " << mailbox[9]
<< ", " << mailbox[10] << ", " << mailbox[11] << ", " << mailbox[12] << ", " <<
mailbox[13] << ", " << mailbox[14] << ", " << mailbox[15] << ", " << mailbox[16]
<< ", " << mailbox[17] << ", " << mailbox[18] << ", " << mailbox[19] << ", " <<
mailbox[20] << ", " << mailbox[21] << ", " << mailbox[22] << ", " << mailbox[23
] << ", " << mailbox[24] << ", " << mailbox[25] << ", " << mailbox[26] << ", " <
< mailbox[27] << ", " << mailbox[28] << ", " << mailbox[29] << ", " << mailbox[3
0] << ", " << mailbox[31] << ", " << mailbox[32] << ", " << mailbox[33] << ", "
<< mailbox[34] << ", " << mailbox[35] << ", " << mailbox[36] << ", " << mailbox[
37] << ", " << mailbox[38] << ", " << mailbox[39] << ", " << mailbox[40] << ", "
<< mailbox[41] << ", " << mailbox[42] << ", " << mailbox[43] << ", " << mailbox
[44] << ", " << mailbox[45] << ", " << mailbox[46] << ", " << mailbox[47] << ",
" << mailbox[48] << ", " << mailbox[49] << ", " << mailbox[50] << ", " << mailbo
x[51] << ", " << mailbox[52] << ", " << mailbox[53] << ", " << mailbox[54] << ",
" << mailbox[55] << ", " << mailbox[56] << ", " << mailbox[57] << ", " << mailb
ox[58] << ", " << mailbox[59] << ", " << mailbox[60] << ", " << mailbox[61] << "
, " << mailbox[62] << ", " << mailbox[63]); // NOLINT | 1485 GPU_CLIENT_LOG("values: " << mailbox[0] << ", " << mailbox[1] << ", " << mailb
ox[2] << ", " << mailbox[3] << ", " << mailbox[4] << ", " << mailbox[5] << ", "
<< mailbox[6] << ", " << mailbox[7] << ", " << mailbox[8] << ", " << mailbox[9]
<< ", " << mailbox[10] << ", " << mailbox[11] << ", " << mailbox[12] << ", " <<
mailbox[13] << ", " << mailbox[14] << ", " << mailbox[15] << ", " << mailbox[16]
<< ", " << mailbox[17] << ", " << mailbox[18] << ", " << mailbox[19] << ", " <<
mailbox[20] << ", " << mailbox[21] << ", " << mailbox[22] << ", " << mailbox[23
] << ", " << mailbox[24] << ", " << mailbox[25] << ", " << mailbox[26] << ", " <
< mailbox[27] << ", " << mailbox[28] << ", " << mailbox[29] << ", " << mailbox[3
0] << ", " << mailbox[31] << ", " << mailbox[32] << ", " << mailbox[33] << ", "
<< mailbox[34] << ", " << mailbox[35] << ", " << mailbox[36] << ", " << mailbox[
37] << ", " << mailbox[38] << ", " << mailbox[39] << ", " << mailbox[40] << ", "
<< mailbox[41] << ", " << mailbox[42] << ", " << mailbox[43] << ", " << mailbox
[44] << ", " << mailbox[45] << ", " << mailbox[46] << ", " << mailbox[47] << ",
" << mailbox[48] << ", " << mailbox[49] << ", " << mailbox[50] << ", " << mailbo
x[51] << ", " << mailbox[52] << ", " << mailbox[53] << ", " << mailbox[54] << ",
" << mailbox[55] << ", " << mailbox[56] << ", " << mailbox[57] << ", " << mailb
ox[58] << ", " << mailbox[59] << ", " << mailbox[60] << ", " << mailbox[61] << "
, " << mailbox[62] << ", " << mailbox[63]); // NOLINT |
1617 helper_->ProduceTextureCHROMIUMImmediate(target, mailbox); | 1486 helper_->ProduceTextureCHROMIUMImmediate(target, mailbox); |
1618 } | 1487 } |
1619 | 1488 |
1620 void ConsumeTextureCHROMIUM(GLenum target, const GLbyte* mailbox) { | 1489 void GLES2Implementation::ConsumeTextureCHROMIUM( |
| 1490 GLenum target, const GLbyte* mailbox) { |
1621 GPU_CLIENT_SINGLE_THREAD_CHECK(); | 1491 GPU_CLIENT_SINGLE_THREAD_CHECK(); |
1622 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glConsumeTextureCHROMIUM(" << GLES2
Util::GetStringTextureTarget(target) << ", " << static_cast<const void*>(mailbox
) << ")"); // NOLINT | 1492 GPU_CLIENT_LOG("[" << GetLogPrefix() << "] glConsumeTextureCHROMIUM(" << GLES2
Util::GetStringTextureTarget(target) << ", " << static_cast<const void*>(mailbox
) << ")"); // NOLINT |
1623 GPU_CLIENT_LOG("values: " << mailbox[0] << ", " << mailbox[1] << ", " << mailb
ox[2] << ", " << mailbox[3] << ", " << mailbox[4] << ", " << mailbox[5] << ", "
<< mailbox[6] << ", " << mailbox[7] << ", " << mailbox[8] << ", " << mailbox[9]
<< ", " << mailbox[10] << ", " << mailbox[11] << ", " << mailbox[12] << ", " <<
mailbox[13] << ", " << mailbox[14] << ", " << mailbox[15] << ", " << mailbox[16]
<< ", " << mailbox[17] << ", " << mailbox[18] << ", " << mailbox[19] << ", " <<
mailbox[20] << ", " << mailbox[21] << ", " << mailbox[22] << ", " << mailbox[23
] << ", " << mailbox[24] << ", " << mailbox[25] << ", " << mailbox[26] << ", " <
< mailbox[27] << ", " << mailbox[28] << ", " << mailbox[29] << ", " << mailbox[3
0] << ", " << mailbox[31] << ", " << mailbox[32] << ", " << mailbox[33] << ", "
<< mailbox[34] << ", " << mailbox[35] << ", " << mailbox[36] << ", " << mailbox[
37] << ", " << mailbox[38] << ", " << mailbox[39] << ", " << mailbox[40] << ", "
<< mailbox[41] << ", " << mailbox[42] << ", " << mailbox[43] << ", " << mailbox
[44] << ", " << mailbox[45] << ", " << mailbox[46] << ", " << mailbox[47] << ",
" << mailbox[48] << ", " << mailbox[49] << ", " << mailbox[50] << ", " << mailbo
x[51] << ", " << mailbox[52] << ", " << mailbox[53] << ", " << mailbox[54] << ",
" << mailbox[55] << ", " << mailbox[56] << ", " << mailbox[57] << ", " << mailb
ox[58] << ", " << mailbox[59] << ", " << mailbox[60] << ", " << mailbox[61] << "
, " << mailbox[62] << ", " << mailbox[63]); // NOLINT | 1493 GPU_CLIENT_LOG("values: " << mailbox[0] << ", " << mailbox[1] << ", " << mailb
ox[2] << ", " << mailbox[3] << ", " << mailbox[4] << ", " << mailbox[5] << ", "
<< mailbox[6] << ", " << mailbox[7] << ", " << mailbox[8] << ", " << mailbox[9]
<< ", " << mailbox[10] << ", " << mailbox[11] << ", " << mailbox[12] << ", " <<
mailbox[13] << ", " << mailbox[14] << ", " << mailbox[15] << ", " << mailbox[16]
<< ", " << mailbox[17] << ", " << mailbox[18] << ", " << mailbox[19] << ", " <<
mailbox[20] << ", " << mailbox[21] << ", " << mailbox[22] << ", " << mailbox[23
] << ", " << mailbox[24] << ", " << mailbox[25] << ", " << mailbox[26] << ", " <
< mailbox[27] << ", " << mailbox[28] << ", " << mailbox[29] << ", " << mailbox[3
0] << ", " << mailbox[31] << ", " << mailbox[32] << ", " << mailbox[33] << ", "
<< mailbox[34] << ", " << mailbox[35] << ", " << mailbox[36] << ", " << mailbox[
37] << ", " << mailbox[38] << ", " << mailbox[39] << ", " << mailbox[40] << ", "
<< mailbox[41] << ", " << mailbox[42] << ", " << mailbox[43] << ", " << mailbox
[44] << ", " << mailbox[45] << ", " << mailbox[46] << ", " << mailbox[47] << ",
" << mailbox[48] << ", " << mailbox[49] << ", " << mailbox[50] << ", " << mailbo
x[51] << ", " << mailbox[52] << ", " << mailbox[53] << ", " << mailbox[54] << ",
" << mailbox[55] << ", " << mailbox[56] << ", " << mailbox[57] << ", " << mailb
ox[58] << ", " << mailbox[59] << ", " << mailbox[60] << ", " << mailbox[61] << "
, " << mailbox[62] << ", " << mailbox[63]); // NOLINT |
1624 helper_->ConsumeTextureCHROMIUMImmediate(target, mailbox); | 1494 helper_->ConsumeTextureCHROMIUMImmediate(target, mailbox); |
1625 } | 1495 } |
1626 | 1496 |
1627 void BindUniformLocationCHROMIUM( | 1497 #endif // GPU_COMMAND_BUFFER_CLIENT_GLES2_IMPLEMENTATION_IMPL_AUTOGEN_H_ |
1628 GLuint program, GLint location, const char* name); | |
1629 | 1498 |
1630 #endif // GPU_COMMAND_BUFFER_CLIENT_GLES2_IMPLEMENTATION_AUTOGEN_H_ | |
1631 | |
OLD | NEW |