From 601f8fdd29e8cab8d9306bbe386bae25829c25c6 Mon Sep 17 00:00:00 2001 From: Alex Chapman <chapman.alex@gmail.com> Date: Wed, 15 Apr 2009 20:01:18 +1000 Subject: [PATCH 1/5] Moving jamshred from unmaintained to extra --- {unmaintained => extra}/jamshred/authors.txt | 0 {unmaintained => extra}/jamshred/deploy.factor | 0 {unmaintained => extra}/jamshred/game/authors.txt | 0 {unmaintained => extra}/jamshred/game/game.factor | 0 {unmaintained => extra}/jamshred/gl/authors.txt | 0 {unmaintained => extra}/jamshred/gl/gl.factor | 0 {unmaintained => extra}/jamshred/jamshred.factor | 0 {unmaintained => extra}/jamshred/log/log.factor | 0 {unmaintained => extra}/jamshred/oint/authors.txt | 0 {unmaintained => extra}/jamshred/oint/oint-tests.factor | 0 {unmaintained => extra}/jamshred/oint/oint.factor | 0 {unmaintained => extra}/jamshred/player/authors.txt | 0 {unmaintained => extra}/jamshred/player/player.factor | 0 {unmaintained => extra}/jamshred/sound/sound.factor | 0 {unmaintained => extra}/jamshred/summary.txt | 0 {unmaintained => extra}/jamshred/tags.txt | 0 {unmaintained => extra}/jamshred/tunnel/authors.txt | 0 {unmaintained => extra}/jamshred/tunnel/tunnel-tests.factor | 0 {unmaintained => extra}/jamshred/tunnel/tunnel.factor | 0 19 files changed, 0 insertions(+), 0 deletions(-) rename {unmaintained => extra}/jamshred/authors.txt (100%) rename {unmaintained => extra}/jamshred/deploy.factor (100%) rename {unmaintained => extra}/jamshred/game/authors.txt (100%) rename {unmaintained => extra}/jamshred/game/game.factor (100%) rename {unmaintained => extra}/jamshred/gl/authors.txt (100%) rename {unmaintained => extra}/jamshred/gl/gl.factor (100%) rename {unmaintained => extra}/jamshred/jamshred.factor (100%) rename {unmaintained => extra}/jamshred/log/log.factor (100%) rename {unmaintained => extra}/jamshred/oint/authors.txt (100%) rename {unmaintained => extra}/jamshred/oint/oint-tests.factor (100%) rename {unmaintained => extra}/jamshred/oint/oint.factor (100%) rename {unmaintained => extra}/jamshred/player/authors.txt (100%) rename {unmaintained => extra}/jamshred/player/player.factor (100%) rename {unmaintained => extra}/jamshred/sound/sound.factor (100%) rename {unmaintained => extra}/jamshred/summary.txt (100%) rename {unmaintained => extra}/jamshred/tags.txt (100%) rename {unmaintained => extra}/jamshred/tunnel/authors.txt (100%) rename {unmaintained => extra}/jamshred/tunnel/tunnel-tests.factor (100%) rename {unmaintained => extra}/jamshred/tunnel/tunnel.factor (100%) diff --git a/unmaintained/jamshred/authors.txt b/extra/jamshred/authors.txt similarity index 100% rename from unmaintained/jamshred/authors.txt rename to extra/jamshred/authors.txt diff --git a/unmaintained/jamshred/deploy.factor b/extra/jamshred/deploy.factor similarity index 100% rename from unmaintained/jamshred/deploy.factor rename to extra/jamshred/deploy.factor diff --git a/unmaintained/jamshred/game/authors.txt b/extra/jamshred/game/authors.txt similarity index 100% rename from unmaintained/jamshred/game/authors.txt rename to extra/jamshred/game/authors.txt diff --git a/unmaintained/jamshred/game/game.factor b/extra/jamshred/game/game.factor similarity index 100% rename from unmaintained/jamshred/game/game.factor rename to extra/jamshred/game/game.factor diff --git a/unmaintained/jamshred/gl/authors.txt b/extra/jamshred/gl/authors.txt similarity index 100% rename from unmaintained/jamshred/gl/authors.txt rename to extra/jamshred/gl/authors.txt diff --git a/unmaintained/jamshred/gl/gl.factor b/extra/jamshred/gl/gl.factor similarity index 100% rename from unmaintained/jamshred/gl/gl.factor rename to extra/jamshred/gl/gl.factor diff --git a/unmaintained/jamshred/jamshred.factor b/extra/jamshred/jamshred.factor similarity index 100% rename from unmaintained/jamshred/jamshred.factor rename to extra/jamshred/jamshred.factor diff --git a/unmaintained/jamshred/log/log.factor b/extra/jamshred/log/log.factor similarity index 100% rename from unmaintained/jamshred/log/log.factor rename to extra/jamshred/log/log.factor diff --git a/unmaintained/jamshred/oint/authors.txt b/extra/jamshred/oint/authors.txt similarity index 100% rename from unmaintained/jamshred/oint/authors.txt rename to extra/jamshred/oint/authors.txt diff --git a/unmaintained/jamshred/oint/oint-tests.factor b/extra/jamshred/oint/oint-tests.factor similarity index 100% rename from unmaintained/jamshred/oint/oint-tests.factor rename to extra/jamshred/oint/oint-tests.factor diff --git a/unmaintained/jamshred/oint/oint.factor b/extra/jamshred/oint/oint.factor similarity index 100% rename from unmaintained/jamshred/oint/oint.factor rename to extra/jamshred/oint/oint.factor diff --git a/unmaintained/jamshred/player/authors.txt b/extra/jamshred/player/authors.txt similarity index 100% rename from unmaintained/jamshred/player/authors.txt rename to extra/jamshred/player/authors.txt diff --git a/unmaintained/jamshred/player/player.factor b/extra/jamshred/player/player.factor similarity index 100% rename from unmaintained/jamshred/player/player.factor rename to extra/jamshred/player/player.factor diff --git a/unmaintained/jamshred/sound/sound.factor b/extra/jamshred/sound/sound.factor similarity index 100% rename from unmaintained/jamshred/sound/sound.factor rename to extra/jamshred/sound/sound.factor diff --git a/unmaintained/jamshred/summary.txt b/extra/jamshred/summary.txt similarity index 100% rename from unmaintained/jamshred/summary.txt rename to extra/jamshred/summary.txt diff --git a/unmaintained/jamshred/tags.txt b/extra/jamshred/tags.txt similarity index 100% rename from unmaintained/jamshred/tags.txt rename to extra/jamshred/tags.txt diff --git a/unmaintained/jamshred/tunnel/authors.txt b/extra/jamshred/tunnel/authors.txt similarity index 100% rename from unmaintained/jamshred/tunnel/authors.txt rename to extra/jamshred/tunnel/authors.txt diff --git a/unmaintained/jamshred/tunnel/tunnel-tests.factor b/extra/jamshred/tunnel/tunnel-tests.factor similarity index 100% rename from unmaintained/jamshred/tunnel/tunnel-tests.factor rename to extra/jamshred/tunnel/tunnel-tests.factor diff --git a/unmaintained/jamshred/tunnel/tunnel.factor b/extra/jamshred/tunnel/tunnel.factor similarity index 100% rename from unmaintained/jamshred/tunnel/tunnel.factor rename to extra/jamshred/tunnel/tunnel.factor From ea903a67ba244a212e29b1e5a73128b51535da74 Mon Sep 17 00:00:00 2001 From: Alex Chapman <chapman.alex@gmail.com> Date: Thu, 16 Apr 2009 11:05:59 +1000 Subject: [PATCH 2/5] Openal fixes --- {unmaintained => extra}/openal/authors.txt | 0 {unmaintained => extra}/openal/backend/authors.txt | 0 .../openal/backend/backend.factor | 0 {unmaintained => extra}/openal/example/authors.txt | 0 .../openal/example/example.factor | 0 {unmaintained => extra}/openal/macosx/authors.txt | 0 .../openal/macosx/macosx.factor | 4 ++-- {unmaintained => extra}/openal/macosx/tags.txt | 0 {unmaintained => extra}/openal/openal.factor | 14 ++++++-------- {unmaintained => extra}/openal/other/authors.txt | 0 {unmaintained => extra}/openal/other/other.factor | 0 {unmaintained => extra}/openal/summary.txt | 0 {unmaintained => extra}/openal/tags.txt | 0 13 files changed, 8 insertions(+), 10 deletions(-) rename {unmaintained => extra}/openal/authors.txt (100%) rename {unmaintained => extra}/openal/backend/authors.txt (100%) rename {unmaintained => extra}/openal/backend/backend.factor (100%) rename {unmaintained => extra}/openal/example/authors.txt (100%) rename {unmaintained => extra}/openal/example/example.factor (100%) rename {unmaintained => extra}/openal/macosx/authors.txt (100%) rename {unmaintained => extra}/openal/macosx/macosx.factor (84%) rename {unmaintained => extra}/openal/macosx/tags.txt (100%) rename {unmaintained => extra}/openal/openal.factor (96%) rename {unmaintained => extra}/openal/other/authors.txt (100%) rename {unmaintained => extra}/openal/other/other.factor (100%) rename {unmaintained => extra}/openal/summary.txt (100%) rename {unmaintained => extra}/openal/tags.txt (100%) diff --git a/unmaintained/openal/authors.txt b/extra/openal/authors.txt similarity index 100% rename from unmaintained/openal/authors.txt rename to extra/openal/authors.txt diff --git a/unmaintained/openal/backend/authors.txt b/extra/openal/backend/authors.txt similarity index 100% rename from unmaintained/openal/backend/authors.txt rename to extra/openal/backend/authors.txt diff --git a/unmaintained/openal/backend/backend.factor b/extra/openal/backend/backend.factor similarity index 100% rename from unmaintained/openal/backend/backend.factor rename to extra/openal/backend/backend.factor diff --git a/unmaintained/openal/example/authors.txt b/extra/openal/example/authors.txt similarity index 100% rename from unmaintained/openal/example/authors.txt rename to extra/openal/example/authors.txt diff --git a/unmaintained/openal/example/example.factor b/extra/openal/example/example.factor similarity index 100% rename from unmaintained/openal/example/example.factor rename to extra/openal/example/example.factor diff --git a/unmaintained/openal/macosx/authors.txt b/extra/openal/macosx/authors.txt similarity index 100% rename from unmaintained/openal/macosx/authors.txt rename to extra/openal/macosx/authors.txt diff --git a/unmaintained/openal/macosx/macosx.factor b/extra/openal/macosx/macosx.factor similarity index 84% rename from unmaintained/openal/macosx/macosx.factor rename to extra/openal/macosx/macosx.factor index abc0d65fb9..81d360eca1 100644 --- a/unmaintained/openal/macosx/macosx.factor +++ b/extra/openal/macosx/macosx.factor @@ -1,7 +1,7 @@ ! Copyright (C) 2007 Chris Double. ! See http://factorcode.org/license.txt for BSD license. USING: alien.c-types kernel alien alien.syntax shuffle -combinators.lib openal.backend namespaces system ; +openal.backend namespaces system generalizations ; IN: openal.macosx LIBRARY: alut @@ -10,5 +10,5 @@ FUNCTION: void alutLoadWAVFile ( ALbyte* fileName, ALenum* format, void** data, M: macosx load-wav-file ( path -- format data size frequency ) 0 <int> f <void*> 0 <int> 0 <int> - [ alutLoadWAVFile ] 4keep + [ alutLoadWAVFile ] 4 nkeep [ [ [ *int ] dip *void* ] dip *int ] dip *int ; diff --git a/unmaintained/openal/macosx/tags.txt b/extra/openal/macosx/tags.txt similarity index 100% rename from unmaintained/openal/macosx/tags.txt rename to extra/openal/macosx/tags.txt diff --git a/unmaintained/openal/openal.factor b/extra/openal/openal.factor similarity index 96% rename from unmaintained/openal/openal.factor rename to extra/openal/openal.factor index 8533308f26..6e9721b0fe 100644 --- a/unmaintained/openal/openal.factor +++ b/extra/openal/openal.factor @@ -1,8 +1,8 @@ ! Copyright (C) 2007 Chris Double. ! See http://factorcode.org/license.txt for BSD license. -USING: kernel arrays alien system combinators alien.syntax namespaces +USING: kernel accessors arrays alien system combinators alien.syntax namespaces alien.c-types sequences vocabs.loader shuffle - openal.backend specialized-arrays.uint ; + openal.backend specialized-arrays.uint alien.libraries generalizations ; IN: openal << "alut" { @@ -245,13 +245,11 @@ SYMBOL: init f init set-global ] unless ; -: <uint-array> ( n -- byte-array ) "ALuint" <c-array> ; - : gen-sources ( size -- seq ) - dup <uint-array> 2dup underlying>> alGenSources swap ; + dup <uint-array> [ alGenSources ] keep ; : gen-buffers ( size -- seq ) - dup <uint-array> 2dup underlying>> alGenBuffers swap ; + dup <uint-array> [ alGenBuffers ] keep ; : gen-buffer ( -- buffer ) 1 gen-buffers first ; @@ -264,10 +262,10 @@ os macosx? "openal.macosx" "openal.other" ? require : create-buffer-from-wav ( filename -- buffer ) gen-buffer dup rot load-wav-file - [ alBufferData ] 4keep alutUnloadWAV ; + [ alBufferData ] 4 nkeep alutUnloadWAV ; : queue-buffers ( source buffers -- ) - [ length ] [ >uint-array underlying>> ] bi alSourceQueueBuffers ; + [ length ] [ >uint-array ] bi alSourceQueueBuffers ; : queue-buffer ( source buffer -- ) 1array queue-buffers ; diff --git a/unmaintained/openal/other/authors.txt b/extra/openal/other/authors.txt similarity index 100% rename from unmaintained/openal/other/authors.txt rename to extra/openal/other/authors.txt diff --git a/unmaintained/openal/other/other.factor b/extra/openal/other/other.factor similarity index 100% rename from unmaintained/openal/other/other.factor rename to extra/openal/other/other.factor diff --git a/unmaintained/openal/summary.txt b/extra/openal/summary.txt similarity index 100% rename from unmaintained/openal/summary.txt rename to extra/openal/summary.txt diff --git a/unmaintained/openal/tags.txt b/extra/openal/tags.txt similarity index 100% rename from unmaintained/openal/tags.txt rename to extra/openal/tags.txt From f02bbb6f4baba7f556e3f821d9b8903e4fb7d0ef Mon Sep 17 00:00:00 2001 From: Alex Chapman <chapman.alex@gmail.com> Date: Thu, 16 Apr 2009 11:06:28 +1000 Subject: [PATCH 3/5] jamshred fixes, but still has an endless recursion bug --- extra/jamshred/gl/gl.factor | 33 ++++++++++++++++------- extra/jamshred/jamshred.factor | 30 ++++++++++----------- extra/jamshred/oint/oint.factor | 4 +-- extra/jamshred/player/player.factor | 8 +++--- extra/jamshred/sound/sound.factor | 2 +- extra/jamshred/tunnel/tunnel-tests.factor | 4 +-- extra/jamshred/tunnel/tunnel.factor | 20 +++++++------- 7 files changed, 56 insertions(+), 45 deletions(-) diff --git a/extra/jamshred/gl/gl.factor b/extra/jamshred/gl/gl.factor index b78e7de88e..bae275e96a 100644 --- a/extra/jamshred/gl/gl.factor +++ b/extra/jamshred/gl/gl.factor @@ -6,8 +6,8 @@ math.functions math.vectors opengl opengl.gl opengl.glu opengl.demo-support sequences specialized-arrays.float ; IN: jamshred.gl -: min-vertices 6 ; inline -: max-vertices 32 ; inline +: min-vertices ( -- n ) 6 ; inline +: max-vertices ( -- n ) 32 ; inline : n-vertices ( -- n ) 32 ; inline @@ -55,7 +55,7 @@ IN: jamshred.gl : draw-segment ( next-segment segment -- ) GL_QUAD_STRIP [ [ draw-vertex-pair ] 2curry - n-vertices equally-spaced-radians F{ 0.0 } append swap each + n-vertices equally-spaced-radians float-array{ 0.0 } append swap each ] do-state ; : draw-segments ( segments -- ) @@ -68,15 +68,13 @@ IN: jamshred.gl : draw-tunnel ( player -- ) segments-to-render draw-segments ; -: init-graphics ( width height -- ) +: init-graphics ( -- ) GL_DEPTH_TEST glEnable GL_SCISSOR_TEST glDisable 1.0 glClearDepth 0.0 0.0 0.0 0.0 glClearColor - GL_COLOR_BUFFER_BIT GL_DEPTH_BUFFER_BIT bitor glClear - GL_PROJECTION glMatrixMode glLoadIdentity - dup 0 = [ 2drop ] [ / >float 45.0 swap 0.1 100.0 gluPerspective ] if - GL_MODELVIEW glMatrixMode glLoadIdentity + GL_PROJECTION glMatrixMode glPushMatrix + GL_MODELVIEW glMatrixMode glPushMatrix GL_LEQUAL glDepthFunc GL_LIGHTING glEnable GL_LIGHT0 glEnable @@ -89,11 +87,26 @@ IN: jamshred.gl GL_LIGHT0 GL_DIFFUSE float-array{ 1.0 1.0 1.0 1.0 } underlying>> glLightfv GL_LIGHT0 GL_SPECULAR float-array{ 1.0 1.0 1.0 1.0 } underlying>> glLightfv ; +: cleanup-graphics ( -- ) + GL_DEPTH_TEST glDisable + GL_SCISSOR_TEST glEnable + GL_MODELVIEW glMatrixMode glPopMatrix + GL_PROJECTION glMatrixMode glPopMatrix + GL_LIGHTING glDisable + GL_LIGHT0 glDisable + GL_FOG glDisable + GL_COLOR_MATERIAL glDisable ; + +: pre-draw ( width height -- ) + GL_COLOR_BUFFER_BIT GL_DEPTH_BUFFER_BIT bitor glClear + GL_PROJECTION glMatrixMode glLoadIdentity + dup 0 = [ 2drop ] [ / >float 45.0 swap 0.1 100.0 gluPerspective ] if + GL_MODELVIEW glMatrixMode glLoadIdentity ; + : player-view ( player -- ) [ location>> ] [ [ location>> ] [ forward>> ] bi v+ ] [ up>> ] tri gl-look-at ; : draw-jamshred ( jamshred width height -- ) - init-graphics jamshred-player [ player-view ] [ draw-tunnel ] bi ; - + pre-draw jamshred-player [ player-view ] [ draw-tunnel ] bi ; diff --git a/extra/jamshred/jamshred.factor b/extra/jamshred/jamshred.factor index d0b74417d1..49624e2947 100644 --- a/extra/jamshred/jamshred.factor +++ b/extra/jamshred/jamshred.factor @@ -1,12 +1,12 @@ ! Copyright (C) 2007, 2008 Alex Chapman ! See http://factorcode.org/license.txt for BSD license. -USING: accessors arrays calendar jamshred.game jamshred.gl jamshred.player jamshred.log kernel math math.constants math.geometry.rect math.vectors namespaces sequences threads ui ui.backend ui.gadgets ui.gadgets.worlds ui.gestures ui.render ; +USING: accessors arrays calendar jamshred.game jamshred.gl jamshred.player jamshred.log kernel math math.constants math.rectangles math.vectors namespaces sequences threads ui ui.backend ui.gadgets ui.gadgets.worlds ui.gestures ui.render ; IN: jamshred TUPLE: jamshred-gadget < gadget { jamshred jamshred } last-hand-loc ; : <jamshred-gadget> ( jamshred -- gadget ) - jamshred-gadget new-gadget swap >>jamshred ; + jamshred-gadget new swap >>jamshred ; : default-width ( -- x ) 800 ; : default-height ( -- y ) 600 ; @@ -15,7 +15,7 @@ M: jamshred-gadget pref-dim* drop default-width default-height 2array ; M: jamshred-gadget draw-gadget* ( gadget -- ) - [ jamshred>> ] [ rect-dim first2 draw-jamshred ] bi ; + [ jamshred>> ] [ dim>> first2 draw-jamshred ] bi ; : jamshred-loop ( gadget -- ) dup jamshred>> quit>> [ @@ -23,7 +23,7 @@ M: jamshred-gadget draw-gadget* ( gadget -- ) ] [ [ jamshred>> jamshred-update ] [ relayout-1 ] - [ 10 milliseconds sleep yield jamshred-loop ] tri + [ 100 milliseconds sleep jamshred-loop ] tri ] if ; : fullscreen ( gadget -- ) @@ -36,10 +36,11 @@ M: jamshred-gadget draw-gadget* ( gadget -- ) [ fullscreen? not ] keep set-fullscreen* ; M: jamshred-gadget graft* ( gadget -- ) - [ jamshred-loop ] curry in-thread ; + [ find-gl-context init-graphics ] + [ [ jamshred-loop ] curry in-thread ] bi ; M: jamshred-gadget ungraft* ( gadget -- ) - jamshred>> t swap (>>quit) ; + dup find-gl-context cleanup-graphics jamshred>> t swap (>>quit) ; : jamshred-restart ( jamshred-gadget -- ) <jamshred> >>jamshred drop ; @@ -49,16 +50,15 @@ M: jamshred-gadget ungraft* ( gadget -- ) : x>radians ( x gadget -- theta ) #! translate motion of x pixels to an angle - rect-dim first pix>radians neg ; + dim>> first pix>radians neg ; : y>radians ( y gadget -- theta ) #! translate motion of y pixels to an angle - rect-dim second pix>radians ; + dim>> second pix>radians ; : (handle-mouse-motion) ( jamshred-gadget mouse-motion -- ) - over jamshred>> >r - [ first swap x>radians ] 2keep second swap y>radians - r> mouse-moved ; + dupd [ first swap x>radians ] [ second swap y>radians ] 2bi + rot jamshred>> mouse-moved ; : handle-mouse-motion ( jamshred-gadget -- ) hand-loc get [ @@ -84,11 +84,11 @@ jamshred-gadget H{ { T{ key-down f f "LEFT" } [ jamshred>> 1 jamshred-roll ] } { T{ key-down f f "RIGHT" } [ jamshred>> -1 jamshred-roll ] } { T{ key-down f f "q" } [ quit ] } - { T{ motion } [ handle-mouse-motion ] } - { T{ mouse-scroll } [ handle-mouse-scroll ] } + { motion [ handle-mouse-motion ] } + { mouse-scroll [ handle-mouse-scroll ] } } set-gestures -: jamshred-window ( -- gadget ) - [ <jamshred> <jamshred-gadget> dup "Jamshred" open-window ] with-ui ; +: jamshred-window ( -- ) + [ <jamshred> <jamshred-gadget> "Jamshred" open-window ] with-ui ; MAIN: jamshred-window diff --git a/extra/jamshred/oint/oint.factor b/extra/jamshred/oint/oint.factor index 808e92a1f9..ae72bd847c 100644 --- a/extra/jamshred/oint/oint.factor +++ b/extra/jamshred/oint/oint.factor @@ -1,6 +1,6 @@ ! Copyright (C) 2007, 2008 Alex Chapman ! See http://factorcode.org/license.txt for BSD license. -USING: accessors arrays float-arrays kernel locals math math.constants math.functions math.matrices math.vectors math.quaternions random sequences ; +USING: accessors arrays kernel locals math math.constants math.functions math.matrices math.vectors math.quaternions random sequences ; IN: jamshred.oint ! An oint is a point with three linearly independent unit vectors @@ -12,7 +12,7 @@ TUPLE: oint location forward up left ; C: <oint> oint : rotation-quaternion ( theta axis -- quaternion ) - swap 2 / dup cos swap sin rot n*v first3 rect> >r rect> r> 2array ; + swap 2 / dup cos swap sin rot n*v first3 rect> [ rect> ] dip 2array ; : rotate-vector ( q qrecip v -- v ) v>q swap q* q* q>v ; diff --git a/extra/jamshred/player/player.factor b/extra/jamshred/player/player.factor index 72f26a2c79..d33b78f29c 100644 --- a/extra/jamshred/player/player.factor +++ b/extra/jamshred/player/player.factor @@ -1,6 +1,6 @@ ! Copyright (C) 2007, 2008 Alex Chapman ! See http://factorcode.org/license.txt for BSD license. -USING: accessors colors combinators float-arrays jamshred.log jamshred.oint jamshred.sound jamshred.tunnel kernel locals math math.constants math.order math.ranges math.vectors math.matrices sequences shuffle strings system ; +USING: accessors colors.constants combinators jamshred.log jamshred.oint jamshred.sound jamshred.tunnel kernel locals math math.constants math.order math.ranges math.vectors math.matrices sequences shuffle specialized-arrays.float strings system ; IN: jamshred.player TUPLE: player < oint @@ -16,11 +16,11 @@ TUPLE: player < oint : max-speed ( -- speed ) 30.0 ; : <player> ( name sounds -- player ) - [ F{ 0 0 5 } F{ 0 0 -1 } F{ 0 1 0 } F{ -1 0 0 } ] 2dip + [ float-array{ 0 0 5 } float-array{ 0 0 -1 } float-array{ 0 1 0 } float-array{ -1 0 0 } ] 2dip f f 0 default-speed player boa ; : turn-player ( player x-radians y-radians -- ) - >r over r> left-pivot up-pivot ; + [ over ] dip left-pivot up-pivot ; : roll-player ( player z-radians -- ) forward-pivot ; @@ -134,4 +134,4 @@ TUPLE: player < oint [ update-time ] [ distance-to-move ] [ (move-player) 2drop ] tri ; : update-player ( player -- ) - [ move-player ] [ nearest-segment>> white swap (>>color) ] bi ; + [ move-player ] [ nearest-segment>> "white" named-color swap (>>color) ] bi ; diff --git a/extra/jamshred/sound/sound.factor b/extra/jamshred/sound/sound.factor index c19c67671f..6a9b331f33 100644 --- a/extra/jamshred/sound/sound.factor +++ b/extra/jamshred/sound/sound.factor @@ -1,6 +1,6 @@ ! Copyright (C) 2008 Alex Chapman ! See http://factorcode.org/license.txt for BSD license. -USING: accessors io.files kernel openal sequences ; +USING: accessors io.pathnames kernel openal sequences ; IN: jamshred.sound TUPLE: sounds bang ; diff --git a/extra/jamshred/tunnel/tunnel-tests.factor b/extra/jamshred/tunnel/tunnel-tests.factor index 9486713f55..8e2f1a6fab 100644 --- a/extra/jamshred/tunnel/tunnel-tests.factor +++ b/extra/jamshred/tunnel/tunnel-tests.factor @@ -1,6 +1,6 @@ ! Copyright (C) 2007, 2008 Alex Chapman ! See http://factorcode.org/license.txt for BSD license. -USING: accessors arrays float-arrays jamshred.oint jamshred.tunnel kernel math.vectors sequences tools.test ; +USING: accessors arrays jamshred.oint jamshred.tunnel kernel math.vectors sequences specialized-arrays.float tools.test ; IN: jamshred.tunnel.tests [ 0 ] [ T{ segment f { 0 0 0 } f f f 0 } @@ -14,7 +14,7 @@ IN: jamshred.tunnel.tests [ 3 ] [ <straight-tunnel> T{ oint f { 0 0 -3.25 } } 0 nearest-segment-forward number>> ] unit-test -[ F{ 0 0 0 } ] [ <straight-tunnel> T{ oint f { 0 0 -0.25 } } over first nearest-segment location>> ] unit-test +[ float-array{ 0 0 0 } ] [ <straight-tunnel> T{ oint f { 0 0 -0.25 } } over first nearest-segment location>> ] unit-test : test-segment-oint ( -- oint ) { 0 0 0 } { 0 0 -1 } { 0 1 0 } { -1 0 0 } <oint> ; diff --git a/extra/jamshred/tunnel/tunnel.factor b/extra/jamshred/tunnel/tunnel.factor index 52f2d38dd1..4c4b3e6812 100644 --- a/extra/jamshred/tunnel/tunnel.factor +++ b/extra/jamshred/tunnel/tunnel.factor @@ -1,8 +1,6 @@ ! Copyright (C) 2007, 2008 Alex Chapman ! See http://factorcode.org/license.txt for BSD license. -USING: accessors arrays colors combinators float-arrays kernel -locals math math.constants math.matrices math.order math.ranges -math.vectors math.quadratic random sequences vectors jamshred.oint ; +USING: accessors arrays colors combinators kernel locals math math.constants math.matrices math.order math.ranges math.vectors math.quadratic random sequences specialized-arrays.float vectors jamshred.oint ; IN: jamshred.tunnel : n-segments ( -- n ) 5000 ; inline @@ -26,20 +24,20 @@ C: <segment> segment : (random-segments) ( segments n -- segments ) dup 0 > [ - >r dup peek random-segment over push r> 1- (random-segments) + [ dup peek random-segment over push ] dip 1- (random-segments) ] [ drop ] if ; : default-segment-radius ( -- r ) 1 ; : initial-segment ( -- segment ) - F{ 0 0 0 } F{ 0 0 -1 } F{ 0 1 0 } F{ -1 0 0 } + float-array{ 0 0 0 } float-array{ 0 0 -1 } float-array{ 0 1 0 } float-array{ -1 0 0 } 0 random-color default-segment-radius <segment> ; : random-segments ( n -- segments ) initial-segment 1vector swap (random-segments) ; : simple-segment ( n -- segment ) - [ F{ 0 0 -1 } n*v F{ 0 0 -1 } F{ 0 1 0 } F{ -1 0 0 } ] keep + [ float-array{ 0 0 -1 } n*v float-array{ 0 0 -1 } float-array{ 0 1 0 } float-array{ -1 0 0 } ] keep random-color default-segment-radius <segment> ; : simple-segments ( n -- segments ) @@ -58,12 +56,12 @@ C: <segment> segment : nearer-segment ( segment segment oint -- segment ) #! return whichever of the two segments is nearer to the oint - >r 2dup r> tuck distance >r distance r> < -rot ? ; + [ 2dup ] dip tuck distance [ distance ] dip < -rot ? ; : (find-nearest-segment) ( nearest next oint -- nearest ? ) #! find the nearest of 'next' and 'nearest' to 'oint', and return #! t if the nearest hasn't changed - pick >r nearer-segment dup r> = ; + pick [ nearer-segment dup ] dip = ; : find-nearest-segment ( oint segments -- segment ) dup first swap rest-slice rot [ (find-nearest-segment) ] curry @@ -78,9 +76,9 @@ C: <segment> segment : nearest-segment ( segments oint start-segment -- segment ) #! find the segment nearest to 'oint', and return it. #! start looking at segment 'start-segment' - number>> over >r - [ nearest-segment-forward ] 3keep - nearest-segment-backward r> nearer-segment ; + number>> over [ + [ nearest-segment-forward ] 3keep nearest-segment-backward + ] dip nearer-segment ; : get-segment ( segments n -- segment ) over sequence-index-range clamp-to-range swap nth ; From 4934c49f0880c53ce8381c6620d1b2b62484678b Mon Sep 17 00:00:00 2001 From: Alex Chapman <chapman.alex@gmail.com> Date: Thu, 16 Apr 2009 13:36:21 +1000 Subject: [PATCH 4/5] Moving synth and morse from unmaintained to extra --- {unmaintained => extra}/morse/authors.txt | 0 {unmaintained => extra}/morse/morse-docs.factor | 0 {unmaintained => extra}/morse/morse-tests.factor | 0 {unmaintained => extra}/morse/morse.factor | 0 {unmaintained => extra}/morse/summary.txt | 0 {unmaintained => extra}/morse/tags.txt | 0 {unmaintained => extra}/synth/authors.txt | 0 {unmaintained => extra}/synth/buffers/authors.txt | 0 {unmaintained => extra}/synth/buffers/buffers.factor | 0 {unmaintained => extra}/synth/example/authors.txt | 0 {unmaintained => extra}/synth/example/example.factor | 0 {unmaintained => extra}/synth/summary.txt | 0 {unmaintained => extra}/synth/synth.factor | 0 13 files changed, 0 insertions(+), 0 deletions(-) rename {unmaintained => extra}/morse/authors.txt (100%) rename {unmaintained => extra}/morse/morse-docs.factor (100%) rename {unmaintained => extra}/morse/morse-tests.factor (100%) rename {unmaintained => extra}/morse/morse.factor (100%) rename {unmaintained => extra}/morse/summary.txt (100%) rename {unmaintained => extra}/morse/tags.txt (100%) rename {unmaintained => extra}/synth/authors.txt (100%) rename {unmaintained => extra}/synth/buffers/authors.txt (100%) rename {unmaintained => extra}/synth/buffers/buffers.factor (100%) rename {unmaintained => extra}/synth/example/authors.txt (100%) rename {unmaintained => extra}/synth/example/example.factor (100%) rename {unmaintained => extra}/synth/summary.txt (100%) rename {unmaintained => extra}/synth/synth.factor (100%) diff --git a/unmaintained/morse/authors.txt b/extra/morse/authors.txt similarity index 100% rename from unmaintained/morse/authors.txt rename to extra/morse/authors.txt diff --git a/unmaintained/morse/morse-docs.factor b/extra/morse/morse-docs.factor similarity index 100% rename from unmaintained/morse/morse-docs.factor rename to extra/morse/morse-docs.factor diff --git a/unmaintained/morse/morse-tests.factor b/extra/morse/morse-tests.factor similarity index 100% rename from unmaintained/morse/morse-tests.factor rename to extra/morse/morse-tests.factor diff --git a/unmaintained/morse/morse.factor b/extra/morse/morse.factor similarity index 100% rename from unmaintained/morse/morse.factor rename to extra/morse/morse.factor diff --git a/unmaintained/morse/summary.txt b/extra/morse/summary.txt similarity index 100% rename from unmaintained/morse/summary.txt rename to extra/morse/summary.txt diff --git a/unmaintained/morse/tags.txt b/extra/morse/tags.txt similarity index 100% rename from unmaintained/morse/tags.txt rename to extra/morse/tags.txt diff --git a/unmaintained/synth/authors.txt b/extra/synth/authors.txt similarity index 100% rename from unmaintained/synth/authors.txt rename to extra/synth/authors.txt diff --git a/unmaintained/synth/buffers/authors.txt b/extra/synth/buffers/authors.txt similarity index 100% rename from unmaintained/synth/buffers/authors.txt rename to extra/synth/buffers/authors.txt diff --git a/unmaintained/synth/buffers/buffers.factor b/extra/synth/buffers/buffers.factor similarity index 100% rename from unmaintained/synth/buffers/buffers.factor rename to extra/synth/buffers/buffers.factor diff --git a/unmaintained/synth/example/authors.txt b/extra/synth/example/authors.txt similarity index 100% rename from unmaintained/synth/example/authors.txt rename to extra/synth/example/authors.txt diff --git a/unmaintained/synth/example/example.factor b/extra/synth/example/example.factor similarity index 100% rename from unmaintained/synth/example/example.factor rename to extra/synth/example/example.factor diff --git a/unmaintained/synth/summary.txt b/extra/synth/summary.txt similarity index 100% rename from unmaintained/synth/summary.txt rename to extra/synth/summary.txt diff --git a/unmaintained/synth/synth.factor b/extra/synth/synth.factor similarity index 100% rename from unmaintained/synth/synth.factor rename to extra/synth/synth.factor From f491dba93624cef565cdea7101a6258cfea70fad Mon Sep 17 00:00:00 2001 From: Alex Chapman <chapman.alex@gmail.com> Date: Thu, 16 Apr 2009 13:36:54 +1000 Subject: [PATCH 5/5] Morse an synth fixed --- extra/morse/morse.factor | 12 ++++++------ extra/synth/buffers/buffers.factor | 12 ++++++------ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/extra/morse/morse.factor b/extra/morse/morse.factor index 2951c96077..54abce9395 100644 --- a/extra/morse/morse.factor +++ b/extra/morse/morse.factor @@ -1,8 +1,8 @@ ! Copyright (C) 2007, 2008 Alex Chapman ! See http://factorcode.org/license.txt for BSD license. -USING: accessors assocs combinators hashtables kernel lists math +USING: accessors ascii assocs combinators hashtables kernel lists math namespaces make openal parser-combinators promises sequences -strings symbols synth synth.buffers unicode.case ; +strings synth synth.buffers unicode.case ; IN: morse <PRIVATE @@ -135,7 +135,7 @@ SYMBOLS: source dot-buffer dash-buffer intra-char-gap-buffer letter-gap-buffer ; : intra-char-gap ( -- ) intra-char-gap-buffer queue ; : letter-gap ( -- ) letter-gap-buffer queue ; -: beep-freq 880 ; +: beep-freq ( -- n ) 880 ; : <morse-buffer> ( -- buffer ) half-sample-freq <8bit-mono-buffer> ; @@ -160,7 +160,7 @@ SYMBOLS: source dot-buffer dash-buffer intra-char-gap-buffer letter-gap-buffer ; init-openal 1 gen-sources first source set make-buffers call source get source-play - ] with-scope ; + ] with-scope ; inline : play-char ( ch -- ) [ intra-char-gap ] [ @@ -176,7 +176,7 @@ PRIVATE> : play-as-morse* ( str unit-length -- ) [ [ letter-gap ] [ ch>morse play-char ] interleave - ] swap playing-morse ; + ] swap playing-morse ; inline : play-as-morse ( str -- ) - 0.05 play-as-morse* ; + 0.05 play-as-morse* ; inline diff --git a/extra/synth/buffers/buffers.factor b/extra/synth/buffers/buffers.factor index b0128ca52a..671ebead63 100644 --- a/extra/synth/buffers/buffers.factor +++ b/extra/synth/buffers/buffers.factor @@ -1,6 +1,6 @@ ! Copyright (C) 2008 Alex Chapman ! See http://factorcode.org/license.txt for BSD license. -USING: accessors alien.c-types combinators kernel locals math math.ranges openal sequences sequences.merged ; +USING: accessors alien.c-types combinators kernel locals math math.ranges openal sequences sequences.merged specialized-arrays.uchar specialized-arrays.short ; IN: synth.buffers TUPLE: buffer sample-freq 8bit? id ; @@ -57,11 +57,11 @@ M: 8bit-stereo-buffer buffer-data M: 16bit-stereo-buffer buffer-data interleaved-stereo-data 16bit-buffer-data ; -: telephone-sample-freq 8000 ; -: half-sample-freq 22050 ; -: cd-sample-freq 44100 ; -: digital-sample-freq 48000 ; -: professional-sample-freq 88200 ; +: telephone-sample-freq ( -- n ) 8000 ; +: half-sample-freq ( -- n ) 22050 ; +: cd-sample-freq ( -- n ) 44100 ; +: digital-sample-freq ( -- n ) 48000 ; +: professional-sample-freq ( -- n ) 88200 ; : send-buffer ( buffer -- buffer ) {