| 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 <limits.h> | 7 #include <limits.h> |
| 8 #include <stddef.h> | 8 #include <stddef.h> |
| 9 #include <stdint.h> | 9 #include <stdint.h> |
| 10 #include <stdio.h> | 10 #include <stdio.h> |
| (...skipping 15709 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 15720 return error::kNoError; | 15720 return error::kNoError; |
| 15721 } | 15721 } |
| 15722 | 15722 |
| 15723 glPathParameteriNV(service_id, pname, value); | 15723 glPathParameteriNV(service_id, pname, value); |
| 15724 return error::kNoError; | 15724 return error::kNoError; |
| 15725 } | 15725 } |
| 15726 | 15726 |
| 15727 error::Error GLES2DecoderImpl::HandleStencilFillPathCHROMIUM( | 15727 error::Error GLES2DecoderImpl::HandleStencilFillPathCHROMIUM( |
| 15728 uint32_t immediate_data_size, | 15728 uint32_t immediate_data_size, |
| 15729 const void* cmd_data) { | 15729 const void* cmd_data) { |
| 15730 static const char kFunctionName[] = "glStencilFillPathCHROMIUM"; |
| 15730 const gles2::cmds::StencilFillPathCHROMIUM& c = | 15731 const gles2::cmds::StencilFillPathCHROMIUM& c = |
| 15731 *static_cast<const gles2::cmds::StencilFillPathCHROMIUM*>(cmd_data); | 15732 *static_cast<const gles2::cmds::StencilFillPathCHROMIUM*>(cmd_data); |
| 15732 if (!features().chromium_path_rendering) | 15733 if (!features().chromium_path_rendering) |
| 15733 return error::kUnknownCommand; | 15734 return error::kUnknownCommand; |
| 15734 PathCommandValidatorContext v(this, "glStencilFillPathCHROMIUM"); | 15735 PathCommandValidatorContext v(this, kFunctionName); |
| 15735 GLenum fill_mode = GL_COUNT_UP_CHROMIUM; | 15736 GLenum fill_mode = GL_COUNT_UP_CHROMIUM; |
| 15736 GLuint mask = 0; | 15737 GLuint mask = 0; |
| 15737 if (!v.GetFillModeAndMask(c, &fill_mode, &mask)) | 15738 if (!v.GetFillModeAndMask(c, &fill_mode, &mask)) |
| 15738 return v.error(); | 15739 return v.error(); |
| 15739 GLuint service_id = 0; | 15740 GLuint service_id = 0; |
| 15740 if (!path_manager()->GetPath(static_cast<GLuint>(c.path), &service_id)) { | 15741 if (!path_manager()->GetPath(static_cast<GLuint>(c.path), &service_id)) { |
| 15741 // "If /path/ does not name an existing path object, the command does | 15742 // "If /path/ does not name an existing path object, the command does |
| 15742 // nothing (and no error is generated)." | 15743 // nothing (and no error is generated)." |
| 15743 // This holds for other rendering functions, too. | 15744 // This holds for other rendering functions, too. |
| 15744 return error::kNoError; | 15745 return error::kNoError; |
| 15745 } | 15746 } |
| 15747 if (!CheckBoundDrawFramebufferValid(true, kFunctionName)) |
| 15748 return error::kNoError; |
| 15746 ApplyDirtyState(); | 15749 ApplyDirtyState(); |
| 15747 glStencilFillPathNV(service_id, fill_mode, mask); | 15750 glStencilFillPathNV(service_id, fill_mode, mask); |
| 15748 return error::kNoError; | 15751 return error::kNoError; |
| 15749 } | 15752 } |
| 15750 | 15753 |
| 15751 error::Error GLES2DecoderImpl::HandleStencilStrokePathCHROMIUM( | 15754 error::Error GLES2DecoderImpl::HandleStencilStrokePathCHROMIUM( |
| 15752 uint32_t immediate_data_size, | 15755 uint32_t immediate_data_size, |
| 15753 const void* cmd_data) { | 15756 const void* cmd_data) { |
| 15757 static const char kFunctionName[] = "glStencilStrokePathCHROMIUM"; |
| 15754 const gles2::cmds::StencilStrokePathCHROMIUM& c = | 15758 const gles2::cmds::StencilStrokePathCHROMIUM& c = |
| 15755 *static_cast<const gles2::cmds::StencilStrokePathCHROMIUM*>(cmd_data); | 15759 *static_cast<const gles2::cmds::StencilStrokePathCHROMIUM*>(cmd_data); |
| 15756 if (!features().chromium_path_rendering) | 15760 if (!features().chromium_path_rendering) |
| 15757 return error::kUnknownCommand; | 15761 return error::kUnknownCommand; |
| 15758 | 15762 |
| 15759 GLuint service_id = 0; | 15763 GLuint service_id = 0; |
| 15760 if (!path_manager()->GetPath(static_cast<GLuint>(c.path), &service_id)) { | 15764 if (!path_manager()->GetPath(static_cast<GLuint>(c.path), &service_id)) { |
| 15761 return error::kNoError; | 15765 return error::kNoError; |
| 15762 } | 15766 } |
| 15763 GLint reference = static_cast<GLint>(c.reference); | 15767 GLint reference = static_cast<GLint>(c.reference); |
| 15764 GLuint mask = static_cast<GLuint>(c.mask); | 15768 GLuint mask = static_cast<GLuint>(c.mask); |
| 15769 if (!CheckBoundDrawFramebufferValid(true, kFunctionName)) |
| 15770 return error::kNoError; |
| 15765 ApplyDirtyState(); | 15771 ApplyDirtyState(); |
| 15766 glStencilStrokePathNV(service_id, reference, mask); | 15772 glStencilStrokePathNV(service_id, reference, mask); |
| 15767 return error::kNoError; | 15773 return error::kNoError; |
| 15768 } | 15774 } |
| 15769 | 15775 |
| 15770 error::Error GLES2DecoderImpl::HandleCoverFillPathCHROMIUM( | 15776 error::Error GLES2DecoderImpl::HandleCoverFillPathCHROMIUM( |
| 15771 uint32_t immediate_data_size, | 15777 uint32_t immediate_data_size, |
| 15772 const void* cmd_data) { | 15778 const void* cmd_data) { |
| 15779 static const char kFunctionName[] = "glCoverFillPathCHROMIUM"; |
| 15773 const gles2::cmds::CoverFillPathCHROMIUM& c = | 15780 const gles2::cmds::CoverFillPathCHROMIUM& c = |
| 15774 *static_cast<const gles2::cmds::CoverFillPathCHROMIUM*>(cmd_data); | 15781 *static_cast<const gles2::cmds::CoverFillPathCHROMIUM*>(cmd_data); |
| 15775 if (!features().chromium_path_rendering) | 15782 if (!features().chromium_path_rendering) |
| 15776 return error::kUnknownCommand; | 15783 return error::kUnknownCommand; |
| 15777 | 15784 |
| 15778 PathCommandValidatorContext v(this, "glCoverFillPathCHROMIUM"); | 15785 PathCommandValidatorContext v(this, kFunctionName); |
| 15779 GLenum cover_mode = GL_BOUNDING_BOX_CHROMIUM; | 15786 GLenum cover_mode = GL_BOUNDING_BOX_CHROMIUM; |
| 15780 if (!v.GetCoverMode(c, &cover_mode)) | 15787 if (!v.GetCoverMode(c, &cover_mode)) |
| 15781 return v.error(); | 15788 return v.error(); |
| 15782 | 15789 |
| 15783 GLuint service_id = 0; | 15790 GLuint service_id = 0; |
| 15784 if (!path_manager()->GetPath(static_cast<GLuint>(c.path), &service_id)) | 15791 if (!path_manager()->GetPath(static_cast<GLuint>(c.path), &service_id)) |
| 15785 return error::kNoError; | 15792 return error::kNoError; |
| 15786 | 15793 if (!CheckBoundDrawFramebufferValid(true, kFunctionName)) |
| 15794 return error::kNoError; |
| 15787 ApplyDirtyState(); | 15795 ApplyDirtyState(); |
| 15788 glCoverFillPathNV(service_id, cover_mode); | 15796 glCoverFillPathNV(service_id, cover_mode); |
| 15789 return error::kNoError; | 15797 return error::kNoError; |
| 15790 } | 15798 } |
| 15791 | 15799 |
| 15792 error::Error GLES2DecoderImpl::HandleCoverStrokePathCHROMIUM( | 15800 error::Error GLES2DecoderImpl::HandleCoverStrokePathCHROMIUM( |
| 15793 uint32_t immediate_data_size, | 15801 uint32_t immediate_data_size, |
| 15794 const void* cmd_data) { | 15802 const void* cmd_data) { |
| 15803 static const char kFunctionName[] = "glCoverStrokePathCHROMIUM"; |
| 15795 const gles2::cmds::CoverStrokePathCHROMIUM& c = | 15804 const gles2::cmds::CoverStrokePathCHROMIUM& c = |
| 15796 *static_cast<const gles2::cmds::CoverStrokePathCHROMIUM*>(cmd_data); | 15805 *static_cast<const gles2::cmds::CoverStrokePathCHROMIUM*>(cmd_data); |
| 15797 if (!features().chromium_path_rendering) | 15806 if (!features().chromium_path_rendering) |
| 15798 return error::kUnknownCommand; | 15807 return error::kUnknownCommand; |
| 15799 | 15808 |
| 15800 PathCommandValidatorContext v(this, "glCoverStrokePathCHROMIUM"); | 15809 PathCommandValidatorContext v(this, kFunctionName); |
| 15801 GLenum cover_mode = GL_BOUNDING_BOX_CHROMIUM; | 15810 GLenum cover_mode = GL_BOUNDING_BOX_CHROMIUM; |
| 15802 if (!v.GetCoverMode(c, &cover_mode)) | 15811 if (!v.GetCoverMode(c, &cover_mode)) |
| 15803 return v.error(); | 15812 return v.error(); |
| 15804 | 15813 |
| 15805 GLuint service_id = 0; | 15814 GLuint service_id = 0; |
| 15806 if (!path_manager()->GetPath(static_cast<GLuint>(c.path), &service_id)) | 15815 if (!path_manager()->GetPath(static_cast<GLuint>(c.path), &service_id)) |
| 15807 return error::kNoError; | 15816 return error::kNoError; |
| 15808 | 15817 |
| 15818 if (!CheckBoundDrawFramebufferValid(true, kFunctionName)) |
| 15819 return error::kNoError; |
| 15809 ApplyDirtyState(); | 15820 ApplyDirtyState(); |
| 15810 glCoverStrokePathNV(service_id, cover_mode); | 15821 glCoverStrokePathNV(service_id, cover_mode); |
| 15811 return error::kNoError; | 15822 return error::kNoError; |
| 15812 } | 15823 } |
| 15813 | 15824 |
| 15814 error::Error GLES2DecoderImpl::HandleStencilThenCoverFillPathCHROMIUM( | 15825 error::Error GLES2DecoderImpl::HandleStencilThenCoverFillPathCHROMIUM( |
| 15815 uint32_t immediate_data_size, | 15826 uint32_t immediate_data_size, |
| 15816 const void* cmd_data) { | 15827 const void* cmd_data) { |
| 15828 static const char kFunctionName[] = "glStencilThenCoverFillPathCHROMIUM"; |
| 15817 const gles2::cmds::StencilThenCoverFillPathCHROMIUM& c = | 15829 const gles2::cmds::StencilThenCoverFillPathCHROMIUM& c = |
| 15818 *static_cast<const gles2::cmds::StencilThenCoverFillPathCHROMIUM*>( | 15830 *static_cast<const gles2::cmds::StencilThenCoverFillPathCHROMIUM*>( |
| 15819 cmd_data); | 15831 cmd_data); |
| 15820 if (!features().chromium_path_rendering) | 15832 if (!features().chromium_path_rendering) |
| 15821 return error::kUnknownCommand; | 15833 return error::kUnknownCommand; |
| 15822 | 15834 |
| 15823 PathCommandValidatorContext v(this, "glStencilThenCoverFillPathCHROMIUM"); | 15835 PathCommandValidatorContext v(this, kFunctionName); |
| 15824 GLenum fill_mode = GL_COUNT_UP_CHROMIUM; | 15836 GLenum fill_mode = GL_COUNT_UP_CHROMIUM; |
| 15825 GLuint mask = 0; | 15837 GLuint mask = 0; |
| 15826 GLenum cover_mode = GL_BOUNDING_BOX_CHROMIUM; | 15838 GLenum cover_mode = GL_BOUNDING_BOX_CHROMIUM; |
| 15827 if (!v.GetFillModeAndMask(c, &fill_mode, &mask) || | 15839 if (!v.GetFillModeAndMask(c, &fill_mode, &mask) || |
| 15828 !v.GetCoverMode(c, &cover_mode)) | 15840 !v.GetCoverMode(c, &cover_mode)) |
| 15829 return v.error(); | 15841 return v.error(); |
| 15830 | 15842 |
| 15831 GLuint service_id = 0; | 15843 GLuint service_id = 0; |
| 15832 if (!path_manager()->GetPath(static_cast<GLuint>(c.path), &service_id)) | 15844 if (!path_manager()->GetPath(static_cast<GLuint>(c.path), &service_id)) |
| 15833 return error::kNoError; | 15845 return error::kNoError; |
| 15834 | 15846 |
| 15847 if (!CheckBoundDrawFramebufferValid(true, kFunctionName)) |
| 15848 return error::kNoError; |
| 15835 ApplyDirtyState(); | 15849 ApplyDirtyState(); |
| 15836 glStencilThenCoverFillPathNV(service_id, fill_mode, mask, cover_mode); | 15850 glStencilThenCoverFillPathNV(service_id, fill_mode, mask, cover_mode); |
| 15837 return error::kNoError; | 15851 return error::kNoError; |
| 15838 } | 15852 } |
| 15839 | 15853 |
| 15840 error::Error GLES2DecoderImpl::HandleStencilThenCoverStrokePathCHROMIUM( | 15854 error::Error GLES2DecoderImpl::HandleStencilThenCoverStrokePathCHROMIUM( |
| 15841 uint32_t immediate_data_size, | 15855 uint32_t immediate_data_size, |
| 15842 const void* cmd_data) { | 15856 const void* cmd_data) { |
| 15857 static const char kFunctionName[] = "glStencilThenCoverStrokePathCHROMIUM"; |
| 15843 const gles2::cmds::StencilThenCoverStrokePathCHROMIUM& c = | 15858 const gles2::cmds::StencilThenCoverStrokePathCHROMIUM& c = |
| 15844 *static_cast<const gles2::cmds::StencilThenCoverStrokePathCHROMIUM*>( | 15859 *static_cast<const gles2::cmds::StencilThenCoverStrokePathCHROMIUM*>( |
| 15845 cmd_data); | 15860 cmd_data); |
| 15846 if (!features().chromium_path_rendering) | 15861 if (!features().chromium_path_rendering) |
| 15847 return error::kUnknownCommand; | 15862 return error::kUnknownCommand; |
| 15848 | 15863 |
| 15849 PathCommandValidatorContext v(this, "glStencilThenCoverStrokePathCHROMIUM"); | 15864 PathCommandValidatorContext v(this, kFunctionName); |
| 15850 GLenum cover_mode = GL_BOUNDING_BOX_CHROMIUM; | 15865 GLenum cover_mode = GL_BOUNDING_BOX_CHROMIUM; |
| 15851 if (!v.GetCoverMode(c, &cover_mode)) | 15866 if (!v.GetCoverMode(c, &cover_mode)) |
| 15852 return v.error(); | 15867 return v.error(); |
| 15853 | 15868 |
| 15854 GLuint service_id = 0; | 15869 GLuint service_id = 0; |
| 15855 if (!path_manager()->GetPath(static_cast<GLuint>(c.path), &service_id)) | 15870 if (!path_manager()->GetPath(static_cast<GLuint>(c.path), &service_id)) |
| 15856 return error::kNoError; | 15871 return error::kNoError; |
| 15857 | 15872 |
| 15858 GLint reference = static_cast<GLint>(c.reference); | 15873 GLint reference = static_cast<GLint>(c.reference); |
| 15859 GLuint mask = static_cast<GLuint>(c.mask); | 15874 GLuint mask = static_cast<GLuint>(c.mask); |
| 15875 |
| 15876 if (!CheckBoundDrawFramebufferValid(true, kFunctionName)) |
| 15877 return error::kNoError; |
| 15860 ApplyDirtyState(); | 15878 ApplyDirtyState(); |
| 15861 glStencilThenCoverStrokePathNV(service_id, reference, mask, cover_mode); | 15879 glStencilThenCoverStrokePathNV(service_id, reference, mask, cover_mode); |
| 15862 return error::kNoError; | 15880 return error::kNoError; |
| 15863 } | 15881 } |
| 15864 | 15882 |
| 15865 error::Error GLES2DecoderImpl::HandleStencilFillPathInstancedCHROMIUM( | 15883 error::Error GLES2DecoderImpl::HandleStencilFillPathInstancedCHROMIUM( |
| 15866 uint32_t immediate_data_size, | 15884 uint32_t immediate_data_size, |
| 15867 const void* cmd_data) { | 15885 const void* cmd_data) { |
| 15886 static const char kFunctionName[] = "glStencilFillPathInstancedCHROMIUM"; |
| 15868 const gles2::cmds::StencilFillPathInstancedCHROMIUM& c = | 15887 const gles2::cmds::StencilFillPathInstancedCHROMIUM& c = |
| 15869 *static_cast<const gles2::cmds::StencilFillPathInstancedCHROMIUM*>( | 15888 *static_cast<const gles2::cmds::StencilFillPathInstancedCHROMIUM*>( |
| 15870 cmd_data); | 15889 cmd_data); |
| 15871 if (!features().chromium_path_rendering) | 15890 if (!features().chromium_path_rendering) |
| 15872 return error::kUnknownCommand; | 15891 return error::kUnknownCommand; |
| 15873 | 15892 |
| 15874 PathCommandValidatorContext v(this, "glStencilFillPathInstancedCHROMIUM"); | 15893 PathCommandValidatorContext v(this, kFunctionName); |
| 15875 GLuint num_paths = 0; | 15894 GLuint num_paths = 0; |
| 15876 GLenum path_name_type = GL_NONE; | 15895 GLenum path_name_type = GL_NONE; |
| 15877 GLenum fill_mode = GL_COUNT_UP_CHROMIUM; | 15896 GLenum fill_mode = GL_COUNT_UP_CHROMIUM; |
| 15878 GLuint mask = 0; | 15897 GLuint mask = 0; |
| 15879 GLenum transform_type = GL_NONE; | 15898 GLenum transform_type = GL_NONE; |
| 15880 if (!v.GetPathCountAndType(c, &num_paths, &path_name_type) || | 15899 if (!v.GetPathCountAndType(c, &num_paths, &path_name_type) || |
| 15881 !v.GetFillModeAndMask(c, &fill_mode, &mask) || | 15900 !v.GetFillModeAndMask(c, &fill_mode, &mask) || |
| 15882 !v.GetTransformType(c, &transform_type)) | 15901 !v.GetTransformType(c, &transform_type)) |
| 15883 return v.error(); | 15902 return v.error(); |
| 15884 | 15903 |
| 15885 if (num_paths == 0) | 15904 if (num_paths == 0) |
| 15886 return error::kNoError; | 15905 return error::kNoError; |
| 15887 | 15906 |
| 15888 std::unique_ptr<GLuint[]> paths; | 15907 std::unique_ptr<GLuint[]> paths; |
| 15889 if (!v.GetPathNameData(c, num_paths, path_name_type, &paths)) | 15908 if (!v.GetPathNameData(c, num_paths, path_name_type, &paths)) |
| 15890 return v.error(); | 15909 return v.error(); |
| 15891 | 15910 |
| 15892 const GLfloat* transforms = nullptr; | 15911 const GLfloat* transforms = nullptr; |
| 15893 if (!v.GetTransforms(c, num_paths, transform_type, &transforms)) | 15912 if (!v.GetTransforms(c, num_paths, transform_type, &transforms)) |
| 15894 return v.error(); | 15913 return v.error(); |
| 15895 | 15914 |
| 15915 if (!CheckBoundDrawFramebufferValid(true, kFunctionName)) |
| 15916 return error::kNoError; |
| 15896 ApplyDirtyState(); | 15917 ApplyDirtyState(); |
| 15897 glStencilFillPathInstancedNV(num_paths, GL_UNSIGNED_INT, paths.get(), 0, | 15918 glStencilFillPathInstancedNV(num_paths, GL_UNSIGNED_INT, paths.get(), 0, |
| 15898 fill_mode, mask, transform_type, transforms); | 15919 fill_mode, mask, transform_type, transforms); |
| 15899 return error::kNoError; | 15920 return error::kNoError; |
| 15900 } | 15921 } |
| 15901 | 15922 |
| 15902 error::Error GLES2DecoderImpl::HandleStencilStrokePathInstancedCHROMIUM( | 15923 error::Error GLES2DecoderImpl::HandleStencilStrokePathInstancedCHROMIUM( |
| 15903 uint32_t immediate_data_size, | 15924 uint32_t immediate_data_size, |
| 15904 const void* cmd_data) { | 15925 const void* cmd_data) { |
| 15926 static const char kFunctionName[] = "glStencilStrokePathInstancedCHROMIUM"; |
| 15905 const gles2::cmds::StencilStrokePathInstancedCHROMIUM& c = | 15927 const gles2::cmds::StencilStrokePathInstancedCHROMIUM& c = |
| 15906 *static_cast<const gles2::cmds::StencilStrokePathInstancedCHROMIUM*>( | 15928 *static_cast<const gles2::cmds::StencilStrokePathInstancedCHROMIUM*>( |
| 15907 cmd_data); | 15929 cmd_data); |
| 15908 if (!features().chromium_path_rendering) | 15930 if (!features().chromium_path_rendering) |
| 15909 return error::kUnknownCommand; | 15931 return error::kUnknownCommand; |
| 15910 | 15932 |
| 15911 PathCommandValidatorContext v(this, "glStencilStrokePathInstancedCHROMIUM"); | 15933 PathCommandValidatorContext v(this, kFunctionName); |
| 15912 GLuint num_paths = 0; | 15934 GLuint num_paths = 0; |
| 15913 GLenum path_name_type = GL_NONE; | 15935 GLenum path_name_type = GL_NONE; |
| 15914 GLenum transform_type = GL_NONE; | 15936 GLenum transform_type = GL_NONE; |
| 15915 if (!v.GetPathCountAndType(c, &num_paths, &path_name_type) || | 15937 if (!v.GetPathCountAndType(c, &num_paths, &path_name_type) || |
| 15916 !v.GetTransformType(c, &transform_type)) | 15938 !v.GetTransformType(c, &transform_type)) |
| 15917 return v.error(); | 15939 return v.error(); |
| 15918 | 15940 |
| 15919 if (num_paths == 0) | 15941 if (num_paths == 0) |
| 15920 return error::kNoError; | 15942 return error::kNoError; |
| 15921 | 15943 |
| 15922 std::unique_ptr<GLuint[]> paths; | 15944 std::unique_ptr<GLuint[]> paths; |
| 15923 if (!v.GetPathNameData(c, num_paths, path_name_type, &paths)) | 15945 if (!v.GetPathNameData(c, num_paths, path_name_type, &paths)) |
| 15924 return v.error(); | 15946 return v.error(); |
| 15925 | 15947 |
| 15926 const GLfloat* transforms = nullptr; | 15948 const GLfloat* transforms = nullptr; |
| 15927 if (!v.GetTransforms(c, num_paths, transform_type, &transforms)) | 15949 if (!v.GetTransforms(c, num_paths, transform_type, &transforms)) |
| 15928 return v.error(); | 15950 return v.error(); |
| 15929 | 15951 |
| 15930 GLint reference = static_cast<GLint>(c.reference); | 15952 GLint reference = static_cast<GLint>(c.reference); |
| 15931 GLuint mask = static_cast<GLuint>(c.mask); | 15953 GLuint mask = static_cast<GLuint>(c.mask); |
| 15954 if (!CheckBoundDrawFramebufferValid(true, kFunctionName)) |
| 15955 return error::kNoError; |
| 15932 ApplyDirtyState(); | 15956 ApplyDirtyState(); |
| 15933 glStencilStrokePathInstancedNV(num_paths, GL_UNSIGNED_INT, paths.get(), 0, | 15957 glStencilStrokePathInstancedNV(num_paths, GL_UNSIGNED_INT, paths.get(), 0, |
| 15934 reference, mask, transform_type, transforms); | 15958 reference, mask, transform_type, transforms); |
| 15935 return error::kNoError; | 15959 return error::kNoError; |
| 15936 } | 15960 } |
| 15937 | 15961 |
| 15938 error::Error GLES2DecoderImpl::HandleCoverFillPathInstancedCHROMIUM( | 15962 error::Error GLES2DecoderImpl::HandleCoverFillPathInstancedCHROMIUM( |
| 15939 uint32_t immediate_data_size, | 15963 uint32_t immediate_data_size, |
| 15940 const void* cmd_data) { | 15964 const void* cmd_data) { |
| 15965 static const char kFunctionName[] = "glCoverFillPathInstancedCHROMIUM"; |
| 15941 const gles2::cmds::CoverFillPathInstancedCHROMIUM& c = | 15966 const gles2::cmds::CoverFillPathInstancedCHROMIUM& c = |
| 15942 *static_cast<const gles2::cmds::CoverFillPathInstancedCHROMIUM*>( | 15967 *static_cast<const gles2::cmds::CoverFillPathInstancedCHROMIUM*>( |
| 15943 cmd_data); | 15968 cmd_data); |
| 15944 if (!features().chromium_path_rendering) | 15969 if (!features().chromium_path_rendering) |
| 15945 return error::kUnknownCommand; | 15970 return error::kUnknownCommand; |
| 15946 | 15971 |
| 15947 PathCommandValidatorContext v(this, "glCoverFillPathInstancedCHROMIUM"); | 15972 PathCommandValidatorContext v(this, kFunctionName); |
| 15948 GLuint num_paths = 0; | 15973 GLuint num_paths = 0; |
| 15949 GLenum path_name_type = GL_NONE; | 15974 GLenum path_name_type = GL_NONE; |
| 15950 GLenum cover_mode = GL_BOUNDING_BOX_OF_BOUNDING_BOXES_CHROMIUM; | 15975 GLenum cover_mode = GL_BOUNDING_BOX_OF_BOUNDING_BOXES_CHROMIUM; |
| 15951 GLenum transform_type = GL_NONE; | 15976 GLenum transform_type = GL_NONE; |
| 15952 if (!v.GetPathCountAndType(c, &num_paths, &path_name_type) || | 15977 if (!v.GetPathCountAndType(c, &num_paths, &path_name_type) || |
| 15953 !v.GetCoverMode(c, &cover_mode) || | 15978 !v.GetCoverMode(c, &cover_mode) || |
| 15954 !v.GetTransformType(c, &transform_type)) | 15979 !v.GetTransformType(c, &transform_type)) |
| 15955 return v.error(); | 15980 return v.error(); |
| 15956 | 15981 |
| 15957 if (num_paths == 0) | 15982 if (num_paths == 0) |
| 15958 return error::kNoError; | 15983 return error::kNoError; |
| 15959 | 15984 |
| 15960 std::unique_ptr<GLuint[]> paths; | 15985 std::unique_ptr<GLuint[]> paths; |
| 15961 if (!v.GetPathNameData(c, num_paths, path_name_type, &paths)) | 15986 if (!v.GetPathNameData(c, num_paths, path_name_type, &paths)) |
| 15962 return v.error(); | 15987 return v.error(); |
| 15963 | 15988 |
| 15964 const GLfloat* transforms = nullptr; | 15989 const GLfloat* transforms = nullptr; |
| 15965 if (!v.GetTransforms(c, num_paths, transform_type, &transforms)) | 15990 if (!v.GetTransforms(c, num_paths, transform_type, &transforms)) |
| 15966 return v.error(); | 15991 return v.error(); |
| 15967 | 15992 |
| 15993 if (!CheckBoundDrawFramebufferValid(true, kFunctionName)) |
| 15994 return error::kNoError; |
| 15968 ApplyDirtyState(); | 15995 ApplyDirtyState(); |
| 15969 glCoverFillPathInstancedNV(num_paths, GL_UNSIGNED_INT, paths.get(), 0, | 15996 glCoverFillPathInstancedNV(num_paths, GL_UNSIGNED_INT, paths.get(), 0, |
| 15970 cover_mode, transform_type, transforms); | 15997 cover_mode, transform_type, transforms); |
| 15971 return error::kNoError; | 15998 return error::kNoError; |
| 15972 } | 15999 } |
| 15973 | 16000 |
| 15974 error::Error GLES2DecoderImpl::HandleCoverStrokePathInstancedCHROMIUM( | 16001 error::Error GLES2DecoderImpl::HandleCoverStrokePathInstancedCHROMIUM( |
| 15975 uint32_t immediate_data_size, | 16002 uint32_t immediate_data_size, |
| 15976 const void* cmd_data) { | 16003 const void* cmd_data) { |
| 16004 static const char kFunctionName[] = "glCoverStrokePathInstancedCHROMIUM"; |
| 15977 const gles2::cmds::CoverStrokePathInstancedCHROMIUM& c = | 16005 const gles2::cmds::CoverStrokePathInstancedCHROMIUM& c = |
| 15978 *static_cast<const gles2::cmds::CoverStrokePathInstancedCHROMIUM*>( | 16006 *static_cast<const gles2::cmds::CoverStrokePathInstancedCHROMIUM*>( |
| 15979 cmd_data); | 16007 cmd_data); |
| 15980 if (!features().chromium_path_rendering) | 16008 if (!features().chromium_path_rendering) |
| 15981 return error::kUnknownCommand; | 16009 return error::kUnknownCommand; |
| 15982 | 16010 |
| 15983 PathCommandValidatorContext v(this, "glCoverStrokePathInstancedCHROMIUM"); | 16011 PathCommandValidatorContext v(this, kFunctionName); |
| 15984 GLuint num_paths = 0; | 16012 GLuint num_paths = 0; |
| 15985 GLenum path_name_type = GL_NONE; | 16013 GLenum path_name_type = GL_NONE; |
| 15986 GLenum cover_mode = GL_BOUNDING_BOX_OF_BOUNDING_BOXES_CHROMIUM; | 16014 GLenum cover_mode = GL_BOUNDING_BOX_OF_BOUNDING_BOXES_CHROMIUM; |
| 15987 GLenum transform_type = GL_NONE; | 16015 GLenum transform_type = GL_NONE; |
| 15988 if (!v.GetPathCountAndType(c, &num_paths, &path_name_type) || | 16016 if (!v.GetPathCountAndType(c, &num_paths, &path_name_type) || |
| 15989 !v.GetCoverMode(c, &cover_mode) || | 16017 !v.GetCoverMode(c, &cover_mode) || |
| 15990 !v.GetTransformType(c, &transform_type)) | 16018 !v.GetTransformType(c, &transform_type)) |
| 15991 return v.error(); | 16019 return v.error(); |
| 15992 | 16020 |
| 15993 if (num_paths == 0) | 16021 if (num_paths == 0) |
| 15994 return error::kNoError; | 16022 return error::kNoError; |
| 15995 | 16023 |
| 15996 std::unique_ptr<GLuint[]> paths; | 16024 std::unique_ptr<GLuint[]> paths; |
| 15997 if (!v.GetPathNameData(c, num_paths, path_name_type, &paths)) | 16025 if (!v.GetPathNameData(c, num_paths, path_name_type, &paths)) |
| 15998 return v.error(); | 16026 return v.error(); |
| 15999 | 16027 |
| 16000 const GLfloat* transforms = nullptr; | 16028 const GLfloat* transforms = nullptr; |
| 16001 if (!v.GetTransforms(c, num_paths, transform_type, &transforms)) | 16029 if (!v.GetTransforms(c, num_paths, transform_type, &transforms)) |
| 16002 return v.error(); | 16030 return v.error(); |
| 16003 | 16031 |
| 16032 if (!CheckBoundDrawFramebufferValid(true, kFunctionName)) |
| 16033 return error::kNoError; |
| 16004 ApplyDirtyState(); | 16034 ApplyDirtyState(); |
| 16005 glCoverStrokePathInstancedNV(num_paths, GL_UNSIGNED_INT, paths.get(), 0, | 16035 glCoverStrokePathInstancedNV(num_paths, GL_UNSIGNED_INT, paths.get(), 0, |
| 16006 cover_mode, transform_type, transforms); | 16036 cover_mode, transform_type, transforms); |
| 16007 return error::kNoError; | 16037 return error::kNoError; |
| 16008 } | 16038 } |
| 16009 | 16039 |
| 16010 error::Error GLES2DecoderImpl::HandleStencilThenCoverFillPathInstancedCHROMIUM( | 16040 error::Error GLES2DecoderImpl::HandleStencilThenCoverFillPathInstancedCHROMIUM( |
| 16011 uint32_t immediate_data_size, | 16041 uint32_t immediate_data_size, |
| 16012 const void* cmd_data) { | 16042 const void* cmd_data) { |
| 16043 static const char kFunctionName[] = |
| 16044 "glStencilThenCoverFillPathInstancedCHROMIUM"; |
| 16013 const gles2::cmds::StencilThenCoverFillPathInstancedCHROMIUM& c = | 16045 const gles2::cmds::StencilThenCoverFillPathInstancedCHROMIUM& c = |
| 16014 *static_cast< | 16046 *static_cast< |
| 16015 const gles2::cmds::StencilThenCoverFillPathInstancedCHROMIUM*>( | 16047 const gles2::cmds::StencilThenCoverFillPathInstancedCHROMIUM*>( |
| 16016 cmd_data); | 16048 cmd_data); |
| 16017 if (!features().chromium_path_rendering) | 16049 if (!features().chromium_path_rendering) |
| 16018 return error::kUnknownCommand; | 16050 return error::kUnknownCommand; |
| 16019 PathCommandValidatorContext v(this, | 16051 PathCommandValidatorContext v(this, kFunctionName); |
| 16020 "glStencilThenCoverFillPathInstancedCHROMIUM"); | 16052 |
| 16021 GLuint num_paths = 0; | 16053 GLuint num_paths = 0; |
| 16022 GLenum path_name_type = GL_NONE; | 16054 GLenum path_name_type = GL_NONE; |
| 16023 GLenum fill_mode = GL_COUNT_UP_CHROMIUM; | 16055 GLenum fill_mode = GL_COUNT_UP_CHROMIUM; |
| 16024 GLuint mask = 0; | 16056 GLuint mask = 0; |
| 16025 GLenum cover_mode = GL_BOUNDING_BOX_OF_BOUNDING_BOXES_CHROMIUM; | 16057 GLenum cover_mode = GL_BOUNDING_BOX_OF_BOUNDING_BOXES_CHROMIUM; |
| 16026 GLenum transform_type = GL_NONE; | 16058 GLenum transform_type = GL_NONE; |
| 16027 if (!v.GetPathCountAndType(c, &num_paths, &path_name_type) || | 16059 if (!v.GetPathCountAndType(c, &num_paths, &path_name_type) || |
| 16028 !v.GetFillModeAndMask(c, &fill_mode, &mask) || | 16060 !v.GetFillModeAndMask(c, &fill_mode, &mask) || |
| 16029 !v.GetCoverMode(c, &cover_mode) || | 16061 !v.GetCoverMode(c, &cover_mode) || |
| 16030 !v.GetTransformType(c, &transform_type)) | 16062 !v.GetTransformType(c, &transform_type)) |
| 16031 return v.error(); | 16063 return v.error(); |
| 16032 | 16064 |
| 16033 if (num_paths == 0) | 16065 if (num_paths == 0) |
| 16034 return error::kNoError; | 16066 return error::kNoError; |
| 16035 | 16067 |
| 16036 std::unique_ptr<GLuint[]> paths; | 16068 std::unique_ptr<GLuint[]> paths; |
| 16037 if (!v.GetPathNameData(c, num_paths, path_name_type, &paths)) | 16069 if (!v.GetPathNameData(c, num_paths, path_name_type, &paths)) |
| 16038 return v.error(); | 16070 return v.error(); |
| 16039 | 16071 |
| 16040 const GLfloat* transforms = nullptr; | 16072 const GLfloat* transforms = nullptr; |
| 16041 if (!v.GetTransforms(c, num_paths, transform_type, &transforms)) | 16073 if (!v.GetTransforms(c, num_paths, transform_type, &transforms)) |
| 16042 return v.error(); | 16074 return v.error(); |
| 16043 | 16075 |
| 16076 if (!CheckBoundDrawFramebufferValid(true, kFunctionName)) |
| 16077 return error::kNoError; |
| 16044 ApplyDirtyState(); | 16078 ApplyDirtyState(); |
| 16045 glStencilThenCoverFillPathInstancedNV(num_paths, GL_UNSIGNED_INT, paths.get(), | 16079 glStencilThenCoverFillPathInstancedNV(num_paths, GL_UNSIGNED_INT, paths.get(), |
| 16046 0, fill_mode, mask, cover_mode, | 16080 0, fill_mode, mask, cover_mode, |
| 16047 transform_type, transforms); | 16081 transform_type, transforms); |
| 16048 return error::kNoError; | 16082 return error::kNoError; |
| 16049 } | 16083 } |
| 16050 | 16084 |
| 16051 error::Error | 16085 error::Error |
| 16052 GLES2DecoderImpl::HandleStencilThenCoverStrokePathInstancedCHROMIUM( | 16086 GLES2DecoderImpl::HandleStencilThenCoverStrokePathInstancedCHROMIUM( |
| 16053 uint32_t immediate_data_size, | 16087 uint32_t immediate_data_size, |
| 16054 const void* cmd_data) { | 16088 const void* cmd_data) { |
| 16089 static const char kFunctionName[] = |
| 16090 "glStencilThenCoverStrokeInstancedCHROMIUM"; |
| 16055 const gles2::cmds::StencilThenCoverStrokePathInstancedCHROMIUM& c = | 16091 const gles2::cmds::StencilThenCoverStrokePathInstancedCHROMIUM& c = |
| 16056 *static_cast< | 16092 *static_cast< |
| 16057 const gles2::cmds::StencilThenCoverStrokePathInstancedCHROMIUM*>( | 16093 const gles2::cmds::StencilThenCoverStrokePathInstancedCHROMIUM*>( |
| 16058 cmd_data); | 16094 cmd_data); |
| 16059 if (!features().chromium_path_rendering) | 16095 if (!features().chromium_path_rendering) |
| 16060 return error::kUnknownCommand; | 16096 return error::kUnknownCommand; |
| 16061 PathCommandValidatorContext v(this, | 16097 PathCommandValidatorContext v(this, kFunctionName); |
| 16062 "glStencilThenCoverStrokeInstancedCHROMIUM"); | |
| 16063 GLuint num_paths = 0; | 16098 GLuint num_paths = 0; |
| 16064 GLenum path_name_type = GL_NONE; | 16099 GLenum path_name_type = GL_NONE; |
| 16065 GLenum cover_mode = GL_BOUNDING_BOX_OF_BOUNDING_BOXES_CHROMIUM; | 16100 GLenum cover_mode = GL_BOUNDING_BOX_OF_BOUNDING_BOXES_CHROMIUM; |
| 16066 GLenum transform_type = GL_NONE; | 16101 GLenum transform_type = GL_NONE; |
| 16067 if (!v.GetPathCountAndType(c, &num_paths, &path_name_type) || | 16102 if (!v.GetPathCountAndType(c, &num_paths, &path_name_type) || |
| 16068 !v.GetCoverMode(c, &cover_mode) || | 16103 !v.GetCoverMode(c, &cover_mode) || |
| 16069 !v.GetTransformType(c, &transform_type)) | 16104 !v.GetTransformType(c, &transform_type)) |
| 16070 return v.error(); | 16105 return v.error(); |
| 16071 | 16106 |
| 16072 if (num_paths == 0) | 16107 if (num_paths == 0) |
| 16073 return error::kNoError; | 16108 return error::kNoError; |
| 16074 | 16109 |
| 16075 std::unique_ptr<GLuint[]> paths; | 16110 std::unique_ptr<GLuint[]> paths; |
| 16076 if (!v.GetPathNameData(c, num_paths, path_name_type, &paths)) | 16111 if (!v.GetPathNameData(c, num_paths, path_name_type, &paths)) |
| 16077 return v.error(); | 16112 return v.error(); |
| 16078 | 16113 |
| 16079 const GLfloat* transforms = nullptr; | 16114 const GLfloat* transforms = nullptr; |
| 16080 if (!v.GetTransforms(c, num_paths, transform_type, &transforms)) | 16115 if (!v.GetTransforms(c, num_paths, transform_type, &transforms)) |
| 16081 return v.error(); | 16116 return v.error(); |
| 16082 | 16117 |
| 16083 GLint reference = static_cast<GLint>(c.reference); | 16118 GLint reference = static_cast<GLint>(c.reference); |
| 16084 GLuint mask = static_cast<GLuint>(c.mask); | 16119 GLuint mask = static_cast<GLuint>(c.mask); |
| 16120 |
| 16121 if (!CheckBoundDrawFramebufferValid(true, kFunctionName)) |
| 16122 return error::kNoError; |
| 16085 ApplyDirtyState(); | 16123 ApplyDirtyState(); |
| 16086 glStencilThenCoverStrokePathInstancedNV( | 16124 glStencilThenCoverStrokePathInstancedNV( |
| 16087 num_paths, GL_UNSIGNED_INT, paths.get(), 0, reference, mask, cover_mode, | 16125 num_paths, GL_UNSIGNED_INT, paths.get(), 0, reference, mask, cover_mode, |
| 16088 transform_type, transforms); | 16126 transform_type, transforms); |
| 16089 return error::kNoError; | 16127 return error::kNoError; |
| 16090 } | 16128 } |
| 16091 | 16129 |
| 16092 void GLES2DecoderImpl::DoBindFragmentInputLocationCHROMIUM( | 16130 void GLES2DecoderImpl::DoBindFragmentInputLocationCHROMIUM( |
| 16093 GLuint program_id, | 16131 GLuint program_id, |
| 16094 GLint location, | 16132 GLint location, |
| (...skipping 262 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 16357 } | 16395 } |
| 16358 | 16396 |
| 16359 // Include the auto-generated part of this file. We split this because it means | 16397 // Include the auto-generated part of this file. We split this because it means |
| 16360 // we can easily edit the non-auto generated parts right here in this file | 16398 // we can easily edit the non-auto generated parts right here in this file |
| 16361 // instead of having to edit some template or the code generator. | 16399 // instead of having to edit some template or the code generator. |
| 16362 #include "base/macros.h" | 16400 #include "base/macros.h" |
| 16363 #include "gpu/command_buffer/service/gles2_cmd_decoder_autogen.h" | 16401 #include "gpu/command_buffer/service/gles2_cmd_decoder_autogen.h" |
| 16364 | 16402 |
| 16365 } // namespace gles2 | 16403 } // namespace gles2 |
| 16366 } // namespace gpu | 16404 } // namespace gpu |
| OLD | NEW |