118 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Factor
		
	
	
		
		
			
		
	
	
			118 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Factor
		
	
	
|  | USING: accessors combinators gpu.render gpu.render.private kernel sequences tools.test ;
 | ||
|  | IN: gpu.render.tests | ||
|  | 
 | ||
|  | UNIFORM-TUPLE: two-textures | ||
|  |     { "argyle"       texture-uniform f } | ||
|  |     { "thread-count" float-uniform   f } | ||
|  |     { "tweed"        texture-uniform f } ;
 | ||
|  | 
 | ||
|  | UNIFORM-TUPLE: inherited-textures < two-textures | ||
|  |     { "paisley" texture-uniform f } ;
 | ||
|  | 
 | ||
|  | UNIFORM-TUPLE: array-of-textures < two-textures | ||
|  |     { "plaids" texture-uniform 4 } ;
 | ||
|  | 
 | ||
|  | UNIFORM-TUPLE: struct-containing-texture | ||
|  |     { "threads" two-textures f } ;
 | ||
|  | 
 | ||
|  | UNIFORM-TUPLE: array-of-struct-containing-texture | ||
|  |     { "threads" inherited-textures 3 } ;
 | ||
|  | 
 | ||
|  | UNIFORM-TUPLE: array-of-struct-containing-array-of-texture | ||
|  |     { "threads" array-of-textures 2 } ;
 | ||
|  | 
 | ||
|  | [  1 ] [ texture-uniform uniform-type-texture-units ] unit-test | ||
|  | [  0 ] [ float-uniform uniform-type-texture-units ] unit-test | ||
|  | [  2 ] [ two-textures uniform-type-texture-units ] unit-test | ||
|  | [  3 ] [ inherited-textures uniform-type-texture-units ] unit-test | ||
|  | [  6 ] [ array-of-textures uniform-type-texture-units ] unit-test | ||
|  | [  2 ] [ struct-containing-texture uniform-type-texture-units ] unit-test | ||
|  | [  9 ] [ array-of-struct-containing-texture uniform-type-texture-units ] unit-test | ||
|  | [ 12 ] [ array-of-struct-containing-array-of-texture uniform-type-texture-units ] unit-test | ||
|  | 
 | ||
|  | [ { [ ] } ] [ texture-uniform f uniform-texture-accessors ] unit-test | ||
|  | 
 | ||
|  | [ { } ] [ float-uniform f uniform-texture-accessors ] unit-test | ||
|  | 
 | ||
|  | [ { [ argyle>> ] [ tweed>> ] } ] [ two-textures f uniform-texture-accessors ] unit-test | ||
|  | 
 | ||
|  | [ { [ argyle>> ] [ tweed>> ] [ paisley>> ] } ] | ||
|  | [ inherited-textures f uniform-texture-accessors ] unit-test | ||
|  | 
 | ||
|  | [ { | ||
|  |     [ argyle>> ] | ||
|  |     [ tweed>> ] | ||
|  |     [ plaids>> { | ||
|  |         [ 0 swap nth ] | ||
|  |         [ 1 swap nth ] | ||
|  |         [ 2 swap nth ] | ||
|  |         [ 3 swap nth ] | ||
|  |     } ] | ||
|  | } ] [ array-of-textures f uniform-texture-accessors ] unit-test | ||
|  | 
 | ||
|  | [ { | ||
|  |     [ threads>> { | ||
|  |         [ argyle>> ] | ||
|  |         [ tweed>> ] | ||
|  |     } ] | ||
|  | } ] [ struct-containing-texture f uniform-texture-accessors ] unit-test | ||
|  | 
 | ||
|  | [ { | ||
|  |     [ threads>> { | ||
|  |         [ 0 swap nth { | ||
|  |             [ argyle>> ] | ||
|  |             [ tweed>> ] | ||
|  |             [ paisley>> ] | ||
|  |         } ] | ||
|  |         [ 1 swap nth { | ||
|  |             [ argyle>> ] | ||
|  |             [ tweed>> ] | ||
|  |             [ paisley>> ] | ||
|  |         } ] | ||
|  |         [ 2 swap nth { | ||
|  |             [ argyle>> ] | ||
|  |             [ tweed>> ] | ||
|  |             [ paisley>> ] | ||
|  |         } ] | ||
|  |     } ] | ||
|  | } ] [ array-of-struct-containing-texture f uniform-texture-accessors ] unit-test | ||
|  | 
 | ||
|  | [ { | ||
|  |     [ threads>> { | ||
|  |         [ 0 swap nth { | ||
|  |             [ argyle>> ] | ||
|  |             [ tweed>> ] | ||
|  |             [ plaids>> { | ||
|  |                 [ 0 swap nth ] | ||
|  |                 [ 1 swap nth ] | ||
|  |                 [ 2 swap nth ] | ||
|  |                 [ 3 swap nth ] | ||
|  |             } ] | ||
|  |         } ] | ||
|  |         [ 1 swap nth { | ||
|  |             [ argyle>> ] | ||
|  |             [ tweed>> ] | ||
|  |             [ plaids>> { | ||
|  |                 [ 0 swap nth ] | ||
|  |                 [ 1 swap nth ] | ||
|  |                 [ 2 swap nth ] | ||
|  |                 [ 3 swap nth ] | ||
|  |             } ] | ||
|  |         } ] | ||
|  |     } ] | ||
|  | } ] [ array-of-struct-containing-array-of-texture f uniform-texture-accessors ] unit-test | ||
|  | 
 | ||
|  | [ [ | ||
|  |     nip { | ||
|  |         [ argyle>> 0 (bind-texture-unit) ] | ||
|  |         [ tweed>> 1 (bind-texture-unit) ] | ||
|  |         [ plaids>> { | ||
|  |             [ 0 swap nth 2 (bind-texture-unit) ] | ||
|  |             [ 1 swap nth 3 (bind-texture-unit) ] | ||
|  |             [ 2 swap nth 4 (bind-texture-unit) ] | ||
|  |             [ 3 swap nth 5 (bind-texture-unit) ] | ||
|  |         } cleave ] | ||
|  |     } cleave
 | ||
|  | ] ] [ array-of-textures [bind-uniform-textures] ] unit-test | ||
|  | 
 |