Brian
5ae49cf3ed
Initial implementation of OPCODE_IF/ELSE/ENDIF instructions.
2007-01-20 09:27:40 -07:00
Brian
a3e938b8da
Reimplement && and || to do short-circuit evaluation.
...
Improved shader error handling.
2007-01-20 09:22:13 -07:00
Brian
9f07ed00e4
rewrite more __postIncr functions
2007-01-20 07:56:00 -07:00
Brian
3cec66512d
Implement do/while loops. Replace IR_CJUMP with IR_CJUMP0 and IR_CJUMP1 so
...
we can either jump on zero, or non-zero predicate.
2007-01-19 13:13:15 -07:00
Brian
eff9690351
Rewrite normalize(vec3/vec4) to use one less register.
2007-01-19 12:19:38 -07:00
Brian
dceae2829e
report error message when something fails
2007-01-19 12:02:31 -07:00
Brian
203946e1f9
print error msg when there's a problem
2007-01-19 12:02:06 -07:00
Brian
74b27674a8
remove stray tab
2007-01-19 10:31:52 -07:00
Brian
a0092c51b1
Implement fragment discard/kill.
2007-01-19 10:15:34 -07:00
Brian
8374ccb66f
change while-loop to create new scope for loop body, per spec
2007-01-19 10:02:58 -07:00
Brian
16183e6430
Implement constant sharing so that 4 float constants can share a single
...
float[4] register slot.
2007-01-18 17:29:23 -07:00
Brian
ce6640001d
_mesa_add_unnamed_constant() now tries to re-use constants already in
...
the parameter list.
2007-01-18 17:23:48 -07:00
Brian
d70771752f
Reimplement code for swizzling so that expressions like (p+q).x for vectors p and q works correctly.
2007-01-18 15:35:44 -07:00
Brian
d885ff470a
rewrite a bunch of assignment operators (like +=)
2007-01-18 15:33:13 -07:00
Brian
e4e66476a9
remove debug code
2007-01-18 15:23:45 -07:00
Brian
f43eac3ed8
remove swizzle param from new_var()
2007-01-18 09:22:44 -07:00
Brian
8a2368edce
rewrite additional matrix-related functions to reduce register needs
2007-01-17 18:37:20 -07:00
Brian
89a3bafe04
rewrite mat4 * mat4 operator to use fewer temps
2007-01-17 18:30:53 -07:00
Brian
272622a2e0
do bounds check in _slang_push_var_table(), added comment
2007-01-17 18:21:00 -07:00
Brian
2585b74e19
rewrite matrix constructors
2007-01-17 18:06:40 -07:00
Brian
4864aaeb02
handle var size > 4 in _slang_pop_var_table()
2007-01-17 18:02:44 -07:00
Brian
f4e345c1a8
minor fprintf() change
2007-01-17 16:30:11 -07:00
Brian
eb0c478b17
Rewrite a bunch of constructors. It's now important that the first
...
constructor for any given type be the one that takes the most parameters
as this is the constructor that'll be used when there's no perfect match
to the caller's arguments.
See the _slang_adapt_call() function for details.
2007-01-17 16:29:51 -07:00
Brian
3a3bb953b6
_slang_gen_function_call_name() now tries to adapt function calls (expand
...
vectors, insert casts) when a perfect match isn't found.
2007-01-17 16:14:03 -07:00
Brian
eabb7e66bd
New _slang_adapt_call() function.
...
This is used to modify function calls (when possible) to make the arguments
map to the function parameters. This includes "unrolling" vector types
and doing casts.
Example:
vec2 v2 = vec2(1.2, 3.4)
ivec3 iv = ivec3(false, v2);
Is converted into:
ivec3 iv = ivec3(int(false), int(v2[0]), int(v2[1]))
2007-01-17 16:11:50 -07:00
Brian
397b807ad5
code clean-up, re-org. Added IR_F_TO_I support.
2007-01-17 16:05:03 -07:00
Brian
bb53124fca
added IR_F_TO_I, update comments
2007-01-17 15:58:24 -07:00
Brian
0bad236cfb
Added OPCODE_INT to convert 4 floats to 4 ints.
2007-01-17 15:54:14 -07:00
Brian
46a9241248
add texturing, other options
2007-01-17 10:25:44 -07:00
Brian
811f54fa75
Fix/clean-up a number of things related to variable/temporary allocation.
2007-01-17 09:54:31 -07:00
Brian
552a65e454
Implement codegen for the selection operator ( b ? x : y )
2007-01-16 17:38:39 -07:00
Brian
3596903068
fix typo
2007-01-16 16:53:41 -07:00
Brian
271d504ed7
draw a box, press 'a' to animate
2007-01-16 15:27:11 -07:00
Brian
9d0ae967d4
added some VerteAttrib funcs
2007-01-16 14:57:12 -07:00
Brian
f44ba11815
Added toyball and bumpmap tests using shaders from the OpenGL Shading Language (orange) book.
2007-01-16 14:55:43 -07:00
Brian
9b5dc1358a
when automatically binding vertex attributes, start with attrib 1, not 0
2007-01-16 14:52:22 -07:00
Brian
4f027a33b9
remove dead code
2007-01-16 14:19:37 -07:00
Brian
0f91310bf3
comments
2007-01-16 14:17:57 -07:00
Brian
d90c655b05
implement logical or, xor, not
2007-01-16 14:15:05 -07:00
Brian
99e788fe56
some additional vector constructors
2007-01-16 14:10:30 -07:00
Brian
156e583a35
fix _slang_gen_subscript() for the case when a simple vector is accessed as an array: convert index to a swizzle/writemask
2007-01-16 10:45:34 -07:00
Brian
0d55346156
Use arrow keys to pan and z/Z to zoom in/out to explore the fractal.
2007-01-15 17:48:19 -07:00
Brian
2ccd264695
Added new directory of GL shading language demos: glsl
2007-01-15 17:27:24 -07:00
Brian
f6507157e2
Reimplement the post-increment/decrement functions.
...
Instead of defining functions with an extra dummy parameter to distinguish
from the pre-incr/decr functions, just use new function names: __postIncr
and __postDecr.
2007-01-15 16:54:38 -07:00
Brian
c410994653
Implement the ++var and --var operators, improve some constructors.
2007-01-15 16:38:12 -07:00
Brian
0a097675f1
added vec3 constructor code
2007-01-15 16:34:33 -07:00
Brian
82258b7af3
added IR_ELEMENT
2007-01-15 16:33:54 -07:00
Brian
04ac15fd80
checkpoint: ++, -- and && operators
2007-01-15 15:51:49 -07:00
Brian
83d3ff590d
Redo the way array indexes are handled. Resolve storage location at code emit time, not codegen time.
2007-01-15 13:58:45 -07:00
Brian
c807169888
remove old globals
2007-01-15 11:10:11 -07:00