update upstream sources
[clinton/guile-figl.git] / upstream-doc / manglsl / gl_PointSize.xml
CommitLineData
7faf1d71
AW
1<?xml version="1.0" encoding="UTF-8"?>\r
2<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook MathML Module V1.1b1//EN"\r
3 "http://www.oasis-open.org/docbook/xml/mathml/1.1CR1/dbmathml.dtd">\r
4<refentry id="gl_PointSize">\r
5 <refmeta>\r
6 <refmetainfo>\r
7 <copyright>\r
c7b31271 8 <year>2013</year>\r
7faf1d71
AW
9 <holder>Khronos Group</holder>\r
10 </copyright>\r
11 </refmetainfo>\r
12 <refentrytitle>gl_PointSize</refentrytitle>\r
13 <manvolnum>3G</manvolnum>\r
14 </refmeta>\r
15 <refnamediv>\r
16 <refname>gl_PointSize</refname>\r
17 <refpurpose>contains size of rasterized points, in pixels</refpurpose>\r
18 </refnamediv>\r
19 <refsynopsisdiv><title>Declaration</title>\r
20 <para>\r
21 <function>gl_PointSize</function> is a member of the <function>gl_PerVertex</function>\r
22 named block:\r
23 </para>\r
24 <funcsynopsis>\r
25<programlisting><![CDATA[ out gl_PerVertex {\r
26 vec4 gl_Position;\r
27 float gl_PointSize;\r
28 float gl_ClipDistance[];\r
29 };]]></programlisting>\r
30 </funcsynopsis>\r
31 </refsynopsisdiv>\r
32 <refsect1 id="description"><title>Description</title>\r
33 <para>\r
c7b31271 34 In the vertex, tessellation evaluation and geometry languages, a single\r
7faf1d71
AW
35 global instance of the <function>gl_PerVertex</function> named block is available and\r
36 its <function>gl_PointSize</function> member is an output that receives the\r
37 intended size of the point to be rasterized, in pixels. It may be written at any time\r
38 during shader execution. If <constant>GL_PROGRAM_POINT_SIZE</constant> is enabled,\r
39 <function>gl_PointSize</function> is used to determine the size of rasterized\r
40 points, otherwise it is ignored by the rasterization stage.\r
41 </para>\r
42 <para>\r
43 In the tessellation control language, the <function>gl_PerVertex</function> named block\r
44 is used to construct an array, <function>gl_out[]</function>, whose members become\r
45 available as inputs to the subsequent tessellation evaluation shader.\r
46 </para>\r
47 <para>\r
48 The value of <function>gl_PointSize</function> (or the <function>gl_PointSize</function> member of the <function>gl_out[]</function>\r
49 array, in the case of the tessellation control shader)\r
50 is undefined after the vertex, tessellation control, and tessellation evaluation\r
51 shading stages if the corresponding shader executable does\r
52 not write to gl_PointSize. It is also undefined after the geometry processing stage if the geometry shader executable calls\r
53 <citerefentry><refentrytitle>EmitVertex</refentrytitle></citerefentry> without having\r
54 written <function>gl_PointSize</function> since the last call to <citerefentry><refentrytitle>EmitVertex</refentrytitle></citerefentry>\r
55 (or hasn't written it at all).\r
56 </para>\r
57 <para>\r
c7b31271 58 In the tessellation control, tessellation evaluation and geometry languages,\r
7faf1d71
AW
59 the <function>gl_PerVertex</function> named block is used to construct an array, <function>gl_in[]</function>\r
60 of per-vertex or per-control point inputs whose content represents the corresponding\r
61 outputs written by the previous stage.\r
62 </para>\r
63 </refsect1>\r
64 <refsect1 id="versions"><title>Version Support</title>\r
65 <informaltable frame="topbot">\r
66 #VARTABLECOLS#\r
67 <thead>\r
68 #VARTABLEHEADER#\r
69 <row>\r
70 <entry>gl_PointSize (vertex shader)</entry>#newin11#\r
71 </row>\r
72 <row>\r
73 <entry>gl_PointSize (geometry shader)</entry>#newin15#\r
74 </row>\r
c7b31271
DH
75 <row>\r
76 <entry>gl_PointSize (tessellation evaluation shader)</entry>#newin40#\r
77 </row>\r
7faf1d71
AW
78 </thead>\r
79 </tgroup>\r
80 </informaltable>\r
81 </refsect1>\r
82 <refsect1 id="seealso"><title>See Also</title>\r
83 <para>\r
84 <citerefentry><refentrytitle>gl_Position</refentrytitle></citerefentry>, <citerefentry><refentrytitle>gl_ClipDistance</refentrytitle></citerefentry>\r
85 </para>\r
86 </refsect1>\r
87 <refsect1 id="Copyright"><title>Copyright</title>\r
88 <para>\r
c7b31271 89 Copyright <trademark class="copyright"></trademark> 2011-2013 Khronos Group. \r
7faf1d71
AW
90 This material may be distributed subject to the terms and conditions set forth in \r
91 the Open Publication License, v 1.0, 8 June 1999.\r
92 <ulink url="http://opencontent.org/openpub/">http://opencontent.org/openpub/</ulink>.\r
93 </para>\r
94 </refsect1>\r
95</refentry>\r