diff options
author | Michal Krol <mjkrol@gmail.org> | 2006-03-21 10:37:40 +0000 |
---|---|---|
committer | Michal Krol <mjkrol@gmail.org> | 2006-03-21 10:37:40 +0000 |
commit | 071357096e682e9af59ad45ea5abc444ab431837 (patch) | |
tree | 99fba2183fe97981f7c309d99b206b39e43f5bec /src/mesa/shader/slang/library/slang_common_builtin.gc | |
parent | 519b23b21f9cd6945fd17cdb26e7a6f531cdeec0 (diff) |
GLSL fixes:
- generate error on NULL pointers in glShaderSourceARB;
- reinstall program object, if current, in glLinkProgramARB;
- vertex and fragment shaders are optional in program object;
- floor asm was wrongly computed for x86 back-end;
- allow for (void) idiom in function prototypes;
- all fixed-state uniforms are updated;
- local variable initializers are working;
- implement texture* and shadow* functions for vertex processor;
- generate error if too many arguments in general constructor;
- trim unused data in general constructor;
- struct r-value field select was badly relocated;
Changes:
- add derived state gl_fog_attrib::_Scale;
- add derived state gl_light::_CosCutoffNeg;
Diffstat (limited to 'src/mesa/shader/slang/library/slang_common_builtin.gc')
-rwxr-xr-x | src/mesa/shader/slang/library/slang_common_builtin.gc | 22 |
1 files changed, 8 insertions, 14 deletions
diff --git a/src/mesa/shader/slang/library/slang_common_builtin.gc b/src/mesa/shader/slang/library/slang_common_builtin.gc index 9486f4c830..58728377a3 100755 --- a/src/mesa/shader/slang/library/slang_common_builtin.gc +++ b/src/mesa/shader/slang/library/slang_common_builtin.gc @@ -233,7 +233,7 @@ vec2 cos (vec2 angle) { }
vec3 cos (vec3 angle) { - return vec2 (
+ return vec3 (
cos (angle.x),
cos (angle.y),
cos (angle.z)
@@ -366,8 +366,7 @@ vec4 atan (vec4 y_over_x) { }
float atan (float y, float x) {
- float z;
- z = atan (y / x); + float z = atan (y / x); if (x < 0.0)
{
if (y < 0.0)
@@ -721,7 +720,7 @@ vec2 min (vec2 v, vec2 u) { }
vec3 min (vec3 v, vec3 u) {
- return vec2 (
+ return vec3 (
min (v.x, u.x),
min (v.y, u.y),
min (v.z, u.z)
@@ -886,8 +885,7 @@ vec4 step (float edge, vec4 v) { }
float smoothstep (float edge0, float edge1, float x) { - float t;
- t = clamp ((x - edge0) / (edge1 - edge0), 0.0, 1.0); + float t = clamp ((x - edge0) / (edge1 - edge0), 0.0, 1.0); return t * t * (3.0 - 2.0 * t); }
@@ -1048,32 +1046,28 @@ vec4 reflect (vec4 I, vec4 N) { } float refract (float I, float N, float eta) { - float k;
- k = 1.0 - eta * eta * (1.0 - dot (N, I) * dot (N, I)); + float k = 1.0 - eta * eta * (1.0 - dot (N, I) * dot (N, I)); if (k < 0.0) return 0.0; return eta * I - (eta * dot (N, I) + sqrt (k)) * N; }
vec2 refract (vec2 I, vec2 N, float eta) { - float k;
- k = 1.0 - eta * eta * (1.0 - dot (N, I) * dot (N, I));
+ float k = 1.0 - eta * eta * (1.0 - dot (N, I) * dot (N, I));
if (k < 0.0)
return 0.0;
return eta * I - (eta * dot (N, I) + sqrt (k)) * N; }
vec3 refract (vec3 I, vec3 N, float eta) { - float k;
- k = 1.0 - eta * eta * (1.0 - dot (N, I) * dot (N, I));
+ float k = 1.0 - eta * eta * (1.0 - dot (N, I) * dot (N, I));
if (k < 0.0)
return 0.0;
return eta * I - (eta * dot (N, I) + sqrt (k)) * N; }
vec4 refract (vec4 I, vec4 N, float eta) { - float k;
- k = 1.0 - eta * eta * (1.0 - dot (N, I) * dot (N, I));
+ float k = 1.0 - eta * eta * (1.0 - dot (N, I) * dot (N, I));
if (k < 0.0)
return 0.0;
return eta * I - (eta * dot (N, I) + sqrt (k)) * N; |