You can subscribe to this list here.
2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(134) |
Sep
(52) |
Oct
(13) |
Nov
(342) |
Dec
(163) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2003 |
Jan
(44) |
Feb
(62) |
Mar
(158) |
Apr
(38) |
May
(70) |
Jun
(58) |
Jul
(104) |
Aug
(207) |
Sep
(83) |
Oct
(122) |
Nov
(23) |
Dec
(49) |
2004 |
Jan
(119) |
Feb
(132) |
Mar
(192) |
Apr
(140) |
May
(77) |
Jun
(74) |
Jul
(201) |
Aug
(63) |
Sep
(102) |
Oct
(70) |
Nov
(173) |
Dec
(78) |
2005 |
Jan
(174) |
Feb
(197) |
Mar
(105) |
Apr
(59) |
May
(77) |
Jun
(43) |
Jul
(21) |
Aug
(18) |
Sep
(47) |
Oct
(37) |
Nov
(74) |
Dec
(50) |
2006 |
Jan
(44) |
Feb
(19) |
Mar
(32) |
Apr
(24) |
May
(31) |
Jun
(55) |
Jul
(138) |
Aug
(28) |
Sep
(12) |
Oct
(41) |
Nov
(58) |
Dec
(24) |
2007 |
Jan
(28) |
Feb
(14) |
Mar
(10) |
Apr
(68) |
May
(30) |
Jun
(26) |
Jul
(18) |
Aug
(63) |
Sep
(19) |
Oct
(29) |
Nov
(20) |
Dec
(10) |
2008 |
Jan
(38) |
Feb
(7) |
Mar
(37) |
Apr
(120) |
May
(41) |
Jun
(36) |
Jul
(39) |
Aug
(24) |
Sep
(28) |
Oct
(30) |
Nov
(36) |
Dec
(75) |
2009 |
Jan
(46) |
Feb
(22) |
Mar
(50) |
Apr
(70) |
May
(134) |
Jun
(105) |
Jul
(75) |
Aug
(34) |
Sep
(38) |
Oct
(34) |
Nov
(19) |
Dec
(20) |
2010 |
Jan
(11) |
Feb
(20) |
Mar
(65) |
Apr
(83) |
May
(104) |
Jun
(73) |
Jul
(78) |
Aug
(57) |
Sep
(43) |
Oct
(35) |
Nov
(9) |
Dec
(4) |
2011 |
Jan
(21) |
Feb
(11) |
Mar
(18) |
Apr
(10) |
May
(18) |
Jun
(15) |
Jul
(48) |
Aug
(25) |
Sep
(17) |
Oct
(45) |
Nov
(15) |
Dec
(12) |
2012 |
Jan
(21) |
Feb
(9) |
Mar
(12) |
Apr
(9) |
May
(9) |
Jun
(5) |
Jul
(1) |
Aug
(10) |
Sep
(12) |
Oct
(1) |
Nov
(28) |
Dec
(5) |
2013 |
Jan
(4) |
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2014 |
Jan
|
Feb
(1) |
Mar
(1) |
Apr
|
May
(2) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
|
Dec
|
2015 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
(2) |
Nov
|
Dec
|
2016 |
Jan
(2) |
Feb
(1) |
Mar
(1) |
Apr
(1) |
May
(2) |
Jun
|
Jul
(1) |
Aug
(2) |
Sep
|
Oct
|
Nov
(1) |
Dec
|
2017 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Gregory P. <gre...@us...> - 2002-12-20 23:00:41
|
Update of /cvsroot/java-game-lib/LWJGL/src/native/macosx In directory sc8-pr-cvs1:/tmp/cvs-serv7138/src/native/macosx Modified Files: org_lwjgl_input_GamePad.cpp org_lwjgl_Display.cpp Log Message: no message Index: org_lwjgl_input_GamePad.cpp CVS Browser: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/java-game-lib/LWJGL/src/native/macosx/org_lwjgl_input_GamePad.cpp =================================================================== RCS file: /cvsroot/java-game-lib/LWJGL/src/native/macosx/org_lwjgl_input_GamePad.cpp,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- org_lwjgl_input_GamePad.cpp 18 Dec 2002 03:20:35 -0000 1.1 +++ org_lwjgl_input_GamePad.cpp 20 Dec 2002 23:00:37 -0000 1.2 @@ -1,63 +1,34 @@ /* * Copyright (c) 2002 Light Weight Java Game Library Project - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * * Neither the name of 'Light Weight Java Game Library' nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ @@ -65,162 +36,107 @@ /** * $Id$ * - * Win32 digital (Atari) joystick handling. These days it's a gamepad. + * OSX joystick handling. These days it's a gamepad. * * @author gregorypierce <me...@gr...> * @version $Revision$ */ - - - #include "org_lwjgl_input_GamePad.h" /* - * Class: org_lwjgl_input_GamePad - * Method: initIDs - * Signature: ()V - */ JNIEXPORT void JNICALL Java_org_lwjgl_input_GamePad_initIDs - - (JNIEnv * env, jclass clazz) {} + (JNIEnv * env, jclass clazz) +{ +} /* - * Class: org_lwjgl_input_GamePad - * Method: nCreate - * Signature: ()Z - */ JNIEXPORT jboolean JNICALL Java_org_lwjgl_input_GamePad_nCreate - (JNIEnv * env, jclass clazz) - { - printf("GamePad not implemented yet!\n"); return JNI_FALSE; - } /* - * Class: org_lwjgl_input_GamePad - * Method: nDestroy - * Signature: ()V - */ JNIEXPORT void JNICALL Java_org_lwjgl_input_GamePad_nDestroy - (JNIEnv * env, jclass clazz) - { - } /* - * Class: org_lwjgl_input_GamePad - * Method: nPoll - * Signature: (I)V - */ JNIEXPORT void JNICALL Java_org_lwjgl_input_GamePad_nPoll - (JNIEnv * env, jclass clazz, jint buf) - { - } /* - * Class: org_lwjgl_input_GamePad - * Method: nRead - * Signature: (I)I - */ - JNIEXPORT jint JNICALL Java_org_lwjgl_input_GamePad_nRead - (JNIEnv * env, jclass clazz, jint buf) - { - return 0; - } /* - * Class: org_lwjgl_input_GamePad - * Method: nEnableBuffer - * Signature: ()I - */ - JNIEXPORT jint JNICALL Java_org_lwjgl_input_GamePad_nEnableBuffer - (JNIEnv * env, jclass clazz) - { - return 0; - } /* - * Class: org_lwjgl_input_GamePad - * Method: nGetNumButtons - * Signature: ()I - */ - JNIEXPORT jint JNICALL Java_org_lwjgl_input_GamePad_nGetNumButtons - (JNIEnv * env, jclass clazz) - { - return 0; - } Index: org_lwjgl_Display.cpp CVS Browser: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/java-game-lib/LWJGL/src/native/macosx/org_lwjgl_Display.cpp =================================================================== RCS file: /cvsroot/java-game-lib/LWJGL/src/native/macosx/org_lwjgl_Display.cpp,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- org_lwjgl_Display.cpp 8 Sep 2002 06:19:21 -0000 1.3 +++ org_lwjgl_Display.cpp 20 Dec 2002 23:00:37 -0000 1.4 @@ -70,7 +70,7 @@ Rect rect; SetRect( &rect, 0, 0, width, height ); - WindowPtr windowPtr = NewCWindow( NULL, &rect, "Lightweight Java Gaming Library", true, kWindowShadowDialogProc, (WindowPtr) -1L, true, 0L ); + WindowPtr windowPtr = NewCWindow( NULL, &rect, "LWJGL", true, kWindowShadowDialogProc, (WindowPtr) -1L, true, 0L ); SetPortWindowPort( windowPtr ); |
From: Gregory P. <gre...@us...> - 2002-12-20 23:00:06
|
Update of /cvsroot/java-game-lib/LWJGL/src/java/org/lwjgl/vector In directory sc8-pr-cvs1:/tmp/cvs-serv6891/src/java/org/lwjgl/vector Modified Files: Vector4f.java Vector3f.java Vector2f.java Log Message: no message Index: Vector4f.java CVS Browser: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/java-game-lib/LWJGL/src/java/org/lwjgl/vector/Vector4f.java =================================================================== RCS file: /cvsroot/java-game-lib/LWJGL/src/java/org/lwjgl/vector/Vector4f.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- Vector4f.java 6 Oct 2002 21:34:56 -0000 1.6 +++ Vector4f.java 20 Dec 2002 23:00:00 -0000 1.7 @@ -191,7 +191,16 @@ return dest; } - + + /** + * Get the magnitude of of the vector + * @return the magnitude of the vector + */ + public float magnitude() + { + return Math.sqrt( (x * x) + (y * y) + (z * z) + (w * w) ); + } + /** * The dot product of two vectors is calculated as * v1.x * v2.x + v1.y * v2.y + v1.z * v2.z + v1.w * v2.w Index: Vector3f.java CVS Browser: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/java-game-lib/LWJGL/src/java/org/lwjgl/vector/Vector3f.java =================================================================== RCS file: /cvsroot/java-game-lib/LWJGL/src/java/org/lwjgl/vector/Vector3f.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- Vector3f.java 6 Oct 2002 21:34:56 -0000 1.7 +++ Vector3f.java 20 Dec 2002 23:00:00 -0000 1.8 @@ -213,7 +213,16 @@ return dest; } - + + /** + * Get the magnitude of of the vector + * @return the magnitude of the vector + */ + public float magnitude() + { + return Math.sqrt( (x * x) + (y * y) + (z * z) ); + } + /** * The dot product of two vectors is calculated as * v1.x * v2.x + v1.y * v2.y + v1.z * v2.z Index: Vector2f.java CVS Browser: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/java-game-lib/LWJGL/src/java/org/lwjgl/vector/Vector2f.java =================================================================== RCS file: /cvsroot/java-game-lib/LWJGL/src/java/org/lwjgl/vector/Vector2f.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- Vector2f.java 28 Aug 2002 00:05:45 -0000 1.6 +++ Vector2f.java 20 Dec 2002 23:00:00 -0000 1.7 @@ -148,7 +148,16 @@ return dest; } - + + /** + * Get the magnitude of of the vector + * @return the magnitude of the vector + */ + public float magnitude() + { + return Math.sqrt( (x * x) + (y * y) ); + } + /** * The dot product of two vectors is calculated as * v1.x * v2.x + v1.y * v2.y + v1.z * v2.z |
Update of /cvsroot/java-game-lib/LWJGL/website/images In directory sc8-pr-cvs1:/tmp/cvs-serv9069/images Added Files: bullet.png cvs.png cvs_selected.png discussion.png discussion_selected.png documents.png documents_selected.png download.png download_selected.png input.png links.png links_selected.png logo.png lwjgl.png miscellaneous.png openal.png opengl.png sourceforge.png sourceforge_selected.png vector.png Log Message: website files --- NEW FILE: bullet.png --- CVS Browser: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/java-game-lib/LWJGL/website/images/bullet.png PNG --- NEW FILE: cvs.png --- CVS Browser: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/java-game-lib/LWJGL/website/images/cvs.png PNG 'Ç \Ä%(a5ÑÔ}ì´0¹¼ðñöÞkcwO)!Â1ªzï]k¡ Í9â¿9gPöÞÌ\JihfÁ-"ç"zþAþ Ë//]ºÈzÂÐЫ¿¿ÿäÉ@ÀÀ@ Èaòë×/VVVF þKøRhù%'Q~g 90EÐÝçwWÕ{oDÀyïí½Í,3±ã`±VUÍ4þÈÓѨ?&[b7a&aîSQIU·a÷%5µ$Üåþ>wÏLÂsª*{ïA@°B ®B ¥`ßÎ%{$£uÙ>ÏîÄ~RûÿOÝ@,@s5 ¥háUB¤~å¦BYÉ Ö£ÔÄ!}~0q?'äà¡Nn ) Ð@!Àd 8P@ ^@ª¡tú"¬ / á/WUpeðÌ\± k8 FA#ýû$ --- NEW FILE: cvs_selected.png --- CVS Browser: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/java-game-lib/LWJGL/website/images/cvs_selected.png PNG f&éòïß?&&¦KçÏeBCãRSz*+/=Y½kÄÅ@e@5ÏêeA¥ kÀ 4 "vÐÉ@Çò00HðòJÈÉõ¿{÷oÎÞ½ÊÊî=[îëô#Ø5 kÖ 1J¦¦¾ >}Ò01¼gOC`àÉ ÞܽË'$ôÿçOMS ´ïíÛ·AÍÍÍ ÔLïß¿Iv..I%%6nnv 8ÐÀ8Ø dsey¹°ðǧOþcüôéÕg·nÑÖÖ´µÉ÷?$Ä$%Y)¨YßÕUAOïɧOçÏºÚØØøìºu®]{|íÚk #^¿~õà;'§gZÆãgÏÖ@R$ݾ7×ÓËï?4ªTMMͤô7PÃ7o}}ù /ïÚÅÅÏ/¯§wóÉ7n í:8 (z,¤ÿæ<Ú%äI ì-BFücPD]U©»1ivXÒòà¯5dG0>ËrúÙÚÖkü]s¸C Ô ^Â+^ ¯`áÊ õ;LµC £ h --- NEW FILE: discussion.png --- CVS Browser: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/java-game-lib/LWJGL/website/images/discussion.png PNG Øq(çyÐu]ß÷ز®ë¤ÍDã8"ßÞ[ ¢¬µÔ¥²YcÄJ)d`óûXO^Fã8½éªLÓÊ Ñ bð·ÖÅ«º®«gXa[×.¿`)0øðÞß÷M}ßAÒë8ö¬º·yÁ B$("1ÂÓ{?ÏsY$L´ö<ÏjT-~DQ3ô¹ïª$Oò(V¿.¯ã8RèñÖÚ¶m|¢} ÁøÆüù¶Öb'÷Þs[Ì6"¢ÙúÚµÖZN=l¿¦""(ó»êÐãÏ>¸9Æøco!bÚ{g9ÿà[Cî0Pêsuª¾òóÁ¬s-7M)ilÆÞæ)ä^dá~Ì{ ³m OåI èá%Uyg,±Â§v5ÿfð0JeÌ625W¹¯0¸¡Wþf¥ÝªÆ3bå ýÊp ÁtjK´EY[¦ «HJÓt ô¤¨ã\æÎ@óö@£ À¥ e0B8;k´Cµ ò QÓõ1dAFÕi¼(Ö½"\®ú®icdPDFä_ À@CÑÍÜÿÌóá¸qV ÑXÔǤYsa]BÈv¢ÀÙ7ôRu²èÞùá ·x#È!¼Ý<åI:ÎH _ä0 ÆÑõg4 --- NEW FILE: discussion_selected.png --- CVS Browser: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/java-game-lib/LWJGL/website/images/discussion_selected.png PNG ù¹º230W··CìcddlìÀ8ùýû7ÐMLLLÌÌÌL` ¨,ÀÕ¬Áhá®]ÀÌÉg PÁ¶HÓÀ èYFpÉ ´¨ &ö ÖØùýù) ?iJßrp¯ýþÜ9Ô²6úS%%çJán,xfÎE»]$öÛíb<i£q[R¡ãá ¢Hi *7ÆÄÏç$9Ëå®Eø³,#Ù8×ËeÈÆµ,f§$9õ'ºk6©"xä!òêÁ@6K¥Z$ÿ}ñ+ ÍÈ+` ¼®×MÓaȳ,cä»È1pòO)p4HßÖåBi°>xç\[£J]×19z~ ³raê¶ôûæØÛô ´'[ý\?*mâ;Í2I#/ým6ÔZ³ÊmQ} 奴C¼ÏmÌp"ÁZsSa;ô$3çQ[½÷ï¶íÇÁ;h897ç¤v4,´Öêp1Y U¦ ´EÝØ8 B¼ô$ÍA .ì I;Áµí 9 ir¤Än EBJ\-HÌ8ç®ÛÌ?{¿áeiàätZ;ÿj®®oizl[DÉ /3Mî8ÿ6st®H).ô<"}g~l9GPÉÚ®+|ßb³XhÖø @cä0Ã@Ô $$ ôÔ?päÀ³ú_ÆjloÖkgï²µxë[ä4íºÜqlÏy ÆÜ@[\QxïMF)ÊEoÆuUE¡« à¶Æø¦Ñ9¥eYÌu}ÎOò>×¾ÿ>\.MÑìÜbir}Ë.BHÔr&¤ ¿@U6úq,CpâÖr´&§<êºj[í\72o¡´lB¾°\Ƭ CQ4¥Xi¬¡á=3TQB úÒô?¸ø_\ÝÄ"8 2¤EiAº$êdé`©«Òö8?¸|ïÝsν¯jÚC§ó9yS¢ôÝóJQñü©ÍaÎhbFǹ¶}#Ë$1×ÍæóÑá ·ÛèÍS¯wZ*y~ùC¢ªe ñ6\éÞ² ªÚÿáâ4?ÅUUBBî> tÆ+°3$ÀÎ cl9çÆpö6ßZ«Öúêê¾X)%@æT"BùÞOÃGIã3VÂPJ-^zZÎ/Æú/¥<û¹\Ä|¢7,é0 æ$B<lÍEØÝµ¾|>&Áu¹&ÜÂäoSD ú>±Ñº+Z©Õ°%ø³Q:Z=Á^XÄí{:!!!æd r¤!+/|v --- NEW FILE: documents.png --- CVS Browser: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/java-game-lib/LWJGL/website/images/documents.png PNG vIDATxÚbüÿÿ?Ã( 1O·Ò9´ggÆ;^eÇqç®ë¢`k]WI®û¾£(òÞóÎ˲¬ª²Âyq[kj¥Ô0pdáû[}ß·m$ }ßIJu]8ÅÆq;çåoB0Ó4Aª@b¤ÖZl°pæy ð÷¦i°A_Ò4Ͳìº.I¤ôÍçy¸é¶m¢B¢tã #C¶ÑºÆ buwÀP"H> ¿÷èÊj¤- tÊK*A}³C6`ìÎ:ìP K®NôQ¥æhÎÐ;!DOÜ×ÀÜD¬ªxt£I¯#ÌR©3ì*!Bî^ÖÌ7 f¬h¬µÌ9ç`¡ ö²Lå@@ãYÈÇÏe}ù{ÌÌÞú.³¯»ÙõàI4İ+ ¤<,Æd2:8E)zãûª¢Éì½ï½çIAô ÀdÛ õ}?Ï3XO6¦ãu4ýG7 ;qúÛS$ÇÚÃ0xïsü/2Ë ÐZ·mqÇqçYt¦éG<âï³høë260¡ps+YØ Ú[º.à¸È8`íq¿ r©DyÑ$ïùRâô}í»þù¸1¼÷¨çµícqÎkÐ.µÖÖnQtÓzÖZD oH%¤Èp: 9øÎ9{ok¨×Zª cܼÍjRøK Þ{G@FBd£cÄt °PyÀbµÖ7<µP*ªtDÀ¿Zk)åÇ:È(îMzÿKvÓøÂO`Õ:8ÈÈ#½ÖþÆÌ÷î'ºBQªW$ªä¡Ãøãkõämϸ´×ÖÁ£rs붺y³¬+wCoP.m£mo,6Ã!~¹á1 sZçóÈ©AZ! W oh'+)Á±Ó+ è (ô/@ --- NEW FILE: documents_selected.png --- CVS Browser: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/java-game-lib/LWJGL/website/images/documents_selected.png PNG `.`»lÔÂ]» @ñÃÄÔTYyáìY {Ý®]@'^:¾©¢È MM2̽nõjß .¢ÿ`jÚÚ ¾zX0Ââ,[sP6ÀÕõ?X\äæÊÊM«W=ÈÇÀ0£¢b½+;ûï¿-¼¼¼ãâ~ÿþÍÊÊ t[#,4XÀÈÐ36.Bò/$ ¡êUÁèE¼¹S ®Pi#ø¢DNÍ(by>A¹:¹tV2¨ |C!½þ¥àäð.·Ð.rCÀÉ9ßw¾lÏ R¢ _¢V¶WUUiÜM§_DGJaôÁÚ÷v8Fue·É«s@^±¥÷˲¼/3wóÅÂmEI\A^J"P* %1Aó¸6æ/ÈÝÇø=Þã÷´)ϱΥòÑZ Ap>e`Àed@ÆÇ"[Z</RJ¹ a_ó~¯ÓëÍF´Ûu]3ƾ½qît¥lF§Á ¼kÒݬ¨b¡ ümÝ]¬¦6:í¢ÝêxG õo8Þæ ûnÒ ºüIH Á!Å÷î¾ûî»÷Ϫ{@Øñ²Ã×½Þm<ÍfEQDQôevJBl*¥lÛv.rù@Ìóëp<tr¿n6óéô&?ͪªbÖ;C`à!|ËÌ5B`©úëö¢ºÀÜs¥zÐóÝìͬï]i<\ÿhó^·u]¯U/1ÐÑ(ËQÉäg·ûvKÓ4ã$I¦!89¡î®Oj7rβÜs±Lα?x*A(ÓFh±*Ýx `Ò#ôþt©Ëº0ñc¾%¼fC/ò{Q Õ[ÊÕä ðÒÛ-û<^Ûð-·LèÒ)EÐ[Ñ6 âø÷É9oÛ6MS!ÆÈFj¸pkÏZ ÿ¬¼P×ì' 0 ÄK º.N.Ý}lßÁqÓ ýP¨C9sÿÝɯr¯> F£ñ8ìR¢s÷iñèÞ4° dE^¶c>ÏJÇ L¬ÚûùR`a« i'IÈ+Ws¤ÀVUÛrn¢L]A<£ð8ÖêúÑ÷M×ËRÃ7ÅëNSä)´RµoïKjÌ͹¬(èÉ¡ñ+̱}Û¿'Ê6eù¦eÔ/}Ë<sö㨠è=:ôì=A@ABx8ñ{ö³3sGª`JÆl¢mÅq°iJû,O wu¥éêGw)VÂÇ{ïkÐ/Ý.ÀDææ-ÖëÚÚ¤æ Àr¹1Q4: "dÈG-MXÕ¤{°1_9bøue÷Þ½ûà_³øC8u¢ãcvî_ÕRZç¾ûâð ÈeñIw'5ÞZV)_Ì{]_óÌø|.Këýq é)¶ëu(UdYDzij mL?M÷P+ ÇCwZ?Aõ=ùãB@ì Û¶±Á;mþ¤ûÖç}cØ ÷*îvãÐçy:ÝÌçýáðºÓù9Á\6{C@éèy¦2D±ÒnËoY¢$U5 bÃâDÇØ§aä1¾Õ4DÈ9!_Mã0B|æÁóÅrm4ãq±\¾¬Õ®T\{Å#Tívß m»}ÁÏÌ誷oßJKKûggß´éÖÙ³¬Àûí0mÅ 08n^¼8³©KR\\FNN\BèS?||wnݺù 9 ,¨RÒ´v¬be4°øB eÒØ?w%ÓÅí<KÙ[²T¯iîíÄÉO©u·¾h!ö_ º¨;Uíþ/ýL¿r¾±Çî°£>wµÞÍ|¥èBë»`í½`Â^R --- NEW FILE: download.png --- CVS Browser: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/java-game-lib/LWJGL/website/images/download.png PNG 7'ùÌÏæç;Éî5Þ¼îÌ9s΢/÷ÞJ)uáÞ+Æ!w1FTÈÂ)%9Ç{O%µV`ü#ɵÖÊ øÌÄXkÁcº$È9÷ñç«ç|ØZ ñ# ½ÿ}C7%|*qÔDgÔøÄ¾iÏgÚU%&0¿2è 3sÚq')<%¿ÍÓöCÓù¡¯#P´g ¢!¨Ù2òýâ^2<íÑÍò=«FÎ- úï "xSÃM2 Á ~[§½"gÙĸW íB2f&3]î,ü¯´èf%qµC¥Yuô¡±$e ¾§÷®*_VwûZÕ¬ÜÖ *îU a_AuNNâÜÕxä!= [O toÅîî½ß{ò:üɦ߾Ó÷½1Æ9·,R* t rÒ¶íç·ÖuÞ÷]×5Ðy¨íû>`)¥£÷þ8hv]Gñe)½675a<$ ƶmb\|åéd/BkM ]»ÒYt´µb²\Îë¬(y »m ²åÞ´OâðpÌ+h¢ò ZÖµ#¼ÉÿÀ£>4oÁÓD$ïÀ{Æ&<@!æp-rHÁ ÁL}ðö.g@@LÄ1Ü%hcÈ] xèÀý --- NEW FILE: download_selected.png --- CVS Browser: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/java-game-lib/LWJGL/website/images/download_selected.png PNG Ônhl\ÛÞµÑ×Õ,ØØÞÞPYyéìYF »j::´ êé,@ÀÀ w9I×ìÚ YH/= !RßÞ¿Ä7;;0>}úÄÊÊ ô/ÐR b ^={öÔ=@@KÜ»·rÖ¬Õ³fyÚØü nâad*{óæ Ð hdayöä ÐWÀàäââàâ´nØÂÉ`g ¢ðéÒÛD]Ý-v[Ë)¬E´°ÐÂJð,o·Õêì¤Î4 iC @HÎÏÍ0ÌsæÌýý á@:>Ý9-"×Q´LÞÖkÀåyþí~!I!°¬a̦ÒåH»m[l,I÷føÇÒ6Ôâ%fäÏÆ¾ï3÷9Ê£d|q&]×ùlvE¯Ë%I¤iZEÓ4{w2è=ùhv%MÿaÐü¬ Q±Ü0N¥séËWâ·fà<Kàòã¾ãÅb¿ÛUUŬ,Ëʲ¬ëV¿ÐTF)Â@]1Û* BîMRèë[õ+jMffÒùª>G¯ÞSCâ,x<üûUpâ\â¯nõæy§UèÊÊ×ÍÁÓ}ö·sx¸"°v_Gk.VWÅ'â8O>1&cÂ?/ofFtInj¤hd&äQû\}Ç*ºKÀ/C>ÅÑeX0<°(ñ"Ê *+»KüPëûIkû YW}.$`y?þ±°V¾Ëf+·QÊ+XHá¤:ÈiýQ[[bJÜòz4#ºÀWà¼c$ñ3=¥CÜP¯Ô8M=¸Zå«éòËA®_ΧUóÅ9_®Aï1ÐS1°Ïºâßm{/ËM¨Ì08ç¨{Iê=[tÊEK¨®ihZ,½Nô,WÍøÌ*ÖA¢HliïZXHHH\etgòýÂ0»ø9NL.jôÙkÓ»Þ½{ï^¿è¬â¯âDik·DÁzD) >l_M³2Z Ã!\ FÂ<G`ñLr7&½ ¤´xª5âRëôå¸n ÔsHÍ:wðTìÛÓ >=¯$侮dzY»ë5ßíÚót¶ÛÑ<L§¾ï#M{_xQÔmû*ÏÞ|þ¶\¾.2ù;îÊÀBd_Û"I2ËïVÆ`2! ÐíeýLë¬EÎÎí&J5~Ä1D¡ëMZÒ0¦É~O¦ïãÇyÁA¡] {q@oCZbÀ|4¤À · YóþÙ³+{ö G¡,HLHÀ9úÒ.Uª2bøØ²ýýyPl°À§Ìn*{A{ï¸ea0}[ç¥ÖVºCJù¤ÖÞ}`iëÓtÞ{!¸ïèCÖÚã@ Ì7ì©»ãfÎÆoòJÕÏ'Ã˰³$Í;R½¡Y`|êN5¸® æ{Y(ºéÿ²ôÒt!f¢ñ1Ú²>ð¸\BC÷õÜ8AH ]k.jb}DÜ_"ø=¡äÌ!$IÆ%ûÏ*ä*UÓÉ ³@9ßã8^WFìkù @ä --- NEW FILE: input.png --- CVS Browser: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/java-game-lib/LWJGL/website/images/input.png PNG $Á§O;´×ÆÆÛþü²` wÉKrµ»ðÁ¶ÖÂ&¥dß7$ôØ{×ZÆaR9çsãµÖÐ,¥Äs1J)`i @÷ÞïF±P Êy öaè±ÿW8xPTB z¥ÂdESÏKãñó4`hûã³]m^ÒyVÃU¥IÝD½ÇÒ÷ùÜ¿Eû¢0`Câo¡0Y) Ω üé!f1ÂÄx; #!) }%H)Iȱ 2 ÉaÐbu¢*Ã:d-Ü @ÔBÎÓ4´ --- NEW FILE: links.png --- CVS Browser: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/java-game-lib/LWJGL/website/images/links.png PNG À ±`Ádsðë Ï÷l3C8(ÞÝHF×9ù_îW (híÏ ÞÙiùvL°©Rü©)Äç¡âá¢jø°»3^ú ÙÌXÓîÞݪJµL¨c)×ÚÄ>x¨ H*S%è nNøÏìùNaõº¼{ïsN`>újtQÆï¨Bsb1àRbë=ç÷s§R÷G;©Â´ÖÊ9£ï33tqôÖÚßßÈ/¥¸ûÞÇ-|4üÈÝgÏú¹}RQQ$^Z+ Ï2F ×ú_"VùÿÒ¥,6ùÆ ØXg!Ôìºëóó«*ÒÍT?1òÆ4ì¤,1¾÷63ÊZËÝÉé½SsÂLÒrxRÁ@PæÜEghá10sÉW --- NEW FILE: links_selected.png --- CVS Browser: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/java-game-lib/LWJGL/website/images/links_selected.png PNG `ǦgÏcløÏ?Aq õb !Â\\ß?fçàøöíÐHlÚ³h¤RBZÐÝÀ$qxÏé]]Þ¡¡b@5Áv7P#0A^Ú³èn{`¨O>¼iõê{öÄ¥¥)*)1CQPTôׯ_@À3 be`PSRJ-,ÙçöìXQ¡olÌ/$LV°Ó@HHèãÀ Æ##0rãìÙõ³fñ00øê[YAJ*H°Ó$@2P mÓbÕv-ïµ6Ô IàR(æù8[ÚzçÒ;¼dSV°ðsÆ\C Ïþr²Çxä¼8·¥´PJñÞß}1]Rû ;½ë@, wóùû/Àn9â2x9 ?þý*Ð}ÀL ov°C¹Á6S=0ü;h7ÄcÀ¼QãêúêÂSW×Yó/¨Ë54èÒi3+*)CCõÜÝ& J¤1 J3nH¸»ãÇÊí½¡ö`ÐZ?1sN\sî|T¶µ¶ÖòÞcÐé½§RZk)%:µÖcPRÎyÞ1ÆÈ9c!0xd,y Àc¬ 4ª] ¢3ÞFîþ£Èì¡>ÜåгVtC¾@²RãËYàÆ+x¬£ à) M%~ rüáMxpû+ á Q --- NEW FILE: logo.png --- CVS Browser: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/java-game-lib/LWJGL/website/images/logo.png PNG J)çÜ£Ò¥´ÖÀÙØùÓÛø @;¤ 1S£µR¨Ñ<3n+U¶<È4%#%Ú½'Øü{§WìV0Ã1ݨ± 0DÈóÿÿ0)Ò§ºQ|MdÙurLüí¾¼|é:¯¤®J!ç<ÆhyïCôß=GOÇH)]%Óy+<a´Ö§1ý0b3ée+õÞ»þ1Ôwý}xîzsΫÝ6À ÌV)Æxc ÄnZ¤z)å6þÐ^+ ÅúòWnÃ7Âðxì©Ä(H+¯k/=ZJ¡'ûãëâÚ.÷÷a¨#$Â\0°DxÝC*âV³Î¸hMõa3QÁvOTû8²æÅ9ÒÎq¢ºéWF§þðÆ. Gïcm8ÀÒ¦µöÚ\íB:ä CË ÜMIÓ|OMÔ°dØjc~ãF`3]/ØêªúTD4ÏRÓsêûÈÌúľMÖ]¯r{ø3¡_\Ê vh1w dÎöÙ>çBz.û!à`¶*<éçcPR8FF¿%è%¥A¬Rz 7ö±ù>Äô&=/üËõ>@ÃÁÑu?sÎG[kµVm!0f<c)¥{½wMy1ISJa Bfà2*<çBp ö¶ãÕ !ßî?|¦Þ' î¹8}h¤%Êô;ÑT÷ FòÆ8>©uýrTÙ_«0µÝMºPU¹Ç¸®'¨ÇeÞéø-gcp£´ü c²_Õ± >ÙÙóËÓEÏÐÓpã63XaèeÿÿÃ"[ðá£=[\lÍÚ«>ªµFµÈçëëOì¸]Ð`ÔJHþï1|¦^fìr"ÇÔ2¡¾ÖT8zúWæùV³ùjê %iU;3m:!Ãî¦T»þ¼Ê'9.ׯ63Hà/òÿ×åâzèÀ@Ø B«DtMd5<BDWßÕçS\¬DûEï¦ûÜüô½²U6%åxúKQ½`UÞêÌnöuè^´U U庻çÄß Â(@{!9í* Eè Íì6 o¬PcúbÂ>Ä«ÅNxc@iZÞà@7À ìºâHí6jHÓ4% aô0 ,e! üÁ )ïíAÔIèòyÞý÷àP>$\4BÒ+¼h$&µÁcÓ¨ < ðø£{îxWÃËQÌdJÓ3Ëd¼4 o@R<ÑC:ïD®(G.¼QN^ÕÑ YÒ(OyO£ðBÂ5å(òbx95ËÂûªxÌDåû>B¿üCHxBjXö"g$ .ÈØ0Py´ø ý #DVÓÈAÖú¢]9 W+ÇaKÁïYØoâµdÉBi«vILAâ0[N.0ý3Í\W%Õ@: [U©WD"BËÂ:õ¿Tw6åÌ!&XG9ôþÒX)Ëh\:¯ ÄÝõ-¢å=í â4³îßzý4L·òéS V;(ÁlÂOøBfð |1<Xñô¢hF»epK!N%²®¾@6¼/ 8, )JWô[]@°þ¯eDËð^ñã/d§Qøl¤%d"¦®Ç x©AüLd ©sHy{#dð9J·±s OD£h£¤ð±RHZ'èäå÷Ä(Æ5 /D!»ðriFóif× íÒ(¼~z¦¸Ò(².ÌF-ÚÀ¤/<hÝgÔìðQ´ÅD²BÌ8^Ô8(Üìäâ²XFi Xð`ðiº-Gáä¢3¬áZðTÜOð4JdZ¡°ÏiöA¸ðF|{y26+böÊ©è½6¼¥]9 @,øÛOðµð:ûõðcä4+"¥¸fó0t°³4hZÂbicþÞJa@à nnîK.]¼xÍd¬Á+999ܧDÁó6|ý?òL2M2 4 ]{ðuÈÜg(L Èm¸qõ ÑÎ^D^5¶ô?~üt'ä ¸ø7O/©«VÝ-iÕ9ݵ°edP!TüзÜç«'Æh¾GÀTóXúÙ2ItnÙä¶èFÛmô¦iei&ÓäN¹¬vòF V@^ÅÎoW À0cW¼ÿõBPÛG×bSIy¡¾b=ɨ½MO ;KuðjãrÌ-=Äèd·ãþ¶¬=- N«Ì FÙçF{AËGüu ÀÛ¤ cxªBÞPiò¢fHE^ ÖÁ'é O¯ÄD Z¿4õlä2êi XðD*¼Ô1ÐgϨ¨@° uÅP[[¾¾>)·¸bfÌIg\)Ù;Ä£@õ!!!ÆÆÆÈÅFCCÃÅá"çϯªªdhÅ-Æ£YÆÆFd wìØë % Æàà`###äY. 3.\¸ kuÐóªL:m®+0Ⱦ|ùòþý{ȼÀÕÀSÃ÷+_½zâwÈéà¬-auÖün@»-_" /Ó¡]Ú ÜÙí3!°9X0À<hZÎÀ5#»çJp« uÓ@ 4ê¤t+ÛЪB\m9¡i/P;¤Ùc µ- XH¡(***..L©ëXq´ßdÔÐ?m ªR ®\Ån'öÙò¶]Bì ÈYBJ)"Zk8ã£0øäØÙAû¾Ôc&³¢½÷3s"æäç%o§ÒXê[¼§EAÑKó ) 2ý YøN_Ú94 w'Ü^b[¤®3ÈJ Fµ --- NEW FILE: lwjgl.png --- CVS Browser: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/java-game-lib/LWJGL/website/images/lwjgl.png PNG B ôC×{ÇÙZÃ9çÂÆzp®QØÝA!3näÌL3cµ¾ÃÇIó*¡¶Ò÷' ( ,ÝÜÝÝËÊÊå °Z]°`Áõë×C ĹÀ !Nð><Üdͧ¸ÁjH l«ýp0G*É®wðÊâ6T»KÞÃÝ]X*îÖ§àÃÌÄê½à²m --- NEW FILE: miscellaneous.png --- CVS Browser: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/java-game-lib/LWJGL/website/images/miscellaneous.png PNG ÒÔW®\éêêB¶¥´´TSSÈ`¸¸8¢ÀÓÓ3,,ÔàΣµ# C â`ðåË`l` xÆqàY×5©4ÞûdJéÛæZkqfµV ¨ì<#jè¢LÓÄÝhÃ9°"÷åñp± Þûó<cYÉ O0± ¢¿so7ÖuÅO,B¬1 qf*ôH@R sßwe©ªJ4¼àøßÆW X&ACÃ*yâ(®¢±Ïw¶?)Þ_ã¡Ñ¥çYtñHü²,aHJ*zÿë1²ÐÖuu¨°qsW%¦¦wªÉɲ,x?Ïóx§u]y]×¾ïéǶmÍvNmÙpG'5Hfä<,µÅ!ZZ8òÛS8éÝus5h)02+yªªÈOET8ÑLJ»ï{Û6> EFOfn¦irüû¾!2µÿë3ÿÓ$Ta£iü0ë§x,#N>p]' 0¼üûoÎÁþÀÀ ïDÍnLô×´ëzj¼6SðÞ;ưeygá°k>\ IJ}p!kzÞ{ÏZËNpÎÑy>@HÕôeõ¨AÐ01Äfbn``T ùcGk &çe¢£fß]'0½üñhCäÅ6<¬ Ø5XÌð ,¬§%F$cüÆ s/uÙàà$s6Ø 3m=Z4}ÑZÛ{RÞ\;¥TkÅ&Kp{ï¼åe/4É^lqºÉªòÑ*ïá<²9!ÄB9ùCÏâUºD2¡ï(2,,PûçH p²gKT/rÉÞD¥¢úkÂVåç3úy{ïZçrðÃ_ ¤üµþïoqË¡´xÒ½÷sT¶äÐ÷^»°Pí¥\ ®DáåÜo[Y¾OV× ¥ 5×ì,@Ærö/Åà6NÃÎ)ñé&ÌòÓÞ1ÌÅn¯ÐÓ5È¿ 0E ½¥¥]n¢è9¶ZXYyÁV"¨×ذ)DÃøÉüùùÄÃpÎÕu Ê+e»Ô4M¼sµ6F&¤ 4òw»`ðÄ5èpi>Ï{Ô%PÌw]Íu]˲TU ¶D,ËrGJòz H$Ñí e"ÞlF¦û¾çó<Oy´®«ÊÂ{íÓQ´mÛÚ¶eþ¾o¸ÅQ·>máci@®!¢dàCYÆI¢`#ÇqHuïûxÓ4(aø³<Ïq9Õ"óäzçùO»Ò¢àèü¿ïà ^ùÞI¼È¨VòYÆd}üÊÑ »k9'÷¤¼äH$VgÕ>p¤øv0¬÷;à·÷÷Ü ÁOH\.DzKÌnUàR¤ (G´ÞzµÖZº#9#GTÕ㬠ÃÔI9Ô¼òFßû @½¤ --- NEW FILE: openal.png --- CVS Browser: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/java-game-lib/LWJGL/website/images/openal.png PNG ìåÆUn²=4¬ª9§¯tæZÄT,»_nÊÑGÐ{ofsöÞXuÛÈD¡:Æ$ `bzvü|`¢Üm ÌçΨÆÎª¨±"EI¥-3¨¨NUµp`uÎÉL?ÒàÈú|æäï½»Iö¾ï@÷p l0Ç&äxRJ·Ýlù°yïÙQNè àsBÕ ã{(c4³Öö1FJ©÷øZëk-"@$ÉÒŦ¼ MÝòâsÖ_f¡p¥q[9à©·rÎü¯&ëúÍ26` ÚËãx)JaW"E|LÜ ÄËèõ/]*cfâî:Ò@ae tU `õÞÕQÂ9gkñø1Xn²Î%¹%Ã÷ÞdDP RÈ<FkE0^Ä£üJ+3ï÷IGZñ 6ÿu ÷è'̶¢,® ð7¶Lí Àt¤ n+rÓÆXýÜzFn¢õá --- NEW FILE: opengl.png --- CVS Browser: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/java-game-lib/LWJGL/website/images/opengl.png PNG ÒMÄCpÈP:ÒÓæ#|¹/oµóm¨÷>0çD?¡r¬gÌZ ¦Æ6aÈKJ&$VaT`G. À@@T`bæÌ}wì°?óö½Ýýi1^×R²ÖNÓ( :ºÖú}ßû¾ÉR¹,¸÷«Bìûô03@ûmÛ((¥äÏóTJãH \ ¢H¶uUÄy÷MÌI?üïëmQkå¬1hïzï=q³µôè½s1¢N ¿Q:!ðPPJ!^!W¬RJͤ\RJ¥|vZksZk4)ÿsÀ_÷< Ök9'FÜN°à:Xa þÿ¿¶÷]öX¤)1iSO$ÓXêárA¤²µ#p]Úz*ðE³æymøI/¦r4Hh?ÐØÝûsð|!ç- A¬µ½pQî& ÀE =ô£J)õ¤¼¼sÈ}ÂJ@"BCÊð@èÖÀc T¹bzW=óäõ-Àoª¡Zv÷½ÖsÿW^¡RV¯ óôÚ'ý¦ª$Xv° W¬ÌuìrEÀsï®Ó3ydqYѣѣù&ÕÚ íDüö%*¸Ë?#A4ÙÑdÅÏbêÊ;Õ]*ÇóË:F ¡ ÊÞÀû_u¦ÐB?NÌW©VÊh÷Ä»ëÚ\ÂPºPã¯H¬3,7MÓÇd'h|xb:6}| ÂÓ7$5"§.¸é$H2Âð&/Þ>äx±« --- NEW FILE: sourceforge.png --- CVS Browser: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/java-game-lib/LWJGL/website/images/sourceforge.png PNG *ÓãÏ( áH=Yç¡êÙÅ!Ù¢Ès'ÞªÊ0qË©}ßÅ9Á4MåGUH/wÎi¢ð4ÚKÈ{á·®«7=ø ÀCãPDQ´ùQHB+¡ôÕzÝ(-Kb¬ä7vD¢Âùn2Sqç½3ïÝOß÷]× ÃPeÇöïû×urÛ6Ȳ,KÓó<#¨ª ëºÜzíBÄqØ)XßéePb¶3÷}C6£Å¢LQhÖuÆ÷#aPeÇqÔKmÜ÷üùVßó¼¶m©/Ydið qðA$È Q(Ñet°;DBº ²!Mèþ°E§K,b¾¿ýmÜĽ÷Xã8v]GÇóº.àRJ2tÎñ1pÐBäi Aı)¥ZkkMüu]c)<¿dç¬õÞu?ÏóE'wbÏ"ã8l|APó,¥Hòû7CÝ÷½7h;Ls¦Êc@ãÕ¾qábY^sΣALí/)ñB9¦â(æ' KÒÉZëaõjïmK¡´µ1_ê7÷^NÍû»~¥Ä¯¢ËÍ3%zU¬$ø xþÁ´«iƬrØaðG K1÷}×q\¶Å¸Ìÿ¸ËkÓ&ÈÃ]êäº.¾Ëü&½w0îû®&ÕMæÕ°FOs9gÝçGyäâÂIÊÛ¶yÅYIÖnAoÉ÷4M¡5S}8ð®+6 6Ò²IMCð¸q~GAE)/T´ÁO nS=Þη5T®¾í¿÷ÎõÔ³Ô{á F§Öj R2¼ðfÝï1ãBh92ù·\é£CNRÅØ®æ!M³ÖraZ|òíxØ$yrðë Û,Ö ,ÑeãºuÝ#·AiçöÒ{o¢wÝ,´ïc* D%þ0a7 zÂŶôÿzúFÿ+ÄÂ#µm!vaÙ~5djþqù¾íiX¿i9Ö.]aSâu×éǸd°@LófÉà¿»Zd?,Ó_êt{èä§òÂláÓ[w ¯ ßKlA14jÐØ¶0K8X)ÛKÉêM |ÈÏÂÁ:õþ¬H`ÖCÐÀÉPHh}³Q´¡¸¹29!ÆxSS+É ÔÓK ù @ä æî³¡@$aãä ÐÎz¼JÜ¡}XGiÇúEè À¤ þ`\ì³Þ,&wxáì·¥Íc0u@1Ðx¼Îf©??²ÎÁ,ÎNâÌÁ£[q~Y²Ý Ï÷Æ$¦!-`x --- NEW FILE: sourceforge_selected.png --- CVS Browser: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/java-game-lib/LWJGL/website/images/sourceforge_selected.png PNG Â@ë(´Þ¥¢mîÐn\t¯gpª ; ¢Eð±;XïÐc2¶²è$ÿ4_B&-35+)ñ¥Î%ívEQÄ(Ìb¿`ëÍkÑ!G=¢eãã$Ëâ¥RÏfE¯ç«Ö|³LIc?ÇÓ)zÍ'Ë6!xu :ÃÑd,B³=H$>Ñ¢Äøk,³ßæÚò<ÇÔ# Btß¶mÇqizg¶Ê YÕF'gñ¼É*Þ\oUÎIkëõøg²giÂpý @«8t4ÿÁà]:WóúKÉèæ·ªCD7¹]餸ÝElÔ!A@Èàã)B¸Ü{Þç¼÷U³ÙÃ0ô}qÇSª,K$?ÓbÚj7x9w©ujíR'1®ëYâøÉóGÙaAëÑw/I21fE¯µ~MgcPÙ ªª Æñ` á¦ïyÞíêuí61ó9ÖÙ Éó`íRÇËãÀP¯Õ\)!Ë2.à¯Hqßó¼~ÿ^TN{=ðÞ¬½Ò<ôÁV³IØwÇ ùd8%É1ËHT¾Ä±¸±-dx·váiQLØYÝ ü¢¾X15æ"ö[õF ÀcÙã DAØ(?A³ 1ÁF¡æ2ÔÆ3;î ¥WðbH8ó6 Ø};;;37gC%¹f¤ Üñ¬ôÕ~*Xað5ÐH¨IÓt)'RùSÁ+9ì:Üy.ûûËò´aº®sÎÍugÒßguÎìùýÎ4½ïû1µ Á:Âýv³9å9¹>ÁØËØ1ív²|?þÚöúz¹Ãa ¨@K#² ÙK`³!gªºÕõ§i'\ÃÒ/о<McMlqeY¤< ¥IÇ( ÓIÈD«¿ Â@<r,Ä%¢ÅHÁX¥«¼ÃÂæNRØ/°²´HuO0 h:îb¶ºä¸ÍìÌì^Ô&ë¨uª5ñq¼"î,ÊÅ Åpm|¦ÚÜ÷ýÖ¿h¬µ ¨¶*Ko:}<X«¿ÛØdÔôÒ £Ã]¬ÖkcÌ8ÇafÙ !ÀH¯ 0J!p(J¶&xíµ>&Tjl¨ ãÈA]׿|^buù~ ÔÞ²,QCùu½zÀ~÷3mx¯·V >=!h&àc+)QgÙýñhr»!5Íð^¸ëNg³ ßb8MeL´*GHù´9 µ4°ÏG ÃÚÔTÛhU¸¸x ~õ¡KäçOÞÿ¿4P¢¶â I^6Çýþv¹¬w;<% \7ò}*ey E¼ßogeY2«µÆ@ÿ7 h+RY»¹åûðâúäh±RÖÚ¼Ûm¸.µK¨Kðt~MÉÚUº1ÅÑZOf³ùf%ùy?Ïh>hBö2ûé²Éa¢p¶TCl$¦ÄWð"]{ ÏÒùö&&ý`6eÁb7ÌBHØcn*ký8 ïS¢wú_)@BªßãàNRD̹+!4uÍ*Üæ»eØwä Â8ÊZêGlc$ÙPÒ;AñF4Åñõ¼ñ¶'0óÂÚ¦±´ËºÖ=çjoæÌ7ß̹|*[i·»æsc<rÙj5S.#WL*5©ê{¯çdIú5ïÅB(J®Ñ0] a-r(tá8ëÑè¥Ý¾Õ´BA¨*AßÃJ2ù9 á¼ÀÝNf¼G"èt:¢°ÝÂ'Zí±Rè3@È.tCþ¸ÝeùhY¦®ï'[¯ß¥Óºa`ðgÛ_³ZqϦIúç§Ü"{=ªÃaÑ￱§Â°h´Òl²kaH¥6ÅgJ{]8= ðºà*MÀ8ÿ@,×ÎÖÀÀÖ´¬¸©é/~þ;·nÕÝe`ðÊÈ8²lÙûgÏ®;@wðð*(ð©«ï·å/\¸`ïëûðòå§7nß¶ ¨ %±ãß;¼êøõÒtþ§/æÍ33ï*¹Uo ×%F8¦ÎÜ2Â#U¨*vÂÔhÒòûLÕrâ,7q¸Dòák1Ô¦\åjÃPá@Þ7Öìà£k-¦ÈؤõþÈ"`§ÇW3p÷P1"e'Ŭ¤½21<{oêÂ5ÆÐs7úÔÀ¤Q4Ü'q · d0ãiðȦpWvñ9gV4S¯l S¼mSsì-Ó¥¥|e) --- NEW FILE: vector.png --- CVS Browser: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/java-game-lib/LWJGL/website/images/vector.png PNG K 8û>nÝ{¯µÆÒ3æÝNg¸G9Ô¢f.9"¢ª <Ïã²NæEÎ1ÈRÑKçD C°Qb `læß×í¥ÚÔ{_k `2eÉc5òæj²2ç\M)a½q~£nhÊO×EWÜe!£²Ü6+¿ÿ²*ゥ/¼ÖÚãÚTxÿ/笷 q$rÈ' Ä÷àFæ;¿EmkÖ¥/\¬Ð´y¥¬<R=¤[åÐZQeÅQG<wÀÈ<µm[ )dW>È®c q¼Il:¼o 7®® |
From: Brian M. <ma...@us...> - 2002-12-20 21:23:34
|
Update of /cvsroot/java-game-lib/LWJGL/website/documents/tutorials/opengl In directory sc8-pr-cvs1:/tmp/cvs-serv9069/documents/tutorials/opengl Added Files: skeleton_code.html Log Message: website files --- NEW FILE: skeleton_code.html --- CVS Browser: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/java-game-lib/LWJGL/website/documents/tutorials/opengl/skeleton_code.html <html> <head> <meta http-equiv="Content-Language" content="en-gb"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> <meta name="GENERATOR" content="Microsoft FrontPage 4.0"> <meta name="ProgId" content="FrontPage.Editor.Document"> <title>4</title> </head> <body> <p>4.0 Skeleton Game Code</p> <p>So now you want to know how to just get stuck in and start writing games. First you need to understand a couple of game programming design patterns and why they'll make your life easier; and then you'll want to fill in the gaps in a bit of skeleton code that we're going to discuss below.</p> <p>4.1 Design Decisions</p> <p>4.1.1 Static Game Class</p> <p>How many instances of your game do you expect to be running in a JVM? One, and only one. Given this, you may feel the urge to implement the singleton pattern on your game, where your game class holds a single instance of itself and a method to retrieve that instance, something like:</p> <p style="background-color: #FFFFCC; border-style: solid; border-width: 1; padding: 3"><code>public class Game {</code><code><br> <br> /** The single instance of the Game */<br> private final Game game = new Game();<br> <br> /** Don't allow construction from anywhere else */<br> private Game() {</code><code><br> }<br> </code><code><br> /** @return the game instance */<br> public static Game getGame() {<br> return game;</code><code><br> }<br> <br> /** Start a new game */<br> public void newGame() {<br> // etc<br> }<br> <br> /** The main game loop */<br> public void mainLoop() {<br> // etc<br> }<br> <br> // etc<br> }</code></p> <p>However this does result in code all over your application calling Game.getGame().someMethod() - and to what end? It might <i>look</i> like object-oriented code but in reality you're just making things harder for yourself. It's far more intuitive to write your class purely statically, like this:</p> <p style="background-color: #FFFFCC; border-style: solid; border-width: 1; padding: 3"><code>public class Game {</code><code><br> <br> /** Don't allow construction from anywhere else */<br> private Game() {</code><code><br> }<br> <br> /** Start a new game */<br> public static void newGame() {<br> // etc<br> }<br> <br> /** The main game loop */<br> public static void mainLoop() {<br> // etc<br> }<br> <br> // etc<br> }</code></p> <p>Now you can just call your methods directly on the Game class. We're going to use this pattern in the forthcoming skeleton game code.</p> <p>4.1.2 About Threads and Timeslicing</p> <p>There is a tendency for Java programs to be heavily multithreaded, simply because you <i>can</i> in Java, whereas it is exceedingly difficult to do properly in C++. However, you are likely to fall into a number of pitfalls in game programming above and beyond those experienced in general multithreaded programming:</p> <p>Firstly, threads were designed a long time ago for a specific purpose, and that purpose is keeping the processor busy whilst some slow I/O operation is being carried out. How many slow I/O operations are you going to do in your game? Apart from loading the graphics, sounds, and level data at the start - none (unless you're doing networking but that's a whole other issue).</p> <p>What does this mean for you? Well, in normal Java, programmers will tend to set off a number of threads and expect them to more or less behave like <i>time slices</i> rather than <i>threads.</i> Time slices work in a rather different way to threads: each is executed, in turn, for a finite amount of time. You can more or less guarantee that a slice will execute for its allotted time, and that all slices will get a look-in.</p> <p>Threads don't work like this. To put it bluntly, you can't <i>accurately</i> predict when a thread is going to execute (or if it will ever be executed), or even how long it will execute for. Therefore you should not be using threads to do stuff that you expect to occur in a timely fashion. This includes <i>collision detection, animation, sound playback</i> and <i>device input, </i>and the ultimate blow, <i>event handling.</i></p> <p>In the absence of threads to do this useful stuff, we have to resort to a <i>single-threaded model</i> where the game effectively runs in one, very busy, thread - the "main loop". This is quite convenient, however, because it highlights another problem with multithreaded game code that is not immediately obvious.</p> <p>4.1.3 About Threads and Hardware</p> <p>Your machine's <i>hardware</i> is only ever in <i>one state at a time, </i>unless it is some kind of quantum computer. The device drivers for the hardware - namely OpenGL and the like - keep track of this state in order to send the correct hardware setup commands to the device. Can you imagine what might happen if one thread is trying to do some drawing at the same time that another thread is trying to do some drawing? Yes, you get a mess. You will discover that in order to draw in a thread in OpenGL that you need to associate the current rendering thread with the current state of the hardware (the "context"). Suddenly you need to synchronize every method which can alter the hardware state. Suddenly your application looks <i>incredibly complicated</i> and <i>runs like a dog!</i> So much for threads.</p> <p>So be aware of this next time you think it's a good idea to load your textures in a background thread, and remember that only one thread - the main thread - is allowed to execute any commands on your hardware devices.</p> <p>It is for this reason that we use <i>polling </i>to read input devices as well. Not to mention the fact that we can't guarantee that an event loop will be executed every game frame, and so our input will be erratic.</p> <p>4.1.4 Object-orientation</p> <p>Object-orientation is <i>good</i> when it's done right. It makes your code much, much, easier to understand and work on. However you may be led astray by <i>parrots who repeat mantras.</i> There are some programmers that say <i>everything should be private</i> and you should expose your instance variables with getters and setters. The Hotspot virtual machine is even cleverly optimised to make this operation almost entirely free. <i>But wait! </i>Ask yourself why you're filling your classes up with getters and setters <i>when a dot would do the same job without any need to maintain it.</i></p> <p>You're writing a game: the source code is probably only going to be used once, or by a very few people. Most of your game code is so unique to your actual game that it is <i>disposable code.</i> So save yourself some effort and use a dot if you can. A critical mistake I have observed time and time again in object-oriented projects is to get so bogged down trying to design a perfect object-oriented model that the project takes absolutely ages to design. Before you know it there are hundreds of getters and setters to maintain, and interfaces all over the place to keep the reuse of your classes to a maximum - when <i>all along the project design goal was not reuse but to get the bloody thing finished on time and under budget!</i></p> <p>Your mileage may vary...</p> <p>4.2 Show Me The Money</p> <p>Ok, ok, without further ado, here is a skeleton listing which you can use to write a fullscreen Java game using LWJGL. Because we're games programmers, we don't want to do a Hello World as we'd probably rather shoot it. But before we can make bullets we must pay homage to the <i>rotating square!</i></p> <p style="background-color: #FFFFCC; border-style: solid; border-width: 1; padding: 3"><code>import org.lwjgl.*;<br> import org.lwjgl.opengl.*;<br> import org.lwjgl.input.*;<br> <br> <br> public final class Game {<br> static {<br> try {<br> DisplayMode[] modes = Display.getAvailableDisplayModes();<br> System.out.println("Available display modes:");<br> for (int i = 0; i < modes.length; i ++)<br> System.out.println(modes[i]);<br> // For now let's just pick a mode we're certain to have<br> Display.create(new DisplayMode(640, 480, 16, 60), true);<br> System.out.println("Created display.");<br> } catch (Exception e) {<br> System.err.println("Failed to create display due to "+e);<br> System.exit(1);<br> }<br> }<br> <br> public static final GL gl = new GL(16, 0, 16, 8);<br> static {<br> try {<br> gl.create();<br> System.out.println("Created OpenGL.");<br> } catch (Exception e) {<br> System.err.println("Failed to create OpenGL due to "+e);<br> System.exit(1);<br> }<br> }<br> <br> /** Is the game finished? */<br> private static boolean finished;<br> <br> /** A rotating square! */<br> private static float angle;<br> <br> /**<br> * No construction allowed<br> */<br> private Game() {<br> }<br> <br> public static void main(String[] arguments) {<br> try {<br> init();<br> while (!finished) {<br> Keyboard.poll();<br> mainLoop();<br> render();<br> gl.swapBuffers();<br> }</code> <code><br> } catch (Throwable t) {<br> t.printStackTrace();<br> } finally {<br> cleanup();<br> }<br> }<br> <br> /**<br> * All calculations are done in here<br> */<br> private static void mainLoop() {<br> angle += 1f;<br> if (angle > 360.0f)<br> angle = 0.0f;<br> <br> Keyboard.poll(); <br> if (Keyboard.isKeyDown(Keyboard.KEY_ESCAPE))<br> finished = true;<br> }<br> <br> /**<br> * All rendering is done in here<br> */<br> private static void render() {<br> gl.clear(GL.COLOR_BUFFER_BIT);<br> gl.pushMatrix();<br> gl.translatef(Display.getWidth() / 2, Display.getHeight() / 2, 0.0f);<br> gl.rotatef(angle, 0, 0, 1.0f);<br> gl.begin(GL.QUADS);<br> gl.vertex2i(-50, -50);<br> gl.vertex2i(50, -50);<br> gl.vertex2i(50, 50);<br> gl.vertex2i(-50, 50);<br> gl.end();<br> gl.popMatrix();<br> }<br> <br> /**<br> * Initialize<br> */<br> private static void init() throws Exception {<br> Keyboard.create();<br> // Go into orthographic projection mode.<br> gl.matrixMode(GL.PROJECTION);<br> gl.loadIdentity();<br> glu.ortho2D(0, Display.getWidth(), 0, Display.getHeight());<br> gl.matrixMode(GL.MODELVIEW);<br> gl.loadIdentity();<br> gl.viewport(0, 0, Display.getWidth(), Display.getHeight());<br> // Fix the refresh rate to the display frequency.<br> gl.wglSwapIntervalEXT(1);<br> }<br> <br> /**<br> * Cleanup<br> */<br> private static void cleanup() {<br> Keyboard.destroy();<br> </code> <code>gl.destroy();<br> Display.destroy();<br> }<br> }</code></p> </body> </html> |
From: Brian M. <ma...@us...> - 2002-12-20 21:23:34
|
Update of /cvsroot/java-game-lib/LWJGL/website/documents/tutorials/openal In directory sc8-pr-cvs1:/tmp/cvs-serv9069/documents/tutorials/openal Added Files: openal_basics.html Log Message: website files --- NEW FILE: openal_basics.html --- CVS Browser: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/java-game-lib/LWJGL/website/documents/tutorials/openal/openal_basics.html <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>OpenAL Tutoral</title> <meta http-equiv="content-type" content="text/html; charset=windows-1252"> <meta name="author" content="Brian Matzon"> <meta name="description" content="Basic sound using OpenAL"> </head> <body> <h1 align="center">OpenAL Tutorial<br> <font size="-1">(by Brian Matzon <<a href="mailto:br...@ma...">br...@ma...</a>>)</font><br> </h1> <b>1.0 OpenAL Basics</b><br> Before embarking on our little OpenAL adventure, some tools are needed.<br> <br> <b>1.0.1 Ingredients</b><br> Head on over to Creatives <a href="http://developer.creative.com/scripts/DC_D&H_Games-Downloads.asp?opt=2">site</a> and snag a copy of the OpenAL specification along with a copy of the Programmers reference.<br> If you haven't already done so, get a copy of the OpenAL runtime environment too (and install it).<br> <br> <b>1.1 OpenAL theory</b><br> Uhm... I'm not going to write this... In all honesty reading the specification would be a good thing before continuing - but it isn't required...<br> <br> <b>1.2 Basic setup</b><br> Lets start out by creating a skeleton class for some very basic sound. We'll start of by creating the required OpenAL objects<br> <p style="border-style: solid; border-width: 1px; padding: 3px; background-color: rgb(255,255,204);"><tt>import org.lwjgl.openal.AL;<br> import org.lwjgl.openal.ALC;<br> import org.lwjgl.openal.ALCcontext;<br> import org.lwjgl.openal.ALCdevice;<br> import org.lwjgl.openal.ALUT;<code></code><br> <br> public class PlayTest {<br> <br> /** OpenAL instance */<br> protected AL al;<br> <br> /** OpenAL Context instance */<br> protected ALC alc;<br> <br> /** OpenAL Util library instance */<br> protected ALUT alut;<br> <br> /** OpenAL context */<br> protected ALCcontext context;<br> <br> /** OpenAL device */<br> protected ALCdevice device; <br> <br> /**<br> * Creates an instance of PlayTest<br> */<br> public PlayTest() {<br> try {<br> </tt> <tt> al = new AL();<br> alc = new ALC();<br> alut = new ALUT();<br> <br> al.create();<br> alc.create();<br> alut.create();<br> } catch (Exception e) {<br> e.printStackTrace();<br> }</tt><tt><br> }<br> }</tt><code></code></p> We need instances of the following classes:<br> <ul> <li><tt>AL </tt>- basic source, buffer and listener interaction</li> <li><tt>ALC </tt>- context and device creatiuon</li> <li><tt>ALUT </tt>- OpenAL utility class</li> </ul> <b>1.3 OpenAL initialization</b><br> Now that we have created a basic class containing instances of the relevant OpenAL classes, lets start of by initializing OpenAL - that is create a device and a context:<br> <p style="border-style: solid; border-width: 1px; padding: 3px; background-color: rgb(255,255,204);"> <tt> /**<br> * Initializes OpenAL<br> */<br> protected void alInitialize() { <br> //get default device<br> device = alc.openDevice(null);<br> <br> //create context (no attributes specified)<br> context = alc.createContext(device, 0);<br> <br> //make context current<br> alc.makeContextCurrent(context);<br> }</tt><code><br> </code></p> Start of by opening a device using the <tt>openDevice </tt>method. <tt>openDevice </tt>takes a <tt>String </tt>as argument, containing the name of the device to open. If no name is supplied, the default device will be used (OpenAL currently doesn't support enumeration of devices available).<br> <br> Having opened a device, create a context to that device using <tt>createContext</tt>. <tt>createContext</tt> takes two arguments: device to use and a list of attributes (see specification for list of attributes). Since we're going by default context, we just specify <tt>0</tt> for attributes.<br> <br> Finish of by making the created context current. Do this by calling <tt>makeContextCurrent</tt>, supplying just created context as argument.<br> <p><b>1.4 Buffer and Source creation</b><br> Now that we have opened a device and gotten a context, we need to create two things to actually get some sound. We need to create a buffer to hold sounddata, and a source that is to play the sounddata.<br> Lets start of by creating one source, and one buffer:</p> <p style="border-style: solid; border-width: 1px; padding: 3px; background-color: rgb(255,255,204);"><tt> //create one IntBuffer as buffer and one as source<br> IntBuffer buffers = createIntBuffer(1);<br> IntBuffer sources = createIntBuffer(1);<br> <br> //generate buffers and sources<br> al.genBuffers(1, Sys.getDirectBufferAddress(buffers));<br> al.genSources(1, Sys.getDirectBufferAddress(sources));</tt></p> <p>There, all set for actually loading some sounddata into the buffer.<br> </p> <b>1.5 Loading sounddata and setting up a buffer</b><br> Now that we have a buffer, we need to load some sound data into this buffer. This is done using the <tt>al.bufferData</tt> method. In our example we will cheat a bit, by using the <tt>ALUT </tt>method <tt>loadWAVFile</tt> to load a wave file, and copy this into the buffer:<br> <p style="border-style: solid; border-width: 1px; padding: 3px; background-color: rgb(255,255,204);"><tt> //load wave data<br> ALUTLoadWAVData file = alut.loadWAVFile("myfile.wav");<br> <br> //copy to buffer<br> al.bufferData(buffers.get(0), file.format, file.data, file.size, file.freq);<br> <br> //unload file again<br> alut.unloadWAV(file.format, file.data, file.size, file.freq); <br> </tt></p> Having loaded the data, we pass it to <tt>bufferData</tt>. Once the buffer has been filled with sounddata, we unload it from the system using <tt>alut.unloadWAV</tt>. Don't worry about deleting it this soon - the sounddata has been <b>copied</b> to the buffer.<br> <br> <b>1.6 Associating sources and buffers</b><br> To associate a source to a buffer we set the integer BUFFER attribute on the source, and assign it a value of the buffer to play:<br> <p style="border-style: solid; border-width: 1px; padding: 3px; background-color: rgb(255,255,204);"><tt> //set up source input<br> al.sourcei(sources.get(0), AL.BUFFER, buffers.get(0));</tt><tt><br> </tt></p> <b>1.7 Setting source properties</b><br> Having set up the source, it is time to set some attributes on the source - there are many that can be set, but in this example we only set the looping attribute to true by doing the following:<br> <p style="border-style: solid; border-width: 1px; padding: 3px; background-color: rgb(255,255,204);"><tt> //loop source<br> al.sourcei(sources.get(0), AL.LOOPING, AL.TRUE);</tt><tt><br> </tt></p> <b>1.8 Sound...<br> </b>There, ready to play the sound, do this using the <tt>sourcePlay </tt>method of the <tt>AL </tt>class. to stop and pause use <tt>sourcePause </tt>and <tt>sourceStop </tt>respectively, and supply the source to affect:<br> <p style="border-style: solid; border-width: 1px; padding: 3px; background-color: rgb(255,255,204);"><tt> //play source 0<br> al.sourcePlay(sources.get(0));<br> <br> //wait 5 secs<br> try {<br> System.out.println("Waiting 5 seconds for sound to complete");<br> Thread.sleep(5000);<br> } catch (InterruptedException inte) {<br> }<br> <br> //stop source 0<br> al.sourceStop(sources.get(0));</tt></p> <b>1.9 Cleaning up<br> </b>Having had loads of fun playing a sound (!), it is now time to do some house chores. We need to clean up what we have created, this amounts to:<br> - deleting source and buffer<br> - deleting context<br> - closing devce<br> as is shown here:<b><br> </b> <p style="border-style: solid; border-width: 1px; padding: 3px; background-color: rgb(255,255,204);"><tt> //delete buffers and sources<br> al.deleteSources(1, Sys.getDirectBufferAddress(sources));<br> al.deleteBuffers(1, Sys.getDirectBufferAddress(buffers));<br> <br> //shutdown<br> alc.makeContextCurrent(null);<br> alc.destroyContext(context);<br> alc.closeDevice(device);</tt></p> There, all set. Now you should be able to play some basic sound!<br> This tutorial is rather short, and the above examples feature no error checking. For the complete source code, look at:<br> <tt>org.lwjgl.openal.BasicTest</tt> in the repository.<br> </body> </html> |
From: Brian M. <ma...@us...> - 2002-12-20 21:23:33
|
Update of /cvsroot/java-game-lib/LWJGL/website/documents/tutorials In directory sc8-pr-cvs1:/tmp/cvs-serv9069/documents/tutorials Added Files: intro.html Log Message: website files --- NEW FILE: intro.html --- CVS Browser: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/java-game-lib/LWJGL/website/documents/tutorials/intro.html <html> <head> <meta http-equiv="Content-Language" content="en-gb"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> <meta name="GENERATOR" content="Microsoft FrontPage 4.0"> <meta name="ProgId" content="FrontPage.Editor.Document"> <title>Lightweight Java Game Library Tutorial Index</title> <style> <!-- .document_title { text-align: Center; font-size: 24pt; letter-spacing: 4 } .code_snippet { font-family: Courier New } --> </style> </head> <body> <p class="document_title">Lightweight Java Game Library</p> <p class="document_title">Tutorial</p> <p align="center">Written by Caspian Rychlik-Prince</p> <p align="center">Please direct comments, errata, and flames to the author at <a href="mailto:ci...@us...">ci...@us...</a></p> <p align="center">Last modified <!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B %Y" startspan -->23 August 2002<!--webbot bot="Timestamp" endspan i-checksum="31308" --> </p> <p> </p> <p><a name="Introduction">1.0 Introduction</a></p> <p>The Lightweight Java Game Library (LWJGL) is a solution aimed directly at professional and amateur Java programmers alike to enable commercial quality games to be written in Java. This tutorial is nonetheless aimed at <i>experienced </i>programmers and won't be explaining some obvious techniques. Currently the LWJGL supports only the Win32 platform, and JDK1.4. </p> <p>LWJGL is not meant to make writing games particularly <i>easy;</i> it is primarily an <i>enabling technology </i>which allows developers to get at resources that are simply otherwise unavailable or poorly implemented on the existing Java platform. We anticipate that the LWJGL will, through evolution and extension, become the foundation for more complete game libraries and "game engines" as they have popularly become known, and hide some of the new evils we have had to expose in the APIs.</p> <p>2.0 Contents</p> <p> </p> <p>3.0 Aims & Design</p> <p>Because the LWJGL API is not meant to be a fully featured game engine it has been ruthlessly pruned of all non-essential code. Its ultimate philosophy is that it provides the <i>bare minimum</i> of API functionality which will let a game programmer produce games in Java without having to write native code in order to get <i>performance </i>or <i>access some hardware feature not exposed by Java 2</i>. We settled on using two other open technologies as our major foundations, namely OpenGL and OpenAL for graphics and sound respectively.</p> <p>A sub-requirement of the LWJGL is that it be freed Java programmers from the requirement to ship a whole JRE with their games. Currently the Sun licensing terms dictate that J2SE be shipped in its entirety, even for the tiniest of demos. As this could easily triple the size of a demo and discourage end users with configuration issues we have made it a primary concern that games written using LWJGL can be compiled into completely standalone native binary executables by compilers such as GNU's GCJ and Excelsior's JET. We have done this by implementing the library in such a way that <i>no dependencies </i>on Sun's proprietry JRE binaries are present in the library.</p> <p>The final aim of LWJGL is to make the library available for Win32 systems above all others, for that is what most commercial programmers need.</p> <p>Linuxians and Macophiles do not despair! There's nothing inherently non-portable about the LWJGL - we just don't have the time and expertise to do it yet. But it will happen.</p> <p>3.1 General API</p> <p>The general API gives us the foundations of game programming: we have a Display class, for initialising the display and querying its available modes; we have a Math class to provide us with some floating point maths functions (rather than the double-precision ones provided by Java), and matrix batch operations; and a Sys class, which gives us our <i>most useful gaming functions:</i> the ability to get the address of a direct byte buffer so we can cache it on the Java side of the JNI barrier, and hence access all those lovely hardware calls we need for performance; and the ability to use the system's <i>hires timer</i>, which is so critical for animation timing. In addition we can also create a direct byte buffer at <i>any address in memory.</i></p> <p>The Evil Of Pointers And What It Means For Security</p> <p>Yes, we have exposed <i>pointers</i> to Java programmers. Yes, you can write to just about any bit of memory you so please, and cause untold havoc. You can break things. You can bypass security constraints and exploit the dreaded <i>buffer vuln.</i></p> <p>But <i>why?</i> Because without pointers, all those nice easy native API calls would suddenly become complex and behave slightly differently to their C counterparts, and require us to pass direct ByteBuffers to JNI for every call. This requires that every single call which takes a pointer calls the JNI method GetDirectBufferAddress every time, which is an unnecessary overhead.</p> <p>The implications for security are simple and final: your game can <b>no longer be considered secure</b> and part of the Java security model. This puts it in exactly the same boat as any other application on the user's system. This also means you will not be able to use it in applets or with Webstart without getting your code signed and trusted. LWJGL itself will not be signed nor trusted; you are expected to deliver it bundled in with every application you ship and verify that your entire distribution is safe.</p> <p>We feel that our target developer, the commercial game developer, should not be concerned with this issue as the status quo is merely maintained from the old ways of programming with any other language; and used wisely, your exposure to pointers is unlikely to cause you any problems.</p> <p>If you are concerned about security, or wish to write games which will run as applets or from Webstart, or would rather have a full game library which takes care of things for you, you don't want to use LWJGL at all - it's that simple! What you need is Sun's Java Gaming Profile, or Java3D. If you feel a need to argue, you're using LWJGL for the wrong reasons.</p> <p>3.2 Graphics</p> <p>Graphics is based on the latest OpenGL1.4, and all the extensions we could implement that might be vaguely useful for games programmers. These include <i>all</i> of Nvidia's and ATI's proprietry extensions, and <i>all</i> the ARB extensions, and most of the EXT extensions, as well as numerous other miscellaneous ones.</p> <p>For Windows programmers, our primary target, the WGL extensions are present.</p> <p>All OpenGL functions that take pointers are passed ints. These pointers can be obtained from direct ByteBuffers using the Sys.getDirectBufferAddress() method. There are a very few native methods that return pointers as ints as well. Be sure to read the caveat about using pointers in Java!</p> <p>3.3 Sounds</p> <p>Sound is based on the latest OpenAL1.0 specification, which comes with but one extension, EAX, for interesting environmental effects. The LWJGL binary distribution includes the OpenAL .dlls for Win32.</p> <p>3.4 Input</p> <p>Input can be a complicated topic. A user can have all sorts of strange fancy force-feedback hardware installed on their systems, with scrolly knobs and twistgrips and bristling with many buttons. However, the vast majority of gamers have just a keyboard and a mouse; some of them have analogue joysticks too, and some of them have a gamepad attached from some console or other. For our first cut of the input library we've just kept it all rather simple, and decided that there is but one of each of these devices, and that force feedback and multiple potentiometers is a feature we may add another time.</p> <p>So in the interests of keeping things simple, the four input classes - Keyboard, Mouse, Gamepad and Joystick - are all static, and can all be polled once per game loop iteration to determine where they've moved since you last looked and what buttons are down at the time. The Gamepad and Keyboard may additionally support <i>buffering</i> which is a more reliable way of detecting rapid changes of state which may occur rather more quickly than your framerate.</p> <p>3.5 Maths</p> <p>Java's maths performance leaves much to be desired, particularly with respect to bulk operations for 3D rendering engines. The main problem is that the existing maths libraries use double precision when single precision is entirely adequate for most realtime games programming; and that no clever processor-specific optimisations can be done because the Hotspot compiler is simply not supplied enough semantic context to understand that it could use some special SIMD instruction to achieve the effect you desire in a fraction of the cycles. Furthermore, all maths in Java is done in Java - and once you've computed the results you usually have to subsequently copy them into a buffer to pass to a native rendering method in OpenGL anyway.</p> <p>The Math class provides two <i>totally generic</i> vector operators for unary and binary vector operations performed on direct ByteBuffers containing packed floating point vectors. The idea is to set up the source(s) of the operations and then perform a single call to JNI to perform a <i>highly optimised operation</i> on the whole lot in one go. The JNI code is specially optimised for the common cases in 3d games programming to use processor-specific instructions and take advantage, where feasible, of memory caching architecture. And the end result is placed directly back in memory, ready to simply send as a pointer direct to OpenGL or some other API.</p> <p>In addition we provide implementations of common Vector and Matrix sizes similar to those provided by the javax.vecmath package, but ours are <i>open source</i> and available without downloading the whole of Java3D.</p> <p> </p> </body> </html> |
From: Brian M. <ma...@us...> - 2002-12-20 21:23:33
|
Update of /cvsroot/java-game-lib/LWJGL/website/documents In directory sc8-pr-cvs1:/tmp/cvs-serv9069/documents Added Files: credits.html index.html license.html links.html openal_c-to-java.html readme.html Log Message: website files --- NEW FILE: credits.html --- CVS Browser: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/java-game-lib/LWJGL/website/documents/credits.html <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>lwjgl</title> <meta http-equiv="content-type" content="text/html; charset=windows-1252"> <style type="text/css"> <!-- A:link { color: #003399; text-decoration: none; } A:visited { color: #003399; text-decoration: none; } A:hover { color: #953206; text-decoration: underline; } --> </style> </head> <body> <font face="Fixedsys"> <p> The following people have helped to make this project what it is today:<br> - Caspian Rychlik-Prince <<a href="mailto:cp...@sh...">cp...@sh...</a>><br> - Brian Matzon <<a href="mailto:br...@ma...">br...@ma...</a>><br> - Niels Jørgensen <<a href="mailto:nj...@ni...">nj...@ni...</a>><br> - Tristan Campbell <<a href="mailto:tr...@ha...">tr...@ha...</a>><br> </p> <p> additional credits goes to:<br> - Joseph I. Valenzuela [OpenAL]<br> - Lev Povalahev [OpenGL Extensions]<br> </p> </font> </body> </html> --- NEW FILE: index.html --- CVS Browser: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/java-game-lib/LWJGL/website/documents/index.html <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>lwjgl</title> <meta http-equiv="content-type" content="text/html; charset=windows-1252"> <style type="text/css"> <!-- A:link { color: #003399; text-decoration: none; } A:visited { color: #003399; text-decoration: none; } A:hover { color: #953206; text-decoration: underline; } --> </style> </head> <body> <table border="0" cellspacing="0" cellpadding="0" width="100%" height="100%"> <tr> <td align="center" valign="middle"> <div align="center"> <a href="../index.html"> <img src="../images/logo.png" alt="lwjgl logo" width="225" height="62" title="Welcome to the lwjgl website!" border="0"></a><br> <table cellpadding="2" cellspacing="2" border="0" width="500" align="center"> <tr> <td colspan="4" valign="top" width="100%" align="left"> <img name="miscellaneous" border="0" src="../images/miscellaneous.png" width="151" height="35" alt="miscellaneous documents"></td> </tr> <tr> <td colspan="4" align="left"> <img border="0" src="../images/bullet.png" align="center" width="22" height="15" hspace="5" vspace="5" alt="bullet"><font face="Fixedsys" size="2"><a href="readme.html">project readme</a></font><br> <img border="0" src="../images/bullet.png" align="center" width="22" height="15" hspace="5" vspace="5" alt="bullet"><font face="Fixedsys" size="2"><a href="credits.html">project credits</a></font><br> <img border="0" src="../images/bullet.png" align="center" width="22" height="15" hspace="5" vspace="5" alt="bullet"><font face="Fixedsys" size="2"><a href="license.html">project license</a></font><br> </td> </tr> <tr> <td colspan="4"> </td> </tr> <tr> <td colspan="4" valign="top" width="100%" align="left"> <img name="lwjgl" border="0" src="../images/lwjgl.png" width="61" height="35" alt="lwjgl documents"></td> </tr> <tr> <td colspan="4" align="left"> <img border="0" src="../images/bullet.png" align="center" width="22" height="15" hspace="5" vspace="5" alt="bullet"><font face="Fixedsys" size="2"><a href="tutorials/intro.html">intro</a> (info about lwjgl)</font><br> <img border="0" src="../images/bullet.png" align="center" width="22" height="15" hspace="5" vspace="5" alt="bullet"><font face="Fixedsys" size="2"><a href="javadoc/">javadoc</a> (javadoc java source files)</font> <br> <img border="0" src="../images/bullet.png" align="center" width="22" height="15" hspace="5" vspace="5" alt="bullet"><font face="Fixedsys" size="2"><a href="openal_c-to-java.html">gl/al conversion document</a> (typical array conversion)</font></td> </tr> <tr> <td colspan="4"> </td> </tr> <tr> <td colspan="4" valign="top" width="100%" align="left"> <img name="opengl" border="0" src="../images/opengl.png" width="73" height="35" alt="opengl documents"></td> </tr> <tr> <td colspan="4" align="left"> <img border="0" src="../images/bullet.png" align="center" width="22" height="15" hspace="5" vspace="5" alt="bullet"><font face="Fixedsys" size="2"><a href="tutorials/opengl/skeleton_code.html">skeleton_code</a></font></td> </tr> <tr> <td colspan="4"> </td> </tr> <tr> <td colspan="4" valign="top" width="100%" align="left"> <img name="openal" border="0" src="../images/openal.png" width="73" height="35" alt="openal documents"></td> </tr> <tr> <td colspan="4" align="left"> <img border="0" src="../images/bullet.png" align="center" width="22" height="15" hspace="5" vspace="5" alt="bullet"><font face="Fixedsys" size="2"><a href="tutorials/openal/openal_basics.html">openal basics</a></font></td> </tr> <tr> <td colspan="4"> </td> </tr> <tr> <td colspan="4" valign="top" width="100%" align="left"> <img name="openal" border="0" src="../images/input.png" width="61" height="35" alt="input documents"></td> </tr> <tr> <td colspan="4" align="left"> <img border="0" src="../images/bullet.png" align="center" width="22" height="15" hspace="5" vspace="5" alt="bullet"><font face="Fixedsys" size="2">no documents yet</font></td> </tr> <tr> <td colspan="4"> </td> </tr> <tr> <td colspan="4" valign="top" width="100%" align="left"> <img name="openal" border="0" src="../images/vector.png" width="73" height="35" alt="vector documents"></td> </tr> <tr> <td colspan="4" align="left"> <img border="0" src="../images/bullet.png" align="center" width="22" height="15" hspace="5" vspace="5" alt="bullet"><font face="Fixedsys" size="2">no documents yet</font></td> </tr> <tr> <td colspan="4"> </td> </tr> <tr> <td colspan="4" align="center"> <a href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=58488&type=1" width="88" height="31" border="0" alt="SourceForge.net Logo" title=""></a><br> <font face="Fixedsys" color="#C0C0C0" size="1">this site and its content is © <a href="mailto:ma...@us...?subject=[LWJGL] ">lwjgl.org</a></font><br> </td> </tr> </table> </div> </td> </tr> </table> </body> </html> --- NEW FILE: license.html --- CVS Browser: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/java-game-lib/LWJGL/website/documents/license.html <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>lwjgl</title> <meta http-equiv="content-type" content="text/html; charset=windows-1252"> <style type="text/css"> <!-- A:link { color: #003399; text-decoration: none; } A:visited { color: #003399; text-decoration: none; } A:hover { color: #953206; text-decoration: underline; } --> </style> </head> <body> <font face="Fixedsys"> /* <br> * Copyright (c) 2002 Light Weight Java Game Library Project<br> * All rights reserved.<br> * <br> * Redistribution and use in source and binary forms, with or without<br> * modification, are permitted provided that the following conditions are<br> * met:<br> * <br> * * Redistributions of source code must retain the above copyright <br> * notice, this list of conditions and the following disclaimer.<br> *<br> * * Redistributions in binary form must reproduce the above copyright<br> * notice, this list of conditions and the following disclaimer in the<br> * documentation and/or other materials provided with the distribution.<br> *<br> * * Neither the name of 'Light Weight Java Game Library' nor the names of <br> * its contributors may be used to endorse or promote products derived <br> * from this software without specific prior written permission.<br> * <br> * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS<br> * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED<br> * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR<br> * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR <br> * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,<br> * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, <br> * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR <br> * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF<br> * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING <br> * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS<br> * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.<br> */</font><font face="Courier New"><br> </font> </body> </html> --- NEW FILE: links.html --- CVS Browser: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/java-game-lib/LWJGL/website/documents/links.html <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>lwjgl</title> <meta http-equiv="content-type" content="text/html; charset=windows-1252"> <style type="text/css"> <!-- A:link { color: #003399; text-decoration: none; } A:visited { color: #003399; text-decoration: none; } A:hover { color: #953206; text-decoration: underline; } --> </style> </head> <body> <font face="Fixedsys"> <p> The following list of links are sites that either relate to our effort, or we just think are cool:<br><br> - <a href="http://www.javagaming.org/" target="blank">http://www.javagaming.org/</a><br> Site related to Java gamming <br> <br> - <a href="http://sourceforge.net/projects/spgl/" target="blank">http://sourceforge.net/projects/spgl/</a><br> Game library building on top of lwjgl <br> <br> - <a href="http://www.hardcode.de/jxinput/" target="blank">http://www.hardcode.de/jxinput/</a><br> More feature complete input support for java <br> <br> </font> </body> </html> --- NEW FILE: openal_c-to-java.html --- CVS Browser: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/java-game-lib/LWJGL/website/documents/openal_c-to-java.html <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>OpenAL Tutoral</title> <meta http-equiv="content-type" content="text/html; charset=windows-1252"> <meta name="author" content="Brian Matzon"> <meta name="description" content="Basic sound using OpenAL"> </head> <body> <h1 align="center">Array Conversion<br> <font size="-1">(by Brian Matzon <<a href="mailto:br...@ma...">br...@ma...</a>>)</font><br> </h1> <b>1.0 About this document</b><br> This document describes the typical rules for converting arrays often used in C/C++ OpenAL (and indeed OpenGL too) code.<br> It is not bullet proof, but should handle most cases.<br> <br> <b>1.1 Array to ByteBuffer<br> </b>When using an array of some data type in C/C++ you will typically convert that<br> to the corresponding ByteBuffer type. ie:<p style="border-style: solid; border-width: 1px; padding: 3px; background-color: rgb(255,255,204);"><tt>ALfloat floatv[3];</tt></p> <p>becomes</p> <p style="border-style: solid; border-width: 1px; padding: 3px; background-color: rgb(255,255,204);"><tt> FloatBuffer floatv = createFloatBuffer(3);</tt></p> <p>In this example, <tt>createFloatBuffer</tt> is this utility method:</p> <p style="border-style: solid; border-width: 1px; padding: 3px; background-color: rgb(255,255,204);"><tt> public FloatBuffer createFloatBuffer(int size) {<br> //allocate bytebuffer, using 4 bytes per float<br> ByteBuffer temp = ByteBuffer.allocateDirect(4*size);<br> temp.order(ByteOrder.nativeOrder());<br> <br> return temp.asFloatBuffer();<br> }</tt></p> <p> <b>1.2 Examples</b><br> Using the above FloatBuffer, you would typically use it like this (examples taken from altest.c/ALTest.java):</p> <p> <b>1.2.1 Example 1</b></p> <p style="border-style: solid; border-width: 1px; padding: 3px; background-color: rgb(255,255,204);"><tt> alGetListenerfv(AL_POSITION, floatv);</tt></p> <p> becomes</p> <p style="border-style: solid; border-width: 1px; padding: 3px; background-color: rgb(255,255,204);"><tt> al.getListenerfv(AL.POSITION, Sys.getDirectBufferAddress(floatv));</tt></p> <p><b>1.2.2 Example 2</b></p> <p style="border-style: solid; border-width: 1px; padding: 3px; background-color: rgb(255,255,204);"><tt> if (floatv[0] != 100.0)) {</tt></p> <p>becomes:</p> <p style="border-style: solid; border-width: 1px; padding: 3px; background-color: rgb(255,255,204);"><tt> if (floatv.get(0) != 100.0f) {</tt></p> <p><b>1.2.3 Example 3</b></p> <p style="border-style: solid; border-width: 1px; padding: 3px; background-color: rgb(255,255,204);"><tt> alGetListener3f(AL_POSITION, &floatv[0], <br> &floatv[1], <br> &floatv[2]);</tt></p> <p>becomes</p> <p style="border-style: solid; border-width: 1px; padding: 3px; background-color: rgb(255,255,204);"><tt> al.getListener3f(AL.POSITION, Sys.getDirectBufferAddress(floatv), <br> Sys.getDirectBufferAddress(floatv) + 4, <br> Sys.getDirectBufferAddress(floatv) + 8);</tt></p> <p>the last case is a bit special, since we start of by getting the base address of the buffer, and then add the datatype size to the base address<br> to get the address of that specific index. This is just how it has to be in Java.</p> </body> </html> --- NEW FILE: readme.html --- CVS Browser: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/java-game-lib/LWJGL/website/documents/readme.html <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>lwjgl</title> <meta http-equiv="content-type" content="text/html; charset=windows-1252"> <style type="text/css"> <!-- A:link { color: #003399; text-decoration: none; } A:visited { color: #003399; text-decoration: none; } A:hover { color: #953206; text-decoration: underline; } --> </style> </head> <body> <font face="Fixedsys"> <p> This is the official readme file for lwjgl, and is pretty much empty right now :/ </p> <p> Unless otherwise stated, all files distributed or in CVS are covered by <br> the license as stated in the <a href="license.html">LICENSE</a> file. If you have not received this <br> file, please download it from the <a href="http://sourceforge.net/cvs/?group_id=58488">cvs server</a>. </p> <p> Project Webpage: <a href="http://java-game-lib.sourceforge.net/"> http://java-game-lib.sourceforge.net/</a></p> </font> </body> </html> |
From: Brian M. <ma...@us...> - 2002-12-20 21:23:33
|
Update of /cvsroot/java-game-lib/LWJGL/website In directory sc8-pr-cvs1:/tmp/cvs-serv9069 Added Files: index.html Log Message: website files --- NEW FILE: index.html --- CVS Browser: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/java-game-lib/LWJGL/website/index.html <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>lwjgl</title> <meta http-equiv="content-type" content="text/html; charset=windows-1252"> <style type="text/css"> <!-- A:link { color: #003399; text-decoration: none; } A:visited { color: #003399; text-decoration: none; } A:hover { color: #953206; text-decoration: underline; } --> </style> </head> <script language="javascript" type="text/javascript"> <!-- hide script from old browsers var preloadedimages = new Array(); function preloadimages() { for (i=0; i<preloadimages.arguments.length; i++) { preloadedimages[i] = new Image(); preloadedimages[i].src = preloadimages.arguments[i]; //alert("loaded:" + preloadedimages[i].src); } } //mouse over function mouseOver(image, index, status) { if(document.images) { document.images[image].src = preloadedimages[index].src; document.images[image].title = status; } window.status=status; return true; } //mouse out function mouseOut(image, index) { if(document.images) { document.images[image].src = preloadedimages[index].src; } window.status=""; return true; } preloadimages( "images/download.png", "images/download_selected.png", "images/documents.png", "images/documents_selected.png", "images/cvs.png", "images/cvs_selected.png", "images/sourceforge.png", "images/sourceforge_selected.png", "images/discussion.png", "images/discussion_selected.png", "images/links.png", "images/links_selected.png"); //end hiding --> </script> <body> <table border="0" cellspacing="0" cellpadding="0" width="100%" height="100%"> <tr> <td align="center" valign="middle"> <div align="center"> <img src="images/logo.png" alt="lwjgl logo" width="225" height="62" title="Welcome to the lwjgl website!"><br> <table cellpadding="2" cellspacing="2" border="0" width="500" align="center"> <tr> <td valign="top" width="25%" align="center"> <a href="http://sourceforge.net/project/showfiles.php?group_id=58488" onmouseover="mouseOver('download', 1, 'Download lwjgl');" onmouseout="mouseOut('download', 0);"> <img name="download" border="0" src="images/download.png" width="95" height="35" alt="download link"> </a> </td> <td valign="top" width="25%" align="center"> <a href="documents/" onmouseover="mouseOver('documents', 3, 'Read project documents');" onmouseout="mouseOut('documents', 2);"> <img name="documents" border="0" src="images/documents.png" width="105" height="35" alt="tutorials link"> </a> </td> <td valign="top" width="25%" align="center"> <a href="http://sourceforge.net/cvs/?group_id=58488" onmouseover="mouseOver('cvs', 5, 'Access CVS server');" onmouseout="mouseOut('cvs', 4);"> <img name="cvs" border="0" src="images/cvs.png" width="38" height="35" alt="cvs link"> </a> </td> <td valign="top" width="25%" align="center"> <a href="http://sourceforge.net/projects/java-game-lib" onmouseover="mouseOver('sourceforge', 7, 'Continue to the lwjgl sourceforge site');" onmouseout="mouseOut('sourceforge', 6);"> <img name="sourceforge" border="0" src="images/sourceforge.png" width="128" height="35" alt="sourceforge link"> </a> </td> <td valign="top" width="25%" align="center"> <a href="http://sourceforge.net/forum/?group_id=58488" onmouseover="mouseOver('discussion', 9, 'Continue to the sourceforge discussion forum');" onmouseout="mouseOut('discussion', 8);"> <img name="discussion" border="0" src="images/discussion.png" width="117" height="35" alt="discussions link"> </a> </td> <td valign="top" width="25%" align="center"> <a href="documents/links.html" onmouseover="mouseOver('links', 11, 'Links to projects that relate to our effort, or we think are cool');" onmouseout="mouseOut('links', 10);"> <img name="links" border="0" src="images/links.png" width="61" height="35" alt="links link"> </a> </td> </tr> <tr> <td colspan="5" align="center"> <p> </p> <p> </p> </td> </tr> <tr> <td colspan="5" align="center"> <a href="http://sourceforge.net"><img src="http://sourceforge.net/sflogo.php?group_id=58488&type=1" width="88" height="31" border="0" alt="SourceForge.net Logo" title=""></a><br> <font face="Fixedsys" size="1" color="#C0C0C0">this site and its content is © <a href="mailto:ma...@us...?subject=[LWJGL] ">lwjgl.org</a></font><br> </td> </tr> </table> </div> </td> </tr> </table> </body> </html> |
From: Brian M. <ma...@us...> - 2002-12-20 21:22:51
|
Update of /cvsroot/java-game-lib/LWJGL/website/documents/tutorials/openal In directory sc8-pr-cvs1:/tmp/cvs-serv8929/openal Log Message: Directory /cvsroot/java-game-lib/LWJGL/website/documents/tutorials/openal added to the repository |
From: Brian M. <ma...@us...> - 2002-12-20 21:22:40
|
Update of /cvsroot/java-game-lib/LWJGL/website/documents/tutorials/opengl In directory sc8-pr-cvs1:/tmp/cvs-serv8873/opengl Log Message: Directory /cvsroot/java-game-lib/LWJGL/website/documents/tutorials/opengl added to the repository |
From: Brian M. <ma...@us...> - 2002-12-20 21:22:18
|
Update of /cvsroot/java-game-lib/LWJGL/website/documents/tutorials In directory sc8-pr-cvs1:/tmp/cvs-serv8780/tutorials Log Message: Directory /cvsroot/java-game-lib/LWJGL/website/documents/tutorials added to the repository |
From: Brian M. <ma...@us...> - 2002-12-20 21:21:34
|
Update of /cvsroot/java-game-lib/LWJGL/website/images In directory sc8-pr-cvs1:/tmp/cvs-serv8598/images Log Message: Directory /cvsroot/java-game-lib/LWJGL/website/images added to the repository |
From: Brian M. <ma...@us...> - 2002-12-20 21:21:24
|
Update of /cvsroot/java-game-lib/LWJGL/website/documents In directory sc8-pr-cvs1:/tmp/cvs-serv8559/documents Log Message: Directory /cvsroot/java-game-lib/LWJGL/website/documents added to the repository |
From: Brian M. <ma...@us...> - 2002-12-20 21:21:01
|
Update of /cvsroot/java-game-lib/LWJGL/content In directory sc8-pr-cvs1:/tmp/cvs-serv8435 Added Files: bullet.psd linkbar.psd logo.psd miscellaneous.psd tutorialsbar.psd Log Message: website files --- NEW FILE: bullet.psd --- CVS Browser: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/java-game-lib/LWJGL/content/bullet.psd 8BPS <?adobe-xap-filters esc="CR"?> <x:xapmeta xmlns:x='adobe:ns:meta/' x:xaptk='XMP toolkit 2.8.2-33, framework 1.5'> <rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'> <rdf:Description about='uuid:d1e8cd26-c0df-11d6-93f1-8caac778c2ef' xmlns:xapMM='http://ns.adobe.com/xap/1.0/mm/'> <xapMM:DocumentID>adobe:docid:photoshop:d1e8cd23-c0df-11d6-93f1-8caac778c2ef</xapMM:DocumentID> </rdf:Description> </rdf:RDF> </x:xapmeta> <?xpacket end='w'?> ESliceType leftOutsetlong ESliceType leftOutsetlong ESliceType leftOutsetlong ESliceType leftOutsetlong ESliceType leftOutsetlong ESliceType leftOutsetlong ÿÀ fileFormatenum FileFormat NativeQuad interlacedbool fileFormatenum FileFormat NativeQuad interlacedbool Background 8BIMnormÿ useTexturebool EngineDatatdta 00000ÿÿÿÿ ÿ;ÿ[ÿå) /Keep (þÿ %) /Hanging (þÿ 0000ÿÿ;ÿ[) /Keep (þÿ %) /Hanging (þÿ warpRotateenum --- NEW FILE: linkbar.psd --- CVS Browser: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/java-game-lib/LWJGL/content/linkbar.psd 8BPS <?adobe-xap-filters esc="CR"?> <x:xapmeta xmlns:x='adobe:ns:meta/' x:xaptk='XMP toolkit 2.8.2-33, framework 1.5'> <rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'> <rdf:Description about='uuid:4565206a-fd72-11d6-9502-be0fa496cb02' xmlns:xapMM='http://ns.adobe.com/xap/1.0/mm/'> <xapMM:DocumentID>adobe:docid:photoshop:45652061-fd72-11d6-9502-be0fa496cb02</xapMM:DocumentID> </rdf:Description> </rdf:RDF> </x:xapmeta> <?xpacket end='w'?> ESliceType leftOutsetlong ESliceType leftOutsetlong ESliceType leftOutsetlong ESliceType leftOutsetlong ESliceType leftOutsetlong ESliceType leftOutsetlong ESliceType leftOutsetlong ESliceType leftOutsetlong ESliceType leftOutsetlong ESliceType leftOutsetlong ESliceType leftOutsetlong ESliceType leftOutsetlong ColorTable autoReducebool interlacedbool fileFormatenum FileFormat zonedLossyObjc NativeQuad interlacedbool fileFormatenum FileFormat NativeQuad interlacedbool fileFormatenum FileFormat NativeQuad interlacedbool fileFormatenum FileFormat NativeQuad interlacedbool fileFormatenum FileFormat NativeQuad interlacedbool fileFormatenum FileFormat NativeQuad Background useTexturebool EngineDatatdta 00000ÿÿÿÿ ÿ;ÿ[ÿå) /Keep (þÿ %) /Hanging (þÿ 0000ÿÿ;ÿ[) /Keep (þÿ %) /Hanging (þÿ warpRotateenum useTexturebool EngineDatatdta 00000ÿÿÿÿ ÿ;ÿ[ÿå) /Keep (þÿ %) /Hanging (þÿ 0000ÿÿ;ÿ[) /Keep (þÿ %) /Hanging (þÿ warpRotateenum useTexturebool EngineDatatdta 00000ÿÿÿÿ ÿ;ÿ[ÿå) /Keep (þÿ %) /Hanging (þÿ 0000ÿÿ;ÿ[) /Keep (þÿ %) /Hanging (þÿ warpRotateenum useTexturebool EngineDatatdta 00000ÿÿÿÿ ÿ;ÿ[ÿå) /Keep (þÿ %) /Hanging (þÿ 0000ÿÿ;ÿ[) /Keep (þÿ %) /Hanging (þÿ warpRotateenum useTexturebool EngineDatatdta 00000ÿÿÿÿ ÿ;ÿ[ÿå) /Keep (þÿ %) /Hanging (þÿ 0000ÿÿ;ÿ[) /Keep (þÿ %) /Hanging (þÿ warpRotateenum discussion useTexturebool EngineDatatdta 00000ÿÿÿÿ ÿ;ÿ[ÿå) /Keep (þÿ %) /Hanging (þÿ 0000ÿÿ;ÿ[) /Keep (þÿ %) /Hanging (þÿ warpRotateenum » ¡POORVþûüþþþÿ Åøõ÷úüþ÷ÿQUþýýþþÿÿáÿäÿ !^ý÷øúûþãÿ¨aa7+,ÿòõøûýþçÿ Å&'û÷øúüþöÿôÿWý÷øúûþÀÿ Âù÷øûýþâÿÿÿÓ%`abcÔõõøûýþ½ÿ\ý÷øúý§`aÕïìïôùýæÿâÿ ]^öëíòöûþÕÿ¢SS&!ÿòõøûýþþ¢Ya×ïìïôùý÷ÿPÿ÷÷ùûý ýc./ÿåéðöûþçÿ Ä&'õìïôøüþ÷ÿôÿ[úìï÷ýþÀÿ Åúúûùùýâÿÿ ÿ]#%ÿúùøîéíòûþ¼ÿ\úìôüýýüúîáâçïõûæÿãÿ þýûõæàäëòùþÕÿÿþýY%-ÿåéðöüÿÿþüúîáâçïøþ÷ÿRÿìóüýý ÿÎ̿޾ ÔçPÿ¦ÿ Lôå¿¶æN ÿпɡ²ÈÞñü÷ÿûÿjþ7QÕÓÿ²ä¶Üic·Ñç£ÿ¦ÿabéл|xÙßõoJ_ÿÐÛÉÐѼuäÏÿÇãâÐÃÄž©ÿRjèÍÃá¼®Û§IeÙËËÒÐÔäðñëâÚÿlwîÍÚçòúþòÿ&þ ÀÓèSRêÜï¿2SS%DÀÚ¦±ÙÜÝÛÖÀÕÔáíöüíÿDþúõíãÚÿ"![îÙÂÓç^$$ÿ¦ÿZèÐþèYÿ¥°¿ÍéÃÒè[Y êäÁÐÉÆ¾©¶<ïWÿ¡´ÉôTÿÐÄ""ÎÑ Ä¹£»ÉßÂÓç\! ÿ¡ÿ[çÊÆÅ§µÈÚëøþòÿ3þ ¾ÓÿOäµÝå ¾ÏÑ¿ÐâóðéÞÖ ¾ÕòKÿÑÏNMæì ¾Òÿÿ ?N秸ØÛÝÚêN ÿÊÖêéåÝÖ ¾ÕÔìóÿ NèÎÅÅê ¾ÓÿNæ¾¾ ÎæNÿ¦±ÆÚìùìÿ(þ_EnÿÎÌ¿Ôêúú=kÜÏÑ¿Ðÿ:`éÍÇÞ¼èqÿìÓ¢Ë˹ÔääàÚÿmyîÍÚçòúþÿáÿëÿ_ý¼jkLäªÞ K,,ס¦éK ÿ¾³áLÿ¾ ̾½'×ÖÞJ++סÜ))K ¾¯ÃJl Ê£³ÈÞñü÷ÿûÿjýÈ`¬ÄÉ¢½äªï¿rÄɤ®Ôסڻ¿hµèàë·nÂǼ ÒÌÎÆçç×ÐÎ æòÔ¥¾ÕÕÓÖ¿¬ÿbz¨çËÊ亪ÉÒ°l°À¹±ÍâîÅ£°¼±ÓÓÂÑáîøþòÿý½k m MæÝÞíL nÅ¢Üü MÞÅËÚéôûíÿ<þ¾Y¤ÓÈàW<<סÚ99XºæVÿ©¸ÊÙéÀquV¡æâßVþ¥¿¬¹/ðSÿ¥¸Íé Sww¹Îö¥³ÅÕãàW:ÿØ99ýÓ©¸ÊÝìøþòÿ3ý¼jk Kä«ÞHjáÌñJÞÅÜIkj½ãè½jkÿ Kå®Þüÿ)4à¿êJÞÅß(½Òß½jk Jĺ½ÍåJÿ¡¬ÂÖêøîÿ*ÁJaÉÅÇ××âfX»ÈÂáÌÿUt©èËÍâºç£ÿè¡ÆÐÌÌ¡ ¤°½±ÓÓÂÑáîøþÿáÿëÿüõ¼þÿHä®ÿüHä ¦éGÿ¼±áHÿ¯¼ÌÐýþGìËÜÿýHä ®ìGþÿ¼ÍûÊ¢²ÈÞñü÷ÿûÿjüõÒs¤²Æä®ÿ¡ªÃä ªéÿÕÚß뺩¯±ÙÊÌΧé±ÃÅÑ ¨éªÿ¬¯°¯©¸ä§µÿq±çÌϣ溨¶Ñÿwy¶êò3@YuÕѹÊÜë÷þòÿüõ¼âÔÞÝÙã¼Â£ÿû ÿµ³ÂÔäòûþîÿþ ѸÈÿVä ªéSý$Á¶åSÿ °ÂÖæíí¿âÔÝâÿVä§µÂ0òPÿ«¿ÔàîÁ·ÎÁ¸«½Ñâììÿÿ¥èSþÿ¤±ÁÑâïùþòÿüõ¼ýG丼þÿÆÿþþÿµ³½Þþ ¼ÚØßå¼ÿG丼ûGè°¶ÿûÿµ³ïFþÿÿÛÎã¼þʹ¼ÍæGÿ¡ª¿Ôéøîÿ*#7] ¦«ìÚÉ,7U§¤ÿÆÿo²èÌÒ åºæ¯ÿ¬è¦ ÍÎÙ°GH[wÕѹÊÜë÷þÿáÿëÿýóóûÿ交Üüÿ彤«Ììÿÿ×ÔÿÿÒ¶âÿÿÓ×ÿÿÚ©¯áúÿæÌÇÔïüÿ彤ÐîûÿЫÜûÿÖ ¤´Ëßòü÷ÿûÿýóóûÿ交Üüÿ彤ªÊëüÿäË×ÝÜëûÿÖ ¦ÛÿÿÚÕÿÿÖÐüÿåôÃéÿÿìÅ©ÙÿÿÚ¤«¹ÃèüÿæÖå÷ûÿÝ®ª´Å×èõýòÿýóóüÿáÈÑÜÞÚÓæÿÿשáúÿܨ®¼ÏàïúþîÿþýûÿÝ®ª³»åüÿ彤ªÊëûÿÖ¿èÿÿÚ¢§¹Íáñ÷ïòüÿáÈÑÛÜíüÿåôÃÑåôÿÿÜ¢´ÇÛæçïüÿס¬Ýÿÿܤ¦´ÈÛìõòôýÿPÿ ÅéüÿÙ±¿ÎÝéôûñÿýóóûÿäº ÝùÿÞÂîúÿܨ®¸ÃäüÿãÉÕÝÛìýÿÿÿäºÜûÿéÄ©±åúÿܨ®ÒñúÿÚ¼Ê×îüÿ×£¤ÜÿÿܬÁçÿÿÙ¤ÂÕéøæÿæÌÈñùÿÞÂìÿÿîÇ©ÙÿÿÚ¤Ãèÿÿ×ÐÿÿÕ¬½èûÿÝ®ª´Å×èõýÿáÿëÿ(ýõæÔ²§¢¤«³¶¶°¨£¡¡£ª´¿ÂÁ¶© ¡¡¢¡¤§þ3¬°ºÈÒÓÈ·¥¡³ÅÓ×ѳ¨£¡¡£ª´¿Ã»¯¢¢®´¶²«¤¡ ©¹Îâòü÷ÿûÿJýõæÔ²§¢¤«³¶¶°¨£¡¡£ª³»¼»³¬ª°¹ÅÑØÙÑȹ¤¡ ¦±²¤¡¤¦¤©¥¦°¿ÎÕÔËÁ³¬ªþ¬³¿ÉÎË´³¿ÎÝçéåÝÓÆ¹¯ªª³Ä×çõýòÿ'ýõæÔ²ªµ¿ËÖÜÜ×Í¿°¥ §³ÂÐÙÛ×Í¿³«©¼ÎàïúþîÿDþûõìàÔÆ¹¯ªª²¼ÂÁ¼²¨£¡¡£ª³»¼»³ª£¡§°°¬²Ä×éøüõæÔ²ªµ¿ËÕÙÖÌ¿®£¡¦°¿ÎÛ;ãàÔÅ´ª®¿ÑãîìÞλ¤¢¡£§¯´·¶²°¿ÑäôûøðãÕÉèLÿ¬±³¬¤¤¼ËÙæðøýñÿ3ýõæÔ²§¢¤±ÃÏÔ˼ª ®ÁÔâçãØÍ¿³«©¸Á¿¶©¯·ÂÎ×ÙÔ˽±§7¢¤°ÀËÓÒɼ°ª©°¾ÍÖÚ×Í¿³«©»ËØÝÖų¡¥·ÈÕ×ο±§£¡¢¤«²¶¶³®¬þª¬´ÇÙìùïÿþýùïàË·¥¡³ÆÙçëàϼª ®ÁÎÔ㬪þ¬þ°¨¡£¼ÈÔÚÙÒÆ¹¯ªª³Ä×çõýÿáÿëÿ(þøìÝ̼°ª¥¤¥¶¿Â¼³¬¨©¬¶ÁÌÏΟ§¦§«®±±³°²´þ¸3·»ÂÎÔÒȹª¢§¶ÅÓÚ×Ë¿³¬¨©¬¶ÀÊÍ˶ª¡¤®¹À¾·©¤¤§²ÂÔæõý÷ÿûÿJþøìÝ̼°ª¥¤¥¶¿Â¼³¬¨©¬¶¿ÈÊÈ¿¶°²·ÁËÖÚ×П©¤¤§¯¶»¼¹²°´¶¶¹µ©ª©§§ª°¹ÆÕÝÝÔ˾·¶þ¸·½ÈÒ×ÕÌ¿¶¸¿Ë×âæäÝÕɽ´°°ºÊÛê÷ýòÿ'þøìÝ̼³±µ¼ÆÑÚàßÙ̾³¬´ÁÏÛààÚÏ·°¯´ÂÔãòûþîÿDþûõíâÖɽ´°°¹ÄËËȾ³¬¨©¬¶¿ÈÊÈ¿¶¬§¤¤©°·º»¹¹¾ÎÝîùþøìÝ̼³±µ¼ÆÑØÙÔʼ°°¹ÆÕã!éçÝÐÁ¹½ÍÝìõôçØÇ¹ª©«°ºÁþ¹¼ÉÙéöýîþ¼ÿ½9I᯹½¹³¬¯¶ÃÒàìõûþñÿ3þøìÝ̼°ª¥¤¥¹ÈÑÔ˽£¤±ÂÑàåâÚÏ·°¯´¿ÉËʸ±²¶¿ÉÔÙØÒȼ°7ª¥¤¥¹ÇÑ×ÔË¿µ°°·ÄÑÚÝØÏ·°¯´ÁÎÚÜÔŶ§¢ª¹ÈÖÙÔȼ°«©ª·¾Â¿º·þ¸¶·¿ÎÞîúïÿþû÷íÝ˹ª¢§¶ÅÖãæÝν£¤±ÂÎÕÑȼ·¶þ¸ ·¹¼¼»¶°«²¸ÂËÕÚÚÔɽ´°°ºÊÛê÷ýÿáÿëÿþúòæØË¿¸³±³»ÅÎÑÑ˹¶¶»ÄÐÚÝÛÔÈ¿þ¹½ÀþÅÃÄÄþÇ3ÆÉÎÕÙ×ÍÁµ¯²¾Ë×ßÞ×͹¶¶»ÄÏ×Ú×ÏĹ³¯°¶¿ÉÏÑÎÆ¼¶²²¶¿ÍÝì÷þ÷ÿûÿJþúòæØË¿¸³±³»ÅÎÑÑ˹¶¶»ÄÏ×Ù×ÏŽ¼¾ÅÎÚààÜÓǼ¶²²¶½ÄÉËÈÃÂÇÉÉËÇÀ½¿¾¼º¼¿ÅÐÝääß×ÌÇÅýÇËÔÝáàÚÎÄÂÅÍ×àåäàØÎÅ¿½¿ÈÕãïùþòÿ&þúòæØËÀ¼½ÂÉÕßæèåÛÎľ¿ÆÑÝåèåÝÔÉÁ¼½ÂÎÝêõüíÿDþûõîãÚÎÅ¿½¿ÇÑØÙÕ͹¶¶»ÄÏ×Ù×ÏÄ»´±²·¾ÅÈÊÈÈÌÙåòûþúòæØËÀ¼½ÂÉÔÝàÞ×̽¿ÅÐÝé!ïîæÛÎÈÌÙåòùøïãÔȼ¸¶¹¿ÉÏÑÑÍÉËÕâîøþ»ýÿFⲡ´ÂÊÉĽ¾ÃÎÚçðøýðÿ3þúòæØË¿¸³±³»ÅÑ××ÏÄ·°°ºÈÔàåãÜÔÉÁ¼½ÂÍÖÙØÑǾ¼¾ÃÌ×ÞàÝÕË¿6¸³±³»ÅÑØÛØÑÇ¿¼¾ÅÐÚàáÜÔÉÁ¼½ÂÍ×ßß×˾²¯µÁÎÚßÝÔÊ¿¹¶¸¼ÆÎÑÑÎÉýÇÅÇÌÙåòûïÿþûöíßÏÁµ¯²¾Ë×âäÝÑÄ·°°ºÈÒÙØÒÊÇÅýÇ ÈÊÊÉÆÃÀÂÂÄÆÌÒÚÝÝ×ÎÅ¿½¿ÈÕãïùþÿáÿêÿ!ü÷ïæÝÔÎÊÈËÑØßâáÝÕÏÌÍÑ×áèêéäÜÔÑÐÑÓÖþÚþØýÚ2ÛÞãäáÚÒËÇÉÑÙãééåÞÕÏÌÍÑ×àæèæà×ÑËÈÉÎÔÛàáßÙÒÍÉÉÌÓÝéòúþ÷ÿúÿ3ü÷ïæÝÔÎÊÈËÑØßâáÝÕÏÌÍÑ×àæèæàØÑÏÐÔÛãéêèâÚÒÍÉÉÌÒ×ÛÜÚ××ÛþÝÚ×ÔÕÕÔÒÒÔØßèíîêäÝÚÙýÚÝãéììçß×ÔÕÚàçëëèãÜÖÒÒÔÚãíõûþòÿ&ÿü÷ïæÝÔÐÏÒ×àèîñïéàØÔÔÚâêïðíæàØÔÑÒ×ßéòøþíÿDþüøòëãÜÖÒÒÔÚáæçåÞÕÏÌÍÑ×àæèæà×ÑËÈÉÎÓØÚÜÚÚÝæîöüÿü÷ïæÝÔÐÏÒ×ßæêéæÞ×ÓÔØßèñ!õôïçßÛÝæîöûûõíãÚÒÎÍÎÔÛàâáÞÛÝãìôûþîû»Ìº§¼Ë×ÛØÓÓ×Ýæïõûþïÿ2ü÷ïæÝÔÎÊÈËÑ×àããÝÔÌÇÈÎ×àèìêåàØÔÑÒ×ÞåçæáÚÒÐÐÓÙáçêéäÜÔ6ÎÊÈËÑ×àäåãÝ×ÓÑÓØàæééæàØÔÑÒ×ÞåééãÙÑÉÇËÒÛäéèãÜÔÎÍÎÒÙßááßÛýÚÙÚÝæîöüïÿþüøòçÜÒËÇÉÑÙâéêæÝÔÌÇÈÎ×ÞããàÜÚÙüÚþÜÚØ×Ø×ØÙÜàãææâÜÖÒÒÔÚãíõûþÿáÿêÿþûöñëäàÝÝÞâçìïîëæáßàâçîòôóðëæþãåçüé þûøõòïììíðòþõ#òïíììíðóõöõóñïíîïòöùúúøôñïîïòõøúúøõòïììíðòþõ-òðïîîðóöøø÷ôñïíîïòõøø÷õñîìëìïòõøø÷õòïîïñôöø÷öõûôõøúýþîÿþüùõòïìëìîñóõöõòïíììíðòýõûôüõüô òðîîïñõøûýþÿáÿèÿÿþüûùøøùúûüýýüûúùùúûýþþýüûûýüûûþüÿûúùþø ùúûüýýüûúùùúûýþþýûúùøøùûüþýÿûùøøùûûýþõÿøÿÿþüûùøøùúûüýýüûúùùúûýþþýûúùùúûüþþ ýûûùøøùúûûýüýýÿüüûúùùúûüþý üûúùøùúûüþþéÿ þýûûùøøùûûýþþüûúùùúûýþþýûúùøøùþûýüýþþýÿÿþüûúùùûûýþþüûúùùúûýþþ ýc./ÿåéðöûþçÿ Ä&'õìïôøüþ÷ÿôÿÿ þýûõæàäëòùþÕÿÿþýD Â×ÊÕãÿ Â̾ÍÝÿ ÂÁ°ÂÖÿ ÿÎ̿޾ ÔçPÿ¦ÿ Lôå¿¶æN ÿпɡ²ÈÞñü÷ÿûÿjþ ¾ÏÑ¿ÐâóðéÞÖ ¾ÕòKÿÑÏNMæì ¾Òÿÿ ?N秸ØÛÝÚêN ÿÊÖêéåÝÖ ¾ÕÔìóÿ NèÎÅÅê ¾ÓÿNæ¾¾ ÎæNÿ¦±ÆÚìùìÿ(þD7ÿÎÌ¿Ôêúú K,,ס¦éK ÿ¾³áLÿ¾ ̾½'×ÖÞJ++סÜ))K ¾¯ÃJl Ê£³ÈÞñü÷ÿûÿ[ý»m"¢¨Vgäªæ+j¦v½×¡ÚHR£a#áàë¡X+ ¤XbµÌΤHgÙ׺ЫMd×ê·j¸¸·½¿¬ÿ"CçË®[h׺ªÉÁ6¢¼âî»þ¢UÁÓÂÑáîøþòÿý½k m MæÝÞíL nÅ¢Üü MÞÅËÚéôûíÿ<þ¾Y¤ÓÈàW<<סÚ99XºæVÿ©¸ÊÙéÀquV¡æâßVþ¥¿¬¹/ðSÿ¥¸Íé Sww¹Îö¥³ÅÕãàW:ÿØ99ýÓ©¸ÊÝìøþòÿ3ý¼jk Kä«ÞHjáÌñJÞÅÜIkj½ãè½jkÿ Kå®Þüÿ)4à¿êJÞÅß(½Òß½jk Jĺ½ÍåJÿ¡¬ÂÖêøîÿ*»"1S®¦ª××ÝD"M©áÌÿCèË®TYÒºçvNcÿÙjZ©ÐÌ»þ¢UÁÓÂÑáîøþÿáÿëÿüõ¼þÿHä®ÿüHä ¦éGÿ¼±áHÿ¯¼ÌÐýþGìËÜÿýHä ®ìGþÿ¼ÍûÊ¢²ÈÞñü÷ÿûÿjüõÅ<O]jx¡ä®ÿAPbp|£ä ªéqO]^\WÿÕÚßëDUaoy|¿Ḛ̂^sÛ±Ãű^pÚªÿsvwwqä§µÿ:Vç̶jsÙº¨¶ÑÿF[\RCêò +IauÃѹÊÜë÷þòÿüõ¼âÔÞÝÙã¼Â£ÿû ÿµ³ÂÔäòûþîÿþ ѸÈÿVä ªéSý$Á¶åSÿ °ÂÖæíí¿âÔÝâÿVä§µÂ0òPÿ«¿ÔàîÁ·ÎÁ¸«½Ñâììÿÿ¥èSþÿ¤±ÁÑâïùþòÿüõ¼ýG丼þÿÆÿþþÿµ³½Þþ ¼ÚØßå¼ÿG丼ûGè°¶ÿûÿµ³ïFþÿÿÛÎã¼þʹ¼ÍæGÿ¡ª¿Ôéøîÿ* ·¹¼¼»¶°«²¸ÂËÕÚÚÔɽ´°°ºÊÛê÷ýÿáÿëÿþúòæØË¿¸³±³»ÅÎÑÑ˹¶¶»ÄÐÚÝÛÔÈ¿þ¹½ÀþÅÃÄÄþÇ3ÆÉÎÕÙ×ÍÁµ¯²¾Ë×ßÞ×͹¶¶»ÄÏ×Ú×ÏĹ³¯°¶¿ÉÏÑÎÆ¼¶²²¶¿ÍÝì÷þ÷ÿûÿJþúòæØË¿¸³±³»ÅÎÑÑ˹¶¶»ÄÏ×Ù×ÏŽ¼¾ÅÎÚààÜÓǼ¶²²¶½ÄÉËÈÃÂÇÉÉËÇÀ½¿¾¼º¼¿ÅÐÝääß×ÌÇÅýÇËÔÝáàÚÎÄÂÅÍ×àåäàØÎÅ¿½¿ÈÕãïùþòÿ&þúòæØËÀ¼½ÂÉÕßæèåÛÎľ¿ÆÑÝåèåÝÔÉÁ¼½ÂÎÝêõüíÿDþûõîãÚÎÅ¿½¿ÇÑØÙÕ͹¶¶»ÄÏ×Ù×ÏÄ»´±²·¾ÅÈÊÈÈÌÙåòûþúòæØËÀ¼½ÂÉÔÝàÞ×̽¿ÅÐÝé!ïîæÛÎÈÌÙåòùøïãÔȼ¸¶¹¿ÉÏÑÑÍÉËÕâîøþ»ýÿFⲡ´ÂÊÉĽ¾ÃÎÚçðøýðÿ3þúòæØË¿¸³±³»ÅÑ××ÏÄ·°°ºÈÔàåãÜÔÉÁ¼½ÂÍÖÙØÑǾ¼¾ÃÌ×ÞàÝÕË¿6¸³±³»ÅÑØÛØÑÇ¿¼¾ÅÐÚàáÜÔÉÁ¼½ÂÍ×ßß×˾²¯µÁÎÚßÝÔÊ¿¹¶¸¼ÆÎÑÑÎÉýÇÅÇÌÙåòûïÿþûöíßÏÁµ¯²¾Ë×âäÝÑÄ·°°ºÈÒÙØÒÊÇÅýÇ ÈÊÊÉÆÃÀÂÂÄÆÌÒÚÝÝ×ÎÅ¿½¿ÈÕãïùþÿáÿêÿ!ü÷ïæÝÔÎÊÈËÑØßâáÝÕÏÌÍÑ×áèêéäÜÔÑÐÑÓÖþÚþØýÚ2ÛÞãäáÚÒËÇÉÑÙãééåÞÕÏÌÍÑ×àæèæà×ÑËÈÉÎÔÛàáßÙÒÍÉÉÌÓÝéòúþ÷ÿúÿ3ü÷ïæÝÔÎÊÈËÑØßâáÝÕÏÌÍÑ×àæèæàØÑÏÐÔÛãéêèâÚÒÍÉÉÌÒ×ÛÜÚ××ÛþÝÚ×ÔÕÕÔÒÒÔØßèíîêäÝÚÙýÚÝãéììçß×ÔÕÚàçëëèãÜÖÒÒÔÚãíõûþòÿ&ÿü÷ïæÝÔÐÏÒ×àèîñïéàØÔÔÚâêïðíæàØÔÑÒ×ßéòøþíÿDþüøòëãÜÖÒÒÔÚáæçåÞÕÏÌÍÑ×àæèæà×ÑËÈÉÎÓØÚÜÚÚÝæîöüÿü÷ïæÝÔÐÏÒ×ßæêéæÞ×ÓÔØßèñ!õôïçßÛÝæîöûûõíãÚÒÎÍÎÔÛàâáÞÛÝãìôûþîû»Ìº§¼Ë×ÛØÓÓ×Ýæïõûþïÿ2ü÷ïæÝÔÎÊÈËÑ×àããÝÔÌÇÈÎ×àèìêåàØÔÑÒ×ÞåçæáÚÒÐÐÓÙáçêéäÜÔ6ÎÊÈËÑ×àäåãÝ×ÓÑÓØàæééæàØÔÑÒ×ÞåééãÙÑÉÇËÒÛäéèãÜÔÎÍÎÒÙßááßÛýÚÙÚÝæîöüïÿþüøòçÜÒËÇÉÑÙâéêæÝÔÌÇÈÎ×ÞããàÜÚÙüÚþÜÚØ×Ø×ØÙÜàãææâÜÖÒÒÔÚãíõûþÿáÿêÿþûöñëäàÝÝÞâçìïîëæáßàâçîòôóðëæþãåçüé þûøõòïììíðòþõ#òïíììíðóõöõóñïíîïòöùúúøôñïîïòõøúúøõòïììíðòþõ-òðïîîðóöøø÷ôñïíîïòõøø÷õñîìëìïòõøø÷õòïîïñôöø÷öõûôõøúýþîÿþüùõòïìëìîñóõöõòïíììíðòýõûôüõüô òðîîïñõøûýþÿáÿèÿÿþüûùøøùúûüýýüûúùùúûýþþýüûûýüûûþüÿûúùþø ùúûüýýüûúùùúûýþþýûúùøøùûüþýÿûùøøùûûýþõÿøÿÿþüûùøøùúûüýýüûúùùúûýþþýûúùùúûüþþ ýûûùøøùúûûýüýýÿüüûúùùúûüþý üûúùøùúûüþþéÿ þýûûùøøùûûýþþüûúùùúûýþþýûúùøøùþûýüýþþýÿÿþüûúùùûûýþþüûúùùúûýþþ ýc./ÿåéðöûþçÿ Ä&'õìïôøüþ÷ÿôÿÿ þýûõæàäëòùþÕÿÿþýD Â×ÊÕãÿ Â̾ÍÝÿ ÂÁ°ÂÖÿ ÿÎ̿޾ ÔçPÿ¦ÿ Lôå¿¶æN ÿпɡ²ÈÞñü÷ÿûÿjþ ¾ÏÑ¿ÐâóðéÞÖ ¾ÕòKÿÑÏNMæì ¾Òÿÿ ?N秸ØÛÝÚêN ÿÊÖêéåÝÖ ¾ÕÔìóÿ NèÎÅÅê ¾ÓÿNæ¾¾ ÎæNÿ¦±ÆÚìùìÿ(þD7ÿÎÌ¿Ôêúú K,,ס¦éK ÿ¾³áLÿ¾ ̾½'×ÖÞJ++סÜ))K ¾¯ÃJl Ê£³ÈÞñü÷ÿûÿ[ý»m"¢¨Vgäªæ+j¦v½×¡ÚHR£a#áàë¡X+ ¤XbµÌΤHgÙ׺ЫMd×ê·j¸¸·½¿¬ÿ"CçË®[h׺ªÉÁ6¢¼âî»þ¢UÁÓÂÑáîøþòÿý½k m MæÝÞíL nÅ¢Üü MÞÅËÚéôûíÿ<þ¾Y¤ÓÈàW<<סÚ99XºæVÿ©¸ÊÙéÀquV¡æâßVþ¥¿¬¹/ðSÿ¥¸Íé Sww¹Îö¥³ÅÕãàW:ÿØ99ýÓ©¸ÊÝìøþòÿ3ý¼jk Kä«ÞHjáÌñJÞÅÜIkj½ãè½jkÿ Kå®Þüÿ)4à¿êJÞÅß(½Òß½jk Jĺ½ÍåJÿ¡¬ÂÖêøîÿ*»"1S®¦ª××ÝD"M©áÌÿCèË®TYÒºçvNcÿÙjZ©ÐÌ»þ¢UÁÓÂÑáîøþÿáÿëÿüõ¼þÿHä®ÿüHä ¦éGÿ¼±áHÿ¯¼ÌÐýþGìËÜÿýHä ®ìGþÿ¼ÍûÊ¢²ÈÞñü÷ÿûÿjüõÅ<O]jx¡ä®ÿAPbp|£ä ªéqO]^\WÿÕÚßëDUaoy|¿Ḛ̂^sÛ±Ãű^pÚªÿsvwwqä§µÿ:Vç̶jsÙº¨¶ÑÿF[\RCêò +IauÃѹÊÜë÷þòÿüõ¼âÔÞÝÙã¼Â£ÿû ÿµ³ÂÔäòûþîÿþ ѸÈÿVä ªéSý$Á¶åSÿ °ÂÖæíí¿âÔÝâÿVä§µÂ0òPÿ«¿ÔàîÁ·ÎÁ¸«½Ñâììÿÿ¥èSþÿ¤±ÁÑâïùþòÿüõ¼ýG丼þÿÆÿþþÿµ³½Þþ ¼ÚØßå¼ÿG丼ûGè°¶ÿûÿµ³ïFþÿÿÛÎã¼þʹ¼ÍæGÿ¡ª¿Ôéøîÿ* ·¹¼¼»¶°«²¸ÂËÕÚÚÔɽ´°°ºÊÛê÷ýÿáÿëÿþúòæØË¿¸³±³»ÅÎÑÑ˹¶¶»ÄÐÚÝÛÔÈ¿þ¹½ÀþÅÃÄÄþÇ3ÆÉÎÕÙ×ÍÁµ¯²¾Ë×ßÞ×͹¶¶»ÄÏ×Ú×ÏĹ³¯°¶¿ÉÏÑÎÆ¼¶²²¶¿ÍÝì÷þ÷ÿûÿJþúòæØË¿¸³±³»ÅÎÑÑ˹¶¶»ÄÏ×Ù×ÏŽ¼¾ÅÎÚààÜÓǼ¶²²¶½ÄÉËÈÃÂÇÉÉËÇÀ½¿¾¼º¼¿ÅÐÝääß×ÌÇÅýÇËÔÝáàÚÎÄÂÅÍ×àåäàØÎÅ¿½¿ÈÕãïùþòÿ&þúòæØËÀ¼½ÂÉÕßæèåÛÎľ¿ÆÑÝåèåÝÔÉÁ¼½ÂÎÝêõüíÿDþûõîãÚÎÅ¿½¿ÇÑØÙÕ͹¶¶»ÄÏ×Ù×ÏÄ»´±²·¾ÅÈÊÈÈÌÙåòûþúòæØËÀ¼½ÂÉÔÝàÞ×̽¿ÅÐÝé!ïîæÛÎÈÌÙåòùøïãÔȼ¸¶¹¿ÉÏÑÑÍÉËÕâîøþ»ýÿFⲡ´ÂÊÉĽ¾ÃÎÚçðøýðÿ3þúòæØË¿¸³±³»ÅÑ××ÏÄ·°°ºÈÔàåãÜÔÉÁ¼½ÂÍÖÙØÑǾ¼¾ÃÌ×ÞàÝÕË¿6¸³±³»ÅÑØÛØÑÇ¿¼¾ÅÐÚàáÜÔÉÁ¼½ÂÍ×ßß×˾²¯µÁÎÚßÝÔÊ¿¹¶¸¼ÆÎÑÑÎÉýÇÅÇÌÙåòûïÿþûöíßÏÁµ¯²¾Ë×âäÝÑÄ·°°ºÈÒÙØÒÊÇÅýÇ ÈÊÊÉÆÃÀÂÂÄÆÌÒÚÝÝ×ÎÅ¿½¿ÈÕãïùþÿáÿêÿ!ü÷ïæÝÔÎÊÈËÑØßâáÝÕÏÌÍÑ×áèêéäÜÔÑÐÑÓÖþÚþØýÚ2ÛÞãäáÚÒËÇÉÑÙãééåÞÕÏÌÍÑ×àæèæà×ÑËÈÉÎÔÛàáßÙÒÍÉÉÌÓÝéòúþ÷ÿúÿ3ü÷ïæÝÔÎÊÈËÑØßâáÝÕÏÌÍÑ×àæèæàØÑÏÐÔÛãéêèâÚÒÍÉÉÌÒ×ÛÜÚ××ÛþÝÚ×ÔÕÕÔÒÒÔØßèíîêäÝÚÙýÚÝãéììçß×ÔÕÚàçëëèãÜÖÒÒÔÚãíõûþòÿ&ÿü÷ïæÝÔÐÏÒ×àèîñïéàØÔÔÚâêïðíæàØÔÑÒ×ßéòøþíÿDþüøòëãÜÖÒÒÔÚáæçåÞÕÏÌÍÑ×àæèæà×ÑËÈÉÎÓØÚÜÚÚÝæîöüÿü÷ïæÝÔÐÏÒ×ßæêéæÞ×ÓÔØßèñ!õôïçßÛÝæîöûûõíãÚÒÎÍÎÔÛàâáÞÛÝãìôûþîû»Ìº§¼Ë×ÛØÓÓ×Ýæïõûþïÿ2ü÷ïæÝÔÎÊÈËÑ×àããÝÔÌÇÈÎ×àèìêåàØÔÑÒ×ÞåçæáÚÒÐÐÓÙáçêéäÜÔ6ÎÊÈËÑ×àäåãÝ×ÓÑÓØàæééæàØÔÑÒ×ÞåééãÙÑÉÇËÒÛäéèãÜÔÎÍÎÒÙßááßÛýÚÙÚÝæîöüïÿþüøòçÜÒËÇÉÑÙâéêæÝÔÌÇÈÎ×ÞããàÜÚÙüÚþÜÚØ×Ø×ØÙÜàãææâÜÖÒÒÔÚãíõûþÿáÿêÿþûöñëäàÝÝÞâçìïîëæáßàâçîòôóðëæþãåçüé þûøõòïììíðòþõ#òïíììíðóõöõóñïíîïòöùúúøôñïîïòõøúúøõòïììíðòþõ-òðïîîðóöøø÷ôñïíîïòõøø÷õñîìëìïòõøø÷õòïîïñôöø÷öõûôõøúýþîÿþüùõòïìëìîñóõöõòïíììíðòýõûôüõüô òðîîïñõøûýþÿáÿèÿÿþüûùøøùúûüýýüûúùùúûýþþýüûûýüûûþüÿûúùþø ùúûüýýüûúùùúûýþþýûúùøøùûüþýÿûùøøùûûýþõÿøÿÿþüûùøøùúûüýýüûúùùúûýþþýûúùùúûüþþ ýûûùøøùúûûýüýýÿüüûúùùúûüþý üûúùøùúûüþþéÿ þýûûùøøùûûýþþüûúùùúûýþþýûúùøøùþûýüýþþýÿÿþüûúùùûûýþþüûúùùúûýþþ --- NEW FILE: logo.psd --- CVS Browser: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/java-game-lib/LWJGL/content/logo.psd 8BPS <?adobe-xap-filters esc="CR"?> <x:xapmeta xmlns:x='adobe:ns:meta/' x:xaptk='XMP toolkit 2.8.2-33, framework 1.5'> <rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'> <rdf:Description about='uuid:fecd3f3a-c0c6-11d6-9659-e5c4cee839f9' xmlns:xapMM='http://ns.adobe.com/xap/1.0/mm/'> <xapMM:DocumentID>adobe:docid:photoshop:fecd3f34-c0c6-11d6-9659-e5c4cee839f9</xapMM:DocumentID> </rdf:Description> </rdf:RDF> </x:xapmeta> <?xpacket end='w'?> U ESliceType leftOutsetlong ESliceType leftOutsetlong ESliceType leftOutsetlong ColorTable NativeQuad interlacedbool fileFormatenum FileFormat autoReducebool zonedLossyObjc NativeQuad interlacedbool fileFormatenum FileFormat ColorTable NativeQuad interlacedbool fileFormatenum FileFormat autoReducebool zonedLossyObjc Background EngineDatatdta 00000ÿÿÿÿ ÿ;ÿ[ÿå) /Keep (þÿ %) /Hanging (þÿ 0000ÿÿ;ÿ[) /Keep (þÿ %) /Hanging (þÿ warpRotateenum warpRotateenum ö »×ìúÆÿÄÿý%,287:EOW^Ôw»×ìúèÿý)3?KQTVQLEpÔw»è%.3ÿr³ÝÁ!.>MYbhjkjÿn³Ñéøìÿ(!(09=@>;@DDÌ ©Éãôþÿÿý"*04=FMSX Ôw»×ñüèÿý &+/7CLTZ`Ôw»×ìúÆÿÄÿý#)0457BKSZÔw»×ìúèÿý'1<HORSQLFqÔw»è#+0ÿr³ÝÁ,;IU^befdÿn³Ñéøìÿ(%,5:;:9=AAË ©Éãôþÿÿý!(.19AHMRÔw»âÃüúÿßýýþþüÿý#(,5@IPV[Ôw»×ìúÆÿÄÿý!'-114>GNUÔw»×ìúèÿý%/:DKPQOKFqÔw»è!)-ÿr³ÝÁ)8EQY]_`^ÿn³Ñéøìÿ-#)25867;>>Ê ©Éãôþÿÿý&-/4<BGL|Ôw»êþüÀ÷öùûýþþÿý %)3=FLQVÔw»×ìúÆÿÄÿý %+//2;CJPÔw»×ìúèÿý#,7AIMOMJEqÔw»è '*ÿr³ÝÁ(6BLSXY[Yÿn³Ñéøìÿ,&.12258;;Ê ©Éãôþÿÿý%+.07<AEwÔw»êýüÁìêðöûþþÿý#'1:BHMRÔw»×ìúÆÿÄÿý"(++.6>EJ|Ôw»×ìúèÿý!)3>DHJJGCpÔw»è$'ÿr³ÝÀ%2>GMQSTSÿn³Ñéøìÿ-"),..3677É ©Éãôþÿÿý#*,,06:>qÔw»ê þ! !##" à ©Éãôþÿÿý þ"1! YÔw»×æìçÚÌÿ #$&%%#à ©Éãôþÿÿý !%'*cÔw»×ìúÆÿÄÿý!$_Ôw»×ìúèÿþüøñéàôS"$%# »¡*³ÿ Ät©½ÎÛäíø SÞ°Ëáñûýÿ  ©Éãôþÿÿýþ 1YÔw»×éòñéàÿ ""! ©Éãôþÿÿý "%_Ôw»×ìúÆÿÄÿý\Ôw»×ìúçÿþûøôðùP!"" ³¡*»ÿ Â}¹ÐáìòöûUÙ¤ÃÝïûýÿP Á ©Éãôþÿÿý XÔw»×ëöøôðÿ  ©Éãôþÿÿý \Ôw»×ìúÆÿÄÿýþYÔw»×ìúæÿþýûûüM®¡Áÿ Á¤ÄÝîøûüüþUÖ|¾Úíúýÿ Á ©Éãôþÿÿýþ/WÔw»×ìøýûûÿ Á ©Éãôþÿÿý YÔw»×ìúÆÿÄÿý UÔw»×ìúâÿþK¬~¡ Ãÿ þÀ ©Éãôþÿÿý þTÔw»×ìúýÿ À ©Éãôþÿÿý þVÔw»×ìúýÿ þÀ ©Éãôþÿÿý þUÔw»×ìúÆÿÄÿý ý QÔw»×ìúâÿþJ ¬~¡Ãÿ ýÀ ©Éãôþÿÿý ýRÔw»×ìúýÿ ¿ ©Éãôþÿÿý ýSÔw»×ìúýÿ#¿ ©Éãôþÿÿý QÔw»×ìúÆÿÄÿý NÔÛãíôúþâÿþI ¬~¡Ãÿ ý¾ ©Éãôþÿÿý ýPÔÛãíôúþýÿ þÿ¾ ©Éãôþÿÿý þQÔÛãíôúþýÿ# ¾ ©Éãôþÿÿý NÔÛãíôúþÆÿÄÿý LKKIHHñGÍüüýþþ÷ÿþH þ¬~¡Ãÿ ý¾ ©ÉãôþÿÿüÞþ½ÿ¾ ü¾ ©Éãôþÿÿý þ MKKIHHñGÍüüýþþÛÿÄÿýþ ýòÿ¼õó÷úýþøÿþH þ ¬~¡Ãÿü ½ ©Éãôþÿÿüôé×ÁªÙL þÿKÏwz|lw±Ïæõþÿÿüôé×ÁªÙLý ú þ ½ ©Éãôþÿÿý ý ¬~¡Ãÿþü½ ©ÉãôþÿÿýôåеÞIû þüHÐLSZds»ÔéöþÿÿýôåеÞJû ýþ þûöïåÛòEûï¼ ©Éãôþÿÿýþ÷í»°§ÂÙë÷þÝÿÄÿüúàÿÆ ¹Ôèöþùÿüú÷ÿºr¥Åïöÿ»nËãôþþÿýûöñììôìÿÒt«ÃÖäíòøûþýÿýûöñììôæÿ»nËãôþÿÿüúôÿíÿÆ ¹ÔèöþÝÿÄÿüòâËve[þWXY[\_`bbóchr¹ÓèöþùÿûïÝäqbYWW[evËÛÞÔ¼k^þW\hz³ÐæõþþÿÿþüúøòæÔ¼pb\\_`bbþcÿb`^\\bo¼ÔæòøúüþüÿÿþüúøòæÔ¼pb\\_`bbþcÿb`^\ZYXþW\hz³ÐæõþÿÿüòâËve[þWXY[\_`bbóchr¹ÓèöþÝÿÄÿýõæÒ¸zqûnÿoðpt~¤¿×é÷þùÿûñá˰wpnnqz¸ÒàãÚŨtþnr}¢¾×é÷þûÿÿþ úïà˯wqooøpÿo pw¯Ëàïúþþ÷ÿÿþ úïà˯wqooøpÿoûnr}¢¾×é÷þÿÿýõæÒ¸zqûnÿoðpt~¤¿×é÷þÝÿÄÿþ÷ìÛDz¢è¤¶Ëßîøþùÿüôè×Á¢²ÇÛæéâÑ»¨þ¤¶Ëßîøþùÿüôè×ÁôÁ×èôüóÿüôè×ÁËßîøþÿÿþ÷ìÛDz¢ûËßîøþÝÿÄÿþúòçÚÌÁ¹µè³µ»ÃÎÝêôûþùÿþøïäÖÈ¿¸´³³µ¹ÁÌÚçïðìáÑż¶þ³µ»ÃÎÝêôûþùÿþøïäÖÈ¿¸´ô³´¸¿ÈÖäïøþóÿþøïäÖÈ¿¸´î³µ»ÃÎÝêôûþÿÿþúòçÚÌÁ¹µû³î³µ»ÃÎÝêôûþÝÿÄÿþüøñéàÚÕÓèÑÓÖÛâëòøýøÿþûöïæßÙÔÒÑÑÓÕÚàéñõöôíäÝ×ÔþÑÓÖÛâëòøýøÿþûöïæßÙÔÒôÑÒÔÙßæïöûþóÿþûöïæßÙÔÒîÑÓÖÛâëòøýþÿþüøñéàÚÕÓûÑîÑÓÖÛâëòøýÜÿÃÿþûøôðíêæéëíñõùüþ÷ÿýûøóïìêýéêíðôøûûúöòîìüéëíñõùüþ÷ÿýûøóïìêòéêìïóøûýñÿýûøóïìêìéëíñõùüþýÿþûøôðíêúéíéëíñõùüþÜÿÂÿþýûûùäøùûüþþöÿÿþýûúùûøùûû !##" à ©Éãôþÿÿý þ"1! YÔw»×æìçÚÌÿ #$&%%#à ©Éãôþÿÿý !%'*cÔw»×ìúÆÿÄÿý!$_Ôw»×ìúèÿþüøñéàôS"$%# »¡*³ÿ Ät©½ÎÛäíø SÞ°Ëáñûýÿ  ©Éãôþÿÿýþ 1YÔw»×éòñéàÿ ""! ©Éãôþÿÿý "%_Ôw»×ìúÆÿÄÿý\Ôw»×ìúçÿþûøôðùP!"" ³¡*»ÿ Â}¹ÐáìòöûUÙ¤ÃÝïûýÿP Á ©Éãôþÿÿý XÔw»×ëöøôðÿ  ©Éãôþÿÿý \Ôw»×ìúÆÿÄÿýþYÔw»×ìúæÿþýûûüM®¡Áÿ Á¤ÄÝîøûüüþUÖ|¾Úíúýÿ Á ©Éãôþÿÿýþ/WÔw»×ìøýûûÿ Á ©Éãôþÿÿý YÔw»×ìúÆÿÄÿý UÔw»×ìúâÿþK¬~¡ Ãÿ þÀ ©Éãôþÿÿý þTÔw»×ìúýÿ À ©Éãôþÿÿý þVÔw»×ìúýÿ þÀ ©Éãôþÿÿý þUÔw»×ìúÆÿÄÿý ý QÔw»×ìúâÿþJ ¬~¡Ãÿ ýÀ ©Éãôþÿÿý ýRÔw»×ìúýÿ ¿ ©Éãôþÿÿý ýSÔw»×ìúýÿ#¿ ©Éãôþÿÿý QÔw»×ìúÆÿÄÿý NÔÛãíôúþâÿþI ¬~¡Ãÿ ý¾ ©Éãôþÿÿý ýPÔÛãíôúþýÿ þÿ¾ ©Éãôþÿÿý þQÔÛãíôúþýÿ# ¾ ©Éãôþÿÿý NÔÛãíôúþÆÿÄÿý LKKIHHñGÍüüýþþ÷ÿþH þ¬~¡Ãÿ ý¾ ©ÉãôþÿÿüÞþ½ÿ¾ ü¾ ©Éãôþÿÿý þ MKKIHHñGÍüüýþþÛÿÄÿýþ ýòÿ¼õó÷úýþøÿþH þ ¬~¡Ãÿü ½ ©Éãôþÿÿüôé×ÁªÙL þÿKÏwz|lw±Ïæõþÿÿüôé×ÁªÙLý ú þ ½ ©Éãôþÿÿý ý ¬~¡Ãÿþü½ ©ÉãôþÿÿýôåеÞIû þüHÐLSZds»ÔéöþÿÿýôåеÞJû ýþ þûöïåÛòEûï¼ ©Éãôþÿÿýþ÷í»°§ÂÙë÷þÝÿÄÿüúàÿÆ ¹Ôèöþùÿüú÷ÿºr¥Åïöÿ»nËãôþþÿýûöñììôìÿÒt«ÃÖäíòøûþýÿýûöñììôæÿ»nËãôþÿÿüúôÿíÿÆ ¹ÔèöþÝÿÄÿüòâËve[þWXY[\_`bbóchr¹ÓèöþùÿûïÝäqbYWW[evËÛÞÔ¼k^þW\hz³ÐæõþþÿÿþüúøòæÔ¼pb\\_`bbþcÿb`^\\bo¼ÔæòøúüþüÿÿþüúøòæÔ¼pb\\_`bbþcÿb`^\ZYXþW\hz³ÐæõþÿÿüòâËve[þWXY[\_`bbóchr¹ÓèöþÝÿÄÿýõæÒ¸zqûnÿoðpt~¤¿×é÷þùÿûñá˰wpnnqz¸ÒàãÚŨtþnr}¢¾×é÷þûÿÿþ úïà˯wqooøpÿo pw¯Ëàïúþþ÷ÿÿþ úïà˯wqooøpÿoûnr}¢¾×é÷þÿÿýõæÒ¸zqûnÿoðpt~¤¿×é÷þÝÿÄÿþ÷ìÛDz¢è¤¶Ëßîøþùÿüôè×Á¢²ÇÛæéâÑ»¨þ¤¶Ëßîøþùÿüôè×ÁôÁ×èôüóÿüôè×ÁËßîøþÿÿþ÷ìÛDz¢ûËßîøþÝÿÄÿþúòçÚÌÁ¹µè³µ»ÃÎÝêôûþùÿþøïäÖÈ¿¸´³³µ¹ÁÌÚçïðìáÑż¶þ³µ»ÃÎÝêôûþùÿþøïäÖÈ¿¸´ô³´¸¿ÈÖäïøþóÿþøïäÖÈ¿¸´î³µ»ÃÎÝêôûþÿÿþúòçÚÌÁ¹µû³î³µ»ÃÎÝêôûþÝÿÄÿþüøñéàÚÕÓèÑÓÖÛâëòøýøÿþûöïæßÙÔÒÑÑÓÕÚàéñõöôíäÝ×ÔþÑÓÖÛâëòøýøÿþûöïæßÙÔÒôÑÒÔÙßæïöûþóÿþûöïæßÙÔÒîÑÓÖÛâëòøýþÿþüøñéàÚÕÓûÑîÑÓÖÛâëòøýÜÿÃÿþûøôðíêæéëíñõùüþ÷ÿýûøóïìêýéêíðôøûûúöòîìüéëíñõùüþ÷ÿýûøóïìêòéêìïóøûýñÿýûøóïìêìéëíñõùüþýÿþûøôðíêúéíéëíñõùüþÜÿÂÿþýûûùäøùûüþþöÿÿþýûúùûøùûû !##" à ©Éãôþÿÿý þ"1! YÔw»×æìçÚÌÿ #$&%%#à ©Éãôþÿÿý !%'*cÔw»×ìúÆÿÄÿý!$_Ôw»×ìúèÿþüøñéàôS"$%# »¡*³ÿ Ät©½ÎÛäíø SÞ°Ëáñûýÿ  ©Éãôþÿÿýþ 1YÔw»×éòñéàÿ ""! ©Éãôþÿÿý "%_Ôw»×ìúÆÿÄÿý\Ôw»×ìúçÿþûøôðùP!"" ³¡*»ÿ Â}¹ÐáìòöûUÙ¤ÃÝïûýÿP Á ©Éãôþÿÿý XÔw»×ëöøôðÿ  ©Éãôþÿÿý \Ôw»×ìúÆÿÄÿýþYÔw»×ìúæÿþýûûüM®¡Áÿ Á¤ÄÝîøûüüþUÖ|¾Úíúýÿ Á ©Éãôþÿÿýþ/WÔw»×ìøýûûÿ Á ©Éãôþÿÿý YÔw»×ìúÆÿÄÿý UÔw»×ìúâÿþK¬~¡ Ãÿ þÀ ©Éãôþÿÿý þTÔw»×ìúýÿ À ©Éãôþÿÿý þVÔw»×ìúýÿ þÀ ©Éãôþÿÿý þUÔw»×ìúÆÿÄÿý ý QÔw»×ìúâÿþJ ¬~¡Ãÿ ýÀ ©Éãôþÿÿý ýRÔw»×ìúýÿ ¿ ©Éãôþÿÿý ýSÔw»×ìúýÿ#¿ ©Éãôþÿÿý QÔw»×ìúÆÿÄÿý NÔÛãíôúþâÿþI ¬~¡Ãÿ ý¾ ©Éãôþÿÿý ýPÔÛãíôúþýÿ þÿ¾ ©Éãôþÿÿý þQÔÛãíôúþýÿ# ¾ ©Éãôþÿÿý NÔÛãíôúþÆÿÄÿý LKKIHHñGÍüüýþþ÷ÿþH þ¬~¡Ãÿ ý¾ ©ÉãôþÿÿüÞþ½ÿ¾ ü¾ ©Éãôþÿÿý þ MKKIHHñGÍüüýþþÛÿÄÿýþ ýòÿ¼õó÷úýþøÿþH þ ¬~¡Ãÿü ½ ©Éãôþÿÿüôé×ÁªÙL þÿKÏwz|lw±Ïæõþÿÿüôé×ÁªÙLý ú þ ½ ©Éãôþÿÿý ý ¬~¡Ãÿþü½ ©ÉãôþÿÿýôåеÞIû þüHÐLSZds»ÔéöþÿÿýôåеÞJû ýþ þûöïåÛòEûï¼ ©Éãôþÿÿýþ÷í»°§ÂÙë÷þÝÿÄÿüúàÿÆ ¹Ôèöþùÿüú÷ÿºr¥Åïöÿ»nËãôþþÿýûöñììôìÿÒt«ÃÖäíòøûþýÿýûöñììôæÿ»nËãôþÿÿüúôÿíÿÆ ¹ÔèöþÝÿÄÿüòâËve[þWXY[\_`bbóchr¹ÓèöþùÿûïÝäqbYWW[evËÛÞÔ¼k^þW\hz³ÐæõþþÿÿþüúøòæÔ¼pb\\_`bbþcÿb`^\\bo¼ÔæòøúüþüÿÿþüúøòæÔ¼pb\\_`bbþcÿb`^\ZYXþW\hz³ÐæõþÿÿüòâËve[þWXY[\_`bbóchr¹ÓèöþÝÿÄÿýõæÒ¸zqûnÿoðpt~¤¿×é÷þùÿûñá˰wpnnqz¸ÒàãÚŨtþnr}¢¾×é÷þûÿÿþ úïà˯wqooøpÿo pw¯Ëàïúþþ÷ÿÿþ úïà˯wqooøpÿoûnr}¢¾×é÷þÿÿýõæÒ¸zqûnÿoðpt~¤¿×é÷þÝÿÄÿþ÷ìÛDz¢è¤¶Ëßîøþùÿüôè×Á¢²ÇÛæéâÑ»¨þ¤¶Ëßîøþùÿüôè×ÁôÁ×èôüóÿüôè×ÁËßîøþÿÿþ÷ìÛDz¢ûËßîøþÝÿÄÿþúòçÚÌÁ¹µè³µ»ÃÎÝêôûþùÿþøïäÖÈ¿¸´³³µ¹ÁÌÚçïðìáÑż¶þ³µ»ÃÎÝêôûþùÿþøïäÖÈ¿¸´ô³´¸¿ÈÖäïøþóÿþøïäÖÈ¿¸´î³µ»ÃÎÝêôûþÿÿþúòçÚÌÁ¹µû³î³µ»ÃÎÝêôûþÝÿÄÿþüøñéàÚÕÓèÑÓÖÛâëòøýøÿþûöïæßÙÔÒÑÑÓÕÚàéñõöôíäÝ×ÔþÑÓÖÛâëòøýøÿþûöïæßÙÔÒôÑÒÔÙßæïöûþóÿþûöïæßÙÔÒîÑÓÖÛâëòøýþÿþüøñéàÚÕÓûÑîÑÓÖÛâëòøýÜÿÃÿþûøôðíêæéëíñõùüþ÷ÿýûøóïìêýéêíðôøûûúöòîìüéëíñõùüþ÷ÿýûøóïìêòéêìïóøûýñÿýûøóïìêìéëíñõùüþýÿþûøôðíêúéíéëíñõùüþÜÿÂÿþýûûùäøùûüþþöÿÿþýûúùûøùûû --- NEW FILE: miscellaneous.psd --- CVS Browser: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/java-game-lib/LWJGL/content/miscellaneous.psd 8BPS <?adobe-xap-filters esc="CR"?> <x:xapmeta xmlns:x='adobe:ns:meta/' x:xaptk='XMP toolkit 2.8.2-33, framework 1.5'> <rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'> <rdf:Description about='uuid:d1e8cd2a-c0df-11d6-93f1-8caac778c2ef' xmlns:xapMM='http://ns.adobe.com/xap/1.0/mm/'> <xapMM:DocumentID>adobe:docid:photoshop:d1e8cd27-c0df-11d6-93f1-8caac778c2ef</xapMM:DocumentID> </rdf:Description> </rdf:RDF> </x:xapmeta> <?xpacket end='w'?> ESliceType leftOutsetlong ESliceType leftOutsetlong ESliceType leftOutsetlong ESliceType leftOutsetlong ESliceType leftOutsetlong ESliceType leftOutsetlong ÿÀ mopt interlacedbool NativeQuad fileFormatenum FileFormat interlacedbool NativeQuad fileFormatenum FileFormat interlacedbool NativeQuad fileFormatenum FileFormat Background useTexturebool EngineDatatdta 00000ÿÿÿÿ ÿ;ÿ[ÿå) /Keep (þÿ %) /Hanging (þÿ 0000ÿÿ;ÿ[) /Keep (þÿ %) /Hanging (þÿ ÿ warpRotateenum useTexturebool EngineDatatdta 00000ÿÿÿÿ ÿ;ÿ[ÿå) /Keep (þÿ %) /Hanging (þÿ 0000ÿÿ;ÿ[) /Keep (þÿ %) /Hanging (þÿ ÿÿ warpRotateenum wÿÿDwÿ wÿÿDwÿ wÿÿDwÿ wÿÿDwÿ wÿÿDwÿ wÿÿDwÿ þ§`aÕïìïôùýëÿ÷ÿÒ\]A%'Æõô÷úþ]]P%&øóöùüþ£ÿäÿÿ[ M#$øóöùüþôÿþ§`b«òêíòøüþùÿ_`S)+øóöùüþ×ÿÿ¡ÿ þüúîáâçïõûëÿ÷ÿÿþý'*ÆìèïõúþýÄ')ñçíóøüþ¤ÿåÿÿþ ýÄ%'ñçíóùþóÿ þüúïààåìøþùÿÿþýÆ.0ñçíóøüþØÿÿ¯ÿ£VWWýX ýüÒYY[^cÕÜÔÝçóýûYÒüüþ¤þXÿYÒüüýþ ÿõ¿ÏÓÀÁÿSèÄÀéçåä忬ÿPìÔÀÂëPÿÄÀÔ²¸ÒîîìÿPðÔàìôûþêÿãÿ8ýÀÐ¥³ÉõUÿ_`è`%$ÿ¦±ÄåΧÉÂÙé^%&ÿ§²ÆâÂÐ¥³ÉÞñüØÿÿ°ÿ.ý ¿ÿ¿´ÐÙ¾ÏÑ¿ÐâóðéÞÖ ¾ÕòKÿÑÏNMæìh ¾ÎÈÆ± Ææî ¾ÐѽÎåùý½ ÑоÉöJÿæ¾ÉÍ¿¼ÿNæ¾¾ ÎÉÆ¾©ÿ Néп¼èN ÿо ЪÆÚÜÜÙÿ MîÍÚçòúþêÿãÿ8þ¿ÑоÉåÐsZ§§^2{ÄÖªÀåÍ£ÇÂÔçZ ÿ¡±ÞèÀÑоÉÞñüØÿÿ°ÿ.ý½¾Ð ½ÞIkáÌñJÞÅÜIkj½ãè½Yjk¾³¢»ÞHkáËòhJÞÎéHk ÄÉ ½ºÿ Kå®ÞJ¿¬à()K ÞÈJk̽½ü JÓÂÑáîøþêÿäÿ9nVàÎ×íÃÃȨÁæÌ ºàS7ÿÛpUàÎÜïûØÿÿ°ÿ ý¼³Ãż¼ýþÿÆÿþþÿµ³½Þþ¼ÚØßå¼þ˪̼þþÿÿÆÿýÿÿ¼ÒÕðÂÆ¼»ÿGå¡°ÿüGä§µÁîFýÿª¤ÒûÊÍûѹÊÜë÷þêÿäÿÿ 9 ÀÒÒìÁÁŬÅéÍ¡¯Æÿÿÿ ÀÒ×ëøýþÚÿÿ°ÿüúÿÿàÕÿÿÖÕùÿÞÂîúÿܨ®¸ÃäüÿãÉÕÝÛ ÿ£¸ÉÑÎÁ® ª¼ÑäòúýÚÿÿ°ÿ.ýõæÖÅ´°´¶¶¹µ°²º¼¹´¬£¤±ÂÑàåâÚÏ·°¯´¿ÉËʸ±²¶¿ÉÔÙ1ØÑƹ®²¼ËÙãéèßν£¤±ÂÒàæàÒ±¤£½ÍÙÚÔǹ¬¤¢«´»¼»¹·þ¸3¶¸¼ÁÂÁ¹°°¹ÆÕßáÛѶ¬©¨¬³½ÆÉÈÁ·©¤¤§°½ËÓ×Óɽ´°°ºÊÛê÷ýêÿåÿþúóæÔ±¤£½ÎÛÝ×ʼ¯©¦¦ª»Þþ¼hHÇ¢µîý¼½8Iá¡¶ÇÏ̱¤£½ÏâðøýÚÿÿ°ÿ.þ÷ìßÑÅÂÇÉÉËÇÁÀÅÅÁ½¶°°ºÈÔàåãÜÔÉÁ¼½ÂÍÖÙØÑǾ¼¾ÃÌ×Þ1àÝÔÉ¿½ÀÈÔàéìêáÓÄ·°°ºÈÔàåàÔȺ°°·ÄÑÜßÛÒǼ´°°´¼ÄÉËÉÈÆþÇ3ÅÇËÐÑÑʽ¿ÅÐÝæéæÝÑÄ»¶¶¹ÂÍÕØ×ÑǼ¶²²¶¾ÉÔÚÛ×ÎÅ¿½¿ÈÕãïùþêÿåÿþùòæ×Ⱥ°°·ÄÒÞãß×ÌÁº¸¸»ÞüÿΡ£Ç¼ûFⲡ¶ÈÑÏȺ°°·ÄÓãïøüÚÿÿ°ÿþúòéàÙ×ÛþÝ#ÚÖÕ×ÖÓÐËÇÈÎ×àèìêåàØÔÑÒ×ÞåçæáÚÒÐÐÓÙáç/êéäÜÕÓÔÚáêðòðéßÔÌÇÈÎ×àèëèà×ÎÈÇÌÔÝæéçáÚÒÍÉÉÌÒ×ÛÜÛüÚ3ÙÚÝàâáÝ×ÓÔØßèïòïêá×ÑÍÌÏÕÞåçæáÚÒÍÉÉÌÒÚáååâÜÖÒÒÔÚãíõûþêÿåÿþûõíá×ÎÈÇÌÔÞèìêåÞ×ÑÐÐÑÛÝü»ä«¡§»îû»Ìº§¼ÎÙÛ×ÎÈÇÌÔßêóùýÚÿÿ°ÿþüøòíééëþì òðîîïñõøûýþéÿåÿþýûøôðíììíïòöþøöóòññþò$ñìå×ȼ²°¹ÈØãçãØË½±ª¨®¼ÏÞêïðíììíïò÷úýþÚÿÿ®ÿÿþþüýý þ§`aÕïìïôùýëÿ÷ÿÒ\]A%'Æõô÷úþ]]P%&øóöùüþ£ÿäÿÿ[ M#$øóöùüþôÿþ§`b«òêíòøüþùÿ_`S)+øóöùüþ×ÿÿ¡ÿ þüúîáâçïõûëÿ÷ÿÿþý'*ÆìèïõúþýÄ')ñçíóøüþ¤ÿåÿÿþ ýÄ%'ñçíóùþóÿ þüúïààåìøþùÿÿþýÆ.0ñçíóøüþØÿÿ¯ÿ£VWWýX ýüÒYY[^cÕÜÔÝçóýûYÒüüþ¤þXÿYÒüüýþ ÿõ¿ÏÓÀÁÿSèÄÀéçåä忬ÿPìÔÀÂëPÿÄÀÔ²¸ÒîîìÿPðÔàìôûþêÿãÿ8ýÀÐ¥³ÉõUÿ_`è`%$ÿ¦±ÄåΧÉÂÙé^%&ÿ§²ÆâÂÐ¥³ÉÞñüØÿÿ°ÿ.ý ¿ÿ¿´ÐÙ¾ÏÑ¿ÐâóðéÞÖ ¾ÕòKÿÑÏNMæìh ¾ÎÈÆ± Ææî ¾ÐѽÎåùý½ ÑоÉöJÿæ¾ÉÍ¿¼ÿNæ¾¾ ÎÉÆ¾©ÿ Néп¼èN ÿо ЪÆÚÜÜÙÿ MîÍÚçòúþêÿãÿ8þ¿ÑоÉåÐsZ§§^2{ÄÖªÀåÍ£ÇÂÔçZ ÿ¡±ÞèÀÑоÉÞñüØÿÿ°ÿ.ý½¾Ð ½ÞIkáÌñJÞÅÜIkj½ãè½Yjk¾³¢»ÞHkáËòhJÞÎéHk ÄÉ ½ºÿ Kå®ÞJ¿¬à()K ÞÈJk̽½ü JÓÂÑáîøþêÿäÿ9nVàÎ×íÃÃȨÁæÌ ºàS7ÿÛpUàÎÜïûØÿÿ°ÿ ý¼³Ãż¼ýþÿÆÿþþÿµ³½Þþ¼ÚØßå¼þ˪̼þþÿÿÆÿýÿÿ¼ÒÕðÂÆ¼»ÿGå¡°ÿüGä§µÁîFýÿª¤ÒûÊÍûѹÊÜë÷þêÿäÿÿ 9 ÀÒÒìÁÁŬÅéÍ¡¯Æÿÿÿ ÀÒ×ëøýþÚÿÿ°ÿüúÿÿàÕÿÿÖÕùÿÞÂîúÿܨ®¸ÃäüÿãÉÕÝÛ ÿ£¸ÉÑÎÁ® ª¼ÑäòúýÚÿÿ°ÿ.ýõæÖÅ´°´¶¶¹µ°²º¼¹´¬£¤±ÂÑàåâÚÏ·°¯´¿ÉËʸ±²¶¿ÉÔÙ1ØÑƹ®²¼ËÙãéèßν£¤±ÂÒàæàÒ±¤£½ÍÙÚÔǹ¬¤¢«´»¼»¹·þ¸3¶¸¼ÁÂÁ¹°°¹ÆÕßáÛѶ¬©¨¬³½ÆÉÈÁ·©¤¤§°½ËÓ×Óɽ´°°ºÊÛê÷ýêÿåÿþúóæÔ±¤£½ÎÛÝ×ʼ¯©¦¦ª»Þþ¼hHÇ¢µîý¼½8Iá¡¶ÇÏ̱¤£½ÏâðøýÚÿÿ°ÿ.þ÷ìßÑÅÂÇÉÉËÇÁÀÅÅÁ½¶°°ºÈÔàåãÜÔÉÁ¼½ÂÍÖÙØÑǾ¼¾ÃÌ×Þ1àÝÔÉ¿½ÀÈÔàéìêáÓÄ·°°ºÈÔàåàÔȺ°°·ÄÑÜßÛÒǼ´°°´¼ÄÉËÉÈÆþÇ3ÅÇËÐÑÑʽ¿ÅÐÝæéæÝÑÄ»¶¶¹ÂÍÕØ×ÑǼ¶²²¶¾ÉÔÚÛ×ÎÅ¿½¿ÈÕãïùþêÿåÿþùòæ×Ⱥ°°·ÄÒÞãß×ÌÁº¸¸»ÞüÿΡ£Ç¼ûFⲡ¶ÈÑÏȺ°°·ÄÓãïøüÚÿÿ°ÿþúòéàÙ×ÛþÝ#ÚÖÕ×ÖÓÐËÇÈÎ×àèìêåàØÔÑÒ×ÞåçæáÚÒÐÐÓÙáç/êéäÜÕÓÔÚáêðòðéßÔÌÇÈÎ×àèëèà×ÎÈÇÌÔÝæéçáÚÒÍÉÉÌÒ×ÛÜÛüÚ3ÙÚÝàâáÝ×ÓÔØßèïòïêá×ÑÍÌÏÕÞåçæáÚÒÍÉÉÌÒÚáååâÜÖÒÒÔÚãíõûþêÿåÿþûõíá×ÎÈÇÌÔÞèìêåÞ×ÑÐÐÑÛÝü»ä«¡§»îû»Ìº§¼ÎÙÛ×ÎÈÇÌÔßêóùýÚÿÿ°ÿþüøòíééëþì òðîîïñõøûýþéÿåÿþýûøôðíììíïòöþøöóòññþò$ñìå×ȼ²°¹ÈØãçãØË½±ª¨®¼ÏÞêïðíììíïò÷úýþÚÿÿ®ÿÿþþüýý þ§`aÕïìïôùýëÿ÷ÿÒ\]A%'Æõô÷úþ]]P%&øóöùüþ£ÿäÿÿ[ M#$øóöùüþôÿþ§`b«òêíòøüþùÿ_`S)+øóöùüþ×ÿÿ¡ÿ þüúîáâçïõûëÿ÷ÿÿþý'*ÆìèïõúþýÄ')ñçíóøüþ¤ÿåÿÿþ ýÄ%'ñçíóùþóÿ þüúïààåìøþùÿÿþýÆ.0ñçíóøüþØÿÿ¯ÿ£VWWýX ýüÒYY[^cÕÜÔÝçóýûYÒüüþ¤þXÿYÒüüýþ ÿõ¿ÏÓÀÁÿSèÄÀéçåä忬ÿPìÔÀÂëPÿÄÀÔ²¸ÒîîìÿPðÔàìôûþêÿãÿ8ýÀÐ¥³ÉõUÿ_`è`%$ÿ¦±ÄåΧÉÂÙé^%&ÿ§²ÆâÂÐ¥³ÉÞñüØÿÿ°ÿ.ý ¿ÿ¿´ÐÙ¾ÏÑ¿ÐâóðéÞÖ ¾ÕòKÿÑÏNMæìh ¾ÎÈÆ± Ææî ¾ÐѽÎåùý½ ÑоÉöJÿæ¾ÉÍ¿¼ÿNæ¾¾ ÎÉÆ¾©ÿ Néп¼èN ÿо ЪÆÚÜÜÙÿ MîÍÚçòúþêÿãÿ8þ¿ÑоÉåÐsZ§§^2{ÄÖªÀåÍ£ÇÂÔçZ ÿ¡±ÞèÀÑоÉÞñüØÿÿ°ÿ.ý½¾Ð ½ÞIkáÌñJÞÅÜIkj½ãè½Yjk¾³¢»ÞHkáËòhJÞÎéHk ÄÉ ½ºÿ Kå®ÞJ¿¬à()K ÞÈJk̽½ü JÓÂÑáîøþêÿäÿ9nVàÎ×íÃÃȨÁæÌ ºàS7ÿÛpUàÎÜïûØÿÿ°ÿ ý¼³Ãż¼ýþÿÆÿþþÿµ³½Þþ¼ÚØßå¼þ˪̼þþÿÿÆÿýÿÿ¼ÒÕðÂÆ¼»ÿGå¡°ÿüGä§µÁîFýÿª¤ÒûÊÍûѹÊÜë÷þêÿäÿÿ 9 ÀÒÒìÁÁŬÅéÍ¡¯Æÿÿÿ ÀÒ×ëøýþÚÿÿ°ÿüúÿÿàÕÿÿÖÕùÿÞÂîúÿܨ®¸ÃäüÿãÉÕÝÛ ÿ£¸ÉÑÎÁ® ª¼ÑäòúýÚÿÿ°ÿ.ýõæÖÅ´°´¶¶¹µ°²º¼¹´¬£¤±ÂÑàåâÚÏ·°¯´¿ÉËʸ±²¶¿ÉÔÙ1ØÑƹ®²¼ËÙãéèßν£¤±ÂÒàæàÒ±¤£½ÍÙÚÔǹ¬¤¢«´»¼»¹·þ¸3¶¸¼ÁÂÁ¹°°¹ÆÕßáÛѶ¬©¨¬³½ÆÉÈÁ·©¤¤§°½ËÓ×Óɽ´°°ºÊÛê÷ýêÿåÿþúóæÔ±¤£½ÎÛÝ×ʼ¯©¦¦ª»Þþ¼hHÇ¢µîý¼½8Iá¡¶ÇÏ̱¤£½ÏâðøýÚÿÿ°ÿ.þ÷ìßÑÅÂÇÉÉËÇÁÀÅÅÁ½¶°°ºÈÔàåãÜÔÉÁ¼½ÂÍÖÙØÑǾ¼¾ÃÌ×Þ1àÝÔÉ¿½ÀÈÔàéìêáÓÄ·°°ºÈÔàåàÔȺ°°·ÄÑÜßÛÒǼ´°°´¼ÄÉËÉÈÆþÇ3ÅÇËÐÑÑʽ¿ÅÐÝæéæÝÑÄ»¶¶¹ÂÍÕØ×ÑǼ¶²²¶¾ÉÔÚÛ×ÎÅ¿½¿ÈÕãïùþêÿåÿþùòæ×Ⱥ°°·ÄÒÞãß×ÌÁº¸¸»ÞüÿΡ£Ç¼ûFⲡ¶ÈÑÏȺ°°·ÄÓãïøüÚÿÿ°ÿþúòéàÙ×ÛþÝ#ÚÖÕ×ÖÓÐËÇÈÎ×àèìêåàØÔÑÒ×ÞåçæáÚÒÐÐÓÙáç/êéäÜÕÓÔÚáêðòðéßÔÌÇÈÎ×àèëèà×ÎÈÇÌÔÝæéçáÚÒÍÉÉÌÒ×ÛÜÛüÚ3ÙÚÝàâáÝ×ÓÔØßèïòïêá×ÑÍÌÏÕÞåçæáÚÒÍÉÉÌÒÚáååâÜÖÒÒÔÚãíõûþêÿåÿþûõíá×ÎÈÇÌÔÞèìêåÞ×ÑÐÐÑÛÝü»ä«¡§»îû»Ìº§¼ÎÙÛ×ÎÈÇÌÔßêóùýÚÿÿ°ÿþüøòíééëþì òðîîïñõøûýþéÿåÿþýûøôðíììíïòöþøöóòññþò$ñìå×ȼ²°¹ÈØãçãØË½±ª¨®¼ÏÞêïðíììíïò÷úýþÚÿÿ®ÿÿþþüýý --- NEW FILE: tutorialsbar.psd --- CVS Browser: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/java-game-lib/LWJGL/content/tutorialsbar.psd 8BPS <?adobe-xap-filters esc="CR"?> <x:xapmeta xmlns:x='adobe:ns:meta/' x:xaptk='XMP toolkit 2.8.2-33, framework 1.5'> <rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'> <rdf:Description about='uuid:fef30d53-c0e6-11d6-93f1-8caac778c2ef' xmlns:xapMM='http://ns.adobe.com/xap/1.0/mm/'> <xapMM:DocumentID>adobe:docid:photoshop:fef30d50-c0e6-11d6-93f1-8caac778c2ef</xapMM:DocumentID> </rdf:Description> </rdf:RDF> </x:xapmeta> <?xpacket end='w'?> Objc ESliceType leftOutsetlong ESliceType leftOutsetlong ESliceType leftOutsetlong ESliceType leftOutsetlong ESliceType leftOutsetlong ESliceType leftOutsetlong ESliceType leftOutsetlong ESliceType leftOutsetlong ESliceType leftOutsetlong ESliceType leftOutsetlong ÿÀ zonedLossyObjc autoReducebool fileFormatenum FileFormat ColorTable interlacedbool NativeQuad fileFormatenum FileFormat interlacedbool NativeQuad fileFormatenum FileFormat interlacedbool NativeQuad zonedLossyObjc autoReducebool fileFormatenum FileFormat ColorTable interlacedbool NativeQuad fileFormatenum FileFormat interlacedbool NativeQuad zonedLossyObjc autoReducebool fileFormatenum FileFormat ColorTable interlacedbool NativeQuad fileFormatenum FileFormat interlacedbool NativeQuad zonedLossyObjc autoReducebool fileFormatenum FileFormat ColorTable interlacedbool NativeQuad fileFormatenum FileFormat interlacedbool NativeQuad zonedLossyObjc autoReducebool fileFormatenum FileFormat ColorTable interlacedbool NativeQuad Background useTexturebool EngineDatatdta 00000ÿÿÿÿ ÿ;ÿ[ÿå) /Keep (þÿ %) /Hanging (þÿ 0000ÿÿ;ÿ[) /Keep (þÿ %) /Hanging (þÿ leftOutsetlong ESliceType leftOutsetlong ESliceType leftOutsetlong ESliceType leftOutsetlong ESliceType leftOutsetlong ESliceType leftOutsetlong ESliceType leftOutsetlong ESliceType leftOutsetlong ÿÀ warpRotateenum useTexturebool EngineDatatdta 00000ÿÿÿÿ ÿ;ÿ[ÿå) /Keep (þÿ %) /Hanging (þÿ 0000ÿÿ;ÿ[) /Keep (þÿ %) /Hanging (þÿ leftOutsetlong ESliceType leftOutsetlong ESliceType leftOutsetlong ESliceType leftOutsetlong ESliceType leftOutsetlong ESliceType leftOutsetlong ESliceType leftOutsetlong ESliceType leftOutsetlong ÿÀ warpRotateenum useTexturebool EngineDatatdta 00000ÿÿÿÿ ÿ;ÿ[ÿå) /Keep (þÿ %) /Hanging (þÿ 0000ÿÿ;ÿ[) /Keep (þÿ %) /Hanging (þÿ leftOutsetlong ESliceType leftOutsetlong ESliceType leftOutsetlong ESliceType leftOutsetlong ESliceType leftOutsetlong ESliceType leftOutsetlong ESliceType leftOutsetlong ESliceType leftOutsetlong ÿÀ warpRotateenum useTexturebool EngineDatatdta 00000ÿÿÿÿ ÿ;ÿ[ÿå) /Keep (þÿ %) /Hanging (þÿ 0000ÿÿ;ÿ[) /Keep (þÿ %) /Hanging (þÿ leftOutsetlong ESliceType leftOutsetlong ESliceType leftOutsetlong ESliceType leftOutsetlong ESliceType leftOutsetlong ESliceType leftOutsetlong ESliceType leftOutsetlong ESliceType leftOutsetlong ÿÀ warpRotateenum ý03Éìèïõùýúÿ ÿÿþ ý,/Èìèïõùýïÿäÿ ýüúíàãéñúþàÿ Ä%'úúûúùüþÔÿÝÿ #%Åúúûùùý»ÿÌÿÒYýZ¥ýûýÒ[[\]^^ýûüþÿ^^_^_þüüþý]ÿ^ÓüüýþÓ\\]þ^ýûúøø49ËßÙãíõûúÿ×ÿÒYýZ¥ýûýÒ[[\]^^ýûüþÿ^^þ_þüüþ]]ý^ÓüüýþÒ[[\]]§ýûüûøù05ÊßÙãíõûïÿçÿ¤YY[^bôÒÖàîÒþYÿZ[ýûüÿþ[ÿ\ÿ]þüüþ]\þýÓ]]¦þþ§O&*IhhføöûþþÖÿÿ¤XYÒýþYY þýýÿYYZ[[ýûüþÿZý['þüüþ>"&Tdda¨÷øýÒYYZZ[¥ýûýÒ[[¥þþ[[þýýþþÔÿÍÿEÂwx [¦øøÃ\CDúõü@?`&âöý]!"|%|Ä÷ùÄy z&'aûòòñõ7>ÌÐÆÔãïùþûÿØÿEÂwx [¦øøÃ\CDúõü@?`&âöý]""|%|Ä÷÷ûá#^§øõöôö39ËÐÆÔãïùþðÿçÿ;Â>&*ÿÇÌÚíÃY??úõÿ>^%âöý]"!ÿøÄ##úøÄ|(-i¢¢ «îîõúüþ×ÿHÿÂùÿYý÷áY>>úõü;;[ áöû¥Z"&ÅíóÃww[¦øøÃá> ÿõ÷ùûýþÖÿÍÿEÃõÿ$$^ùñÃóøa)(ÿëÿ$#^ûô((Åïú]""ÿòÅ&&óõ Äõÿ(*cøæéêò6=ÍÅ·ÈÚë÷þûÿØÿEÃõÿ$$^ùñÃóøa)(ÿëÿ$#^ûô)(Åïú^##ÿòÅ'&óíò÷ûûúÿ$%`ùìîïô18ËÅ·ÈÚë÷þðÿçÿ;þýü[&*ÿ¿ÅÕêÃóø]""ÿëÿ[ùò'&Åïú^""ÿñÅ$#õìñÅ(. Ù×ÛÞ×åð÷ûý×ÿHþÂñÿYúñÂöù[!!ÿëÿXûô Ãïîö %ÆØØÜÙÚóÂõÿ [ùñÃà ! ÿéìñöûþÖÿÍÿEÄèÿ((aôæÄ ëôd++ÿÜÿ$#^øö*)Æä÷^""ÿáÅ('ëî Äèÿ*,eóÖÜãñ18Ì¿®ÀÔçõþûÿØÿEÄèÿ((aôæÄ ëôd++ÿÜÿ$#^øö**Æä÷^##ÿáÆ)(ëàèôüüûÿ#&`õÝãéó,3Ê¿®ÀÔçõþðÿçÿ<ýùü[%*ÿ¹ÁÒéÂëô^$#ÿÜÿ \õé((Åä÷^##ÿçÅ%%íßèÅ(- Ѥ¬»ÌÝëóøüþØÿ=þÂèÿYöçÂ÷õ[ ÿÜÿWøßïÿÿïÞåó"ž¥°¿ÑîÂèÿ [ôæÃ[ýÿïÜáéòøýÖÿÎÿFþÄÝÿ,-dïÙÄ""áîd,+ÿÊÿ$#2_aG+*ÆÕò]""ÿÒÆ))àå ÄÛÿ,.fíÂÌØî+1ʼ¨»ÐäõþûÿÙÿFþÄÝÿ,-dïÙÄ""áîd,+ÿÊÿ$#3`bH,+ÆÕò^##ÿÒÆ*)àÐáÒXWY[#'aðËÕàñ&-ȼ¨»Ðäõþðÿèÿ=þüøûZ%)ÿ°¹ÌæÂâîa('ÿÊÿ\ðÝ)(Å×ò^##ÿÚÅ&&ãÎÝÅ'*Ë °ÃÖæð÷ûþØÿHþÂÛÿYñÚÂ8WY-ÿÈÿVóËÄÃÅËÒÜîͤµÈëÁÛÿ[ïÙÂwÒØÃÃÅÉÎÖâìõüÖÿÎÿFþ ÅÑÿ--eëÍÅ$$Øêb))ÿºÿ#"1^abcbÔÂí]"#ÿÇÆ++ØÝ ÄÐÿ),e鳿Ðì$*È»¦¸ÎãôþûÿÙÿFþ ÅÑÿ--eëÍÅ$$Øêb))ÿºÿ#"1_acdcÔÂí^!"ÿÇÆ)(ØÈáFVY!%aê¹ÆÖî &Ç»¦¸Îãôþðÿèÿ=þüøûX!&ÿª³ÈäÂÚêb)(ÿºÿ[ìÕ'&ÅËî]!"ÿÎÅ%%Û¿ÔÄ#%ɯÂ׿ñ÷ûþØÿþÁÐÿWìÎÁ6VVþX3é¶ÿSï»¶·¼ÄÍ×íó¡³ÈëÁÐÿWëÍÂÙ²±³·¿ÆÐÝêõüÖÿÎÿFþÅÉÿ*+dèÄÅ##Òç`&$ÿ®ÿ[êèåää¿©ë]"#ÿ¿Æ)*ÒÖ ÄÇÿ%'aæ©¶Êë!ż§¸ÎãôþûÿÙÿFþÅÉÿ*+dèÄÅ##Òç`&$ÿ®ÿ[êèåää¿©ë[ !ÿ¿Å&'Ò×Áöÿ!^窺Îíż§¸Îãôþðÿçÿ<ýúûV!ÿ§°ÅâÁÕça'&ÿ®ÿ [éÐ##ÄÂë[ÿÄÄ""Ô³Íà ʢ´ÈÝëôùüþØÿHýÀëÿTéÄÀéçåä忬ÿQì¯ÎëíØÐÚíÁµ¦¹ÎíÀÈÿSèÄÀÒ¤¥ª²¼ÇÑßìõüÖÿÎÿFþÄÓÿ&'aæ¾Ä!!Îæ]"!ÿ¦ÿZçÊÆÅ§ê[!ÿºÅ%&ÎÒÃÒÿ!\壻àêÄÐѽÎãôþûÿÙÿFþÄÓÿ&'aæ¾Ä!!Îæ]"!ÿ¦ÿYçÊÆÅ§êYÿºÄ##ÎÓÁèÿ[ä »âëÃÐѽÎãôþðÿçÿ;þýüRÿÎÍÂßÁÑæ^##ÿ¦ÿZçÍ Ã¼èWÿÐÃЫÉÂÌÊÐÖÏãðøûý×ÿHüÞ ?PPpÏÁ¾¿ÍÉÆ¾©ÿ NéÐNNÎßàð ¿ËËÒÐÔð ¾ÓÿOæ¾¿Ì ª·ÅÒÜçðøýÖÿÎÿý¿qw [¦ÄºÃY;;סÚ89ý'Ó©êWÿ¹Ä ̼ÂvvXä¬àPuáËáòýûÿÙÿý¿qw [¦ÄºÃY;;סÚ89þ'Ó©êVÿ¹Ã̾ÂsrYá¦àPtáËáòýðÿçÿ;¾0¤×ÝÀÐåYÿ¡ÿ9YáÈ¢Uț»à4T¡åæóùüþ×ÿüôÞ* ¾¸®Þ Kþ5¿¬à))KÞàãí½k½âí½jk Kĺ½Ë¡°ÀÑÞçïõúþÖÿÎÿüõ¿Ê¹Áý6Uä ªéSÿ¤±íRÿºÂÌ£¾ÁSä¸ÀÿÆÜïúþüÿÙÿüõ¿Ê¹Áý Uä ªéSþ(ÿ¤±íQÿºÁÌ¥ÄÀUà±À ÿÆÜïúþñÿçÿ TìØ¿ÐæUÿ¡ÿýþÿ©¤ÒüÊ£°ÆïOOóåòøûþ×ÿýôçòGÿµ¤¶ÿGä§µÁîFþÿÕÚäçêÿýêåí¼ýʹ¼Ë§¹ËÞëò÷úýþÖÿÎÿýóóüÿ×£¼Àþÿ代ªÊêüÿÙ±¿ÚñÿÿÝ¥ÙÿÿÚ©§ªÞýÿÿPãÜùÿÞÂØìøüþýÿÙÿýóóüÿ×£¼Àþÿ代ªÊêüÿÙ±¿ÚñÿÿÝ¥ÙÿÿÚ©¨°áûÿá²ÛùÿÞÂØìøüþòÿßÿæÌÇíÿÿâ¯ÁçÿÿÙ¤ÿOýÿÕ¡¨³ÞûÿÖ ¤³ÁÙðýÿîÞàîöúýþØÿ ýõèäïÿÿס«³âüÿåôÃËÝðüÿäË×âææðüÿæÖáäðüÿ×£¤ÜÿÿÜ©¥°Â×éõûüþþÕÿÎÿ(ýõæÔ²§£¡¢¤Á¾Ë¡ª³»¼¹®¤¤¼ËÔÕ͵ªþ¬®½ÉÊÈÄÿLâ§¼ËÑ˼ª ®ÁÕéõûþýÿÙÿ(ýõæÔ²§£¡¢¤Á¾Ë¡ª³»¼¹®¤¤¼ËÔÕ͵ªþ¬¯¶¼¾¼´¨ÂÏÔ˼ª ®ÁÕéõûþòÿèÿþýùïàË·¥¡³ÅÑÓ˽±¬þ(ª¬ÿ Lå¡§±¹»º´¬¤¡ ©¸ÆÍÍŶ®²½ËÚéòøûþØÿCþøîßμ¤¢ª¶ÀÅû£¡¦°¿Î××ÑÆ¶¬ª°¹ÅÑÝäæßÓ´³¿ÎÜáÚο±§£¡¢¤«²¶µ³¯ºÍàñûÑÿÎÿ(þøìÝ̼°«©ªÉ½Ê©´¿ÈÊǽ³¬¯¶ÃÒÜÝÖÍÀ¹¶þ¸·ÃÞ½¼þ½({Ë¥ºÈÏʽ£¤±ÂÔæóúþýÿÙÿ(þøìÝ̼°«©ªÉ½Ê©´¿ÈÊǽ³¬¯¶ÃÒÜÝÖÍÀ¹¶þ¸·º¿ÅÆÃ»¯¦ ©¶ÈÑÔ˽£¤±ÂÔæóúþòÿèÿþû÷íÝ˹ª¢§¶ÅÐÔÏż·þ¸(¶·ÿHå§±½ÆÉÈÁ·©¤¤§²ÀÏÖ×ϸ·¾ÈÕãîõûþØÿCþûóéÚɺ°«®·ÄÐÔÒɼ°°¹ÆÕßáÛѶ°²·ÁËÙãçäÜο¶¸¿Ë×ÞÜÔȼ°«©ª·¾Â¿¹¼ÅÖæôýÑÿÎÿ(þúòæØË¿¹¶¸¼Ô¼Ê§µÃÏ×Ù×ÎĽ¾ÃÎÚãåàØÎÈÅþÇÆâýÿ̦ºÉÑÎÄ·°°ºÈ׿òùþýÿÙÿ(þúòæØË¿¹¶¸¼Ô¼Ê§µÃÏ×Ù×ÎĽ¾ÃÎÚãåàØÎÈÅþÇÆÉÍÑÒÐɾ¶°¯±¹ÅÑ××ÏÄ·°°ºÈ׿òùþòÿèÿþûöíßÏÁµ¯²¾ÊÔÙ×ÐÉýÇ(ÅÇÿF壱¿ÍÕØ×ÑǼ¶²²¶¿ÌÚàáÜÑÆÂÅËÕáìõúþØÿCÿýøñæØË¾ÀÉÔßãàØÌ½¿ÅÐÝæéæÝÑŽ¼¾ÅÎÛæììæÚÎÄÂÅÍ×ààÝÔÊ¿¹¶¸¼ÆÎÑÑÎÉÊÒßì÷þÑÿÍÿ'ü÷ïæÝÔÎÍÎÒÛݮª¸ÈÖàæèæàØÓÓ×ÝæìîëæßÚÙýÚßÝû»Ý¦«ÀÐÚÚÔÌÇÈÎ×áíõûþýÿØÿ'ü÷ïæÝÔÎÍÎÒÛݮª¸ÈÖàæèæàØÓÓ×ÝæìîëæßÚÙýÚÛÞáâàÛÔÎÊÈËÑ×àããÝÔÌÇÈÎ×áíõûþòÿèÿþüøòçÜÒËÇÉÑÙàããßÛýÚ(ÙÚî»»ÌÁ¥³ÄÒÞåçæáÚÒÍÉÉÌÓÝæììéáÙÔÕÙàèñ÷ûþØÿCÿþüøðçÞ×ÓÕÜåìïíçß×ÓÔØßèïòïêáØÑÏÐÔÛäìòòïèß×ÔÕÚàçéèãÜÔÎÍÎÒÙßááßÛÜáéòúþÑÿÍÿþûöñëäàßàãççåÚΤ«¸ÈØåíþò íèãâãçíòôòïìéèüéìîêåÞÔÉ´¡¥´È×ãæãÞÛÛßåëòøüþýÿØÿþûöñëäàßàãççåÚΤ«¸ÈØåíþò íèãâãçíòôòïìéèýéêìîïíêäàÝÝÞâæëíìèãÞÛÛßåëòøüþòÿçÿýúõïèâÝÚÜàæêííìúé&äåÚˬ¤§´ÃÔâìðòòïéãßÝÝßäêñôõòîèäãåéïõùüþØÿÿÿAþüøòìçåæëñöøöòìæããäéïôööóîçâààâæíó÷ø÷òìæããæêïòñïêäàßàãéìîîìêêíòøüþÑÿÌÿþûøõòïîïñòïäÕŶ³ºÈ׿ñ÷ùúù÷óðïïñôýøÿõûôòïéàÕÈ»°ª©²ÁÒàìïïíììíðôøûýþýÿ×ÿþûøõòïîïñòïäÕŶ³ºÈ׿ñ÷ùúù÷óðïïñôýøÿõüôõö÷ø÷õòïììíðòþõòïíììíðôøûýþòÿçÿþüùõòïìëìîñóýõûô%ïæ×ȸ²¶ÃÒãïöùúúøôñîììîñõøûûú÷óñïðòõøûþ×ÿþÿ?þýú÷õóôöùüýüùöòðïïòõøûûú÷óðïîïòöùüýüùöòðïðòõøø÷õòïîïñôöø÷öõõöùûþÐÿËÿÿþüûúùùûûõìßÑÅÄË×åñùýþþýûúùùúûüþýÿüûûøóìâ×ËÁº·¹ÂÐßëõøùþøùúûüþþüÿÖÿÿþüûúùùûûõìßÑÅÄË×åñùýþþýûúùùúûüþýÿüüûÿüþýüûùøøùúüû üõìâÙÖÚäí÷ý¼ÿÿÂÿ üøòìææêðöûþêÿýùõîèâÝÜÝßåìóùýñÿÍÿ üøòìææêðöûþÀÿÑÿ þùóíçæéïôúþ¼ÿÿ... [truncated message content] |
From: Brian M. <ma...@us...> - 2002-12-20 21:19:23
|
Update of /cvsroot/java-game-lib/LWJGL/content/includedfiles In directory sc8-pr-cvs1:/tmp/cvs-serv7900/includedfiles Removed Files: README.html Log Message: removing not used files --- README.html DELETED --- CVS Browser: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/java-game-lib/LWJGL/content/includedfiles/README.html |
From: Brian M. <ma...@us...> - 2002-12-20 20:51:07
|
Update of /cvsroot/java-game-lib/LWJGL/src/java/org/lwjgl/test/opengl In directory sc8-pr-cvs1:/tmp/cvs-serv30534 Modified Files: Grass.java Log Message: fix: package statment was fucked Index: Grass.java CVS Browser: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/java-game-lib/LWJGL/src/java/org/lwjgl/test/opengl/Grass.java =================================================================== RCS file: /cvsroot/java-game-lib/LWJGL/src/java/org/lwjgl/test/opengl/Grass.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- Grass.java 19 Dec 2002 16:35:35 -0000 1.2 +++ Grass.java 20 Dec 2002 20:47:41 -0000 1.3 @@ -1,4 +1,4 @@ -import org.lwjgl.input.*; +package org.lwjgl.test.opengl; import org.lwjgl.input.*; import org.lwjgl.opengl.*; import org.lwjgl.*; |
From: Brian M. <ma...@us...> - 2002-12-20 20:46:49
|
Update of /cvsroot/java-game-lib/LWJGL/src/java/org/lwjgl/test/openal In directory sc8-pr-cvs1:/tmp/cvs-serv29741 Modified Files: MovingSoundTest.java Log Message: fix: new display creation Index: MovingSoundTest.java CVS Browser: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/java-game-lib/LWJGL/src/java/org/lwjgl/test/openal/MovingSoundTest.java =================================================================== RCS file: /cvsroot/java-game-lib/LWJGL/src/java/org/lwjgl/test/openal/MovingSoundTest.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- MovingSoundTest.java 19 Dec 2002 22:18:10 -0000 1.1 +++ MovingSoundTest.java 20 Dec 2002 20:44:54 -0000 1.2 @@ -82,7 +82,7 @@ //initialize display try { - Display.create(new DisplayMode(320, 240, 32, 60), false); + Display.create(new DisplayMode(320, 240, 32, 60), 8, 24, 0, false); } catch (Exception e) { e.printStackTrace(); exit(-1); |
From: Brian M. <ma...@us...> - 2002-12-19 22:18:15
|
Update of /cvsroot/java-game-lib/LWJGL/src/java/org/lwjgl/test/openal In directory sc8-pr-cvs1:/tmp/cvs-serv26268 Added Files: MovingSoundTest.java Log Message: yet another test --- NEW FILE: MovingSoundTest.java --- CVS Browser: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/java-game-lib/LWJGL/src/java/org/lwjgl/test/openal/MovingSoundTest.java /* * Copyright (c) 2002 Light Weight Java Game Library Project * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are * met: * * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * * Neither the name of 'Light Weight Java Game Library' nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ package org.lwjgl.test.openal; import org.lwjgl.openal.AL; import org.lwjgl.openal.eax.*; import org.lwjgl.input.Keyboard; import org.lwjgl.Sys; import org.lwjgl.Display; import org.lwjgl.DisplayMode; import java.nio.IntBuffer; /** * $Id: MovingSoundTest.java,v 1.1 2002/12/19 22:18:10 matzon Exp $ * * This test simulates a listener positioned in the center, and * a source moving around the listener using the keyboard * * @author Brian Matzon <br...@ma...> * @version $Revision: 1.1 $ */ public class MovingSoundTest extends BasicTest { public static float MOVEMENT = 50.00f; /** * Creates an instance of MovingSoundTest */ public MovingSoundTest() { super(); } /** * Runs the actual test, using supplied arguments */ protected void execute(String[] args) { if (args.length < 1) { System.out.println("please specify filename to play"); return; } int lastError; float sourcex = 0.0f, sourcey = 0.0f, sourcez = 0.0f; float listenerx = 0.0f, listenery = 0.0f, listenerz = 0.0f; boolean eaxApplied = false; IntBuffer Env = null; EAXBufferProperties eaxBufferProp = null; //initialize AL, using ALC alInitialize(); //initialize display try { Display.create(new DisplayMode(320, 240, 32, 60), false); } catch (Exception e) { e.printStackTrace(); exit(-1); } //initialize keyboard try { Keyboard.create(); } catch (Exception e) { e.printStackTrace(); exit(-1); } //create 1 buffer and 1 source IntBuffer buffers = createIntBuffer(1); IntBuffer sources = createIntBuffer(1); // al generate buffers and sources al.genBuffers(1, Sys.getDirectBufferAddress(buffers)); if ((lastError = al.getError()) != AL.NO_ERROR) { exit(lastError); } al.genSources(1, Sys.getDirectBufferAddress(sources)); if ((lastError = al.getError()) != AL.NO_ERROR) { exit(lastError); } //load wave data WaveData wavefile = WaveData.create(args[0]); //copy to buffers al.bufferData( buffers.get(0), wavefile.format, Sys.getDirectBufferAddress(wavefile.data), wavefile.data.capacity(), wavefile.samplerate); if ((lastError = al.getError()) != AL.NO_ERROR) { exit(lastError); } //unload file again wavefile.dispose(); //set up source input al.sourcei(sources.get(0), AL.BUFFER, buffers.get(0)); if ((lastError = al.getError()) != AL.NO_ERROR) { exit(lastError); } al.sourcef(sources.get(0), AL.REFERENCE_DISTANCE, 1024.0f); al.sourcef(sources.get(0), AL.ROLLOFF_FACTOR, 0.5f); //lets loop the sound al.sourcei(sources.get(0), AL.LOOPING, AL.TRUE); if ((lastError = al.getError()) != AL.NO_ERROR) { exit(lastError); } //play source 0 al.sourcePlay(sources.get(0)); if ((lastError = al.getError()) != AL.NO_ERROR) { exit(lastError); } //setup EAX if possible EAX eax = null; if (al.isExtensionPresent("EAX")) { eax = new EAX(); try { eax.create(); Env = createIntBuffer(1); eaxBufferProp = new EAXBufferProperties(); } catch (Exception e) { eax = null; } } System.out.println("Move source with arrow keys\nMove listener with right shift and arrowkeys\nEnable EAX effect by pressing e (if available)\nExit with ESC"); while(!Keyboard.isKeyDown(Keyboard.KEY_ESCAPE)) { Keyboard.poll(); if(Keyboard.isKeyDown(Keyboard.KEY_LEFT)) { if(Keyboard.isKeyDown(Keyboard.KEY_RSHIFT)) { listenerx -= MOVEMENT; al.listener3f(AL.POSITION, listenerx, listenery, listenerz); System.out.println("listenerx: " + listenerx); } else { sourcex -= MOVEMENT; al.source3f(sources.get(0), AL.POSITION, sourcex, sourcey, sourcez); System.out.println("sourcex: " + sourcex); } } if(Keyboard.isKeyDown(Keyboard.KEY_RIGHT)) { if(Keyboard.isKeyDown(Keyboard.KEY_RSHIFT)) { listenerx += MOVEMENT; al.listener3f(AL.POSITION, listenerx, listenery, listenerz); System.out.println("listenerx: " + listenerx); } else { sourcex += MOVEMENT; al.source3f(sources.get(0), AL.POSITION, sourcex, sourcey, sourcez); System.out.println("sourcex: " + sourcex); } } if(Keyboard.isKeyDown(Keyboard.KEY_E)) { if(eax != null) { if(eaxApplied) { Env.put(0, EAX.ENVIRONMENT_GENERIC); eax.eaxSet( EAX.LISTENER_GUID, EAXListenerProperties.ENVIRONMENT, 0, Sys.getDirectBufferAddress(Env), 4); } else { Env.put(0, EAX.ENVIRONMENT_HANGAR); eax.eaxSet( EAX.LISTENER_GUID, EAXListenerProperties.ENVIRONMENT, 0, Sys.getDirectBufferAddress(Env), 4); } eaxApplied = !eaxApplied; } } try { Thread.sleep(100); } catch (InterruptedException inte) { } } //stop source 0 al.sourceStop(sources.get(0)); if ((lastError = al.getError()) != AL.NO_ERROR) { exit(lastError); } //delete buffers and sources al.deleteSources(1, Sys.getDirectBufferAddress(sources)); if ((lastError = al.getError()) != AL.NO_ERROR) { exit(lastError); } al.deleteBuffers(1, Sys.getDirectBufferAddress(buffers)); if ((lastError = al.getError()) != AL.NO_ERROR) { exit(lastError); } //shutdown alExit(); } /** * main entry point * * @param args String array containing arguments */ public static void main(String[] args) { MovingSoundTest movingSoundTest = new MovingSoundTest(); movingSoundTest.execute(args); } } |
From: Elias N. <eli...@us...> - 2002-12-19 16:35:39
|
Update of /cvsroot/java-game-lib/LWJGL/src/native/win32 In directory sc8-pr-cvs1:/tmp/cvs-serv17077/src/native/win32 Modified Files: org_lwjgl_Display.cpp org_lwjgl_input_Keyboard.cpp org_lwjgl_input_Mouse.cpp org_lwjgl_opengl_BaseGL.cpp Log Message: Moved BaseGL constructor parameters to Display Index: org_lwjgl_Display.cpp CVS Browser: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/java-game-lib/LWJGL/src/native/win32/org_lwjgl_Display.cpp =================================================================== RCS file: /cvsroot/java-game-lib/LWJGL/src/native/win32/org_lwjgl_Display.cpp,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- org_lwjgl_Display.cpp 18 Dec 2002 16:40:12 -0000 1.9 +++ org_lwjgl_Display.cpp 19 Dec 2002 16:35:35 -0000 1.10 @@ -56,6 +56,37 @@ HDC hdc = NULL; // Device context LPDIRECTINPUT lpdi = NULL; +void destroyDI(void) +{ + lpdi->Release(); + lpdi = NULL; +} + +void destroyWindow(void) +{ + // Reset the display if necessary + ChangeDisplaySettings(NULL, 0); + + if (hwnd != NULL) { + // Vape the window + DestroyWindow(hwnd); + hwnd = NULL; + } + +#ifdef _DEBUG + printf("Destroyed display\n"); +#endif + + // Show the mouse + ShowCursor(TRUE); +} + +void destroyAll(void) +{ + destroyDI(); + destroyWindow(); +} + void dumpLastError(void) { LPVOID lpMsgBuf; FormatMessage( @@ -192,7 +223,8 @@ * Signature: (IIIIZ)Z */ JNIEXPORT jboolean JNICALL Java_org_lwjgl_Display_nCreate - (JNIEnv * env, jclass clazz, jint width, jint height, jint bpp, jint freq, jboolean fullscreen) + (JNIEnv * env, jclass clazz, jint width, jint height, jint bpp, jint freq, + jint alphaBits, jint depthBits, jint stencilBits, jboolean fullscreen) { #ifdef _DEBUG printf("Creating display: size %dx%d %dhz %dbpp...\n", width, height, freq, bpp); @@ -259,7 +291,7 @@ printf("Failed to create directinput"); switch (ret) { case DIERR_BETADIRECTINPUTVERSION : - printf(" - Beta versio0n\n"); + printf(" - Beta version\n"); break; case DIERR_INVALIDPARAM : printf(" - Invalid parameter\n"); @@ -272,13 +304,98 @@ break; default: printf("\n"); - } + } + destroyWindow(); return JNI_FALSE; } - jfieldID fid_handle = env->GetStaticFieldID(clazz, "handle", "I"); - env->SetStaticIntField(clazz, fid_handle, (jint) hwnd); - + int flags = PFD_DRAW_TO_WINDOW | // support window + PFD_SUPPORT_OPENGL | // support OpenGL + PFD_GENERIC_ACCELERATED | + PFD_DOUBLEBUFFER; // double buffered + + PIXELFORMATDESCRIPTOR pfd = { + sizeof(PIXELFORMATDESCRIPTOR), // size of this pfd + 1, // version number + flags, // RGBA type + PFD_TYPE_RGBA, + (BYTE)bpp, + 0, 0, 0, 0, 0, 0, // color bits ignored + (BYTE)alphaBits, + 0, // shift bit ignored + 0, // no accumulation buffer + 0, 0, 0, 0, // accum bits ignored + (BYTE)depthBits, + (BYTE)stencilBits, + 0, // One auxiliary buffer + PFD_MAIN_PLANE, // main layer + 0, // reserved + 0, 0, 0 // layer masks ignored + }; + + // Ensure desktop color depth is adequate + int availableBitDepth = GetDeviceCaps(hdc, BITSPIXEL); + if (availableBitDepth < bpp) { + printf("This application requires a greater colour depth.\n"); + destroyAll(); + return JNI_FALSE; + }; + + int iPixelFormat; + + // get the best available match of pixel format for the device context + iPixelFormat = ChoosePixelFormat(hdc, &pfd); + if (iPixelFormat == 0) { + printf("Failed to choose pixel format.\n"); + destroyAll(); + return JNI_FALSE; + } + + PIXELFORMATDESCRIPTOR desc; + if (DescribePixelFormat(hdc, iPixelFormat, sizeof(PIXELFORMATDESCRIPTOR), &desc) == 0) { + printf("Could not describe pixel format\n"); + destroyAll(); + return JNI_FALSE; + } + + if (desc.cColorBits < bpp) { + printf("This application requires a greater colour depth.\n"); + destroyAll(); + return JNI_FALSE; + } + + if (desc.cStencilBits < stencilBits) { + printf("This application requires a greater stencil depth.\n"); + destroyAll(); + return JNI_FALSE; + } + + if (desc.cDepthBits < depthBits) { + printf("This application requires a greater depth buffer depth.\n"); + destroyAll(); + return JNI_FALSE; + } + + if ((desc.dwFlags & flags) == 0) { + printf("Capabilities not supported.\n"); + destroyAll(); + return JNI_FALSE; + } + +#ifdef _DEBUG + printf("Pixel format is %d\n", iPixelFormat); +#endif + + // make that the pixel format of the device context + if (SetPixelFormat(hdc, iPixelFormat, &pfd) == FALSE) { + printf("Failed to set pixel format\n"); + destroyAll(); + return JNI_FALSE; + } + + jfieldID fid_handle = env->GetStaticFieldID(clazz, "handle", "I"); + env->SetStaticIntField(clazz, fid_handle, (jint) hwnd); + return JNI_TRUE; } @@ -289,20 +406,7 @@ */ JNIEXPORT void JNICALL Java_org_lwjgl_Display_nDestroy (JNIEnv * env, jclass clazz) -{ - // Reset the display if necessary - ChangeDisplaySettings(NULL, 0); - - if (hwnd != NULL) { - // Vape the window - DestroyWindow(hwnd); - hwnd = NULL; - } - -#ifdef _DEBUG - printf("Destroyed display\n"); -#endif - - // Show the mouse - ShowCursor(TRUE); -} +{ + destroyAll(); +} + Index: org_lwjgl_input_Keyboard.cpp CVS Browser: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/java-game-lib/LWJGL/src/native/win32/org_lwjgl_input_Keyboard.cpp =================================================================== RCS file: /cvsroot/java-game-lib/LWJGL/src/native/win32/org_lwjgl_input_Keyboard.cpp,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- org_lwjgl_input_Keyboard.cpp 27 Aug 2002 20:42:47 -0000 1.4 +++ org_lwjgl_input_Keyboard.cpp 19 Dec 2002 16:35:35 -0000 1.5 @@ -137,14 +137,6 @@ lpdiKeyboard->Release(); lpdiKeyboard = NULL; } - - // Release directinput if the mouse is not present - if (lpdi != NULL) { - // Release directinput - lpdi->Release(); - lpdi = NULL; - - } } /* Index: org_lwjgl_input_Mouse.cpp CVS Browser: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/java-game-lib/LWJGL/src/native/win32/org_lwjgl_input_Mouse.cpp =================================================================== RCS file: /cvsroot/java-game-lib/LWJGL/src/native/win32/org_lwjgl_input_Mouse.cpp,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- org_lwjgl_input_Mouse.cpp 12 Dec 2002 20:04:56 -0000 1.4 +++ org_lwjgl_input_Mouse.cpp 19 Dec 2002 16:35:35 -0000 1.5 @@ -154,12 +154,6 @@ lpdiMouse = NULL; } - // Release directinput - if (lpdi != NULL) { - // Release directinput - lpdi->Release(); - lpdi = NULL; - } } /* Index: org_lwjgl_opengl_BaseGL.cpp CVS Browser: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/java-game-lib/LWJGL/src/native/win32/org_lwjgl_opengl_BaseGL.cpp =================================================================== RCS file: /cvsroot/java-game-lib/LWJGL/src/native/win32/org_lwjgl_opengl_BaseGL.cpp,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- org_lwjgl_opengl_BaseGL.cpp 12 Dec 2002 22:04:05 -0000 1.8 +++ org_lwjgl_opengl_BaseGL.cpp 19 Dec 2002 16:35:35 -0000 1.9 @@ -53,86 +53,11 @@ * Signature: (IIII)Z */ JNIEXPORT jboolean JNICALL Java_org_lwjgl_opengl_BaseGL_nCreate - (JNIEnv * env, jobject obj, jint colorBits, jint alphaBits, jint depthBits, jint stencilBits) + (JNIEnv * env, jobject obj) { if (!hwnd) { printf("No window handle\n"); - return JNI_FALSE; - } - int flags = PFD_DRAW_TO_WINDOW | // support window - PFD_SUPPORT_OPENGL | // support OpenGL - PFD_GENERIC_ACCELERATED | - PFD_DOUBLEBUFFER; // double buffered - - PIXELFORMATDESCRIPTOR pfd = { - sizeof(PIXELFORMATDESCRIPTOR), // size of this pfd - 1, // version number - flags, // RGBA type - PFD_TYPE_RGBA, - (BYTE)colorBits, - 0, 0, 0, 0, 0, 0, // color bits ignored - (BYTE)alphaBits, - 0, // shift bit ignored - 0, // no accumulation buffer - 0, 0, 0, 0, // accum bits ignored - (BYTE)depthBits, - (BYTE)stencilBits, - 0, // One auxiliary buffer - PFD_MAIN_PLANE, // main layer - 0, // reserved - 0, 0, 0 // layer masks ignored - }; - - // Ensure desktop color depth is adequate - int availableBitDepth = GetDeviceCaps(hdc, BITSPIXEL); - if (availableBitDepth < colorBits) { - printf("This application requires a greater colour depth.\n"); - return JNI_FALSE; - }; - - int iPixelFormat; - - // get the best available match of pixel format for the device context - iPixelFormat = ChoosePixelFormat(hdc, &pfd); - if (iPixelFormat == 0) { - printf("Failed to choose pixel format.\n"); - return JNI_FALSE; - } - - PIXELFORMATDESCRIPTOR desc; - if (DescribePixelFormat(hdc, iPixelFormat, sizeof(PIXELFORMATDESCRIPTOR), &desc) == 0) { - printf("Could not describe pixel format\n"); - return JNI_FALSE; - } - - if (desc.cColorBits < colorBits) { - printf("This application requires a greater colour depth.\n"); - return JNI_FALSE; - } - - if (desc.cStencilBits < stencilBits) { - printf("This application requires a greater stencil depth.\n"); - return JNI_FALSE; - } - - if (desc.cDepthBits < depthBits) { - printf("This application requires a greater depth buffer depth.\n"); - return JNI_FALSE; - } - - if ((desc.dwFlags & flags) == 0) { - printf("Capabilities not supported.\n"); - return JNI_FALSE; - } - -#ifdef _DEBUG - printf("Pixel format is %d\n", iPixelFormat); -#endif - - // make that the pixel format of the device context - if (SetPixelFormat(hdc, iPixelFormat, &pfd) == FALSE) { - printf("Failed to set pixel format\n"); return JNI_FALSE; } if (extgl_Open() != 0) |
From: Elias N. <eli...@us...> - 2002-12-19 16:35:39
|
Update of /cvsroot/java-game-lib/LWJGL/src/native/linux In directory sc8-pr-cvs1:/tmp/cvs-serv17077/src/native/linux Modified Files: org_lwjgl_Display.cpp org_lwjgl_opengl_BaseGL.cpp Log Message: Moved BaseGL constructor parameters to Display Index: org_lwjgl_Display.cpp CVS Browser: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/java-game-lib/LWJGL/src/native/linux/org_lwjgl_Display.cpp =================================================================== RCS file: /cvsroot/java-game-lib/LWJGL/src/native/linux/org_lwjgl_Display.cpp,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- org_lwjgl_Display.cpp 11 Dec 2002 07:26:49 -0000 1.8 +++ org_lwjgl_Display.cpp 19 Dec 2002 16:35:35 -0000 1.9 @@ -96,28 +96,43 @@ return 1; } -JNIEXPORT jboolean JNICALL Java_org_lwjgl_Display_nCreate(JNIEnv * env, jclass clazz, jint width, jint height, jint bpp, jint freq, jboolean fullscreen) { +JNIEXPORT jboolean JNICALL Java_org_lwjgl_Display_nCreate(JNIEnv * env, jclass clazz, jint width, jint height, jint bpp, jint freq, jint alpha_bits, jint depth_bits, jint stencil_bits, jboolean fullscreen) { Window root_win; XSetWindowAttributes attribs; Colormap cmap; int attribmask; - int bpe = bpp/4; + int bpe; + switch (bpp) { + case 32: + case 24: + bpe = 8; + break; + case 16: + bpe = 4; + break; + default: + return JNI_FALSE; + } + if (depth_bits == 32) + depth_bits = 24; + int attriblist[] = { GLX_RGBA, GLX_DOUBLEBUFFER, - GLX_DEPTH_SIZE, bpp, + GLX_DEPTH_SIZE, depth_bits, GLX_RED_SIZE, bpe, GLX_GREEN_SIZE, bpe, GLX_BLUE_SIZE, bpe, - GLX_ALPHA_SIZE, bpe, + GLX_ALPHA_SIZE, alpha_bits, + GLX_STENCIL_SIZE, stencil_bits, None }; - int attriblistna[] = { GLX_RGBA, +/* int attriblistna[] = { GLX_RGBA, GLX_DOUBLEBUFFER, GLX_DEPTH_SIZE, bpp, GLX_RED_SIZE, bpe, GLX_GREEN_SIZE, bpe, GLX_BLUE_SIZE, bpe, None }; - +*/ int num_modes, i; @@ -151,10 +166,10 @@ vis_info = glXChooseVisual(disp, screen, attriblist); /* might be a better way to handle not being able to set GLX_ALPHA_SIZE... */ - if (vis_info == NULL) { +/* if (vis_info == NULL) { vis_info = glXChooseVisual(disp, screen, attriblistna); } - +*/ if (vis_info == NULL) { XCloseDisplay(disp); #ifdef _DEBUG Index: org_lwjgl_opengl_BaseGL.cpp CVS Browser: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/java-game-lib/LWJGL/src/native/linux/org_lwjgl_opengl_BaseGL.cpp =================================================================== RCS file: /cvsroot/java-game-lib/LWJGL/src/native/linux/org_lwjgl_opengl_BaseGL.cpp,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- org_lwjgl_opengl_BaseGL.cpp 25 Nov 2002 20:35:01 -0000 1.4 +++ org_lwjgl_opengl_BaseGL.cpp 19 Dec 2002 16:35:35 -0000 1.5 @@ -61,7 +61,7 @@ * Signature: (IIII)Z */ JNIEXPORT jboolean JNICALL Java_org_lwjgl_opengl_BaseGL_nCreate - (JNIEnv * env, jobject obj, jint colorBits, jint alphaBits, jint depthBits, jint stencilBits) + (JNIEnv * env, jobject obj) { if (!vis_info) { |
From: Elias N. <eli...@us...> - 2002-12-19 16:35:38
|
Update of /cvsroot/java-game-lib/LWJGL/src/java/org/lwjgl/opengl In directory sc8-pr-cvs1:/tmp/cvs-serv17077/src/java/org/lwjgl/opengl Modified Files: BaseGL.java CoreGL.java GL.java Log Message: Moved BaseGL constructor parameters to Display Index: BaseGL.java CVS Browser: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/java-game-lib/LWJGL/src/java/org/lwjgl/opengl/BaseGL.java =================================================================== RCS file: /cvsroot/java-game-lib/LWJGL/src/java/org/lwjgl/opengl/BaseGL.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- BaseGL.java 25 Nov 2002 17:04:56 -0000 1.6 +++ BaseGL.java 19 Dec 2002 16:35:35 -0000 1.7 @@ -68,33 +68,13 @@ /** This GL will be valid for use in only one thread */ protected Thread renderThread; - /** The number of color bits */ - protected final int colorBits; - - /** The number of alpha bits */ - protected final int alphaBits; - - /** The number of depth bits */ - protected final int depthBits; - - /** The number of stencil bits */ - protected final int stencilBits; - /** * Constructor for BaseGL. The context is not created at this point; * to create the GL you must call create(). * - * @param colorBits the number of color bits (eg. 16, 24, 32) - * @param alphaBits the number of alpha bits (eg. 0 or 8) - * @param depthBits the number of depth bits (eg. 16 or 24) - * @param stencilBits the number of stencil bits (eg. 0 or 8) * @see #create() */ - public BaseGL(int colorBits, int alphaBits, int depthBits, int stencilBits) { - this.colorBits = colorBits; - this.alphaBits = alphaBits; - this.depthBits = depthBits; - this.stencilBits = stencilBits; + public BaseGL() { } /** @@ -106,7 +86,7 @@ public final void create() throws Exception{ if (created) return; - if (!nCreate(colorBits, alphaBits, depthBits, stencilBits)) + if (!nCreate()) throw new Exception("GL could not be created."); created = true; makeCurrent(); @@ -127,7 +107,7 @@ * @return true if the GL was created successfully * @see org.lwjgl.Display#create(org.lwjgl.DisplayMode, boolean) */ - private native boolean nCreate(int colorBits, int alphaBits, int depthBits, int stencilBits); + private native boolean nCreate(); /** * Destroy the GL context. Does nothing if the GL has not yet been created. Index: CoreGL.java CVS Browser: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/java-game-lib/LWJGL/src/java/org/lwjgl/opengl/CoreGL.java =================================================================== RCS file: /cvsroot/java-game-lib/LWJGL/src/java/org/lwjgl/opengl/CoreGL.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- CoreGL.java 27 Nov 2002 22:34:28 -0000 1.8 +++ CoreGL.java 19 Dec 2002 16:35:35 -0000 1.9 @@ -45,12 +45,8 @@ /** * Constructor for CoreGL. */ - public CoreGL( - int colorBits, - int alphaBits, - int depthBits, - int stencilBits) { - super(colorBits, alphaBits, depthBits, stencilBits); + public CoreGL() { + super(); } public native void accum(int op, float value); Index: GL.java CVS Browser: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/java-game-lib/LWJGL/src/java/org/lwjgl/opengl/GL.java =================================================================== RCS file: /cvsroot/java-game-lib/LWJGL/src/java/org/lwjgl/opengl/GL.java,v retrieving revision 1.13 retrieving revision 1.14 diff -u -d -r1.13 -r1.14 --- GL.java 27 Nov 2002 22:34:29 -0000 1.13 +++ GL.java 19 Dec 2002 16:35:35 -0000 1.14 @@ -1535,8 +1535,8 @@ /** * Constructor for GL. */ - public GL(int colorBits, int alphaBits, int depthBits, int stencilBits) { - super(colorBits, alphaBits, depthBits, stencilBits); + public GL() { + super(); } /** |
From: Elias N. <eli...@us...> - 2002-12-19 16:35:38
|
Update of /cvsroot/java-game-lib/LWJGL/src/java/org/lwjgl/test/opengl In directory sc8-pr-cvs1:/tmp/cvs-serv17077/src/java/org/lwjgl/test/opengl Modified Files: Game.java Grass.java Log Message: Moved BaseGL constructor parameters to Display Index: Game.java CVS Browser: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/java-game-lib/LWJGL/src/java/org/lwjgl/test/opengl/Game.java =================================================================== RCS file: /cvsroot/java-game-lib/LWJGL/src/java/org/lwjgl/test/opengl/Game.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- Game.java 22 Nov 2002 11:24:12 -0000 1.2 +++ Game.java 19 Dec 2002 16:35:35 -0000 1.3 @@ -55,7 +55,7 @@ for (int i = 0; i < modes.length; i ++) System.out.println(modes[i]); // For now let's just pick a mode we're certain to have - Display.create(new DisplayMode(640, 480, 16, 60), true); + Display.create(new DisplayMode(640, 480, 16, 60), 8, 16, 0, true); System.out.println("Created display."); } catch (Exception e) { System.err.println("Failed to create display due to "+e); @@ -63,7 +63,7 @@ } } - public static final GL gl = new GL(16, 0, 16, 8); + public static final GL gl = new GL(); public static final GLU glu = new GLU(gl); static { try { Index: Grass.java CVS Browser: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/java-game-lib/LWJGL/src/java/org/lwjgl/test/opengl/Grass.java =================================================================== RCS file: /cvsroot/java-game-lib/LWJGL/src/java/org/lwjgl/test/opengl/Grass.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- Grass.java 21 Nov 2002 15:13:50 -0000 1.1 +++ Grass.java 19 Dec 2002 16:35:35 -0000 1.2 @@ -26,7 +26,7 @@ for (int i = 0; i < modes.length; i ++) System.out.println(modes[i]); // For now let's just pick a mode we're certain to have - Display.create(new DisplayMode(800, 600, 16, 60), false); + Display.create(new DisplayMode(800, 600, 16, 60), 8, 16, 0, false); System.out.println("Created display."); } catch (Exception e) { System.err.println("Failed to create display due to "+e); @@ -34,7 +34,7 @@ } } - public static final GL gl = new GL(16, 0, 16, 8); + public static final GL gl = new GL(); public static final GLU glu = new GLU(gl); static { try { |
From: Elias N. <eli...@us...> - 2002-12-19 16:35:38
|
Update of /cvsroot/java-game-lib/LWJGL/src/java/org/lwjgl In directory sc8-pr-cvs1:/tmp/cvs-serv17077/src/java/org/lwjgl Modified Files: Display.java Log Message: Moved BaseGL constructor parameters to Display Index: Display.java CVS Browser: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/java-game-lib/LWJGL/src/java/org/lwjgl/Display.java =================================================================== RCS file: /cvsroot/java-game-lib/LWJGL/src/java/org/lwjgl/Display.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- Display.java 18 Oct 2002 23:28:04 -0000 1.7 +++ Display.java 19 Dec 2002 16:35:35 -0000 1.8 @@ -81,12 +81,18 @@ * destroyed. * * @param displayMode a display mode to choose + * @param alpha_bits number of alpha bits required + * @param depth_bits number of depth bits required + * @param stencil_bits number of stencil bits required * @param fullscreen whether to create the display fullscreen * @throws Exception if the display mode could not be set * @see #destroy() */ public static void create( DisplayMode displayMode, + int alpha_bits, + int depth_bits, + int stencil_bits, boolean fullscreen) throws Exception { @@ -97,6 +103,9 @@ displayMode.height, displayMode.bpp, displayMode.freq, + alpha_bits, + depth_bits, + stencil_bits, fullscreen)) throw new Exception("Failed to set display mode to " + displayMode); @@ -115,6 +124,9 @@ int height, int bpp, int freq, + int alpha_bits, + int depth_bits, + int stencil_bits, boolean fullscreen); /** |