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 969 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
980 void DoReleaseTexImage2DCHROMIUM( | 980 void DoReleaseTexImage2DCHROMIUM( |
981 GLenum target, | 981 GLenum target, |
982 GLint image_id); | 982 GLint image_id); |
983 | 983 |
984 void DoTraceEndCHROMIUM(void); | 984 void DoTraceEndCHROMIUM(void); |
985 | 985 |
986 void DoDrawBuffersEXT(GLsizei count, const GLenum* bufs); | 986 void DoDrawBuffersEXT(GLsizei count, const GLenum* bufs); |
987 | 987 |
988 void DoLoseContextCHROMIUM(GLenum current, GLenum other); | 988 void DoLoseContextCHROMIUM(GLenum current, GLenum other); |
989 | 989 |
990 void DoMatrixLoadfCHROMIUM(GLenum matrix_mode, const GLfloat* matrix); | |
991 void DoMatrixLoadIdentityCHROMIUM(GLenum matrix_mode); | |
992 | |
990 // Creates a Program for the given program. | 993 // Creates a Program for the given program. |
991 Program* CreateProgram( | 994 Program* CreateProgram( |
992 GLuint client_id, GLuint service_id) { | 995 GLuint client_id, GLuint service_id) { |
993 return program_manager()->CreateProgram(client_id, service_id); | 996 return program_manager()->CreateProgram(client_id, service_id); |
994 } | 997 } |
995 | 998 |
996 // Gets the program info for the given program. Returns NULL if none exists. | 999 // Gets the program info for the given program. Returns NULL if none exists. |
997 Program* GetProgram(GLuint client_id) { | 1000 Program* GetProgram(GLuint client_id) { |
998 return program_manager()->GetProgram(client_id); | 1001 return program_manager()->GetProgram(client_id); |
999 } | 1002 } |
(...skipping 9641 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
10641 group_->set_draw_buffer(bufs[0]); | 10644 group_->set_draw_buffer(bufs[0]); |
10642 } | 10645 } |
10643 } | 10646 } |
10644 | 10647 |
10645 void GLES2DecoderImpl::DoLoseContextCHROMIUM(GLenum current, GLenum other) { | 10648 void GLES2DecoderImpl::DoLoseContextCHROMIUM(GLenum current, GLenum other) { |
10646 group_->LoseContexts(other); | 10649 group_->LoseContexts(other); |
10647 reset_status_ = current; | 10650 reset_status_ = current; |
10648 current_decoder_error_ = error::kLostContext; | 10651 current_decoder_error_ = error::kLostContext; |
10649 } | 10652 } |
10650 | 10653 |
10654 void GLES2DecoderImpl::DoMatrixLoadfCHROMIUM(GLenum matrix_mode, | |
10655 const GLfloat* matrix) { | |
10656 DCHECK(matrix_mode == GL_PATH_PROJECTION_CHROMIUM || | |
10657 matrix_mode == GL_PATH_MODELVIEW_CHROMIUM); | |
10658 if (!features().chromium_path_rendering) { | |
10659 LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION, | |
10660 "glMatrixLoadfCHROMIUM", | |
10661 "function not available"); | |
10662 return; | |
10663 } | |
10664 | |
10665 GLfloat* target_matrix = matrix_mode == GL_PATH_PROJECTION_CHROMIUM | |
10666 ? state_.projection_matrix | |
10667 : state_.modelview_matrix; | |
10668 memcpy(target_matrix, matrix, sizeof(GLfloat) * 16); | |
10669 glMatrixLoadfEXT(matrix_mode, matrix); | |
vmiura
2014/08/25 19:42:22
We're using GL_PATH_MODELVIEW_CHROMIUM/GL_PATH_PRO
Kimmo Kinnunen
2014/08/26 06:48:33
Done.
I added comments here and in gl_bindings.h
| |
10670 } | |
10671 | |
10672 void GLES2DecoderImpl::DoMatrixLoadIdentityCHROMIUM(GLenum matrix_mode) { | |
10673 DCHECK(matrix_mode == GL_PATH_PROJECTION_CHROMIUM || | |
10674 matrix_mode == GL_PATH_MODELVIEW_CHROMIUM); | |
10675 if (!features().chromium_path_rendering) { | |
10676 LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION, | |
10677 "glMatrixLoadIdentityCHROMIUM", | |
10678 "function not available"); | |
10679 return; | |
10680 } | |
10681 | |
10682 static GLfloat kIdentityMatrix[16] = {1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, | |
10683 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, | |
10684 0.0f, 0.0f, 0.0f, 1.0f}; | |
10685 | |
10686 GLfloat* target_matrix = matrix_mode == GL_PATH_PROJECTION_CHROMIUM | |
10687 ? state_.projection_matrix | |
10688 : state_.modelview_matrix; | |
10689 memcpy(target_matrix, kIdentityMatrix, sizeof(kIdentityMatrix)); | |
10690 glMatrixLoadIdentityEXT(matrix_mode); | |
10691 } | |
10692 | |
10651 bool GLES2DecoderImpl::ValidateAsyncTransfer( | 10693 bool GLES2DecoderImpl::ValidateAsyncTransfer( |
10652 const char* function_name, | 10694 const char* function_name, |
10653 TextureRef* texture_ref, | 10695 TextureRef* texture_ref, |
10654 GLenum target, | 10696 GLenum target, |
10655 GLint level, | 10697 GLint level, |
10656 const void * data) { | 10698 const void * data) { |
10657 // We only support async uploads to 2D textures for now. | 10699 // We only support async uploads to 2D textures for now. |
10658 if (GL_TEXTURE_2D != target) { | 10700 if (GL_TEXTURE_2D != target) { |
10659 LOCAL_SET_GL_ERROR_INVALID_ENUM(function_name, target, "target"); | 10701 LOCAL_SET_GL_ERROR_INVALID_ENUM(function_name, target, "target"); |
10660 return false; | 10702 return false; |
(...skipping 296 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
10957 } | 10999 } |
10958 } | 11000 } |
10959 | 11001 |
10960 // Include the auto-generated part of this file. We split this because it means | 11002 // Include the auto-generated part of this file. We split this because it means |
10961 // we can easily edit the non-auto generated parts right here in this file | 11003 // we can easily edit the non-auto generated parts right here in this file |
10962 // instead of having to edit some template or the code generator. | 11004 // instead of having to edit some template or the code generator. |
10963 #include "gpu/command_buffer/service/gles2_cmd_decoder_autogen.h" | 11005 #include "gpu/command_buffer/service/gles2_cmd_decoder_autogen.h" |
10964 | 11006 |
10965 } // namespace gles2 | 11007 } // namespace gles2 |
10966 } // namespace gpu | 11008 } // namespace gpu |
OLD | NEW |