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

Side by Side Diff: gpu/command_buffer/service/gles2_cmd_decoder_autogen.h

Issue 761903003: Update from https://crrev.com/306655 (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // 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 // It's formatted by clang-format using chromium coding style: 7 // It's formatted by clang-format using chromium coding style:
8 // clang-format -i -style=chromium filename 8 // clang-format -i -style=chromium filename
9 // DO NOT EDIT! 9 // DO NOT EDIT!
10 10
(...skipping 398 matching lines...) Expand 10 before | Expand all | Expand 10 after
409 return error::kNoError; 409 return error::kNoError;
410 } 410 }
411 if (data == NULL) { 411 if (data == NULL) {
412 return error::kOutOfBounds; 412 return error::kOutOfBounds;
413 } 413 }
414 DoCompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, 414 DoCompressedTexSubImage2D(target, level, xoffset, yoffset, width, height,
415 format, imageSize, data); 415 format, imageSize, data);
416 return error::kNoError; 416 return error::kNoError;
417 } 417 }
418 418
419 error::Error GLES2DecoderImpl::HandleCopyBufferSubData(
420 uint32_t immediate_data_size,
421 const void* cmd_data) {
422 if (!unsafe_es3_apis_enabled())
423 return error::kUnknownCommand;
424 const gles2::cmds::CopyBufferSubData& c =
425 *static_cast<const gles2::cmds::CopyBufferSubData*>(cmd_data);
426 (void)c;
427 GLenum readtarget = static_cast<GLenum>(c.readtarget);
428 GLenum writetarget = static_cast<GLenum>(c.writetarget);
429 GLintptr readoffset = static_cast<GLintptr>(c.readoffset);
430 GLintptr writeoffset = static_cast<GLintptr>(c.writeoffset);
431 GLsizeiptr size = static_cast<GLsizeiptr>(c.size);
432 if (size < 0) {
433 LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glCopyBufferSubData", "size < 0");
434 return error::kNoError;
435 }
436 glCopyBufferSubData(readtarget, writetarget, readoffset, writeoffset, size);
437 return error::kNoError;
438 }
439
419 error::Error GLES2DecoderImpl::HandleCopyTexImage2D( 440 error::Error GLES2DecoderImpl::HandleCopyTexImage2D(
420 uint32_t immediate_data_size, 441 uint32_t immediate_data_size,
421 const void* cmd_data) { 442 const void* cmd_data) {
422 const gles2::cmds::CopyTexImage2D& c = 443 const gles2::cmds::CopyTexImage2D& c =
423 *static_cast<const gles2::cmds::CopyTexImage2D*>(cmd_data); 444 *static_cast<const gles2::cmds::CopyTexImage2D*>(cmd_data);
424 (void)c; 445 (void)c;
425 error::Error error; 446 error::Error error;
426 error = WillAccessBoundFramebufferForRead(); 447 error = WillAccessBoundFramebufferForRead();
427 if (error != error::kNoError) 448 if (error != error::kNoError)
428 return error; 449 return error;
(...skipping 362 matching lines...) Expand 10 before | Expand all | Expand 10 after
791 } 812 }
792 if (!validators_->texture_target.IsValid(textarget)) { 813 if (!validators_->texture_target.IsValid(textarget)) {
793 LOCAL_SET_GL_ERROR_INVALID_ENUM("glFramebufferTexture2D", textarget, 814 LOCAL_SET_GL_ERROR_INVALID_ENUM("glFramebufferTexture2D", textarget,
794 "textarget"); 815 "textarget");
795 return error::kNoError; 816 return error::kNoError;
796 } 817 }
797 DoFramebufferTexture2D(target, attachment, textarget, texture, level); 818 DoFramebufferTexture2D(target, attachment, textarget, texture, level);
798 return error::kNoError; 819 return error::kNoError;
799 } 820 }
800 821
822 error::Error GLES2DecoderImpl::HandleFramebufferTextureLayer(
823 uint32_t immediate_data_size,
824 const void* cmd_data) {
825 if (!unsafe_es3_apis_enabled())
826 return error::kUnknownCommand;
827 const gles2::cmds::FramebufferTextureLayer& c =
828 *static_cast<const gles2::cmds::FramebufferTextureLayer*>(cmd_data);
829 (void)c;
830 GLenum target = static_cast<GLenum>(c.target);
831 GLenum attachment = static_cast<GLenum>(c.attachment);
832 GLuint texture = c.texture;
833 GLint level = static_cast<GLint>(c.level);
834 GLint layer = static_cast<GLint>(c.layer);
835 DoFramebufferTextureLayer(target, attachment, texture, level, layer);
836 return error::kNoError;
837 }
838
801 error::Error GLES2DecoderImpl::HandleFrontFace(uint32_t immediate_data_size, 839 error::Error GLES2DecoderImpl::HandleFrontFace(uint32_t immediate_data_size,
802 const void* cmd_data) { 840 const void* cmd_data) {
803 const gles2::cmds::FrontFace& c = 841 const gles2::cmds::FrontFace& c =
804 *static_cast<const gles2::cmds::FrontFace*>(cmd_data); 842 *static_cast<const gles2::cmds::FrontFace*>(cmd_data);
805 (void)c; 843 (void)c;
806 GLenum mode = static_cast<GLenum>(c.mode); 844 GLenum mode = static_cast<GLenum>(c.mode);
807 if (!validators_->face_mode.IsValid(mode)) { 845 if (!validators_->face_mode.IsValid(mode)) {
808 LOCAL_SET_GL_ERROR_INVALID_ENUM("glFrontFace", mode, "mode"); 846 LOCAL_SET_GL_ERROR_INVALID_ENUM("glFrontFace", mode, "mode");
809 return error::kNoError; 847 return error::kNoError;
810 } 848 }
(...skipping 299 matching lines...) Expand 10 before | Expand all | Expand 10 after
1110 DoGetIntegerv(pname, params); 1148 DoGetIntegerv(pname, params);
1111 GLenum error = glGetError(); 1149 GLenum error = glGetError();
1112 if (error == GL_NO_ERROR) { 1150 if (error == GL_NO_ERROR) {
1113 result->SetNumResults(num_values); 1151 result->SetNumResults(num_values);
1114 } else { 1152 } else {
1115 LOCAL_SET_GL_ERROR(error, "GetIntegerv", ""); 1153 LOCAL_SET_GL_ERROR(error, "GetIntegerv", "");
1116 } 1154 }
1117 return error::kNoError; 1155 return error::kNoError;
1118 } 1156 }
1119 1157
1158 error::Error GLES2DecoderImpl::HandleGetInternalformativ(
1159 uint32_t immediate_data_size,
1160 const void* cmd_data) {
1161 if (!unsafe_es3_apis_enabled())
1162 return error::kUnknownCommand;
1163 const gles2::cmds::GetInternalformativ& c =
1164 *static_cast<const gles2::cmds::GetInternalformativ*>(cmd_data);
1165 (void)c;
1166 GLenum target = static_cast<GLenum>(c.target);
1167 GLenum format = static_cast<GLenum>(c.format);
1168 GLenum pname = static_cast<GLenum>(c.pname);
1169 GLsizei bufSize = static_cast<GLsizei>(c.bufSize);
1170 typedef cmds::GetInternalformativ::Result Result;
1171 GLsizei num_values = 0;
1172 GetNumValuesReturnedForGLGet(pname, &num_values);
1173 Result* result = GetSharedMemoryAs<Result*>(
1174 c.params_shm_id, c.params_shm_offset, Result::ComputeSize(num_values));
1175 GLint* params = result ? result->GetData() : NULL;
1176 if (bufSize < 0) {
1177 LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glGetInternalformativ",
1178 "bufSize < 0");
1179 return error::kNoError;
1180 }
1181 if (params == NULL) {
1182 return error::kOutOfBounds;
1183 }
1184 LOCAL_COPY_REAL_GL_ERRORS_TO_WRAPPER("GetInternalformativ");
1185 // Check that the client initialized the result.
1186 if (result->size != 0) {
1187 return error::kInvalidArguments;
1188 }
1189 glGetInternalformativ(target, format, pname, bufSize, params);
1190 GLenum error = glGetError();
1191 if (error == GL_NO_ERROR) {
1192 result->SetNumResults(num_values);
1193 } else {
1194 LOCAL_SET_GL_ERROR(error, "GetInternalformativ", "");
1195 }
1196 return error::kNoError;
1197 }
1198
1120 error::Error GLES2DecoderImpl::HandleGetProgramiv(uint32_t immediate_data_size, 1199 error::Error GLES2DecoderImpl::HandleGetProgramiv(uint32_t immediate_data_size,
1121 const void* cmd_data) { 1200 const void* cmd_data) {
1122 const gles2::cmds::GetProgramiv& c = 1201 const gles2::cmds::GetProgramiv& c =
1123 *static_cast<const gles2::cmds::GetProgramiv*>(cmd_data); 1202 *static_cast<const gles2::cmds::GetProgramiv*>(cmd_data);
1124 (void)c; 1203 (void)c;
1125 GLuint program = c.program; 1204 GLuint program = c.program;
1126 GLenum pname = static_cast<GLenum>(c.pname); 1205 GLenum pname = static_cast<GLenum>(c.pname);
1127 typedef cmds::GetProgramiv::Result Result; 1206 typedef cmds::GetProgramiv::Result Result;
1128 GLsizei num_values = 0; 1207 GLsizei num_values = 0;
1129 GetNumValuesReturnedForGLGet(pname, &num_values); 1208 GetNumValuesReturnedForGLGet(pname, &num_values);
(...skipping 829 matching lines...) Expand 10 before | Expand all | Expand 10 after
1959 LOCAL_SET_GL_ERROR_INVALID_ENUM("glTexParameteriv", pname, "pname"); 2038 LOCAL_SET_GL_ERROR_INVALID_ENUM("glTexParameteriv", pname, "pname");
1960 return error::kNoError; 2039 return error::kNoError;
1961 } 2040 }
1962 if (params == NULL) { 2041 if (params == NULL) {
1963 return error::kOutOfBounds; 2042 return error::kOutOfBounds;
1964 } 2043 }
1965 DoTexParameteriv(target, pname, params); 2044 DoTexParameteriv(target, pname, params);
1966 return error::kNoError; 2045 return error::kNoError;
1967 } 2046 }
1968 2047
2048 error::Error GLES2DecoderImpl::HandleTexStorage3D(uint32_t immediate_data_size,
2049 const void* cmd_data) {
2050 if (!unsafe_es3_apis_enabled())
2051 return error::kUnknownCommand;
2052 const gles2::cmds::TexStorage3D& c =
2053 *static_cast<const gles2::cmds::TexStorage3D*>(cmd_data);
2054 (void)c;
2055 GLenum target = static_cast<GLenum>(c.target);
2056 GLsizei levels = static_cast<GLsizei>(c.levels);
2057 GLenum internalFormat = static_cast<GLenum>(c.internalFormat);
2058 GLsizei width = static_cast<GLsizei>(c.width);
2059 GLsizei height = static_cast<GLsizei>(c.height);
2060 GLsizei depth = static_cast<GLsizei>(c.depth);
2061 if (levels < 0) {
2062 LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glTexStorage3D", "levels < 0");
2063 return error::kNoError;
2064 }
2065 if (width < 0) {
2066 LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glTexStorage3D", "width < 0");
2067 return error::kNoError;
2068 }
2069 if (height < 0) {
2070 LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glTexStorage3D", "height < 0");
2071 return error::kNoError;
2072 }
2073 if (depth < 0) {
2074 LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glTexStorage3D", "depth < 0");
2075 return error::kNoError;
2076 }
2077 glTexStorage3D(target, levels, internalFormat, width, height, depth);
2078 return error::kNoError;
2079 }
2080
1969 error::Error GLES2DecoderImpl::HandleUniform1f(uint32_t immediate_data_size, 2081 error::Error GLES2DecoderImpl::HandleUniform1f(uint32_t immediate_data_size,
1970 const void* cmd_data) { 2082 const void* cmd_data) {
1971 const gles2::cmds::Uniform1f& c = 2083 const gles2::cmds::Uniform1f& c =
1972 *static_cast<const gles2::cmds::Uniform1f*>(cmd_data); 2084 *static_cast<const gles2::cmds::Uniform1f*>(cmd_data);
1973 (void)c; 2085 (void)c;
1974 GLint location = static_cast<GLint>(c.location); 2086 GLint location = static_cast<GLint>(c.location);
1975 GLfloat x = static_cast<GLfloat>(c.x); 2087 GLfloat x = static_cast<GLfloat>(c.x);
1976 GLfloat temp[1] = { 2088 GLfloat temp[1] = {
1977 x, 2089 x,
1978 }; 2090 };
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
2032 } 2144 }
2033 const GLint* v = 2145 const GLint* v =
2034 GetImmediateDataAs<const GLint*>(c, data_size, immediate_data_size); 2146 GetImmediateDataAs<const GLint*>(c, data_size, immediate_data_size);
2035 if (v == NULL) { 2147 if (v == NULL) {
2036 return error::kOutOfBounds; 2148 return error::kOutOfBounds;
2037 } 2149 }
2038 DoUniform1iv(location, count, v); 2150 DoUniform1iv(location, count, v);
2039 return error::kNoError; 2151 return error::kNoError;
2040 } 2152 }
2041 2153
2154 error::Error GLES2DecoderImpl::HandleUniform1ui(uint32_t immediate_data_size,
2155 const void* cmd_data) {
2156 if (!unsafe_es3_apis_enabled())
2157 return error::kUnknownCommand;
2158 const gles2::cmds::Uniform1ui& c =
2159 *static_cast<const gles2::cmds::Uniform1ui*>(cmd_data);
2160 (void)c;
2161 GLint location = static_cast<GLint>(c.location);
2162 GLuint x = static_cast<GLuint>(c.x);
2163 GLuint temp[1] = {
2164 x,
2165 };
2166 glUniform1uiv(location, 1, &temp[0]);
2167 return error::kNoError;
2168 }
2169
2170 error::Error GLES2DecoderImpl::HandleUniform1uivImmediate(
2171 uint32_t immediate_data_size,
2172 const void* cmd_data) {
2173 if (!unsafe_es3_apis_enabled())
2174 return error::kUnknownCommand;
2175 const gles2::cmds::Uniform1uivImmediate& c =
2176 *static_cast<const gles2::cmds::Uniform1uivImmediate*>(cmd_data);
2177 (void)c;
2178 GLint location = static_cast<GLint>(c.location);
2179 GLsizei count = static_cast<GLsizei>(c.count);
2180 uint32_t data_size;
2181 if (!ComputeDataSize(count, sizeof(GLuint), 1, &data_size)) {
2182 return error::kOutOfBounds;
2183 }
2184 if (data_size > immediate_data_size) {
2185 return error::kOutOfBounds;
2186 }
2187 const GLuint* v =
2188 GetImmediateDataAs<const GLuint*>(c, data_size, immediate_data_size);
2189 if (v == NULL) {
2190 return error::kOutOfBounds;
2191 }
2192 glUniform1uiv(location, count, v);
2193 return error::kNoError;
2194 }
2195
2042 error::Error GLES2DecoderImpl::HandleUniform2f(uint32_t immediate_data_size, 2196 error::Error GLES2DecoderImpl::HandleUniform2f(uint32_t immediate_data_size,
2043 const void* cmd_data) { 2197 const void* cmd_data) {
2044 const gles2::cmds::Uniform2f& c = 2198 const gles2::cmds::Uniform2f& c =
2045 *static_cast<const gles2::cmds::Uniform2f*>(cmd_data); 2199 *static_cast<const gles2::cmds::Uniform2f*>(cmd_data);
2046 (void)c; 2200 (void)c;
2047 GLint location = static_cast<GLint>(c.location); 2201 GLint location = static_cast<GLint>(c.location);
2048 GLfloat x = static_cast<GLfloat>(c.x); 2202 GLfloat x = static_cast<GLfloat>(c.x);
2049 GLfloat y = static_cast<GLfloat>(c.y); 2203 GLfloat y = static_cast<GLfloat>(c.y);
2050 GLfloat temp[2] = { 2204 GLfloat temp[2] = {
2051 x, y, 2205 x, y,
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
2110 } 2264 }
2111 const GLint* v = 2265 const GLint* v =
2112 GetImmediateDataAs<const GLint*>(c, data_size, immediate_data_size); 2266 GetImmediateDataAs<const GLint*>(c, data_size, immediate_data_size);
2113 if (v == NULL) { 2267 if (v == NULL) {
2114 return error::kOutOfBounds; 2268 return error::kOutOfBounds;
2115 } 2269 }
2116 DoUniform2iv(location, count, v); 2270 DoUniform2iv(location, count, v);
2117 return error::kNoError; 2271 return error::kNoError;
2118 } 2272 }
2119 2273
2274 error::Error GLES2DecoderImpl::HandleUniform2ui(uint32_t immediate_data_size,
2275 const void* cmd_data) {
2276 if (!unsafe_es3_apis_enabled())
2277 return error::kUnknownCommand;
2278 const gles2::cmds::Uniform2ui& c =
2279 *static_cast<const gles2::cmds::Uniform2ui*>(cmd_data);
2280 (void)c;
2281 GLint location = static_cast<GLint>(c.location);
2282 GLuint x = static_cast<GLuint>(c.x);
2283 GLuint y = static_cast<GLuint>(c.y);
2284 GLuint temp[2] = {
2285 x, y,
2286 };
2287 glUniform2uiv(location, 1, &temp[0]);
2288 return error::kNoError;
2289 }
2290
2291 error::Error GLES2DecoderImpl::HandleUniform2uivImmediate(
2292 uint32_t immediate_data_size,
2293 const void* cmd_data) {
2294 if (!unsafe_es3_apis_enabled())
2295 return error::kUnknownCommand;
2296 const gles2::cmds::Uniform2uivImmediate& c =
2297 *static_cast<const gles2::cmds::Uniform2uivImmediate*>(cmd_data);
2298 (void)c;
2299 GLint location = static_cast<GLint>(c.location);
2300 GLsizei count = static_cast<GLsizei>(c.count);
2301 uint32_t data_size;
2302 if (!ComputeDataSize(count, sizeof(GLuint), 2, &data_size)) {
2303 return error::kOutOfBounds;
2304 }
2305 if (data_size > immediate_data_size) {
2306 return error::kOutOfBounds;
2307 }
2308 const GLuint* v =
2309 GetImmediateDataAs<const GLuint*>(c, data_size, immediate_data_size);
2310 if (v == NULL) {
2311 return error::kOutOfBounds;
2312 }
2313 glUniform2uiv(location, count, v);
2314 return error::kNoError;
2315 }
2316
2120 error::Error GLES2DecoderImpl::HandleUniform3f(uint32_t immediate_data_size, 2317 error::Error GLES2DecoderImpl::HandleUniform3f(uint32_t immediate_data_size,
2121 const void* cmd_data) { 2318 const void* cmd_data) {
2122 const gles2::cmds::Uniform3f& c = 2319 const gles2::cmds::Uniform3f& c =
2123 *static_cast<const gles2::cmds::Uniform3f*>(cmd_data); 2320 *static_cast<const gles2::cmds::Uniform3f*>(cmd_data);
2124 (void)c; 2321 (void)c;
2125 GLint location = static_cast<GLint>(c.location); 2322 GLint location = static_cast<GLint>(c.location);
2126 GLfloat x = static_cast<GLfloat>(c.x); 2323 GLfloat x = static_cast<GLfloat>(c.x);
2127 GLfloat y = static_cast<GLfloat>(c.y); 2324 GLfloat y = static_cast<GLfloat>(c.y);
2128 GLfloat z = static_cast<GLfloat>(c.z); 2325 GLfloat z = static_cast<GLfloat>(c.z);
2129 GLfloat temp[3] = { 2326 GLfloat temp[3] = {
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
2190 } 2387 }
2191 const GLint* v = 2388 const GLint* v =
2192 GetImmediateDataAs<const GLint*>(c, data_size, immediate_data_size); 2389 GetImmediateDataAs<const GLint*>(c, data_size, immediate_data_size);
2193 if (v == NULL) { 2390 if (v == NULL) {
2194 return error::kOutOfBounds; 2391 return error::kOutOfBounds;
2195 } 2392 }
2196 DoUniform3iv(location, count, v); 2393 DoUniform3iv(location, count, v);
2197 return error::kNoError; 2394 return error::kNoError;
2198 } 2395 }
2199 2396
2397 error::Error GLES2DecoderImpl::HandleUniform3ui(uint32_t immediate_data_size,
2398 const void* cmd_data) {
2399 if (!unsafe_es3_apis_enabled())
2400 return error::kUnknownCommand;
2401 const gles2::cmds::Uniform3ui& c =
2402 *static_cast<const gles2::cmds::Uniform3ui*>(cmd_data);
2403 (void)c;
2404 GLint location = static_cast<GLint>(c.location);
2405 GLuint x = static_cast<GLuint>(c.x);
2406 GLuint y = static_cast<GLuint>(c.y);
2407 GLuint z = static_cast<GLuint>(c.z);
2408 GLuint temp[3] = {
2409 x, y, z,
2410 };
2411 glUniform3uiv(location, 1, &temp[0]);
2412 return error::kNoError;
2413 }
2414
2415 error::Error GLES2DecoderImpl::HandleUniform3uivImmediate(
2416 uint32_t immediate_data_size,
2417 const void* cmd_data) {
2418 if (!unsafe_es3_apis_enabled())
2419 return error::kUnknownCommand;
2420 const gles2::cmds::Uniform3uivImmediate& c =
2421 *static_cast<const gles2::cmds::Uniform3uivImmediate*>(cmd_data);
2422 (void)c;
2423 GLint location = static_cast<GLint>(c.location);
2424 GLsizei count = static_cast<GLsizei>(c.count);
2425 uint32_t data_size;
2426 if (!ComputeDataSize(count, sizeof(GLuint), 3, &data_size)) {
2427 return error::kOutOfBounds;
2428 }
2429 if (data_size > immediate_data_size) {
2430 return error::kOutOfBounds;
2431 }
2432 const GLuint* v =
2433 GetImmediateDataAs<const GLuint*>(c, data_size, immediate_data_size);
2434 if (v == NULL) {
2435 return error::kOutOfBounds;
2436 }
2437 glUniform3uiv(location, count, v);
2438 return error::kNoError;
2439 }
2440
2200 error::Error GLES2DecoderImpl::HandleUniform4f(uint32_t immediate_data_size, 2441 error::Error GLES2DecoderImpl::HandleUniform4f(uint32_t immediate_data_size,
2201 const void* cmd_data) { 2442 const void* cmd_data) {
2202 const gles2::cmds::Uniform4f& c = 2443 const gles2::cmds::Uniform4f& c =
2203 *static_cast<const gles2::cmds::Uniform4f*>(cmd_data); 2444 *static_cast<const gles2::cmds::Uniform4f*>(cmd_data);
2204 (void)c; 2445 (void)c;
2205 GLint location = static_cast<GLint>(c.location); 2446 GLint location = static_cast<GLint>(c.location);
2206 GLfloat x = static_cast<GLfloat>(c.x); 2447 GLfloat x = static_cast<GLfloat>(c.x);
2207 GLfloat y = static_cast<GLfloat>(c.y); 2448 GLfloat y = static_cast<GLfloat>(c.y);
2208 GLfloat z = static_cast<GLfloat>(c.z); 2449 GLfloat z = static_cast<GLfloat>(c.z);
2209 GLfloat w = static_cast<GLfloat>(c.w); 2450 GLfloat w = static_cast<GLfloat>(c.w);
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
2272 } 2513 }
2273 const GLint* v = 2514 const GLint* v =
2274 GetImmediateDataAs<const GLint*>(c, data_size, immediate_data_size); 2515 GetImmediateDataAs<const GLint*>(c, data_size, immediate_data_size);
2275 if (v == NULL) { 2516 if (v == NULL) {
2276 return error::kOutOfBounds; 2517 return error::kOutOfBounds;
2277 } 2518 }
2278 DoUniform4iv(location, count, v); 2519 DoUniform4iv(location, count, v);
2279 return error::kNoError; 2520 return error::kNoError;
2280 } 2521 }
2281 2522
2523 error::Error GLES2DecoderImpl::HandleUniform4ui(uint32_t immediate_data_size,
2524 const void* cmd_data) {
2525 if (!unsafe_es3_apis_enabled())
2526 return error::kUnknownCommand;
2527 const gles2::cmds::Uniform4ui& c =
2528 *static_cast<const gles2::cmds::Uniform4ui*>(cmd_data);
2529 (void)c;
2530 GLint location = static_cast<GLint>(c.location);
2531 GLuint x = static_cast<GLuint>(c.x);
2532 GLuint y = static_cast<GLuint>(c.y);
2533 GLuint z = static_cast<GLuint>(c.z);
2534 GLuint w = static_cast<GLuint>(c.w);
2535 GLuint temp[4] = {
2536 x, y, z, w,
2537 };
2538 glUniform4uiv(location, 1, &temp[0]);
2539 return error::kNoError;
2540 }
2541
2542 error::Error GLES2DecoderImpl::HandleUniform4uivImmediate(
2543 uint32_t immediate_data_size,
2544 const void* cmd_data) {
2545 if (!unsafe_es3_apis_enabled())
2546 return error::kUnknownCommand;
2547 const gles2::cmds::Uniform4uivImmediate& c =
2548 *static_cast<const gles2::cmds::Uniform4uivImmediate*>(cmd_data);
2549 (void)c;
2550 GLint location = static_cast<GLint>(c.location);
2551 GLsizei count = static_cast<GLsizei>(c.count);
2552 uint32_t data_size;
2553 if (!ComputeDataSize(count, sizeof(GLuint), 4, &data_size)) {
2554 return error::kOutOfBounds;
2555 }
2556 if (data_size > immediate_data_size) {
2557 return error::kOutOfBounds;
2558 }
2559 const GLuint* v =
2560 GetImmediateDataAs<const GLuint*>(c, data_size, immediate_data_size);
2561 if (v == NULL) {
2562 return error::kOutOfBounds;
2563 }
2564 glUniform4uiv(location, count, v);
2565 return error::kNoError;
2566 }
2567
2282 error::Error GLES2DecoderImpl::HandleUniformMatrix2fvImmediate( 2568 error::Error GLES2DecoderImpl::HandleUniformMatrix2fvImmediate(
2283 uint32_t immediate_data_size, 2569 uint32_t immediate_data_size,
2284 const void* cmd_data) { 2570 const void* cmd_data) {
2285 const gles2::cmds::UniformMatrix2fvImmediate& c = 2571 const gles2::cmds::UniformMatrix2fvImmediate& c =
2286 *static_cast<const gles2::cmds::UniformMatrix2fvImmediate*>(cmd_data); 2572 *static_cast<const gles2::cmds::UniformMatrix2fvImmediate*>(cmd_data);
2287 (void)c; 2573 (void)c;
2288 GLint location = static_cast<GLint>(c.location); 2574 GLint location = static_cast<GLint>(c.location);
2289 GLsizei count = static_cast<GLsizei>(c.count); 2575 GLsizei count = static_cast<GLsizei>(c.count);
2290 GLboolean transpose = static_cast<GLboolean>(c.transpose); 2576 GLboolean transpose = static_cast<GLboolean>(c.transpose);
2291 uint32_t data_size; 2577 uint32_t data_size;
2292 if (!ComputeDataSize(count, sizeof(GLfloat), 4, &data_size)) { 2578 if (!ComputeDataSize(count, sizeof(GLfloat), 4, &data_size)) {
2293 return error::kOutOfBounds; 2579 return error::kOutOfBounds;
2294 } 2580 }
2295 if (data_size > immediate_data_size) { 2581 if (data_size > immediate_data_size) {
2296 return error::kOutOfBounds; 2582 return error::kOutOfBounds;
2297 } 2583 }
2298 const GLfloat* value = 2584 const GLfloat* value =
2299 GetImmediateDataAs<const GLfloat*>(c, data_size, immediate_data_size); 2585 GetImmediateDataAs<const GLfloat*>(c, data_size, immediate_data_size);
2300 if (value == NULL) { 2586 if (value == NULL) {
2301 return error::kOutOfBounds; 2587 return error::kOutOfBounds;
2302 } 2588 }
2303 DoUniformMatrix2fv(location, count, transpose, value); 2589 DoUniformMatrix2fv(location, count, transpose, value);
2304 return error::kNoError; 2590 return error::kNoError;
2305 } 2591 }
2306 2592
2593 error::Error GLES2DecoderImpl::HandleUniformMatrix2x3fvImmediate(
2594 uint32_t immediate_data_size,
2595 const void* cmd_data) {
2596 if (!unsafe_es3_apis_enabled())
2597 return error::kUnknownCommand;
2598 const gles2::cmds::UniformMatrix2x3fvImmediate& c =
2599 *static_cast<const gles2::cmds::UniformMatrix2x3fvImmediate*>(cmd_data);
2600 (void)c;
2601 GLint location = static_cast<GLint>(c.location);
2602 GLsizei count = static_cast<GLsizei>(c.count);
2603 GLboolean transpose = static_cast<GLboolean>(c.transpose);
2604 uint32_t data_size;
2605 if (!ComputeDataSize(count, sizeof(GLfloat), 6, &data_size)) {
2606 return error::kOutOfBounds;
2607 }
2608 if (data_size > immediate_data_size) {
2609 return error::kOutOfBounds;
2610 }
2611 const GLfloat* value =
2612 GetImmediateDataAs<const GLfloat*>(c, data_size, immediate_data_size);
2613 if (value == NULL) {
2614 return error::kOutOfBounds;
2615 }
2616 glUniformMatrix2x3fv(location, count, transpose, value);
2617 return error::kNoError;
2618 }
2619
2620 error::Error GLES2DecoderImpl::HandleUniformMatrix2x4fvImmediate(
2621 uint32_t immediate_data_size,
2622 const void* cmd_data) {
2623 if (!unsafe_es3_apis_enabled())
2624 return error::kUnknownCommand;
2625 const gles2::cmds::UniformMatrix2x4fvImmediate& c =
2626 *static_cast<const gles2::cmds::UniformMatrix2x4fvImmediate*>(cmd_data);
2627 (void)c;
2628 GLint location = static_cast<GLint>(c.location);
2629 GLsizei count = static_cast<GLsizei>(c.count);
2630 GLboolean transpose = static_cast<GLboolean>(c.transpose);
2631 uint32_t data_size;
2632 if (!ComputeDataSize(count, sizeof(GLfloat), 8, &data_size)) {
2633 return error::kOutOfBounds;
2634 }
2635 if (data_size > immediate_data_size) {
2636 return error::kOutOfBounds;
2637 }
2638 const GLfloat* value =
2639 GetImmediateDataAs<const GLfloat*>(c, data_size, immediate_data_size);
2640 if (value == NULL) {
2641 return error::kOutOfBounds;
2642 }
2643 glUniformMatrix2x4fv(location, count, transpose, value);
2644 return error::kNoError;
2645 }
2646
2307 error::Error GLES2DecoderImpl::HandleUniformMatrix3fvImmediate( 2647 error::Error GLES2DecoderImpl::HandleUniformMatrix3fvImmediate(
2308 uint32_t immediate_data_size, 2648 uint32_t immediate_data_size,
2309 const void* cmd_data) { 2649 const void* cmd_data) {
2310 const gles2::cmds::UniformMatrix3fvImmediate& c = 2650 const gles2::cmds::UniformMatrix3fvImmediate& c =
2311 *static_cast<const gles2::cmds::UniformMatrix3fvImmediate*>(cmd_data); 2651 *static_cast<const gles2::cmds::UniformMatrix3fvImmediate*>(cmd_data);
2312 (void)c; 2652 (void)c;
2313 GLint location = static_cast<GLint>(c.location); 2653 GLint location = static_cast<GLint>(c.location);
2314 GLsizei count = static_cast<GLsizei>(c.count); 2654 GLsizei count = static_cast<GLsizei>(c.count);
2315 GLboolean transpose = static_cast<GLboolean>(c.transpose); 2655 GLboolean transpose = static_cast<GLboolean>(c.transpose);
2316 uint32_t data_size; 2656 uint32_t data_size;
2317 if (!ComputeDataSize(count, sizeof(GLfloat), 9, &data_size)) { 2657 if (!ComputeDataSize(count, sizeof(GLfloat), 9, &data_size)) {
2318 return error::kOutOfBounds; 2658 return error::kOutOfBounds;
2319 } 2659 }
2320 if (data_size > immediate_data_size) { 2660 if (data_size > immediate_data_size) {
2321 return error::kOutOfBounds; 2661 return error::kOutOfBounds;
2322 } 2662 }
2323 const GLfloat* value = 2663 const GLfloat* value =
2324 GetImmediateDataAs<const GLfloat*>(c, data_size, immediate_data_size); 2664 GetImmediateDataAs<const GLfloat*>(c, data_size, immediate_data_size);
2325 if (value == NULL) { 2665 if (value == NULL) {
2326 return error::kOutOfBounds; 2666 return error::kOutOfBounds;
2327 } 2667 }
2328 DoUniformMatrix3fv(location, count, transpose, value); 2668 DoUniformMatrix3fv(location, count, transpose, value);
2329 return error::kNoError; 2669 return error::kNoError;
2330 } 2670 }
2331 2671
2672 error::Error GLES2DecoderImpl::HandleUniformMatrix3x2fvImmediate(
2673 uint32_t immediate_data_size,
2674 const void* cmd_data) {
2675 if (!unsafe_es3_apis_enabled())
2676 return error::kUnknownCommand;
2677 const gles2::cmds::UniformMatrix3x2fvImmediate& c =
2678 *static_cast<const gles2::cmds::UniformMatrix3x2fvImmediate*>(cmd_data);
2679 (void)c;
2680 GLint location = static_cast<GLint>(c.location);
2681 GLsizei count = static_cast<GLsizei>(c.count);
2682 GLboolean transpose = static_cast<GLboolean>(c.transpose);
2683 uint32_t data_size;
2684 if (!ComputeDataSize(count, sizeof(GLfloat), 6, &data_size)) {
2685 return error::kOutOfBounds;
2686 }
2687 if (data_size > immediate_data_size) {
2688 return error::kOutOfBounds;
2689 }
2690 const GLfloat* value =
2691 GetImmediateDataAs<const GLfloat*>(c, data_size, immediate_data_size);
2692 if (value == NULL) {
2693 return error::kOutOfBounds;
2694 }
2695 glUniformMatrix3x2fv(location, count, transpose, value);
2696 return error::kNoError;
2697 }
2698
2699 error::Error GLES2DecoderImpl::HandleUniformMatrix3x4fvImmediate(
2700 uint32_t immediate_data_size,
2701 const void* cmd_data) {
2702 if (!unsafe_es3_apis_enabled())
2703 return error::kUnknownCommand;
2704 const gles2::cmds::UniformMatrix3x4fvImmediate& c =
2705 *static_cast<const gles2::cmds::UniformMatrix3x4fvImmediate*>(cmd_data);
2706 (void)c;
2707 GLint location = static_cast<GLint>(c.location);
2708 GLsizei count = static_cast<GLsizei>(c.count);
2709 GLboolean transpose = static_cast<GLboolean>(c.transpose);
2710 uint32_t data_size;
2711 if (!ComputeDataSize(count, sizeof(GLfloat), 12, &data_size)) {
2712 return error::kOutOfBounds;
2713 }
2714 if (data_size > immediate_data_size) {
2715 return error::kOutOfBounds;
2716 }
2717 const GLfloat* value =
2718 GetImmediateDataAs<const GLfloat*>(c, data_size, immediate_data_size);
2719 if (value == NULL) {
2720 return error::kOutOfBounds;
2721 }
2722 glUniformMatrix3x4fv(location, count, transpose, value);
2723 return error::kNoError;
2724 }
2725
2332 error::Error GLES2DecoderImpl::HandleUniformMatrix4fvImmediate( 2726 error::Error GLES2DecoderImpl::HandleUniformMatrix4fvImmediate(
2333 uint32_t immediate_data_size, 2727 uint32_t immediate_data_size,
2334 const void* cmd_data) { 2728 const void* cmd_data) {
2335 const gles2::cmds::UniformMatrix4fvImmediate& c = 2729 const gles2::cmds::UniformMatrix4fvImmediate& c =
2336 *static_cast<const gles2::cmds::UniformMatrix4fvImmediate*>(cmd_data); 2730 *static_cast<const gles2::cmds::UniformMatrix4fvImmediate*>(cmd_data);
2337 (void)c; 2731 (void)c;
2338 GLint location = static_cast<GLint>(c.location); 2732 GLint location = static_cast<GLint>(c.location);
2339 GLsizei count = static_cast<GLsizei>(c.count); 2733 GLsizei count = static_cast<GLsizei>(c.count);
2340 GLboolean transpose = static_cast<GLboolean>(c.transpose); 2734 GLboolean transpose = static_cast<GLboolean>(c.transpose);
2341 uint32_t data_size; 2735 uint32_t data_size;
2342 if (!ComputeDataSize(count, sizeof(GLfloat), 16, &data_size)) { 2736 if (!ComputeDataSize(count, sizeof(GLfloat), 16, &data_size)) {
2343 return error::kOutOfBounds; 2737 return error::kOutOfBounds;
2344 } 2738 }
2345 if (data_size > immediate_data_size) { 2739 if (data_size > immediate_data_size) {
2346 return error::kOutOfBounds; 2740 return error::kOutOfBounds;
2347 } 2741 }
2348 const GLfloat* value = 2742 const GLfloat* value =
2349 GetImmediateDataAs<const GLfloat*>(c, data_size, immediate_data_size); 2743 GetImmediateDataAs<const GLfloat*>(c, data_size, immediate_data_size);
2350 if (value == NULL) { 2744 if (value == NULL) {
2351 return error::kOutOfBounds; 2745 return error::kOutOfBounds;
2352 } 2746 }
2353 DoUniformMatrix4fv(location, count, transpose, value); 2747 DoUniformMatrix4fv(location, count, transpose, value);
2354 return error::kNoError; 2748 return error::kNoError;
2355 } 2749 }
2356 2750
2751 error::Error GLES2DecoderImpl::HandleUniformMatrix4x2fvImmediate(
2752 uint32_t immediate_data_size,
2753 const void* cmd_data) {
2754 if (!unsafe_es3_apis_enabled())
2755 return error::kUnknownCommand;
2756 const gles2::cmds::UniformMatrix4x2fvImmediate& c =
2757 *static_cast<const gles2::cmds::UniformMatrix4x2fvImmediate*>(cmd_data);
2758 (void)c;
2759 GLint location = static_cast<GLint>(c.location);
2760 GLsizei count = static_cast<GLsizei>(c.count);
2761 GLboolean transpose = static_cast<GLboolean>(c.transpose);
2762 uint32_t data_size;
2763 if (!ComputeDataSize(count, sizeof(GLfloat), 8, &data_size)) {
2764 return error::kOutOfBounds;
2765 }
2766 if (data_size > immediate_data_size) {
2767 return error::kOutOfBounds;
2768 }
2769 const GLfloat* value =
2770 GetImmediateDataAs<const GLfloat*>(c, data_size, immediate_data_size);
2771 if (value == NULL) {
2772 return error::kOutOfBounds;
2773 }
2774 glUniformMatrix4x2fv(location, count, transpose, value);
2775 return error::kNoError;
2776 }
2777
2778 error::Error GLES2DecoderImpl::HandleUniformMatrix4x3fvImmediate(
2779 uint32_t immediate_data_size,
2780 const void* cmd_data) {
2781 if (!unsafe_es3_apis_enabled())
2782 return error::kUnknownCommand;
2783 const gles2::cmds::UniformMatrix4x3fvImmediate& c =
2784 *static_cast<const gles2::cmds::UniformMatrix4x3fvImmediate*>(cmd_data);
2785 (void)c;
2786 GLint location = static_cast<GLint>(c.location);
2787 GLsizei count = static_cast<GLsizei>(c.count);
2788 GLboolean transpose = static_cast<GLboolean>(c.transpose);
2789 uint32_t data_size;
2790 if (!ComputeDataSize(count, sizeof(GLfloat), 12, &data_size)) {
2791 return error::kOutOfBounds;
2792 }
2793 if (data_size > immediate_data_size) {
2794 return error::kOutOfBounds;
2795 }
2796 const GLfloat* value =
2797 GetImmediateDataAs<const GLfloat*>(c, data_size, immediate_data_size);
2798 if (value == NULL) {
2799 return error::kOutOfBounds;
2800 }
2801 glUniformMatrix4x3fv(location, count, transpose, value);
2802 return error::kNoError;
2803 }
2804
2357 error::Error GLES2DecoderImpl::HandleUseProgram(uint32_t immediate_data_size, 2805 error::Error GLES2DecoderImpl::HandleUseProgram(uint32_t immediate_data_size,
2358 const void* cmd_data) { 2806 const void* cmd_data) {
2359 const gles2::cmds::UseProgram& c = 2807 const gles2::cmds::UseProgram& c =
2360 *static_cast<const gles2::cmds::UseProgram*>(cmd_data); 2808 *static_cast<const gles2::cmds::UseProgram*>(cmd_data);
2361 (void)c; 2809 (void)c;
2362 GLuint program = c.program; 2810 GLuint program = c.program;
2363 DoUseProgram(program); 2811 DoUseProgram(program);
2364 return error::kNoError; 2812 return error::kNoError;
2365 } 2813 }
2366 2814
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after
2514 } 2962 }
2515 const GLfloat* values = 2963 const GLfloat* values =
2516 GetImmediateDataAs<const GLfloat*>(c, data_size, immediate_data_size); 2964 GetImmediateDataAs<const GLfloat*>(c, data_size, immediate_data_size);
2517 if (values == NULL) { 2965 if (values == NULL) {
2518 return error::kOutOfBounds; 2966 return error::kOutOfBounds;
2519 } 2967 }
2520 DoVertexAttrib4fv(indx, values); 2968 DoVertexAttrib4fv(indx, values);
2521 return error::kNoError; 2969 return error::kNoError;
2522 } 2970 }
2523 2971
2972 error::Error GLES2DecoderImpl::HandleVertexAttribI4i(
2973 uint32_t immediate_data_size,
2974 const void* cmd_data) {
2975 if (!unsafe_es3_apis_enabled())
2976 return error::kUnknownCommand;
2977 const gles2::cmds::VertexAttribI4i& c =
2978 *static_cast<const gles2::cmds::VertexAttribI4i*>(cmd_data);
2979 (void)c;
2980 GLuint indx = static_cast<GLuint>(c.indx);
2981 GLint x = static_cast<GLint>(c.x);
2982 GLint y = static_cast<GLint>(c.y);
2983 GLint z = static_cast<GLint>(c.z);
2984 GLint w = static_cast<GLint>(c.w);
2985 glVertexAttribI4i(indx, x, y, z, w);
2986 return error::kNoError;
2987 }
2988
2989 error::Error GLES2DecoderImpl::HandleVertexAttribI4ivImmediate(
2990 uint32_t immediate_data_size,
2991 const void* cmd_data) {
2992 if (!unsafe_es3_apis_enabled())
2993 return error::kUnknownCommand;
2994 const gles2::cmds::VertexAttribI4ivImmediate& c =
2995 *static_cast<const gles2::cmds::VertexAttribI4ivImmediate*>(cmd_data);
2996 (void)c;
2997 GLuint indx = static_cast<GLuint>(c.indx);
2998 uint32_t data_size;
2999 if (!ComputeDataSize(1, sizeof(GLint), 4, &data_size)) {
3000 return error::kOutOfBounds;
3001 }
3002 if (data_size > immediate_data_size) {
3003 return error::kOutOfBounds;
3004 }
3005 const GLint* values =
3006 GetImmediateDataAs<const GLint*>(c, data_size, immediate_data_size);
3007 if (values == NULL) {
3008 return error::kOutOfBounds;
3009 }
3010 glVertexAttribI4iv(indx, values);
3011 return error::kNoError;
3012 }
3013
3014 error::Error GLES2DecoderImpl::HandleVertexAttribI4ui(
3015 uint32_t immediate_data_size,
3016 const void* cmd_data) {
3017 if (!unsafe_es3_apis_enabled())
3018 return error::kUnknownCommand;
3019 const gles2::cmds::VertexAttribI4ui& c =
3020 *static_cast<const gles2::cmds::VertexAttribI4ui*>(cmd_data);
3021 (void)c;
3022 GLuint indx = static_cast<GLuint>(c.indx);
3023 GLuint x = static_cast<GLuint>(c.x);
3024 GLuint y = static_cast<GLuint>(c.y);
3025 GLuint z = static_cast<GLuint>(c.z);
3026 GLuint w = static_cast<GLuint>(c.w);
3027 glVertexAttribI4ui(indx, x, y, z, w);
3028 return error::kNoError;
3029 }
3030
3031 error::Error GLES2DecoderImpl::HandleVertexAttribI4uivImmediate(
3032 uint32_t immediate_data_size,
3033 const void* cmd_data) {
3034 if (!unsafe_es3_apis_enabled())
3035 return error::kUnknownCommand;
3036 const gles2::cmds::VertexAttribI4uivImmediate& c =
3037 *static_cast<const gles2::cmds::VertexAttribI4uivImmediate*>(cmd_data);
3038 (void)c;
3039 GLuint indx = static_cast<GLuint>(c.indx);
3040 uint32_t data_size;
3041 if (!ComputeDataSize(1, sizeof(GLuint), 4, &data_size)) {
3042 return error::kOutOfBounds;
3043 }
3044 if (data_size > immediate_data_size) {
3045 return error::kOutOfBounds;
3046 }
3047 const GLuint* values =
3048 GetImmediateDataAs<const GLuint*>(c, data_size, immediate_data_size);
3049 if (values == NULL) {
3050 return error::kOutOfBounds;
3051 }
3052 glVertexAttribI4uiv(indx, values);
3053 return error::kNoError;
3054 }
3055
2524 error::Error GLES2DecoderImpl::HandleViewport(uint32_t immediate_data_size, 3056 error::Error GLES2DecoderImpl::HandleViewport(uint32_t immediate_data_size,
2525 const void* cmd_data) { 3057 const void* cmd_data) {
2526 const gles2::cmds::Viewport& c = 3058 const gles2::cmds::Viewport& c =
2527 *static_cast<const gles2::cmds::Viewport*>(cmd_data); 3059 *static_cast<const gles2::cmds::Viewport*>(cmd_data);
2528 (void)c; 3060 (void)c;
2529 GLint x = static_cast<GLint>(c.x); 3061 GLint x = static_cast<GLint>(c.x);
2530 GLint y = static_cast<GLint>(c.y); 3062 GLint y = static_cast<GLint>(c.y);
2531 GLsizei width = static_cast<GLsizei>(c.width); 3063 GLsizei width = static_cast<GLsizei>(c.width);
2532 GLsizei height = static_cast<GLsizei>(c.height); 3064 GLsizei height = static_cast<GLsizei>(c.height);
2533 if (width < 0) { 3065 if (width < 0) {
(...skipping 986 matching lines...) Expand 10 before | Expand all | Expand 10 after
3520 state_.ignore_cached_state) { 4052 state_.ignore_cached_state) {
3521 framebuffer_state_.clear_state_dirty = true; 4053 framebuffer_state_.clear_state_dirty = true;
3522 } 4054 }
3523 return false; 4055 return false;
3524 default: 4056 default:
3525 NOTREACHED(); 4057 NOTREACHED();
3526 return false; 4058 return false;
3527 } 4059 }
3528 } 4060 }
3529 #endif // GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_AUTOGEN_H_ 4061 #endif // GPU_COMMAND_BUFFER_SERVICE_GLES2_CMD_DECODER_AUTOGEN_H_
OLDNEW
« no previous file with comments | « gpu/command_buffer/service/gles2_cmd_decoder.cc ('k') | gpu/command_buffer/service/gles2_cmd_decoder_mock.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698