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

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

Issue 906613005: Add glUniformBlockBinding to GPU command buffer. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@uniform
Patch Set: Created 5 years, 10 months 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 (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 9722 matching lines...) Expand 10 before | Expand all | Expand 10 after
9733 error::Error GLES2DecoderImpl::HandleGetActiveUniformBlockiv( 9733 error::Error GLES2DecoderImpl::HandleGetActiveUniformBlockiv(
9734 uint32 immediate_data_size, const void* cmd_data) { 9734 uint32 immediate_data_size, const void* cmd_data) {
9735 if (!unsafe_es3_apis_enabled()) 9735 if (!unsafe_es3_apis_enabled())
9736 return error::kUnknownCommand; 9736 return error::kUnknownCommand;
9737 const gles2::cmds::GetActiveUniformBlockiv& c = 9737 const gles2::cmds::GetActiveUniformBlockiv& c =
9738 *static_cast<const gles2::cmds::GetActiveUniformBlockiv*>(cmd_data); 9738 *static_cast<const gles2::cmds::GetActiveUniformBlockiv*>(cmd_data);
9739 GLuint program_id = c.program; 9739 GLuint program_id = c.program;
9740 GLuint index = static_cast<GLuint>(c.index); 9740 GLuint index = static_cast<GLuint>(c.index);
9741 GLenum pname = static_cast<GLenum>(c.pname); 9741 GLenum pname = static_cast<GLenum>(c.pname);
9742 Program* program = GetProgramInfoNotShader( 9742 Program* program = GetProgramInfoNotShader(
9743 program_id, "glGetActiveUniform"); 9743 program_id, "glGetActiveUniformBlockiv");
9744 if (!program) { 9744 if (!program) {
9745 return error::kNoError; 9745 return error::kNoError;
9746 } 9746 }
9747 GLuint service_id = program->service_id(); 9747 GLuint service_id = program->service_id();
9748 GLint link_status = GL_FALSE; 9748 GLint link_status = GL_FALSE;
9749 glGetProgramiv(service_id, GL_LINK_STATUS, &link_status); 9749 glGetProgramiv(service_id, GL_LINK_STATUS, &link_status);
9750 if (link_status != GL_TRUE) { 9750 if (link_status != GL_TRUE) {
9751 LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION, 9751 LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION,
9752 "glGetActiveActiveUniformBlockiv", "program not linked"); 9752 "glGetActiveActiveUniformBlockiv", "program not linked");
9753 return error::kNoError; 9753 return error::kNoError;
(...skipping 2068 matching lines...) Expand 10 before | Expand all | Expand 10 after
11822 error::Error GLES2DecoderImpl::HandleWaitAllAsyncTexImage2DCHROMIUM( 11822 error::Error GLES2DecoderImpl::HandleWaitAllAsyncTexImage2DCHROMIUM(
11823 uint32 immediate_data_size, 11823 uint32 immediate_data_size,
11824 const void* data) { 11824 const void* data) {
11825 TRACE_EVENT0("gpu", "GLES2DecoderImpl::HandleWaitAsyncTexImage2DCHROMIUM"); 11825 TRACE_EVENT0("gpu", "GLES2DecoderImpl::HandleWaitAsyncTexImage2DCHROMIUM");
11826 11826
11827 GetAsyncPixelTransferManager()->WaitAllAsyncTexImage2D(); 11827 GetAsyncPixelTransferManager()->WaitAllAsyncTexImage2D();
11828 ProcessFinishedAsyncTransfers(); 11828 ProcessFinishedAsyncTransfers();
11829 return error::kNoError; 11829 return error::kNoError;
11830 } 11830 }
11831 11831
11832 error::Error GLES2DecoderImpl::HandleUniformBlockBinding(
11833 uint32_t immediate_data_size, const void* cmd_data) {
11834 if (!unsafe_es3_apis_enabled())
11835 return error::kUnknownCommand;
11836 const gles2::cmds::UniformBlockBinding& c =
11837 *static_cast<const gles2::cmds::UniformBlockBinding*>(cmd_data);
11838 GLuint client_id = c.program;
11839 GLuint index = static_cast<GLuint>(c.index);
11840 GLuint binding = static_cast<GLuint>(c.binding);
11841 Program* program = GetProgramInfoNotShader(
11842 client_id, "glUniformBlockBinding");
11843 if (!program) {
11844 return error::kNoError;
11845 }
11846 GLuint service_id = program->service_id();
11847 glUniformBlockBinding(service_id, index, binding);
11848 return error::kNoError;
11849 }
11850
11832 void GLES2DecoderImpl::OnTextureRefDetachedFromFramebuffer( 11851 void GLES2DecoderImpl::OnTextureRefDetachedFromFramebuffer(
11833 TextureRef* texture_ref) { 11852 TextureRef* texture_ref) {
11834 Texture* texture = texture_ref->texture(); 11853 Texture* texture = texture_ref->texture();
11835 DoDidUseTexImageIfNeeded(texture, texture->target()); 11854 DoDidUseTexImageIfNeeded(texture, texture->target());
11836 } 11855 }
11837 11856
11838 void GLES2DecoderImpl::OnContextLostError() { 11857 void GLES2DecoderImpl::OnContextLostError() {
11839 group_->LoseContexts(GL_UNKNOWN_CONTEXT_RESET_ARB); 11858 group_->LoseContexts(GL_UNKNOWN_CONTEXT_RESET_ARB);
11840 } 11859 }
11841 11860
11842 void GLES2DecoderImpl::OnOutOfMemoryError() { 11861 void GLES2DecoderImpl::OnOutOfMemoryError() {
11843 if (lose_context_when_out_of_memory_) { 11862 if (lose_context_when_out_of_memory_) {
11844 group_->LoseContexts(GL_UNKNOWN_CONTEXT_RESET_ARB); 11863 group_->LoseContexts(GL_UNKNOWN_CONTEXT_RESET_ARB);
11845 } 11864 }
11846 } 11865 }
11847 11866
11848 // Include the auto-generated part of this file. We split this because it means 11867 // Include the auto-generated part of this file. We split this because it means
11849 // we can easily edit the non-auto generated parts right here in this file 11868 // we can easily edit the non-auto generated parts right here in this file
11850 // instead of having to edit some template or the code generator. 11869 // instead of having to edit some template or the code generator.
11851 #include "gpu/command_buffer/service/gles2_cmd_decoder_autogen.h" 11870 #include "gpu/command_buffer/service/gles2_cmd_decoder_autogen.h"
11852 11871
11853 } // namespace gles2 11872 } // namespace gles2
11854 } // namespace gpu 11873 } // namespace gpu
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698