Tizen 2.1 base
[sdk/emulator/qemu.git] / gl / mesa / src / glsl / builtins / ir / refract.ir
1 ((function refract
2    (signature float
3      (parameters
4        (declare (in) float i)
5        (declare (in) float n)
6        (declare (in) float eta))
7      ((declare () float k)
8       (assign (x) (var_ref k)
9               (expression float - (constant float (1.0))
10                 (expression float * (var_ref eta)
11                   (expression float * (var_ref eta)
12                     (expression float - (constant float (1.0))
13                       (expression float * 
14                         (expression float * (var_ref n) (var_ref i))
15                         (expression float * (var_ref n) (var_ref i))))))))
16       (if (expression bool < (var_ref k) (constant float (0.0)))
17           ((return (constant float (0.0))))
18           ((return (expression float -
19                      (expression float * (var_ref eta) (var_ref i))
20                      (expression float *
21                        (expression float +
22                          (expression float * (var_ref eta)
23                            (expression float * (var_ref n) (var_ref i)))
24                          (expression float sqrt (var_ref k)))
25                        (var_ref n))))))))
26
27    (signature vec2
28      (parameters
29        (declare (in) vec2 i)
30        (declare (in) vec2 n)
31        (declare (in) float eta))
32      ((declare () float k)
33       (assign (x) (var_ref k)
34               (expression float - (constant float (1.0))
35                 (expression float * (var_ref eta)
36                   (expression float * (var_ref eta)
37                     (expression float - (constant float (1.0))
38                       (expression float * 
39                         (expression float dot (var_ref n) (var_ref i))
40                         (expression float dot (var_ref n) (var_ref i))))))))
41       (if (expression bool < (var_ref k) (constant float (0.0)))
42           ((return (constant vec2 (0.0 0.0))))
43           ((return (expression vec2 -
44                      (expression vec2 * (var_ref eta) (var_ref i))
45                      (expression vec2 *
46                        (expression float +
47                          (expression float * (var_ref eta)
48                            (expression float dot (var_ref n) (var_ref i)))
49                          (expression float sqrt (var_ref k)))
50                        (var_ref n))))))))
51
52    (signature vec3
53      (parameters
54        (declare (in) vec3 i)
55        (declare (in) vec3 n)
56        (declare (in) float eta))
57      ((declare () float k)
58       (assign (x) (var_ref k)
59               (expression float - (constant float (1.0))
60                 (expression float * (var_ref eta)
61                   (expression float * (var_ref eta)
62                     (expression float - (constant float (1.0))
63                       (expression float * 
64                         (expression float dot (var_ref n) (var_ref i))
65                         (expression float dot (var_ref n) (var_ref i))))))))
66       (if (expression bool < (var_ref k) (constant float (0.0)))
67           ((return (constant vec3 (0.0 0.0 0.0))))
68           ((return (expression vec3 -
69                      (expression vec3 * (var_ref eta) (var_ref i))
70                      (expression vec3 *
71                        (expression float +
72                          (expression float * (var_ref eta)
73                            (expression float dot (var_ref n) (var_ref i)))
74                          (expression float sqrt (var_ref k)))
75                        (var_ref n))))))))
76
77    (signature vec4
78      (parameters
79        (declare (in) vec4 i)
80        (declare (in) vec4 n)
81        (declare (in) float eta))
82      ((declare () float k)
83       (assign (x) (var_ref k)
84               (expression float - (constant float (1.0))
85                 (expression float * (var_ref eta)
86                   (expression float * (var_ref eta)
87                     (expression float - (constant float (1.0))
88                       (expression float * 
89                         (expression float dot (var_ref n) (var_ref i))
90                         (expression float dot (var_ref n) (var_ref i))))))))
91       (if (expression bool < (var_ref k) (constant float (0.0)))
92           ((return (constant vec4 (0.0 0.0 0.0 0.0))))
93           ((return (expression vec4 -
94                      (expression vec4 * (var_ref eta) (var_ref i))
95                      (expression vec4 *
96                        (expression float +
97                          (expression float * (var_ref eta)
98                            (expression float dot (var_ref n) (var_ref i)))
99                          (expression float sqrt (var_ref k)))
100                        (var_ref n))))))))
101
102 ))