GLAPI/glPatchParameter: Difference between revisions

From OpenGL Wiki
Jump to navigation Jump to search
m Renaming category: 'GL 4 API Vertex Rendering' to 'Core API Ref Vertex Rendering'.
m Description: typo fix
 
(5 intermediate revisions by 2 users not shown)
Line 9: Line 9:
== Function Definition ==
== Function Definition ==


   void '''glPatchParameteri'''(GLenum ''pname'', GLint ''value'');
   void '''glPatchParameteri'''(GLenum {{param|pname}}, GLint {{param|value}});
   void '''glPatchParameterfv'''(GLenum ''pname'', const GLfloat *''values'');
   void '''glPatchParameterfv'''(GLenum {{param|pname}}, const GLfloat *{{param|values}});


; pname
; pname
: Specifies the name of the parameter to set. The symbolc constants {{code|GL_PATCH_VERTICES}}, {{code|GL_PATCH_DEFAULT_OUTER_LEVEL}}, and {{code|GL_PATCH_DEFAULT_INNER_LEVEL}} are accepted.
: Specifies the name of the parameter to set. The symbolc constants {{enum|GL_PATCH_VERTICES}}, {{enum|GL_PATCH_DEFAULT_OUTER_LEVEL}}, and {{enum|GL_PATCH_DEFAULT_INNER_LEVEL}} are accepted.
; value
; value
: Specifies the new value for the parameter given by ''pname''.
: Specifies the new value for the parameter given by {{param|pname}}.
; values
; values
: Specifies the address of an array containing the new values for the parameter given by ''pname''.
: Specifies the address of an array containing the new values for the parameter given by {{param|pname}}.


== Description ==
== Description ==


'''glPatchParameter''' specifies the parameters that will be used for patch primitives. ''pname'' specifies the parameter to modify and must be either {{code|GL_PATCH_VERTICES}}, {{code|GL_PATCH_DEFAULT_OUTER_LEVEL}} or {{code|GL_PATCH_DEFAULT_INNER_LEVEL}}. For '''glPatchParameteri''', ''value'' specifies the new value for the parameter specified by ''pname''. For '''glPatchParameterfv''', ''values'' specifies the address of an array containing the new values for the parameter specified by ''pname''.
'''glPatchParameter''' specifies the parameters that will be used for patch primitives. {{param|pname}} specifies the parameter to modify and must be either {{enum|GL_PATCH_VERTICES}}, {{enum|GL_PATCH_DEFAULT_OUTER_LEVEL}} or {{enum|GL_PATCH_DEFAULT_INNER_LEVEL}}. For '''glPatchParameteri''', {{param|value}} specifies the new value for the parameter specified by {{param|pname}}. For '''glPatchParameterfv''', {{param|values}} specifies the address of an array containing the new values for the parameter specified by {{param|pname}}.


When ''pname'' is {{code|GL_PATCH_VERTICES}}, ''value'' specifies the number of vertices that will be used to make up a single patch primitive. Patch primitives are consumed by the tessellation control shader (if present) and subsequently used for tessellation. When primitives are specified using [[GLAPI/glDrawArrays|glDrawArrays]] or a similar function, each patch will be made from ''parameter'' control points, each represented by a vertex taken from the enabeld vertex arrays. ''parameter'' must be greater than zero, and less than or equal to the value of {{code|GL_MAX_PATCH_VERTICES}}.
When {{param|pname}} is {{enum|GL_PATCH_VERTICES}}, {{param|value}} specifies the number of vertices that will be used to make up a single patch primitive. Patch primitives are consumed by the tessellation control shader (if present) and subsequently used for tessellation. When primitives are specified using {{apifunc|glDrawArrays}} or a similar function, each patch will be made from {{param|parameter}} control points, each represented by a vertex taken from the enabled vertex arrays. {{param|parameter}} must be greater than zero, and less than or equal to the value of {{enum|GL_MAX_PATCH_VERTICES}}.


When ''pname'' is {{code|GL_PATCH_DEFAULT_OUTER_LEVEL}} or {{code|GL_PATCH_DEFAULT_INNER_LEVEL}}, ''values'' contains the address of an array contiaining the default outer or inner tessellation levels, respectively, to be used when no tessellation control shader is present.
When {{param|pname}} is {{enum|GL_PATCH_DEFAULT_OUTER_LEVEL}} or {{enum|GL_PATCH_DEFAULT_INNER_LEVEL}}, {{param|values}} contains the address of an array contiaining the default outer or inner tessellation levels, respectively, to be used when no tessellation control shader is present.


== Errors ==
== Errors ==


{{code|GL_INVALID_ENUM}} is generated if ''pname'' is not an accepted value.
{{enum|GL_INVALID_ENUM}} is generated if {{param|pname}} is not an accepted value.


{{code|GL_INVALID_VALUE}} is generated if ''pname'' is {{code|GL_PATCH_VERTICES}} and ''value'' is less than or equal to zero, or greater than the value of {{code|GL_MAX_PATCH_VERTICES}}.
{{enum|GL_INVALID_VALUE}} is generated if {{param|pname}} is {{enum|GL_PATCH_VERTICES}} and {{param|value}} is less than or equal to zero, or greater than the value of {{enum|GL_MAX_PATCH_VERTICES}}.


== See Also ==
== See Also ==


[[GLAPI/glDrawArrays|glDrawArrays]], [[GLAPI/glDrawArraysInstanced|glDrawArraysInstanced]], [[GLAPI/glDrawElements|glDrawElements]], [[GLAPI/glDrawRangeElements|glDrawRangeElements]],
[[:Category:Core API Ref Vertex Rendering‎]]


== Copyright ==
== Copyright ==
Line 41: Line 41:
Copyright © 2010 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999. [http://opencontent.org/openpub/ http://opencontent.org/openpub/].
Copyright © 2010 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999. [http://opencontent.org/openpub/ http://opencontent.org/openpub/].


[[Category:API Reference 4|PatchParameter]]
[[Category:Core API Ref Vertex Specification|PatchParameter]]
[[Category:Core API Ref Vertex Rendering|PatchParameter]]
[[Category:Core API Reference|PatchParameter]]

Latest revision as of 16:48, 21 July 2017

glPatchParameter
Core in version 4.6
Core since version 4.0
Core ARB extension ARB_tessellation_shader

glPatchParameter: specifies the parameters for patch primitives

Function Definition

 void glPatchParameteri(GLenum pname​, GLint value​);
 void glPatchParameterfv(GLenum pname​, const GLfloat *values​);
pname
Specifies the name of the parameter to set. The symbolc constants GL_PATCH_VERTICES, GL_PATCH_DEFAULT_OUTER_LEVEL, and GL_PATCH_DEFAULT_INNER_LEVEL are accepted.
value
Specifies the new value for the parameter given by pname​.
values
Specifies the address of an array containing the new values for the parameter given by pname​.

Description

glPatchParameter specifies the parameters that will be used for patch primitives. pname​ specifies the parameter to modify and must be either GL_PATCH_VERTICES, GL_PATCH_DEFAULT_OUTER_LEVEL or GL_PATCH_DEFAULT_INNER_LEVEL. For glPatchParameteri, value​ specifies the new value for the parameter specified by pname​. For glPatchParameterfv, values​ specifies the address of an array containing the new values for the parameter specified by pname​.

When pname​ is GL_PATCH_VERTICES, value​ specifies the number of vertices that will be used to make up a single patch primitive. Patch primitives are consumed by the tessellation control shader (if present) and subsequently used for tessellation. When primitives are specified using glDrawArrays or a similar function, each patch will be made from parameter​ control points, each represented by a vertex taken from the enabled vertex arrays. parameter​ must be greater than zero, and less than or equal to the value of GL_MAX_PATCH_VERTICES.

When pname​ is GL_PATCH_DEFAULT_OUTER_LEVEL or GL_PATCH_DEFAULT_INNER_LEVEL, values​ contains the address of an array contiaining the default outer or inner tessellation levels, respectively, to be used when no tessellation control shader is present.

Errors

GL_INVALID_ENUM is generated if pname​ is not an accepted value.

GL_INVALID_VALUE is generated if pname​ is GL_PATCH_VERTICES and value​ is less than or equal to zero, or greater than the value of GL_MAX_PATCH_VERTICES.

See Also

Category:Core API Ref Vertex Rendering‎

Copyright

Copyright © 2010 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999. http://opencontent.org/openpub/.