Changeset 403 for branches/thune
- Timestamp:
- 05/29/07 02:47:07 (18 months ago)
- Location:
- branches/thune/thread_safe
- Files:
-
- 10 modified
-
eval.c (modified) (2 diffs)
-
gl/boot.c (modified) (1 diff)
-
gl/draw_list.c (modified) (3 diffs)
-
gl/gx.c (modified) (4 diffs)
-
gl/gx.t (modified) (2 diffs)
-
gl/gx_atoms.h (modified) (1 diff)
-
gl/gx_dt.c (modified) (3 diffs)
-
gl/scripts/view.t (modified) (7 diffs)
-
gl/test_fw.t (modified) (2 diffs)
-
urlan.h (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/thune/thread_safe/eval.c
r402 r403 97 97 98 98 99 typedef int (*UDatatypeCmpFunc)( UThread*, const UCell*, const UCell*, int ); 99 100 typedef int (*UDatatypeSelFunc)( UThread*, UCell*, const UCell*, UCell* ); 100 101 … … 714 715 (a->ctx.valBlk == b->ctx.valBlk) ) 715 716 return 1; 717 break; 718 719 default: 720 if( ur_type(a) >= UT_BI_COUNT ) 721 { 722 UDatatypeCmpFunc func = ut->env->customDT 723 [ ur_type(a) - UT_BI_COUNT ].compare; 724 return func( ut, a, b, 1 ); 725 } 716 726 break; 717 727 } -
branches/thune/thread_safe/gl/boot.c
r390 r403 43 43 "]\n" 44 44 "func :handle.events\n" 45 "[wid | handler]\n" 46 "[\n" 47 " [] 'wait display.events [\n" 48 " dup first wid get dup :handler\n" 49 " ift (second handler do) drop\n" 50 " ] iter/2\n" 51 "]\n" 52 "func :wait-events\n" 45 53 "[list block! | ctx wrd n]\n" 46 54 "[\n" -
branches/thune/thread_safe/gl/draw_list.c
r395 r403 142 142 } 143 143 glEnable( GL_VERTEX_PROGRAM_POINT_SIZE ); 144 gr_disableTexture();144 //gr_disableTexture(); 145 145 146 146 /* … … 838 838 case UR_ATOM_OFF: 839 839 glDisable( GL_VERTEX_PROGRAM_POINT_SIZE ); 840 glDisable( GL_POINT_SPRITE ); 840 841 break; 841 842 … … 853 854 gr_setState( GRS_PARTICLE ); 854 855 glBlendFunc( GL_SRC_COLOR, GL_ONE_MINUS_SRC_ALPHA ); 856 break; 857 858 case UR_ATOM_SPRITE: 859 gr_setState( GRS_PARTICLE ); 860 glBlendFunc( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA ); 861 glEnable( GL_POINT_SPRITE ); 855 862 break; 856 863 -
branches/thune/thread_safe/gl/gx.c
r390 r403 589 589 590 590 591 // (blk -- blk)591 // (blk [wait] -- blk) 592 592 UR_CALL( uc_display_events ) 593 593 { 594 int wait = 0; 595 596 if( ur_is(tos, UT_WORD) ) 597 { 598 if( ur_atom(tos) == UR_ATOM_WAIT ) 599 { 600 wait = 1; 601 UR_S_DROP; 602 tos = UR_TOS; 603 } 604 else 605 { 606 ur_throwErr( UR_ERR_DATATYPE, "display.events expected 'wait" ); 607 return; 608 } 609 } 610 594 611 if( ! ur_is(tos, UT_BLOCK) ) 595 612 { … … 600 617 gxEnv.eventBlk = ur_block( tos ); 601 618 gxEnv.eventBlk->used = 0; 619 620 if( wait ) 621 { 622 glv_waitEvent( gView ); 623 } 602 624 603 625 glv_handleEvents( gView ); … … 1467 1489 FIXED_ATOM( "fragment", 8, UR_ATOM_FRAGMENT ); 1468 1490 FIXED_ATOM( "default", 7, UR_ATOM_DEFAULT ); 1491 FIXED_ATOM( "wait", 4, UR_ATOM_WAIT ); 1469 1492 1470 1493 // Textures … … 1487 1510 FIXED_ATOM( "color", 5, UR_ATOM_COLOR ); 1488 1511 FIXED_ATOM( "trans", 5, UR_ATOM_TRANS ); 1512 FIXED_ATOM( "sprite", 6, UR_ATOM_SPRITE ); 1489 1513 1490 1514 #if MAKE_ATOM_HEADER -
branches/thune/thread_safe/gl/gx.t
r390 r403 88 88 first wid get do 89 89 */ 90 91 90 ; Handler stack usage: (data -- data) 92 93 91 dup first wid get dup :handler 94 92 ift (second handler do) drop … … 96 94 ] 97 95 func :handle.events ; (widget -- ) 96 97 98 [wid | handler] 99 [ 100 [] 'wait display.events [ 101 ; Handler stack usage: (data -- data) 102 dup first wid get dup :handler 103 ift (second handler do) drop 104 ] iter/2 105 ] 106 func :wait-events ; (widget -- ) 98 107 99 108 -
branches/thune/thread_safe/gl/gx_atoms.h
r395 r403 26 26 #define UR_ATOM_FRAGMENT 335 27 27 #define UR_ATOM_DEFAULT 336 28 #define UR_ATOM_RGB 337 29 #define UR_ATOM_RGBA 338 30 #define UR_ATOM_DEPTH 339 31 #define UR_ATOM_CLAMP 340 32 #define UR_ATOM_REPEAT 341 33 #define UR_ATOM_NEAREST 342 34 #define UR_ATOM_LINEAR 343 35 #define UR_ATOM_MIN 344 36 #define UR_ATOM_MAG 345 37 #define UR_ATOM_MIPMAP 346 28 #define UR_ATOM_WAIT 337 29 #define UR_ATOM_RGB 338 30 #define UR_ATOM_RGBA 339 31 #define UR_ATOM_DEPTH 340 32 #define UR_ATOM_CLAMP 341 33 #define UR_ATOM_REPEAT 342 34 #define UR_ATOM_NEAREST 343 35 #define UR_ATOM_LINEAR 344 36 #define UR_ATOM_MIN 345 37 #define UR_ATOM_MAG 346 38 #define UR_ATOM_MIPMAP 347 38 39 #define UR_ATOM_ON 253 39 40 #define UR_ATOM_OFF 255 40 41 #define UR_ATOM_ADD 193 41 #define UR_ATOM_BURN 347 42 #define UR_ATOM_COLOR 348 43 #define UR_ATOM_TRANS 349 42 #define UR_ATOM_BURN 348 43 #define UR_ATOM_COLOR 349 44 #define UR_ATOM_TRANS 350 45 #define UR_ATOM_SPRITE 351 -
branches/thune/thread_safe/gl/gx_dt.c
r390 r403 45 45 (void) depth; 46 46 ur_strCat( out, "<draw-list>", 11 ); 47 } 48 49 50 static int cmp_dlist( UThread* ut, const UCell* a, const UCell* b, int mode ) 51 { 52 (void) ut; 53 (void) mode; 54 if( ur_dlBlkN(a) ) 55 { 56 if( ur_dlBlkN(a) == ur_dlBlkN(b) ) 57 return 1; 58 } 59 else 60 { 61 if( ur_dlGL(a) == ur_dlGL(b) ) 62 return 1; 63 } 64 return 0; 47 65 } 48 66 … … 921 939 922 940 941 static int cmp_nop( UThread* ut, const UCell* a, const UCell* b, int mode ) 942 { 943 return 0; 944 } 945 946 923 947 static int select_nop( UThread* ut, UCell* val, const UCell* sel, 924 948 UCell* res ) … … 949 973 { 950 974 {"draw-list!", 0, 0, 951 make_dlist, to_nop, toStr_dlist, toStr_dlist, 975 make_dlist, to_nop, toStr_dlist, toStr_dlist, cmp_dlist, 952 976 select_nop, recycle_nop, mark_dlist, rmres_nop }, 953 977 954 978 {"raster!", 0, 0, 955 make_raster, to_nop, toStr_raster, toStr_raster, 979 make_raster, to_nop, toStr_raster, toStr_raster, cmp_nop, 956 980 select_raster, recycle_nop, mark_raster, rmres_nop }, 957 981 958 982 {"texture!", 0, 0, 959 make_texture, to_nop, toStr_texture, toStr_texture, 983 make_texture, to_nop, toStr_texture, toStr_texture, cmp_nop, 960 984 select_texture, recycle_texture, mark_texture, rmres_nop }, 961 985 962 986 {"font!", 0, 0, 963 make_rfont, to_nop, toStr_rfont, toStr_rfont, 987 make_rfont, to_nop, toStr_rfont, toStr_rfont, cmp_nop, 964 988 select_rfont, recycle_nop, mark_rfont, rmres_nop }, 965 989 966 990 {"shader!", 0, 0, 967 make_shader, to_nop, toStr_shader, toStr_shader, 991 make_shader, to_nop, toStr_shader, toStr_shader, cmp_nop, 968 992 select_nop, recycle_nop, mark_shader, rmres_shader }, 969 993 970 994 {"framebuffer!", 0, 0, 971 make_fbo, to_nop, toStr_fbo, toStr_fbo, 995 make_fbo, to_nop, toStr_fbo, toStr_fbo, cmp_nop, 972 996 select_fbo, recycle_nop, mark_fbo, rmres_nop }, 973 997 }; -
branches/thune/thread_safe/gl/scripts/view.t
r395 r403 4 4 "test_fw.t" load do 5 5 6 'd7b 7 [ 8 d7 [ 9 "model/d7.gx" load draw-list.compile :model-list 10 ;"shader/lumimap.gx" 11 "shader/clsmap.gx" 12 ;"shader/tv.gx" 13 load.shader :model-shader 14 "image/d7_colormap.png" load.tex :model-shader/cmap 15 "image/d7_lights.png" load.tex :model-shader/lmap 16 ] 17 d7b [ 18 "shader/clsbmap.gx" load.shader :model-shader 19 "image/d7_colormap.png" load.tex :model-shader/cmap 20 "image/d7_lights.png" load.tex :model-shader/lmap 21 "image/d7_normal.png" load.tex :model-shader/nmap 22 "model/d7_bump.gx" load draw-list.compile :model-list 23 ] 24 ent [ 25 "model/enterprise.gx" load draw-list.compile :model-list 26 "shader/clsmap.gx" load.shader :model-shader 27 "image/ent_colormap.png" load.mip :model-shader/cmap 28 "image/ent_lights.png" load.tex :model-shader/lmap 29 ] 30 ] case 6 10,0,10 :bg-color 7 ;off key-repeat 8 9 "scripts/stars.t" load do 400 make-stars :star-dl 10 "shader/particle-star.gx" 11 load.shader :star-sh 12 13 14 "shader/particle-sprite.gx" load.shader :sprite-sh 15 16 10 make-stars :bstar-dl 17 sprite-sh :bstar-sh 18 500.0 :bstar-sh/size 19 "image/star.png" load.tex :bstar-sh/cmap 20 21 22 /* 23 */ 24 [ 25 ;"shader/particle-sprite.gx" load.shader 26 sprite-sh copy :sun-sh 27 500.0 :sun-sh/size 28 "image/sun.png" load.tex :sun-sh/cmap 29 30 #[0.0 0 20.0] :pos 31 32 [ 33 particle/sprite 34 shader sun-sh 35 verts none ;#[0.0 0 20.0] 36 points v #[0] 37 particle/off 38 ] 39 pos 5 poke 40 draw-list 'sun-dl set 41 42 [ 43 dup first :pos/1 44 dup second :pos/2 45 third :pos/3 46 ] 47 proc :update ; (vec3 -- ) 48 ] 49 context :sun-sprite 50 51 52 /* 53 [ 54 "model/d7.gx" load draw-list.compile :model-list 55 ;"shader/lumimap.gx" 56 "shader/clsmap.gx" 57 ;"shader/tv.gx" 58 load.shader :model-shader 59 "image/d7_colormap.png" load.tex :model-shader/cmap 60 "image/d7_lights.png" load.tex :model-shader/lmap 61 ] :d7 62 */ 63 64 [ 65 "shader/clsbmap.gx" load.shader :model-shader 66 "image/d7_colormap.png" load.tex :model-shader/cmap 67 "image/d7_lights.png" load.tex :model-shader/lmap 68 "image/d7_normal.png" load.tex :model-shader/nmap 69 "model/d7_bump.gx" load draw-list.compile :model-list 70 model-list :d7-dl 71 model-shader :d7-shader 72 ] :d7 73 74 [ 75 "model/enterprise.gx" load draw-list.compile :model-list 76 "shader/clsmap.gx" load.shader :model-shader 77 "image/ent_colormap.png" load.mip :model-shader/cmap 78 "image/ent_lights.png" load.tex :model-shader/lmap 79 model-list :ent-dl 80 model-shader :ent-shader 81 ] :ent 31 82 32 83 33 84 1024,1024 dup :smap-size shadowmap :light-fb 34 light-fb/texture :model-shader/smap35 85 "shader/matte.gx" load.shader :smap-shader 36 86 camera [ … … 58 108 59 109 110 d7 do light-fb/texture :d7-shader/smap 111 ent do light-fb/texture :ent-shader/smap 112 113 60 114 /* 61 115 "model/enterprise.gx" load draw-list.compile :model-list … … 97 151 98 152 light-pos light-cam/update 153 light-pos sun-sprite/update 99 154 ] 100 155 func.env :move-light ; (dx dy -- ) … … 105 160 key-down [ 106 161 esc [quit] 162 ;p ["key" .] 163 m [ 164 model-list d7-dl same? 165 [ent-dl :model-list ent-shader :model-shader] 166 [d7-dl :model-list d7-shader :model-shader] 167 either 168 ] 107 169 f10 [display.snapshot "snapshot.png" save.png] 108 170 ] … … 114 176 dup :ortho-cam/viewport 115 177 dup :view-cam/viewport 178 179 ;vec3! [area/3 area/4] reduce make :star-sh/windowsize 116 180 ] 117 181 … … 140 204 */ 141 205 206 /* 207 */ 208 particle 209 push 210 scale 20.0 211 212 shader star-sh call star-dl 213 214 particle/sprite 215 shader bstar-sh call bstar-dl 216 pop 217 ;particle/off 218 219 call sun-dl 220 142 221 light [on light-pos ambient light-amb] 143 222 ;light [on 1.0,0.8,1.0] … … 148 227 call model-list 149 228 shader none 229 230 231 ;ortho-cam 150 232 ] 151 233 ] -
branches/thune/thread_safe/gl/test_fw.t
r360 r403 3 3 4 4 ; Run from thune/gl directory. 5 "data " change-dir5 "data_loc" change-dir 6 6 7 7 … … 54 54 [] proc :sim-update 55 55 56 0,0,155 :bg-color 56 57 57 58 [wid] 58 59 [ 59 0,0,155display.swap60 bg-color display.swap 60 61 [ 61 wid handle.events62 wid wait-events 62 63 sim-update 63 64 wid/draw draw -
branches/thune/thread_safe/urlan.h
r390 r403 201 201 202 202 203 /* 204 typedef struct 205 { 206 uint8_t type; 207 uint8_t flags; 208 uint16_t inputMask; 209 UIndex wordN; 210 UIndex valN; 211 UIndex bodyN; 212 } 213 UCellComponent; 214 */ 215 216 203 217 typedef struct 204 218 { … … 344 358 UCellContext ctx; 345 359 UCellContext port; 360 //UCellComponent comp; 346 361 UCellCall call; 347 362 UCellFunction func; … … 481 496 void (*toString)( UThread*, const UCell*, UString*, int depth ); 482 497 void (*toText)( UThread*, const UCell*, UString*, int depth ); 498 int (*compare)( UThread*, const UCell*, const UCell*, int mode ); 483 499 int (*selectAtom)( UThread*, UCell* val, const UCell* sel, UCell* res ); 484 500 void (*recycle)( UrlanEnv*, int phase );
