[pal-cvs] CVS pal
tneste
tneste at common-lisp.net
Thu Jun 28 20:14:05 UTC 2007
Update of /project/pal/cvsroot/pal
In directory clnet:/tmp/cvs-serv26552
Added Files:
changes.txt default-font.fnt default-font.png ffi.lisp
license.txt package.lisp pal-macros.lisp pal.asd pal.lisp
todo.txt vector.lisp
Log Message:
--- /project/pal/cvsroot/pal/changes.txt 2007/06/28 20:14:05 NONE
+++ /project/pal/cvsroot/pal/changes.txt 2007/06/28 20:14:05 1.1
Release 3
- Renamed GL-PAL system to PAL.
- MESSAGE is now a function that just prints it argument.
- Added DRAW-ARROW.
- Changed TEXT-SIZE to GET-TEXT-SIZE.
- Changed REGISTER-RESOURCE, FREE-RESOURCE, FREE-ALL-RESOURCES, OPEN-PAL and
CLOSE-PAL into public generic functions.
- Foreign libraries are now loaded with CFFI:USE-FOREIGN-LIBRARIES. There is now
a function PAL:LOAD-FOREIGN-LIBRARIES that can be used to (re)load the shared
libs when needed (mainly to be used when delivering images with CLisp)
- Renamed SDL packages name to PAL-FFI and sdl.lisp file to ffi.lisp
- Samples and musics are now wrapped in structures, cleaned up resource
handling.
- Replaced WITH-MATRIX and WITH-TRANSLATION with WITH-TRANSFORMATION.
- Added RANDOMLY macro.
Release 2, May 19 2007
- Tested on Linux/ia32 (Ubuntu 7.04, SBCL 1.05).
- Cleaned up the font reader a bit.
- Pathname fixing; added ext:probe-directory for clisp, pathnamified the
application folder/file functions and added basic *nix app-dir support.
- Cleaned up the type declarations a bit.
- MATCH-PRESSED-KEYS is now called TEST-KEYS.
- Fixed V-ANGLE since (atan 0 0) errors with DIVISION-BY-ZERO under (at least)
CLisp.
- Some of the examples had floating point errors under CLisp. Fixed with #+CLISP
EXT:WITHOUT-FLOATING-POINT-UNDERFLOWS.
- Source directory of PAL is automatically added to the default search paths (to
allow PAL to find 'DEFAULT-FONT).
- Added a default font (tag 'PAL::DEFAULT-FONT, mainly for debuggin purposes)
and changed the order of font & position args in text functions.
- Removed the font argument from DRAW-FPS. It now uses the default font.
- Added the MESSAGE macro.
Release 1, March 14 2007
- I changed my original Pixel Art Library from using software rendering to
OpenGL. First release.
--- /project/pal/cvsroot/pal/default-font.fnt 2007/06/28 20:14:05 NONE
+++ /project/pal/cvsroot/pal/default-font.fnt 2007/06/28 20:14:05 1.1
[HGEFONT]
Bitmap=default-font.png
Char=" ",1,1,3,13,-1,2
Char="!",5,1,4,13,1,0
Char=""",10,1,5,13,0,1
Char="#",16,1,10,13,0,-1
Char="$",27,1,9,13,-1,0
Char="%",37,1,12,13,0,-1
Char="&",50,1,10,13,0,0
Char="'",61,1,3,13,0,0
Char="(",65,1,5,13,0,0
Char=")",71,1,5,13,0,0
Char="*",77,1,7,13,-1,0
Char="+",85,1,9,13,0,0
Char=",",95,1,5,13,-1,0
Char="-",101,1,5,13,0,0
Char=".",107,1,4,13,0,0
Char="/",112,1,6,13,-1,-1
Char="0",1,15,8,13,0,0
Char="1",10,15,8,13,0,0
Char="2",19,15,8,13,0,0
Char="3",28,15,8,13,0,0
Char="4",37,15,9,13,0,-1
Char="5",47,15,8,13,0,0
Char="6",56,15,8,13,0,0
Char="7",65,15,8,13,0,0
Char="8",74,15,8,13,0,0
Char="9",83,15,8,13,0,0
Char=":",92,15,4,13,0,0
Char=";",97,15,5,13,-1,0
Char="<",103,15,9,13,0,0
Char="=",113,15,9,13,0,0
Char=">",1,29,9,13,0,0
Char="?",11,29,7,13,0,-1
Char="@",19,29,12,13,0,-1
Char="A",32,29,10,13,-1,-1
Char="B",43,29,9,13,0,0
Char="C",53,29,9,13,0,0
Char="D",63,29,9,13,0,0
Char="E",73,29,8,13,0,0
Char="F",82,29,8,13,0,0
Char="G",91,29,9,13,0,0
Char="H",101,29,9,13,0,0
Char="I",111,29,4,13,0,0
Char="J",116,29,6,13,-2,0
Char="K",1,43,10,13,0,-1
Char="L",12,43,8,13,0,-1
Char="M",21,43,11,13,0,0
Char="N",33,43,9,13,0,0
Char="O",43,43,10,13,0,0
Char="P",54,43,9,13,0,-1
Char="Q",64,43,10,13,0,0
Char="R",75,43,9,13,0,-1
Char="S",85,43,8,13,0,0
Char="T",94,43,10,13,-1,-1
Char="U",105,43,9,13,0,0
Char="V",115,43,10,13,-1,-1
Char="W",1,57,13,13,0,0
Char="X",15,57,10,13,-1,-1
Char="Y",26,57,10,13,-1,-1
Char="Z",37,57,9,13,0,-1
Char="[",47,57,6,13,0,-1
Char="\",54,57,6,13,-1,-1
Char="]",61,57,6,13,-1,0
Char="^",68,57,9,13,0,0
Char="_",78,57,8,13,-1,-1
Char="`",87,57,5,13,0,1
Char="a",93,57,8,13,0,0
Char="b",102,57,8,13,0,0
Char="c",111,57,7,13,0,0
Char="d",1,71,8,13,0,0
Char="e",10,71,8,13,0,0
Char="f",19,71,7,13,-1,-1
Char="g",27,71,8,13,0,0
Char="h",36,71,8,13,0,0
Char="i",45,71,4,13,0,0
Char="j",50,71,5,13,-1,0
Char="k",56,71,9,13,0,-2
Char="l",66,71,4,13,0,0
Char="m",71,71,12,13,0,-1
Char="n",84,71,8,13,0,0
Char="o",93,71,8,13,0,0
Char="p",102,71,8,13,0,0
Char="q",111,71,8,13,0,0
Char="r",120,71,6,13,0,-1
Char="s",1,85,7,13,0,0
Char="t",9,85,7,13,-1,-1
Char="u",17,85,8,13,0,0
Char="v",26,85,9,13,-1,-1
Char="w",36,85,11,13,0,0
Char="x",48,85,9,13,-1,-1
Char="y",58,85,9,13,-1,-1
Char="z",68,85,7,13,0,0
Char="{",76,85,8,13,0,0
Char="|",85,85,3,13,0,1
Char="}",89,85,8,13,0,0
Char="~",98,85,9,13,0,0
--- /project/pal/cvsroot/pal/default-font.png 2007/06/28 20:14:05 NONE
+++ /project/pal/cvsroot/pal/default-font.png 2007/06/28 20:14:05 1.1
PNG
IHDR Ã>aË 0IDATxí]1Ì+GþôRhò
B "¼W
P)A^
DÈ)Ò¥4)-QP
Q8]$G(ÒX!þ¥Hà'dä_~S
Åí¼gv÷îìßÿûw?ießÞÜììîÜÞÞÌÎÞ"BE¹ø¹¨8/ªìc`£ò6!ÿV"¦ ίi& ¦ vòc|fáú]øÏXG®Ø¢ß+Cç |Àg*ÿ³?ÊäsNÌÐÔ=Ç&á÷] ßÄáÝ c +ì+ÕQ¼ÒCÿßFdxÀs îßOUþ§ê<cV1gáØÃu)É þÑåc+ÀW <ÿ¿
à_Í» ^ ðv8îÒQ+ A£.Ãï,BcáB>wÕyÆ} ßÿÏoøC§+ÈK»b4&¤elÂïÆÏaÊØ&äªrg¢ÌT],Ycç?³LðÎiÇ!iÑ>)vrR;j:jiðÙX$xooDùÜ9DD«Fs±k,ä´eWú%Å°³tI1Lú1]ó[Aëñ¿ ¶wáú1*ä3£}XrÈ´×ZõÛl!mC¿¥Fñ¦ ]
5w0wÒïÎXÃùÃîè¬/Má8g$ãI+ÊDñ<
tikÖj¬tÌIà þæué9 ?õ¦ØõGhß 4ÞðGqü!7qø/ñ-4Àï| àâ³t ø]ø} ò¨ó7?ðÏ>Þ!:ëk,!ÿ5í:°@3Û¿'ò6 þ
à9ðEõn¶ >îs}Uóc
à¯èßùpn¨83ª/ pT(U
VÚW4ËJÈó²É´BóÊ&1E3»fMÈó iSåyr] ñ,vá£érä¡uvípÓ]ÉÂ(À¹)µ6õæ£<+")CgÈXQkбÊÌ
¹¦R¦×r³y
QÜë?uóÚ±OQã?b|ädeÃzÖ¹F´1+7U¡ï#yG :M¯/@Ëå±Ú±k]d§só̺d+%¸%L`-µÄ=Ú»j4ÆÊà%ËñÊÓ
i)ÿö}[:T*>/G -wª.V®©étOc8ðPò ÌEuCÊNÊ)ÓãÅân1¹á]5¦}EË;ç&J)@¯di®l´¾ ~fçz§,~1tåeÕÍâ3êXï<Ìoèó:çËû1üÀ«ØÕ~Òc^¹ðÛö[Í
À¯ ¼f üGÑh19ù/®t8i ]÷÷±Ãÿ1G×Dåy`~Rù^]¼ü÷Cb¯xYÑô3©+5,÷gåÐðó¨ .)=´yÚ¬á-üXP;o!¹w?¨Þù1@á¿5`ìÈ~HÕeÈhÑ)U_ÀÍÁ1¼Qàæà,^Áª
£ú
GUÂQ pôQ é)ÛÂÀ¢õ±çlîÐ2fÞãkyìÖ°½¶S´1~kØTs¼
94üeÛì"rõÉË9(ÚwB¶.u15zïËÀOZù: ±<=:]¦çã¥Òjz¾ßZk^îÕµ+t~q[ruÍËGX¦Æ2°ADÛ§¢rÒËF¦ÅÝÌ+j¡X.g¢´9ÚãòòõU OÁrxåæõR Nlwæ¶ìØܱï|ªÄ×°³D_'ãìä¯Rº£ÐÅò4úÒäÊ5_²,ËÀ¶æ |
Àö×Éó³°íϼÔÛZò;·Acg6ïÐØÙSeOÑh9s|]n^¯ì>2¤ú"*ÎÑtÂoÐ8.Ñpë`CÖó®G píÄånÈó6f`°Ãéyÿ(üÆYàåkW¯ËóårÎ!àe CÛé?FëÒÍ.¯Ð4ú%öñøÿaL¯ßK´Êu©ÎyàÖ^¹ß£Q´ Õóz=# ïëOæûNêºñ,êúlQzèMäs×z1
Ù^9]ï·XD·&hú<ßy¢ÌØÒá|*¬Ì¤<§ò,|ûñjc ?CÀYqz°wñ1/yDÏx'â~àU´G >:Qyûm}Uo`ᨾÂQ pT(Rô»ýM{æÒ^&ßû¶v®·b½rrc-ÏÜ
¶q©/Ï
cò¶.G¾§1ÇuÍ+óÎȶxk+¶Ü÷] ~G«|~gäéwh¢}û¤¯çzY¬><=G¨]õÌuOÅ%Zuícà๪m0ád3Ùù^øTJXI³_Òþ²j~Eû<j:Çy]<xÇæéµÃkÃS)µ¼ñÀ»ëݱ±Ø¹®
Àw×X{P< Ô+;ÖúòôÂÃ@ñ©`NO®
zDè$Oâ1})a5ÍV¤Ê°v©tVÂ
Âsgðã´ }ol¿BO>
À>§ö`ö§Ål¦þC´?UÞ{×¢ú°R_ülMmDé)ó©Ïñv¿.ßXȽv*@Êìº!@/1Oé¨ÊåÉrjSMseåNü(á;Û[:³¼.ÎkêÀÃ1`áÐqÉ¡U¯?ìª O«ÞOÞYEk:ôBW-O©ôhsFòêp°@óЬ¸µ¨@¯ YØòÒ+jÔ pÔ pT(·ARaXǾ®+°A98µl{
À+ôÌÃñE8¡`ïô²÷ÉóZªTÌ^ª³¬¥ê±ØÅ¥íËP^êc1Üðß<NñN¸Pï:ôß+õÞAóÁÛ±£B%6|t±ö-ïʱëù[þæØbu;JÒ¢¶%¤X>wA¶;R&6H;uj+UoëÖT#å|KǺ[¥%oCÇW ki»ç¤"¯-
Àòºx¢¶á§°)Sû)·ï
n]ê[w2ú7¶#W¬¬XhçF;Aòv(cÈ)µY}&½ö#ÖÜÉ!ÌÒN® w*Q|H.áXçϾkRßÓK]ªdµ:/fðð¼£vûëyZ&µy]Qî;8õEÍA
8 ÉÇs;7¦SÒ¯¿wÑ|£h¾E{W£$~àû!]
<k\.6¡ÜØ£9xMÄñYNÿ!½sÊíÓ#uc(/ÐfêgøÖÈãÄ
yÆVÊäjn]ï%ùÒAwÐ$]1> ¼
¾ ]ëÝ~æß2F.çº[Û pªàÐR³J>¨
0OMG{¸
Î )ÀOÔñO´¥Ð%ô,'?W{ßnN5<Dóÿ6nÁ0y{ÈÝfíØ×ãú¾ü]ît4«¥ YãÐÂFê¿æ¥ËÇçvÈPNÉ?õAG3l1ùýýÝË4-Û;§=ýsÂ*ıïÝÉÝ>ÙKgYûb)¹
k*NpNûÞÀ2bü&ÔZ:c;y²cO¶üV{{ûÇhrúMÊãZõðg
¹ï½±¡´K9]hbùRîÇhìêïeÈ#˱ä¿N'è; ¼£ÒÓ+4ÛÑ~çÜÜHCÐ# /ÀÞ+qÆËwÆëײ/öäÑ÷Ð<¿ßÇ×ú&«½µ§£Éé7ây ?y*ò<Y4^~n9:/¦÷qè>²ô_>¿ì N
Ëا=o7pàhöô}6A:2¿s¢Ïki§kÎåZwà×Gäû9ÄïÖãÜ#@ÅQA
£*@á¨
0sä{=¥Y8µôÚÐUs&ð#4^Ï_À·H2ẮÀâ¼e ¤LÞ½>ät#À^%OçY4;FoC¾¦ã<Rçì¡©ktD®d¢õjZuy+Ùò¦?Ó÷³ÜÂ*óåXør¬_ìMäöê("ÈV.¹É¤åÜPBÆ_Õ4ëÈV7Ç«³*ÛK1ÆÓjkOZ¸²²cûbBës-»O¹¹£uY2¨í¨X4ñHÔ!Ê
Åu6·P¥tPê\ï¢ ,£µu,ìB¹]N®+,mÓ]C±õ9Vú¯l82z£ìXAH&áëDö,÷H2"v½{þs]bÛöM
çÆï"¼vGhå¢"»åÂngNüàÀ»³¥¬^Ð(©µG,ß;wíÉƪü
¢çrbÝdgÅ;ɺÞã;·à»ûu[Äê¡#|S
à:[*Õ°F³0Äý^&fhW@«p¬U9ì¬:çZ'(12Ð..x#Þû5JTÙçBõO
¢U(U
GUÂQ pT(U
GUÂQ pT(U
GUÂQ pT(U
GUÂQ pT(U
GUÂQ pT(U
GUÂQ pT(U
GUÂQ pT(ÿ$%#:
IEND®B`--- /project/pal/cvsroot/pal/ffi.lisp 2007/06/28 20:14:05 NONE
+++ /project/pal/cvsroot/pal/ffi.lisp 2007/06/28 20:14:05 1.1
(declaim (optimize (speed 3)
(safety 3)))
(in-package :pal-ffi)
(cffi:define-foreign-library sdl
(:windows "SDL")
(:linux "libSDL-1.2.so.0"))
(cffi:define-foreign-library sdl-mixer
(:windows "SDL_mixer")
(:linux "libSDL_mixer-1.2.so.0"))
(cffi:define-foreign-library sdl-image
(:windows "SDL_image")
(:linux "libSDL_image-1.2.so.0"))
(cffi:define-foreign-library opengl
(:windows "opengl32.dll")
(:linux "libGL.so"))
#+win32 (cffi:define-foreign-library shell32
(:windows "shell32.dll"))
(defun load-foreign-libraries ()
(cffi:use-foreign-library sdl)
(cffi:use-foreign-library sdl-mixer)
(cffi:use-foreign-library sdl-image)
(cffi:use-foreign-library opengl)
#+win32 (cffi:use-foreign-library shell32))
(load-foreign-libraries)
(deftype u8 () '(unsigned-byte 8))
(deftype u11 () '(unsigned-byte 11))
(deftype u16 () '(unsigned-byte 16))
(defconstant +init-audio+ #x00000010)
(defconstant +init-video+ #x00000020)
(defconstant +fullscreen+ #x80000000)
(defconstant +opengl+ #x00000002)
(defconstant +audio-s8+ #x8008)
(defconstant +audio-s16lsb+ #x8010)
(defconstant +audio-s16msb+ #x9010)
(defconstant +audio-s16+ +audio-s16lsb+)
(defconstant +channels+ 8)
(defconstant +default-frequency+ 22050)
(defconstant +default-channels+ 2)
(defconstant +max-value+ 128)
(defconstant +channel-post+ -2)
(defconstant +no-fading+ 0)
(defconstant +fading-out+ 1)
(defconstant +fading-in+ 2)
(defconstant +mus-none+ 0)
(defconstant +mus-cmd+ 1)
(defconstant +mus-wav+ 2)
(defconstant +mus-mod+ 3)
(defconstant +mus-mid+ 4)
(defconstant +mus-ogg+ 5)
(defconstant +mus-mp3+ 6)
(defconstant +button-left+ 1)
(defconstant +button-middle+ 2)
(defconstant +button-right+ 3)
(defconstant +button-wheelup+ 4)
(defconstant +button-wheeldown+ 5)
(cffi:defcstruct rectangle
(x :short)
(y :short)
(w :uint16)
(h :uint16))
(cffi:defcstruct color
(r :uint8)
(g :uint8)
(b :uint8)
(unused :uint8))
(cffi:defcstruct surface
(flags :uint)
(pixelformat :pointer)
(w :int)
(h :int)
(pitch :uint16)
(pixels :pointer)
(offset :int)
(hwdata :pointer)
(clip-rect rectangle)
(unused1 :uint)
(locked :uint)
(map :pointer)
(format-version :uint)
(refcount :int))
(cffi:defcstruct pixelformat
(palette :pointer)
(BitsPerPixel :uint8)
(BytesPerPixel :uint8)
(Rloss :uint8)
(Gloss :uint8)
(Bloss :uint8)
(Aloss :uint8)
(Rshift :uint8)
(Gshift :uint8)
(Bshift :uint8)
(Ashift :uint8)
(Rmask :uint)
(Gmask :uint)
(Bmask :uint)
(Amask :uint)
(colorkey :uint)
(alpha :uint8))
(cffi:defcstruct keysym
(scancode :uint8)
(sym :int)
(mod :int)
(unicode :uint16))
(cffi:defcstruct keyboard-event
(type :uint8)
(state :uint8)
(keysym keysym))
(cffi:defcstruct mouse-button-event
(type :uint8)
(which :uint8)
(button :uint8)
(state :uint8)
(x :uint16) (y :uint16))
(cffi:defcstruct mouse-motion-event
(type :uint8)
(which :uint8)
(state :uint8)
(x :uint16) (y :uint16)
(xrel :int16) (yrel :int16))
(cffi:defcstruct quit-event
(type :uint8))
(cffi:defcstruct active-event
(type :uint8)
(gain :uint8)
(state :uint8))
(cffi:defcstruct resize-event
(type :uint8)
(w :int) (h :int))
(defconstant +no-event+ 0)
(defconstant +active-event+ 1)
(defconstant +key-down-event+ 2)
(defconstant +key-up-event+ 3)
(defconstant +mouse-motion-event+ 4)
(defconstant +mouse-button-down-event+ 5)
(defconstant +mouse-button-up-event+ 6)
(defconstant +quit-event+ 12)
(defconstant +resize-event+ 16)
(defconstant +expose-event+ 17)
(cffi:defcenum sdl-key
(:key-unknown 0)
(:key-first 0)
(:key-backspace 8)
(:key-tab 9)
(:key-clear 12)
(:key-return 13)
(:key-pause 19)
(:key-escape 27)
(:key-space 32)
(:key-exclaim 33)
(:key-quotedbl 34)
(:key-hash 35)
(:key-dollar 36)
(:key-ampersand 38)
(:key-quote 39)
(:key-leftparen 40)
(:key-rightparen 41)
(:key-asterisk 42)
(:key-plus 43)
(:key-comma 44)
(:key-minus 45)
(:key-period 46)
(:key-slash 47)
(:key-0 48)
(:key-1 49)
(:key-2 50)
(:key-3 51)
(:key-4 52)
(:key-5 53)
(:key-6 54)
(:key-7 55)
(:key-8 56)
(:key-9 57)
(:key-colon 58)
(:key-semicolon 59)
[646 lines skipped]
--- /project/pal/cvsroot/pal/license.txt 2007/06/28 20:14:05 NONE
+++ /project/pal/cvsroot/pal/license.txt 2007/06/28 20:14:05 1.1
[667 lines skipped]
--- /project/pal/cvsroot/pal/package.lisp 2007/06/28 20:14:05 NONE
+++ /project/pal/cvsroot/pal/package.lisp 2007/06/28 20:14:05 1.1
[1106 lines skipped]
--- /project/pal/cvsroot/pal/pal-macros.lisp 2007/06/28 20:14:05 NONE
+++ /project/pal/cvsroot/pal/pal-macros.lisp 2007/06/28 20:14:05 1.1
[1278 lines skipped]
--- /project/pal/cvsroot/pal/pal.asd 2007/06/28 20:14:05 NONE
+++ /project/pal/cvsroot/pal/pal.asd 2007/06/28 20:14:05 1.1
[1295 lines skipped]
--- /project/pal/cvsroot/pal/pal.lisp 2007/06/28 20:14:05 NONE
+++ /project/pal/cvsroot/pal/pal.lisp 2007/06/28 20:14:05 1.1
[2001 lines skipped]
--- /project/pal/cvsroot/pal/todo.txt 2007/06/28 20:14:05 NONE
+++ /project/pal/cvsroot/pal/todo.txt 2007/06/28 20:14:05 1.1
[2023 lines skipped]
--- /project/pal/cvsroot/pal/vector.lisp 2007/06/28 20:14:05 NONE
+++ /project/pal/cvsroot/pal/vector.lisp 2007/06/28 20:14:05 1.1
[2264 lines skipped]
More information about the Pal-cvs
mailing list