OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "gpu/command_buffer/service/gles2_cmd_decoder.h" | 5 #include "gpu/command_buffer/service/gles2_cmd_decoder.h" |
6 | 6 |
7 #include <stdio.h> | 7 #include <stdio.h> |
8 | 8 |
9 #include <algorithm> | 9 #include <algorithm> |
10 #include <list> | 10 #include <list> |
(...skipping 1252 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1263 // Wrapper for glClear | 1263 // Wrapper for glClear |
1264 error::Error DoClear(GLbitfield mask); | 1264 error::Error DoClear(GLbitfield mask); |
1265 | 1265 |
1266 // Wrappers for various state. | 1266 // Wrappers for various state. |
1267 void DoDepthRangef(GLclampf znear, GLclampf zfar); | 1267 void DoDepthRangef(GLclampf znear, GLclampf zfar); |
1268 void DoSampleCoverage(GLclampf value, GLboolean invert); | 1268 void DoSampleCoverage(GLclampf value, GLboolean invert); |
1269 | 1269 |
1270 // Wrapper for glCompileShader. | 1270 // Wrapper for glCompileShader. |
1271 void DoCompileShader(GLuint shader); | 1271 void DoCompileShader(GLuint shader); |
1272 | 1272 |
1273 // Helper for DeleteSharedIdsCHROMIUM commands. | |
1274 void DoDeleteSharedIdsCHROMIUM( | |
1275 GLuint namespace_id, GLsizei n, const GLuint* ids); | |
1276 | |
1277 // Wrapper for glDetachShader | 1273 // Wrapper for glDetachShader |
1278 void DoDetachShader(GLuint client_program_id, GLint client_shader_id); | 1274 void DoDetachShader(GLuint client_program_id, GLint client_shader_id); |
1279 | 1275 |
1280 // Wrapper for glDisable | 1276 // Wrapper for glDisable |
1281 void DoDisable(GLenum cap); | 1277 void DoDisable(GLenum cap); |
1282 | 1278 |
1283 // Wrapper for glDisableVertexAttribArray. | 1279 // Wrapper for glDisableVertexAttribArray. |
1284 void DoDisableVertexAttribArray(GLuint index); | 1280 void DoDisableVertexAttribArray(GLuint index); |
1285 | 1281 |
1286 // Wrapper for glDiscardFramebufferEXT, since we need to track undefined | 1282 // Wrapper for glDiscardFramebufferEXT, since we need to track undefined |
(...skipping 30 matching lines...) Expand all Loading... |
1317 GLuint texture, GLint level, GLsizei samples); | 1313 GLuint texture, GLint level, GLsizei samples); |
1318 | 1314 |
1319 // Common implementation for both DoFramebufferTexture2D wrappers. | 1315 // Common implementation for both DoFramebufferTexture2D wrappers. |
1320 void DoFramebufferTexture2DCommon(const char* name, | 1316 void DoFramebufferTexture2DCommon(const char* name, |
1321 GLenum target, GLenum attachment, GLenum textarget, | 1317 GLenum target, GLenum attachment, GLenum textarget, |
1322 GLuint texture, GLint level, GLsizei samples); | 1318 GLuint texture, GLint level, GLsizei samples); |
1323 | 1319 |
1324 // Wrapper for glGenerateMipmap | 1320 // Wrapper for glGenerateMipmap |
1325 void DoGenerateMipmap(GLenum target); | 1321 void DoGenerateMipmap(GLenum target); |
1326 | 1322 |
1327 // Helper for GenSharedIdsCHROMIUM commands. | |
1328 void DoGenSharedIdsCHROMIUM( | |
1329 GLuint namespace_id, GLuint id_offset, GLsizei n, GLuint* ids); | |
1330 | |
1331 // Helper for DoGetBooleanv, Floatv, and Intergerv to adjust pname | 1323 // Helper for DoGetBooleanv, Floatv, and Intergerv to adjust pname |
1332 // to account for different pname values defined in different extension | 1324 // to account for different pname values defined in different extension |
1333 // variants. | 1325 // variants. |
1334 GLenum AdjustGetPname(GLenum pname); | 1326 GLenum AdjustGetPname(GLenum pname); |
1335 | 1327 |
1336 // Wrapper for DoGetBooleanv. | 1328 // Wrapper for DoGetBooleanv. |
1337 void DoGetBooleanv(GLenum pname, GLboolean* params); | 1329 void DoGetBooleanv(GLenum pname, GLboolean* params); |
1338 | 1330 |
1339 // Wrapper for DoGetFloatv. | 1331 // Wrapper for DoGetFloatv. |
1340 void DoGetFloatv(GLenum pname, GLfloat* params); | 1332 void DoGetFloatv(GLenum pname, GLfloat* params); |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1380 bool DoIsFramebuffer(GLuint client_id); | 1372 bool DoIsFramebuffer(GLuint client_id); |
1381 bool DoIsProgram(GLuint client_id); | 1373 bool DoIsProgram(GLuint client_id); |
1382 bool DoIsRenderbuffer(GLuint client_id); | 1374 bool DoIsRenderbuffer(GLuint client_id); |
1383 bool DoIsShader(GLuint client_id); | 1375 bool DoIsShader(GLuint client_id); |
1384 bool DoIsTexture(GLuint client_id); | 1376 bool DoIsTexture(GLuint client_id); |
1385 bool DoIsVertexArrayOES(GLuint client_id); | 1377 bool DoIsVertexArrayOES(GLuint client_id); |
1386 | 1378 |
1387 // Wrapper for glLinkProgram | 1379 // Wrapper for glLinkProgram |
1388 void DoLinkProgram(GLuint program); | 1380 void DoLinkProgram(GLuint program); |
1389 | 1381 |
1390 // Helper for RegisterSharedIdsCHROMIUM. | |
1391 void DoRegisterSharedIdsCHROMIUM( | |
1392 GLuint namespace_id, GLsizei n, const GLuint* ids); | |
1393 | |
1394 // Wrapper for glRenderbufferStorage. | 1382 // Wrapper for glRenderbufferStorage. |
1395 void DoRenderbufferStorage( | 1383 void DoRenderbufferStorage( |
1396 GLenum target, GLenum internalformat, GLsizei width, GLsizei height); | 1384 GLenum target, GLenum internalformat, GLsizei width, GLsizei height); |
1397 | 1385 |
1398 // Handler for glRenderbufferStorageMultisampleCHROMIUM. | 1386 // Handler for glRenderbufferStorageMultisampleCHROMIUM. |
1399 void DoRenderbufferStorageMultisampleCHROMIUM( | 1387 void DoRenderbufferStorageMultisampleCHROMIUM( |
1400 GLenum target, GLsizei samples, GLenum internalformat, | 1388 GLenum target, GLsizei samples, GLenum internalformat, |
1401 GLsizei width, GLsizei height); | 1389 GLsizei width, GLsizei height); |
1402 | 1390 |
1403 // Handler for glRenderbufferStorageMultisampleEXT | 1391 // Handler for glRenderbufferStorageMultisampleEXT |
(...skipping 2543 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3947 LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION, | 3935 LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION, |
3948 "glBindBuffer", | 3936 "glBindBuffer", |
3949 "id not generated by glGenBuffers"); | 3937 "id not generated by glGenBuffers"); |
3950 return; | 3938 return; |
3951 } | 3939 } |
3952 | 3940 |
3953 // It's a new id so make a buffer buffer for it. | 3941 // It's a new id so make a buffer buffer for it. |
3954 glGenBuffersARB(1, &service_id); | 3942 glGenBuffersARB(1, &service_id); |
3955 CreateBuffer(client_id, service_id); | 3943 CreateBuffer(client_id, service_id); |
3956 buffer = GetBuffer(client_id); | 3944 buffer = GetBuffer(client_id); |
3957 IdAllocatorInterface* id_allocator = | |
3958 group_->GetIdAllocator(id_namespaces::kBuffers); | |
3959 id_allocator->MarkAsUsed(client_id); | |
3960 } | 3945 } |
3961 } | 3946 } |
3962 LogClientServiceForInfo(buffer, client_id, "glBindBuffer"); | 3947 LogClientServiceForInfo(buffer, client_id, "glBindBuffer"); |
3963 if (buffer) { | 3948 if (buffer) { |
3964 if (!buffer_manager()->SetTarget(buffer, target)) { | 3949 if (!buffer_manager()->SetTarget(buffer, target)) { |
3965 LOCAL_SET_GL_ERROR( | 3950 LOCAL_SET_GL_ERROR( |
3966 GL_INVALID_OPERATION, | 3951 GL_INVALID_OPERATION, |
3967 "glBindBuffer", "buffer bound to more than 1 target"); | 3952 "glBindBuffer", "buffer bound to more than 1 target"); |
3968 return; | 3953 return; |
3969 } | 3954 } |
(...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4151 LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION, | 4136 LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION, |
4152 "glBindFramebuffer", | 4137 "glBindFramebuffer", |
4153 "id not generated by glGenFramebuffers"); | 4138 "id not generated by glGenFramebuffers"); |
4154 return; | 4139 return; |
4155 } | 4140 } |
4156 | 4141 |
4157 // It's a new id so make a framebuffer framebuffer for it. | 4142 // It's a new id so make a framebuffer framebuffer for it. |
4158 glGenFramebuffersEXT(1, &service_id); | 4143 glGenFramebuffersEXT(1, &service_id); |
4159 CreateFramebuffer(client_id, service_id); | 4144 CreateFramebuffer(client_id, service_id); |
4160 framebuffer = GetFramebuffer(client_id); | 4145 framebuffer = GetFramebuffer(client_id); |
4161 IdAllocatorInterface* id_allocator = | |
4162 group_->GetIdAllocator(id_namespaces::kFramebuffers); | |
4163 id_allocator->MarkAsUsed(client_id); | |
4164 } else { | 4146 } else { |
4165 service_id = framebuffer->service_id(); | 4147 service_id = framebuffer->service_id(); |
4166 } | 4148 } |
4167 framebuffer->MarkAsValid(); | 4149 framebuffer->MarkAsValid(); |
4168 } | 4150 } |
4169 LogClientServiceForInfo(framebuffer, client_id, "glBindFramebuffer"); | 4151 LogClientServiceForInfo(framebuffer, client_id, "glBindFramebuffer"); |
4170 | 4152 |
4171 if (target == GL_FRAMEBUFFER || target == GL_DRAW_FRAMEBUFFER_EXT) { | 4153 if (target == GL_FRAMEBUFFER || target == GL_DRAW_FRAMEBUFFER_EXT) { |
4172 framebuffer_state_.bound_draw_framebuffer = framebuffer; | 4154 framebuffer_state_.bound_draw_framebuffer = framebuffer; |
4173 } | 4155 } |
(...skipping 25 matching lines...) Expand all Loading... |
4199 LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION, | 4181 LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION, |
4200 "glBindRenderbuffer", | 4182 "glBindRenderbuffer", |
4201 "id not generated by glGenRenderbuffers"); | 4183 "id not generated by glGenRenderbuffers"); |
4202 return; | 4184 return; |
4203 } | 4185 } |
4204 | 4186 |
4205 // It's a new id so make a renderbuffer for it. | 4187 // It's a new id so make a renderbuffer for it. |
4206 glGenRenderbuffersEXT(1, &service_id); | 4188 glGenRenderbuffersEXT(1, &service_id); |
4207 CreateRenderbuffer(client_id, service_id); | 4189 CreateRenderbuffer(client_id, service_id); |
4208 renderbuffer = GetRenderbuffer(client_id); | 4190 renderbuffer = GetRenderbuffer(client_id); |
4209 IdAllocatorInterface* id_allocator = | |
4210 group_->GetIdAllocator(id_namespaces::kRenderbuffers); | |
4211 id_allocator->MarkAsUsed(client_id); | |
4212 } else { | 4191 } else { |
4213 service_id = renderbuffer->service_id(); | 4192 service_id = renderbuffer->service_id(); |
4214 } | 4193 } |
4215 renderbuffer->MarkAsValid(); | 4194 renderbuffer->MarkAsValid(); |
4216 } | 4195 } |
4217 LogClientServiceForInfo(renderbuffer, client_id, "glBindRenderbuffer"); | 4196 LogClientServiceForInfo(renderbuffer, client_id, "glBindRenderbuffer"); |
4218 state_.bound_renderbuffer = renderbuffer; | 4197 state_.bound_renderbuffer = renderbuffer; |
4219 state_.bound_renderbuffer_valid = true; | 4198 state_.bound_renderbuffer_valid = true; |
4220 glBindRenderbufferEXT(GL_RENDERBUFFER, service_id); | 4199 glBindRenderbufferEXT(GL_RENDERBUFFER, service_id); |
4221 } | 4200 } |
4222 | 4201 |
4223 void GLES2DecoderImpl::DoBindTexture(GLenum target, GLuint client_id) { | 4202 void GLES2DecoderImpl::DoBindTexture(GLenum target, GLuint client_id) { |
4224 TextureRef* texture_ref = NULL; | 4203 TextureRef* texture_ref = NULL; |
4225 GLuint service_id = 0; | 4204 GLuint service_id = 0; |
4226 if (client_id != 0) { | 4205 if (client_id != 0) { |
4227 texture_ref = GetTexture(client_id); | 4206 texture_ref = GetTexture(client_id); |
4228 if (!texture_ref) { | 4207 if (!texture_ref) { |
4229 if (!group_->bind_generates_resource()) { | 4208 if (!group_->bind_generates_resource()) { |
4230 LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION, | 4209 LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION, |
4231 "glBindTexture", | 4210 "glBindTexture", |
4232 "id not generated by glGenTextures"); | 4211 "id not generated by glGenTextures"); |
4233 return; | 4212 return; |
4234 } | 4213 } |
4235 | 4214 |
4236 // It's a new id so make a texture texture for it. | 4215 // It's a new id so make a texture texture for it. |
4237 glGenTextures(1, &service_id); | 4216 glGenTextures(1, &service_id); |
4238 DCHECK_NE(0u, service_id); | 4217 DCHECK_NE(0u, service_id); |
4239 CreateTexture(client_id, service_id); | 4218 CreateTexture(client_id, service_id); |
4240 texture_ref = GetTexture(client_id); | 4219 texture_ref = GetTexture(client_id); |
4241 IdAllocatorInterface* id_allocator = | |
4242 group_->GetIdAllocator(id_namespaces::kTextures); | |
4243 id_allocator->MarkAsUsed(client_id); | |
4244 } | 4220 } |
4245 } else { | 4221 } else { |
4246 texture_ref = texture_manager()->GetDefaultTextureInfo(target); | 4222 texture_ref = texture_manager()->GetDefaultTextureInfo(target); |
4247 } | 4223 } |
4248 | 4224 |
4249 // Check the texture exists | 4225 // Check the texture exists |
4250 if (texture_ref) { | 4226 if (texture_ref) { |
4251 Texture* texture = texture_ref->texture(); | 4227 Texture* texture = texture_ref->texture(); |
4252 // Check that we are not trying to bind it to a different target. | 4228 // Check that we are not trying to bind it to a different target. |
4253 if (texture->target() != 0 && texture->target() != target) { | 4229 if (texture->target() != 0 && texture->target() != target) { |
(...skipping 737 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4991 program_manager()->MarkAsDeleted(shader_manager(), program); | 4967 program_manager()->MarkAsDeleted(shader_manager(), program); |
4992 } | 4968 } |
4993 } else { | 4969 } else { |
4994 LOCAL_SET_GL_ERROR( | 4970 LOCAL_SET_GL_ERROR( |
4995 GL_INVALID_VALUE, "glDeleteProgram", "unknown program"); | 4971 GL_INVALID_VALUE, "glDeleteProgram", "unknown program"); |
4996 } | 4972 } |
4997 } | 4973 } |
4998 return error::kNoError; | 4974 return error::kNoError; |
4999 } | 4975 } |
5000 | 4976 |
5001 void GLES2DecoderImpl::DoDeleteSharedIdsCHROMIUM( | |
5002 GLuint namespace_id, GLsizei n, const GLuint* ids) { | |
5003 IdAllocatorInterface* id_allocator = group_->GetIdAllocator(namespace_id); | |
5004 for (GLsizei ii = 0; ii < n; ++ii) { | |
5005 id_allocator->FreeID(ids[ii]); | |
5006 } | |
5007 } | |
5008 | |
5009 error::Error GLES2DecoderImpl::HandleDeleteSharedIdsCHROMIUM( | |
5010 uint32 immediate_data_size, | |
5011 const void* cmd_data) { | |
5012 const gles2::cmds::DeleteSharedIdsCHROMIUM& c = | |
5013 *static_cast<const gles2::cmds::DeleteSharedIdsCHROMIUM*>(cmd_data); | |
5014 GLuint namespace_id = static_cast<GLuint>(c.namespace_id); | |
5015 GLsizei n = static_cast<GLsizei>(c.n); | |
5016 uint32 data_size; | |
5017 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) { | |
5018 return error::kOutOfBounds; | |
5019 } | |
5020 const GLuint* ids = GetSharedMemoryAs<const GLuint*>( | |
5021 c.ids_shm_id, c.ids_shm_offset, data_size); | |
5022 if (n < 0) { | |
5023 LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "DeleteSharedIdsCHROMIUM", "n < 0"); | |
5024 return error::kNoError; | |
5025 } | |
5026 if (ids == NULL) { | |
5027 return error::kOutOfBounds; | |
5028 } | |
5029 DoDeleteSharedIdsCHROMIUM(namespace_id, n, ids); | |
5030 return error::kNoError; | |
5031 } | |
5032 | |
5033 void GLES2DecoderImpl::DoGenSharedIdsCHROMIUM( | |
5034 GLuint namespace_id, GLuint id_offset, GLsizei n, GLuint* ids) { | |
5035 IdAllocatorInterface* id_allocator = group_->GetIdAllocator(namespace_id); | |
5036 if (id_offset == 0) { | |
5037 for (GLsizei ii = 0; ii < n; ++ii) { | |
5038 ids[ii] = id_allocator->AllocateID(); | |
5039 } | |
5040 } else { | |
5041 for (GLsizei ii = 0; ii < n; ++ii) { | |
5042 ids[ii] = id_allocator->AllocateIDAtOrAbove(id_offset); | |
5043 id_offset = ids[ii] + 1; | |
5044 } | |
5045 } | |
5046 } | |
5047 | |
5048 error::Error GLES2DecoderImpl::HandleGenSharedIdsCHROMIUM( | |
5049 uint32 immediate_data_size, | |
5050 const void* cmd_data) { | |
5051 const gles2::cmds::GenSharedIdsCHROMIUM& c = | |
5052 *static_cast<const gles2::cmds::GenSharedIdsCHROMIUM*>(cmd_data); | |
5053 GLuint namespace_id = static_cast<GLuint>(c.namespace_id); | |
5054 GLuint id_offset = static_cast<GLuint>(c.id_offset); | |
5055 GLsizei n = static_cast<GLsizei>(c.n); | |
5056 uint32 data_size; | |
5057 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) { | |
5058 return error::kOutOfBounds; | |
5059 } | |
5060 GLuint* ids = GetSharedMemoryAs<GLuint*>( | |
5061 c.ids_shm_id, c.ids_shm_offset, data_size); | |
5062 if (n < 0) { | |
5063 LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "GenSharedIdsCHROMIUM", "n < 0"); | |
5064 return error::kNoError; | |
5065 } | |
5066 if (ids == NULL) { | |
5067 return error::kOutOfBounds; | |
5068 } | |
5069 DoGenSharedIdsCHROMIUM(namespace_id, id_offset, n, ids); | |
5070 return error::kNoError; | |
5071 } | |
5072 | |
5073 void GLES2DecoderImpl::DoRegisterSharedIdsCHROMIUM( | |
5074 GLuint namespace_id, GLsizei n, const GLuint* ids) { | |
5075 IdAllocatorInterface* id_allocator = group_->GetIdAllocator(namespace_id); | |
5076 for (GLsizei ii = 0; ii < n; ++ii) { | |
5077 if (!id_allocator->MarkAsUsed(ids[ii])) { | |
5078 for (GLsizei jj = 0; jj < ii; ++jj) { | |
5079 id_allocator->FreeID(ids[jj]); | |
5080 } | |
5081 LOCAL_SET_GL_ERROR( | |
5082 GL_INVALID_VALUE, "RegisterSharedIdsCHROMIUM", | |
5083 "attempt to register id that already exists"); | |
5084 return; | |
5085 } | |
5086 } | |
5087 } | |
5088 | |
5089 error::Error GLES2DecoderImpl::HandleRegisterSharedIdsCHROMIUM( | |
5090 uint32 immediate_data_size, | |
5091 const void* cmd_data) { | |
5092 const gles2::cmds::RegisterSharedIdsCHROMIUM& c = | |
5093 *static_cast<const gles2::cmds::RegisterSharedIdsCHROMIUM*>(cmd_data); | |
5094 GLuint namespace_id = static_cast<GLuint>(c.namespace_id); | |
5095 GLsizei n = static_cast<GLsizei>(c.n); | |
5096 uint32 data_size; | |
5097 if (!SafeMultiplyUint32(n, sizeof(GLuint), &data_size)) { | |
5098 return error::kOutOfBounds; | |
5099 } | |
5100 GLuint* ids = GetSharedMemoryAs<GLuint*>( | |
5101 c.ids_shm_id, c.ids_shm_offset, data_size); | |
5102 if (n < 0) { | |
5103 LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "RegisterSharedIdsCHROMIUM", "n < 0"); | |
5104 return error::kNoError; | |
5105 } | |
5106 if (ids == NULL) { | |
5107 return error::kOutOfBounds; | |
5108 } | |
5109 DoRegisterSharedIdsCHROMIUM(namespace_id, n, ids); | |
5110 return error::kNoError; | |
5111 } | |
5112 | |
5113 error::Error GLES2DecoderImpl::DoClear(GLbitfield mask) { | 4977 error::Error GLES2DecoderImpl::DoClear(GLbitfield mask) { |
5114 DCHECK(!ShouldDeferDraws()); | 4978 DCHECK(!ShouldDeferDraws()); |
5115 if (CheckBoundFramebuffersValid("glClear")) { | 4979 if (CheckBoundFramebuffersValid("glClear")) { |
5116 ApplyDirtyState(); | 4980 ApplyDirtyState(); |
5117 glClear(mask); | 4981 glClear(mask); |
5118 } | 4982 } |
5119 return error::kNoError; | 4983 return error::kNoError; |
5120 } | 4984 } |
5121 | 4985 |
5122 void GLES2DecoderImpl::DoFramebufferRenderbuffer( | 4986 void GLES2DecoderImpl::DoFramebufferRenderbuffer( |
(...skipping 5592 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10715 "glCreateAndConsumeTextureCHROMIUM", "invalid mailbox name"); | 10579 "glCreateAndConsumeTextureCHROMIUM", "invalid mailbox name"); |
10716 return; | 10580 return; |
10717 } | 10581 } |
10718 if (texture->target() != target) { | 10582 if (texture->target() != target) { |
10719 LOCAL_SET_GL_ERROR( | 10583 LOCAL_SET_GL_ERROR( |
10720 GL_INVALID_OPERATION, | 10584 GL_INVALID_OPERATION, |
10721 "glCreateAndConsumeTextureCHROMIUM", "invalid target"); | 10585 "glCreateAndConsumeTextureCHROMIUM", "invalid target"); |
10722 return; | 10586 return; |
10723 } | 10587 } |
10724 | 10588 |
10725 IdAllocatorInterface* id_allocator = | |
10726 group_->GetIdAllocator(id_namespaces::kTextures); | |
10727 id_allocator->MarkAsUsed(client_id); | |
10728 | |
10729 texture_ref = texture_manager()->Consume(client_id, texture); | 10589 texture_ref = texture_manager()->Consume(client_id, texture); |
10730 } | 10590 } |
10731 | 10591 |
10732 void GLES2DecoderImpl::DoInsertEventMarkerEXT( | 10592 void GLES2DecoderImpl::DoInsertEventMarkerEXT( |
10733 GLsizei length, const GLchar* marker) { | 10593 GLsizei length, const GLchar* marker) { |
10734 if (!marker) { | 10594 if (!marker) { |
10735 marker = ""; | 10595 marker = ""; |
10736 } | 10596 } |
10737 debug_marker_manager_.SetMarker( | 10597 debug_marker_manager_.SetMarker( |
10738 length ? std::string(marker, length) : std::string(marker)); | 10598 length ? std::string(marker, length) : std::string(marker)); |
(...skipping 545 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
11284 } | 11144 } |
11285 } | 11145 } |
11286 | 11146 |
11287 // Include the auto-generated part of this file. We split this because it means | 11147 // Include the auto-generated part of this file. We split this because it means |
11288 // we can easily edit the non-auto generated parts right here in this file | 11148 // we can easily edit the non-auto generated parts right here in this file |
11289 // instead of having to edit some template or the code generator. | 11149 // instead of having to edit some template or the code generator. |
11290 #include "gpu/command_buffer/service/gles2_cmd_decoder_autogen.h" | 11150 #include "gpu/command_buffer/service/gles2_cmd_decoder_autogen.h" |
11291 | 11151 |
11292 } // namespace gles2 | 11152 } // namespace gles2 |
11293 } // namespace gpu | 11153 } // namespace gpu |
OLD | NEW |