-
Notifications
You must be signed in to change notification settings - Fork 94
/
gl_FragCoord.xhtml
148 lines (147 loc) · 8.65 KB
/
gl_FragCoord.xhtml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
<div class="refentry" id="gl_FragCoord">
<div class="titlepage"></div>
<div class="refnamediv">
<h2>Name</h2>
<p>gl_FragCoord — contains the window-relative coordinates of the current fragment</p>
</div>
<div class="refsynopsisdiv">
<h2>Declaration</h2>
<code class="fieldsynopsis"><span class="modifier">in </span><span class="type">vec4 </span><span class="varname">gl_FragCoord </span>;</code>
</div>
<div class="refsect1" id="description">
<h2>Description</h2>
<p>
Available only in the fragment language, <code class="varname">gl_FragCoord</code> is an input variable that contains the
window relative coordinate (x, y, z, 1/w) values for the fragment. If multi-sampling,
this value can be for any location within the pixel, or one of the fragment samples.
This value is the result of fixed functionality that interpolates primitives after vertex
processing to generate fragments. The z component is the depth value that would be used for the
fragment's depth if no shader contained any writes to <a class="citerefentry" href="gl_FragDepth"><span class="citerefentry"><span class="refentrytitle">gl_FragDepth</span></span></a>.
</p>
<p>
<code class="varname">gl_FragCoord</code> may be redeclared with the additional layout qualifier identifiers
<code class="function">origin_upper_left</code> or <code class="function">pixel_center_integer</code>. By
default, <code class="varname">gl_FragCoord</code> assumes a lower-left origin for window coordinates
and assumes pixel centers are located at half-pixel centers. For example, the (x, y) location
(0.5, 0.5) is returned for the lower-left-most pixel in a window. The origin of
<code class="varname">gl_FragCoord</code> may be changed by redeclaring <code class="varname">gl_FragCoord</code>
with the <code class="function">origin_upper_left</code> identifier. The values returned can also be
shifted by half a pixel in both x and y by <code class="function">pixel_center_integer</code> so it
appears the pixels are centered at whole number pixel offsets. This moves the (x, y) value returned by
<code class="varname">gl_FragCoord</code> of (0.5, 0.5) by default to (0.0, 0.0) with
<code class="function">pixel_center_integer</code>.
</p>
<p>
If <code class="varname">gl_FragCoord</code> is redeclared in any fragment shader in a program, it must be redeclared
in all fragment shaders in that program that have static use of <code class="varname">gl_FragCoord</code>. Redeclaring
<code class="varname">gl_FragCoord</code> with any accepted qualifier affects only <code class="varname">gl_FragCoord.x</code>
and <code class="varname">gl_FragCoord.y</code>. It has no affect on rasterization, transformation or any other part
of the OpenGL pipline or language features.
</p>
</div>
{$pipelinestall}{$examples}
<div class="refsect1" id="versions">
<h2>Version Support</h2>
<div class="informaltable">
<table style="border-collapse: collapse; border-top: 2px solid ; border-bottom: 2px solid ; border-left: 2px solid ; border-right: 2px solid ; ">
<colgroup>
<col style="text-align: left; "/>
<col style="text-align: center; " class="firstvers"/>
<col style="text-align: center; "/>
<col style="text-align: center; "/>
<col style="text-align: center; "/>
<col style="text-align: center; "/>
<col style="text-align: center; "/>
<col style="text-align: center; "/>
<col style="text-align: center; "/>
<col style="text-align: center; "/>
<col style="text-align: center; "/>
<col style="text-align: center; "/>
<col style="text-align: center; " class="lastvers"/>
</colgroup>
<thead>
<tr>
<th style="text-align: left; border-right: 2px solid ; ">
</th>
<th style="text-align: center; border-bottom: 2px solid ; " colspan="12">
<span class="bold"><strong>OpenGL Shading Language Version</strong></span>
</th>
</tr>
<tr>
<th style="text-align: left; border-right: 2px solid ; border-bottom: 2px solid ; ">
<span class="bold"><strong>Variable Name</strong></span>
</th>
<th style="text-align: center; border-right: 2px solid ; border-bottom: 2px solid ; ">
<span class="bold"><strong>1.10</strong></span>
</th>
<th style="text-align: center; border-right: 2px solid ; border-bottom: 2px solid ; ">
<span class="bold"><strong>1.20</strong></span>
</th>
<th style="text-align: center; border-right: 2px solid ; border-bottom: 2px solid ; ">
<span class="bold"><strong>1.30</strong></span>
</th>
<th style="text-align: center; border-right: 2px solid ; border-bottom: 2px solid ; ">
<span class="bold"><strong>1.40</strong></span>
</th>
<th style="text-align: center; border-right: 2px solid ; border-bottom: 2px solid ; ">
<span class="bold"><strong>1.50</strong></span>
</th>
<th style="text-align: center; border-right: 2px solid ; border-bottom: 2px solid ; ">
<span class="bold"><strong>3.30</strong></span>
</th>
<th style="text-align: center; border-right: 2px solid ; border-bottom: 2px solid ; ">
<span class="bold"><strong>4.00</strong></span>
</th>
<th style="text-align: center; border-right: 2px solid ; border-bottom: 2px solid ; ">
<span class="bold"><strong>4.10</strong></span>
</th>
<th style="text-align: center; border-right: 2px solid ; border-bottom: 2px solid ; ">
<span class="bold"><strong>4.20</strong></span>
</th>
<th style="text-align: center; border-right: 2px solid ; border-bottom: 2px solid ; ">
<span class="bold"><strong>4.30</strong></span>
</th>
<th style="text-align: center; border-right: 2px solid ; border-bottom: 2px solid ; ">
<span class="bold"><strong>4.40</strong></span>
</th>
<th style="text-align: center; border-bottom: 2px solid ; ">
<span class="bold"><strong>4.50</strong></span>
</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left; border-right: 2px solid ; ">gl_FragCoord</td>
<td style="text-align: center; border-right: 2px solid ; ">✔</td>
<td style="text-align: center; border-right: 2px solid ; ">✔</td>
<td style="text-align: center; border-right: 2px solid ; ">✔</td>
<td style="text-align: center; border-right: 2px solid ; ">✔</td>
<td style="text-align: center; border-right: 2px solid ; ">✔</td>
<td style="text-align: center; border-right: 2px solid ; ">✔</td>
<td style="text-align: center; border-right: 2px solid ; ">✔</td>
<td style="text-align: center; border-right: 2px solid ; ">✔</td>
<td style="text-align: center; border-right: 2px solid ; ">✔</td>
<td style="text-align: center; border-right: 2px solid ; ">✔</td>
<td style="text-align: center; border-right: 2px solid ; ">✔</td>
<td style="text-align: center; ">✔</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="refsect1" id="seealso">
<h2>See Also</h2>
<p>
<a class="citerefentry" href="gl_FragCoord"><span class="citerefentry"><span class="refentrytitle">gl_FragCoord</span></span></a>
</p>
</div>
<div class="refsect1" id="Copyright">
<h2>Copyright</h2>
<p>
Copyright © 2011-2014 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.
<a class="link" href="https://opencontent.org/openpub/" target="_top">https://opencontent.org/openpub/</a>.
</p>
</div>
</div>