More GLSL code:
[mesa.git] / src / mesa / shader / slang / library / slang_vertex_builtin.gc
1
2 //
3 // TODO:
4 // - what to do with ftransform? can it stay in the current form?
5 // - implement texture1DLod, texture2DLod, texture3DLod, textureCubeLod,
6 // - implement shadow1DLod, shadow2DLod,
7 //
8
9 //
10 // From Shader Spec, ver. 1.10, rev. 59
11 //
12
13 __fixed_output vec4 gl_Position;
14 __fixed_output float gl_PointSize;
15 __fixed_output vec4 gl_ClipVertex;
16
17 attribute vec4 gl_Color;
18 attribute vec4 gl_SecondaryColor;
19 attribute vec3 gl_Normal;
20 attribute vec4 gl_Vertex;
21 attribute vec4 gl_MultiTexCoord0;
22 attribute vec4 gl_MultiTexCoord1;
23 attribute vec4 gl_MultiTexCoord2;
24 attribute vec4 gl_MultiTexCoord3;
25 attribute vec4 gl_MultiTexCoord4;
26 attribute vec4 gl_MultiTexCoord5;
27 attribute vec4 gl_MultiTexCoord6;
28 attribute vec4 gl_MultiTexCoord7;
29 attribute float gl_FogCoord;
30
31 varying vec4 gl_FrontColor;
32 varying vec4 gl_BackColor;
33 varying vec4 gl_FrontSecondaryColor;
34 varying vec4 gl_BackSecondaryColor;
35 varying vec4 gl_TexCoord[gl_MaxTextureCoords];
36 varying float gl_FogFragCoord;
37
38 //
39 // Geometric Functions
40 //
41
42 vec4 ftransform () {
43 return gl_ModelViewProjectionMatrix * gl_Vertex;
44 }
45
46 //
47 // 8.7 Texture Lookup Functions
48 //
49
50 vec4 texture1DLod (sampler1D sampler, float coord, float lod) {
51 // XXX:
52 return vec4 (0.0);
53 }
54
55 vec4 texture1DProjLod (sampler1D sampler, vec2 coord, float lod) {
56 return texture1DLod (sampler, coord.s / coord.t, lod);
57 }
58
59 vec4 texture1DProjLod (sampler1D sampler, vec4 coord, float lod) {
60 return texture1DLod (sampler, coord.s / coord.q, lod);
61 }
62
63 vec4 texture2DLod (sampler2D sampler, vec2 coord, float lod) {
64 // XXX:
65 return vec4 (0.0);
66 }
67
68 vec4 texture2DProjLod (sampler2D sampler, vec3 coord, float lod) {
69 return texture2DLod (sampler, vec2 (coord.s / coord.p, coord.t / coord.p), lod);
70 }
71
72 vec4 texture2DProjLod (sampler2D sampler, vec4 coord, float lod) {
73 return texture2DLod (sampler, vec2 (coord.s / coord.q, coord.t / coord.q), lod);
74 }
75
76 vec4 texture3DLod (sampler3D sampler, vec3 coord, float lod) {
77 // XXX:
78 return vec4 (0.0);
79 }
80 vec4 texture3DProjLod (sampler3D sampler, vec4 coord, float lod) {
81 return texture3DLod (sampler, vec3 (coord.s / coord.q, coord.t / coord.q, coord.p / coord.q), lod);
82 }
83
84 vec4 textureCubeLod (samplerCube sampler, vec3 coord, float lod) {
85 // XXX:
86 return vec4 (0.0);
87 }
88
89 vec4 shadow1DLod (sampler1DShadow sampler, vec3 coord, float lod) {
90 // XXX:
91 return vec4 (0.0);
92 }
93
94 vec4 shadow2DLod (sampler2DShadow sampler, vec3 coord, float lod) {
95 // XXX:
96 return vec4 (0.0);
97 }
98
99 vec4 shadow1DProjLod (sampler1DShadow sampler, vec4 coord, float lod) {
100 return shadow1DLod (sampler, vec3 (coord.s / coord.q, 0.0, coord.p / coord.q), lod);
101 }
102
103 vec4 shadow2DProjLod (sampler2DShadow sampler, vec4 coord, float lod) {
104 return shadow2DLod (sampler, vec3 (coord.s / coord.q, coord.t / coord.q, coord.p / coord.q), lod);
105 }
106