diff options
Diffstat (limited to 'src/lib')
52 files changed, 0 insertions, 10731 deletions
diff --git a/src/lib/JEDI-SDL/JEDI-SDL-README.txt b/src/lib/JEDI-SDL/JEDI-SDL-README.txt deleted file mode 100644 index 8e0d25f9..00000000 --- a/src/lib/JEDI-SDL/JEDI-SDL-README.txt +++ /dev/null @@ -1,244 +0,0 @@ -This is the based on the SDL ( http://www.libsdl.org ) headers, and has been converted, comments and all, to the Pascal unit called sdl.pas. -Other conversions that have also been done are SDL_Mixer.h, SDL_Net.h, SDL_Image.h, SDL_ttf, SMPEG.h, SDL_sound and the SFont library, -which are all included in this distribution. - -It allows you to access all the functions within the SDL libraries under Windows, Linux and FreeBSD, so you can write cross-platform games or multimedia applications. - -Installation Instructions -------------------------- -Windows - We now have a semi-automated setup under Windows ( thanks to David House and the Jedi JCL team ). - Once you have extracted the zip file, simply double click on the "JEDISDLWin32Installer.exe" to have the correct paths added to your respective - IDEs. All IDEs from Delphi 4 - 7 are supported and it also adds a link to the .CHM help file under the Tools menu. - -Linux - Alternatively if you use Linux or want to to manually install the paths, then make sure you read the "Getting Started.html" file ( ideal for those who are new to JEDI-SDL ) and is now included as a guide to help getting everything setup for smooth compilation. - -Also included is a guide of how to use Sourceforge using TortoiseCVS under Windows ( Linux guide is under development ). -Both documents can be found in the "documentation" directory. - - -Release History ---------------- -1.0 : Yeah!! The Official v1.0 Release of JEDI-SDL!! - JEDI-SDL now updated to SDL v1.2.11, SDL_Image v1.2.5, SDL_Mixer v1.2.7, SDL_Net v1.2.6 & SDL_ttf v2.0.8 - Added Improved FreePascal, TMT Pascal and GnuPascal support as well as maintaining Delphi/Kylix support. - Fixed Various bugs as pointed out on the JEDI-SDL mailing list. - Added SDL_GL_STEREO, SDL_GL_MULTISAMPLEBUFFERS, SDL_GL_MULTISAMPLESAMPLES - -Now works on MacOS X and a MacOS X disk image is available for download. - -// DLL/Shared object functions -function SDL_LoadObject( const sofile : PChar ) : Pointer; - -function SDL_LoadFunction( handle : Pointer; const name : PChar ) : Pointer; - -procedure SDL_UnloadObject( handle : Pointer ); - -//Added function to create RWops from const memory: SDL_RWFromConstMem() -function SDL_RWFromConstMem(const mem: Pointer; size: Integer) : PSDL_RWops; - -//Added support for environment variables SDL_VIDEO_WINDOW_POS and SDL_VIDEO_CENTERED on Windows - - New Units : - ----------- - sdl_cpuinfo.pas - ported SDL_cpuinfo.h so Now you can test for Specific CPU types. - sdlinput.pas - Input wrapper class - sdlwindow.pas - Window wrapper class - sdltruetypefont.pas - True Type Font wrapper class - tcputils.pas - SDL_Net utility functions - sdlweb.pas - SDL_Net Web class - sdlwebhttp.pas - SDL_Net http protocol wrapper class - sdlwebftp.pas - SDL_Net ftp protocol wrapper class - - New 2D Demos : - -------------- - - - New 3D Demos : - -------------- - - - Other New Stuff : - ----------------- - - - -0.5 : The JEDI-SDL project is now also set up on Sourceforge ( http://sf.net/projects/jedi-sdl/ ) so the latest code is available from there. - Improved FreePascal support has been added. - Various bug fixes as pointed out on the JEDI-SDL mailing list. - SDL_Mixer has been updated to version 1.2.1 and includes an Effects API. - Demo directories are now split into 2D and 3D related sub-directories. - There are now both Kylix ( K prefix ) and Delphi ( D prefix ) project groups for all the demos. - They can be found in Demos and the 2D and 3D directories. - - New Units - --------- - SDLStreams.pas - Chris Bruner has created a wrapper that uses Streams to load BMPs - SDLUtils.pas - Pascal only version of some Utility functions - SDLi386Utils.pas - Intel Assembler versions of the SDLUtils.pas functions. - SDL_ttf.pas - Port of the SDL True Type font support unit. - SDL_Sound.pas - Port of the SDL Sound library ( untested ). - - New 2D Demos : - -------------- - Pan and Zoom Demo - How to Pan and Zoom an SDL surface. - Isometric Demo - I ported my old DelphiX isometric demo over to SDL. - TestTimer demo - Shows hows how to use AddTimer and RemoveTimer. - MpegPlayer - I have updated and improved Anders Ohlsson's CLX MPegPlayer and component and it now works - and installs into D4, D5, D6, D7, K1, K2 & K3. - Showfont - Demo to show how to us SDL_ttf.dll - SmpegPlayer - is a console MPEG player that use smpeg and SDL_Mixer - - New 3D Demos : - -------------- - DeathTruckTion 1.1 - A slightly updated version of this fully functional 3D network game. - TerrainDemo - Terrain demo ported from the book "OpenGL Game programming" by Hawkins and Astle. - TestGL - the standard SDL/OpenGL Test demo. Shows how to mix 2D and 3D rendering using OpenGL. - glfont - Demo to show how to us SDL_ttf with OpenGL. - Particle Engine - Ariel's OpenGL Particle Engine. - Picking - Phil Freeman's Picking Demo - Motion Blur - Phil Freeman's Motion Blur Demo - Dynamic Light - Phil Freeman's Dynamic Light Demo - Environment Map - Phil Freeman's Environment Map Demo - GLMovie - is an MPEG Player that uses OpenGL to render the movie. - NeHe - Quite a few more NeHe demos are now included. - - New Network Demos : - ------------------- - There are now 3 SDL_Net Server demos and 4 SDL_Client demos as submitted by Dean Ellis. - - -Beta 4 : The JEDI-SDL home page is now located @ http://www.delphi-jedi.org/Jedi:TEAM_SDL_HOME - All Demos ( including OpenGL Demos ) now compile under both Kylix and Delphi. - I have added quite a few more OpenGL examples, we are now up to Nehe tutorial 12. - All OpenGL demos also show how to handle Window resizing. - Included an OpenGL demo called Puntos by Gustavo Maximo. - Ported Jan Horn's OpenGL MetaBalls and also SkyBox demo to SDL. - Ported Ilkka Tuomioja's OpenGL Quake 2 Model Viewer/Animator to SDL. - NOTE : All OpenGL demos require OpenGL12.pas which can be found at... - http://www.lischke-online.de/Graphics.html#OpenGL12 - I also fixed a conversion bug to do with SDL_MustLock and also a conversion omission to do with various events. - Fixed a conversion bug with SDL_CDOpen ( as suggested on the mailing list ). - Added the GetPixel and PuxPixel functions to the SDLUtils.pas file. - Jason Farmer has donated SFont, a simple, yet effective Font library he converted for JEDI-SDL. - It contains 4 Demos show how to best use it. - Added TUInt8Array and PUIntArray to SDL.pas after suggestions from Matthias Thoma and Eric Grange. - In the file area of the JEDI-SDL mailing list ( http://groups.yahoo.com/group/JEDI-SDL/files/DTTSrc/ there - is a fully functional 3D network game called DeathTruckTion v1.0 written by the TNTeam that makes use of - JEDI-SDL and is just too big to include with this distribution but is well worth looking at as it works under Windows and Linux! - Gustavo Maxima is working on translating the JEDI-SDL Documentation to Spanish and Portugese. - The Mouse Demo has now been speeded up considerably and it is very responsive now. - Dean Ellis will provide steps on how to compile the demos using the Free Pascal compiler. - Jason Farmer and I are working on a series of Tutorials that should hopefully be out soon. - David Aclan has donated a SMpeg component that should work under Kylix. - Róbert Kisnémeth, has been hard at work, and has donated some new demos he has created with a SpriteEngine ( which he also donated ). - He has also donated a couple of games called BlitzBomber and Oxygene ( which uses the SpriteEngine ) and added a couple of useful - functions to SDLUtils.pas. - The Functions added are SDL_FlipV, SDL_FlipH, SDL_NewPutPixel ( assembler version ), SDL_AddPixel, SDL_SubPixel, SDL_DrawLine, SDL_AddLine, - SDL_SubLine, SDL_AddSurface, SDL_SubSurface, SDL_MonoSurface & SDL_TexturedSurface. - He has also donated a Font Blitting class and demo called SDL_MonoFonts which supports alignment like Left, Right and Center. - He and Thomas are also working on a GUI library. - Jason Farmer has donated a set of Image Filtering functions which add quite a few interesting effects. Check the SDL_Filter sub-directory for more - info. - Christian Hackbart also donated an OpenGL BlockOut clone. - - -Beta 3 : I have added conversions for SDL_env.h, SDL_Mixer.h and SDL_Net.h while Matthias Thoma has added conversions for SDL_Image.h and SMPEG.h. - This version is also SDL version 1.2.0 compliant. - This release also adds demos for the SDL_Image, SDL_Mixer and SDL_Net libraries. - There are now also some OpenGL demos that make some use of SDL as well as a demo on how to use the Mouse with Clickable regions. - A conversion bug, that was pointed out by Clem Vasseur, has also been fixed. - There is now a mailing list that has been set up at http://groups.yahoo.com/group/JEDI-SDL/join/ so we can all learn from each other how to use - these libraries. - Demos have not been unified into single .dpr files for each demo, thus showing how you would write a crossplatform game using only 1 .dpr file. - There is also a documentation directory that is currently in HTML format. All code examples in the documentation have been converted to Object - Pascal but are untested. - I Also fixed a few conversion bugs which I came across while converting the documentation. - -Beta 2 : I have added conversions for SDL_active.h, SDL_thread.h, SDL_mutex.h and - SDL_error.h, Matthias Thoma has added Linux Support and JEDI compliancy so these - units and examples are now x-platform and x-compiler compilable. - I also added Tom Jones' SDLUtils.pas file; - Matthias also cleaned up the 2 new demos and made them work on both Linux and - Windows. - -Beta 1 : Initial Release; - - -There are now 5 examples included with this JEDI-SDL distribution. -1. Is the TestWin application, which is based on the testwin application that comes with the SDL SDK, only my version has a gui front end to the options available and has been compiled under Delphi 4.03. It should be compatible with Delphi 3.0 onwards ( though Delphi 2 compatibility has not been tested ). - -2. A Plasma example which was converted from one found on the Demos page of the SDL site. - -3. A Voxel terrain following demo, which was converted from one found on the Demos page of the SDL site. This one should be of interest to others as it shows how to handle keyboard events when using SDL. - -4. A Mouse handling demo that shows how to use transparency and clickable regions. - -5. A Space Invaders style game called Aliens which shows the use of SDL, SDL_Image and SDL_Mixer. This game shows how to handle sound, keyboards and some basic collision detection. It is a conversion of one found on the SDL Demos page. - -There are also 14 OpenGL demos that are based on the NeHe tutorials <nehe.gamedev.net>. The other 3 OpenGL demos are Jan Horns' OpenGL demo, A Quake 2 Model viewer that I ported and a Demo by Gustavo Maxima called Puntos. - -If writing your own, just make sure that the SDL.pas file is in your projects path for compiling and that the SDL.dll file is in your path when running the compiled app. - -Please test these units and report problems to the JEDI-SDL mailing list @ http://groups.yahoo.com/group/JEDI-SDL/ outlining steps under which the error occurred. If you convert any more demos please send them to me so that I can -include them in the ditribution for others to learn from. - -Also if you are using these Units to write any games -please let me know about it so that I can post the information to the http://www.DelphiGamer.com site. - -The plan is to have this unit JEDI certified at some point so that it can be included on the Delphi and Kylix CDs, so all feedback is greatly welcomed. - -Compilers supported Tested -------------------- ------ -Delphi Yes -Kylix Yes -FreePascal Yes -TMT Pascal compiler Not Yet. -Virtual Pascal No -Gnu Pascal No - - - -Credits -------- -Matthias Thoma <ma.thoma@gmx.de> for is endless help with my conversion bugs. -Jason Farmer <jason@cerebral-bicycle.co.uk> for donating the SFont Font Library. -Gustavo Maximo <gmaximo@secretariaplus.com> for the Puntos OpenGL Demo and work he is doing on the documentation -Róbert Kisnémeth <mikrobi@freemail.hu> for his numerous contributions -Chris Bruner <cryst@golden.net> for testing under Kylix -August Logan Bear Jr.<augustjr@columbus.rr.com> for testing under Kylix -Dean Ellis<dean_ellis@yahoo.com> for FreePascal Compiler compatability testing and SDL_Net demos and testing -David House<david@dahsoftware.com> for Windows Insaller and testing. -Romi Kuntsman<romik12345@lycos.co.uk> for helping out on some OpenGL issues. -Everyone on the JEDI-SDL <http://groups.yahoo.com/group/JEDI-SDL/join/> mailing list for their feedback and support. -Everyone on the Delphi-JEDI <http://groups.yahoo.com/group/Delphi-JEDI/join/> mailing for answering my conversion questions. -Tom Jones for inspiring this conversion. - -The JEDI-SDL Home page can be found @ http://www.delphi-jedi.org/Jedi:TEAM_SDL_HOME - -The JEDI-SDL source code archive can be found @ http://www.sf.net/projects/jedi-sdl/ - -The JEDI-SDL mailing list can be found @ http://groups.yahoo.com/group/JEDI-SDL/join/ - -The Latest Stable Release version of the JEDI-SDL.zip file can always be found on the Delphi-JEDI site <http://www.delphi-jedi.org/Jedi:TEAM_SDL_HOME> - -The Latest Alpha/Unstable version can always be grabbed from the SourceForge CVS http://sourceforge.net/cvs/?group_id=43805 - - -Sincerely, - - - -Dominique Louis -Delphi Game Developer. -********************************************************* -** To Do Nothing is to Collaborate with the oppressor ** -** -------------------------------------------------- ** -********************************************************* -========================================================= -From . . . . . . . : Dominique Louis -Email. . . . . . . : Dominique@SavageSoftware.com.au -Company. . . . . . : Savage Software Solutions -Delphi Games Site. : http://www.DelphiGamer.com -Delphi JEDI Site . : http://www.delphi-jedi.org -========================================================= - diff --git a/src/lib/JEDI-SDL/OpenGL-Set8087CW.patch b/src/lib/JEDI-SDL/OpenGL-Set8087CW.patch deleted file mode 100644 index e08ca63e..00000000 --- a/src/lib/JEDI-SDL/OpenGL-Set8087CW.patch +++ /dev/null @@ -1,16 +0,0 @@ -Index: OpenGL/Pas/gl.pas
-===================================================================
---- OpenGL/Pas/gl.pas (revision 961)
-+++ OpenGL/Pas/gl.pas (working copy)
-@@ -2287,9 +2287,9 @@
- end;
-
- initialization
-- {$ifdef x86}
-+ {$IF Defined(CPU386) or Defined(CPUI386) or Defined(CPUX86_64)}
- Set8087CW($133F);
-- {$endif x86}
-+ {$IFEND}
-
- LoadOpenGL( GLLibName );
-
diff --git a/src/lib/JEDI-SDL/SDL/Pas/Readme.txt b/src/lib/JEDI-SDL/SDL/Pas/Readme.txt deleted file mode 100644 index f176d0c9..00000000 --- a/src/lib/JEDI-SDL/SDL/Pas/Readme.txt +++ /dev/null @@ -1,27 +0,0 @@ -Delphi interface unit for OpenGL version 1.2 compilable with Delphi 3-6 and Kylix. - -This unit is open source under the Mozilla Public License and -the original author is Dipl. Ing. Mike Lischke (public@lischke-online.de). - -You can obtain this unit also from the JEDI (Joint Endeavor of Delphi Innovators) -API page at www.delphi-jedi.org. - -Note for GLScene users: Eric Grange has provided a general vector types unit which -resolves conflicts for types which are defined in OpenGL12.pas as well as Geometry.pas. -This unit is located in the sub folder "GLScene AddOn". -Please add this unit to the uses clause of OpenGL12.pas and remove the few types which -are already declared in VectorTypes.pas. - -For tests and as starting point three demos are included into the package. Two of them (GLDiag and GLTest) -need the (also provided) simple OpenGL control GLControl (see "GLControl\Package"). - -- Basic is a very simple test program which only uses an empty form. -- GLTest (in GLControl) uses GLControl to show four rendering contexts simultanously. -- GLDiag is a diagnosis tool similar to DXDiag which shows some properties of the current - OpenGL driver implementation. - -Have fun and - -Ciao, Mike -www.lischke-online.de -www.delphi-unicode.net
\ No newline at end of file diff --git a/src/lib/JEDI-SDL/SDL/Pas/jedi-sdl.inc b/src/lib/JEDI-SDL/SDL/Pas/jedi-sdl.inc deleted file mode 100644 index fed972b5..00000000 --- a/src/lib/JEDI-SDL/SDL/Pas/jedi-sdl.inc +++ /dev/null @@ -1,442 +0,0 @@ -{ - $Id: jedi-sdl.inc,v 1.15 2007/05/29 21:30:48 savage Exp $ -} -{******************************************************************************} -{ } -{ Borland Delphi SDL - Simple DirectMedia Layer } -{ Global Conditional Definitions for JEDI-SDL cross-compilation } -{ } -{ } -{ The initial developer of this Pascal code was : } -{ Prof. Abimbola Olowofoyeku <http://www.bigfoot.com/~African_Chief/> } -{ } -{ Portions created by Prof. Abimbola Olowofoyeku are } -{ Copyright (C) 2000 - 2100 Prof. Abimbola Olowofoyeku. } -{ } -{ } -{ Contributor(s) } -{ -------------- } -{ Prof. Abimbola Olowofoyeku <http://www.bigfoot.com/~African_Chief/> } -{ Dominqiue Louis <Dominique@SavageSoftware.com.au> } -{ } -{ Obtained through: } -{ Joint Endeavour of Delphi Innovators ( Project JEDI ) } -{ } -{ You may retrieve the latest version of this file at the Project } -{ JEDI home page, located at http://delphi-jedi.org } -{ } -{ The contents of this file are used with permission, subject to } -{ the Mozilla Public License Version 1.1 (the "License"); you may } -{ not use this file except in compliance with the License. You may } -{ obtain a copy of the License at } -{ http://www.mozilla.org/MPL/MPL-1.1.html } -{ } -{ Software distributed under the License is distributed on an } -{ "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or } -{ implied. See the License for the specific language governing } -{ rights and limitations under the License. } -{ } -{ Description } -{ ----------- } -{ This code has been copied from... } -{ Global Conditional Definitions for Chief's UNZIP package } -{ By Prof. Abimbola Olowofoyeku (The African Chief) } -{ http://www.bigfoot.com/~African_Chief/ } -{ } -{ } -{ Requires } -{ -------- } -{ The SDL Runtime libraris on Win32 : SDL.dll on Linux : libSDL.so } -{ They are available from... } -{ http://www.libsdl.org . } -{ } -{ Programming Notes } -{ ----------------- } -{ } -{ } -{ } -{ } -{ Revision History } -{ ---------------- } -{ 2003-04-03 DL - Initial addition } -{ } -{ 2003-04-07 DL - Added Macro ON derective for FPC and OpenGL and removed } -{ WEAKPACKAGE derective. WEAKPACKAGE should be set when } -{ appropriate. } -{ } -{ 2003-04-23 - DL : under instruction from Alexey Barkovoy I have added } -{ better TMT Pascal support and under instruction } -{ from Prof. Abimbola Olowofoyeku (The African Chief) } -{ I have added better Gnu Pascal support } -{ } -{ 2004-01-19 - DL : Under instruction from Marco van de Voort, I have added } -{ Better FPC support for FreeBSD. } -{ } -(* - $Log: jedi-sdl.inc,v $ - Revision 1.15 2007/05/29 21:30:48 savage - Changes as suggested by Almindor for 64bit compatibility. - - Revision 1.14 2007/05/20 20:29:11 savage - Initial Changes to Handle 64 Bits - - Revision 1.13 2007/01/21 15:51:45 savage - Added Delphi 2006 support - - Revision 1.12 2006/11/19 18:41:01 savage - removed THREADING ON flag as it is no longer needed in latest versions of FPC. - - Revision 1.11 2006/01/04 00:52:41 drellis - Updated to include defined for ENDIAN values, SDL_BYTEORDER should now be correctly defined depending onthe platform. Code taken from sdl_mixer - - Revision 1.10 2005/05/22 18:42:31 savage - Changes as suggested by Michalis Kamburelis. Thanks again. - - Revision 1.9 2004/12/23 23:42:17 savage - Applied Patches supplied by Michalis Kamburelis ( THANKS! ), for greater FreePascal compatability. - - Revision 1.8 2004/10/20 22:43:04 savage - Ensure that UNSAFE type warning are off in D9 as well - - Revision 1.7 2004/04/05 09:59:51 savage - Changes for FreePacal as suggested by Marco - - Revision 1.6 2004/03/31 22:18:15 savage - Small comment for turning off warning under GnuPascal - - Revision 1.5 2004/03/30 22:41:02 savage - Added extra commenting due to previous compiler directive - - Revision 1.4 2004/03/30 22:08:33 savage - Added Kylix Define - - Revision 1.3 2004/03/30 21:34:40 savage - {$H+} needed for FPC compatiblity - - Revision 1.2 2004/02/14 00:23:39 savage - As UNIX is defined in jedi-sdl.inc this will be used to check linux compatability as well. Units have been changed to reflect this change. - -*) -{******************************************************************************} - -{.$define Debug} { uncomment for debugging } - -{$IFNDEF FPC} - {$IFDEF __GPC__} - {$I-} - {$W-} // turn off GPC warnings - {$X+} - {$ELSE} {__GPC__} - {$IFDEF Debug} - {$F+,D+,Q-,L+,R+,I-,S+,Y+,A+} - {$ELSE} - {$F+,Q-,R-,S-,I-,A+} - {$ENDIF} - {$ENDIF} {__GPC__} -{$ELSE} {FPC} - //{$M+} -{$ENDIF} {FPC} - -{$IFDEF LINUX} -{$DEFINE UNIX} -{$ENDIF} - -{$IFDEF ver70} - {$IFDEF Windows} - {$DEFINE Win16} - {$ENDIF Windows} - {$IFDEF MSDOS} - {$DEFINE NO_EXPORTS} - {$ENDIF MSDOS} - {$IFDEF DPMI} - {$DEFINE BP_DPMI} - {$ENDIF} - {$DEFINE OS_16_BIT} - {$DEFINE __OS_DOS__} -{$ENDIF ver70} - -{$IFDEF ver80} - {$DEFINE Delphi} {Delphi 1.x} - {$DEFINE Delphi16} - {$DEFINE Win16} - {$DEFINE OS_16_BIT} - {$DEFINE __OS_DOS__} -{$ENDIF ver80} - -{$IFDEF ver90} - {$DEFINE Delphi} {Delphi 2.x} - {$DEFINE Delphi32} - {$DEFINE WIN32} - {$DEFINE WINDOWS} -{$ENDIF ver90} - -{$IFDEF ver100} - {$DEFINE Delphi} {Delphi 3.x} - {$DEFINE Delphi32} - {$DEFINE WIN32} - {$DEFINE WINDOWS} -{$ENDIF ver100} - -{$IFDEF ver93} - {$DEFINE Delphi} {C++ Builder 1.x} - {$DEFINE Delphi32} - {$DEFINE WINDOWS} -{$ENDIF ver93} - -{$IFDEF ver110} - {$DEFINE Delphi} {C++ Builder 3.x} - {$DEFINE Delphi32} - {$DEFINE WINDOWS} -{$ENDIF ver110} - -{$IFDEF ver120} - {$DEFINE Delphi} {Delphi 4.x} - {$DEFINE Delphi32} - {$DEFINE Delphi4UP} - {$DEFINE Has_Int64} - {$DEFINE WINDOWS} -{$ENDIF ver120} - -{$IFDEF ver130} - {$DEFINE Delphi} {Delphi 5.x} - {$DEFINE Delphi32} - {$DEFINE Delphi4UP} - {$DEFINE Delphi5UP} - {$DEFINE Has_Int64} - {$DEFINE WINDOWS} -{$ENDIF ver130} - -{$IFDEF ver140} - {$DEFINE Delphi} {Delphi 6.x} - {$DEFINE Delphi32} - {$DEFINE Delphi4UP} - {$DEFINE Delphi5UP} - {$DEFINE Delphi6UP} - {$DEFINE Has_Int64} - {$DEFINE HAS_TYPES} -{$ENDIF ver140} - -{$IFDEF ver150} - {$DEFINE Delphi} {Delphi 7.x} - {$DEFINE Delphi32} - {$DEFINE Delphi4UP} - {$DEFINE Delphi5UP} - {$DEFINE Delphi6UP} - {$DEFINE Delphi7UP} - {$WARN UNSAFE_TYPE OFF} {Disable warning for unsafe types in Delphi 7} - {$DEFINE Has_Int64} - {$DEFINE HAS_TYPES} -{$ENDIF ver150} - -{$IFDEF ver160} - {$DEFINE Delphi} {Delphi 8} - {$DEFINE Delphi32} - {$DEFINE Delphi4UP} - {$DEFINE Delphi5UP} - {$DEFINE Delphi6UP} - {$DEFINE Delphi7UP} - {$DEFINE Delphi8UP} - {$DEFINE Has_Int64} - {$DEFINE HAS_TYPES} -{$ENDIF ver160} - -{$IFDEF ver170} - {$DEFINE Delphi} {Delphi 2005} - {$DEFINE Delphi32} - {$DEFINE Delphi4UP} - {$DEFINE Delphi5UP} - {$DEFINE Delphi6UP} - {$DEFINE Delphi7UP} - {$DEFINE Delphi8UP} - {$DEFINE Delphi9UP} - {$WARN UNSAFE_TYPE OFF} {Disable warning for unsafe types in Delphi 7} - {$DEFINE Has_Int64} - {$DEFINE HAS_TYPES} -{$ENDIF ver170} - -{$IFDEF ver180} - {$DEFINE Delphi} {Delphi 2006} - {$DEFINE Delphi32} - {$DEFINE Delphi4UP} - {$DEFINE Delphi5UP} - {$DEFINE Delphi6UP} - {$DEFINE Delphi7UP} - {$DEFINE Delphi8UP} - {$DEFINE Delphi9UP} - {$DEFINE Delphi10UP} - {$WARN UNSAFE_TYPE OFF} {Disable warning for unsafe types in Delphi 7} - {$DEFINE Has_Int64} - {$DEFINE HAS_TYPES} -{$ENDIF ver180} - -{$IFDEF ver185} - {$DEFINE Delphi} {Delphi 2007} - {$DEFINE Delphi32} - {$DEFINE Delphi4UP} - {$DEFINE Delphi5UP} - {$DEFINE Delphi6UP} - {$DEFINE Delphi7UP} - {$DEFINE Delphi8UP} - {$DEFINE Delphi9UP} - {$DEFINE Delphi10UP} - {$WARN UNSAFE_TYPE OFF} {Disable warning for unsafe types in Delphi 7} - {$DEFINE Has_Int64} - {$DEFINE HAS_TYPES} -{$ENDIF ver180} - -{$IFDEF UNIX} - {$ifdef VER140} // Kylix 1 & 2 - {$DEFINE KYLIX} - {$DEFINE KYLIX1UP} - {$DEFINE KYLIX2UP} - {$DEFINE HAS_TYPES} - {$endif} - - {$ifdef VER150} // Kylix 3 - {$DEFINE KYLIX} - {$DEFINE KYLIX1UP} - {$DEFINE KYLIX2UP} - {$DEFINE KYLIX3UP} - {$DEFINE HAS_TYPES} - {$endif} -{$ENDIF UNIX} - -{$IFDEF VirtualPascal} { Virtual Pascal 2.x } - {$DEFINE Delphi} { Use Delphi Syntax } - {$DEFINE VP2} - {&Delphi+} -{$ENDIF VirtualPascal} - -{$IFDEF Delphi} - {$DEFINE Windows} - {$DEFINE USE_STDCALL} - {$MINENUMSIZE 4} - //{$ALIGN ON} -{$ENDIF Delphi} - -{$IFDEF FPC} - {$MODE Delphi} { use Delphi compatibility mode } - {$H+} - {$PACKRECORDS C} // Added for record - {$PACKENUM 4} // Use 4-byte enums - {$MACRO ON} // Added For OpenGL - {$DEFINE Delphi} - {$DEFINE UseAT} - {$UNDEF USE_STDCALL} - {$DEFINE OS_BigMem} - {$DEFINE NO_EXPORTS} - {$DEFINE Has_Int64} - {$DEFINE NOCRT} - {$IFDEF UNIX} - {$DEFINE fpc_unix} - {$ELSE} - {$DEFINE __OS_DOS__} - {$ENDIF} - {$IFDEF WIN32} - {$DEFINE UseWin} - {$ENDIF} - {$DEFINE HAS_TYPES} -{$ENDIF FPC} - -{$IFDEF Win16} - {$K+} {smart callbacks} -{$ENDIF Win16} - - {$IFDEF OS2} - {$UNDEF Windows} - {$DEFINE UseWin} - {$DEFINE OS_BigMem} - {$ENDIF OS2} - -{$IFDEF __GPC__} - {$UNDEF UseWin} - {$UNDEF USE_STDCALL} - {$DEFINE OS_BigMem} - {$DEFINE NO_EXPORTS} - {$DEFINE NOCRT} - {$DEFINE cdecl attribute(cdecl)} -{$ENDIF} - -{$IFDEF __TMT__} - {$DEFINE OS_BigMem} - {$DEFINE NO_EXPORTS} - {$DEFINE __OS_DOS__} - {$DEFINE UseAT} - {$IFNDEF MSDOS} - {$DEFINE USE_STDCALL} - {$ENDIF} - - {$IFDEF __WIN32__} - {$DEFINE Win32} - {$DEFINE UseWin} - {$DEFINE NOCRT} - {$DEFINE Win32} - {$IFNDEF __CON__} - {$DEFINE Windows} - {$ENDIF} - {$ENDIF} - - {$A+} // Word alignment data - {$OA+} // Objects and structures align -{$ENDIF} - -{$IFDEF Win32} - {$DEFINE OS_BigMem} -{$ELSE Win32} - {$IFDEF ver70} - {$DEFINE assembler} - {$ENDIF} { use 16-bit assembler! } -{$ENDIF Win32} - -{ ************************** dos/dos-like platforms **************} -{$IFDEF Windows} - {$DEFINE __OS_DOS__} - {$DEFINE UseWin} - {$DEFINE MSWINDOWS} -{$ENDIF Delphi} - -{$IFDEF OS2} - {$DEFINE __OS_DOS__} - {$DEFINE Can_Use_DLL} -{$ENDIF Delphi} - -{$IFDEF UseWin} - {$DEFINE Can_Use_DLL} -{$ENDIF} - -{$IFDEF Win16} - {$DEFINE Can_Use_DLL} -{$ENDIF} - -{$IFDEF BP_DPMI} - {$DEFINE Can_Use_DLL} -{$ENDIF} - -{$IFDEF USE_STDCALL} - {$IFNDEF __TMT__} - {$DEFINE BY_NAME} - {$ENDIF} -{$ENDIF} - -{$IFNDEF ver70} - {$UNDEF assembler} -{$ENDIF} - -{*************** define LITTLE ENDIAN platforms ********************} - - -{$IFDEF Delphi} -{$DEFINE IA32} -{$ENDIF} - -{$IFDEF KYLIX} -{$DEFINE IA32} -{$ENDIF} - -{$IFDEF FPC} -{$IFDEF FPC_LITTLE_ENDIAN} - {$DEFINE IA32} -{$ELSE FPC_LITTLE_ENDIAN} - {$UNDEF IA32} -{$ENDIF FPC_LITTLE_ENDIAN} -{$ENDIF} diff --git a/src/lib/JEDI-SDL/fpc-install.sh b/src/lib/JEDI-SDL/fpc-install.sh deleted file mode 100644 index b7a5cf69..00000000 --- a/src/lib/JEDI-SDL/fpc-install.sh +++ /dev/null @@ -1,252 +0,0 @@ -#!/bin/sh -# -# FreePascal & Delphi Installation script for JEDI-SDL -# portions of which are based on the FreePascal install script -# Copyright 1996-2002 Michael Van Canneyt and Peter Vreman -# -# Copyright (c)2004-2100, JEDI-SDL Team -# All Rights Reserved -# -# Don NOT edit this file. -# Everything should be configuration while the script is running. -# -############################################################################ - -# Release Version -VERSION=1.0 - -# some useful functions -# ask displays 1st parameter, and ask new value for variable, whose name is -# in the second parameter. -ask () -{ -askvar=$2 -eval old=\$$askvar -eval echo -n \""$1 [$old] : "\" -read $askvar -eval test -z \"\$$askvar\" && eval $askvar=\'$old\' -} -# yesno gives 1 on no, 0 on yes $1 gives text to display. -yesno () -{ - while true; do - echo -n "$1 (Y/n) ? " - read ans - case X$ans in - X|Xy|XY) return 0;; - Xn|XN) return 1;; - esac - done -} - -# Untar files ($3,optional) from file ($1) to the given directory ($2) -unztar () -{ - tar -xzf $HERE/$1 --directory $2 $3 -} - -# Untar tar.gz file ($2) from file ($1) and untar result to the given directory ($3) -unztarfromtar () -{ - tar -xOf $HERE/$1 $2 | tar --directory $3 -xzf - -} -# Get file list from tar archive ($1) in variable ($2) -# optionally filter result through sed ($3) -listtarfiles () -{ - askvar=$2 - if [ ! -z $3 ]; then - list=`tar tvf $1 | awk '{ print $(NF) }' | sed -n /$3/p` - else - list=`tar tvf $1 | awk '{ print $(NF) }'` - fi - eval $askvar='$list' -} -# Make all the necessary directories to get $1 -makedirhierarch () -{ - OLDDIR=`pwd` - case $1 in - /*) cd /;; - esac - OLDIFS=$IFS;IFS=/;eval set $1; IFS=$OLDIFS - for i - do - test -d $i || mkdir $i || break - cd $i ||break - done - cd $OLDDIR -} - -# check to see if something is in the path -checkpath () -{ - ARG=$1 - OLDIFS=$IFS; IFS=":";eval set $PATH;IFS=$OLDIFS - for i - do - if [ $i = $ARG ]; then - return 0 - fi - done - return 1 -} - -# -------------------------------------------------------------------------- -# welcome message. -# - -clear -echo "This shell script will attempt to install the Free Pascal Compiler" -echo "version $VERSION with the items you select" -echo - -# Here we start the thing. -HERE=`pwd` - -# Install in /usr/local or /usr ? -if checkpath /usr/local/bin; then - PREFIX=/usr/local -else - PREFIX=/usr -fi -# If we can't write on prefix, select subdir of home dir -if [ ! -w $PREFIX ]; then - PREFIX=$HOME/JEDI-SDLv$VERSION -fi -ask "Install prefix (/usr or /usr/local) " PREFIX -makedirhierarch $PREFIX - -# Set some defaults. -LIBDIR=$PREFIX/lib/JEDI-SDL/$VERSION -SRCDIR=$PREFIX/src/JEDI-SDLv$VERSION -EXECDIR=$PREFIX/bin -OSNAME=`uname -s | tr A-Z a-z` - -BSDHIER=0 -case $OSNAME in -*bsd) - BSDHIER=1;; -esac - - -if [ "${BSDHIER}" = "1" ]; then -DOCDIR=$PREFIX/share/doc/JEDI-SDLv$VERSION -else -DOCDIR=$PREFIX/doc/JEDI-SDLv$VERSION -fi - -echo $DOCDIR - -DEMODIR=$PREFIX/demos - -# Install SDL headers -if yesno "Install SDL headers"; then - -fi - -# Install SDL_image headers -if yesno "Install SDL_image headers"; then - -fi - -# Install compiler/RTL. Mandatory. -echo Installing compiler and RTL ... -unztarfromtar binary.tar base${OSNAME}.tar.gz $PREFIX -rm -f $EXECDIR/ppc386 -ln -sf $LIBDIR/ppc386 $EXECDIR/ppc386 -echo Installing utilities... -unztarfromtar binary.tar util${OSNAME}.tar.gz $PREFIX -if yesno "Install FCL"; then - unztarfromtar binary.tar unitsfcl${OSNAME}.tar.gz $PREFIX -fi -if yesno "Install packages"; then - listtarfiles binary.tar packages units - for f in $packages - do - if [ $f != unitsfcl${OSNAME}.tar.gz ]; then - basename $f .tar.gz |\ - sed -e s/units// -e s/${OSNAME}// |\ - xargs echo Installing - unztarfromtar binary.tar $f $PREFIX - fi - done -fi -rm -f *${OSNAME}.tar.gz -echo Done. -echo - -# Install the sources. Optional. -if yesno "Install sources"; then - echo Installing sources in $SRCDIR ... - unztarfromtar sources.tar basesrc.tar.gz $PREFIX - if yesno "Install compiler source"; then - unztarfromtar sources.tar compilersrc.tar.gz $PREFIX - fi - if yesno "Install RTL source"; then - unztarfromtar sources.tar rtlsrc.tar.gz $PREFIX - fi - if yesno "Install FCL source"; then - unztarfromtar sources.tar fclsrc.tar.gz $PREFIX - fi - if yesno "Install IDE source"; then - unztarfromtar sources.tar idesrc.tar.gz $PREFIX - fi - if yesno "Install installer source"; then - unztarfromtar sources.tar installersrc.tar.gz $PREFIX - fi - if yesno "Install Packages source"; then - listtarfiles sources.tar packages units - for f in $packages - do - basename $f .tar.gz |\ - sed -e s/units// -e s/src// |\ - xargs echo Installing sources for - unztarfromtar sources.tar $f $PREFIX - done - fi - # rm -f *src.tar.gz - echo Done. -fi -echo - -# Install the documentation. Optional. -if yesno "Install documentation"; then - echo Installing documentation in $DOCDIR ... - unztar docs.tar.gz $DOCDIR - echo Done. -fi -echo - -# Install the demos. Optional. -if yesno "Install demos"; then - ask "Install demos in" DEMODIR - echo Installing demos in $DEMODIR ... - makedirhierarch $DEMODIR - unztar demo.tar.gz $DEMODIR - echo Done. -fi -echo - -# update fpc.cfg file -if yesno "Update fpc.cfg file automagically"; then - echo Updating fpc.cfg in $DOCDIR ... - echo - echo Done. -fi - -# update Borland IDE file -if yesno "Update the Kylix IDE automagically"; then - echo Updating the Kylix IDE in $DOCDIR ... - echo - echo Done. -fi - -$LIBDIR/samplecfg $LIBDIR - -# The End -echo -echo End of installation. -echo -echo Refer to the documentation for more information. -echo
\ No newline at end of file diff --git a/src/lib/JEDI-SDL/jedi-sdl-64bit.patch b/src/lib/JEDI-SDL/jedi-sdl-64bit.patch deleted file mode 100644 index 582ebe6a..00000000 --- a/src/lib/JEDI-SDL/jedi-sdl-64bit.patch +++ /dev/null @@ -1,1280 +0,0 @@ -cvs diff: Diffing . -cvs diff: Diffing Cal3D -cvs diff: Diffing Cal3D/Demos -cvs diff: Diffing Cal3D/Demos/DCally -cvs diff: Diffing Cal3D/Demos/DCally/data -cvs diff: Diffing Cal3D/Demos/DCally/data/cally -cvs diff: Diffing Cal3D/Pas -cvs diff: Diffing Demos -cvs diff: Diffing Demos/2D -cvs diff: Diffing Demos/2D/Aliens -cvs diff: Diffing Demos/2D/Aliens/data -cvs diff: Diffing Demos/2D/BlitzBomber -cvs diff: Diffing Demos/2D/BlitzBomber/images -cvs diff: Diffing Demos/2D/CustomCursors -cvs diff: Diffing Demos/2D/CustomCursors/cursors -cvs diff: Diffing Demos/2D/CustomCursors/images -cvs diff: Diffing Demos/2D/Fading -cvs diff: Diffing Demos/2D/Fading/images -cvs diff: Diffing Demos/2D/Isometric -cvs diff: Diffing Demos/2D/Isometric/images -cvs diff: Diffing Demos/2D/Isometric/maps -cvs diff: Diffing Demos/2D/Mouse -cvs diff: Diffing Demos/2D/Mouse/images -cvs diff: Diffing Demos/2D/PanAndZoom -cvs diff: Diffing Demos/2D/Plasma -Index: Demos/2D/Plasma/JEDISDLPlasma.dpr -=================================================================== -RCS file: /cvsroot/jedi-sdl/JEDI-SDLv1.0/Demos/2D/Plasma/JEDISDLPlasma.dpr,v -retrieving revision 1.1 -diff -u -r1.1 JEDISDLPlasma.dpr ---- Demos/2D/Plasma/JEDISDLPlasma.dpr 30 Sep 2006 17:20:08 -0000 1.1 -+++ Demos/2D/Plasma/JEDISDLPlasma.dpr 27 Feb 2008 09:15:58 -0000 -@@ -107,13 +107,13 @@ - X3_ := trunc(x3 * (TABLEX / 2)); - Y3_ := trunc(y3 * (TABLEY / 2)); - -- t1 := Pointer(Integer(t) + X1_ + Y1_ * TABLEX); -- t2 := Pointer(Integer(t) + X2_ + Y2_ * TABLEX); -- t3 := Pointer(Integer(t) + X3_ + Y3_ * TABLEX); -+ t1 := Pointer(PtrInt(t) + X1_ + Y1_ * TABLEX); -+ t2 := Pointer(PtrInt(t) + X2_ + Y2_ * TABLEX); -+ t3 := Pointer(PtrInt(t) + X3_ + Y3_ * TABLEX); - - for y := 0 to SCREEN_HEIGHT - 1 do - begin -- tmp := PByte(Integer(surface.pixels) + y * surface.pitch); -+ tmp := PByte(PtrInt(surface.pixels) + y * surface.pitch); - - tmin := y * TABLEX; - tmax := tmin + SCREEN_WIDTH; -cvs diff: Diffing Demos/2D/SDLTests -cvs diff: Diffing Demos/2D/SDLTests/images -cvs diff: Diffing Demos/2D/SDLTests/testalpha -Index: Demos/2D/SDLTests/testalpha/testalpha.dpr -=================================================================== -RCS file: /cvsroot/jedi-sdl/JEDI-SDLv1.0/Demos/2D/SDLTests/testalpha/testalpha.dpr,v -retrieving revision 1.1 -diff -u -r1.1 testalpha.dpr ---- Demos/2D/SDLTests/testalpha/testalpha.dpr 30 Sep 2006 17:20:08 -0000 1.1 -+++ Demos/2D/SDLTests/testalpha/testalpha.dpr 27 Feb 2008 09:15:59 -0000 -@@ -371,7 +371,6 @@ - ticks, lastticks : Uint32; - clip, area : TSDL_Rect; - begin -- - (* Initialize SDL *) - if ( SDL_Init( SDL_INIT_VIDEO ) < 0 ) then - begin -@@ -392,11 +391,13 @@ - end; - - videoflags := SDL_SWSURFACE; -- for i := 0 to ParamCount - 1 do -+ i := 1; -+ while i <= ParamCount do - begin - if ( ParamStr( i ) = '-bpp' ) then - begin -- video_bpp := StrToInt( ParamStr( i + 1 ) ); -+ Inc(i); -+ video_bpp := StrToInt( ParamStr( i ) ); - end - else if ( ParamStr( i ) = '-hw' ) then - begin -@@ -416,7 +417,9 @@ - 'MAIN' ); - halt( 1 ); - end; -+ Inc(i); - end; -+ - (* Set 640 x 480 video mode *) - screen := SDL_SetVideoMode( 640, 480, video_bpp, videoflags ); - if ( Screen = nil ) then -@@ -442,7 +445,7 @@ - buffer := PUint8( screen.pixels ); - for i := 0 to screen.h - 1 do - begin -- FillChar( buffer, Screen.pitch, ( i * 255 ) div screen.h ); -+ FillChar( buffer^, Screen.pitch, ( i * 255 ) div screen.h ); - //memset(buffer, (i * 255) div screen.h , screen.pitch); - Inc( buffer, screen.pitch ); - end; -@@ -469,7 +472,7 @@ - clip.w := screen.w - ( 2 * 32 ); - clip.h := screen.h - ( 2 * 32 ); - SDL_SetClipRect( screen, @clip ); -- -+ - (* Wait for a keystroke *) - lastticks := SDL_GetTicks; - done := False; -cvs diff: Diffing Demos/2D/SDLTests/testgamma -cvs diff: Diffing Demos/2D/SDLTests/testjoystick -cvs diff: Diffing Demos/2D/SDLTests/testwin -cvs diff: Diffing Demos/2D/SDLUtilsTests -cvs diff: Diffing Demos/2D/SDLUtilsTests/MainTest -cvs diff: Diffing Demos/2D/SDLUtilsTests/MainTest/images -cvs diff: Diffing Demos/2D/SDLUtilsTests/PixelTest -cvs diff: Diffing Demos/2D/SDLUtilsTests/PixelTest/images -cvs diff: Diffing Demos/2D/SDLUtilsTests/RotateSurface -cvs diff: Diffing Demos/2D/SDLUtilsTests/RotateSurface/images -cvs diff: Diffing Demos/2D/SDLUtilsTests/WormHole -cvs diff: Diffing Demos/2D/TimerTest -cvs diff: Diffing Demos/2D/Voxel -Index: Demos/2D/Voxel/JEDISDLNewVox.dpr -=================================================================== -RCS file: /cvsroot/jedi-sdl/JEDI-SDLv1.0/Demos/2D/Voxel/JEDISDLNewVox.dpr,v -retrieving revision 1.2 -diff -u -r1.2 JEDISDLNewVox.dpr ---- Demos/2D/Voxel/JEDISDLNewVox.dpr 29 May 2007 21:44:24 -0000 1.2 -+++ Demos/2D/Voxel/JEDISDLNewVox.dpr 27 Feb 2008 09:16:00 -0000 -@@ -246,7 +246,7 @@ - // Draw the column from a (last height) to y (current height) - if ( y < a ) then - begin -- b1 := PByte(Integer(@Video[0]) + a * SCREEN_WIDTH + i); -+ b1 := PByte(PtrInt(@Video[0]) + a * SCREEN_WIDTH + i); - - if lastc[i] = -1 then - lastc[i] := c; -cvs diff: Diffing Demos/2D/YuvPlayer -cvs diff: Diffing Demos/3D -cvs diff: Diffing Demos/3D/BasicShader -cvs diff: Diffing Demos/3D/NeHe -cvs diff: Diffing Demos/3D/NeHe/Tutorial 10 -cvs diff: Diffing Demos/3D/NeHe/Tutorial 10/images -cvs diff: Diffing Demos/3D/NeHe/Tutorial 10/levels -cvs diff: Diffing Demos/3D/NeHe/Tutorial 11 -cvs diff: Diffing Demos/3D/NeHe/Tutorial 11/images -cvs diff: Diffing Demos/3D/NeHe/Tutorial 12 -cvs diff: Diffing Demos/3D/NeHe/Tutorial 12/images -cvs diff: Diffing Demos/3D/NeHe/Tutorial 13 -cvs diff: Diffing Demos/3D/NeHe/Tutorial 13/images -cvs diff: Diffing Demos/3D/NeHe/Tutorial 16 -cvs diff: Diffing Demos/3D/NeHe/Tutorial 16/images -cvs diff: Diffing Demos/3D/NeHe/Tutorial 17 -cvs diff: Diffing Demos/3D/NeHe/Tutorial 17/images -cvs diff: Diffing Demos/3D/NeHe/Tutorial 18 -cvs diff: Diffing Demos/3D/NeHe/Tutorial 18/images -cvs diff: Diffing Demos/3D/NeHe/Tutorial 19 -cvs diff: Diffing Demos/3D/NeHe/Tutorial 19/images -cvs diff: Diffing Demos/3D/NeHe/Tutorial 2 -cvs diff: Diffing Demos/3D/NeHe/Tutorial 20 -cvs diff: Diffing Demos/3D/NeHe/Tutorial 20/images -cvs diff: Diffing Demos/3D/NeHe/Tutorial 21 -cvs diff: Diffing Demos/3D/NeHe/Tutorial 21/images -cvs diff: Diffing Demos/3D/NeHe/Tutorial 21/sound -cvs diff: Diffing Demos/3D/NeHe/Tutorial 3 -cvs diff: Diffing Demos/3D/NeHe/Tutorial 37 -cvs diff: Diffing Demos/3D/NeHe/Tutorial 4 -cvs diff: Diffing Demos/3D/NeHe/Tutorial 5 -cvs diff: Diffing Demos/3D/NeHe/Tutorial 6 -cvs diff: Diffing Demos/3D/NeHe/Tutorial 6/images -cvs diff: Diffing Demos/3D/NeHe/Tutorial 7 -cvs diff: Diffing Demos/3D/NeHe/Tutorial 7/images -cvs diff: Diffing Demos/3D/NeHe/Tutorial 8 -cvs diff: Diffing Demos/3D/NeHe/Tutorial 8/images -cvs diff: Diffing Demos/3D/NeHe/Tutorial 9 -cvs diff: Diffing Demos/3D/NeHe/Tutorial 9/images -cvs diff: Diffing Documentation -cvs diff: Diffing Documentation/HLP -cvs diff: Diffing Documentation/html -cvs diff: Diffing Documentation/html/images -cvs diff: Diffing HawkVoice -cvs diff: Diffing HawkVoice/Demos -cvs diff: Diffing HawkVoice/Pas -cvs diff: Diffing Newton -cvs diff: Diffing Newton/Demos -cvs diff: Diffing Newton/Demos/SDLBasic -cvs diff: Diffing Newton/Demos/SDLBuoyancy -cvs diff: Diffing Newton/Demos/SDLCharacterController -cvs diff: Diffing Newton/Demos/SDLCharacterController/data -cvs diff: Diffing Newton/Demos/SDLJoints -cvs diff: Diffing Newton/Demos/SDLRagDoll -cvs diff: Diffing Newton/Demos/SDLVehicle -cvs diff: Diffing Newton/Demos/Tutorial 1 -cvs diff: Diffing Newton/Demos/Tutorial 1/images -cvs diff: Diffing Newton/Demos/common -cvs diff: Diffing Newton/Pas -cvs diff: Diffing ODE -cvs diff: Diffing ODE/Demos -cvs diff: Diffing ODE/Demos/RagDoll -Index: ODE/Demos/RagDoll/JEDISDLRagDoll.dpr -=================================================================== -RCS file: /cvsroot/jedi-sdl/JEDI-SDLv1.0/ODE/Demos/RagDoll/JEDISDLRagDoll.dpr,v -retrieving revision 1.3 -diff -u -r1.3 JEDISDLRagDoll.dpr ---- ODE/Demos/RagDoll/JEDISDLRagDoll.dpr 20 May 2007 20:27:45 -0000 1.3 -+++ ODE/Demos/RagDoll/JEDISDLRagDoll.dpr 27 Feb 2008 09:16:11 -0000 -@@ -83,8 +83,7 @@ - glext, - logger, - sdl, -- odeimport, -- ragdoll; -+ odeimport; - - const - // screen width, height, and bit depth -cvs diff: Diffing ODE/Demos/TruckOff -cvs diff: Diffing ODE/Demos/TruckOff/images -cvs diff: Diffing ODE/Pas -cvs diff: Diffing OpenGL -cvs diff: Diffing OpenGL/Pas -cvs diff: Diffing PixelPrachtFX -cvs diff: Diffing PixelPrachtFX/Demo -Index: PixelPrachtFX/Demo/Textures.pas -=================================================================== -RCS file: /cvsroot/jedi-sdl/JEDI-SDLv1.0/PixelPrachtFX/Demo/Textures.pas,v -retrieving revision 1.2 -diff -u -r1.2 Textures.pas ---- PixelPrachtFX/Demo/Textures.pas 20 Dec 2005 20:26:54 -0000 1.2 -+++ PixelPrachtFX/Demo/Textures.pas 27 Feb 2008 09:16:11 -0000 -@@ -33,25 +33,6 @@ - implementation - - {------------------------------------------------------------------} --{ Swap bitmap format from BGR to RGB } --{------------------------------------------------------------------} --procedure SwapRGB(data : Pointer; Size : Integer); --asm -- mov ebx, eax -- mov ecx, size -- --@@loop : -- mov al,[ebx+0] -- mov ah,[ebx+2] -- mov [ebx+2],al -- mov [ebx+0],ah -- add ebx,3 -- dec ecx -- jnz @@loop --end; -- -- --{------------------------------------------------------------------} - { Create the Texture } - {------------------------------------------------------------------} - function CreateTexture(Width, Height, Format : Word; pData : Pointer) : Integer; -Index: PixelPrachtFX/Demo/fxBurn.pas -=================================================================== -RCS file: /cvsroot/jedi-sdl/JEDI-SDLv1.0/PixelPrachtFX/Demo/fxBurn.pas,v -retrieving revision 1.1 -diff -u -r1.1 fxBurn.pas ---- PixelPrachtFX/Demo/fxBurn.pas 5 Dec 2005 01:09:29 -0000 1.1 -+++ PixelPrachtFX/Demo/fxBurn.pas 27 Feb 2008 09:16:11 -0000 -@@ -2,7 +2,7 @@ - - interface - --uses ppFXcore, ppFXlib, textures, gl; -+uses ppFXcore, ppFXlib, Textures, gl; - - type - -cvs diff: Diffing PixelPrachtFX/Demo/gfx -cvs diff: Diffing PixelPrachtFX/Pas -cvs diff: Diffing SDL -cvs diff: Diffing SDL/Pas -Index: SDL/Pas/sdl.pas -=================================================================== -RCS file: /cvsroot/jedi-sdl/JEDI-SDLv1.0/SDL/Pas/sdl.pas,v -retrieving revision 1.38 -diff -u -r1.38 sdl.pas ---- SDL/Pas/sdl.pas 26 Jan 2008 10:09:32 -0000 1.38 -+++ SDL/Pas/sdl.pas 27 Feb 2008 09:16:11 -0000 -@@ -355,6 +355,12 @@ - GPCMacOSAll; - {$ENDIF} - -+{$ifndef FPC} -+type -+ PtrInt = LongInt; -+ PtrUInt = LongWord; -+{$endif} -+ - const - {$IFDEF WINDOWS} - SDLLibName = 'SDL.dll'; -Index: SDL/Pas/sdlutils.pas -=================================================================== -RCS file: /cvsroot/jedi-sdl/JEDI-SDLv1.0/SDL/Pas/sdlutils.pas,v -retrieving revision 1.5 -diff -u -r1.5 sdlutils.pas ---- SDL/Pas/sdlutils.pas 19 Nov 2006 18:56:44 -0000 1.5 -+++ SDL/Pas/sdlutils.pas 27 Feb 2008 09:16:12 -0000 -@@ -260,7 +260,7 @@ - right2, bottom2 : integer; - Scan1Start, Scan2Start, ScanWidth, ScanHeight : cardinal; - Mod1, Mod2 : cardinal; -- Addr1, Addr2 : cardinal; -+ Addr1, Addr2 : PtrUInt; - BPP : cardinal; - Pitch1, Pitch2 : cardinal; - TransparentColor1, TransparentColor2 : cardinal; -@@ -329,7 +329,7 @@ - with SrcSurface1^ do - begin - Pitch1 := Pitch; -- Addr1 := cardinal( Pixels ); -+ Addr1 := PtrUInt( Pixels ); - inc( Addr1, Pitch1 * UInt32( Src_Rect1.y ) ); - with format^ do - begin -@@ -341,7 +341,7 @@ - begin - TransparentColor2 := format.colorkey; - Pitch2 := Pitch; -- Addr2 := cardinal( Pixels ); -+ Addr2 := PtrUInt( Pixels ); - inc( Addr2, Pitch2 * UInt32( Src_Rect2.y ) ); - end; - Mod1 := Pitch1 - ( ScanWidth * BPP ); -@@ -442,14 +442,14 @@ - cardinal ); - var - SrcColor : cardinal; -- Addr : cardinal; -+ Addr : PtrUInt; - R, G, B : cardinal; - begin - if Color = 0 then - exit; - with DstSurface^ do - begin -- Addr := cardinal( Pixels ) + y * Pitch + x * format.BytesPerPixel; -+ Addr := PtrUInt( Pixels ) + y * Pitch + x * format.BytesPerPixel; - SrcColor := PUInt32( Addr )^; - case format.BitsPerPixel of - 8 : -@@ -525,14 +525,14 @@ - cardinal ); - var - SrcColor : cardinal; -- Addr : cardinal; -+ Addr : PtrUInt; - R, G, B : cardinal; - begin - if Color = 0 then - exit; - with DstSurface^ do - begin -- Addr := cardinal( Pixels ) + y * Pitch + x * format.BytesPerPixel; -+ Addr := PtrUInt( Pixels ) + y * Pitch + x * format.BytesPerPixel; - SrcColor := PUInt32( Addr )^; - case format.BitsPerPixel of - 8 : -@@ -613,7 +613,7 @@ - R, G, B, Pixel1, Pixel2, TransparentColor : cardinal; - Src, Dest : TSDL_Rect; - Diff : integer; -- SrcAddr, DestAddr : cardinal; -+ SrcAddr, DestAddr : PtrUInt; - WorkX, WorkY : word; - SrcMod, DestMod : cardinal; - Bits : cardinal; -@@ -686,14 +686,14 @@ - end; - with SrcSurface^ do - begin -- SrcAddr := cardinal( Pixels ) + UInt32( Src.y ) * Pitch + UInt32( Src.x ) * -+ SrcAddr := PtrUInt( Pixels ) + UInt32( Src.y ) * Pitch + UInt32( Src.x ) * - Format.BytesPerPixel; - SrcMod := Pitch - Src.w * Format.BytesPerPixel; - TransparentColor := Format.colorkey; - end; - with DestSurface^ do - begin -- DestAddr := cardinal( Pixels ) + UInt32( Dest.y ) * Pitch + UInt32( Dest.x ) * -+ DestAddr := PtrUInt( Pixels ) + UInt32( Dest.y ) * Pitch + UInt32( Dest.x ) * - Format.BytesPerPixel; - DestMod := Pitch - Dest.w * Format.BytesPerPixel; - Bits := Format.BitsPerPixel; -@@ -883,7 +883,7 @@ - R, G, B, Pixel1, Pixel2, TransparentColor : cardinal; - Src, Dest : TSDL_Rect; - Diff : integer; -- SrcAddr, DestAddr : cardinal; -+ SrcAddr, DestAddr : PtrUInt; - _ebx, _esi, _edi, _esp : cardinal; - WorkX, WorkY : word; - SrcMod, DestMod : cardinal; -@@ -957,14 +957,14 @@ - end; - with SrcSurface^ do - begin -- SrcAddr := cardinal( Pixels ) + UInt32( Src.y ) * Pitch + UInt32( Src.x ) * -+ SrcAddr := PtrUInt( Pixels ) + UInt32( Src.y ) * Pitch + UInt32( Src.x ) * - Format.BytesPerPixel; - SrcMod := Pitch - Src.w * Format.BytesPerPixel; - TransparentColor := Format.colorkey; - end; - with DestSurface^ do - begin -- DestAddr := cardinal( Pixels ) + UInt32( Dest.y ) * Pitch + UInt32( Dest.x ) * -+ DestAddr := PtrUInt( Pixels ) + UInt32( Dest.y ) * Pitch + UInt32( Dest.x ) * - Format.BytesPerPixel; - DestMod := Pitch - Dest.w * Format.BytesPerPixel; - Bits := DestSurface.Format.BitsPerPixel; -@@ -1145,7 +1145,7 @@ - var - Src, Dest : TSDL_Rect; - Diff : integer; -- SrcAddr, DestAddr : cardinal; -+ SrcAddr, DestAddr : PtrUInt; - _ebx, _esi, _edi, _esp : cardinal; - WorkX, WorkY : word; - SrcMod, DestMod : cardinal; -@@ -1220,14 +1220,14 @@ - end; - with SrcSurface^ do - begin -- SrcAddr := cardinal( Pixels ) + UInt32( Src.y ) * Pitch + UInt32( Src.x ) * -+ SrcAddr := PtrUInt( Pixels ) + UInt32( Src.y ) * Pitch + UInt32( Src.x ) * - Format.BytesPerPixel; - SrcMod := Pitch - Src.w * Format.BytesPerPixel; - TransparentColor := Format.colorkey; - end; - with DestSurface^ do - begin -- DestAddr := cardinal( Pixels ) + UInt32( Dest.y ) * Pitch + UInt32( Dest.x ) * -+ DestAddr := PtrUInt( Pixels ) + UInt32( Dest.y ) * Pitch + UInt32( Dest.x ) * - Format.BytesPerPixel; - DestMod := Pitch - Dest.w * Format.BytesPerPixel; - BPP := DestSurface.Format.BytesPerPixel; -@@ -1317,7 +1317,7 @@ - var - Src, Dest : TSDL_Rect; - Diff : integer; -- SrcAddr, DestAddr, TextAddr : cardinal; -+ SrcAddr, DestAddr, TextAddr : PtrUInt; - _ebx, _esi, _edi, _esp : cardinal; - WorkX, WorkY : word; - SrcMod, DestMod, TextMod : cardinal; -@@ -1392,21 +1392,21 @@ - end; - with SrcSurface^ do - begin -- SrcAddr := cardinal( Pixels ) + UInt32( Src.y ) * Pitch + UInt32( Src.x ) * -+ SrcAddr := PtrUInt( Pixels ) + UInt32( Src.y ) * Pitch + UInt32( Src.x ) * - Format.BytesPerPixel; - SrcMod := Pitch - Src.w * Format.BytesPerPixel; - TransparentColor := format.colorkey; - end; - with DestSurface^ do - begin -- DestAddr := cardinal( Pixels ) + UInt32( Dest.y ) * Pitch + UInt32( Dest.x ) * -+ DestAddr := PtrUInt( Pixels ) + UInt32( Dest.y ) * Pitch + UInt32( Dest.x ) * - Format.BytesPerPixel; - DestMod := Pitch - Dest.w * Format.BytesPerPixel; - BPP := DestSurface.Format.BitsPerPixel; - end; - with Texture^ do - begin -- TextAddr := cardinal( Pixels ) + UInt32( TextureRect.y ) * Pitch + -+ TextAddr := PtrUInt( Pixels ) + UInt32( TextureRect.y ) * Pitch + - UInt32( TextureRect.x ) * Format.BytesPerPixel; - TextMod := Pitch - Src.w * Format.BytesPerPixel; - end; -@@ -1910,17 +1910,17 @@ - end - else - Locked := false; -- Row1 := pointer( cardinal( DstSurface^.Pixels ) + UInt32( Rect^.y ) * -+ Row1 := pointer( PtrUInt( DstSurface^.Pixels ) + UInt32( Rect^.y ) * - DstSurface^.Pitch ); -- Row2 := pointer( cardinal( DstSurface^.Pixels ) + ( UInt32( Rect^.y ) + Rect^.h - 1 ) -+ Row2 := pointer( PtrUInt( DstSurface^.Pixels ) + ( UInt32( Rect^.y ) + Rect^.h - 1 ) - * DstSurface^.Pitch ); - for y := 0 to FlipLength do - begin - Move( Row1^, OneRow, RowLength ); - Move( Row2^, Row1^, RowLength ); - Move( OneRow, Row2^, RowLength ); -- inc( cardinal( Row1 ), DstSurface^.Pitch ); -- dec( cardinal( Row2 ), DstSurface^.Pitch ); -+ inc( PtrUInt( Row1 ), DstSurface^.Pitch ); -+ dec( PtrUInt( Row2 ), DstSurface^.Pitch ); - end; - if Locked then - SDL_UnlockSurface( DstSurface ); -@@ -1965,7 +1965,7 @@ - case DstSurface^.format.BytesPerPixel of - 1 : - begin -- Row8Bit := pointer( cardinal( DstSurface^.pixels ) + UInt32( Rect^.y ) * -+ Row8Bit := pointer( PtrUInt( DstSurface^.pixels ) + UInt32( Rect^.y ) * - DstSurface^.pitch ); - for y := 1 to Rect^.h do - begin -@@ -1977,12 +1977,12 @@ - Row8Bit^[ RightSide ] := Pixel; - dec( RightSide ); - end; -- inc( cardinal( Row8Bit ), DstSurface^.pitch ); -+ inc( PtrUInt( Row8Bit ), DstSurface^.pitch ); - end; - end; - 2 : - begin -- Row16Bit := pointer( cardinal( DstSurface^.pixels ) + UInt32( Rect^.y ) * -+ Row16Bit := pointer( PtrUInt( DstSurface^.pixels ) + UInt32( Rect^.y ) * - DstSurface^.pitch ); - for y := 1 to Rect^.h do - begin -@@ -1994,12 +1994,12 @@ - Row16Bit^[ RightSide ] := Pixel; - dec( RightSide ); - end; -- inc( cardinal( Row16Bit ), DstSurface^.pitch ); -+ inc( PtrUInt( Row16Bit ), DstSurface^.pitch ); - end; - end; - 3 : - begin -- Row24Bit := pointer( cardinal( DstSurface^.pixels ) + UInt32( Rect^.y ) * -+ Row24Bit := pointer( PtrUInt( DstSurface^.pixels ) + UInt32( Rect^.y ) * - DstSurface^.pitch ); - for y := 1 to Rect^.h do - begin -@@ -2011,12 +2011,12 @@ - Row24Bit^[ RightSide ] := Pixel24; - dec( RightSide ); - end; -- inc( cardinal( Row24Bit ), DstSurface^.pitch ); -+ inc( PtrUInt( Row24Bit ), DstSurface^.pitch ); - end; - end; - 4 : - begin -- Row32Bit := pointer( cardinal( DstSurface^.pixels ) + UInt32( Rect^.y ) * -+ Row32Bit := pointer( PtrUInt( DstSurface^.pixels ) + UInt32( Rect^.y ) * - DstSurface^.pitch ); - for y := 1 to Rect^.h do - begin -@@ -2028,7 +2028,7 @@ - Row32Bit^[ RightSide ] := Pixel; - dec( RightSide ); - end; -- inc( cardinal( Row32Bit ), DstSurface^.pitch ); -+ inc( PtrUInt( Row32Bit ), DstSurface^.pitch ); - end; - end; - end; -@@ -2088,8 +2088,8 @@ - dx2 := dx shl 1; - src_pitch := Surface^.pitch; - dst_pitch := dst_surface^.pitch; -- src_pixels := PUint8( integer( Surface^.pixels ) + yr * src_pitch + y1 * depth ); -- dst_pixels := PUint8( integer( dst_surface^.pixels ) + yw * dst_pitch + x1 * -+ src_pixels := PUint8( PtrUInt( Surface^.pixels ) + yr * src_pitch + y1 * depth ); -+ dst_pixels := PUint8( PtrUInt( dst_surface^.pixels ) + yw * dst_pitch + x1 * - depth ); - for d := 0 to dx - 1 do - begin -@@ -2166,9 +2166,9 @@ - src_pixels, dst_pixels : PUint8; - i : integer; - begin -- src_pixels := PUint8( integer( Surface^.pixels ) + Surface^.w * y1 * depth + x2 * -+ src_pixels := PUint8( PtrUInt( Surface^.pixels ) + Surface^.w * y1 * depth + x2 * - depth ); -- dst_pixels := PUint8( integer( Surface^.pixels ) + Surface^.w * y1 * depth + ( x2 -+ dst_pixels := PUint8( PtrUInt( Surface^.pixels ) + Surface^.w * y1 * depth + ( x2 - + xofs ) * depth ); - for i := x2 downto x1 do - begin -@@ -2187,7 +2187,7 @@ - begin - bpp := SrcSurface.format.BytesPerPixel; - // Here p is the address to the pixel we want to retrieve -- p := Pointer( Uint32( SrcSurface.pixels ) + UInt32( y ) * SrcSurface.pitch + UInt32( x ) * -+ p := Pointer( PtrUInt( SrcSurface.pixels ) + UInt32( y ) * SrcSurface.pitch + UInt32( x ) * - bpp ); - case bpp of - 1 : result := PUint8( p )^; -@@ -2214,7 +2214,7 @@ - p : PInteger; - begin - bpp := DstSurface.format.BytesPerPixel; -- p := Pointer( Uint32( DstSurface.pixels ) + UInt32( y ) * DstSurface.pitch + UInt32( x ) -+ p := Pointer( PtrUInt( DstSurface.pixels ) + UInt32( y ) * DstSurface.pitch + UInt32( x ) - * bpp ); - case bpp of - 1 : PUint8( p )^ := pixel; -@@ -2480,7 +2480,7 @@ - BPP := DstSurface.format.BytesPerPixel; - with DstSurface^ do - begin -- Addr := pointer( UInt32( pixels ) + UInt32( RealRect.y ) * pitch + UInt32( RealRect.x ) * BPP ); -+ Addr := pointer( PtrUInt( pixels ) + UInt32( RealRect.y ) * pitch + UInt32( RealRect.x ) * BPP ); - ModX := Pitch - UInt32( RealRect.w ) * BPP; - end; - case DstSurface.format.BitsPerPixel of -@@ -2501,9 +2501,9 @@ - if B > $03 then - B := $03; - PUInt8( Addr )^ := R or G or B; -- inc( UInt32( Addr ), BPP ); -+ inc( PtrUInt( Addr ), BPP ); - end; -- inc( UInt32( Addr ), ModX ); -+ inc( PtrUInt( Addr ), ModX ); - end; - end; - 15 : -@@ -2523,9 +2523,9 @@ - if B > $001F then - B := $001F; - PUInt16( Addr )^ := R or G or B; -- inc( UInt32( Addr ), BPP ); -+ inc( PtrUInt( Addr ), BPP ); - end; -- inc( UInt32( Addr ), ModX ); -+ inc( PtrUInt( Addr ), ModX ); - end; - end; - 16 : -@@ -2545,9 +2545,9 @@ - if B > $001F then - B := $001F; - PUInt16( Addr )^ := R or G or B; -- inc( UInt32( Addr ), BPP ); -+ inc( PtrUInt( Addr ), BPP ); - end; -- inc( UInt32( Addr ), ModX ); -+ inc( PtrUInt( Addr ), ModX ); - end; - end; - 24 : -@@ -2567,9 +2567,9 @@ - if B > $0000FF then - B := $0000FF; - PUInt32( Addr )^ := SrcColor and $FF000000 or R or G or B; -- inc( UInt32( Addr ), BPP ); -+ inc( PtrUInt( Addr ), BPP ); - end; -- inc( UInt32( Addr ), ModX ); -+ inc( PtrUInt( Addr ), ModX ); - end; - end; - 32 : -@@ -2589,9 +2589,9 @@ - if B > $0000FF then - B := $0000FF; - PUInt32( Addr )^ := R or G or B; -- inc( UInt32( Addr ), BPP ); -+ inc( PtrUInt( Addr ), BPP ); - end; -- inc( UInt32( Addr ), ModX ); -+ inc( PtrUInt( Addr ), ModX ); - end; - end; - end; -@@ -2613,7 +2613,7 @@ - BPP := DstSurface.format.BytesPerPixel; - with DstSurface^ do - begin -- Addr := pointer( UInt32( pixels ) + UInt32( RealRect.y ) * pitch + UInt32( RealRect.x ) * BPP ); -+ Addr := pointer( PtrUInt( pixels ) + UInt32( RealRect.y ) * pitch + UInt32( RealRect.x ) * BPP ); - ModX := Pitch - UInt32( RealRect.w ) * BPP; - end; - case DstSurface.format.BitsPerPixel of -@@ -2634,9 +2634,9 @@ - if B > $03 then - B := 0; - PUInt8( Addr )^ := R or G or B; -- inc( UInt32( Addr ), BPP ); -+ inc( PtrUInt( Addr ), BPP ); - end; -- inc( UInt32( Addr ), ModX ); -+ inc( PtrUInt( Addr ), ModX ); - end; - end; - 15 : -@@ -2656,9 +2656,9 @@ - if B > $001F then - B := 0; - PUInt16( Addr )^ := R or G or B; -- inc( UInt32( Addr ), BPP ); -+ inc( PtrUInt( Addr ), BPP ); - end; -- inc( UInt32( Addr ), ModX ); -+ inc( PtrUInt( Addr ), ModX ); - end; - end; - 16 : -@@ -2678,9 +2678,9 @@ - if B > $001F then - B := 0; - PUInt16( Addr )^ := R or G or B; -- inc( UInt32( Addr ), BPP ); -+ inc( PtrUInt( Addr ), BPP ); - end; -- inc( UInt32( Addr ), ModX ); -+ inc( PtrUInt( Addr ), ModX ); - end; - end; - 24 : -@@ -2700,9 +2700,9 @@ - if B > $0000FF then - B := 0; - PUInt32( Addr )^ := SrcColor and $FF000000 or R or G or B; -- inc( UInt32( Addr ), BPP ); -+ inc( PtrUInt( Addr ), BPP ); - end; -- inc( UInt32( Addr ), ModX ); -+ inc( PtrUInt( Addr ), ModX ); - end; - end; - 32 : -@@ -2722,9 +2722,9 @@ - if B > $0000FF then - B := 0; - PUInt32( Addr )^ := R or G or B; -- inc( UInt32( Addr ), BPP ); -+ inc( PtrUInt( Addr ), BPP ); - end; -- inc( UInt32( Addr ), ModX ); -+ inc( PtrUInt( Addr ), ModX ); - end; - end; - end; -@@ -2800,7 +2800,7 @@ - - procedure SDL_2xBlit( Src, Dest : PSDL_Surface ); - var -- ReadAddr, WriteAddr, ReadRow, WriteRow : UInt32; -+ ReadAddr, WriteAddr, ReadRow, WriteRow : PtrUInt; - SrcPitch, DestPitch, x, y : UInt32; - begin - if ( Src = nil ) or ( Dest = nil ) then -@@ -2815,8 +2815,8 @@ - if SDL_MustLock( Dest ) then - SDL_LockSurface( Dest ); - -- ReadRow := UInt32( Src.Pixels ); -- WriteRow := UInt32( Dest.Pixels ); -+ ReadRow := PtrUInt( Src.Pixels ); -+ WriteRow := PtrUInt( Dest.Pixels ); - - SrcPitch := Src.pitch; - DestPitch := Dest.pitch; -@@ -2835,8 +2835,8 @@ - inc( ReadAddr ); - inc( WriteAddr, 2 ); - end; -- inc( UInt32( ReadRow ), SrcPitch ); -- inc( UInt32( WriteRow ), DestPitch * 2 ); -+ inc( PtrUInt( ReadRow ), SrcPitch ); -+ inc( PtrUInt( WriteRow ), DestPitch * 2 ); - end; - 2 : for y := 1 to Src.h do - begin -@@ -2851,8 +2851,8 @@ - inc( ReadAddr, 2 ); - inc( WriteAddr, 4 ); - end; -- inc( UInt32( ReadRow ), SrcPitch ); -- inc( UInt32( WriteRow ), DestPitch * 2 ); -+ inc( PtrUInt( ReadRow ), SrcPitch ); -+ inc( PtrUInt( WriteRow ), DestPitch * 2 ); - end; - 3 : for y := 1 to Src.h do - begin -@@ -2867,8 +2867,8 @@ - inc( ReadAddr, 3 ); - inc( WriteAddr, 6 ); - end; -- inc( UInt32( ReadRow ), SrcPitch ); -- inc( UInt32( WriteRow ), DestPitch * 2 ); -+ inc( PtrUInt( ReadRow ), SrcPitch ); -+ inc( PtrUInt( WriteRow ), DestPitch * 2 ); - end; - 4 : for y := 1 to Src.h do - begin -@@ -2883,8 +2883,8 @@ - inc( ReadAddr, 4 ); - inc( WriteAddr, 8 ); - end; -- inc( UInt32( ReadRow ), SrcPitch ); -- inc( UInt32( WriteRow ), DestPitch * 2 ); -+ inc( PtrUInt( ReadRow ), SrcPitch ); -+ inc( PtrUInt( WriteRow ), DestPitch * 2 ); - end; - end; - -@@ -2896,7 +2896,7 @@ - - procedure SDL_Scanline2xBlit( Src, Dest : PSDL_Surface ); - var -- ReadAddr, WriteAddr, ReadRow, WriteRow : UInt32; -+ ReadAddr, WriteAddr, ReadRow, WriteRow : PtrUInt; - SrcPitch, DestPitch, x, y : UInt32; - begin - if ( Src = nil ) or ( Dest = nil ) then -@@ -2911,8 +2911,8 @@ - if SDL_MustLock( Dest ) then - SDL_LockSurface( Dest ); - -- ReadRow := UInt32( Src.Pixels ); -- WriteRow := UInt32( Dest.Pixels ); -+ ReadRow := PtrUInt( Src.Pixels ); -+ WriteRow := PtrUInt( Dest.Pixels ); - - SrcPitch := Src.pitch; - DestPitch := Dest.pitch; -@@ -2929,8 +2929,8 @@ - inc( ReadAddr ); - inc( WriteAddr, 2 ); - end; -- inc( UInt32( ReadRow ), SrcPitch ); -- inc( UInt32( WriteRow ), DestPitch * 2 ); -+ inc( PtrUInt( ReadRow ), SrcPitch ); -+ inc( PtrUInt( WriteRow ), DestPitch * 2 ); - end; - 2 : for y := 1 to Src.h do - begin -@@ -2943,8 +2943,8 @@ - inc( ReadAddr, 2 ); - inc( WriteAddr, 4 ); - end; -- inc( UInt32( ReadRow ), SrcPitch ); -- inc( UInt32( WriteRow ), DestPitch * 2 ); -+ inc( PtrUInt( ReadRow ), SrcPitch ); -+ inc( PtrUInt( WriteRow ), DestPitch * 2 ); - end; - 3 : for y := 1 to Src.h do - begin -@@ -2957,8 +2957,8 @@ - inc( ReadAddr, 3 ); - inc( WriteAddr, 6 ); - end; -- inc( UInt32( ReadRow ), SrcPitch ); -- inc( UInt32( WriteRow ), DestPitch * 2 ); -+ inc( PtrUInt( ReadRow ), SrcPitch ); -+ inc( PtrUInt( WriteRow ), DestPitch * 2 ); - end; - 4 : for y := 1 to Src.h do - begin -@@ -2971,8 +2971,8 @@ - inc( ReadAddr, 4 ); - inc( WriteAddr, 8 ); - end; -- inc( UInt32( ReadRow ), SrcPitch ); -- inc( UInt32( WriteRow ), DestPitch * 2 ); -+ inc( PtrUInt( ReadRow ), SrcPitch ); -+ inc( PtrUInt( WriteRow ), DestPitch * 2 ); - end; - end; - -@@ -2984,7 +2984,7 @@ - - procedure SDL_50Scanline2xBlit( Src, Dest : PSDL_Surface ); - var -- ReadAddr, WriteAddr, ReadRow, WriteRow : UInt32; -+ ReadAddr, WriteAddr, ReadRow, WriteRow : PtrUInt; - SrcPitch, DestPitch, x, y, Color : UInt32; - begin - if ( Src = nil ) or ( Dest = nil ) then -@@ -2999,8 +2999,8 @@ - if SDL_MustLock( Dest ) then - SDL_LockSurface( Dest ); - -- ReadRow := UInt32( Src.Pixels ); -- WriteRow := UInt32( Dest.Pixels ); -+ ReadRow := PtrUInt( Src.Pixels ); -+ WriteRow := PtrUInt( Dest.Pixels ); - - SrcPitch := Src.pitch; - DestPitch := Dest.pitch; -@@ -3021,8 +3021,8 @@ - inc( ReadAddr ); - inc( WriteAddr, 2 ); - end; -- inc( UInt32( ReadRow ), SrcPitch ); -- inc( UInt32( WriteRow ), DestPitch * 2 ); -+ inc( PtrUInt( ReadRow ), SrcPitch ); -+ inc( PtrUInt( WriteRow ), DestPitch * 2 ); - end; - 15 : for y := 1 to Src.h do - begin -@@ -3039,8 +3039,8 @@ - inc( ReadAddr, 2 ); - inc( WriteAddr, 4 ); - end; -- inc( UInt32( ReadRow ), SrcPitch ); -- inc( UInt32( WriteRow ), DestPitch * 2 ); -+ inc( PtrUInt( ReadRow ), SrcPitch ); -+ inc( PtrUInt( WriteRow ), DestPitch * 2 ); - end; - 16 : for y := 1 to Src.h do - begin -@@ -3057,8 +3057,8 @@ - inc( ReadAddr, 2 ); - inc( WriteAddr, 4 ); - end; -- inc( UInt32( ReadRow ), SrcPitch ); -- inc( UInt32( WriteRow ), DestPitch * 2 ); -+ inc( PtrUInt( ReadRow ), SrcPitch ); -+ inc( PtrUInt( WriteRow ), DestPitch * 2 ); - end; - 24 : for y := 1 to Src.h do - begin -@@ -3075,8 +3075,8 @@ - inc( ReadAddr, 3 ); - inc( WriteAddr, 6 ); - end; -- inc( UInt32( ReadRow ), SrcPitch ); -- inc( UInt32( WriteRow ), DestPitch * 2 ); -+ inc( PtrUInt( ReadRow ), SrcPitch ); -+ inc( PtrUInt( WriteRow ), DestPitch * 2 ); - end; - 32 : for y := 1 to Src.h do - begin -@@ -3093,8 +3093,8 @@ - inc( ReadAddr, 4 ); - inc( WriteAddr, 8 ); - end; -- inc( UInt32( ReadRow ), SrcPitch ); -- inc( UInt32( WriteRow ), DestPitch * 2 ); -+ inc( PtrUInt( ReadRow ), SrcPitch ); -+ inc( PtrUInt( WriteRow ), DestPitch * 2 ); - end; - end; - -@@ -3113,7 +3113,7 @@ - right2, bottom2 : integer; - Scan1Start, {Scan2Start,} ScanWidth, ScanHeight : cardinal; - Mod1 : cardinal; -- Addr1 : cardinal; -+ Addr1 : PtrUInt; - BPP : cardinal; - Pitch1 : cardinal; - TransparentColor1 : cardinal; -@@ -3171,7 +3171,7 @@ - with SrcSurface1^ do - begin - Pitch1 := Pitch; -- Addr1 := cardinal( Pixels ); -+ Addr1 := PtrUInt( Pixels ); - inc( Addr1, Pitch1 * UInt32( Src_Rect1.y ) ); - with format^ do - begin -@@ -3277,7 +3277,7 @@ - R, G, B, Pixel1, Pixel2, TransparentColor : cardinal; - Src, Dest : TSDL_Rect; - Diff : integer; -- SrcAddr, DestAddr : cardinal; -+ SrcAddr, DestAddr : PtrUInt; - WorkX, WorkY : word; - SrcMod, DestMod : cardinal; - Bits : cardinal; -@@ -3350,14 +3350,14 @@ - end; - with SrcSurface^ do - begin -- SrcAddr := cardinal( Pixels ) + UInt32( Src.y ) * Pitch + UInt32( Src.x ) * -+ SrcAddr := PtrUInt( Pixels ) + UInt32( Src.y ) * Pitch + UInt32( Src.x ) * - Format.BytesPerPixel; - SrcMod := Pitch - Src.w * Format.BytesPerPixel; - TransparentColor := Format.colorkey; - end; - with DestSurface^ do - begin -- DestAddr := cardinal( Pixels ) + UInt32( Dest.y ) * Pitch + UInt32( Dest.x ) * -+ DestAddr := PtrUInt( Pixels ) + UInt32( Dest.y ) * Pitch + UInt32( Dest.x ) * - Format.BytesPerPixel; - DestMod := Pitch - Dest.w * Format.BytesPerPixel; - Bits := Format.BitsPerPixel; -@@ -3483,7 +3483,7 @@ - R, G, B, Pixel1, Pixel2, TransparentColor : cardinal; - Src, Dest : TSDL_Rect; - Diff : integer; -- SrcAddr, DestAddr : cardinal; -+ SrcAddr, DestAddr : PtrUInt; - WorkX, WorkY : word; - SrcMod, DestMod : cardinal; - Bits : cardinal; -@@ -3556,14 +3556,14 @@ - end; - with SrcSurface^ do - begin -- SrcAddr := cardinal( Pixels ) + UInt32( Src.y ) * Pitch + UInt32( Src.x ) * -+ SrcAddr := PtrUInt( Pixels ) + UInt32( Src.y ) * Pitch + UInt32( Src.x ) * - Format.BytesPerPixel; - SrcMod := Pitch - Src.w * Format.BytesPerPixel; - TransparentColor := Format.colorkey; - end; - with DestSurface^ do - begin -- DestAddr := cardinal( Pixels ) + UInt32( Dest.y ) * Pitch + UInt32( Dest.x ) * -+ DestAddr := PtrUInt( Pixels ) + UInt32( Dest.y ) * Pitch + UInt32( Dest.x ) * - Format.BytesPerPixel; - DestMod := Pitch - Dest.w * Format.BytesPerPixel; - Bits := Format.BitsPerPixel; -@@ -3691,7 +3691,7 @@ - R, G, B, Pixel1, Pixel2, TransparentColor : cardinal; - Src, Dest : TSDL_Rect; - Diff : integer; -- SrcAddr, DestAddr : cardinal; -+ SrcAddr, DestAddr : PtrUInt; - WorkX, WorkY : word; - SrcMod, DestMod : cardinal; - Bits : cardinal; -@@ -3764,14 +3764,14 @@ - end; - with SrcSurface^ do - begin -- SrcAddr := cardinal( Pixels ) + UInt32( Src.y ) * Pitch + UInt32( Src.x ) * -+ SrcAddr := PtrUInt( Pixels ) + UInt32( Src.y ) * Pitch + UInt32( Src.x ) * - Format.BytesPerPixel; - SrcMod := Pitch - Src.w * Format.BytesPerPixel; - TransparentColor := Format.colorkey; - end; - with DestSurface^ do - begin -- DestAddr := cardinal( Pixels ) + UInt32( Dest.y ) * Pitch + UInt32( Dest.x ) * -+ DestAddr := PtrUInt( Pixels ) + UInt32( Dest.y ) * Pitch + UInt32( Dest.x ) * - Format.BytesPerPixel; - DestMod := Pitch - Dest.w * Format.BytesPerPixel; - Bits := Format.BitsPerPixel; -@@ -3992,7 +3992,7 @@ - R, G, B, Pixel1, Pixel2, TransparentColor : cardinal; - Src, Dest : TSDL_Rect; - Diff : integer; -- SrcAddr, DestAddr : cardinal; -+ SrcAddr, DestAddr : PtrUInt; - WorkX, WorkY : word; - SrcMod, DestMod : cardinal; - Bits : cardinal; -@@ -4065,14 +4065,14 @@ - end; - with SrcSurface^ do - begin -- SrcAddr := cardinal( Pixels ) + UInt32( Src.y ) * Pitch + UInt32( Src.x ) * -+ SrcAddr := PtrUInt( Pixels ) + UInt32( Src.y ) * Pitch + UInt32( Src.x ) * - Format.BytesPerPixel; - SrcMod := Pitch - Src.w * Format.BytesPerPixel; - TransparentColor := Format.colorkey; - end; - with DestSurface^ do - begin -- DestAddr := cardinal( Pixels ) + UInt32( Dest.y ) * Pitch + UInt32( Dest.x ) * -+ DestAddr := PtrUInt( Pixels ) + UInt32( Dest.y ) * Pitch + UInt32( Dest.x ) * - Format.BytesPerPixel; - DestMod := Pitch - Dest.w * Format.BytesPerPixel; - Bits := Format.BitsPerPixel; -cvs diff: Diffing SDLCtrls -cvs diff: Diffing SDLCtrls/Demos -cvs diff: Diffing SDLCtrls/Demos/SDLCtrls -cvs diff: Diffing SDLCtrls/Demos/SDLCtrls/Graphic -cvs diff: Diffing SDLCtrls/Pas -cvs diff: Diffing SDLCtrls/Tools -cvs diff: Diffing SDLCtrls/Tools/SDLFDesign -cvs diff: Diffing SDLCtrls/Tools/SDLFDesign/Data -cvs diff: Diffing SDLCtrls/Tools/SDLFDesign/Source -cvs diff: Diffing SDLCtrls/Tools/SDLImages -cvs diff: Diffing SDLCtrls/Tools/SGFont -cvs diff: Diffing SDLCtrls/Tools/SGFont/SGFontConv -cvs diff: Diffing SDLCtrls/docs -cvs diff: Diffing SDLCtrls/docs/images -cvs diff: Diffing SDLCtrls/zlib -cvs diff: Diffing SDLFilter -cvs diff: Diffing SDLFilter/Demos -cvs diff: Diffing SDLFilter/Demos/Test -cvs diff: Diffing SDLFilter/Demos/Test/images -cvs diff: Diffing SDLFilter/Pas -cvs diff: Diffing SDLMonoFonts -cvs diff: Diffing SDLMonoFonts/Demos -cvs diff: Diffing SDLMonoFonts/Demos/Test -cvs diff: Diffing SDLMonoFonts/Images -cvs diff: Diffing SDLMonoFonts/Pas -Index: SDLMonoFonts/Pas/sdlmonofonts.pas -=================================================================== -RCS file: /cvsroot/jedi-sdl/JEDI-SDLv1.0/SDLMonoFonts/Pas/sdlmonofonts.pas,v -retrieving revision 1.3 -diff -u -r1.3 sdlmonofonts.pas ---- SDLMonoFonts/Pas/sdlmonofonts.pas 26 Nov 2006 10:25:19 -0000 1.3 -+++ SDLMonoFonts/Pas/sdlmonofonts.pas 27 Feb 2008 09:16:12 -0000 -@@ -152,7 +152,7 @@ - end; - inc( ReadPos ); - until ReadPos >= TextLength; -- FoundWord := pointer( cardinal( Txt ) + StartPos ); -+ FoundWord := pointer( PtrUInt( Txt ) + StartPos ); - ItsLength := ReadPos - StartPos; - end; - -cvs diff: Diffing SDLSpriteEngine -cvs diff: Diffing SDLSpriteEngine/Demos -cvs diff: Diffing SDLSpriteEngine/Demos/CollisionTest -cvs diff: Diffing SDLSpriteEngine/Demos/Oxygene -cvs diff: Diffing SDLSpriteEngine/Demos/Oxygene/Caverns -cvs diff: Diffing SDLSpriteEngine/Demos/Oxygene/Gfx -cvs diff: Diffing SDLSpriteEngine/Demos/Oxygene/Music -cvs diff: Diffing SDLSpriteEngine/Demos/Oxygene/Sounds -cvs diff: Diffing SDLSpriteEngine/Demos/Shooting -Index: SDLSpriteEngine/Demos/Shooting/Shooting.dpr -=================================================================== -RCS file: /cvsroot/jedi-sdl/JEDI-SDLv1.0/SDLSpriteEngine/Demos/Shooting/Shooting.dpr,v -retrieving revision 1.2 -diff -u -r1.2 Shooting.dpr ---- SDLSpriteEngine/Demos/Shooting/Shooting.dpr 23 Dec 2004 23:37:27 -0000 1.2 -+++ SDLSpriteEngine/Demos/Shooting/Shooting.dpr 27 Feb 2008 09:16:13 -0000 -@@ -445,13 +445,13 @@ - y : integer; - Row : array[ 0..319 ] of byte; - MustLock : boolean; -- Video1, Video2 : cardinal; -+ Video1, Video2 : PtrUInt; - begin - MustLock := SDL_MustLock( Background ); - if MustLock then - SDL_LockSurface( Background ); -- Video1 := cardinal( Background.pixels ) + 238 * Background.pitch; { from } -- Video2 := cardinal( Background.pixels ) + 239 * Background.pitch; { to } -+ Video1 := PtrUInt( Background.pixels ) + 238 * Background.pitch; { from } -+ Video2 := PtrUInt( Background.pixels ) + 239 * Background.pitch; { to } - { store lowest row } - Move( pointer( Video2 )^, Row[ 0 ], 320 ); - for y := 0 to 238 do -cvs diff: Diffing SDLSpriteEngine/Demos/ZTest -cvs diff: Diffing SDLSpriteEngine/Demos/images -cvs diff: Diffing SDLSpriteEngine/Pas -cvs diff: Diffing SDL_Gfx -cvs diff: Diffing SDL_Gfx/Pas -cvs diff: Diffing SDL_Image -cvs diff: Diffing SDL_Image/Pas -cvs diff: Diffing SDL_Mixer -cvs diff: Diffing SDL_Mixer/Demos -cvs diff: Diffing SDL_Mixer/Demos/WavTest -cvs diff: Diffing SDL_Mixer/Pas -cvs diff: Diffing SDL_Net -cvs diff: Diffing SDL_Net/Demos -cvs diff: Diffing SDL_Net/Demos/Clients -cvs diff: Diffing SDL_Net/Demos/Clients/TCPConsole -cvs diff: Diffing SDL_Net/Demos/Clients/TCPGUI -cvs diff: Diffing SDL_Net/Demos/Clients/TimeSync -cvs diff: Diffing SDL_Net/Demos/Clients/UDPConsole -cvs diff: Diffing SDL_Net/Demos/Servers -cvs diff: Diffing SDL_Net/Demos/Servers/TCPMulti -cvs diff: Diffing SDL_Net/Demos/Servers/TimeSync -cvs diff: Diffing SDL_Net/Demos/Servers/UDP -cvs diff: Diffing SDL_Net/Demos/WebUpdate -cvs diff: Diffing SDL_Net/Demos/WebUpdate/fonts -cvs diff: Diffing SDL_Net/Demos/WebUpdate/images -cvs diff: Diffing SDL_Net/Pas -cvs diff: Diffing SDL_Sound -cvs diff: Diffing SDL_Sound/Pas -cvs diff: Diffing SDL_flic -cvs diff: Diffing SDL_flic/Demo -cvs diff: Diffing SDL_flic/Pas -Index: SDL_flic/Pas/sdl_flic.pas -=================================================================== -RCS file: /cvsroot/jedi-sdl/JEDI-SDLv1.0/SDL_flic/Pas/sdl_flic.pas,v -retrieving revision 1.1 -diff -u -r1.1 sdl_flic.pas ---- SDL_flic/Pas/sdl_flic.pas 4 Jan 2006 00:49:06 -0000 1.1 -+++ SDL_flic/Pas/sdl_flic.pas 27 Feb 2008 09:16:14 -0000 -@@ -276,16 +276,16 @@ - var line , p: PUInt8; - numlines, numpackets, size: Integer; - begin -- line :=PUint8( Integer(flic.Surface.pixels) + readu16(flic) * flic.Surface.pitch); -+ line :=PUint8( PtrInt(flic.Surface.pixels) + readu16(flic) * flic.Surface.pitch); - numlines := readu16(flic); - while (numlines > 0) do - begin - p := line; -- line := PUint8(Integer(line) + flic.Surface.pitch); -+ line := PUint8(PtrInt(line) + flic.Surface.pitch); - numpackets := readu8(flic); - while numpackets > 0 do - begin -- p := PUint8(Integer(p)+ readu8(flic)); -+ p := PUint8(PtrInt(p)+ readu8(flic)); - size := Sint8(readu8(flic)); - if size >= 0 then - readbuffer(flic, p, size) -@@ -294,7 +294,7 @@ - size := -size; - FillChar(p^, size, readu8(flic)); - end; -- p := PUint8(Integer(p) + Size); -+ p := PUint8(PtrInt(p) + Size); - dec(numpackets); - end; - dec(numlines); -@@ -316,8 +316,8 @@ - begin - //* The number of packages is ignored, packets run until the next line is reached. */ - readu8(flic); -- next := PUint8(Integer(p) + flic.Surface.pitch); -- while (Integer(p) < Integer(next)) do -+ next := PUint8(PtrInt(p) + flic.Surface.pitch); -+ while (PtrInt(p) < PtrInt(next)) do - begin - // size pixels will change. */ - size := SInt8(readu8(flic)); -@@ -332,7 +332,7 @@ - //* One pixel to be repeated follow. */ - FillChar(p^, size, readu8(flic)); - end; -- p := PUint8(Integer(p) + size); -+ p := PUint8(PtrInt(p) + size); - end; - dec(numlines); - end; -@@ -382,11 +382,11 @@ - case ((code shr 14) and $03) of - $00: - begin -- p := PUint8(Uint32(flic.Surface.pixels) + flic.Surface.pitch * y); -+ p := PUint8(PtrUInt(flic.Surface.pixels) + flic.Surface.pitch * y); - while (code > 0) do - begin - // Skip some pixels. -- p := PUint8(Integer(p) + readu8(flic)); -+ p := PUint8(PtrInt(p) + readu8(flic)); - size := SInt8(readu8(flic)) * 2; - if (size >= 0) then - begin -@@ -399,7 +399,7 @@ - readu8(flic); - FillChar(p, size, readu8(flic)); - end; -- p := PUint8(Integer(p)+size); -+ p := PUint8(PtrInt(p)+size); - dec(code); - end; - y := y + 1; -@@ -409,7 +409,7 @@ - $02: - begin - // Last pixel of the line. */ -- p := Pointer(UInt32(flic.Surface.pixels) + flic.Surface.pitch * UInt32(y + 1)); -+ p := Pointer(PtrUInt(flic.Surface.pixels) + flic.Surface.pitch * UInt32(y + 1)); - //p[-1] = code & 0xFF; - PUint8(p^-1)^ := code and $FF; - end; -cvs diff: Diffing SDL_ttf -cvs diff: Diffing SDL_ttf/Demos -cvs diff: Diffing SDL_ttf/Demos/GLFont -cvs diff: Diffing SDL_ttf/Demos/ShowFont -cvs diff: Diffing SDL_ttf/Pas -cvs diff: Diffing SFont -cvs diff: Diffing SFont/Demos -cvs diff: Diffing SFont/Demos/Tests -cvs diff: Diffing SFont/Demos/Tests/images -cvs diff: Diffing SFont/Pas -cvs diff: Diffing fmod -cvs diff: Diffing fmod/Pas -cvs diff: Diffing smpeg -cvs diff: Diffing smpeg/Demos -cvs diff: Diffing smpeg/Demos/GLMovie -cvs diff: Diffing smpeg/Demos/MpegPlayer -cvs diff: Diffing smpeg/Demos/SMpegPlayer -cvs diff: Diffing smpeg/Pas diff --git a/src/lib/JEDI-SDL/moduleloader-libc.patch b/src/lib/JEDI-SDL/moduleloader-libc.patch deleted file mode 100644 index 02255db0..00000000 --- a/src/lib/JEDI-SDL/moduleloader-libc.patch +++ /dev/null @@ -1,25 +0,0 @@ -Index: SDL/Pas/moduleloader.pas
-===================================================================
---- SDL/Pas/moduleloader.pas (revision 1144)
-+++ SDL/Pas/moduleloader.pas (working copy)
-@@ -185,15 +185,16 @@
- - {$IFDEF Unix} - uses --{$ifdef Linux} -- Types, -- Libc; --{$else} -+{$ifdef FPC} - dl, - Types, - Baseunix, - Unix; -+{$else} -+ Types, -+ Libc; - {$endif} -+ - type - // Handle to a loaded .so - TModuleHandle = Pointer; diff --git a/src/lib/SQLite/example/Sunset.jpg b/src/lib/SQLite/example/Sunset.jpg Binary files differdeleted file mode 100644 index 860f6eec..00000000 --- a/src/lib/SQLite/example/Sunset.jpg +++ /dev/null diff --git a/src/lib/SQLite/example/TestSqlite.dpr b/src/lib/SQLite/example/TestSqlite.dpr deleted file mode 100644 index 596a3a04..00000000 --- a/src/lib/SQLite/example/TestSqlite.dpr +++ /dev/null @@ -1,15 +0,0 @@ -program TestSqlite; - -uses - Forms, - uTestSqlite in 'uTestSqlite.pas' {Form1}, - SQLiteTable3 in 'SQLiteTable3.pas', - SQLite3 in 'SQLite3.pas'; - -{$R *.res} - -begin - Application.Initialize; - Application.CreateForm(TForm1, Form1); - Application.Run; -end. diff --git a/src/lib/SQLite/example/TestSqlite.res b/src/lib/SQLite/example/TestSqlite.res Binary files differdeleted file mode 100644 index 4bdd5e2e..00000000 --- a/src/lib/SQLite/example/TestSqlite.res +++ /dev/null diff --git a/src/lib/SQLite/example/uTestSqlite.dfm b/src/lib/SQLite/example/uTestSqlite.dfm deleted file mode 100644 index 6b4a2aaf..00000000 --- a/src/lib/SQLite/example/uTestSqlite.dfm +++ /dev/null @@ -1,110 +0,0 @@ -object Form1: TForm1
- Left = 199
- Top = 280
- Width = 541
- Height = 308
- Caption = 'Test SQLite 3'
- Color = clBtnFace
- Font.Charset = DEFAULT_CHARSET
- Font.Color = clWindowText
- Font.Height = -11
- Font.Name = 'MS Sans Serif'
- Font.Style = []
- OldCreateOrder = False
- PixelsPerInch = 96
- TextHeight = 13
- object Label1: TLabel
- Left = 24
- Top = 104
- Width = 28
- Height = 13
- Caption = 'Notes'
- end
- object Label2: TLabel
- Left = 24
- Top = 44
- Width = 28
- Height = 13
- Caption = 'Name'
- end
- object Label3: TLabel
- Left = 24
- Top = 72
- Width = 40
- Height = 13
- Caption = 'Number:'
- end
- object Label4: TLabel
- Left = 24
- Top = 12
- Width = 11
- Height = 13
- Caption = 'ID'
- end
- object Image1: TImage
- Left = 272
- Top = 12
- Width = 241
- Height = 165
- Proportional = True
- Stretch = True
- end
- object btnTest: TButton
- Left = 24
- Top = 224
- Width = 161
- Height = 37
- Caption = 'Test SQLite 3'
- TabOrder = 0
- OnClick = btnTestClick
- end
- object memNotes: TMemo
- Left = 24
- Top = 124
- Width = 185
- Height = 89
- Lines.Strings = (
- '')
- ScrollBars = ssVertical
- TabOrder = 1
- end
- object ebName: TEdit
- Left = 72
- Top = 40
- Width = 173
- Height = 21
- TabOrder = 2
- end
- object ebNumber: TEdit
- Left = 72
- Top = 68
- Width = 173
- Height = 21
- TabOrder = 3
- end
- object ebID: TEdit
- Left = 72
- Top = 12
- Width = 173
- Height = 21
- TabOrder = 4
- end
- object btnLoadImage: TButton
- Left = 192
- Top = 224
- Width = 157
- Height = 37
- Caption = 'Load image'
- TabOrder = 5
- OnClick = btnLoadImageClick
- end
- object btnDisplayImage: TButton
- Left = 360
- Top = 224
- Width = 157
- Height = 37
- Caption = 'Display image'
- TabOrder = 6
- OnClick = btnDisplayImageClick
- end
-end
diff --git a/src/lib/SQLite/readme.txt b/src/lib/SQLite/readme.txt deleted file mode 100644 index 7998d17f..00000000 --- a/src/lib/SQLite/readme.txt +++ /dev/null @@ -1,93 +0,0 @@ -5 June 2008 -Updated DLL to version 3.5.9 (built with MSVC 6.0) -Added code from Andrew Retmanski to support prepared queries (see comments in SQLIteTable3.pas -Lukas added support for named parameters - see comments in code -User nebula enhanced error message; also modified code to call sqlite3_reset before checking error message - - -27 Aug 2007 -Amended TSQLiteDatabase constructor to convert filename to UTF8,for compatibility with latest SQLite3 DLL. - -Updated DLL to version 3.4.2 (built with MSVC 6.0). - -14 Aug 2005 - -The following changes were made by Lukas Gebauer (geby@volny.cz). In addition, some changes from a previous D5-compatible version were merged, and the supplied sqlite3.dll is updated to version 3.2.2 - -Notes from Lukas: - -- added support for delphi 4+ - -- datatype constants matches SQlite datatypes contants. (otherwise in some situations you got bad column datatype!) - -- removed dependency on strutils - -- code is reformatted to better look (official borland formatting rules) - -- added some pragma's after database is open (temp is in memory) - -- TSQLiteDatabase.GetTableValue(const SQL: string): int64 for easy call of SQL commands what returning one number only. (like select -count(*)...) - -- TSQLiteDatabase.GetTableString(const SQL: string): String for easy call of SQL commands what returning one string only. (like PRAGMA -integrity_check) - -- TSQLiteDatabase.SetTimeout(Value: integer); you can set timeout for accessing to some table. Good for database sharing! - -- TSQLiteDatabase.version: string; returns SQLITE version string - -- removed bool fieldtype (it is not natural SQLite3 type) - -- fild type detection by Sqite3_columnType knows REAL too. - -- integer filedtype is based on Int64 - -- GetFields can get data from any supported fieldtype - -- changed some integers to cardinal for avoid signed and unsigned mismatch - -- TSqliteTable.FieldAsInteger(I: cardinal): int64; returns int64 - - -3 May 2005 Fixed bug where strupper called on column type before checking for nil - -2 May 2005 Add extra check for nil in TSqliteTable.Destroy, thanks to Tim Maddrell - -22 Apr 2005 Revise TSqliteTable.Destroy to fix memory leak with dtStr type (thanks to -Jose Brito) - -21 Apr 2005 Quick revision to fix case sensitivity in detecting column type, -and remove PRAGMA full_column_names = 1 which is deprecated. Warning: may break code. Fix your SQL code so that all column names in a result set are unique. - -21 Feb 2005 Sqlite DLL now 3.1.3 - -19 Feb 2005 Revised for Sqlite 3.1.2 - -21 Dec 2004 First public release - -The following notice appears in the Sqlite source code: - -* -** 2001 September 15 -** -** -** The author disclaims copyright to this source code. In place of - -** a legal notice, here is a blessing: - -** - May you do good and not evil. - -** May you find forgiveness for yourself and forgive others. - -** May you share freely, never taking more than you give. - - -For more information about SQLite, see http://www.sqlite.org - -For more information about this simple wrapper, see http://www.itwriting.com/sqlitesimple.php - - - - - diff --git a/src/lib/TntUnicodeControls/License.txt b/src/lib/TntUnicodeControls/License.txt deleted file mode 100644 index 8ac7f75b..00000000 --- a/src/lib/TntUnicodeControls/License.txt +++ /dev/null @@ -1,11 +0,0 @@ -TntWare Delphi Unicode Controls - http://www.tntware.com/delphicontrols/unicode/ - -Copyright (c) 2002-2007, Troy Wolbrink (www.tntware.com) - -License -Redistribution and use in binary forms, with or without modification, are permitted. Redistribution and use in source forms, with or without modification, are permitted provided that the redistributions of source code retain the above copyright. - -Disclaimer -This software is provided by the author "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 author 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. - diff --git a/src/lib/TntUnicodeControls/Readme.txt b/src/lib/TntUnicodeControls/Readme.txt deleted file mode 100644 index a2d8f799..00000000 --- a/src/lib/TntUnicodeControls/Readme.txt +++ /dev/null @@ -1,53 +0,0 @@ - ** Tnt Delphi UNICODE Controls Project ** - -Website: http://tnt.ccci.org/delphi_unicode_controls/ -Email: troy.wolbrink@ccci.org - -These controls are provided as-is, with no implied warranty. They are freely available for you to use in your own projects. Please let me know if you have found them helpful. Also, please let me know if you find any bugs or other areas of needed improvement. - - ----Delphi Installation-------------------------- - -The most simple way to install these components is by opening the appropriate design package in Delphi and clicking on the big "Install" button. For instance, Delphi 5's design package is TntUnicodeVcl_D50.dpk. - -For BCB 2006 and newer, open the appropriate design package in the packages\bcbx\ folder using the Delphi personality. After compiling and installing, you should be able to use the components in both the Delphi and BCB personality. Remember to set the library path in menu "Tools->Options" for both the C++ Builder and the Delphi. - - ----A note on fonts---------------------- - -The default TFont uses "MS Sans Serif" which doesn't work well with most non-ANSI characters. I'd recommend using a TrueType font such as "Tahoma" if it is installed on the machine. To make TFont use a different font like "Tahoma" add this to the first line in the project: - - Graphics.DefFontData.Name := 'Tahoma'; - -You might have to include "Graphics" in the file's uses clauses. Furthermore, adding this line of code to the project will cause the changed setting to only be applied at runtime, not at design time. To make a designtime change, you'd have to add this line to the initialization section of a unit in a design package. - -Regarding the IDE, I use GExperts to change the font of the Object Inspector. The Wide String List editor uses the font used by the object inspector. - -Also keep in mind that the font used by certain message boxes come from that set by Windows' Display properties. - - ----Background---------------------------- - -Designing software for an international audience, I've always wanted to write a full UNICODE application. My approach so far, has been to write Unicode on the inside, and MBCS on the outside. This has always been frustrating, because (even on Windows NT/2000/XP which provide native Unicode window controls) the WideStrings inside my application and databases were always confined to an ANSI VCL. And, since the VCL was designed to wrap the low-level Windows details, why shouldn't the VCL hide the fact that sometimes native Unicode controls are not possible on the given version of Windows. I believe the VCL should be written with a Unicode interface, even if it must (at times) deal with an ANSI operating system. For example, TEdit should expose Text as a WideString, even if it has to convert the WideString to an AnsiString on the Windows 9X platform. - -In the past, the ANSI VCL may have made a little sense, considering that there were many more users of Windows 9X, than Windows NT. There would have been some performance penalty to use WideStrings on the Windows 9X platform. But with the faster computers of today, and with more people using platforms such as Windows 2000 and Windows XP, the ANSI VCL just doesn't make sense anymore. In fact, having to use the the ANSI VCL on Windows NT/2000/XP is slower because of the constant conversion to and from UNICODE inside Windows. - -My coding signature is Tnt. I will use this to denote my classes from others. - -For more information about me: <http://home.ccci.org/wolbrink/> -Some of my software projects (all written in Delphi). - TntMPD (contact manager for missionaries) - <http://www.tntmpd.com/> - Jesus Film Screen Saver - <http://home.ccci.org/wolbrink/screensaver.htm> - ActiveX SCR control - <http://tnt.ccci.org/download/activex_scr/ActiveXSCR.exe> - ----Design Goals---------------------------- - -I want the controls to work on Windows 95, 98, ME, NT, 2000, XP, etc. I want a single EXE for all platforms. Of course, full UNICODE support is only truly available on NT/2000/XP. In other words, the controls should automatically scale to take advantage of native Unicode support when possible. - -I want the controls to inherit from the Delphi VCL. I want to reuse as much code as possible. For the most part this makes sense. The only sticky part is where text messages get passed around. But I believe I've gotten past this through strategic subclassing at various points in the message flow chain. To give a rough comparison of why this is so important, check out the following chart which compares the lines of code in the VCL for a given control (4,397 in all), and the lines of code required in my descendent controls (655 in all). Besides saving lines of code, I get the advantage of automatically inheriting new features as new versions of Delphi come out. One such example is the AlphaBlending feature in the Delphi 6 TForm. Even though I use Delphi 5 now, I won't have to add any code to get this new feature. - ----More Interesting Information---------------------------- -Case Study: Porting an MFC Application to Unicode: It looks like the FrontPage 2002 team did the roughly the same thing to MFC as what I'm doing to the VCL. They did this with the same goal in mind: to support Unicode as much as possible depending on the support offered by Windows. Another goal was "Don’t abandon MFC; don’t rewrite app". Because they still want to support Windows 9X using the same worldwide EXE used everywhere. They couldn't just compile with the _UNICODE directive. They had to start with the ANSI MFC, strategically subclassing window procedures at just the right places. Hmmm... sounds familiar.
\ No newline at end of file diff --git a/src/lib/TntUnicodeControls/TntCompilers.inc b/src/lib/TntUnicodeControls/TntCompilers.inc deleted file mode 100644 index 06f4d9ab..00000000 --- a/src/lib/TntUnicodeControls/TntCompilers.inc +++ /dev/null @@ -1,378 +0,0 @@ -//---------------------------------------------------------------------------------------------------------------------- -// Include file to determine which compiler is currently being used to build the project/component. -// This file uses ideas from Brad Stowers DFS.inc file (www.delphifreestuff.com). -// -// Portions created by Mike Lischke are Copyright -// (C) 1999-2002 Dipl. Ing. Mike Lischke. All Rights Reserved. -//---------------------------------------------------------------------------------------------------------------------- -// The following symbols are defined: -// -// COMPILER_1 : Kylix/Delphi/BCB 1.x is the compiler. -// COMPILER_1_UP : Kylix/Delphi/BCB 1.x or higher is the compiler. -// COMPILER_2 : Kylix/Delphi 2.x or BCB 1.x is the compiler. -// COMPILER_2_UP : Kylix/Delphi 2.x or higher, or BCB 1.x or higher is the compiler. -// COMPILER_3 : Kylix/Delphi/BCB 3.x is the compiler. -// COMPILER_3_UP : Kylix/Delphi/BCB 3.x or higher is the compiler. -// COMPILER_4 : Kylix/Delphi/BCB 4.x is the compiler. -// COMPILER_4_UP : Kylix/Delphi/BCB 4.x or higher is the compiler. -// COMPILER_5 : Kylix/Delphi/BCB 5.x is the compiler. -// COMPILER_5_UP : Kylix/Delphi/BCB 5.x or higher is the compiler. -// COMPILER_6 : Kylix/Delphi/BCB 6.x is the compiler. -// COMPILER_6_UP : Kylix/Delphi/BCB 6.x or higher is the compiler. -// COMPILER_7 : Kylix/Delphi/BCB 7.x is the compiler. -// COMPILER_7_UP : Kylix/Delphi/BCB 7.x or higher is the compiler. -// -// Only defined if Windows is the target: -// CPPB : Any version of BCB is being used. -// CPPB_1 : BCB v1.x is being used. -// CPPB_3 : BCB v3.x is being used. -// CPPB_3_UP : BCB v3.x or higher is being used. -// CPPB_4 : BCB v4.x is being used. -// CPPB_4_UP : BCB v4.x or higher is being used. -// CPPB_5 : BCB v5.x is being used. -// CPPB_5_UP : BCB v5.x or higher is being used. -// CPPB_6 : BCB v6.x is being used. -// CPPB_6_UP : BCB v6.x or higher is being used. -// -// Only defined if Windows is the target: -// DELPHI : Any version of Delphi is being used. -// DELPHI_1 : Delphi v1.x is being used. -// DELPHI_2 : Delphi v2.x is being used. -// DELPHI_2_UP : Delphi v2.x or higher is being used. -// DELPHI_3 : Delphi v3.x is being used. -// DELPHI_3_UP : Delphi v3.x or higher is being used. -// DELPHI_4 : Delphi v4.x is being used. -// DELPHI_4_UP : Delphi v4.x or higher is being used. -// DELPHI_5 : Delphi v5.x is being used. -// DELPHI_5_UP : Delphi v5.x or higher is being used. -// DELPHI_6 : Delphi v6.x is being used. -// DELPHI_6_UP : Delphi v6.x or higher is being used. -// DELPHI_7 : Delphi v7.x is being used. -// DELPHI_7_UP : Delphi v7.x or higher is being used. -// -// Only defined if Linux is the target: -// KYLIX : Any version of Kylix is being used. -// KYLIX_1 : Kylix 1.x is being used. -// KYLIX_1_UP : Kylix 1.x or higher is being used. -// KYLIX_2 : Kylix 2.x is being used. -// KYLIX_2_UP : Kylix 2.x or higher is being used. -// KYLIX_3 : Kylix 3.x is being used. -// KYLIX_3_UP : Kylix 3.x or higher is being used. -// -// Only defined if Linux is the target: -// QT_CLX : Trolltech's QT library is being used. -//---------------------------------------------------------------------------------------------------------------------- - -{$ifdef Win32} - - {$ifdef VER180} - {$define COMPILER_10} - {$define DELPHI} - {$define DELPHI_10} - {$endif} - - {$ifdef VER170} - {$define COMPILER_9} - {$define DELPHI} - {$define DELPHI_9} - {$endif} - - {$ifdef VER150} - {$define COMPILER_7} - {$define DELPHI} - {$define DELPHI_7} - {$endif} - - {$ifdef VER140} - {$define COMPILER_6} - {$ifdef BCB} - {$define CPPB} - {$define CPPB_6} - {$else} - {$define DELPHI} - {$define DELPHI_6} - {$endif} - {$endif} - - {$ifdef VER130} - {$define COMPILER_5} - {$ifdef BCB} - {$define CPPB} - {$define CPPB_5} - {$else} - {$define DELPHI} - {$define DELPHI_5} - {$endif} - {$endif} - - {$ifdef VER125} - {$define COMPILER_4} - {$define CPPB} - {$define CPPB_4} - {$endif} - - {$ifdef VER120} - {$define COMPILER_4} - {$define DELPHI} - {$define DELPHI_4} - {$endif} - - {$ifdef VER110} - {$define COMPILER_3} - {$define CPPB} - {$define CPPB_3} - {$endif} - - {$ifdef VER100} - {$define COMPILER_3} - {$define DELPHI} - {$define DELPHI_3} - {$endif} - - {$ifdef VER93} - {$define COMPILER_2} // C++ Builder v1 compiler is really v2 - {$define CPPB} - {$define CPPB_1} - {$endif} - - {$ifdef VER90} - {$define COMPILER_2} - {$define DELPHI} - {$define DELPHI_2} - {$endif} - - {$ifdef VER80} - {$define COMPILER_1} - {$define DELPHI} - {$define DELPHI_1} - {$endif} - - {$ifdef FPC} - {.$define DELPHI} - {$endif} - - {$ifdef DELPHI_2} - {$define DELPHI_2_UP} - {$endif} - - {$ifdef DELPHI_3} - {$define DELPHI_2_UP} - {$define DELPHI_3_UP} - {$endif} - - {$ifdef DELPHI_4} - {$define DELPHI_2_UP} - {$define DELPHI_3_UP} - {$define DELPHI_4_UP} - {$endif} - - {$ifdef DELPHI_5} - {$define DELPHI_2_UP} - {$define DELPHI_3_UP} - {$define DELPHI_4_UP} - {$define DELPHI_5_UP} - {$endif} - - {$ifdef DELPHI_6} - {$define DELPHI_2_UP} - {$define DELPHI_3_UP} - {$define DELPHI_4_UP} - {$define DELPHI_5_UP} - {$define DELPHI_6_UP} - {$endif} - - {$ifdef DELPHI_7} - {$define DELPHI_2_UP} - {$define DELPHI_3_UP} - {$define DELPHI_4_UP} - {$define DELPHI_5_UP} - {$define DELPHI_6_UP} - {$define DELPHI_7_UP} - {$endif} - - {$ifdef DELPHI_9} - {$define DELPHI_2_UP} - {$define DELPHI_3_UP} - {$define DELPHI_4_UP} - {$define DELPHI_5_UP} - {$define DELPHI_6_UP} - {$define DELPHI_7_UP} - {$define DELPHI_9_UP} - {$endif} - - {$ifdef DELPHI_10} - {$define DELPHI_2_UP} - {$define DELPHI_3_UP} - {$define DELPHI_4_UP} - {$define DELPHI_5_UP} - {$define DELPHI_6_UP} - {$define DELPHI_7_UP} - {$define DELPHI_9_UP} - {$define DELPHI_10_UP} - {$endif} - - {$ifdef CPPB_3} - {$define CPPB_3_UP} - {$endif} - - {$ifdef CPPB_4} - {$define CPPB_3_UP} - {$define CPPB_4_UP} - {$endif} - - {$ifdef CPPB_5} - {$define CPPB_3_UP} - {$define CPPB_4_UP} - {$define CPPB_5_UP} - {$endif} - - {$ifdef CPPB_6} - {$define CPPB_3_UP} - {$define CPPB_4_UP} - {$define CPPB_5_UP} - {$define CPPB_6_UP} - {$endif} - - {$ifdef CPPB_3_UP} - // C++ Builder requires this if you use Delphi components in run-time packages. - {$ObjExportAll On} - {$endif} - -{$else (not Windows)} - // Linux is the target - {$define QT_CLX} - - {$define KYLIX} - {$define KYLIX_1} - {$define KYLIX_1_UP} - - {$ifdef VER150} - {$define COMPILER_7} - {$define KYLIX_3} - {$endif} - - {$ifdef VER140} - {$define COMPILER_6} - {$define KYLIX_2} - {$endif} - - {$ifdef KYLIX_2} - {$define KYLIX_2_UP} - {$endif} - - {$ifdef KYLIX_3} - {$define KYLIX_2_UP} - {$define KYLIX_3_UP} - {$endif} - -{$endif} - -// Compiler defines common to all platforms. -{$ifdef COMPILER_1} - {$define COMPILER_1_UP} -{$endif} - -{$ifdef COMPILER_2} - {$define COMPILER_1_UP} - {$define COMPILER_2_UP} -{$endif} - -{$ifdef COMPILER_3} - {$define COMPILER_1_UP} - {$define COMPILER_2_UP} - {$define COMPILER_3_UP} -{$endif} - -{$ifdef COMPILER_4} - {$define COMPILER_1_UP} - {$define COMPILER_2_UP} - {$define COMPILER_3_UP} - {$define COMPILER_4_UP} -{$endif} - -{$ifdef COMPILER_5} - {$define COMPILER_1_UP} - {$define COMPILER_2_UP} - {$define COMPILER_3_UP} - {$define COMPILER_4_UP} - {$define COMPILER_5_UP} -{$endif} - -{$ifdef COMPILER_6} - {$define COMPILER_1_UP} - {$define COMPILER_2_UP} - {$define COMPILER_3_UP} - {$define COMPILER_4_UP} - {$define COMPILER_5_UP} - {$define COMPILER_6_UP} -{$endif} - -{$ifdef COMPILER_7} - {$define COMPILER_1_UP} - {$define COMPILER_2_UP} - {$define COMPILER_3_UP} - {$define COMPILER_4_UP} - {$define COMPILER_5_UP} - {$define COMPILER_6_UP} - {$define COMPILER_7_UP} -{$endif} - -{$ifdef COMPILER_9} - {$define COMPILER_1_UP} - {$define COMPILER_2_UP} - {$define COMPILER_3_UP} - {$define COMPILER_4_UP} - {$define COMPILER_5_UP} - {$define COMPILER_6_UP} - {$define COMPILER_7_UP} - {$define COMPILER_9_UP} -{$endif} - -{$ifdef COMPILER_10} - {$define COMPILER_1_UP} - {$define COMPILER_2_UP} - {$define COMPILER_3_UP} - {$define COMPILER_4_UP} - {$define COMPILER_5_UP} - {$define COMPILER_6_UP} - {$define COMPILER_7_UP} - {$define COMPILER_9_UP} - {$define COMPILER_10_UP} -{$endif} - -//---------------------------------------------------------------------------------------------------------------------- - -{$ALIGN ON} -{$BOOLEVAL OFF} - -{$ifdef COMPILER_7_UP} - {$define THEME_7_UP} { Allows experimental theme support on pre-Delphi 7. } -{$endif} - -{$IFDEF COMPILER_6_UP} -{$WARN SYMBOL_PLATFORM OFF} { We are going to use Win32 specific symbols! } -{$ENDIF} - -{$IFDEF COMPILER_7_UP} -{$IFDEF FPC} - {$DEFINE UNSAFE_WARNINGS_OFF} -{$ENDIF} -{$ENDIF} - -{$IFDEF UNSAFE_WARNINGS_OFF} -{$WARN UNSAFE_CODE OFF} { We are not going to be "safe"! } -{$WARN UNSAFE_TYPE OFF} -{$WARN UNSAFE_CAST OFF} -{$ENDIF} - -{$IFDEF FPC} -{$HINTS OFF} -{$ENDIF} - -{$IFNDEF FPC} - // Delphi system function overrides might (not tested) cause problems on - // CPUs with code protection (NX-bit). So disable by default. - {.$DEFINE USE_SYSTEM_OVERRIDES} -{$ENDIF} - - diff --git a/src/lib/bass/bass.chm b/src/lib/bass/bass.chm Binary files differdeleted file mode 100644 index 79ab64a2..00000000 --- a/src/lib/bass/bass.chm +++ /dev/null diff --git a/src/lib/bass/bass.txt b/src/lib/bass/bass.txt deleted file mode 100644 index cdaa7bf0..00000000 --- a/src/lib/bass/bass.txt +++ /dev/null @@ -1,1658 +0,0 @@ -BASS 2.4 -Copyright (c) 1999-2008 Un4seen Developments Ltd. All rights reserved. - -Files that you should have found in the BASS package -==================================================== -Win32 version -------------- -BASS.TXT This file -BASS.DLL The BASS module -BASS.CHM BASS documentation -MP3-FREE - BASS.DLL BASS module using the Windows MP3 decoder -C\ C/C++ API and examples... - BASS.H BASS C/C++ header file - BASS.LIB BASS import library - BASS.DSW Visual C++ workspace for examples - MAKEFILE Makefile for all examples - MAKEFILE.IN Makefile helper macros - 3DTEST\ 3D/EAX example - 3DTEST.C - 3DTEST.RC - 3DTEST.DSP - MAKEFILE - BASSTEST\ Simple playback example - BASSTEST.C - BASSTEST.RC - BASSTEST.DSP - MAKEFILE - CONTEST\ Console example - CONTEST.C - CONTEST.DSP - MAKEFILE - CUSTLOOP\ Custom looping example - CUSTLOOP.C - CUSTLOOP.DSP - MAKEFILE - DSPTEST\ DSP example - DSPTEST.C - DSPTEST.RC - DSPTEST.DSP - MAKEFILE - FXTEST\ DX8 effect example - FXTEST.C - FXTEST.RC - FXTEST.DSP - MAKEFILE - LIVEFX\ Full-duplex example - LIVEFX.C - LIVEFX.RC - LIVEFX.DSP - MAKEFILE - LIVESPEC\ "Live" version of spectrum analyser example - LIVESPEC.C - LIVESPEC.DSP - MAKEFILE - MULTI\ Multiple device example - MULTI.C - MULTI.RC - MULTI.DSP - MAKEFILE - NETRADIO\ Internet streaming example - NETRADIO.C - NETRADIO.RC - NETRADIO.DSP - MAKEFILE - PLUGINS\ Plugins example - PLUGINS.C - PLUGINS.RC - PLUGINS.DSP - MAKEFILE - RECTEST\ Recording example - RECTEST.C - RECTEST.RC - RECTEST.DSP - MAKEFILE - SPEAKERS\ Multi-speaker example - SPEAKERS.C - SPEAKERS.RC - SPEAKERS.DSP - MAKEFILE - SPECTRUM\ Spectrum analyser example - SPECTRUM.C - SPECTRUM.DSP - MAKEFILE - SYNTH\ Synth example - SYNTH.C - SYNTH.DSP - MAKEFILE - WRITEWAV\ WAVE writer example - WRITEWAV.C - WRITEWAV.DSP - MAKEFILE - BIN\ Precompiled examples - 3DTEST.EXE - BASSTEST.EXE - CONTEST.EXE - CUSTLOOP.EXE - DSPTEST.EXE - FXTEST.EXE - LIVEFX.EXE - LIVESPEC.EXE - MULTI.EXE - NETRADIO.EXE - RECTEST.EXE - SPEAKERS.EXE - SPECTRUM.EXE - SYNTH.EXE - WRITEWAV.EXE -VB\ Visual Basic API and examples... - BASS.BAS BASS Visual Basic module - 3DTEST\ 3D/EAX example - PRJ3DTEST.VBP - PRJ3DTEST.FRM - PRJDEVICE.FRM - BASSTEST\ Simple playback example - PRJBASSTEST.VBP - FRMBASSTEST.FRM - CUSTLOOP\ Custom looping example - PRJCUSTLOOP.VBP - FRMCUSTLOOP.FRM - MODCUSTLOOP.BAS - DSPTEST\ DSP example - PRJDSPTEST.VBP - FRMDSPTEST.FRM - MODDSPTEST.BAS - FXTEST\ DX8 effect example - PRJFXTEST.VBP - FRMFXTEST.FRM - LIVEFX\ Full-duplex example - PRJLIVEFX.VBP - FRMLIVEFX.FRM - MODLIVEFX.BAS - LIVESPEC\ "Live" version of spectrum analyser example - PRJLIVESPEC.VBP - FRMLIVESPEC.FRM - MODLIVESPEC.BAS - MULTI\ Multiple device example - PRJMULTI.VBP - PRJMULTI.FRM - PRJDEVICE.FRM - NETRADIO\ Internet streaming example - PRJNETRADIO.VBP - FRMNETRADIO.FRM - MODNETRADIO.BAS - CLSFILEIO.CLS - PLUGINS\ Plugins example - PRJPLUGINS.VBP - FRMPLUGINS.FRM - RECTEST\ Recording example - PRJRECTEST.VBP - FRMRECTEST.FRM - MODRECTEST.BAS - SPEAKERS\ Multi-speaker example - PRJSPEAKERS.VBP - FRMSPEAKERS.FRM - SPECTRUM\ Spectrum analyser example - PRJSPECTRUM.VBP - FRMSPECTRUM.FRM - MODSPECTRUM.BAS - SYNTH\ Synth example - PRJSYNTH.VBP - FRMSYNTH.FRM - MODSYNTH.BAS - WRITEWAV\ WAVE writer example - PRJWRITEWAVE.VBP - PRJWRITEWAVE.FRM - MEMORY\ Playing from memory example by Jobnik - PRJMEMORY.VBP - FRMMEMORY.FRM - SYNCTEST.BAS - CBASS_TIME.CLS -DELPHI\ Delphi API and examples... - BASS.PAS BASS Delphi unit - 3DTEST\ 3D/EAX example - D3TEST.DPR - DTMAIN.PAS - DTMAIN.DFM - DTSELECT.PAS - DTSELECT.DFM - BASSTEST\ Simple playback example - BASSTEST.DPR - BTMAIN.PAS - BTMAIN.DFM - CONTEST\ Console example - CONTEST.DPR - CUSTLOOP\ Custom looping example - CUSTLOOP.DPR - UNIT1.PAS - UNIT1.DFM - DSPTEST\ DSP example - DSPTEST.DPR - DTMAIN.PAS - DTMAIN.DFM - FXTEST\ DX8 effect example - FXTEST.DPR - TEST.PAS - TEST.DFM - LIVEFX\ Full-duplex example - LIVEFX.DPR - UNIT1.PAS - UNIT1.DFM - MULTI\ Multiple device example - MULTI.DPR - UNIT1.PAS - UNIT1.DFM - UNIT2.PAS - UNIT2.DFM - NETRADIO\ Internet streaming example - NETRADIO.DPR - UNIT1.PAS - UNIT1.DFM - PLUGINS\ Plugins example - PLUGINS.DPR - UNIT1.PAS - UNIT1.DFM - RECORDTEST\ Recording example - RECORDTEST.DPR - UNIT1.PAS - UNIT1.DFM - SAMPLEVIS\ Visualisation example - SAMPLEVIS.DPR - MAIN.PAS - MAIN.DFM - SPECTRUM_VIS.PAS - CIRCLE_VIS.PAS - OSC_VIS.PAS - COMMONTYPES.PAS - SPEAKERS\ Multi-speaker example - SPEAKERS.DPR - UNIT1.PAS - UNIT1.DFM - STREAMTEST\ User stream example - STREAMTEST.DPR - STMAIN.PAS - STMAIN.DFM - WRITEWAV\ WAVE writer example - WRITEWAV.DPR - UNITMAIN.PAS - UNITMAIN.DFM - DYNAMIC\ Dynamic-loading Delphi API - DYNAMIC_BASS.PAS Dynamic-loading Delphi unit -MASM\ MASM API and examples... - BASS.INC BASS MASM include file - PLAYER\ Example MOD player - PLAYER.EXE - PLAYER.ASM - RSRC.RC - TOOLBAR.BMP - COMPILE.BAT - -NOTE: To run the example EXEs, first you will have to copy BASS.DLL into the - same directory as them. - -NOTE: To avoid unnecessary bloatage, the BASS DLLs are not digitally signed. - Signed versions are available on request (email: bass@un4seen.com). - -MacOSX version --------------- -BASS.TXT This file -LIBBASS.DYLIB The BASS module -BASS.CHM BASS documentation -CHMOX.APP CHM file viewer -BASS.H BASS C/C++ header file -MAKEFILE Makefile for all examples -MAKEFILE.IN Makefile helper macros -MP3-FREE - LIBBASS.DYLIB BASS module using the OSX MP3 decoder -3DTEST\ 3D example - 3DTEST.C - MAKEFILE - 3DTEST.NIB -BASSTEST\ Simple playback example - BASSTEST.C - MAKEFILE - BASSTEST.NIB -CONTEST\ Console example - CONTEST.C - MAKEFILE -CUSTLOOP\ Custom looping example - CUSTLOOP.C - MAKEFILE -DSPTEST\ DSP example - DSPTEST.C - DSPTEST.RC - MAKEFILE - DSPTEST.NIB -LIVESPEC\ "Live" version of spectrum analyser example - LIVESPEC.C - MAKEFILE -MULTI\ Multiple device example - MULTI.C - MAKEFILE - MULTI.NIB -NETRADIO\ Internet streaming example - NETRADIO.C - MAKEFILE - NETRADIO.NIB -PLUGINS\ Plugins example - PLUGINS.C - MAKEFILE - PLUGINS.NIB -RECTEST\ Recording example - RECTEST.C - MAKEFILE - RECTEST.NIB -SPEAKERS\ Multi-speaker example - SPEAKERS.C - MAKEFILE - SPEAKERS.NIB -SPECTRUM\ Spectrum analyser example - SPECTRUM.C - MAKEFILE -WRITEWAV\ WAVE writer example - WRITEWAV.C - MAKEFILE - - -What's the point? -================= -BASS is an audio library for use in Windows and MacOSX software. Its -purpose is to provide the most powerful and efficient (yet easy to use), -sample, stream, MOD music, and recording functions. All in a tiny DLL, -under 100KB in size. - -See the documentation for descriptions of all the BASS functions. You -should also look at the included example program source-codes for some -examples of how to use BASS in your own programs. - - -Requirements -============ -Win32 version -------------- -BASS requires DirectX 3 or above for output. BASS does not require that a -soundcard with DirectSound/DirectSound3D hardware accelerated drivers is -installed, but it does improve performance if there is one. BASS also takes -advantage of MMX, which improves the performance of the MOD music playback. - -MacOSX version --------------- -OSX 10.3 or above is recommended. BASS uses CoreAudio for output, so there -are no special library/driver requirements. BASS supports both PowerPC and -Intel Macs. - - -Main Features -============= -* Samples - supports WAV/AIFF/MP3/MP2/MP1/OGG and custom generated samples - -* Sample streams - stream any sample data in 8/16/32 bit, with both "push" and "pull" systems - -* File streams - MP3/MP2/MP1/OGG/WAV/AIFF file streaming - -* Internet file streaming - stream files from the internet, including Shout/Icecast - -* User file streaming - stream files from anywhere using any delivery method - -* Multi-channel streaming - support for more than plain stereo, including multi-channel OGG/WAV/AIFF files - -* MOD music - uses the same engine as XMPlay = best accuracy, speed, and quality - -* MO3 music - MP3/OGG compressed MOD music - -* Add-on system - support for more formats is available via add-ons (aka plugins) - -* Multiple outputs - simultaneously use multiple soundcards, and move channels between them - -* Recording - flexible recording system, with support for multiple devices - -* Decode without playback - streams and MOD musics can be outputted in any way you want - -* Speaker assignment - assign streams and MOD musics to specific speakers - -* High precision synchronization - synchronize events in your software to the streams and MOD musics - -* DirectX 8 effects - chorus/compressor/distortion/echo/flanger/gargle/parameq/reverb - -* User defined DSP functions - custom effects may be applied to musics and streams - -* 32 bit floating-point decoding and processing - floating-point stream/music decoding, DSP, FX, and recording - -* 3D sound - play samples/streams/musics in any 3D position, with EAX support - -* Small - BASS is under 100KB (on Windows), so won't bloat your distribution - - -Using BASS -========== -There is no guarantee that all future BASS versions will be compatible -with all previous versions, so your program should use BASS_GetVersion -to check the version that is loaded. This also means that you should -put the BASS module in the same directory as your executable (not just -somewhere in the path), to avoid the possibility of a wrong version being -loaded. - -If you are updating your software from a previous BASS version, then -you should check the "History" section (below), to see if any of the -functions that you are using have been affected by a change. - -Win32 version -------------- -C/C++, Visual Basic, Delphi and MASM APIs are provided, to use BASS with -another language you'll first have to convert the header file. Or, as a -last resort, you could use LoadLibrary and GetProcAddress. - -The downside is that you have to manually import each function that you -use, with the GetProcAddress function. But it has been made a lot simpler -to import BASS this way by the use of the BASSDEF #define. Here's a small -example: - -#define BASSDEF(f) (WINAPI *f) // define the functions as pointers -#include "bass.h" -... -HINSTANCE bass=LoadLibrary("BASS.DLL"); // load BASS -BASS_Init=GetProcAddress(bass,"BASS_Init"); // get BASS_Init -BASS_Init(-1,44100,0,hWnd,NULL); // call BASS_Init - -To use BASS with Borland C++ Builder, you'll first have to create a -Borland C++ Builder import library for it. This is done by using the -IMPLIB tool that comes with Borland C++ Builder. Simply execute this: - - IMPLIB BASSBCB.LIB BASS.DLL - -... and then use BASSBCB.LIB in your projects to import BASS. - -To use BASS with LCC-Win32, you'll first have to create a compatible -import library for it. This is done by using the PEDUMP and BUILDLIB -tools that come with LCC-Win32. Run these 2 commands: - - PEDUMP /EXP BASS.LIB > BASSLCC.EXP - BUILDLIB BASSLCC.EXP BASSLCC.LIB - -... and then use BASSLCC.LIB in your projects to import BASS. - -For the BASS functions that return strings (char*), VB users should use -the VBStrFromAnsiPtr function to convert the returned pointer into a VB -string. - -MacOSX version --------------- -A separate "LIB" file is not required for OSX. Using XCode, you can simply -add the DYLIB file to the project. Or using a makefile, you can build your -programs like this, for example: - - gcc yoursource -L. -lbass -o yourprog - -The LIBBASS.DYLIB file must be put in the same directory as the executable -(it can't just be somewhere in the path). See the example makefiles. - -LIBBASS.DYLIB is a universal binary, with support for both PowerPC and -Intel Macs. If you want PowerPC-only or Intel-only versions, the included -makefile can create them for you, by typing "make ppc" or "make i386". It -will also process any BASS add-ons placed in the same directory. - - -Latest Version -============== -The latest version of BASS can always be found at the BASS website: - - www.un4seen.com - - -Licence -======= -BASS is free for non-commercial use. If you are a non-commercial entity -(eg. an individual) and you are not charging for your product, and the -product has no other commercial purpose, then you can use BASS in it -for free. If you wish to use BASS in commercial products, then please -also see the next section. - -TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, BASS IS PROVIDED -"AS IS", WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, -INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY -AND/OR FITNESS FOR A PARTICULAR PURPOSE. THE AUTHORS SHALL NOT BE HELD -LIABLE FOR ANY DAMAGE THAT MAY RESULT FROM THE USE OF BASS. YOU USE -BASS ENTIRELY AT YOUR OWN RISK. - -Usage of BASS indicates that you agree to the above conditions. - -All trademarks and other registered names contained in the BASS -package are the property of their respective owners. - -Commercial licensing --------------------- -BASS is available for use in your commercial products. The licence -types available are as follows: - -SHAREWARE: Allows the usage of BASS in an unlimited number of your -shareware products, which must sell for no more than 40 Euros each. -If you are an individual (not a corporation) making and selling your -own software (and its price is within the limit), this is the licence -for you. - -SINGLE COMMERCIAL: Allows the usage of BASS in a single commercial -product. - -UNLIMITED COMMERCIAL: Allows the usage of BASS in an unlimited number -of your commercial products. This licence is on a per site basis. So -if your company has two sites that use BASS, then two licences are -required. - -Please note the products must be end-user products, eg. not components -used by other products. - -These licences only cover your own software, not the publishing of -other's software. If you publish other's software, its developers (or -the software itself) will need to be licensed to use BASS. - -These licences are on a per-platform basis, with reductions available -when licensing for both platforms. In all cases there are no royalties -to pay, and you can use future BASS updates without further cost. One -licence covers one person or entity and is not transferable. - -These licences do not allow reselling/sublicensing of BASS. For example, -if a product is a development system, the users of said product are not -licensed to use BASS in their productions; they will need their own -licences. - -If the standard licences do not meet your requirements, or if you have -any questions, please get in touch (email: bass@un4seen.com). - -Visit the BASS website for the latest pricing: - - www.un4seen.com - -MP3 ---- -MP3 technology is patented, and Thomson license the use of their and -Fraunhofer's patents. The inclusion of an MP3 decoder (eg. BASS) in a -commercial product requires an MP3 patent licence. Contact Thomson for -details: - - www.mp3licensing.com - -Alternatively, the "MP3-FREE" BASS version does not include its own MP3 -decoder but instead makes use of the operating system's already licensed -decoder. - -NOTE: When using the OS's MP3 decoder, BASS still does the file handling - so all the usual features are still supported, including streaming, - tag reading, pre-scanning, gapless playback, etc... - - -History -======= -These are the major (and not so major) changes at each version stage. -There are of course bug fixes and other little improvements made along -the way too! To make upgrading simpler, all functions affected by a -change to the BASS interface are listed. - -2.4 - 2/4/2008 --------------- -* "Push" streaming - STREAMPROC_PUSH (BASS_StreamCreate "proc") - BASS_StreamPutData - LIVEFX and MULTI examples updated -* "Push" buffered file streaming - STREAMFILE_BUFFERPUSH (BASS_StreamCreateFileUser system) - BASS_StreamPutFileData -* STREAMFILEPROC replaced by table of callbacks for each file operation - BASS_FILEPROCS (FILECLOSEPROC/FILELENPROC/FILEREADPROC/FILESEEKPROC) - STREAMFILEPROC *removed* -* 64-bit file positioning - BASS_SampleLoad - BASS_MusicLoad - BASS_StreamCreateFile - BASS_StreamGetFilePosition -* File buffer level retrieval - BASS_FILEPOS_BUFFER (BASS_StreamGetFilePosition mode) -* Sinc interpolated MOD music mixing - BASS_MUSIC_SINCINTER (BASS_MusicLoad flag) -* MO3 v2.4 support - BASS_MusicLoad -* MOD orders positioning incorporated into channel functions - BASS_ChannelGetLength - BASS_ChannelSetPosition - BASS_ChannelGetPosition - BASS_MusicGetOrderPosition *removed* - BASS_MusicGetOrders *removed* -* Channel attribute functions consolidated - BASS_ChannelSetAttribute - BASS_ChannelGetAttribute - BASS_ChannelSlideAttribute - BASS_ChannelIsSliding - BASS_ChannelSetAttributes *removed* - BASS_ChannelGetAttributes *removed* - BASS_ChannelSlideAttributes *removed* - BASS_ChannelSetEAXMix *removed* - BASS_ChannelGetEAXMix *removed* - BASS_MusicSetAttribute *removed* - BASS_MusicGetAttribute *removed* -* Floating-point volume and panning - BASS_SetVolume - BASS_GetVolume - BASS_RecordSetInput - BASS_RecordGetInput - BASS_ATTRIB_PAN/VOL (BASS_ChannelGet/Set/SlideAttribute options) - BASS_ATTRIB_MUSIC_VOL_CHAN/INST (BASS_ChannelGet/Set/SlideAttribute options) - BASS_SAMPLE (volume/pan/outvol members) - BASS_CONFIG_MAXVOL *removed* - BASSTEST and RECTEST examples updated -* Output device volume control on Vista (as on other OS) - BASS_SetVolume - BASS_GetVolume -* Multiple update threads - BASS_CONFIG_UPDATETHREADS - BASSTEST example updated -* Global volume range increased to 10000 - BASS_CONFIG_GVOL_SAMPLE/STREAM/MUSIC (BASS_SetConfig options) - BASSTEST example updated -* Setting and retrieving of a sample's data - BASS_SampleSetData - BASS_SampleGetData - BASS_SampleCreate - BASS_SampleCreateDone *removed* -* Channel flag setting mask - BASS_ChannelFlags - BASS_ChannelSetFlags *removed* - SPEAKERS example updated -* 256 sample FFT - BASS_DATA_FFT256 (BASS_ChannelGetDat flag) -* Channel locking to prevent access by other threads - BASS_ChannelLock -* Manual channel buffer updating - BASS_ChannelUpdate - BASS_ChannelPreBuf *removed* -* Configurable manual update length - BASS_Update -* Extended device information retrieval and detection of new/removed devices - BASS_GetDeviceInfo - BASS_RecordGetDeviceInfo - BASS_DEVICEINFO structure - BASS_GetDeviceDescription *removed* - BASS_RecordGetDeviceDescription *removed* - BASS_INFO (driver member) *removed* - BASS_RECORDINFO (driver member) *removed* - MULTI example updated -* Default device change tracking on Windows (as on OSX) - BASS_Init - BASS_RecordInit -* Speaker detection from Windows control panel - BASS_DEVICE_CPSPEAKERS (BASS_Init flag) -* Channel automatically stopped & resumed for DX8 effects - BASS_ChannelSetFX - BASS_ChannelRemoveFX -* "double" precision position conversion - BASS_ChannelBytes2Seconds - BASS_ChannelSeconds2Bytes -* Separate config functions for pointers - BASS_SetConfigPtr - BASS_GetConfigPtr - BASS_CONFIG_NET_AGENT/PROXY (BASS_SetConfigPtr options) -* Configurable file format verification length - BASS_CONFIG_VERIFY (BASS_SetConfig option) -* Stream filename retrieval - BASS_CHANNELINFO (file member) -* Channel sample retrieval - BASS_CHANNELINFO (sample member) -* META syncs no longer receive metadata in the "data" parameter - BASS_SYNC_META (BASS_ChannelSetSync type) -* Separate sync for OGG logical bitstream changes (instead of BASS_SYNC_META) - BASS_SYNC_OGG_CHANGE (BASS_ChannelSetSync type) - NETRADIO example updated (C version) -* Message syncing removed (use PostMessage instead) - BASS_SYNC_MESSAGE (BASS_ChannelSetSync flag) *removed* -* Data retrieval from stopped/paused channels - BASS_ChannelGetData -* Callback "user" parameters changed to pointers - BASS_StreamCreate / STREAMPROC - BASS_StreamCreateFileUser - BASS_StreamCreateURL / DOWNLOADPROC - BASS_RecordStart / RECORDPROC - BASS_ChannelSetDSP / DSPPROC - BASS_ChannelSetSync / SYNCPROC - -2.3.0.3 - 30/7/2007 -------------------- -* FX state resetting - BASS_FXReset -* PLS/M3U playlist URL processing - BASS_CONFIG_NET_PLAYLIST - NETRADIO example updated -* Internet stream connection status retrieval - BASS_FILEPOS_CONNECTED (BASS_StreamGetFilePosition mode) -* Lyrics3v2 tags - BASS_TAG_LYRICS3 (BASS_ChannelGetTags type) -* IT virtual channel configuration - BASS_CONFIG_MUSIC_VIRTUAL -* Accurate speaker detection on Vista - BASS_INFO (speakers member) -* Device output/input rate retrieval on Vista - BASS_INFO (freq member) - BASS_RECORDINFO (freq member) -* Syncing upon position changes - BASS_SYNC_SETPOS (BASS_ChannelSetSync type) -* Improved stall handling - BASS_SYNC_STALL -* Invalid decoding channel flags produce an error instead of being ignored - BASS_StreamCreate/File/User/Url - BASS_MusicLoad - -2.3.0.2 - 22/1/2007 -------------------- -* Retrieval of a sample's existing channel handles - BASS_SampleGetChannels -* 8192 sample FFT - BASS_DATA_FFT8192 (BASS_ChannelGetData flag) -* Adjustable recording buffer - BASS_CONFIG_REC_BUFFER (BASS_SetConfig option) -* Stopping decoding channels before the end - BASS_ChannelStop -* Sample channels created paused to prevent overriding before playback - BASS_SampleGetChannel -* Separate "MP3-FREE" version using Windows/OSX MP3 decoder - BASS_CONFIG_MP3_CODEC *removed* - -2.3.0.1 - 12/6/2006 -------------------- -* Ability to move a channel to another device - BASS_ChannelSetDevice - MULTI example updated -* Support for ID3v2.4 tags at end of file - BASS_TAG_ID3V2 (BASS_ChannelGetTags type) - -2.3 - 21/5/2006 ---------------- -* MOD message/instrument/sample text retrieval, merged with stream tag retrieval function - BASS_ChannelGetTags - BASS_TAG_MUSIC_NAME/MESSAGE/INST/SAMPLE (BASS_ChannelGetTags types) - BASS_MusicGetName *removed* - BASS_StreamGetTags *removed* -* Plugin information retrieval - BASS_PluginGetInfo - BASS_PLUGININFO/FORM structures - BASS_CHANNELINFO (plugin member) - PLUGINS example updated -* RIFF/WAVE "INFO" tag retrieval - BASS_TAG_RIFF_INFO (BASS_StreamGetTags type) -* More specific WAVE format information - BASS_CTYPE_STREAM_WAV_PCM/FLOAT (channel types) - BASS_CTYPE_STREAM_WAV (channel type flag) -* Proxy server configuration - BASS_CONFIG_NET_PROXY (BASS_SetConfig option) - BASS_CONFIG_NET_NOPROXY *removed* - NETRADIO example updated -* Passive FTP mode - BASS_CONFIG_NET_PASSIVE (BASS_SetConfig option) -* Agent changes take immediate effect - BASS_CONFIG_NET_AGENT (BASS_SetConfig option) -* Minimum time gap between creating new sample channels - BASS_SAMPLE (mingap member) - BASS_SampleGetChannel -* Support for Unicode plugin filenames - BASS_PluginLoad -* Device output/input rate retrieval (MacOSX only) - BASS_INFO (freq member) - BASS_RECORDINFO (freq member) -* Extended version info (minor revision) - BASS_GetVersion -* Unsupported codec error code - BASS_ERROR_CODEC -* Optional use of the Windows MP3 codec - BASS_CONFIG_MP3_CODEC (BASS_SetConfig option) -* 3D support for MacOSX - BASS_Set3DFactors - BASS_Get3DFactors - BASS_Set3DPosition - BASS_Get3DPosition - BASS_Apply3D - BASS_ChannelSet3DAttributes - BASS_ChannelGet3DAttributes - BASS_ChannelSet3DPosition - BASS_ChannelGet3DPosition - 3DTEST example added (Win32 example also updated) -* VB version of SYNTH example added - -2.2 - 2/10/2005 ---------------- -* Add-on plugin system - BASS_PluginLoad - BASS_PluginFree - BASS_StreamCreateFile/User/Url - BASS_SampleLoad - PLUGINS example added -* MOD position & syncing in bytes - BASS_ChannelSetPosition - BASS_ChannelGetPosition - BASS_MusicGetOrderPosition added for orders position - BASS_SYNC_MUSICPOS added for orders syncing - MAKEMUSICPOS macro/define - CUSTLOOP example updated -* Stream/MOD "length" functions combined (also works with samples), new MOD orders length function - BASS_ChannelGetLength - BASS_MusicGetOrders - BASS_StreamGetLength *removed* - BASS_MusicGetLength *removed* -* Support for AIFF files - BASS_StreamCreateFile/User/Url - BASS_SampleLoad -* Support for 24 and 32-bit (integer) WAV files - BASS_StreamCreateFile/User/Url - BASS_SampleLoad -* WAV files are no longer converted to the "device" resolution - BASS_StreamCreateFile/User/Url -* Recording master control - BASS_RecordGetInput - BASS_RecordSetInput -* Adjustable prebuffering - BASS_ChannelPreBuf -* Floating-point data retrieval - BASS_DATA_FLOAT (BASS_ChannelGetData flag) -* Support for floating-point samples - BASS_SampleLoad - BASS_SampleCreate -* Multi-channel samples - BASS_SampleLoad/Create - BASS_SAMPLE (chans member) -* Sample lengths given in bytes - BASS_SampleCreate - BASS_SAMPLE (length member) -* MOD music 8-bit resolution option - BASS_MusicLoad -* OGG vendor tag retrieval - BASS_TAG_VENDOR (BASS_StreamGetTags type) -* Configurable "User-Agent" header for internet streams - BASS_CONFIG_NET_AGENT (BASS_SetConfig option) -* Shoutcast metadata is now requested automatically - BASS_STREAM_META flag *removed* -* Download callbacks receive all data from start of file/stream (including any non-audio data) - DOWNLOADPROC -* Length when streaming in blocks is unavailable (BASS_ERROR_NOTAVAIL, not just 0) - BASS_ChannelGetLength -* Support for growing custom file streams - BASS_FILE_LEN (STREAMFILEPROC action) -* Query file action removed - BASS_FILE_QUERY *removed* -* Recording channel syncing - BASS_ChannelSetSync -* Info structure "size" members removed - BASS_INFO structure - BASS_RECORDINFO structure -* Little bit of flag reshuffling - BASS_MP3_SETPOS renamed to BASS_STREAM_PRESCAN - BASS_MUSIC_CALCLEN value changed and renamed to BASS_MUSIC_PRESCAN - BASS_MUSIC_POSRESET value changed -* Add-on API enhancements -* MacOSX port introduced - -2.1 - 28/11/2004 ----------------- -* Improved "mixtime" sync system, allowing custom looping - SYNCPROC - CUSTLOOP example added -* FX can now be in the DSP chain, so can be prioritized and applied in floating-point - BASS_ChannelSetFX - BASS_CONFIG_FLOATDSP (BASS_SetConfig option) -* Ability to set channel flags (eg. looping) independent of playback - BASS_ChannelSetFlags - SPEAKERS example updated -* Stream/MOD "play" and channel "resume" functions combined - BASS_ChannelPlay - BASS_StreamPlay *removed* - BASS_MusicPlay *removed* - BASS_MusicPlayEx *removed* - BASS_ChannelResume *removed* -* Stream/MOD prebuffering functions combined - BASS_ChannelPreBuf - BASS_StreamPreBuf *removed* - BASS_MusicPreBuf *removed* -* MOD attribute functions combined, with added BPM/speed/globalvolume options - BASS_MusicSetAttribute - BASS_MusicGetAttribute - BASS_MUSIC_ATTRIB_AMPLIFY - BASS_MUSIC_ATTRIB_PANSEP - BASS_MUSIC_ATTRIB_PSCALER - BASS_MUSIC_ATTRIB_BPM - BASS_MUSIC_ATTRIB_SPEED - BASS_MUSIC_ATTRIB_VOL_GLOBAL - BASS_MUSIC_ATTRIB_VOL_CHAN - BASS_MUSIC_ATTRIB_VOL_INST - BASS_MusicSetAmplify *removed* - BASS_MusicSetPanSep *removed* - BASS_MusicSetPositionScaler *removed* - BASS_MusicSetVolume *removed* - BASS_MusicGetVolume *removed* -* Flag to reset bpm/etc as well as notes when seeking in MOD musics - BASS_MUSIC_POSRESETEX (BASS_MusicLoad & BASS_ChannelSetFlags flag) -* More flexible and concise sample channel creation system - BASS_SampleGetChannel - BASS_SamplePlay *removed* - BASS_SamplePlayEx *removed* - BASS_SamplePlay3D *removed* - BASS_SamplePlay3DEx *removed* -* Support for up to 30 speakers - BASS_SPEAKER_N macro/define -* More precise level measurement - BASS_ChannelGetLevel -* Level can now be retrieved from decoding channels - BASS_ChannelGetLevel -* Retrieval of a sample/channel's original sample resolution - BASS_SAMPLE (origres member) - BASS_CHANNELINFO (origres member) -* Support for streaming WAV files in "blocks" - BASS_StreamCreateURL - BASS_StreamCreateFileUser -* Status info (HTTP/ICY tags) available during connection to server - BASS_STREAM_STATUS (BASS_StreamCreateURL flag) - DOWNLOADPROC - NETRADIO example updated (Delphi version also added) -* Adjustable internet stream prebuffering - BASS_CONFIG_NET_PREBUF (BASS_SetConfig option) -* Option to bypass proxy server - BASS_CONFIG_NET_NOPROXY (BASS_SetConfig option) -* Option whether to allow channels to be played after BASS_Pause - BASS_CONFIG_PAUSE_NOPLAY (BASS_SetConfig option) -* Recording channel count now a separate parameter - BASS_RecordStart (chans parameter) -* Synchronizer for when a channel is freed - BASS_SYNC_FREE (BASS_ChannelSetSync type) -* Data start file position retrieval - BASS_FILEPOS_START (BASS_StreamGetFilePosition mode) -* Performance improvements - MP2 decoding ~20% faster - MP3/MP1 decoding & FFT processing all up to 10% faster - OGG decoding ~3% faster -* C/C++ examples reorganised, with makefiles & VC++ projects -* Add-on API enhancements -* More DLL shrinkage :) - -2.0 - 31/10/2003 ----------------- -* Multiple output device support - BASS_Init (device number changes) - BASS_SetDevice - BASS_GetDevice - BASS_ChannelGetDevice - MULTI example updated (VB version also added) -* Multiple recording device support - BASS_RecordSetDevice - BASS_RecordGetDevice - BASS_RecordStart - BASS_ChannelGetDevice - HRECORD handle - RECORDPROC (handle parameter) -* Recording with DSP/FX - BASS_ChannelSetDSP - BASS_ChannelSetFX -* Recording position retrieval - BASS_ChannelGetPosition -* Start recording paused - BASS_RECORD_PAUSE (BASS_RecordStart flag) -* Multi-channel streams, inc. support for multichannel OGG & WAV files - BASS_StreamCreate - BASS_StreamCreateFile/User/Url -* FFT for individual channels, inc. multi-channel streams - BASS_DATA_FFT_INDIVIDUAL (BASS_ChannelGetData flag) - BASS_DATA_FFT512S/1024S/2048S/4096S *removed* -* DSP prioritizing - BASS_ChannelSetDSP - DSPTEST example updated -* Seeking in internet streamed files - BASS_ChannelSetPosition -* Enhanced custom file stream systems - BASS_StreamCreateFileUser - BASS_FILE_SEEK (STREAMFILEPROC action) - BASS_STREAM_FILEPROC flag *removed* -* Enhanced custom stream system with automatic stalling/resuming - STREAMPROC - BASS_STREAMPROC_END (STREAMPROC flag) -* Synchronizer for stalled/resumed playback - BASS_SYNC_STALL (BASS_ChannelSetSync type) -* Synchronizer for completed download - BASS_SYNC_DOWNLOAD (BASS_ChannelSetSync type) -* End sync support for custom streams - BASS_SYNC_END (BASS_ChannelSetSync type) -* Synchronizer support for decoding channels - BASS_ChannelSetSync -* Unified configuration function - BASS_SetConfig - BASS_GetConfig - BASS_SetBufferLength *removed* - BASS_SetNetConfig *removed* - BASS_SetGlobalVolumes *removed* - BASS_GetGlobalVolumes *removed* - BASS_SetLogCurves *removed* - BASS_Set3DAlgorithm *removed* - BASS_DEVICE_FLOATDSP flag *removed* -* Internet stream saving to disk replaced by more flexible callback - BASS_StreamCreateURL - DOWNLOADPROC - VB NETRADIO example updated -* Buffer length retrieval when "streaming in blocks" - BASS_FILEPOS_END (BASS_StreamGetFilePosition mode) -* Individual sample rate setting for MOD musics - BASS_MusicLoad -* Channel type and default sample rate retrieval - BASS_ChannelGetInfo (replaces BASS_ChannelGetFlags) - BASS_CHANNELINFO -* MOD music flag retrieval - BASS_CHANNELINFO (flags member) -* Adjustable instrument volumes in MOD musics - BASS_MusicSetVolume (replaces BASS_MusicSetChannelVol) - BASS_MusicGetVolume (replaces BASS_MusicGetChannelVol) -* Automatically free a MOD music when it stops or ends - BASS_MUSIC_AUTOFREE (BASS_MusicLoad flag) -* Class GUID added to initialization parameters - BASS_Init - BASS_SetCLSID *removed* -* Update period adjustable at any time - BASS_CONFIG_UPDATEPERIOD (BASS_SetConfig option) - BASS_DEVICE_NOTHREAD flag *removed* -* Customizable maximum volume setting - BASS_CONFIG_MAXVOL (BASS_SetConfig option) - BASS_DEVICE_VOL1000 flag *removed* -* Device volume is now always left as it is during init/freeing - BASS_DEVICE_LEAVEVOL flag *removed* -* Device driver name retrieval - BASS_INFO (driver member) - BASS_RECORDINFO (driver member) -* Error codes are local to the current thread - BASS_ErrorGetCode -* Performance improvements - MP2 decoding 15-20% faster - MP3 decoding ~5% faster -* Built-in CD functions removed (replaced in BASSCD) - BASS_CDDoor *removed* - BASS_CDFree *removed* - BASS_CDGetID *removed* - BASS_CDGetTrackLength *removed* - BASS_CDGetTracks *removed* - BASS_CDInDrive *removed* - BASS_CDInit *removed* - BASS_CDPlay *removed* -* Force channels to use software mixing - BASS_SAMPLE_SOFTWARE (BASS_StreamCreate/File/User/URL & BASS_MusicLoad flag) -* Support for high-pass filter and forward/reverse (S9E/F) IT/MPT effects -* BASS_MUSIC flags rearranged to mirror BASS_SAMPLE/STREAM counterparts -* Output automatically started during initialization -* BASS_ChannelGetData once again accepts any "length" param -* All function comments have been removed from the API headers to avoid - outdated/incorrect information - the BASS.CHM documentation should be used. -* TMT Pascal API removed from main distribution - now available on the website -* A few more 'K' knocked off the DLL size :) - -1.8a - 18/6/2003 ----------------- -* Tweaks 'n' fixes, including... - Fixed seeking bug on 32-bit OGG streams - Fixed seeking on a decoding channel after it has reached the end - Low FPU precision (eg. when using Direct3D) issue addressed - Improved speakers (BASS_INFO) detection - BASS_ChannelSeconds2Bytes return value is rounded down to nearest sample - BASS_ChannelGetData "length" param must equal a whole number of samples - Slide syncs are triggered by "-2" volume slides on "autofree" streams -* Support for UNICODE filenames - BASS_UNICODE (BASS_SampleLoad/BASS_StreamCreateFile/BASS_MusicLoad flag) -* 4096 sample FFT - BASS_DATA_FFT4096/S (BASS_ChannelGetData flags) -* Another 'K' knocked off the DLL size - -1.8 - 9/3/2003 --------------- -* 32-bit floating-point channels - BASS_SAMPLE_FLOAT (BASS_StreamCreate/URL/File flag) - BASS_MUSIC_FLOAT (BASS_MusicLoad flag) - BASS_SAMPLE_FLOAT (BASS_RecordStart flag) - BASS_DEVICE_FLOATDSP (BASS_Init flag) - DSPTEST example updated -* Support for 32-bit floating-point (type 3) WAV files - BASS_StreamCreateFile/URL - BASS_SampleLoad -* Channel speaker assignment - BASS_SPEAKER_FRONT (BASS_MusicLoad/BASS_StreamCreate/File/URL flag) - BASS_SPEAKER_REAR " - BASS_SPEAKER_CENLFE " - BASS_SPEAKER_REAR2 " - BASS_SPEAKER_FRONTLEFT " - BASS_SPEAKER_FRONTRIGHT " - BASS_SPEAKER_REARLEFT " - BASS_SPEAKER_REARRIGHT " - BASS_SPEAKER_CENTER " - BASS_SPEAKER_LFE " - BASS_SPEAKER_REAR2LEFT " - BASS_SPEAKER_REAR2RIGHT " - BASS_INFO (speakers member) - BASS_DEVICE_SPEAKERS (BASS_Init flag) - 4SPEAKER example replaced by SPEAKERS example -* Recording input type retrieval - BASS_INPUT_TYPE_xxx (BASS_RecordGetInput) - RECTEST example updated -* Non-interpolated MOD mixing - BASS_MUSIC_NONINTER (BASS_MusicLoad/PlayEx flag) -* Performance improvements - FFT up to 100% faster! - MP3(MPEG2/2.5) decoding up to 60% faster - MMX mixers 5-10% faster - MP3(MPEG1)/MP2/MP1/OGG decoding all ~5% faster -* Optional disabling of FFT windowing - BASS_DATA_FFT_NOWINDOW (BASS_ChannelGetData flag) -* BASS_ERROR_FILEFORM - error code to distinguish between file and sample format - BASS_MusicLoad - BASS_SampleLoad - BASS_StreamCreate/File/URL -* BASS_StreamGetFilePosition mode flags added - BASS_FILEPOS_DECODE/DOWNLOAD/END -* DirectX 9 detection - BASS_INFO (dsver member) -* Initialization flags retrieval - BASS_INFO (initflags member) -* Half-rate MP3 playback option removed - BASS_MP3_HALFRATE flag *removed* -* New internal "plugin" system - BASSWMA is further integrated as a result -* Improved documentation - integrated with BASSWMA, search option added -* VB version of DSPTEST example added -* Delphi RECORDTEST example added -* Guess what... reduced DLL size again :) - -1.7 - 27/10/2002 ----------------- -* New alternative DX8 (DMO) effects implementation - BASS_StreamCreate/File/URL - BASS_MusicLoad - BASS_ChannelSetFX - SYNTH example updated -* User file streaming - BASS_STREAM_FILEPROC (BASS_StreamCreate flag) - STREAMFILEPROC -* DSP & FX support for decoding channels - BASS_ChannelSetDSP - BASS_ChannelSetFX -* Support for DX8 (DMO) effects in IT/XM/MO3 files - BASS_MusicLoad -* Support for chained OGG streaming (and syncing) - BASS_StreamCreateURL - BASS_SYNC_META (BASS_ChannelSetSync type) -* Attribute (volume/frequency/pan) sliding - BASS_ChannelSlideAttributes - BASS_ChannelIsSliding - BASS_SYNC_SLIDE (BASS_ChannelSetSync type) -* Recording without a callback function - BASS_RecordStart - LIVEFX example added -* Query a channel's buffered data - BASS_DATA_AVAILABLE (BASS_ChannelGetData flag) -* Discard data from the recording buffer - BASS_ChannelGetData -* Adjustable internet stream config (timeout/buffer lengths) - BASS_SetNetConfig -* Recommended minimum buffer length - BASS_INFO (minbuf member) -* MOD music flags adjustment without changing playback position - BASS_MusicPlayEx - PLAYER (MASM) example updated -* More functions are now useable in MOD music "mixtime" syncs - SYNCPROC - BASS_ChannelSetPosition - BASS_MusicPlayEx - BASS_MusicSetAmplify - BASS_MusicSetPanSep -* Maximum buffer length increased to 5 seconds - BASS_SetBufferLength -* Support for extended filter range in IT files - BASS_MusicLoad -* Speedier MOD music file verification - BASS_MusicLoad -* Delphi 3DTEST example fixed -* Magically reduced DLL size again :) - -1.6a - 25/8/2002 ----------------- -* OGG support updated to 1.0 -* Stereo FFT - BASS_DATA_FFT512S/1024S/2048S (BASS_ChannelGetData flags) -* Support for "Invert Loop" (EFx) MOD effect -* Reduced DLL size -* New Delphi examples - WRITEWAV - WAVE writer example - SAMPLEVIS - Visualisation example - -1.6 - 13/6/2002 ---------------- -* 64-bit stream lengths and positions - BASS_StreamGetLength - BASS_ChannelBytes2Seconds - BASS_ChannelSeconds2Bytes - BASS_ChannelGetPosition - BASS_ChannelSetPosition - BASS_ChannelSetSync -* Recording input selection - BASS_RECORDINFO (inputs & singlein members) - BASS_RecordGetInputName - BASS_RecordGetInput - BASS_RecordSetInput -* Adjustable recording update period - BASS_RecordStart -* Load OGG files as samples - BASS_SampleLoad -* CD drive door opening & closing - BASS_CDDoor -* CDDB2 ID retrieval - BASS_CDID_CDDB2 (BASS_CDGetID flag) -* Streaming beyond initial file length - BASS_StreamCreateFile -* Recording position bytes<->seconds translation - BASS_ChannelBytes2Seconds - BASS_ChannelSeconds2Bytes -* Improved multi-threaded support (play from any thread) - BASS_MusicPlay/Ex - BASS_SamplePlay/3D/Ex - BASS_StreamPlay - BASS_DEVICE_NOSYNC flag *removed* -* Paused channel status - BASS_ACTIVE_PAUSED (BASS_ChannelIsActive) -* Integrated WMA stream freeing - BASS_StreamFree - BASS_Free -* Pin-point accurate OGG seeking without BASS_MP3_SETPOS flag -* Win2k DS buffer bug fix - -1.5a - 14/4/2002 ----------------- -* NT4 fix (also enables "nosound" device without DX installed) - BASS_ERROR_DX error code -* MOD music loading without the samples - BASS_MUSIC_NOSAMPLE (BASS_MusicLoad flag) -* Custom decoding channels - BASS_STREAM_DECODE (BASS_StreamCreate flag) -* 5 second HTTP connection timeout - BASS_ERROR_TIMEOUT (BASS_StreamCreateURL error code) - -1.5 - 31/3/2002 ---------------- -* Improved performance - MMX mixers lot faster (over 50% faster in some cases!) - OGG decoding 15-20% faster - MP3 decoding 5-10% faster -* Recording - BASS_RecordGetDeviceDescription - BASS_RecordInit - BASS_RecordFree - BASS_RecordGetInfo - BASS_RecordStart -* OGG support built-in (OGG/VORBIS DLLs not required) - BASS_DEVICE_OGG flag *removed* -* MOD music seeking in seconds - BASS_MusicPlayEx - BASS_ChannelSetPosition -* Shoutcast metadata retrieval - BASS_STREAM_META (BASS_StreamCreateURL flag) - BASS_TAG_META (BASS_StreamGetTags type) - BASS_SYNC_META (BASS_ChannelSetSync type) -* 1000 volume levels - BASS_DEVICE_VOL1000 (BASS_Init/CDInit flag) -* CDDB ID retrieval - BASS_CDID_CDDB (BASS_CDGetID flag) -* Leave the CD volume as it is during init/closing - BASS_DEVICE_LEAVEVOL (BASS_CDInit flag) -* FFT enabled on decoding channels - BASS_ChannelGetData -* Left level duplicated on right for mono channels - BASS_ChannelGetLevel -* Improved MPEG length estimation without BASS_MP3_SETPOS flag - BASS_StreamGetLength -* Support for Modplug/ADPCM compressed files - BASS_MusicLoad -* Device description function parameter change - BASS_GetDeviceDescription -* MASM API - -1.4 - 30/1/2002 ---------------- -* Channel decoding without playback - BASS_MUSIC_DECODE (BASS_MusicLoad flag) - BASS_STREAM_DECODE (BASS_StreamCreateFile/URL flag) - BASS_ChannelGetData -* Windows message sync callbacks - BASS_SYNC_MESSAGE (BASS_ChannelSetSync flag) -* Adjustable channel volumes in MOD musics - BASS_MusicSetChannelVol - BASS_MusicGetChannelVol -* Customizable DirectSound initialization object - BASS_SetCLSID -* Retrieve HMUSIC/HSTREAM/HCHANNEL IDirectSoundBuffer interfaces - BASS_GetDSoundObject -* A3D functions removed (use BASS_SetCLSID/BASS_GetDSoundObject to access A3D) - BASS_DEVICE_A3D (BASS_Init flag) - BASS_SetA3DResManager - BASS_GetA3DResManager - BASS_SetA3DHFAbsorbtion - BASS_GetA3DHFAbsorbtion -* Callback functions now work in VB6 - DSPPROC - STREAMPROC - SYNCPROC -* Improved PCM WAVE streaming performance - BASS_StreamCreateFile - BASS_StreamCreateURL -* OGG modules updated to RC3 -* Stereo sample support in MO3 format -* MO3 encoder now distributed separately from BASS - -1.3 - 17/11/2001 ----------------- -* Manual buffer updating - BASS_DEVICE_NOTHREAD (BASS_Init flag) - BASS_Update -* Adjustable buffer update period (allows small buffer sizes) - BASS_Init -* Output device latency retrieval - BASS_INFO (latency member) -* MPEG/OGG seeking without BASS_MP3_SETPOS flag - BASS_ChannelSetPosition -* Internet file streaming from offsets - BASS_StreamCreateURL -* File stream tag/comment retrieval (ID3/ID3v2/OGG/HTTP/ICY tags) - BASS_StreamGetTags -* Byte<->time position translation - BASS_ChannelBytes2Seconds - BASS_ChannelSeconds2Bytes -* UMX (Unreal/Tournament music package) format support - BASS_MusicLoad -* S3M/IT sync fx changed to S2x (S0x conflicted with S00) - BASS_SYNC_MUSICFX -* Stereo sample support in IT/XM/S3M formats -* MO3: OGG compression supported - -1.2 - 25/9/2001 ---------------- -* OGG (Ogg Vorbis) stream support - BASS_DEVICE_OGG (BASS_Init flag) - BASS_StreamCreateFile - BASS_StreamCreateURL -* Channel linking (start/stop/pause/resume channels together) - BASS_ChannelSetLink - BASS_ChannelRemoveLink -* MOD music playback length calculation - BASS_MUSIC_CALCLEN (BASS_MusicLoad flag) - BASS_MusicGetLength -* Pre-buffering - BASS_MusicPreBuf - BASS_StreamPreBuf -* Samples with single simultaneous playbacks have same HSAMPLE/HCHANNEL handle - BASS_SamplePlay/Ex -* Stopping a custom stream flushes its buffer contents - BASS_ChannelStop - -1.1a - 31/8/2001 ----------------- -* NT4 bug fixed -* XM Wxx effect syncing - BASS_SYNC_MUSICFX -* MP3/2/1 rewinding without BASS_MP3_SETPOS - BASS_ChannelSetPosition - -1.1 - 11/8/2001 ---------------- -* DX8 (DMO) effects - BASS_SAMPLE_FX (BASS_StreamCreate/File/URL flag) - BASS_MUSIC_FX (BASS_MusicLoad flag) - BASS_ChannelSetFX - BASS_ChannelRemoveFX - BASS_FXSetParameters - BASS_FXGetParameters - BASS_FXCHORUS structure - BASS_FXCOMPRESSOR structure - BASS_FXDISTORTION structure - BASS_FXECHO structure - BASS_FXFLANGER structure - BASS_FXGARGLE structure - BASS_FXI3DL2REVERB structure - BASS_FXPARAMEQ structure - BASS_FXREVERB structure -* Internet file streaming in blocks (inc. Shoutcast/Icecast stream support) - BASS_STREAM_BLOCK (BASS_StreamCreateURL flag) -* 512/1024/2048 sample FFT - BASS_DATA_FFT512/1024/2048 (BASS_ChannelGetData flags) -* CD identification - BASS_CDGetID -* Improved DX version detection - BASS_INFO (dsver member) - -1.0 - 20/6/2001 ---------------- -* Load MP3/MP2/MP1 files as samples - BASS_SampleLoad -* Internet file streaming from FTP servers - BASS_StreamCreateURL -* Save a local copy of internet file streams - BASS_StreamCreateURL -* Sample accurate file stream seeking - BASS_ChannelSetPosition - BASS_StreamGetBlockLength *removed* -* Stream position synchronizer - BASS_SYNC_POS -* Increased synchronizer precision -* Improved MPEG file detection and error detection -* Stop MOD musics on a backwards jump effect - BASS_MUSIC_STOPBACK (BASS_MusicLoad/PlayEx flag) -* Leave the volume as it is during closing (as well as initialization) - BASS_DEVICE_LEAVEVOL (BASS_Init flag) -* Optional automatic use of foreground window handle during initialization - BASS_Init -* Reduced DLL size -* VB API fixes - -0.9 - 18/4/2001 ---------------- -* Internet file streaming - BASS_StreamCreateURL -* MP1 & MP2 (MPEG layer 1 & 2) support - BASS_StreamCreateFile/URL -* MPEG 2.5 support (12000/11025/8000hz sample rates) - BASS_StreamCreateFile/URL -* Decoding/download/end file stream position retrieval - BASS_StreamGetFilePosition -* XMPlay surround sound for MOD musics - BASS_MUSIC_SURROUND (BASS_MusicLoad/PlayEx flag) - BASS_MUSIC_SURROUND2 (BASS_MusicLoad/PlayEx flag) -* Restrict the download rate of internet file streams - BASS_STREAM_RESTRATE (BASS_StreamCreateURL flag) -* Check if an internet file stream is stalled - BASS_ChannelIsActive -* Automatically free a stream when it stops or ends - BASS_STREAM_AUTOFREE (BASS_StreamCreate/File/URL flag) -* Leave the volume as it is during initialization - BASS_DEVICE_LEAVEVOL (BASS_Init flag) -* Number of CD tracks retrieval - BASS_CDGetTracks -* CD track length retrieval - BASS_CDGetTrackLength -* Exact stream length set after whole file is streamed - BASS_StreamGetLength -* TMT Pascal API and samples -* Dynamic-loading Delphi API - -0.8a - 28/2/2000 ----------------- -* Updated Delphi API and samples - -0.8 - 24/1/2000 ---------------- -* Improved MP3 performance on P2/K6 and above CPUs - fast! -* User DSP functions on streams and MOD musics - BASS_ChannelSetDSP - BASS_ChannelRemoveDSP -* DX7 voice allocation & management - BASS_SAMPLE_VAM (BASS_SampleLoad/Create flag) - BASS_VAM_xxx flags - BASS_SAMPLE (vam & priority members) -* DX7 software 3D algorithm selection - BASS_Set3DAlgorithm -* DirectSound interface retrieval - BASS_GetDSoundObject -* Log/linear volume & panning curves - BASS_SetLogCurves -* User data passed to callback functions - STREAMPROC - BASS_StreamCreate - SYNCPROC - BASS_ChannelSetSync -* New synchronizer - BASS_SYNC_MUSICFX -* New synchronizer flag - BASS_SYNC_MIXTIME -* Disable synchronizers option - saves a little CPU time - BASS_DEVICE_NOSYNC (BASS_Init flag) -* Hi-res floating-point CPU usage monitoring - BASS_GetCPU -* Wait for playback to start when playing a CD - BASS_CDPlay -* DirectSound (dsound.dll) version retrieval - BASS_INFO (dsver member) -* Removed volume sliding functions (they were fairly pointless) - BASS_SlideVolume - BASS_IsSliding -* MO3: read/write encoder settings -* MO3: remove inst/samp/message texts now optional -* MO3: LAME encoder settings - -0.7 - 3/10/1999 ---------------- -* MO3 (MP3 compressed MODs) -* A3D functions - BASS_DEVICE_A3D (BASS_Init flag) - BASS_INFO (a3d member) - BASS_SetA3DResManager - BASS_GetA3DResManager - BASS_SetA3DHFAbsorbtion - BASS_GetA3DHFAbsorbtion -* Music/stream immediate sample data retrieval - BASS_ChannelGetData -* File stream (WAV/MP3) length retrieval - BASS_StreamGetLength - BASS_StreamGetBlockLength -* File stream seeking - BASS_ChannelSetPosition -* Mono MP3 option (lower CPU usage) - BASS_StreamCreateFile -* Music length retrieval - BASS_MusicGetLength -* Music name retrieval - BASS_MusicGetName -* Stop notes when moving MOD music position - BASS_MUSIC_POSRESET (BASS_MusicLoad/BASS_MusicPlayEx flag) -* BASS_ERROR_FREQ - invalid sample rate error code - BASS_SampleCreate - BASS_SamplePlayEx - BASS_SamplePlay3DEx - BASS_StreamCreate - BASS_ChannelSetAttributes -* Delphi and VB APIs - -0.6a - 26/7/1999 ----------------- -* Half rate MP3 option (lower CPU usage) - BASS_MP3_HALFRATE -* Loading/streaming from file offsets - BASS_MusicLoad - BASS_SampleLoad - BASS_StreamCreateFile -* Global music/sample/stream volume levels - BASS_SetGlobalVolumes - BASS_GetGlobalVolumes -* Other new function - BASS_SampleStop -* New synchronizer - BASS_SYNC_END -* New sample overrider - BASS_SAMPLE_OVER_DIST -* LoadLibrary/GetProcAddress instructions and example - -0.5 - 4/7/1999 --------------- -* Documentation! -* File streaming (MP3 and WAV) - BASS_StreamCreateFile -* Custom generated samples - BASS_SampleCreate - BASS_SampleCreateDone -* Other new function - BASS_MusicSetPositionScaler -* Renamed function - BASS_ChannelClearSync -> BASS_ChannelRemoveSync -* Alterations made to - BASS_ChannelGetPosition - BASS_SampleLoad - BASS_StreamPlay - -0.4 - 30/3/1999 ---------------- -* Compressed WAV samples support (using audio CODECs) -* Updated CD volume handling - now works with SB Live -* More linear channel volume/pan scales (were slightly off before) -* "no sound" device option -* 3D sound functions - BASS_Set3DFactors - BASS_Get3DFactors - BASS_Set3DPosition - BASS_Get3DPosition - BASS_Apply3D - BASS_SamplePlay3D - BASS_SamplePlay3DEx - BASS_ChannelSet3DAttributes - BASS_ChannelGet3DAttributes - BASS_ChannelSet3DPosition - BASS_ChannelGet3DPosition -* EAX functions - BASS_SetEAXParameters - BASS_GetEAXParameters - BASS_ChannelSetEAXMix - BASS_ChannelGetEAXMix -* Other new functions - BASS_GetDeviceDescription - BASS_SetBufferLen - BASS_ChannelGetFlags - BASS_ChannelPause - BASS_ChannelResume - BASS_ChannelSetPosition -* Replaced function - BASS_CDResume -> BASS_ChannelResume -* Alterations made to - BASS_Init - BASS_CDInit - BASS_SampleLoad - BASS_StreamPlay - BASS_INFO structure - BASS_SAMPLE structure - BASS_DEVICE_xxx flags - BASS_SAMPLE_xxx flags - -0.3 - 8/3/1999 --------------- -* Synchronization functions - BASS_ChannelSetSync - BASS_ChannelClearSync -* Other new functions - BASS_GetVersion - BASS_ChannelGetPosition - BASS_ChannelGetLevel - BASS_ChannelGetAttributes - BASS_ChannelSetAttributes -* Replaced functions - BASS_MusicStop -> BASS_ChannelStop - BASS_MusicSetVolume -> BASS_ChannelSetAttributes - BASS_CDStop -> BASS_ChannelStop - BASS_CDSetVolume -> BASS_ChannelSetAttributes - BASS_CDGetVolume -> BASS_ChannelGetAttributes - BASS_ChannelUpdate -> BASS_ChannelSetAttributes -* Alterations made to - BASS_MusicPlayEx - BASS_StreamPlay - BASS_INFO structure - -0.2 - 28/2/1999 ---------------- -* First public release - - -Credits -======= -Ogg Vorbis decoding is based on libogg/vorbis, -Copyright (c) 2002-2004 Xiph.org Foundation - -CHMOX is (c) 2004 Stéphane Boisson, http://chmox.sourceforge.net/ - -API/Sample contributors ------------------------ -Visual Basic: Adam Hoult, Hendrik Knaepen, Arthur Aminov, - Peter Hebels -Delphi: Titus Miloi, Rogier Timmermans, Alessandro Cappellozza, - Jesse Naranjo, Chris Troesken -MASM: Octavian Chis - - -Bug reports, Suggestions, Comments, Enquiries, etc... -===================================================== -If you have any of the aforementioned please visit the BASS forum at -the website. If you can't find an answer there, you can also email: - - bass@un4seen.com - diff --git a/src/lib/bass/delphi/bass-macosx.patch b/src/lib/bass/delphi/bass-macosx.patch deleted file mode 100644 index f79b3925..00000000 --- a/src/lib/bass/delphi/bass-macosx.patch +++ /dev/null @@ -1,368 +0,0 @@ ---- D:/daten/bass.pas Sun Mar 23 18:58:56 2008
-+++ D:/daten/Projekte/UltraStarDX/Kopie von trunk/Game/Code/lib/bass/delphi/bass.pas Sat May 03 03:52:56 2008
-@@ -13,8 +13,20 @@
-
- interface
-
-+{$IFDEF FPC}
-+ {$PACKRECORDS C}
-+{$ENDIF}
-+
-+{$IFDEF MSWINDOWS}
-+ {$DEFINE DLL_STDCALL}
-+{$ELSE}
-+ {$DEFINE DLL_CDECL}
-+{$ENDIF}
-+
-+{$IFDEF MSWINDOWS}
- uses
- Windows;
-+{$ENDIF}
-
- const
- BASSVERSION = $204; // API version
-@@ -231,6 +243,7 @@
- BASS_3DALG_FULL = 2;
- BASS_3DALG_LIGHT = 3;
-
-+{$IFDEF MSWINDOWS}
- // EAX environments, use with BASS_SetEAXParameters
- EAX_ENVIRONMENT_GENERIC = 0;
- EAX_ENVIRONMENT_PADDEDCELL = 1;
-@@ -260,6 +273,7 @@
- EAX_ENVIRONMENT_PSYCHOTIC = 25;
- // total number of environments
- EAX_ENVIRONMENT_COUNT = 26;
-+{$ENDIF}
-
- BASS_STREAMPROC_END = $80000000; // end of user stream flag
-
-@@ -487,10 +501,10 @@
- end;
-
- // User file stream callback functions
-- FILECLOSEPROC = procedure(user: Pointer); stdcall;
-- FILELENPROC = function(user: Pointer): QWORD; stdcall;
-- FILEREADPROC = function(buffer: Pointer; length: DWORD; user: Pointer): DWORD; stdcall;
-- FILESEEKPROC = function(offset: QWORD; user: Pointer): BOOL; stdcall;
-+ FILECLOSEPROC = procedure(user: Pointer); {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF}
-+ FILELENPROC = function(user: Pointer): QWORD; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF}
-+ FILEREADPROC = function(buffer: Pointer; length: DWORD; user: Pointer): DWORD; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF}
-+ FILESEEKPROC = function(offset: QWORD; user: Pointer): BOOL; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF}
-
- BASS_FILEPROCS = record
- close: FILECLOSEPROC;
-@@ -578,7 +592,7 @@
- end;
-
- // callback function types
-- STREAMPROC = function(handle: HSTREAM; buffer: Pointer; length: DWORD; user: Pointer): DWORD; stdcall;
-+ STREAMPROC = function(handle: HSTREAM; buffer: Pointer; length: DWORD; user: Pointer): DWORD; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF}
- {
- User stream callback function. NOTE: A stream function should obviously be as
- quick as possible, other streams (and MOD musics) can't be mixed until
-@@ -593,12 +607,12 @@
-
- const
- // special STREAMPROCs
-- STREAMPROC_DUMMY : STREAMPROC = STREAMPROC(0); // "dummy" stream
-- STREAMPROC_PUSH : STREAMPROC = STREAMPROC(-1); // push stream
-+ STREAMPROC_DUMMY {: STREAMPROC} = Pointer(0); // "dummy" stream
-+ STREAMPROC_PUSH {: STREAMPROC} = Pointer(-1); // push stream
-
- type
-
-- DOWNLOADPROC = procedure(buffer: Pointer; length: DWORD; user: Pointer); stdcall;
-+ DOWNLOADPROC = procedure(buffer: Pointer; length: DWORD; user: Pointer); {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF}
- {
- Internet stream download callback function.
- buffer : Buffer containing the downloaded data... NULL=end of download
-@@ -606,7 +620,7 @@
- user : The 'user' parameter value given when calling BASS_StreamCreateURL
- }
-
-- SYNCPROC = procedure(handle: HSYNC; channel, data: DWORD; user: Pointer); stdcall;
-+ SYNCPROC = procedure(handle: HSYNC; channel, data: DWORD; user: Pointer); {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF}
- {
- Sync callback function. NOTE: a sync callback function should be very
- quick as other syncs cannot be processed until it has finished. If the
-@@ -618,7 +632,7 @@
- user : The 'user' parameter given when calling BASS_ChannelSetSync
- }
-
-- DSPPROC = procedure(handle: HDSP; channel: DWORD; buffer: Pointer; length: DWORD; user: Pointer); stdcall;
-+ DSPPROC = procedure(handle: HDSP; channel: DWORD; buffer: Pointer; length: DWORD; user: Pointer); {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF}
- {
- DSP callback function. NOTE: A DSP function should obviously be as quick
- as possible... other DSP functions, streams and MOD musics can not be
-@@ -630,7 +644,7 @@
- user : The 'user' parameter given when calling BASS_ChannelSetDSP
- }
-
-- RECORDPROC = function(handle: HRECORD; buffer: Pointer; length: DWORD; user: Pointer): BOOL; stdcall;
-+ RECORDPROC = function(handle: HRECORD; buffer: Pointer; length: DWORD; user: Pointer): BOOL; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF}
- {
- Recording callback function.
- handle : The recording handle
-@@ -643,116 +657,130 @@
-
- // Functions
- const
-+{$IFDEF MSWINDOWS}
- bassdll = 'bass.dll';
--
--function BASS_SetConfig(option, value: DWORD): BOOL; stdcall; external bassdll;
--function BASS_GetConfig(option: DWORD): DWORD; stdcall; external bassdll;
--function BASS_SetConfigPtr(option: DWORD; value: Pointer): BOOL; stdcall; external bassdll;
--function BASS_GetConfigPtr(option: DWORD): Pointer; stdcall; external bassdll;
--function BASS_GetVersion: DWORD; stdcall; external bassdll;
--function BASS_ErrorGetCode: Integer; stdcall; external bassdll;
--function BASS_GetDeviceInfo(device: DWORD; var info: BASS_DEVICEINFO): BOOL; stdcall; external bassdll;
--function BASS_Init(device: Integer; freq, flags: DWORD; win: HWND; clsid: PGUID): BOOL; stdcall; external bassdll;
--function BASS_SetDevice(device: DWORD): BOOL; stdcall; external bassdll;
--function BASS_GetDevice: DWORD; stdcall; external bassdll;
--function BASS_Free: BOOL; stdcall; external bassdll;
--function BASS_GetDSoundObject(obj: DWORD): Pointer; stdcall; external bassdll;
--function BASS_GetInfo(var info: BASS_INFO): BOOL; stdcall; external bassdll;
--function BASS_Update(length: DWORD): BOOL; stdcall; external bassdll;
--function BASS_GetCPU: FLOAT; stdcall; external bassdll;
--function BASS_Start: BOOL; stdcall; external bassdll;
--function BASS_Stop: BOOL; stdcall; external bassdll;
--function BASS_Pause: BOOL; stdcall; external bassdll;
--function BASS_SetVolume(volume: FLOAT): BOOL; stdcall; external bassdll;
--function BASS_GetVolume: FLOAT; stdcall; external bassdll;
--
--function BASS_PluginLoad(filename: PChar; flags: DWORD): HPLUGIN; stdcall; external bassdll;
--function BASS_PluginFree(handle: HPLUGIN): BOOL; stdcall; external bassdll;
--function BASS_PluginGetInfo(handle: HPLUGIN): PBASS_PLUGININFO; stdcall; external bassdll;
--
--function BASS_Set3DFactors(distf, rollf, doppf: FLOAT): BOOL; stdcall; external bassdll;
--function BASS_Get3DFactors(var distf, rollf, doppf: FLOAT): BOOL; stdcall; external bassdll;
--function BASS_Set3DPosition(var pos, vel, front, top: BASS_3DVECTOR): BOOL; stdcall; external bassdll;
--function BASS_Get3DPosition(var pos, vel, front, top: BASS_3DVECTOR): BOOL; stdcall; external bassdll;
--procedure BASS_Apply3D; stdcall; external bassdll;
--function BASS_SetEAXParameters(env: Integer; vol, decay, damp: FLOAT): BOOL; stdcall; external bassdll;
--function BASS_GetEAXParameters(var env: DWORD; var vol, decay, damp: FLOAT): BOOL; stdcall; external bassdll;
--
--function BASS_MusicLoad(mem: BOOL; f: Pointer; offset: QWORD; length, flags, freq: DWORD): HMUSIC; stdcall; external bassdll;
--function BASS_MusicFree(handle: HMUSIC): BOOL; stdcall; external bassdll;
--
--function BASS_SampleLoad(mem: BOOL; f: Pointer; offset: QWORD; length, max, flags: DWORD): HSAMPLE; stdcall; external bassdll;
--function BASS_SampleCreate(length, freq, chans, max, flags: DWORD): HSAMPLE; stdcall; external bassdll;
--function BASS_SampleFree(handle: HSAMPLE): BOOL; stdcall; external bassdll;
--function BASS_SampleSetData(handle: HSAMPLE; buffer: Pointer): BOOL; stdcall; external bassdll;
--function BASS_SampleGetData(handle: HSAMPLE; buffer: Pointer): BOOL; stdcall; external bassdll;
--function BASS_SampleGetInfo(handle: HSAMPLE; var info: BASS_SAMPLE): BOOL; stdcall; external bassdll;
--function BASS_SampleSetInfo(handle: HSAMPLE; var info: BASS_SAMPLE): BOOL; stdcall; external bassdll;
--function BASS_SampleGetChannel(handle: HSAMPLE; onlynew: BOOL): HCHANNEL; stdcall; external bassdll;
--function BASS_SampleGetChannels(handle: HSAMPLE; channels: Pointer): DWORD; stdcall; external bassdll;
--function BASS_SampleStop(handle: HSAMPLE): BOOL; stdcall; external bassdll;
--
--function BASS_StreamCreate(freq, chans, flags: DWORD; proc: STREAMPROC; user: Pointer): HSTREAM; stdcall; external bassdll;
--function BASS_StreamCreateFile(mem: BOOL; f: Pointer; offset, length: QWORD; flags: DWORD): HSTREAM; stdcall; external bassdll;
--function BASS_StreamCreateURL(url: PChar; offset: DWORD; flags: DWORD; proc: DOWNLOADPROC; user: Pointer):HSTREAM; stdcall; external bassdll;
--function BASS_StreamCreateFileUser(system, flags: DWORD; var procs: BASS_FILEPROCS; user: Pointer): HSTREAM; stdcall; external bassdll;
--function BASS_StreamFree(handle: HSTREAM): BOOL; stdcall; external bassdll;
--function BASS_StreamGetFilePosition(handle: HSTREAM; mode: DWORD): QWORD; stdcall; external bassdll;
--function BASS_StreamPutData(handle: HSTREAM; buffer: Pointer; length: DWORD): DWORD; stdcall; external bassdll;
--function BASS_StreamPutFileData(handle: HSTREAM; buffer: Pointer; length: DWORD): DWORD; stdcall; external bassdll;
--
--function BASS_RecordGetDeviceInfo(device: DWORD; var info: BASS_DEVICEINFO): BOOL; stdcall; external bassdll;
--function BASS_RecordInit(device: Integer):BOOL; stdcall; external bassdll;
--function BASS_RecordSetDevice(device: DWORD): BOOL; stdcall; external bassdll;
--function BASS_RecordGetDevice: DWORD; stdcall; external bassdll;
--function BASS_RecordFree: BOOL; stdcall; external bassdll;
--function BASS_RecordGetInfo(var info: BASS_RECORDINFO): BOOL; stdcall; external bassdll;
--function BASS_RecordGetInputName(input: Integer): PChar; stdcall; external bassdll;
--function BASS_RecordSetInput(input: Integer; flags: DWORD; volume: FLOAT): BOOL; stdcall; external bassdll;
--function BASS_RecordGetInput(input: Integer; var volume: FLOAT): DWORD; stdcall; external bassdll;
--function BASS_RecordStart(freq, chans, flags: DWORD; proc: RECORDPROC; user: Pointer): HRECORD; stdcall; external bassdll;
--
--function BASS_ChannelBytes2Seconds(handle: DWORD; pos: QWORD): Double; stdcall;external bassdll;
--function BASS_ChannelSeconds2Bytes(handle: DWORD; pos: Double): QWORD; stdcall;external bassdll;
--function BASS_ChannelGetDevice(handle: DWORD): DWORD; stdcall; external bassdll;
--function BASS_ChannelSetDevice(handle, device: DWORD): BOOL; stdcall; external bassdll;
--function BASS_ChannelIsActive(handle: DWORD): DWORD; stdcall;external bassdll;
--function BASS_ChannelGetInfo(handle: DWORD; var info: BASS_CHANNELINFO):BOOL;stdcall;external bassdll;
--function BASS_ChannelGetTags(handle: HSTREAM; tags: DWORD): PChar; stdcall; external bassdll;
--function BASS_ChannelFlags(handle, flags, mask: DWORD): DWORD; stdcall; external bassdll;
--function BASS_ChannelUpdate(handle, length: DWORD): BOOL; stdcall; external bassdll;
--function BASS_ChannelLock(handle: DWORD; lock: BOOL): BOOL; stdcall; external bassdll;
--function BASS_ChannelPlay(handle: DWORD; restart: BOOL): BOOL; stdcall; external bassdll;
--function BASS_ChannelStop(handle: DWORD): BOOL; stdcall; external bassdll;
--function BASS_ChannelPause(handle: DWORD): BOOL; stdcall; external bassdll;
--function BASS_ChannelSetAttribute(handle, attrib: DWORD; value: FLOAT): BOOL; stdcall; external bassdll;
--function BASS_ChannelGetAttribute(handle, attrib: DWORD; var value: FLOAT): BOOL; stdcall; external bassdll;
--function BASS_ChannelSlideAttribute(handle, attrib: DWORD; value: FLOAT; time: DWORD): BOOL; stdcall; external bassdll;
--function BASS_ChannelIsSliding(handle, attrib: DWORD): BOOL; stdcall;external bassdll;
--function BASS_ChannelSet3DAttributes(handle: DWORD; mode: Integer; min, max: FLOAT; iangle, oangle, outvol: Integer): BOOL; stdcall; external bassdll;
--function BASS_ChannelGet3DAttributes(handle: DWORD; var mode: DWORD; var min, max: FLOAT; var iangle, oangle, outvol: DWORD): BOOL; stdcall; external bassdll;
--function BASS_ChannelSet3DPosition(handle: DWORD; var pos, orient, vel: BASS_3DVECTOR): BOOL; stdcall; external bassdll;
--function BASS_ChannelGet3DPosition(handle: DWORD; var pos, orient, vel: BASS_3DVECTOR): BOOL; stdcall; external bassdll;
--function BASS_ChannelGetLength(handle, mode: DWORD): QWORD; stdcall; external bassdll;
--function BASS_ChannelSetPosition(handle: DWORD; pos: QWORD; mode: DWORD): BOOL; stdcall; external bassdll;
--function BASS_ChannelGetPosition(handle, mode: DWORD): QWORD; stdcall; external bassdll;
--function BASS_ChannelGetLevel(handle: DWORD): DWORD; stdcall; external bassdll;
--function BASS_ChannelGetData(handle: DWORD; buffer: Pointer; length: DWORD): DWORD; stdcall; external bassdll;
--function BASS_ChannelSetSync(handle: DWORD; type_: DWORD; param: QWORD; proc: SYNCPROC; user: Pointer): HSYNC; stdcall; external bassdll;
--function BASS_ChannelRemoveSync(handle: DWORD; sync: HSYNC): BOOL; stdcall; external bassdll;
--function BASS_ChannelSetDSP(handle: DWORD; proc: DSPPROC; user: Pointer; priority: Integer): HDSP; stdcall; external bassdll;
--function BASS_ChannelRemoveDSP(handle: DWORD; dsp: HDSP): BOOL; stdcall; external bassdll;
--function BASS_ChannelSetLink(handle, chan: DWORD): BOOL; stdcall; external bassdll;
--function BASS_ChannelRemoveLink(handle, chan: DWORD): BOOL; stdcall; external bassdll;
--function BASS_ChannelSetFX(handle, type_: DWORD; priority: Integer): HFX; stdcall; external bassdll;
--function BASS_ChannelRemoveFX(handle: DWORD; fx: HFX): BOOL; stdcall; external bassdll;
--
--function BASS_FXSetParameters(handle: HFX; par: Pointer): BOOL; stdcall; external bassdll;
--function BASS_FXGetParameters(handle: HFX; par: Pointer): BOOL; stdcall; external bassdll;
--function BASS_FXReset(handle: HFX): BOOL; stdcall; external bassdll;
-+{$ENDIF}
-+{$IFDEF DARWIN}
-+ bassdll = 'libbass.dylib';
-+{$ENDIF}
-+
-+function BASS_SetConfig(option, value: DWORD): BOOL; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+function BASS_GetConfig(option: DWORD): DWORD; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+function BASS_SetConfigPtr(option: DWORD; value: Pointer): BOOL; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+function BASS_GetConfigPtr(option: DWORD): Pointer; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+function BASS_GetVersion: DWORD; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+function BASS_ErrorGetCode: Integer; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+function BASS_GetDeviceInfo(device: DWORD; var info: BASS_DEVICEINFO): BOOL; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+{$IFDEF MSWINDOWS}
-+function BASS_Init(device: Integer; freq, flags: DWORD; win: HWND; clsid: PGUID): BOOL; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+{$ELSE}
-+function BASS_Init(device: Integer; freq, flags: DWORD; win: Pointer; clsid: Pointer): BOOL; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+{$ENDIF}
-+function BASS_SetDevice(device: DWORD): BOOL; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+function BASS_GetDevice: DWORD; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+function BASS_Free: BOOL; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+{$IFDEF MSWINDOWS}
-+function BASS_GetDSoundObject(obj: DWORD): Pointer; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+{$ENDIF}
-+function BASS_GetInfo(var info: BASS_INFO): BOOL; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+function BASS_Update(length: DWORD): BOOL; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+function BASS_GetCPU: FLOAT; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+function BASS_Start: BOOL; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+function BASS_Stop: BOOL; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+function BASS_Pause: BOOL; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+function BASS_SetVolume(volume: FLOAT): BOOL; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+function BASS_GetVolume: FLOAT; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+
-+function BASS_PluginLoad(filename: PChar; flags: DWORD): HPLUGIN; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+function BASS_PluginFree(handle: HPLUGIN): BOOL; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+function BASS_PluginGetInfo(handle: HPLUGIN): PBASS_PLUGININFO; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+
-+function BASS_Set3DFactors(distf, rollf, doppf: FLOAT): BOOL; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+function BASS_Get3DFactors(var distf, rollf, doppf: FLOAT): BOOL; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+function BASS_Set3DPosition(var pos, vel, front, top: BASS_3DVECTOR): BOOL; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+function BASS_Get3DPosition(var pos, vel, front, top: BASS_3DVECTOR): BOOL; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+procedure BASS_Apply3D; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+{$IFDEF MSWINDOWS}
-+function BASS_SetEAXParameters(env: Integer; vol, decay, damp: FLOAT): BOOL; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+function BASS_GetEAXParameters(var env: DWORD; var vol, decay, damp: FLOAT): BOOL; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+{$ENDIF}
-+
-+function BASS_MusicLoad(mem: BOOL; f: Pointer; offset: QWORD; length, flags, freq: DWORD): HMUSIC; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+function BASS_MusicFree(handle: HMUSIC): BOOL; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+
-+function BASS_SampleLoad(mem: BOOL; f: Pointer; offset: QWORD; length, max, flags: DWORD): HSAMPLE; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+function BASS_SampleCreate(length, freq, chans, max, flags: DWORD): HSAMPLE; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+function BASS_SampleFree(handle: HSAMPLE): BOOL; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+function BASS_SampleSetData(handle: HSAMPLE; buffer: Pointer): BOOL; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+function BASS_SampleGetData(handle: HSAMPLE; buffer: Pointer): BOOL; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+function BASS_SampleGetInfo(handle: HSAMPLE; var info: BASS_SAMPLE): BOOL; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+function BASS_SampleSetInfo(handle: HSAMPLE; var info: BASS_SAMPLE): BOOL; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+function BASS_SampleGetChannel(handle: HSAMPLE; onlynew: BOOL): HCHANNEL; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+function BASS_SampleGetChannels(handle: HSAMPLE; channels: Pointer): DWORD; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+function BASS_SampleStop(handle: HSAMPLE): BOOL; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+
-+function BASS_StreamCreate(freq, chans, flags: DWORD; proc: STREAMPROC; user: Pointer): HSTREAM; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+function BASS_StreamCreateFile(mem: BOOL; f: Pointer; offset, length: QWORD; flags: DWORD): HSTREAM; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+function BASS_StreamCreateURL(url: PChar; offset: DWORD; flags: DWORD; proc: DOWNLOADPROC; user: Pointer):HSTREAM; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+function BASS_StreamCreateFileUser(system, flags: DWORD; var procs: BASS_FILEPROCS; user: Pointer): HSTREAM; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+function BASS_StreamFree(handle: HSTREAM): BOOL; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+function BASS_StreamGetFilePosition(handle: HSTREAM; mode: DWORD): QWORD; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+function BASS_StreamPutData(handle: HSTREAM; buffer: Pointer; length: DWORD): DWORD; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+function BASS_StreamPutFileData(handle: HSTREAM; buffer: Pointer; length: DWORD): DWORD; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+
-+function BASS_RecordGetDeviceInfo(device: DWORD; var info: BASS_DEVICEINFO): BOOL; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+function BASS_RecordInit(device: Integer):BOOL; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+function BASS_RecordSetDevice(device: DWORD): BOOL; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+function BASS_RecordGetDevice: DWORD; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+function BASS_RecordFree: BOOL; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+function BASS_RecordGetInfo(var info: BASS_RECORDINFO): BOOL; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+function BASS_RecordGetInputName(input: Integer): PChar; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+function BASS_RecordSetInput(input: Integer; flags: DWORD; volume: FLOAT): BOOL; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+function BASS_RecordGetInput(input: Integer; var volume: FLOAT): DWORD; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+function BASS_RecordStart(freq, chans, flags: DWORD; proc: RECORDPROC; user: Pointer): HRECORD; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+
-+function BASS_ChannelBytes2Seconds(handle: DWORD; pos: QWORD): Double; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF}external bassdll;
-+function BASS_ChannelSeconds2Bytes(handle: DWORD; pos: Double): QWORD; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF}external bassdll;
-+function BASS_ChannelGetDevice(handle: DWORD): DWORD; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+function BASS_ChannelSetDevice(handle, device: DWORD): BOOL; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+function BASS_ChannelIsActive(handle: DWORD): DWORD; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF}external bassdll;
-+function BASS_ChannelGetInfo(handle: DWORD; var info: BASS_CHANNELINFO):BOOL;{$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF}external bassdll;
-+function BASS_ChannelGetTags(handle: HSTREAM; tags: DWORD): PChar; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+function BASS_ChannelFlags(handle, flags, mask: DWORD): DWORD; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+function BASS_ChannelUpdate(handle, length: DWORD): BOOL; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+function BASS_ChannelLock(handle: DWORD; lock: BOOL): BOOL; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+function BASS_ChannelPlay(handle: DWORD; restart: BOOL): BOOL; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+function BASS_ChannelStop(handle: DWORD): BOOL; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+function BASS_ChannelPause(handle: DWORD): BOOL; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+function BASS_ChannelSetAttribute(handle, attrib: DWORD; value: FLOAT): BOOL; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+function BASS_ChannelGetAttribute(handle, attrib: DWORD; var value: FLOAT): BOOL; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+function BASS_ChannelSlideAttribute(handle, attrib: DWORD; value: FLOAT; time: DWORD): BOOL; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+function BASS_ChannelIsSliding(handle, attrib: DWORD): BOOL; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF}external bassdll;
-+function BASS_ChannelSet3DAttributes(handle: DWORD; mode: Integer; min, max: FLOAT; iangle, oangle, outvol: Integer): BOOL; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+function BASS_ChannelGet3DAttributes(handle: DWORD; var mode: DWORD; var min, max: FLOAT; var iangle, oangle, outvol: DWORD): BOOL; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+function BASS_ChannelSet3DPosition(handle: DWORD; var pos, orient, vel: BASS_3DVECTOR): BOOL; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+function BASS_ChannelGet3DPosition(handle: DWORD; var pos, orient, vel: BASS_3DVECTOR): BOOL; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+function BASS_ChannelGetLength(handle, mode: DWORD): QWORD; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+function BASS_ChannelSetPosition(handle: DWORD; pos: QWORD; mode: DWORD): BOOL; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+function BASS_ChannelGetPosition(handle, mode: DWORD): QWORD; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+function BASS_ChannelGetLevel(handle: DWORD): DWORD; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+function BASS_ChannelGetData(handle: DWORD; buffer: Pointer; length: DWORD): DWORD; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+function BASS_ChannelSetSync(handle: DWORD; type_: DWORD; param: QWORD; proc: SYNCPROC; user: Pointer): HSYNC; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+function BASS_ChannelRemoveSync(handle: DWORD; sync: HSYNC): BOOL; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+function BASS_ChannelSetDSP(handle: DWORD; proc: DSPPROC; user: Pointer; priority: Integer): HDSP; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+function BASS_ChannelRemoveDSP(handle: DWORD; dsp: HDSP): BOOL; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+function BASS_ChannelSetLink(handle, chan: DWORD): BOOL; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+function BASS_ChannelRemoveLink(handle, chan: DWORD): BOOL; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+function BASS_ChannelSetFX(handle, type_: DWORD; priority: Integer): HFX; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+function BASS_ChannelRemoveFX(handle: DWORD; fx: HFX): BOOL; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+
-+function BASS_FXSetParameters(handle: HFX; par: Pointer): BOOL; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+function BASS_FXGetParameters(handle: HFX; par: Pointer): BOOL; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-+function BASS_FXReset(handle: HFX): BOOL; {$IFDEF DLL_STDCALL}stdcall;{$ENDIF}{$IFDEF DLL_CDECL}cdecl;{$ENDIF} external bassdll;
-
-
- function BASS_SPEAKER_N(n: DWORD): DWORD;
-+{$IFDEF MSWINDOWS}
- function BASS_SetEAXPreset(env: Integer): BOOL;
- {
- This function is defined in the implementation part of this unit.
-@@ -760,7 +788,7 @@
- to set the predefined EAX environments.
- env : a EAX_ENVIRONMENT_xxx constant
- }
--
-+{$ENDIF}
-
- implementation
-
-@@ -769,6 +797,7 @@
- Result := n shl 24;
- end;
-
-+{$IFDEF MSWINDOWS}
- function BASS_SetEAXPreset(env: Integer): BOOL;
- begin
- case (env) of
-@@ -828,6 +857,7 @@
- Result := FALSE;
- end;
- end;
-+{$ENDIF}
-
- end.
- // END OF FILE /////////////////////////////////////////////////////////////////
diff --git a/src/lib/collections/readme.txt b/src/lib/collections/readme.txt deleted file mode 100644 index 1f6477de..00000000 --- a/src/lib/collections/readme.txt +++ /dev/null @@ -1,14 +0,0 @@ -Delphi Collections by Matthew Greet -http://www.warmachine.u-net.com/delphi_collections/ - -Help files (MS .hlp format) at -http://www.warmachine.u-net.com/downloads/delphi_collections_1_0_help.zip - -Changes -===================== -2008-11-06 FPC compatibility fixes by UltraStar Deluxe Team -2005-03-14 Maintenance release v1.0.5 - bug fix for sorted lists and functional tests checks unsorted and sorted lists. -2004-10-14 Maintenance release v1.0.4 - memory leak fixed. -2004-06-12 Maintenance release v1.0.3 - memory leak fixed, memory leak test, new Capacity property. -2004-02-13 Maintenance release v1.0.2 - expanded introduction and quick start sections in help file. -2003-10-25 Maintenance release v1.0.1 - packages and test harness no longer list unused packages.
\ No newline at end of file diff --git a/src/lib/freetype/demo/engine-test.bdsproj b/src/lib/freetype/demo/engine-test.bdsproj deleted file mode 100644 index e5b3e97d..00000000 --- a/src/lib/freetype/demo/engine-test.bdsproj +++ /dev/null @@ -1,175 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?>
-<BorlandProject>
- <PersonalityInfo>
- <Option>
- <Option Name="Personality">Delphi.Personality</Option>
- <Option Name="ProjectType">VCLApplication</Option>
- <Option Name="Version">1.0</Option>
- <Option Name="GUID">{41656F26-D552-4948-B9DB-E184B77C3993}</Option>
- </Option>
- </PersonalityInfo>
- <Delphi.Personality>
- <Source>
- <Source Name="MainSource">engine-test.dpr</Source>
- </Source>
- <FileVersion>
- <FileVersion Name="Version">7.0</FileVersion>
- </FileVersion>
- <Compiler>
- <Compiler Name="A">8</Compiler>
- <Compiler Name="B">0</Compiler>
- <Compiler Name="C">1</Compiler>
- <Compiler Name="D">1</Compiler>
- <Compiler Name="E">0</Compiler>
- <Compiler Name="F">0</Compiler>
- <Compiler Name="G">1</Compiler>
- <Compiler Name="H">1</Compiler>
- <Compiler Name="I">1</Compiler>
- <Compiler Name="J">0</Compiler>
- <Compiler Name="K">0</Compiler>
- <Compiler Name="L">1</Compiler> - <Compiler Name="M">0</Compiler> - <Compiler Name="N">1</Compiler> - <Compiler Name="O">1</Compiler> - <Compiler Name="P">1</Compiler> - <Compiler Name="Q">0</Compiler> - <Compiler Name="R">0</Compiler> - <Compiler Name="S">0</Compiler>
- <Compiler Name="T">0</Compiler>
- <Compiler Name="U">0</Compiler>
- <Compiler Name="V">1</Compiler>
- <Compiler Name="W">0</Compiler>
- <Compiler Name="X">1</Compiler>
- <Compiler Name="Y">1</Compiler>
- <Compiler Name="Z">1</Compiler>
- <Compiler Name="ShowHints">True</Compiler>
- <Compiler Name="ShowWarnings">True</Compiler>
- <Compiler Name="UnitAliases">WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;</Compiler>
- <Compiler Name="NamespacePrefix"></Compiler>
- <Compiler Name="GenerateDocumentation">False</Compiler>
- <Compiler Name="DefaultNamespace"></Compiler>
- <Compiler Name="SymbolDeprecated">True</Compiler>
- <Compiler Name="SymbolLibrary">True</Compiler>
- <Compiler Name="SymbolPlatform">True</Compiler>
- <Compiler Name="SymbolExperimental">True</Compiler>
- <Compiler Name="UnitLibrary">True</Compiler>
- <Compiler Name="UnitPlatform">True</Compiler>
- <Compiler Name="UnitDeprecated">True</Compiler>
- <Compiler Name="UnitExperimental">True</Compiler>
- <Compiler Name="HResultCompat">True</Compiler>
- <Compiler Name="HidingMember">True</Compiler>
- <Compiler Name="HiddenVirtual">True</Compiler>
- <Compiler Name="Garbage">True</Compiler>
- <Compiler Name="BoundsError">True</Compiler>
- <Compiler Name="ZeroNilCompat">True</Compiler>
- <Compiler Name="StringConstTruncated">True</Compiler>
- <Compiler Name="ForLoopVarVarPar">True</Compiler>
- <Compiler Name="TypedConstVarPar">True</Compiler>
- <Compiler Name="AsgToTypedConst">True</Compiler>
- <Compiler Name="CaseLabelRange">True</Compiler>
- <Compiler Name="ForVariable">True</Compiler>
- <Compiler Name="ConstructingAbstract">True</Compiler>
- <Compiler Name="ComparisonFalse">True</Compiler>
- <Compiler Name="ComparisonTrue">True</Compiler>
- <Compiler Name="ComparingSignedUnsigned">True</Compiler>
- <Compiler Name="CombiningSignedUnsigned">True</Compiler>
- <Compiler Name="UnsupportedConstruct">True</Compiler>
- <Compiler Name="FileOpen">True</Compiler>
- <Compiler Name="FileOpenUnitSrc">True</Compiler>
- <Compiler Name="BadGlobalSymbol">True</Compiler>
- <Compiler Name="DuplicateConstructorDestructor">True</Compiler>
- <Compiler Name="InvalidDirective">True</Compiler>
- <Compiler Name="PackageNoLink">True</Compiler>
- <Compiler Name="PackageThreadVar">True</Compiler>
- <Compiler Name="ImplicitImport">True</Compiler>
- <Compiler Name="HPPEMITIgnored">True</Compiler>
- <Compiler Name="NoRetVal">True</Compiler>
- <Compiler Name="UseBeforeDef">True</Compiler>
- <Compiler Name="ForLoopVarUndef">True</Compiler>
- <Compiler Name="UnitNameMismatch">True</Compiler>
- <Compiler Name="NoCFGFileFound">True</Compiler>
- <Compiler Name="ImplicitVariants">True</Compiler>
- <Compiler Name="UnicodeToLocale">True</Compiler>
- <Compiler Name="LocaleToUnicode">True</Compiler>
- <Compiler Name="ImagebaseMultiple">True</Compiler>
- <Compiler Name="SuspiciousTypecast">True</Compiler>
- <Compiler Name="PrivatePropAccessor">True</Compiler>
- <Compiler Name="UnsafeType">False</Compiler>
- <Compiler Name="UnsafeCode">False</Compiler>
- <Compiler Name="UnsafeCast">False</Compiler>
- <Compiler Name="OptionTruncated">True</Compiler>
- <Compiler Name="WideCharReduced">True</Compiler>
- <Compiler Name="DuplicatesIgnored">True</Compiler>
- <Compiler Name="UnitInitSeq">True</Compiler>
- <Compiler Name="LocalPInvoke">True</Compiler>
- <Compiler Name="MessageDirective">True</Compiler>
- <Compiler Name="CodePage"></Compiler>
- </Compiler>
- <Linker>
- <Linker Name="MapFile">0</Linker>
- <Linker Name="OutputObjs">0</Linker>
- <Linker Name="GenerateHpps">False</Linker>
- <Linker Name="ConsoleApp">1</Linker>
- <Linker Name="DebugInfo">False</Linker>
- <Linker Name="RemoteSymbols">False</Linker>
- <Linker Name="GenerateDRC">False</Linker>
- <Linker Name="MinStackSize">16384</Linker>
- <Linker Name="MaxStackSize">1048576</Linker>
- <Linker Name="ImageBase">4194304</Linker>
- <Linker Name="ExeDescription"></Linker>
- </Linker>
- <Directories>
- <Directories Name="OutputDir"></Directories>
- <Directories Name="UnitOutputDir"></Directories>
- <Directories Name="PackageDLLOutputDir"></Directories>
- <Directories Name="PackageDCPOutputDir"></Directories>
- <Directories Name="SearchPath">..\..\JEDI-SDL\SDL\Pas</Directories>
- <Directories Name="Packages">vclx;vcl;rtl;vclactnband</Directories>
- <Directories Name="Conditionals"></Directories>
- <Directories Name="DebugSourceDirs"></Directories>
- <Directories Name="UsePackages">False</Directories>
- </Directories>
- <Parameters>
- <Parameters Name="RunParams"></Parameters>
- <Parameters Name="HostApplication"></Parameters>
- <Parameters Name="Launcher"></Parameters>
- <Parameters Name="UseLauncher">False</Parameters>
- <Parameters Name="DebugCWD"></Parameters>
- <Parameters Name="Debug Symbols Search Path"></Parameters>
- <Parameters Name="LoadAllSymbols">True</Parameters>
- <Parameters Name="LoadUnspecifiedSymbols">False</Parameters>
- </Parameters>
- <Language>
- <Language Name="ActiveLang"></Language>
- <Language Name="ProjectLang">$00000000</Language>
- <Language Name="RootDir"></Language>
- </Language>
- <VersionInfo>
- <VersionInfo Name="IncludeVerInfo">False</VersionInfo>
- <VersionInfo Name="AutoIncBuild">False</VersionInfo>
- <VersionInfo Name="MajorVer">1</VersionInfo>
- <VersionInfo Name="MinorVer">0</VersionInfo>
- <VersionInfo Name="Release">0</VersionInfo>
- <VersionInfo Name="Build">0</VersionInfo>
- <VersionInfo Name="Debug">False</VersionInfo>
- <VersionInfo Name="PreRelease">False</VersionInfo>
- <VersionInfo Name="Special">False</VersionInfo>
- <VersionInfo Name="Private">False</VersionInfo>
- <VersionInfo Name="DLL">False</VersionInfo>
- <VersionInfo Name="Locale">1031</VersionInfo>
- <VersionInfo Name="CodePage">1252</VersionInfo>
- </VersionInfo>
- <VersionInfoKeys>
- <VersionInfoKeys Name="CompanyName"></VersionInfoKeys>
- <VersionInfoKeys Name="FileDescription"></VersionInfoKeys>
- <VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys>
- <VersionInfoKeys Name="InternalName"></VersionInfoKeys>
- <VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys>
- <VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys>
- <VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys>
- <VersionInfoKeys Name="ProductName"></VersionInfoKeys>
- <VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys>
- <VersionInfoKeys Name="Comments"></VersionInfoKeys>
- </VersionInfoKeys>
- </Delphi.Personality>
-</BorlandProject>
diff --git a/src/lib/freetype/demo/engine-test.dpr b/src/lib/freetype/demo/engine-test.dpr deleted file mode 100644 index bbd7d890..00000000 --- a/src/lib/freetype/demo/engine-test.dpr +++ /dev/null @@ -1,338 +0,0 @@ -program engine_test; -(* - * This code was created by Jeff Molofee '99 - * (ported to Linux/SDL by Ti Leggett '01) - * - * If you've found this code useful, please let me know. - * - * Visit Jeff at http://nehe.gamedev.net/ - * - * or for port-specific comments, questions, bugreports etc. - * email to leggett@eecs.tulane.edu - *) - -{$IFDEF FPC} - {$mode delphi}{$H+} -{$ENDIF} - -{$APPTYPE Console} - -uses - moduleloader in '../../JEDI-SDL/SDL/Pas/moduleloader.pas', - SDL in '../../JEDI-SDL/SDL/Pas/sdl.pas', - gl in '../../JEDI-SDL/OpenGL/Pas/gl.pas', - glext in '../../JEDI-SDL/OpenGL/Pas/glext.pas', - glu in '../../JEDI-SDL/OpenGL/Pas/glu.pas', - {$IFNDEF FPC} - ctypes in '../../ctypes/ctypes.pas', - {$ENDIF} - FreeType in '../freetype.pas', - UFont in 'UFont.pas', - //UFont in '../../../base/UFont.pas', - UUnicodeUtils in '../../../base/UUnicodeUtils.pas', - math, - sysutils; - -const - // screen width, height, and bit depth - SCREEN_WIDTH = 640; - SCREEN_HEIGHT = 480; - SCREEN_BPP = 16; - - //FONT_FILE = 'Test.ttf'; - //FONT_FILE = 'C:/Windows/Fonts/Arial.ttf'; - //FONT_FILE = 'C:/Windows/Fonts/SimSun.ttf'; - //FONT_FILE = 'eurostarregularextended.ttf'; - FONT_FILE = '../../../../game/fonts/FreeSans/FreeSans.ttf'; - -var - OurFont: TScalableFont; - // This is our SDL surface - surface: PSDL_Surface; - cnt1, cnt2: GLfloat; - -(* function to release/destroy our resources and restoring the old desktop *) -procedure Quit(returnCode: integer); -begin - OurFont.Free; - - // clean up the window - SDL_Quit( ); - - // and exit appropriately - Halt( returnCode ); -end; - -(* function to reset our viewport after a window resize *) -function resizeWindow(width: integer; height: integer): boolean; -begin - // Protect against a divide by zero - if ( height = 0 ) then - height := 1; - - // Setup our viewport. - glViewport( 0, 0, GLsizei(width), GLsizei(height) ); - - // change to the projection matrix and set our viewing volume. - glMatrixMode( GL_PROJECTION ); - glLoadIdentity( ); - - // Set our perspective - //gluOrtho2D(0, width, 0, height); - gluOrtho2D(0, 800, 0, 600); - - // Make sure we're chaning the model view and not the projection - glMatrixMode( GL_MODELVIEW ); - - // Reset The View - glLoadIdentity( ); - - Result := true; -end; - -(* function to handle key press events *) -procedure handleKeyPress(keysym: PSDL_keysym); -begin - case ( keysym^.sym ) of - SDLK_ESCAPE: - begin - // ESC key was pressed - Quit( 0 ); - end; - SDLK_F1: - begin - // F1 key was pressed - // this toggles fullscreen mode - SDL_WM_ToggleFullScreen( surface ); - end; - end; -end; - -(* general OpenGL initialization function *) -function initGL(): boolean; -begin - // Enable smooth shading - glShadeModel( GL_SMOOTH ); - - // Set the background black - //glClearColor( 1, 1, 1.0, 1.0 ); - //glClearColor( 0.3, 0.7, 1.0, 1.0 ); - glClearColor( 0.0, 0.0, 0.0, 1.0 ); - - // Depth buffer setup - glClearDepth( 1.0 ); - - // Enables Depth Testing - glEnable( GL_DEPTH_TEST ); - - // The Type Of Depth Test To Do - glDepthFunc( GL_LEQUAL ); - - // Really Nice Perspective Calculations - glHint( GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST ); - - OurFont := TFTScalableFont.Create(FONT_FILE, 64, 0.03); - //OurFont := TFTFont.Create(FONT_FILE, 128); - //OurFont := TFTScalableOutlineFont.Create(FONT_FILE, 64, 0.03); - //OurFont.UseKerning := false; - //TFTScalableOutlineFont(OurFont).SetOutlineColor(1, 0, 0, 1); - //OurFont := TOutlineFont.Create(FONT_FILE, 32, 2); - //OurFont.LineSpacing := OurFont.LineSpacing * 0.5; - - Result := true; -end; - -var - NextTime: cardinal; - Counter: integer; - -type - TVector4d = array[0..3] of GLdouble; - -function NewVector4d(a, b, c, d: GLdouble): TVector4d; -begin - Result[0] := a; - Result[1] := b; - Result[2] := c; - Result[3] := d; -end; - -(* Here goes our drawing code *) -function drawGLScene(): boolean; -var - msg: WideString; - bounds: TBoundsDbl; -begin - glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT); // Clear Screen And Depth Buffer - - //msg := 'Here'#13'there'#13'be'#13#13'newlines'#13'.'; - //msg := 'Here'#13'newlines'; - msg := 'Active FreeType Text - ' + FloatToStr(cnt1); - //msg := 'Hören'#13'其自诞生至今'#13'Ńпецификация'; - - // Red text - glLoadIdentity(); - glTranslatef(cnt2, 240, 0); - if (cnt2 > 800) then - cnt2 := 0; - glTranslatef(30, 40, 0); - //glTranslatef(320, 240, 0); - //glRotatef(cnt1, 0, 0, 1); - //glScalef(1, 0.8 + 0.3*cos(cnt1/5), 1); - - OurFont.Style := [Italic, {Underline,} Reflect]; - //OurFont.GlyphSpacing := 10; - //OurFont.SetOutlineColor(0.5, 0.5, 0.5); - //OurFont.ReflectionSpacing := -4; - //OurFont.UseKerning := false; - OurFont.Height := 150;//cnt2; - //OurFont.Reset; - //OurFont.Aspect := 2; - - glColor3f(1, 1, 0); - bounds := OurFont.BBox(msg); - //glRectf(bounds.Left, OurFont.Ascender, bounds.Right, OurFont.Ascender-OurFont.Height); - - glColor4f(1, 1, 1, 1); - //OurFont.ReflectionSpacing := 0; - OurFont.Print(msg); - - cnt1 := cnt1 + 0.051; // Increase The First Counter - cnt2 := cnt2 + 0.005; // Increase The First Counter - - SDL_GL_SwapBuffers( ); - - Inc(Counter); - - if (NextTime < SDL_GetTicks()) then - begin - NextTime := SDL_GetTicks() + 2000; - writeln('FPS: ' + floattostr(Counter / 2.0)); - Counter := 0; - end; - - Result := true; -end; - -var - // Flags to pass to SDL_SetVideoMode - videoFlags: integer; - // main loop variable - done: boolean = false; - // used to collect events - event: TSDL_Event; - // this holds some info about our display - videoInfo: PSDL_VideoInfo; - // whether or not the window is active - isActive: boolean = true; - -begin - // initialize SDL - if ( SDL_Init( SDL_INIT_VIDEO or SDL_INIT_TIMER ) < 0 ) then - begin - writeln( ErrOutput, 'Video initialization failed: ' + SDL_GetError() ); - Quit( 1 ); - end; - - // Fetch the video info - videoInfo := SDL_GetVideoInfo( ); - - if ( videoInfo = nil ) then - begin - writeln( ErrOutput, 'Video query failed: ' + SDL_GetError() ); - Quit( 1 ); - end; - - SDL_GL_SetAttribute( SDL_GL_DOUBLEBUFFER, 1 ); // Enable double buffering - - // the flags to pass to SDL_SetVideoMode - videoFlags := SDL_OPENGL; // Enable OpenGL in SDL - videoFlags := videoFlags or SDL_HWPALETTE; // Store the palette in hardware - videoFlags := videoFlags or SDL_RESIZABLE; // Enable window resizing - - // This checks to see if surfaces can be stored in memory - if ( videoInfo^.hw_available <> 0 ) then - videoFlags := videoFlags or SDL_HWSURFACE - else - videoFlags := videoFlags or SDL_SWSURFACE; - - // This checks if hardware blits can be done - if ( videoInfo^.blit_hw <> 0 ) then - videoFlags := videoFlags or SDL_HWACCEL; - - // Sets up OpenGL double buffering - SDL_GL_SetAttribute( SDL_GL_DOUBLEBUFFER, 1 ); - - // get a SDL surface - surface := SDL_SetVideoMode( SCREEN_WIDTH, SCREEN_HEIGHT, SCREEN_BPP, - videoFlags ); - - // Verify there is a surface - if ( surface = nil ) then - begin - writeln( ErrOutput, 'Video mode set failed: ' + SDL_GetError() ); - Quit( 1 ); - end; - - // initialize OpenGL - initGL(); - - // resize the initial window - resizeWindow( SCREEN_WIDTH, SCREEN_HEIGHT ); - - // wait for events - while ( not done ) do - begin - { handle the events in the queue } - - while ( SDL_PollEvent( @event ) <> 0 ) do - begin - case( event.type_ ) of - SDL_ACTIVEEVENT: - begin - // Something's happend with our focus - // If we are iconified, we shouldn't draw the screen - if ( (event.active.state and SDL_APPACTIVE) <> 0 ) then - begin - if ( event.active.gain = 0 ) then - isActive := false - else - isActive := true; - end; - end; - SDL_VIDEORESIZE: - begin - // handle resize event - {$IFDEF UNIX} - surface := SDL_SetVideoMode( event.resize.w, - event.resize.h, - 16, videoFlags ); - if ( surface = nil ) then - begin - writeln( ErrOutput, 'Could not get a surface after resize: ' + SDL_GetError( ) ); - Quit( 1 ); - end; - {$ENDIF} - resizeWindow( event.resize.w, event.resize.h ); - end; - SDL_KEYDOWN: - begin - // handle key presses - handleKeyPress( @event.key.keysym ); - end; - SDL_QUITEV: - begin - // handle quit requests - done := true; - end; - end; - end; - - // draw the scene - if ( isActive ) then - drawGLScene( ); - end; - - // clean ourselves up and exit - Quit( 0 ); -end. diff --git a/src/lib/freetype/demo/engine-test.lpi b/src/lib/freetype/demo/engine-test.lpi deleted file mode 100644 index 45483a56..00000000 --- a/src/lib/freetype/demo/engine-test.lpi +++ /dev/null @@ -1,182 +0,0 @@ -<?xml version="1.0"?>
-<CONFIG>
- <ProjectOptions>
- <PathDelim Value="\"/>
- <Version Value="6"/>
- <General>
- <MainUnit Value="0"/>
- <IconPath Value=".\"/>
- <TargetFileExt Value=""/>
- <ActiveEditorIndexAtStart Value="0"/>
- </General>
- <VersionInfo>
- <ProjectVersion Value=""/>
- <Language Value=""/>
- <CharSet Value=""/>
- </VersionInfo>
- <PublishOptions>
- <Version Value="2"/>
- <DestinationDirectory Value="$(TestDir)\publishedproject\"/>
- <IgnoreBinaries Value="False"/>
- <IncludeFileFilter Value="*.(pas|pp|inc|lfm|lpr|lrs|lpi|lpk|sh|xml)"/>
- <ExcludeFileFilter Value="*.(bak|ppu|ppw|o|so);*~;backup"/>
- </PublishOptions>
- <RunParams>
- <local>
- <FormatVersion Value="1"/>
- <LaunchingApplication PathPlusParams="\usr\X11R6\bin\xterm -T 'Lazarus Run Output' -e $(LazarusDir)\tools\runwait.sh $(TargetCmdLine)"/>
- </local>
- </RunParams>
- <Units Count="16">
- <Unit0> - <Filename Value="engine-test.dpr"/> - <IsPartOfProject Value="True"/> - <CursorPos X="18" Y="25"/> - <TopLine Value="1"/> - <EditorIndex Value="0"/> - <UsageCount Value="72"/> - <Loaded Value="True"/> - </Unit0>
- <Unit1>
- <Filename Value="JEDI-SDL\OpenGL\Pas\opengl12.pas"/>
- <UnitName Value="opengl12"/>
- <CursorPos X="20" Y="9922"/>
- <TopLine Value="9889"/>
- <UsageCount Value="5"/>
- </Unit1>
- <Unit2>
- <Filename Value="JEDI-SDL\SDL\Pas\sdl.pas"/>
- <UnitName Value="sdl"/>
- <CursorPos X="29" Y="3569"/>
- <TopLine Value="3547"/>
- <UsageCount Value="5"/>
- </Unit2>
- <Unit3>
- <Filename Value="FreeType.pas"/>
- <UnitName Value="FreeType"/>
- <CursorPos X="6" Y="1"/>
- <TopLine Value="1"/>
- <UsageCount Value="5"/>
- </Unit3>
- <Unit4>
- <Filename Value="UFreeType.pas"/>
- <UnitName Value="UFreeType"/>
- <CursorPos X="47" Y="111"/>
- <TopLine Value="76"/>
- <UsageCount Value="35"/>
- </Unit4>
- <Unit5>
- <Filename Value="freetype"/>
- <CursorPos X="1" Y="1"/>
- <TopLine Value="1"/>
- <UsageCount Value="8"/>
- <SyntaxHighlighter Value="None"/>
- </Unit5>
- <Unit6>
- <Filename Value="freetype\freetype.pas"/>
- <UnitName Value="freetype"/>
- <CursorPos X="31" Y="807"/>
- <TopLine Value="14"/>
- <UsageCount Value="15"/>
- </Unit6>
- <Unit7>
- <Filename Value="..\..\daten\Projekte\UltraStarDX\trunk\Game\Code\lib\ffmpeg\avcodec.pas"/>
- <UnitName Value="avcodec"/>
- <CursorPos X="1" Y="38"/>
- <TopLine Value="1"/>
- <UsageCount Value="6"/>
- </Unit7>
- <Unit8>
- <Filename Value="..\..\JEDI-SDL\OpenGL\Pas\gl.pas"/>
- <UnitName Value="gl"/>
- <CursorPos X="2" Y="89"/>
- <TopLine Value="69"/>
- <UsageCount Value="9"/>
- </Unit8>
- <Unit9>
- <Filename Value="..\..\ctypes\ctypes.pas"/>
- <UnitName Value="ctypes"/>
- <CursorPos X="8" Y="25"/>
- <TopLine Value="51"/>
- <UsageCount Value="9"/>
- </Unit9>
- <Unit10>
- <Filename Value="..\..\JEDI-SDL\OpenGL\Pas\glu.pas"/>
- <UnitName Value="glu"/>
- <CursorPos X="14" Y="155"/>
- <TopLine Value="135"/>
- <UsageCount Value="9"/>
- </Unit10>
- <Unit11>
- <Filename Value="..\..\JEDI-SDL\SDL\Pas\sdl.pas"/>
- <UnitName Value="sdl"/>
- <CursorPos X="12" Y="1418"/>
- <TopLine Value="1398"/>
- <UsageCount Value="9"/>
- </Unit11>
- <Unit12>
- <Filename Value="..\freetype.pas"/>
- <UnitName Value="freetype"/>
- <CursorPos X="3" Y="1985"/>
- <TopLine Value="1965"/>
- <UsageCount Value="10"/>
- </Unit12>
- <Unit13>
- <Filename Value="C:\Programme\lazarus\fpc\2.2.0\source\rtl\objpas\classes\classesh.inc"/>
- <CursorPos X="13" Y="26"/>
- <TopLine Value="6"/>
- <UsageCount Value="13"/>
- </Unit13>
- <Unit14>
- <Filename Value="C:\Programme\lazarus\fpc\2.2.0\source\rtl\objpas\types.pp"/>
- <UnitName Value="types"/>
- <CursorPos X="7" Y="105"/>
- <TopLine Value="73"/>
- <UsageCount Value="12"/>
- </Unit14>
- <Unit15>
- <Filename Value="UFont.pas"/>
- <UnitName Value="UFont"/>
- <CursorPos X="15" Y="1752"/>
- <TopLine Value="1734"/>
- <UsageCount Value="10"/> - </Unit15> - </Units> - <JumpHistory Count="2" HistoryIndex="1"> - <Position1> - <Filename Value="engine-test.dpr"/> - <Caret Line="52" Column="10" TopLine="37"/> - </Position1> - <Position2> - <Filename Value="engine-test.dpr"/> - <Caret Line="1" Column="1" TopLine="1"/> - </Position2> - </JumpHistory> - </ProjectOptions> - <CompilerOptions> - <Version Value="8"/> - <PathDelim Value="\"/>
- <SearchPaths>
- <IncludeFiles Value="..\..\JEDI-SDL\SDL\Pas\"/>
- </SearchPaths>
- <Other>
- <CompilerPath Value="$(CompPath)"/>
- </Other>
- </CompilerOptions>
- <Debugging>
- <BreakPoints Count="1">
- <Item1>
- <Source Value="lesson43.dpr"/>
- <Line Value="138"/>
- </Item1>
- </BreakPoints>
- <Exceptions Count="2">
- <Item1>
- <Name Value="ECodetoolError"/>
- </Item1>
- <Item2>
- <Name Value="EFOpenError"/>
- </Item2>
- </Exceptions>
- </Debugging>
-</CONFIG>
diff --git a/src/lib/freetype/demo/nehe/lesson43.bdsproj b/src/lib/freetype/demo/nehe/lesson43.bdsproj deleted file mode 100644 index 9d3851c4..00000000 --- a/src/lib/freetype/demo/nehe/lesson43.bdsproj +++ /dev/null @@ -1,175 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?>
-<BorlandProject>
- <PersonalityInfo>
- <Option>
- <Option Name="Personality">Delphi.Personality</Option>
- <Option Name="ProjectType">VCLApplication</Option>
- <Option Name="Version">1.0</Option>
- <Option Name="GUID">{3306FA70-362B-4647-A969-BCEA731F436C}</Option>
- </Option>
- </PersonalityInfo>
- <Delphi.Personality>
- <Source>
- <Source Name="MainSource">lesson43.dpr</Source>
- </Source>
- <FileVersion>
- <FileVersion Name="Version">7.0</FileVersion>
- </FileVersion>
- <Compiler>
- <Compiler Name="A">8</Compiler>
- <Compiler Name="B">0</Compiler>
- <Compiler Name="C">1</Compiler>
- <Compiler Name="D">1</Compiler>
- <Compiler Name="E">0</Compiler>
- <Compiler Name="F">0</Compiler>
- <Compiler Name="G">1</Compiler>
- <Compiler Name="H">1</Compiler>
- <Compiler Name="I">1</Compiler>
- <Compiler Name="J">0</Compiler>
- <Compiler Name="K">0</Compiler>
- <Compiler Name="L">1</Compiler>
- <Compiler Name="M">0</Compiler>
- <Compiler Name="N">1</Compiler>
- <Compiler Name="O">1</Compiler>
- <Compiler Name="P">1</Compiler>
- <Compiler Name="Q">0</Compiler>
- <Compiler Name="R">0</Compiler>
- <Compiler Name="S">0</Compiler>
- <Compiler Name="T">0</Compiler>
- <Compiler Name="U">0</Compiler>
- <Compiler Name="V">1</Compiler>
- <Compiler Name="W">0</Compiler>
- <Compiler Name="X">1</Compiler>
- <Compiler Name="Y">1</Compiler>
- <Compiler Name="Z">1</Compiler>
- <Compiler Name="ShowHints">True</Compiler>
- <Compiler Name="ShowWarnings">True</Compiler>
- <Compiler Name="UnitAliases">WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;</Compiler>
- <Compiler Name="NamespacePrefix"></Compiler>
- <Compiler Name="GenerateDocumentation">False</Compiler>
- <Compiler Name="DefaultNamespace"></Compiler>
- <Compiler Name="SymbolDeprecated">True</Compiler>
- <Compiler Name="SymbolLibrary">True</Compiler>
- <Compiler Name="SymbolPlatform">True</Compiler>
- <Compiler Name="SymbolExperimental">True</Compiler>
- <Compiler Name="UnitLibrary">True</Compiler>
- <Compiler Name="UnitPlatform">True</Compiler>
- <Compiler Name="UnitDeprecated">True</Compiler>
- <Compiler Name="UnitExperimental">True</Compiler>
- <Compiler Name="HResultCompat">True</Compiler>
- <Compiler Name="HidingMember">True</Compiler>
- <Compiler Name="HiddenVirtual">True</Compiler>
- <Compiler Name="Garbage">True</Compiler>
- <Compiler Name="BoundsError">True</Compiler>
- <Compiler Name="ZeroNilCompat">True</Compiler>
- <Compiler Name="StringConstTruncated">True</Compiler>
- <Compiler Name="ForLoopVarVarPar">True</Compiler>
- <Compiler Name="TypedConstVarPar">True</Compiler>
- <Compiler Name="AsgToTypedConst">True</Compiler>
- <Compiler Name="CaseLabelRange">True</Compiler>
- <Compiler Name="ForVariable">True</Compiler>
- <Compiler Name="ConstructingAbstract">True</Compiler>
- <Compiler Name="ComparisonFalse">True</Compiler>
- <Compiler Name="ComparisonTrue">True</Compiler>
- <Compiler Name="ComparingSignedUnsigned">True</Compiler>
- <Compiler Name="CombiningSignedUnsigned">True</Compiler>
- <Compiler Name="UnsupportedConstruct">True</Compiler>
- <Compiler Name="FileOpen">True</Compiler>
- <Compiler Name="FileOpenUnitSrc">True</Compiler>
- <Compiler Name="BadGlobalSymbol">True</Compiler>
- <Compiler Name="DuplicateConstructorDestructor">True</Compiler>
- <Compiler Name="InvalidDirective">True</Compiler>
- <Compiler Name="PackageNoLink">True</Compiler>
- <Compiler Name="PackageThreadVar">True</Compiler>
- <Compiler Name="ImplicitImport">True</Compiler>
- <Compiler Name="HPPEMITIgnored">True</Compiler>
- <Compiler Name="NoRetVal">True</Compiler>
- <Compiler Name="UseBeforeDef">True</Compiler>
- <Compiler Name="ForLoopVarUndef">True</Compiler>
- <Compiler Name="UnitNameMismatch">True</Compiler>
- <Compiler Name="NoCFGFileFound">True</Compiler>
- <Compiler Name="ImplicitVariants">True</Compiler>
- <Compiler Name="UnicodeToLocale">True</Compiler>
- <Compiler Name="LocaleToUnicode">True</Compiler>
- <Compiler Name="ImagebaseMultiple">True</Compiler>
- <Compiler Name="SuspiciousTypecast">True</Compiler>
- <Compiler Name="PrivatePropAccessor">True</Compiler>
- <Compiler Name="UnsafeType">False</Compiler>
- <Compiler Name="UnsafeCode">False</Compiler>
- <Compiler Name="UnsafeCast">False</Compiler>
- <Compiler Name="OptionTruncated">True</Compiler>
- <Compiler Name="WideCharReduced">True</Compiler>
- <Compiler Name="DuplicatesIgnored">True</Compiler>
- <Compiler Name="UnitInitSeq">True</Compiler>
- <Compiler Name="LocalPInvoke">True</Compiler>
- <Compiler Name="MessageDirective">True</Compiler>
- <Compiler Name="CodePage"></Compiler>
- </Compiler>
- <Linker>
- <Linker Name="MapFile">0</Linker>
- <Linker Name="OutputObjs">0</Linker>
- <Linker Name="GenerateHpps">False</Linker>
- <Linker Name="ConsoleApp">1</Linker>
- <Linker Name="DebugInfo">False</Linker>
- <Linker Name="RemoteSymbols">False</Linker>
- <Linker Name="GenerateDRC">False</Linker>
- <Linker Name="MinStackSize">16384</Linker>
- <Linker Name="MaxStackSize">1048576</Linker>
- <Linker Name="ImageBase">4194304</Linker>
- <Linker Name="ExeDescription"></Linker>
- </Linker>
- <Directories>
- <Directories Name="OutputDir"></Directories>
- <Directories Name="UnitOutputDir"></Directories>
- <Directories Name="PackageDLLOutputDir"></Directories>
- <Directories Name="PackageDCPOutputDir"></Directories>
- <Directories Name="SearchPath">../../../JEDI-SDL/SDL/Pas</Directories>
- <Directories Name="Packages"></Directories>
- <Directories Name="Conditionals"></Directories>
- <Directories Name="DebugSourceDirs"></Directories>
- <Directories Name="UsePackages">False</Directories>
- </Directories>
- <Parameters>
- <Parameters Name="RunParams"></Parameters>
- <Parameters Name="HostApplication"></Parameters>
- <Parameters Name="Launcher"></Parameters>
- <Parameters Name="UseLauncher">False</Parameters>
- <Parameters Name="DebugCWD"></Parameters>
- <Parameters Name="Debug Symbols Search Path"></Parameters>
- <Parameters Name="LoadAllSymbols">True</Parameters>
- <Parameters Name="LoadUnspecifiedSymbols">False</Parameters>
- </Parameters>
- <Language>
- <Language Name="ActiveLang"></Language>
- <Language Name="ProjectLang">$00000000</Language>
- <Language Name="RootDir"></Language>
- </Language>
- <VersionInfo>
- <VersionInfo Name="IncludeVerInfo">False</VersionInfo>
- <VersionInfo Name="AutoIncBuild">False</VersionInfo>
- <VersionInfo Name="MajorVer">1</VersionInfo>
- <VersionInfo Name="MinorVer">0</VersionInfo>
- <VersionInfo Name="Release">0</VersionInfo>
- <VersionInfo Name="Build">0</VersionInfo>
- <VersionInfo Name="Debug">False</VersionInfo>
- <VersionInfo Name="PreRelease">False</VersionInfo>
- <VersionInfo Name="Special">False</VersionInfo>
- <VersionInfo Name="Private">False</VersionInfo>
- <VersionInfo Name="DLL">False</VersionInfo>
- <VersionInfo Name="Locale">1031</VersionInfo>
- <VersionInfo Name="CodePage">1252</VersionInfo>
- </VersionInfo>
- <VersionInfoKeys>
- <VersionInfoKeys Name="CompanyName"></VersionInfoKeys>
- <VersionInfoKeys Name="FileDescription"></VersionInfoKeys>
- <VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys>
- <VersionInfoKeys Name="InternalName"></VersionInfoKeys>
- <VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys>
- <VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys>
- <VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys>
- <VersionInfoKeys Name="ProductName"></VersionInfoKeys>
- <VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys>
- <VersionInfoKeys Name="Comments"></VersionInfoKeys>
- </VersionInfoKeys>
- </Delphi.Personality>
-</BorlandProject>
diff --git a/src/lib/freetype/demo/nehe/lesson43.dpr b/src/lib/freetype/demo/nehe/lesson43.dpr deleted file mode 100644 index fe296fb5..00000000 --- a/src/lib/freetype/demo/nehe/lesson43.dpr +++ /dev/null @@ -1,289 +0,0 @@ -program lesson43; -(* - * This code was created by Jeff Molofee '99 - * (ported to Linux/SDL by Ti Leggett '01) - * - * If you've found this code useful, please let me know. - * - * Visit Jeff at http://nehe.gamedev.net/ - * - * or for port-specific comments, questions, bugreports etc. - * email to leggett@eecs.tulane.edu - *) - -{$IFDEF FPC} - {$mode delphi}{$H+} -{$ENDIF} - -{$APPTYPE Console} - -uses - moduleloader in '../../../JEDI-SDL/SDL/Pas/moduleloader.pas', - SDL in '../../../JEDI-SDL/SDL/Pas/sdl.pas', - gl in '../../../JEDI-SDL/OpenGL/Pas/gl.pas', - glu in '../../../JEDI-SDL/OpenGL/Pas/glu.pas', - ctypes in '../../../ctypes/ctypes.pas', - FreeType in '../../freetype.pas', - UFreeType in 'UFreeType.pas', - math, - sysutils; - -const - // screen width, height, and bit depth - SCREEN_WIDTH = 640; - SCREEN_HEIGHT = 480; - SCREEN_BPP = 16; - -var - our_font: TFontData; - // This is our SDL surface - surface: PSDL_Surface; - cnt1, cnt2: GLfloat; - -(* function to release/destroy our resources and restoring the old desktop *) -procedure Quit(returnCode: integer); -begin - // clean up the window - SDL_Quit( ); - - // and exit appropriately - Halt( returnCode ); -end; - -(* function to reset our viewport after a window resize *) -function resizeWindow(width: integer; height: integer): boolean; -var - // Height / width ration - ratio: GLfloat; -begin - // Protect against a divide by zero - if ( height = 0 ) then - height := 1; - - ratio := width / height; - - // Setup our viewport. - glViewport( 0, 0, GLsizei(width), GLsizei(height) ); - - // change to the projection matrix and set our viewing volume. - glMatrixMode( GL_PROJECTION ); - glLoadIdentity( ); - - // Set our perspective - gluPerspective( 45.0, ratio, 0.1, 100.0 ); - - // Make sure we're chaning the model view and not the projection - glMatrixMode( GL_MODELVIEW ); - - // Reset The View - glLoadIdentity( ); - - Result := true; -end; - -(* function to handle key press events *) -procedure handleKeyPress(keysym: PSDL_keysym); -begin - case ( keysym^.sym ) of - SDLK_ESCAPE: - begin - // ESC key was pressed - Quit( 0 ); - end; - SDLK_F1: - begin - // F1 key was pressed - // this toggles fullscreen mode - SDL_WM_ToggleFullScreen( surface ); - end; - end; -end; - -(* general OpenGL initialization function *) -function initGL(): boolean; -begin - // Enable smooth shading - glShadeModel( GL_SMOOTH ); - - // Set the background black - glClearColor( 0.0, 0.0, 0.0, 0.0 ); - - // Depth buffer setup - glClearDepth( 1.0 ); - - // Enables Depth Testing - glEnable( GL_DEPTH_TEST ); - - // The Type Of Depth Test To Do - glDepthFunc( GL_LEQUAL ); - - // Really Nice Perspective Calculations - glHint( GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST ); - - our_font := TFontData.Create('Test.ttf', 16); - - Result := true; -end; - -(* Here goes our drawing code *) -function drawGLScene(): boolean; -begin - glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT); // Clear Screen And Depth Buffer - glLoadIdentity(); // Reset The Current Modelview Matrix - glTranslatef(0.0, 0.0, -1.0); // Move One Unit Into The Screen - - // Blue Text - glColor3ub(0, 0, $ff); - - // Position The WGL Text On The Screen - glRasterPos2f(-0.40, 0.35); - - // Here We Print Some Text Using Our FreeType Font - // The only really important command is the actual print() call, - // but for the sake of making the results a bit more interesting - // I have put in some code to rotate and scale the text. - - // Red text - glColor3ub($ff, 0, 0); - - glPushMatrix(); - glLoadIdentity(); - glRotatef(cnt1, 0, 0,1); - glScalef(1, 0.8 + 0.3*cos(cnt1/5) ,1); - glTranslatef(-180, 0, 0); - TFreeType.print(our_font, 320, 240, 'Active FreeType Text - ' + FloatToStr(cnt1)); - glPopMatrix(); - - //Uncomment this to test out print's ability to handle newlines. - //TFreeType.print(our_font, 320, 200, 'Here'#13'there'#13'be'#13#13'newlines'#13'.'); - - cnt1 := cnt1 + 0.051; // Increase The First Counter - cnt2 := cnt2 + 0.005; // Increase The First Counter - - SDL_GL_SwapBuffers( ); - - Result := true; -end; - -var - // Flags to pass to SDL_SetVideoMode - videoFlags: integer; - // main loop variable - done: boolean = false; - // used to collect events - event: TSDL_Event; - // this holds some info about our display - videoInfo: PSDL_VideoInfo; - // whether or not the window is active - isActive: boolean = true; - -begin - // initialize SDL - if ( SDL_Init( SDL_INIT_VIDEO ) < 0 ) then - begin - writeln( ErrOutput, 'Video initialization failed: ' + SDL_GetError() ); - Quit( 1 ); - end; - - // Fetch the video info - videoInfo := SDL_GetVideoInfo( ); - - if ( videoInfo = nil ) then - begin - writeln( ErrOutput, 'Video query failed: ' + SDL_GetError() ); - Quit( 1 ); - end; - - SDL_GL_SetAttribute( SDL_GL_DOUBLEBUFFER, 1 ); // Enable double buffering - - // the flags to pass to SDL_SetVideoMode - videoFlags := SDL_OPENGL; // Enable OpenGL in SDL - videoFlags := videoFlags or SDL_HWPALETTE; // Store the palette in hardware - videoFlags := videoFlags or SDL_RESIZABLE; // Enable window resizing - - // This checks to see if surfaces can be stored in memory - if ( videoInfo^.hw_available <> 0 ) then - videoFlags := videoFlags or SDL_HWSURFACE - else - videoFlags := videoFlags or SDL_SWSURFACE; - - // This checks if hardware blits can be done - if ( videoInfo^.blit_hw <> 0 ) then - videoFlags := videoFlags or SDL_HWACCEL; - - // Sets up OpenGL double buffering - SDL_GL_SetAttribute( SDL_GL_DOUBLEBUFFER, 1 ); - - // get a SDL surface - surface := SDL_SetVideoMode( SCREEN_WIDTH, SCREEN_HEIGHT, SCREEN_BPP, - videoFlags ); - - // Verify there is a surface - if ( surface = nil ) then - begin - writeln( ErrOutput, 'Video mode set failed: ' + SDL_GetError() ); - Quit( 1 ); - end; - - // initialize OpenGL - initGL(); - - // resize the initial window - resizeWindow( SCREEN_WIDTH, SCREEN_HEIGHT ); - - // wait for events - while ( not done ) do - begin - { handle the events in the queue } - - while ( SDL_PollEvent( @event ) <> 0 ) do - begin - case( event.type_ ) of - SDL_ACTIVEEVENT: - begin - // Something's happend with our focus - // If we are iconified, we shouldn't draw the screen - if ( (event.active.state and SDL_APPACTIVE) <> 0 ) then - begin - if ( event.active.gain = 0 ) then - isActive := false - else - isActive := true; - end; - end; - SDL_VIDEORESIZE: - begin - // handle resize event - {$IFDEF UNIX} - surface := SDL_SetVideoMode( event.resize.w, - event.resize.h, - 16, videoFlags ); - if ( surface = nil ) then - begin - writeln( ErrOutput, 'Could not get a surface after resize: ' + SDL_GetError( ) ); - Quit( 1 ); - end; - {$ENDIF} - resizeWindow( event.resize.w, event.resize.h ); - end; - SDL_KEYDOWN: - begin - // handle key presses - handleKeyPress( @event.key.keysym ); - end; - SDL_QUITEV: - begin - // handle quit requests - done := true; - end; - end; - end; - - // draw the scene - if ( isActive ) then - drawGLScene( ); - end; - - // clean ourselves up and exit - Quit( 0 ); -end. diff --git a/src/lib/freetype/demo/nehe/readme.txt b/src/lib/freetype/demo/nehe/readme.txt deleted file mode 100644 index 1186ef0e..00000000 --- a/src/lib/freetype/demo/nehe/readme.txt +++ /dev/null @@ -1,9 +0,0 @@ -Pascal conversion of the NeHe tutorial lesson 43 (Tutorial on using FreeType Fonts in OpenGL) -http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=43 - -Put the following DLLs into this directory: -- libfreetype-6.dll -- SDL.dll -- zlib1.dll - -and copy a TrueType font to this directory and rename it into "Test.ttf". diff --git a/src/lib/freetype/demo/switches.inc b/src/lib/freetype/demo/switches.inc deleted file mode 100644 index 0a940004..00000000 --- a/src/lib/freetype/demo/switches.inc +++ /dev/null @@ -1 +0,0 @@ -{$DEFINE FREETYPE_DEMO} diff --git a/src/lib/freetype/ftconfig.inc b/src/lib/freetype/ftconfig.inc deleted file mode 100644 index 100fb2e0..00000000 --- a/src/lib/freetype/ftconfig.inc +++ /dev/null @@ -1,35 +0,0 @@ -(***************************************************************************) -(* *) -(* ftconfig.h *) -(* *) -(* ANSI-specific configuration file (specification only). *) -(* *) -(* Copyright 1996-2001, 2002, 2003, 2004, 2006, 2007 by *) -(* David Turner, Robert Wilhelm, and Werner Lemberg. *) -(* *) -(* This file is part of the FreeType project, and may only be used, *) -(* modified, and distributed under the terms of the FreeType project *) -(* license, LICENSE.TXT. By continuing to use, modify, or distribute *) -(* this file you indicate that you have read the license and *) -(* understand and accept it fully. *) -(* *) -(***************************************************************************) -(***************************************************************************) -(* Pascal port by the UltraStar Deluxe Team *) -(***************************************************************************) - -{$IFDEF TYPE_DECL} - - (*************************************************************************) - (* *) - (* IntN types *) - (* *) - (* Used to guarantee the size of some specific integers. *) - (* *) - FT_Int16 = cint16; - FT_UInt16 = cuint16; - FT_Int32 = cint32; - FT_UInt32 = cuint32; - -{$ENDIF TYPE_DECL} - diff --git a/src/lib/freetype/ftglyph.inc b/src/lib/freetype/ftglyph.inc deleted file mode 100644 index 0d4acc99..00000000 --- a/src/lib/freetype/ftglyph.inc +++ /dev/null @@ -1,435 +0,0 @@ -(***************************************************************************) -(* *) -(* ftglyph.h *) -(* *) -(* FreeType convenience functions to handle glyphs (specification). *) -(* *) -(* Copyright 1996-2001, 2002, 2003, 2006 by *) -(* David Turner, Robert Wilhelm, and Werner Lemberg. *) -(* *) -(* This file is part of the FreeType project, and may only be used, *) -(* modified, and distributed under the terms of the FreeType project *) -(* license, LICENSE.TXT. By continuing to use, modify, or distribute *) -(* this file you indicate that you have read the license and *) -(* understand and accept it fully. *) -(* *) -(***************************************************************************) -(***************************************************************************) -(* Pascal port by the UltraStar Deluxe Team *) -(***************************************************************************) - - - (*************************************************************************) - (* *) - (* This file contains the definition of several convenience functions *) - (* that can be used by client applications to easily retrieve glyph *) - (* bitmaps and outlines from a given face. *) - (* *) - (* These functions should be optional if you are writing a font server *) - (* or text layout engine on top of FreeType. However, they are pretty *) - (* handy for many other simple uses of the library. *) - (* *) - (*************************************************************************) - - (*************************************************************************) - (* *) - (* <Section> *) - (* glyph_management *) - (* *) - (* <Title> *) - (* Glyph Management *) - (* *) - (* <Abstract> *) - (* Generic interface to manage individual glyph data. *) - (* *) - (* <Description> *) - (* This section contains definitions used to manage glyph data *) - (* through generic FT_Glyph objects. Each of them can contain a *) - (* bitmap, a vector outline, or even images in other formats. *) - (* *) - (*************************************************************************) - -{$IFDEF TYPE_DECL} - - (* forward declaration to a private type *) - PFT_Glyph_Class = Pointer; - - - (*************************************************************************) - (* *) - (* <Type> *) - (* FT_Glyph *) - (* *) - (* <Description> *) - (* Handle to an object used to model generic glyph images. It is a *) - (* pointer to the @FT_GlyphRec structure and can contain a glyph *) - (* bitmap or pointer. *) - (* *) - (* <Note> *) - (* Glyph objects are not owned by the library. You must thus release *) - (* them manually (through @FT_Done_Glyph) _before_ calling *) - (* @FT_Done_FreeType. *) - (* *) - FT_Glyph = ^FT_GlyphRec; - - (*************************************************************************) - (* *) - (* <Struct> *) - (* FT_GlyphRec *) - (* *) - (* <Description> *) - (* The root glyph structure contains a given glyph image plus its *) - (* advance width in 16.16 fixed float format. *) - (* *) - (* <Fields> *) - (* library :: A handle to the FreeType library object. *) - (* *) - (* clazz :: A pointer to the glyph's class. Private. *) - (* *) - (* format :: The format of the glyph's image. *) - (* *) - (* advance :: A 16.16 vector that gives the glyph's advance width. *) - (* *) - FT_GlyphRec = record - library_: FT_Library; - clazz: PFT_Glyph_Class; - format: FT_Glyph_Format; - advance: FT_Vector; - end; - - - (*************************************************************************) - (* *) - (* <Type> *) - (* FT_BitmapGlyph *) - (* *) - (* <Description> *) - (* A handle to an object used to model a bitmap glyph image. This is *) - (* a sub-class of @FT_Glyph, and a pointer to @FT_BitmapGlyphRec. *) - (* *) - FT_BitmapGlyph = ^FT_BitmapGlyphRec; - - (*************************************************************************) - (* *) - (* <Struct> *) - (* FT_BitmapGlyphRec *) - (* *) - (* <Description> *) - (* A structure used for bitmap glyph images. This really is a *) - (* `sub-class' of `FT_GlyphRec'. *) - (* *) - (* <Fields> *) - (* root :: The root FT_Glyph fields. *) - (* *) - (* left :: The left-side bearing, i.e., the horizontal distance *) - (* from the current pen position to the left border of the *) - (* glyph bitmap. *) - (* *) - (* top :: The top-side bearing, i.e., the vertical distance from *) - (* the current pen position to the top border of the glyph *) - (* bitmap. This distance is positive for upwards-y! *) - (* *) - (* bitmap :: A descriptor for the bitmap. *) - (* *) - (* <Note> *) - (* You can typecast FT_Glyph to FT_BitmapGlyph if you have *) - (* glyph->format == FT_GLYPH_FORMAT_BITMAP. This lets you access *) - (* the bitmap's contents easily. *) - (* *) - (* The corresponding pixel buffer is always owned by the BitmapGlyph *) - (* and is thus created and destroyed with it. *) - (* *) - FT_BitmapGlyphRec = record - root: FT_GlyphRec; - left: FT_Int; - top: FT_Int; - bitmap: FT_Bitmap; - end; - - - (*************************************************************************) - (* *) - (* <Type> *) - (* FT_OutlineGlyph *) - (* *) - (* <Description> *) - (* A handle to an object used to model an outline glyph image. This *) - (* is a sub-class of @FT_Glyph, and a pointer to @FT_OutlineGlyphRec. *) - (* *) - FT_OutlineGlyph = ^FT_OutlineGlyphRec; - - - (*************************************************************************) - (* *) - (* <Struct> *) - (* FT_OutlineGlyphRec *) - (* *) - (* <Description> *) - (* A structure used for outline (vectorial) glyph images. This *) - (* really is a `sub-class' of `FT_GlyphRec'. *) - (* *) - (* <Fields> *) - (* root :: The root FT_Glyph fields. *) - (* *) - (* outline :: A descriptor for the outline. *) - (* *) - (* <Note> *) - (* You can typecast FT_Glyph to FT_OutlineGlyph if you have *) - (* glyph->format == FT_GLYPH_FORMAT_OUTLINE. This lets you access *) - (* the outline's content easily. *) - (* *) - (* As the outline is extracted from a glyph slot, its coordinates are *) - (* expressed normally in 26.6 pixels, unless the flag *) - (* FT_LOAD_NO_SCALE was used in FT_Load_Glyph() or FT_Load_Char(). *) - (* *) - (* The outline's tables are always owned by the object and are *) - (* destroyed with it. *) - (* *) - FT_OutlineGlyphRec = record - root: FT_GlyphRec; - outline: FT_Outline; - end; - -{$ELSE TYPE_DECL} - - (*************************************************************************) - (* *) - (* <Function> *) - (* FT_Get_Glyph *) - (* *) - (* <Description> *) - (* A function used to extract a glyph image from a slot. *) - (* *) - (* <Input> *) - (* slot :: A handle to the source glyph slot. *) - (* *) - (* <Output> *) - (* aglyph :: A handle to the glyph object. *) - (* *) - (* <Return> *) - (* FreeType error code. 0 means success. *) - (* *) - function FT_Get_Glyph( - slot: FT_GlyphSlot; - out aglyph: FT_Glyph ): FT_Error; - cdecl; external ft_lib name 'FT_Get_Glyph'; - - (*************************************************************************) - (* *) - (* <Function> *) - (* FT_Glyph_Copy *) - (* *) - (* <Description> *) - (* A function used to copy a glyph image. Note that the created *) - (* @FT_Glyph object must be released with @FT_Done_Glyph. *) - (* *) - (* <Input> *) - (* source :: A handle to the source glyph object. *) - (* *) - (* <Output> *) - (* target :: A handle to the target glyph object. 0~in case of *) - (* error. *) - (* *) - (* <Return> *) - (* FreeType error code. 0~means success. *) - (* *) - function FT_Glyph_Copy(source: FT_Glyph; - var target: FT_Glyph ): FT_Error; - cdecl; external ft_lib name 'FT_Glyph_Copy'; - -{$ENDIF TYPE_DECL} -{$IFDEF TYPE_DECL} - - (*************************************************************************) - (* *) - (* <Enum> *) - (* FT_Glyph_BBox_Mode *) - (* *) - (* <Description> *) - (* The mode how the values of @FT_Glyph_Get_CBox are returned. *) - (* *) - (* <Values> *) - (* FT_GLYPH_BBOX_UNSCALED :: *) - (* Return unscaled font units. *) - (* *) - (* FT_GLYPH_BBOX_SUBPIXELS :: *) - (* Return unfitted 26.6 coordinates. *) - (* *) - (* FT_GLYPH_BBOX_GRIDFIT :: *) - (* Return grid-fitted 26.6 coordinates. *) - (* *) - (* FT_GLYPH_BBOX_TRUNCATE :: *) - (* Return coordinates in integer pixels. *) - (* *) - (* FT_GLYPH_BBOX_PIXELS :: *) - (* Return grid-fitted pixel coordinates. *) - (* *) - FT_Glyph_BBox_Mode = cint; -{$ELSE TYPE_DECL} -const - FT_GLYPH_BBOX_UNSCALED = 0; - FT_GLYPH_BBOX_SUBPIXELS = 0; - FT_GLYPH_BBOX_GRIDFIT = 1; - FT_GLYPH_BBOX_TRUNCATE = 2; - FT_GLYPH_BBOX_PIXELS = 3; - - - (*************************************************************************) - (* *) - (* <Function> *) - (* FT_Glyph_Get_CBox *) - (* *) - (* <Description> *) - (* Return a glyph's `control box'. The control box encloses all the *) - (* outline's points, including Bézier control points. Though it *) - (* coincides with the exact bounding box for most glyphs, it can be *) - (* slightly larger in some situations (like when rotating an outline *) - (* which contains Bézier outside arcs). *) - (* *) - (* Computing the control box is very fast, while getting the bounding *) - (* box can take much more time as it needs to walk over all segments *) - (* and arcs in the outline. To get the latter, you can use the *) - (* `ftbbox' component which is dedicated to this single task. *) - (* *) - (* <Input> *) - (* glyph :: A handle to the source glyph object. *) - (* *) - (* mode :: The mode which indicates how to interpret the returned *) - (* bounding box values. *) - (* *) - (* <Output> *) - (* acbox :: The glyph coordinate bounding box. Coordinates are *) - (* expressed in 1/64th of pixels if it is grid-fitted. *) - (* *) - (* <Note> *) - (* Coordinates are relative to the glyph origin, using the Y-upwards *) - (* convention. *) - (* *) - (* If the glyph has been loaded with @FT_LOAD_NO_SCALE, `bbox_mode' *) - (* must be set to @FT_GLYPH_BBOX_UNSCALED to get unscaled font *) - (* units in 26.6 pixel format. The value @FT_GLYPH_BBOX_SUBPIXELS *) - (* is another name for this constant. *) - (* *) - (* Note that the maximum coordinates are exclusive, which means that *) - (* one can compute the width and height of the glyph image (be it in *) - (* integer or 26.6 pixels) as: *) - (* *) - (* { *) - (* width = bbox.xMax - bbox.xMin; *) - (* height = bbox.yMax - bbox.yMin; *) - (* } *) - (* *) - (* Note also that for 26.6 coordinates, if `bbox_mode' is set to *) - (* @FT_GLYPH_BBOX_GRIDFIT, the coordinates will also be grid-fitted, *) - (* which corresponds to: *) - (* *) - (* { *) - (* bbox.xMin = FLOOR(bbox.xMin); *) - (* bbox.yMin = FLOOR(bbox.yMin); *) - (* bbox.xMax = CEILING(bbox.xMax); *) - (* bbox.yMax = CEILING(bbox.yMax); *) - (* } *) - (* *) - (* To get the bbox in pixel coordinates, set `bbox_mode' to *) - (* @FT_GLYPH_BBOX_TRUNCATE. *) - (* *) - (* To get the bbox in grid-fitted pixel coordinates, set `bbox_mode' *) - (* to @FT_GLYPH_BBOX_PIXELS. *) - (* *) - procedure FT_Glyph_Get_CBox( glyph: FT_Glyph; - bbox_mode: FT_UInt; - out acbox: FT_BBox ); - cdecl; external ft_lib name 'FT_Glyph_Get_CBox'; - - - (*************************************************************************) - (* *) - (* <Function> *) - (* FT_Glyph_To_Bitmap *) - (* *) - (* <Description> *) - (* Converts a given glyph object to a bitmap glyph object. *) - (* *) - (* <InOut> *) - (* the_glyph :: A pointer to a handle to the target glyph. *) - (* *) - (* <Input> *) - (* render_mode :: An enumeration that describe how the data is *) - (* rendered. *) - (* *) - (* origin :: A pointer to a vector used to translate the glyph *) - (* image before rendering. Can be 0 (if no *) - (* translation). The origin is expressed in *) - (* 26.6 pixels. *) - (* *) - (* destroy :: A boolean that indicates that the original glyph *) - (* image should be destroyed by this function. It is *) - (* never destroyed in case of error. *) - (* *) - (* <Return> *) - (* FreeType error code. 0 means success. *) - (* *) - (* <Note> *) - (* The glyph image is translated with the `origin' vector before *) - (* rendering. *) - (* *) - (* The first parameter is a pointer to a FT_Glyph handle, that will *) - (* be replaced by this function. Typically, you would use (omitting *) - (* error handling): *) - (* *) - (* *) - (* { *) - (* FT_Glyph glyph; *) - (* FT_BitmapGlyph glyph_bitmap; *) - (* *) - (* *) - (* // load glyph *) - (* error = FT_Load_Char( face, glyph_index, FT_LOAD_DEFAUT ); *) - (* *) - (* // extract glyph image *) - (* error = FT_Get_Glyph( face->glyph, &glyph ); *) - (* *) - (* // convert to a bitmap (default render mode + destroy old) *) - (* if ( glyph->format != FT_GLYPH_FORMAT_BITMAP ) *) - (* { *) - (* error = FT_Glyph_To_Bitmap( &glyph, FT_RENDER_MODE_DEFAULT, *) - (* 0, 1 ); *) - (* if ( error ) // glyph unchanged *) - (* ... *) - (* } *) - (* *) - (* // access bitmap content by typecasting *) - (* glyph_bitmap = (FT_BitmapGlyph)glyph; *) - (* *) - (* // do funny stuff with it, like blitting/drawing *) - (* ... *) - (* *) - (* // discard glyph image (bitmap or not) *) - (* FT_Done_Glyph( glyph ); *) - (* } *) - (* *) - (* *) - (* This function does nothing if the glyph format isn't scalable. *) - (* *) - function FT_Glyph_To_Bitmap(var the_glyph: FT_Glyph; - render_mode: FT_Render_Mode; - origin: PFT_Vector; - destroy: FT_Bool ): FT_Error; - cdecl; external ft_lib name 'FT_Glyph_To_Bitmap'; - - - (*************************************************************************) - (* *) - (* <Function> *) - (* FT_Done_Glyph *) - (* *) - (* <Description> *) - (* Destroys a given glyph. *) - (* *) - (* <Input> *) - (* glyph :: A handle to the target glyph object. *) - (* *) - procedure FT_Done_Glyph( glyph: FT_Glyph ); - cdecl; external ft_lib name 'FT_Done_Glyph'; - -{$ENDIF TYPE_DECL} diff --git a/src/lib/freetype/ftimage.inc b/src/lib/freetype/ftimage.inc deleted file mode 100644 index 9255c422..00000000 --- a/src/lib/freetype/ftimage.inc +++ /dev/null @@ -1,803 +0,0 @@ -(***************************************************************************) -(* *) -(* ftimage.h *) -(* *) -(* FreeType glyph image formats and default raster interface *) -(* (specification). *) -(* *) -(* Copyright 1996-2001, 2002, 2003, 2004, 2005, 2006, 2007 by *) -(* David Turner, Robert Wilhelm, and Werner Lemberg. *) -(* *) -(* This file is part of the FreeType project, and may only be used, *) -(* modified, and distributed under the terms of the FreeType project *) -(* license, LICENSE.TXT. By continuing to use, modify, or distribute *) -(* this file you indicate that you have read the license and *) -(* understand and accept it fully. *) -(* *) -(***************************************************************************) -(***************************************************************************) -(* Pascal port by the UltraStar Deluxe Team *) -(***************************************************************************) - - (*************************************************************************) - (* *) - (* Note: A `raster' is simply a scan-line converter, used to render *) - (* FT_Outlines into FT_Bitmaps. *) - (* *) - (*************************************************************************) - -{$IFDEF TYPE_DECL} - - (*************************************************************************) - (* *) - (* <Type> *) - (* FT_Pos *) - (* *) - (* <Description> *) - (* The type FT_Pos is a 32-bit integer used to store vectorial *) - (* coordinates. Depending on the context, these can represent *) - (* distances in integer font units, or 16,16, or 26.6 fixed float *) - (* pixel coordinates. *) - (* *) - FT_Pos = cslong; - - - (*************************************************************************) - (* *) - (* <Struct> *) - (* FT_Vector *) - (* *) - (* <Description> *) - (* A simple structure used to store a 2D vector; coordinates are of *) - (* the FT_Pos type. *) - (* *) - (* <Fields> *) - (* x :: The horizontal coordinate. *) - (* y :: The vertical coordinate. *) - (* *) - PFT_Vector = ^FT_Vector; - FT_Vector = record - x , - y : FT_Pos; - end; - - PFT_VectorArray = ^FT_VectorArray; - FT_VectorArray = array[0 .. (MaxInt div SizeOf(FT_Vector))-1] of FT_Vector; - - (*************************************************************************) - (* *) - (* <Struct> *) - (* FT_BBox *) - (* *) - (* <Description> *) - (* A structure used to hold an outline's bounding box, i.e., the *) - (* coordinates of its extrema in the horizontal and vertical *) - (* directions. *) - (* *) - (* <Fields> *) - (* xMin :: The horizontal minimum (left-most). *) - (* *) - (* yMin :: The vertical minimum (bottom-most). *) - (* *) - (* xMax :: The horizontal maximum (right-most). *) - (* *) - (* yMax :: The vertical maximum (top-most). *) - (* *) - PFT_BBox = ^FT_BBox; - FT_BBox = record - xMin, yMin : FT_Pos; - xMax, yMax : FT_Pos; - end; - - - (*************************************************************************) - (* *) - (* <Enum> *) - (* FT_Pixel_Mode *) - (* *) - (* <Description> *) - (* An enumeration type used to describe the format of pixels in a *) - (* given bitmap. Note that additional formats may be added in the *) - (* future. *) - (* *) - (* <Values> *) - (* FT_PIXEL_MODE_NONE :: *) - (* Value 0 is reserved. *) - (* *) - (* FT_PIXEL_MODE_MONO :: *) - (* A monochrome bitmap, using 1 bit per pixel. Note that pixels *) - (* are stored in most-significant order (MSB), which means that *) - (* the left-most pixel in a byte has value 128. *) - (* *) - (* FT_PIXEL_MODE_GRAY :: *) - (* An 8-bit bitmap, generally used to represent anti-aliased glyph *) - (* images. Each pixel is stored in one byte. Note that the number *) - (* of value `gray' levels is stored in the `num_bytes' field of *) - (* the @FT_Bitmap structure (it generally is 256). *) - (* *) - (* FT_PIXEL_MODE_GRAY2 :: *) - (* A 2-bit/pixel bitmap, used to represent embedded anti-aliased *) - (* bitmaps in font files according to the OpenType specification. *) - (* We haven't found a single font using this format, however. *) - (* *) - (* FT_PIXEL_MODE_GRAY4 :: *) - (* A 4-bit/pixel bitmap, used to represent embedded anti-aliased *) - (* bitmaps in font files according to the OpenType specification. *) - (* We haven't found a single font using this format, however. *) - (* *) - (* FT_PIXEL_MODE_LCD :: *) - (* An 8-bit bitmap, used to represent RGB or BGR decimated glyph *) - (* images used for display on LCD displays; the bitmap is three *) - (* times wider than the original glyph image. See also *) - (* @FT_RENDER_MODE_LCD. *) - (* *) - (* FT_PIXEL_MODE_LCD_V :: *) - (* An 8-bit bitmap, used to represent RGB or BGR decimated glyph *) - (* images used for display on rotated LCD displays; the bitmap *) - (* is three times taller than the original glyph image. See also *) - (* @FT_RENDER_MODE_LCD_V. *) - (* *) - FT_Pixel_Mode = cint; -{$ELSE TYPE_DECL} -const - FT_PIXEL_MODE_NONE = 0; - FT_PIXEL_MODE_MONO = FT_PIXEL_MODE_NONE + 1; - FT_PIXEL_MODE_GRAY = FT_PIXEL_MODE_MONO + 1; - FT_PIXEL_MODE_GRAY2 = FT_PIXEL_MODE_GRAY + 1; - FT_PIXEL_MODE_GRAY4 = FT_PIXEL_MODE_GRAY2 + 1; - FT_PIXEL_MODE_LCD = FT_PIXEL_MODE_GRAY4 + 1; - FT_PIXEL_MODE_LCD_V = FT_PIXEL_MODE_LCD + 1; - - FT_PIXEL_MODE_MAX = FT_PIXEL_MODE_LCD_V + 1; (* do not remove *) -{$ENDIF TYPE_DECL} -{$IFDEF TYPE_DECL} - - (*************************************************************************) - (* *) - (* <Struct> *) - (* FT_Bitmap *) - (* *) - (* <Description> *) - (* A structure used to describe a bitmap or pixmap to the raster. *) - (* Note that we now manage pixmaps of various depths through the *) - (* `pixel_mode' field. *) - (* *) - (* <Fields> *) - (* rows :: The number of bitmap rows. *) - (* *) - (* width :: The number of pixels in bitmap row. *) - (* *) - (* pitch :: The pitch's absolute value is the number of bytes *) - (* taken by one bitmap row, including padding. *) - (* However, the pitch is positive when the bitmap has *) - (* a `down' flow, and negative when it has an `up' *) - (* flow. In all cases, the pitch is an offset to add *) - (* to a bitmap pointer in order to go down one row. *) - (* *) - (* buffer :: A typeless pointer to the bitmap buffer. This *) - (* value should be aligned on 32-bit boundaries in *) - (* most cases. *) - (* *) - (* num_grays :: This field is only used with *) - (* `FT_PIXEL_MODE_GRAY'; it gives the number of gray *) - (* levels used in the bitmap. *) - (* *) - (* pixel_mode :: The pixel mode, i.e., how pixel bits are stored. *) - (* See @FT_Pixel_Mode for possible values. *) - (* *) - (* palette_mode :: This field is only used with paletted pixel modes; *) - (* it indicates how the palette is stored. *) - (* *) - (* palette :: A typeless pointer to the bitmap palette; only *) - (* used for paletted pixel modes. *) - (* *) - (* <Note> *) - (* For now, the only pixel mode supported by FreeType are mono and *) - (* grays. However, drivers might be added in the future to support *) - (* more `colorful' options. *) - (* *) - (* When using pixel modes pal2, pal4 and pal8 with a void `palette' *) - (* field, a gray pixmap with respectively 4, 16, and 256 levels of *) - (* gray is assumed. This, in order to be compatible with some *) - (* embedded bitmap formats defined in the TrueType specification. *) - (* *) - (* Note that no font was found presenting such embedded bitmaps, so *) - (* this is currently completely unhandled by the library. *) - (* *) - PFT_Bitmap = ^FT_Bitmap; - FT_Bitmap = record - rows: FT_Int; - width: FT_Int; - pitch: FT_Int; - buffer: PByteArray; - num_grays: FT_Short; - pixel_mode: byte; - palette_mode: byte; - palette: pointer; - end; - - - (*************************************************************************) - (* *) - (* <Section> *) - (* outline_processing *) - (* *) - (*************************************************************************) - - - (*************************************************************************) - (* *) - (* <Struct> *) - (* FT_Outline *) - (* *) - (* <Description> *) - (* This structure is used to describe an outline to the scan-line *) - (* converter. *) - (* *) - (* <Fields> *) - (* n_contours :: The number of contours in the outline. *) - (* *) - (* n_points :: The number of points in the outline. *) - (* *) - (* points :: A pointer to an array of `n_points' FT_Vector *) - (* elements, giving the outline's point coordinates. *) - (* *) - (* tags :: A pointer to an array of `n_points' chars, giving *) - (* each outline point's type. If bit 0 is unset, the *) - (* point is `off' the curve, i.e. a Bezier control *) - (* point, while it is `on' when set. *) - (* *) - (* Bit 1 is meaningful for `off' points only. If set, *) - (* it indicates a third-order Bezier arc control point; *) - (* and a second-order control point if unset. *) - (* *) - (* contours :: An array of `n_contours' shorts, giving the end *) - (* point of each contour within the outline. For *) - (* example, the first contour is defined by the points *) - (* `0' to `contours[0]', the second one is defined by *) - (* the points `contours[0]+1' to `contours[1]', etc. *) - (* *) - (* flags :: A set of bit flags used to characterize the outline *) - (* and give hints to the scan-converter and hinter on *) - (* how to convert/grid-fit it. See FT_Outline_Flags. *) - (* *) - PFT_Outline = ^FT_Outline; - FT_Outline = record - n_contours: FT_Short; (* number of contours in glyph *) - n_points: FT_Short; (* number of points in the glyph *) - - points: PFT_VectorArray; (* the outline's points *) - tags: PByteArray; (* the points flags *) - contours: PFT_ShortArray; (* the contour end points *) - - flags: FT_Int; (* outline masks *) - end; - -{$ELSE TYPE_DECL} - - (*************************************************************************) - (* *) - (* @macro: *) - (* FT_CURVE_TAG ( flag ) *) - (* *) - function FT_CURVE_TAG(flag: byte): byte; - -const - FT_CURVE_TAG_ON = 1; - FT_CURVE_TAG_CONIC = 0; - FT_CURVE_TAG_CUBIC = 2; - - FT_CURVE_TAG_TOUCH_X = 8; // reserved for the TrueType hinter - FT_CURVE_TAG_TOUCH_Y = 16; // reserved for the TrueType hinter - - FT_CURVE_TAG_TOUCH_BOTH = ( FT_CURVE_TAG_TOUCH_X or - FT_CURVE_TAG_TOUCH_Y ); -{$ENDIF TYPE_DECL} -{$IFDEF TYPE_DECL} - - (*************************************************************************) - (* *) - (* <FuncType> *) - (* FT_Outline_MoveToFunc *) - (* *) - (* <Description> *) - (* A function pointer type used to describe the signature of a `move *) - (* to' function during outline walking/decomposition. *) - (* *) - (* A `move to' is emitted to start a new contour in an outline. *) - (* *) - (* <Input> *) - (* to :: A pointer to the target point of the `move to'. *) - (* *) - (* user :: A typeless pointer which is passed from the caller of the *) - (* decomposition function. *) - (* *) - (* <Return> *) - (* Error code. 0 means success. *) - (* *) - FT_Outline_MoveToFunc = function(to_: {const} PFT_Vector; - user: Pointer): cint; cdecl; - - - (*************************************************************************) - (* *) - (* <FuncType> *) - (* FT_Outline_LineToFunc *) - (* *) - (* <Description> *) - (* A function pointer type used to describe the signature of a `line *) - (* to' function during outline walking/decomposition. *) - (* *) - (* A `line to' is emitted to indicate a segment in the outline. *) - (* *) - (* <Input> *) - (* to :: A pointer to the target point of the `line to'. *) - (* *) - (* user :: A typeless pointer which is passed from the caller of the *) - (* decomposition function. *) - (* *) - (* <Return> *) - (* Error code. 0 means success. *) - (* *) - FT_Outline_LineToFunc = function(to_: {const} PFT_Vector; - user: Pointer): cint; cdecl; - - - (*************************************************************************) - (* *) - (* <FuncType> *) - (* FT_Outline_ConicToFunc *) - (* *) - (* <Description> *) - (* A function pointer type use to describe the signature of a `conic *) - (* to' function during outline walking/decomposition. *) - (* *) - (* A `conic to' is emitted to indicate a second-order Bézier arc in *) - (* the outline. *) - (* *) - (* <Input> *) - (* control :: An intermediate control point between the last position *) - (* and the new target in `to'. *) - (* *) - (* to :: A pointer to the target end point of the conic arc. *) - (* *) - (* user :: A typeless pointer which is passed from the caller of *) - (* the decomposition function. *) - (* *) - (* <Return> *) - (* Error code. 0 means success. *) - (* *) - FT_Outline_ConicToFunc = function(control: {const} PFT_Vector; - to_: {const} PFT_Vector; - user: Pointer): cint; cdecl; - - - (*************************************************************************) - (* *) - (* <FuncType> *) - (* FT_Outline_CubicToFunc *) - (* *) - (* <Description> *) - (* A function pointer type used to describe the signature of a `cubic *) - (* to' function during outline walking/decomposition. *) - (* *) - (* A `cubic to' is emitted to indicate a third-order Bézier arc. *) - (* *) - (* <Input> *) - (* control1 :: A pointer to the first Bézier control point. *) - (* *) - (* control2 :: A pointer to the second Bézier control point. *) - (* *) - (* to :: A pointer to the target end point. *) - (* *) - (* user :: A typeless pointer which is passed from the caller of *) - (* the decomposition function. *) - (* *) - (* <Return> *) - (* Error code. 0 means success. *) - (* *) - FT_Outline_CubicToFunc = function( control1: {const} PFT_Vector; - control2: {const} PFT_Vector; - to_: {const} PFT_Vector; - user: Pointer ): cint; cdecl; - - - (*************************************************************************) - (* *) - (* <Struct> *) - (* FT_Outline_Funcs *) - (* *) - (* <Description> *) - (* A structure to hold various function pointers used during outline *) - (* decomposition in order to emit segments, conic, and cubic Béziers, *) - (* as well as `move to' and `close to' operations. *) - (* *) - (* <Fields> *) - (* move_to :: The `move to' emitter. *) - (* *) - (* line_to :: The segment emitter. *) - (* *) - (* conic_to :: The second-order Bézier arc emitter. *) - (* *) - (* cubic_to :: The third-order Bézier arc emitter. *) - (* *) - (* shift :: The shift that is applied to coordinates before they *) - (* are sent to the emitter. *) - (* *) - (* delta :: The delta that is applied to coordinates before they *) - (* are sent to the emitter, but after the shift. *) - (* *) - (* <Note> *) - (* The point coordinates sent to the emitters are the transformed *) - (* version of the original coordinates (this is important for high *) - (* accuracy during scan-conversion). The transformation is simple: *) - (* *) - (* { *) - (* x' = (x << shift) - delta *) - (* y' = (x << shift) - delta *) - (* } *) - (* *) - (* Set the value of `shift' and `delta' to 0 to get the original *) - (* point coordinates. *) - (* *) - PFT_Outline_Funcs = ^FT_Outline_Funcs; - FT_Outline_Funcs = record - move_to: FT_Outline_MoveToFunc; - line_to: FT_Outline_LineToFunc; - conic_to: FT_Outline_ConicToFunc; - cubic_to: FT_Outline_CubicToFunc; - - shift: cint; - delta: FT_Pos; - end; - - - (*************************************************************************) - (* *) - (* <Enum> *) - (* FT_Glyph_Format *) - (* *) - (* <Description> *) - (* An enumeration type used to describe the format of a given glyph *) - (* image. Note that this version of FreeType only supports two image *) - (* formats, even though future font drivers will be able to register *) - (* their own format. *) - (* *) - (* <Values> *) - (* FT_GLYPH_FORMAT_NONE :: *) - (* The value 0 is reserved and does describe a glyph format. *) - (* *) - (* FT_GLYPH_FORMAT_COMPOSITE :: *) - (* The glyph image is a composite of several other images. This *) - (* format is _only_ used with @FT_LOAD_NO_RECURSE, and is used to *) - (* report compound glyphs (like accented characters). *) - (* *) - (* FT_GLYPH_FORMAT_BITMAP :: *) - (* The glyph image is a bitmap, and can be described as an *) - (* @FT_Bitmap. You generally need to access the `bitmap' field of *) - (* the @FT_GlyphSlotRec structure to read it. *) - (* *) - (* FT_GLYPH_FORMAT_OUTLINE :: *) - (* The glyph image is a vertorial outline made of line segments *) - (* and Bezier arcs; it can be described as an @FT_Outline; you *) - (* generally want to access the `outline' field of the *) - (* @FT_GlyphSlotRec structure to read it. *) - (* *) - (* FT_GLYPH_FORMAT_PLOTTER :: *) - (* The glyph image is a vectorial path with no inside/outside *) - (* contours. Some Type 1 fonts, like those in the Hershey family, *) - (* contain glyphs in this format. These are described as *) - (* @FT_Outline, but FreeType isn't currently capable of rendering *) - (* them correctly. *) - (* *) - FT_Glyph_Format = array[0..3] of char; -{$ELSE TYPE_DECL} -const - FT_GLYPH_FORMAT_NONE: FT_Glyph_Format = (#0, #0, #0, #0 ); - - FT_GLYPH_FORMAT_COMPOSITE: FT_Glyph_Format = ('c', 'o', 'm', 'p' ); - FT_GLYPH_FORMAT_BITMAP: FT_Glyph_Format = ('b', 'i', 't', 's' ); - FT_GLYPH_FORMAT_OUTLINE: FT_Glyph_Format = ('o', 'u', 't', 'l' ); - FT_GLYPH_FORMAT_PLOTTER: FT_Glyph_Format = ('p', 'l', 'o', 't' ); - -{$ENDIF TYPE_DECL} - - (*************************************************************************) - (*************************************************************************) - (*************************************************************************) - (***** *****) - (***** R A S T E R D E F I N I T I O N S *****) - (***** *****) - (*************************************************************************) - (*************************************************************************) - (*************************************************************************) - - - (*************************************************************************) - (* *) - (* A raster is a scan converter, in charge of rendering an outline into *) - (* a a bitmap. This section contains the public API for rasters. *) - (* *) - (* Note that in FreeType 2, all rasters are now encapsulated within *) - (* specific modules called `renderers'. See `freetype/ftrender.h' for *) - (* more details on renderers. *) - (* *) - (*************************************************************************) - - - (*************************************************************************) - (* *) - (* <Section> *) - (* raster *) - (* *) - (* <Title> *) - (* Scanline Converter *) - (* *) - (* <Abstract> *) - (* How vectorial outlines are converted into bitmaps and pixmaps. *) - (* *) - (* <Description> *) - (* This section contains technical definitions. *) - (* *) - (*************************************************************************) - -{$IFDEF TYPE_DECL} - - (*************************************************************************) - (* *) - (* <Type> *) - (* FT_Raster *) - (* *) - (* <Description> *) - (* A handle (pointer) to a raster object. Each object can be used *) - (* independently to convert an outline into a bitmap or pixmap. *) - (* *) - FT_Raster = Pointer; - - - (*************************************************************************) - (* *) - (* <Struct> *) - (* FT_Span *) - (* *) - (* <Description> *) - (* A structure used to model a single span of gray (or black) pixels *) - (* when rendering a monochrome or anti-aliased bitmap. *) - (* *) - (* <Fields> *) - (* x :: The span's horizontal start position. *) - (* *) - (* len :: The span's length in pixels. *) - (* *) - (* coverage :: The span color/coverage, ranging from 0 (background) *) - (* to 255 (foreground). Only used for anti-aliased *) - (* rendering. *) - (* *) - (* <Note> *) - (* This structure is used by the span drawing callback type named *) - (* @FT_SpanFunc which takes the y-coordinate of the span as a *) - (* a parameter. *) - (* *) - (* The coverage value is always between 0 and 255. *) - (* *) - PFT_Span = ^FT_Span; - FT_Span = record - x: cshort; - len: cushort; - coverage: cuchar; - end; - - - (*************************************************************************) - (* *) - (* <FuncType> *) - (* FT_SpanFunc *) - (* *) - (* <Description> *) - (* A function used as a call-back by the anti-aliased renderer in *) - (* order to let client applications draw themselves the gray pixel *) - (* spans on each scan line. *) - (* *) - (* <Input> *) - (* y :: The scanline's y-coordinate. *) - (* *) - (* count :: The number of spans to draw on this scanline. *) - (* *) - (* spans :: A table of `count' spans to draw on the scanline. *) - (* *) - (* user :: User-supplied data that is passed to the callback. *) - (* *) - (* <Note> *) - (* This callback allows client applications to directly render the *) - (* gray spans of the anti-aliased bitmap to any kind of surfaces. *) - (* *) - (* This can be used to write anti-aliased outlines directly to a *) - (* given background bitmap, and even perform translucency. *) - (* *) - (* Note that the `count' field cannot be greater than a fixed value *) - (* defined by the `FT_MAX_GRAY_SPANS' configuration macro in *) - (* `ftoption.h'. By default, this value is set to 32, which means *) - (* that if there are more than 32 spans on a given scanline, the *) - (* callback is called several times with the same `y' parameter in *) - (* order to draw all callbacks. *) - (* *) - (* Otherwise, the callback is only called once per scan-line, and *) - (* only for those scanlines that do have `gray' pixels on them. *) - (* *) - FT_SpanFunc = procedure(y: cint; - count: cint; - spans: {const} PFT_Span; - user: Pointer ); cdecl; - - - (*************************************************************************) - (* *) - (* <FuncType> *) - (* FT_Raster_BitTest_Func *) - (* *) - (* <Description> *) - (* THIS TYPE IS DEPRECATED. DO NOT USE IT. *) - (* *) - (* A function used as a call-back by the monochrome scan-converter *) - (* to test whether a given target pixel is already set to the drawing *) - (* `color'. These tests are crucial to implement drop-out control *) - (* per-se the TrueType spec. *) - (* *) - (* <Input> *) - (* y :: The pixel's y-coordinate. *) - (* *) - (* x :: The pixel's x-coordinate. *) - (* *) - (* user :: User-supplied data that is passed to the callback. *) - (* *) - (* <Return> *) - (* 1 if the pixel is `set', 0 otherwise. *) - (* *) - FT_Raster_BitTest_Func = function(y: cint; - x: cint; - user: Pointer): cint; cdecl; - - - (*************************************************************************) - (* *) - (* <FuncType> *) - (* FT_Raster_BitSet_Func *) - (* *) - (* <Description> *) - (* THIS TYPE IS DEPRECATED. DO NOT USE IT. *) - (* *) - (* A function used as a call-back by the monochrome scan-converter *) - (* to set an individual target pixel. This is crucial to implement *) - (* drop-out control according to the TrueType specification. *) - (* *) - (* <Input> *) - (* y :: The pixel's y-coordinate. *) - (* *) - (* x :: The pixel's x-coordinate. *) - (* *) - (* user :: User-supplied data that is passed to the callback. *) - (* *) - (* <Return> *) - (* 1 if the pixel is `set', 0 otherwise. *) - (* *) - FT_Raster_BitSet_Func = procedure(y: cint; - x: cint; - user: Pointer ); cdecl; - - - (*************************************************************************) - (* *) - (* <Enum> *) - (* FT_RASTER_FLAG_XXX *) - (* *) - (* <Description> *) - (* A list of bit flag constants as used in the `flags' field of a *) - (* @FT_Raster_Params structure. *) - (* *) - (* <Values> *) - (* FT_RASTER_FLAG_DEFAULT :: This value is 0. *) - (* *) - (* FT_RASTER_FLAG_AA :: This flag is set to indicate that an *) - (* anti-aliased glyph image should be *) - (* generated. Otherwise, it will be *) - (* monochrome (1-bit). *) - (* *) - (* FT_RASTER_FLAG_DIRECT :: This flag is set to indicate direct *) - (* rendering. In this mode, client *) - (* applications must provide their own span *) - (* callback. This lets them directly *) - (* draw or compose over an existing bitmap. *) - (* If this bit is not set, the target *) - (* pixmap's buffer _must_ be zeroed before *) - (* rendering. *) - (* *) - (* Note that for now, direct rendering is *) - (* only possible with anti-aliased glyphs. *) - (* *) - (* FT_RASTER_FLAG_CLIP :: This flag is only used in direct *) - (* rendering mode. If set, the output will *) - (* be clipped to a box specified in the *) - (* `clip_box' field of the *) - (* @FT_Raster_Params structure. *) - (* *) - (* Note that by default, the glyph bitmap *) - (* is clipped to the target pixmap, except *) - (* in direct rendering mode where all spans *) - (* are generated if no clipping box is set. *) - (* *) -{$ELSE TYPE_DECL} -const - FT_RASTER_FLAG_DEFAULT = $0; - FT_RASTER_FLAG_AA = $1; - FT_RASTER_FLAG_DIRECT = $2; - FT_RASTER_FLAG_CLIP = $4; - -{$ENDIF TYPE_DECL} -{$IFDEF TYPE_DECL} - - (*************************************************************************) - (* *) - (* <Struct> *) - (* FT_Raster_Params *) - (* *) - (* <Description> *) - (* A structure to hold the arguments used by a raster's render *) - (* function. *) - (* *) - (* <Fields> *) - (* target :: The target bitmap. *) - (* *) - (* source :: A pointer to the source glyph image (e.g., an *) - (* @FT_Outline). *) - (* *) - (* flags :: The rendering flags. *) - (* *) - (* gray_spans :: The gray span drawing callback. *) - (* *) - (* black_spans :: The black span drawing callback. *) - (* *) - (* bit_test :: The bit test callback. UNIMPLEMENTED! *) - (* *) - (* bit_set :: The bit set callback. UNIMPLEMENTED! *) - (* *) - (* user :: User-supplied data that is passed to each drawing *) - (* callback. *) - (* *) - (* clip_box :: An optional clipping box. It is only used in *) - (* direct rendering mode. Note that coordinates here *) - (* should be expressed in _integer_ pixels (and not in *) - (* 26.6 fixed-point units). *) - (* *) - (* <Note> *) - (* An anti-aliased glyph bitmap is drawn if the @FT_RASTER_FLAG_AA *) - (* bit flag is set in the `flags' field, otherwise a monochrome *) - (* bitmap is generated. *) - (* *) - (* If the @FT_RASTER_FLAG_DIRECT bit flag is set in `flags', the *) - (* raster will call the `gray_spans' callback to draw gray pixel *) - (* spans, in the case of an aa glyph bitmap, it will call *) - (* `black_spans', and `bit_test' and `bit_set' in the case of a *) - (* monochrome bitmap. This allows direct composition over a *) - (* pre-existing bitmap through user-provided callbacks to perform the *) - (* span drawing/composition. *) - (* *) - (* Note that the `bit_test' and `bit_set' callbacks are required when *) - (* rendering a monochrome bitmap, as they are crucial to implement *) - (* correct drop-out control as defined in the TrueType specification. *) - (* *) - PFT_Raster_Params = ^FT_Raster_Params; - FT_Raster_Params = record - target: {const} PFT_Bitmap; - source: {const} Pointer; - flags: cint; - gray_spans: FT_SpanFunc; - black_spans: FT_SpanFunc; - bit_test: FT_Raster_BitTest_Func; (* doesn't work! *) - bit_set: FT_Raster_BitSet_Func; (* doesn't work! *) - user: Pointer; - clip_box: FT_BBox; - end; - -{$ENDIF TYPE_DECL} - - diff --git a/src/lib/freetype/ftoutln.inc b/src/lib/freetype/ftoutln.inc deleted file mode 100644 index 997c6cb3..00000000 --- a/src/lib/freetype/ftoutln.inc +++ /dev/null @@ -1,497 +0,0 @@ -(***************************************************************************) -(* *) -(* ftoutln.h *) -(* *) -(* Support for the FT_Outline type used to store glyph shapes of *) -(* most scalable font formats (specification). *) -(* *) -(* Copyright 1996-2001, 2002, 2003, 2005, 2006, 2007 by *) -(* David Turner, Robert Wilhelm, and Werner Lemberg. *) -(* *) -(* This file is part of the FreeType project, and may only be used, *) -(* modified, and distributed under the terms of the FreeType project *) -(* license, LICENSE.TXT. By continuing to use, modify, or distribute *) -(* this file you indicate that you have read the license and *) -(* understand and accept it fully. *) -(* *) -(***************************************************************************) -(***************************************************************************) -(* Pascal port by the UltraStar Deluxe Team *) -(***************************************************************************) - - - (*************************************************************************) - (* *) - (* <Section> *) - (* outline_processing *) - (* *) - (* <Title> *) - (* Outline Processing *) - (* *) - (* <Abstract> *) - (* Functions to create, transform, and render vectorial glyph images. *) - (* *) - (* <Description> *) - (* This section contains routines used to create and destroy scalable *) - (* glyph images known as `outlines'. These can also be measured, *) - (* transformed, and converted into bitmaps and pixmaps. *) - (* *) - (* <Order> *) - (* FT_Outline *) - (* FT_OUTLINE_FLAGS *) - (* FT_Outline_New *) - (* FT_Outline_Done *) - (* FT_Outline_Copy *) - (* FT_Outline_Translate *) - (* FT_Outline_Transform *) - (* FT_Outline_Embolden *) - (* FT_Outline_Reverse *) - (* FT_Outline_Check *) - (* *) - (* FT_Outline_Get_CBox *) - (* FT_Outline_Get_BBox *) - (* *) - (* FT_Outline_Get_Bitmap *) - (* FT_Outline_Render *) - (* *) - (* FT_Outline_Decompose *) - (* FT_Outline_Funcs *) - (* FT_Outline_MoveTo_Func *) - (* FT_Outline_LineTo_Func *) - (* FT_Outline_ConicTo_Func *) - (* FT_Outline_CubicTo_Func *) - (* *) - (*************************************************************************) - -{$IFNDEF TYPE_DECL} - - (*************************************************************************) - (* *) - (* <Function> *) - (* FT_Outline_Decompose *) - (* *) - (* <Description> *) - (* Walks over an outline's structure to decompose it into individual *) - (* segments and BĂ©zier arcs. This function is also able to emit *) - (* `move to' and `close to' operations to indicate the start and end *) - (* of new contours in the outline. *) - (* *) - (* <Input> *) - (* outline :: A pointer to the source target. *) - (* *) - (* func_interface :: A table of `emitters', i.e,. function pointers *) - (* called during decomposition to indicate path *) - (* operations. *) - (* *) - (* <InOut> *) - (* user :: A typeless pointer which is passed to each *) - (* emitter during the decomposition. It can be *) - (* used to store the state during the *) - (* decomposition. *) - (* *) - (* <Return> *) - (* FreeType error code. 0 means success. *) - (* *) - function FT_Outline_Decompose( - outline: PFT_Outline; - func_interface: {const} PFT_Outline_Funcs; - user: Pointer): FT_Error; - cdecl; external ft_lib name 'FT_Outline_Decompose'; - - - (*************************************************************************) - (* *) - (* <Function> *) - (* FT_Outline_New *) - (* *) - (* <Description> *) - (* Creates a new outline of a given size. *) - (* *) - (* <Input> *) - (* library :: A handle to the library object from where the *) - (* outline is allocated. Note however that the new *) - (* outline will *not* necessarily be *freed*, when *) - (* destroying the library, by @FT_Done_FreeType. *) - (* *) - (* numPoints :: The maximal number of points within the outline. *) - (* *) - (* numContours :: The maximal number of contours within the outline. *) - (* *) - (* <Output> *) - (* anoutline :: A handle to the new outline. NULL in case of *) - (* error. *) - (* *) - (* <Return> *) - (* FreeType error code. 0 means success. *) - (* *) - (* <Note> *) - (* The reason why this function takes a `library' parameter is simply *) - (* to use the library's memory allocator. *) - (* *) - function FT_Outline_New( - library_: FT_Library; - numPoints: FT_UInt; - numContours: FT_Int; - anoutline: PFT_Outline): FT_Error; - cdecl; external ft_lib name 'FT_Outline_New'; - - - (*************************************************************************) - (* *) - (* <Function> *) - (* FT_Outline_Done *) - (* *) - (* <Description> *) - (* Destroys an outline created with @FT_Outline_New. *) - (* *) - (* <Input> *) - (* library :: A handle of the library object used to allocate the *) - (* outline. *) - (* *) - (* outline :: A pointer to the outline object to be discarded. *) - (* *) - (* <Return> *) - (* FreeType error code. 0 means success. *) - (* *) - (* <Note> *) - (* If the outline's `owner' field is not set, only the outline *) - (* descriptor will be released. *) - (* *) - (* The reason why this function takes an `library' parameter is *) - (* simply to use ft_mem_free(). *) - (* *) - function FT_Outline_Done(library_: FT_Library; - outline: PFT_Outline): FT_Error; - cdecl; external ft_lib name 'FT_Outline_Done'; - - - (*************************************************************************) - (* *) - (* <Function> *) - (* FT_Outline_Check *) - (* *) - (* <Description> *) - (* Check the contents of an outline descriptor. *) - (* *) - (* <Input> *) - (* outline :: A handle to a source outline. *) - (* *) - (* <Return> *) - (* FreeType error code. 0 means success. *) - (* *) - function FT_Outline_Check( outline: PFT_Outline ): FT_Error; - cdecl; external ft_lib name 'FT_Outline_Check'; - - - (*************************************************************************) - (* *) - (* <Function> *) - (* FT_Outline_Get_CBox *) - (* *) - (* <Description> *) - (* Returns an outline's `control box'. The control box encloses all *) - (* the outline's points, including BĂ©zier control points. Though it *) - (* coincides with the exact bounding box for most glyphs, it can be *) - (* slightly larger in some situations (like when rotating an outline *) - (* which contains BĂ©zier outside arcs). *) - (* *) - (* Computing the control box is very fast, while getting the bounding *) - (* box can take much more time as it needs to walk over all segments *) - (* and arcs in the outline. To get the latter, you can use the *) - (* `ftbbox' component which is dedicated to this single task. *) - (* *) - (* <Input> *) - (* outline :: A pointer to the source outline descriptor. *) - (* *) - (* <Output> *) - (* acbox :: The outline's control box. *) - (* *) - procedure FT_Outline_Get_CBox( - outline: {const} PFT_Outline; - acbox: PFT_BBox); - cdecl; external ft_lib name 'FT_Outline_Get_CBox'; - - - (*************************************************************************) - (* *) - (* <Function> *) - (* FT_Outline_Translate *) - (* *) - (* <Description> *) - (* Applies a simple translation to the points of an outline. *) - (* *) - (* <InOut> *) - (* outline :: A pointer to the target outline descriptor. *) - (* *) - (* <Input> *) - (* xOffset :: The horizontal offset. *) - (* *) - (* yOffset :: The vertical offset. *) - (* *) - procedure FT_Outline_Translate( - outline: {const} PFT_Outline; - xOffset: FT_Pos; - yOffset: FT_Pos); - cdecl; external ft_lib name 'FT_Outline_Translate'; - - - (*************************************************************************) - (* *) - (* <Function> *) - (* FT_Outline_Copy *) - (* *) - (* <Description> *) - (* Copies an outline into another one. Both objects must have the *) - (* same sizes (number of points & number of contours) when this *) - (* function is called. *) - (* *) - (* <Input> *) - (* source :: A handle to the source outline. *) - (* *) - (* <Output> *) - (* target :: A handle to the target outline. *) - (* *) - (* <Return> *) - (* FreeType error code. 0 means success. *) - (* *) - function FT_Outline_Copy( - source: {const} PFT_Outline; - target: PFT_Outline): FT_Error; - cdecl; external ft_lib name 'FT_Outline_Copy'; - - - (*************************************************************************) - (* *) - (* <Function> *) - (* FT_Outline_Transform *) - (* *) - (* <Description> *) - (* Applies a simple 2x2 matrix to all of an outline's points. Useful *) - (* for applying rotations, slanting, flipping, etc. *) - (* *) - (* <InOut> *) - (* outline :: A pointer to the target outline descriptor. *) - (* *) - (* <Input> *) - (* matrix :: A pointer to the transformation matrix. *) - (* *) - (* <Note> *) - (* You can use @FT_Outline_Translate if you need to translate the *) - (* outline's points. *) - (* *) - procedure FT_Outline_Transform( - outline: {const} PFT_Outline; - matrix: {const} PFT_Matrix); - cdecl; external ft_lib name 'FT_Outline_Transform'; - - - (*************************************************************************) - (* *) - (* <Function> *) - (* FT_Outline_Embolden *) - (* *) - (* <Description> *) - (* Emboldens an outline. The new outline will be at most 4 times *) - (* `strength' pixels wider and higher. You may think of the left and *) - (* bottom borders as unchanged. *) - (* *) - (* Negative `strength' values to reduce the outline thickness are *) - (* possible also. *) - (* *) - (* <InOut> *) - (* outline :: A handle to the target outline. *) - (* *) - (* <Input> *) - (* strength :: How strong the glyph is emboldened. Expressed in *) - (* 26.6 pixel format. *) - (* *) - (* <Return> *) - (* FreeType error code. 0 means success. *) - (* *) - (* <Note> *) - (* The used algorithm to increase or decrease the thickness of the *) - (* glyph doesn't change the number of points; this means that certain *) - (* situations like acute angles or intersections are sometimes *) - (* handled incorrectly. *) - (* *) - (* Example call: *) - (* *) - (* { *) - (* FT_Load_Glyph( face, index, FT_LOAD_DEFAULT ); *) - (* if ( face->slot->format == FT_GLYPH_FORMAT_OUTLINE ) *) - (* FT_Outline_Embolden( &face->slot->outline, strength ); *) - (* } *) - (* *) - function FT_Outline_Embolden( - outline: PFT_Outline; - strength: FT_Pos): FT_Error; - cdecl; external ft_lib name 'FT_Outline_Embolden'; - - - (*************************************************************************) - (* *) - (* <Function> *) - (* FT_Outline_Reverse *) - (* *) - (* <Description> *) - (* Reverses the drawing direction of an outline. This is used to *) - (* ensure consistent fill conventions for mirrored glyphs. *) - (* *) - (* <InOut> *) - (* outline :: A pointer to the target outline descriptor. *) - (* *) - (* <Note> *) - (* This functions toggles the bit flag @FT_OUTLINE_REVERSE_FILL in *) - (* the outline's `flags' field. *) - (* *) - (* It shouldn't be used by a normal client application, unless it *) - (* knows what it is doing. *) - (* *) - procedure FT_Outline_Reverse( outline: PFT_Outline ); - cdecl; external ft_lib name 'FT_Outline_Reverse'; - - - (*************************************************************************) - (* *) - (* <Function> *) - (* FT_Outline_Get_Bitmap *) - (* *) - (* <Description> *) - (* Renders an outline within a bitmap. The outline's image is simply *) - (* OR-ed to the target bitmap. *) - (* *) - (* <Input> *) - (* library :: A handle to a FreeType library object. *) - (* *) - (* outline :: A pointer to the source outline descriptor. *) - (* *) - (* <InOut> *) - (* abitmap :: A pointer to the target bitmap descriptor. *) - (* *) - (* <Return> *) - (* FreeType error code. 0 means success. *) - (* *) - (* <Note> *) - (* This function does NOT CREATE the bitmap, it only renders an *) - (* outline image within the one you pass to it! *) - (* *) - (* It will use the raster corresponding to the default glyph format. *) - (* *) - function FT_Outline_Get_Bitmap( - library_: FT_Library; - outline: PFT_Outline; - abitmap: {const} PFT_Bitmap): FT_Error; - cdecl; external ft_lib name 'FT_Outline_Get_Bitmap'; - - - (*************************************************************************) - (* *) - (* <Function> *) - (* FT_Outline_Render *) - (* *) - (* <Description> *) - (* Renders an outline within a bitmap using the current scan-convert. *) - (* This functions uses an @FT_Raster_Params structure as an argument, *) - (* allowing advanced features like direct composition, translucency, *) - (* etc. *) - (* *) - (* <Input> *) - (* library :: A handle to a FreeType library object. *) - (* *) - (* outline :: A pointer to the source outline descriptor. *) - (* *) - (* <InOut> *) - (* params :: A pointer to an @FT_Raster_Params structure used to *) - (* describe the rendering operation. *) - (* *) - (* <Return> *) - (* FreeType error code. 0 means success. *) - (* *) - (* <Note> *) - (* You should know what you are doing and how @FT_Raster_Params works *) - (* to use this function. *) - (* *) - (* The field `params.source' will be set to `outline' before the scan *) - (* converter is called, which means that the value you give to it is *) - (* actually ignored. *) - (* *) - function FT_Outline_Render( - library_: FT_Library; - outline: PFT_Outline; - params: PFT_Raster_Params): FT_Error; - cdecl; external ft_lib name 'FT_Outline_Render'; - -{$ENDIF TYPE_DECL} - - (************************************************************************** - * - * @enum: - * FT_Orientation - * - * @description: - * A list of values used to describe an outline's contour orientation. - * - * The TrueType and Postscript specifications use different conventions - * to determine whether outline contours should be filled or unfilled. - * - * @values: - * FT_ORIENTATION_TRUETYPE :: - * According to the TrueType specification, clockwise contours must - * be filled, and counter-clockwise ones must be unfilled. - * - * FT_ORIENTATION_POSTSCRIPT :: - * According to the Postscript specification, counter-clockwise contours - * must be filled, and clockwise ones must be unfilled. - * - * FT_ORIENTATION_FILL_RIGHT :: - * This is identical to @FT_ORIENTATION_TRUETYPE, but is used to - * remember that in TrueType, everything that is to the right of - * the drawing direction of a contour must be filled. - * - * FT_ORIENTATION_FILL_LEFT :: - * This is identical to @FT_ORIENTATION_POSTSCRIPT, but is used to - * remember that in Postscript, everything that is to the left of - * the drawing direction of a contour must be filled. - * - * FT_ORIENTATION_NONE :: - * The orientation cannot be determined. That is, different parts of - * the glyph have different orientation. - * - *) -{$IFDEF TYPE_DECL} - FT_Orientation = cint; -{$ELSE TYPE_DECL} -const - FT_ORIENTATION_TRUETYPE = 0; - FT_ORIENTATION_POSTSCRIPT = 1; - FT_ORIENTATION_FILL_RIGHT = FT_ORIENTATION_TRUETYPE; - FT_ORIENTATION_FILL_LEFT = FT_ORIENTATION_POSTSCRIPT; - FT_ORIENTATION_NONE = FT_ORIENTATION_FILL_LEFT+1; - - (************************************************************************** - * - * @function: - * FT_Outline_Get_Orientation - * - * @description: - * This function analyzes a glyph outline and tries to compute its - * fill orientation (see @FT_Orientation). This is done by computing - * the direction of each global horizontal and/or vertical extrema - * within the outline. - * - * Note that this will return @FT_ORIENTATION_TRUETYPE for empty - * outlines. - * - * @input: - * outline :: - * A handle to the source outline. - * - * @return: - * The orientation. - * - *) - function FT_Outline_Get_Orientation( outline: PFT_Outline ): FT_Orientation; - cdecl; external ft_lib name 'FT_Outline_Get_Orientation'; - -{$ENDIF TYPE_DECL} - diff --git a/src/lib/freetype/ftstroke.inc b/src/lib/freetype/ftstroke.inc deleted file mode 100644 index bf8a00ae..00000000 --- a/src/lib/freetype/ftstroke.inc +++ /dev/null @@ -1,711 +0,0 @@ -{***************************************************************************} -{* *} -{* ftstroke.h *} -{* *} -{* FreeType path stroker (specification). *} -{* *} -{* Copyright 2002, 2003, 2004, 2005, 2006 by *} -{* David Turner, Robert Wilhelm, and Werner Lemberg. *} -{* *} -{* This file is part of the FreeType project, and may only be used, *} -{* modified, and distributed under the terms of the FreeType project *} -{* license, LICENSE.TXT. By continuing to use, modify, or distribute *} -{* this file you indicate that you have read the license and *} -{* understand and accept it fully. *} -{* *} -{***************************************************************************} -(***************************************************************************) -(* Pascal port by the UltraStar Deluxe Team *) -(***************************************************************************) - - {************************************************************************ - * - * @section: - * glyph_stroker - * - * @title: - * Glyph Stroker - * - * @abstract: - * Generating bordered and stroked glyphs. - * - * @description: - * This component generates stroked outlines of a given vectorial - * glyph. It also allows you to retrieve the `outside' and/or the - * `inside' borders of the stroke. - * - * This can be useful to generate `bordered' glyph, i.e., glyphs - * displayed with a coloured (and anti-aliased) border around their - * shape. - *} - -{$IFDEF TYPE_DECL} - - {************************************************************** - * - * @type: - * FT_Stroker - * - * @description: - * Opaque handler to a path stroker object. - *} - FT_Stroker = Pointer; - - - {************************************************************** - * - * @enum: - * FT_Stroker_LineJoin - * - * @description: - * These values determine how two joining lines are rendered - * in a stroker. - * - * @values: - * FT_STROKER_LINEJOIN_ROUND :: - * Used to render rounded line joins. Circular arcs are used - * to join two lines smoothly. - * - * FT_STROKER_LINEJOIN_BEVEL :: - * Used to render beveled line joins; i.e., the two joining lines - * are extended until they intersect. - * - * FT_STROKER_LINEJOIN_MITER :: - * Same as beveled rendering, except that an additional line - * break is added if the angle between the two joining lines - * is too closed (this is useful to avoid unpleasant spikes - * in beveled rendering). - *} - FT_Stroker_LineJoin = cint; -{$ELSE TYPE_DECL} -const - FT_STROKER_LINEJOIN_ROUND = 0; - FT_STROKER_LINEJOIN_BEVEL = 1; - FT_STROKER_LINEJOIN_MITER = 2; - -{$ENDIF TYPE_DECL} -{$IFDEF TYPE_DECL} - - {************************************************************** - * - * @enum: - * FT_Stroker_LineCap - * - * @description: - * These values determine how the end of opened sub-paths are - * rendered in a stroke. - * - * @values: - * FT_STROKER_LINECAP_BUTT :: - * The end of lines is rendered as a full stop on the last - * point itself. - * - * FT_STROKER_LINECAP_ROUND :: - * The end of lines is rendered as a half-circle around the - * last point. - * - * FT_STROKER_LINECAP_SQUARE :: - * The end of lines is rendered as a square around the - * last point. - *} - FT_Stroker_LineCap = cint; -{$ELSE TYPE_DECL} -const - FT_STROKER_LINECAP_BUTT = 0; - FT_STROKER_LINECAP_ROUND = 1; - FT_STROKER_LINECAP_SQUARE = 2; - -{$ENDIF TYPE_DECL} -{$IFDEF TYPE_DECL} - - {************************************************************** - * - * @enum: - * FT_StrokerBorder - * - * @description: - * These values are used to select a given stroke border - * in @FT_Stroker_GetBorderCounts and @FT_Stroker_ExportBorder. - * - * @values: - * FT_STROKER_BORDER_LEFT :: - * Select the left border, relative to the drawing direction. - * - * FT_STROKER_BORDER_RIGHT :: - * Select the right border, relative to the drawing direction. - * - * @note: - * Applications are generally interested in the `inside' and `outside' - * borders. However, there is no direct mapping between these and the - * `left' and `right' ones, since this really depends on the glyph's - * drawing orientation, which varies between font formats. - * - * You can however use @FT_Outline_GetInsideBorder and - * @FT_Outline_GetOutsideBorder to get these. - *} - FT_StrokerBorder = cint; -{$ELSE TYPE_DECL} -const - FT_STROKER_BORDER_LEFT = 0; - FT_STROKER_BORDER_RIGHT = 1; - - - {************************************************************** - * - * @function: - * FT_Outline_GetInsideBorder - * - * @description: - * Retrieve the @FT_StrokerBorder value corresponding to the - * `inside' borders of a given outline. - * - * @input: - * outline :: - * The source outline handle. - * - * @return: - * The border index. @FT_STROKER_BORDER_LEFT for empty or invalid - * outlines. - *} - function FT_Outline_GetInsideBorder( outline: PFT_Outline ): FT_StrokerBorder; - cdecl; external ft_lib name 'FT_Outline_GetInsideBorder'; - - - {************************************************************** - * - * @function: - * FT_Outline_GetOutsideBorder - * - * @description: - * Retrieve the @FT_StrokerBorder value corresponding to the - * `outside' borders of a given outline. - * - * @input: - * outline :: - * The source outline handle. - * - * @return: - * The border index. @FT_STROKER_BORDER_LEFT for empty or invalid - * outlines. - *} - function FT_Outline_GetOutsideBorder( outline: PFT_Outline ): FT_StrokerBorder; - cdecl; external ft_lib name 'FT_Outline_GetOutsideBorder'; - - - {************************************************************** - * - * @function: - * FT_Stroker_New - * - * @description: - * Create a new stroker object. - * - * @input: - * library :: - * FreeType library handle. - * - * @output: - * astroker :: - * A new stroker object handle. NULL in case of error. - * - * @return: - * FreeType error code. 0 means success. - *} - function FT_Stroker_New( - library_: FT_Library; - out astroker: FT_Stroker ): FT_Error; - cdecl; external ft_lib name 'FT_Stroker_New'; - - - {************************************************************** - * - * @function: - * FT_Stroker_Set - * - * @description: - * Reset a stroker object's attributes. - * - * @input: - * stroker :: - * The target stroker handle. - * - * radius :: - * The border radius. - * - * line_cap :: - * The line cap style. - * - * line_join :: - * The line join style. - * - * miter_limit :: - * The miter limit for the FT_STROKER_LINEJOIN_MITER style, - * expressed as 16.16 fixed point value. - * - * @note: - * The radius is expressed in the same units that the outline - * coordinates. - *} - procedure FT_Stroker_Set( - stroker: FT_Stroker; - radius: FT_Fixed; - line_cap: FT_Stroker_LineCap; - line_join: FT_Stroker_LineJoin; - miter_limit: FT_Fixed ); - cdecl; external ft_lib name 'FT_Stroker_Set'; - - - {************************************************************** - * - * @function: - * FT_Stroker_Rewind - * - * @description: - * Reset a stroker object without changing its attributes. - * You should call this function before beginning a new - * series of calls to @FT_Stroker_BeginSubPath or - * @FT_Stroker_EndSubPath. - * - * @input: - * stroker :: - * The target stroker handle. - *} - procedure FT_Stroker_Rewind( stroker: FT_Stroker ); - cdecl; external ft_lib name 'FT_Stroker_Rewind'; - - - {************************************************************** - * - * @function: - * FT_Stroker_ParseOutline - * - * @description: - * A convenience function used to parse a whole outline with - * the stroker. The resulting outline(s) can be retrieved - * later by functions like @FT_Stroker_GetCounts and @FT_Stroker_Export. - * - * @input: - * stroker :: - * The target stroker handle. - * - * outline :: - * The source outline. - * - * opened :: - * A boolean. If 1, the outline is treated as an open path instead - * of a closed one. - * - * @return: - * FreeType error code. 0 means success. - * - * @note: - * If `opened' is 0 (the default), the outline is treated as a closed - * path, and the stroker will generate two distinct `border' outlines. - * - * If `opened' is 1, the outline is processed as an open path, and the - * stroker will generate a single `stroke' outline. - * - * This function calls @FT_Stroker_Rewind automatically. - *} - function FT_Stroker_ParseOutline( - stroker: FT_Stroker; - outline: PFT_Outline; - opened: FT_Bool): FT_Error; - cdecl; external ft_lib name 'FT_Stroker_ParseOutline'; - - - {************************************************************** - * - * @function: - * FT_Stroker_BeginSubPath - * - * @description: - * Start a new sub-path in the stroker. - * - * @input: - * stroker :: - * The target stroker handle. - * - * to :: - * A pointer to the start vector. - * - * open :: - * A boolean. If 1, the sub-path is treated as an open one. - * - * @return: - * FreeType error code. 0 means success. - * - * @note: - * This function is useful when you need to stroke a path that is - * not stored as an @FT_Outline object. - *} - function FT_Stroker_BeginSubPath( - stroker: FT_Stroker; - to_: PFT_Vector; - open: FT_Bool ): FT_Error; - cdecl; external ft_lib name 'FT_Stroker_BeginSubPath'; - - - {************************************************************** - * - * @function: - * FT_Stroker_EndSubPath - * - * @description: - * Close the current sub-path in the stroker. - * - * @input: - * stroker :: - * The target stroker handle. - * - * @return: - * FreeType error code. 0 means success. - * - * @note: - * You should call this function after @FT_Stroker_BeginSubPath. - * If the subpath was not `opened', this function will `draw' a - * single line segment to the start position when needed. - *} - function FT_Stroker_EndSubPath( stroker: FT_Stroker ): FT_Error; - cdecl; external ft_lib name 'FT_Stroker_EndSubPath'; - - - {************************************************************** - * - * @function: - * FT_Stroker_LineTo - * - * @description: - * `Draw' a single line segment in the stroker's current sub-path, - * from the last position. - * - * @input: - * stroker :: - * The target stroker handle. - * - * to :: - * A pointer to the destination point. - * - * @return: - * FreeType error code. 0 means success. - * - * @note: - * You should call this function between @FT_Stroker_BeginSubPath and - * @FT_Stroker_EndSubPath. - *} - function FT_Stroker_LineTo( - stroker: FT_Stroker; - to_: PFT_Vector ): FT_Error; - cdecl; external ft_lib name 'FT_Stroker_LineTo'; - - - {************************************************************** - * - * @function: - * FT_Stroker_ConicTo - * - * @description: - * `Draw' a single quadratic BĂ©zier in the stroker's current sub-path, - * from the last position. - * - * @input: - * stroker :: - * The target stroker handle. - * - * control :: - * A pointer to a BĂ©zier control point. - * - * to :: - * A pointer to the destination point. - * - * @return: - * FreeType error code. 0 means success. - * - * @note: - * You should call this function between @FT_Stroker_BeginSubPath and - * @FT_Stroker_EndSubPath. - *} - function FT_Stroker_ConicTo( - stroker: FT_Stroker; - control: PFT_Vector; - to_: PFT_Vector ): FT_Error; - cdecl; external ft_lib name 'FT_Stroker_ConicTo'; - - - {************************************************************** - * - * @function: - * FT_Stroker_CubicTo - * - * @description: - * `Draw' a single cubic BĂ©zier in the stroker's current sub-path, - * from the last position. - * - * @input: - * stroker :: - * The target stroker handle. - * - * control1 :: - * A pointer to the first BĂ©zier control point. - * - * control2 :: - * A pointer to second BĂ©zier control point. - * - * to :: - * A pointer to the destination point. - * - * @return: - * FreeType error code. 0 means success. - * - * @note: - * You should call this function between @FT_Stroker_BeginSubPath and - * @FT_Stroker_EndSubPath. - *} - function FT_Stroker_CubicTo( - stroker: FT_Stroker; - control1: PFT_Vector; - control2: PFT_Vector; - to_: PFT_Vector ): FT_Error; - cdecl; external ft_lib name 'FT_Stroker_CubicTo'; - - - {************************************************************** - * - * @function: - * FT_Stroker_GetBorderCounts - * - * @description: - * Call this function once you have finished parsing your paths - * with the stroker. It will return the number of points and - * contours necessary to export one of the `border' or `stroke' - * outlines generated by the stroker. - * - * @input: - * stroker :: - * The target stroker handle. - * - * border :: - * The border index. - * - * @output: - * anum_points :: - * The number of points. - * - * anum_contours :: - * The number of contours. - * - * @return: - * FreeType error code. 0 means success. - * - * @note: - * When an outline, or a sub-path, is `closed', the stroker generates - * two independent `border' outlines, named `left' and `right'. - * - * When the outline, or a sub-path, is `opened', the stroker merges - * the `border' outlines with caps. The `left' border receives all - * points, while the `right' border becomes empty. - * - * Use the function @FT_Stroker_GetCounts instead if you want to - * retrieve the counts associated to both borders. - *} - function FT_Stroker_GetBorderCounts( - stroker: FT_Stroker; - border: FT_StrokerBorder; - out anum_points: FT_UInt; - out anum_contours: FT_UInt ): FT_Error; - cdecl; external ft_lib name 'FT_Stroker_GetBorderCounts'; - - - {************************************************************** - * - * @function: - * FT_Stroker_ExportBorder - * - * @description: - * Call this function after @FT_Stroker_GetBorderCounts to - * export the corresponding border to your own @FT_Outline - * structure. - * - * Note that this function will append the border points and - * contours to your outline, but will not try to resize its - * arrays. - * - * @input: - * stroker :: - * The target stroker handle. - * - * border :: - * The border index. - * - * outline :: - * The target outline handle. - * - * @note: - * Always call this function after @FT_Stroker_GetBorderCounts to - * get sure that there is enough room in your @FT_Outline object to - * receive all new data. - * - * When an outline, or a sub-path, is `closed', the stroker generates - * two independent `border' outlines, named `left' and `right' - * - * When the outline, or a sub-path, is `opened', the stroker merges - * the `border' outlines with caps. The `left' border receives all - * points, while the `right' border becomes empty. - * - * Use the function @FT_Stroker_Export instead if you want to - * retrieve all borders at once. - *} - procedure FT_Stroker_ExportBorder( - stroker: FT_Stroker; - border: FT_StrokerBorder; - outline: PFT_Outline ); - cdecl; external ft_lib name 'FT_Stroker_ExportBorder'; - - - {************************************************************** - * - * @function: - * FT_Stroker_GetCounts - * - * @description: - * Call this function once you have finished parsing your paths - * with the stroker. It returns the number of points and - * contours necessary to export all points/borders from the stroked - * outline/path. - * - * @input: - * stroker :: - * The target stroker handle. - * - * @output: - * anum_points :: - * The number of points. - * - * anum_contours :: - * The number of contours. - * - * @return: - * FreeType error code. 0 means success. - *} - function FT_Stroker_GetCounts( - stroker: FT_Stroker; - out anum_points: FT_UInt; - out anum_contours: FT_UInt ): FT_Error; - cdecl; external ft_lib name 'FT_Stroker_GetCounts'; - - - {************************************************************** - * - * @function: - * FT_Stroker_Export - * - * @description: - * Call this function after @FT_Stroker_GetBorderCounts to - * export the all borders to your own @FT_Outline structure. - * - * Note that this function will append the border points and - * contours to your outline, but will not try to resize its - * arrays. - * - * @input: - * stroker :: - * The target stroker handle. - * - * outline :: - * The target outline handle. - *} - procedure FT_Stroker_Export( - stroker: FT_Stroker; - outline: PFT_Outline ); - cdecl; external ft_lib name 'FT_Stroker_Export'; - - - {************************************************************** - * - * @function: - * FT_Stroker_Done - * - * @description: - * Destroy a stroker object. - * - * @input: - * stroker :: - * A stroker handle. Can be NULL. - *} - procedure FT_Stroker_Done( stroker: FT_Stroker ); - cdecl; external ft_lib name 'FT_Stroker_Done'; - - - {************************************************************** - * - * @function: - * FT_Glyph_Stroke - * - * @description: - * Stroke a given outline glyph object with a given stroker. - * - * @inout: - * pglyph :: - * Source glyph handle on input, new glyph handle on output. - * - * @input: - * stroker :: - * A stroker handle. - * - * destroy :: - * A Boolean. If 1, the source glyph object is destroyed - * on success. - * - * @return: - * FreeType error code. 0 means success. - * - * @note: - * The source glyph is untouched in case of error. - *} - function FT_Glyph_Stroke( - var glyph: FT_Glyph; - stroker: FT_Stroker; - destroy: FT_Bool ): FT_Error; - cdecl; external ft_lib name 'FT_Glyph_Stroke'; - - - {************************************************************** - * - * @function: - * FT_Glyph_StrokeBorder - * - * @description: - * Stroke a given outline glyph object with a given stroker, but - * only return either its inside or outside border. - * - * @inout: - * pglyph :: - * Source glyph handle on input, new glyph handle on output. - * - * @input: - * stroker :: - * A stroker handle. - * - * inside :: - * A Boolean. If 1, return the inside border, otherwise - * the outside border. - * - * destroy :: - * A Boolean. If 1, the source glyph object is destroyed - * on success. - * - * @return: - * FreeType error code. 0 means success. - * - * @note: - * The source glyph is untouched in case of error. - *} - function FT_Glyph_StrokeBorder( - var glyph: FT_Glyph; - stroker: FT_Stroker; - inside: FT_Bool; - destroy: FT_Bool ): FT_Error; - cdecl; external ft_lib name 'FT_Glyph_StrokeBorder'; - -{$ENDIF TYPE_DECL} - diff --git a/src/lib/freetype/fttypes.inc b/src/lib/freetype/fttypes.inc deleted file mode 100644 index a64432e6..00000000 --- a/src/lib/freetype/fttypes.inc +++ /dev/null @@ -1,311 +0,0 @@ -(***************************************************************************) -(* *) -(* fttypes.h *) -(* *) -(* FreeType simple types definitions (specification only). *) -(* *) -(* Copyright 1996-2001, 2002, 2004, 2006, 2007 by *) -(* David Turner, Robert Wilhelm, and Werner Lemberg. *) -(* *) -(* This file is part of the FreeType project, and may only be used, *) -(* modified, and distributed under the terms of the FreeType project *) -(* license, LICENSE.TXT. By continuing to use, modify, or distribute *) -(* this file you indicate that you have read the license and *) -(* understand and accept it fully. *) -(* *) -(***************************************************************************) -(***************************************************************************) -(* Pascal port by the UltraStar Deluxe Team *) -(***************************************************************************) - - (*************************************************************************) - (* *) - (* <Section> *) - (* basic_types *) - (* *) - (* <Title> *) - (* Basic Data Types *) - (* *) - (* <Abstract> *) - (* The basic data types defined by the library. *) - (* *) - (* <Description> *) - (* This section contains the basic data types defined by FreeType 2, *) - (* ranging from simple scalar types to bitmap descriptors. More *) - (* font-specific structures are defined in a different section. *) - (* *) - (* <Order> *) - (* FT_Byte *) - (* FT_Bytes *) - (* FT_Char *) - (* FT_Int *) - (* FT_UInt *) - (* FT_Short *) - (* FT_UShort *) - (* FT_Long *) - (* FT_ULong *) - (* FT_Bool *) - (* FT_Offset *) - (* FT_PtrDist *) - (* FT_String *) - (* FT_Tag *) - (* FT_Error *) - (* FT_Fixed *) - (* FT_Pointer *) - (* FT_Pos *) - (* FT_Vector *) - (* FT_BBox *) - (* FT_Matrix *) - (* FT_FWord *) - (* FT_UFWord *) - (* FT_F2Dot14 *) - (* FT_UnitVector *) - (* FT_F26Dot6 *) - (* *) - (* *) - (* FT_Generic *) - (* FT_Generic_Finalizer *) - (* *) - (* FT_Bitmap *) - (* FT_Pixel_Mode *) - (* FT_Palette_Mode *) - (* FT_Glyph_Format *) - (* FT_IMAGE_TAG *) - (* *) - (*************************************************************************) - -{$IFDEF TYPE_DECL} - - (*************************************************************************) - (* *) - (* <Type> *) - (* FT_Bool *) - (* *) - (* <Description> *) - (* A typedef of unsigned char, used for simple booleans. As usual, *) - (* values 1 and 0 represent true and false, respectively. *) - (* *) - FT_Bool = cuchar; -{$ENDIF TYPE_DECL} -{$IFNDEF TYPE_DECL} -const - FT_FALSE = 0; - FT_TRUE = 1; -{$ENDIF !TYPE_DECL} -{$IFDEF TYPE_DECL} - - (*************************************************************************) - (* *) - (* <Type> *) - (* FT_Byte *) - (* *) - (* <Description> *) - (* A simple typedef for the _unsigned_ char type. *) - (* *) - FT_Byte = cuchar; - PFT_Byte = ^FT_Byte; - - - (*************************************************************************) - (* *) - (* <Type> *) - (* FT_String *) - (* *) - (* <Description> *) - (* A simple typedef for the char type, usually used for strings. *) - (* *) - FT_String = cchar; - PFT_String = ^FT_String; - - - (*************************************************************************) - (* *) - (* <Type> *) - (* FT_Short *) - (* *) - (* <Description> *) - (* A typedef for signed short. *) - (* *) - FT_Short = csshort; - PFT_Short = ^FT_Short; - - PFT_ShortArray = ^FT_ShortArray; - FT_ShortArray = array[0 .. (MaxInt div SizeOf(FT_Short))-1] of FT_Short; - - (*************************************************************************) - (* *) - (* <Type> *) - (* FT_UShort *) - (* *) - (* <Description> *) - (* A typedef for unsigned short. *) - (* *) - FT_UShort = cushort; - - - (*************************************************************************) - (* *) - (* <Type> *) - (* FT_Int *) - (* *) - (* <Description> *) - (* A typedef for the int type. *) - (* *) - FT_Int = csint; - - - (*************************************************************************) - (* *) - (* <Type> *) - (* FT_UInt *) - (* *) - (* <Description> *) - (* A typedef for the unsigned int type. *) - (* *) - FT_UInt = cuint; - - - (*************************************************************************) - (* *) - (* <Type> *) - (* FT_Long *) - (* *) - (* <Description> *) - (* A typedef for signed long. *) - (* *) - FT_Long = cslong; - - - (*************************************************************************) - (* *) - (* <Type> *) - (* FT_ULong *) - (* *) - (* <Description> *) - (* A typedef for unsigned long. *) - (* *) - FT_ULong = culong; - - - (*************************************************************************) - (* *) - (* <Type> *) - (* FT_F26Dot6 *) - (* *) - (* <Description> *) - (* A signed 26.6 fixed float type used for vectorial pixel *) - (* coordinates. *) - (* *) - FT_F26Dot6 = cslong; - - - (*************************************************************************) - (* *) - (* <Type> *) - (* FT_Fixed *) - (* *) - (* <Description> *) - (* This type is used to store 16.16 fixed float values, like scaling *) - (* values or matrix coefficients. *) - (* *) - FT_Fixed = cslong; - - - (*************************************************************************) - (* *) - (* <Type> *) - (* FT_Error *) - (* *) - (* <Description> *) - (* The FreeType error code type. A value of 0 is always interpreted *) - (* as a successful operation. *) - (* *) - FT_Error = cint; - - - (*************************************************************************) - (* *) - (* <Struct> *) - (* FT_Matrix *) - (* *) - (* <Description> *) - (* A simple structure used to store a 2x2 matrix. Coefficients are *) - (* in 16.16 fixed float format. The computation performed is: *) - (* *) - (* { *) - (* x' = x*xx + y*xy *) - (* y' = x*yx + y*yy *) - (* } *) - (* *) - (* <Fields> *) - (* xx :: Matrix coefficient. *) - (* *) - (* xy :: Matrix coefficient. *) - (* *) - (* yx :: Matrix coefficient. *) - (* *) - (* yy :: Matrix coefficient. *) - (* *) - PFT_Matrix = ^FT_Matrix; - FT_Matrix = record - xx, xy: FT_Fixed; - yx, yy: FT_Fixed; - end; - - - (*************************************************************************) - (* *) - (* <FuncType> *) - (* FT_Generic_Finalizer *) - (* *) - (* <Description> *) - (* Describes a function used to destroy the `client' data of any *) - (* FreeType object. See the description of the FT_Generic type for *) - (* details of usage. *) - (* *) - (* <Input> *) - (* The address of the FreeType object which is under finalization. *) - (* Its client data is accessed through its `generic' field. *) - (* *) - FT_Generic_Finalizer = procedure(AnObject : pointer ); cdecl; - - - (*************************************************************************) - (* *) - (* <Struct> *) - (* FT_Generic *) - (* *) - (* <Description> *) - (* Client applications often need to associate their own data to a *) - (* variety of FreeType core objects. For example, a text layout API *) - (* might want to associate a glyph cache to a given size object. *) - (* *) - (* Most FreeType object contains a `generic' field, of type *) - (* FT_Generic, which usage is left to client applications and font *) - (* servers. *) - (* *) - (* It can be used to store a pointer to client-specific data, as well *) - (* as the address of a `finalizer' function, which will be called by *) - (* FreeType when the object is destroyed (for example, the previous *) - (* client example would put the address of the glyph cache destructor *) - (* in the `finalizer' field). *) - (* *) - (* <Fields> *) - (* data :: A typeless pointer to any client-specified data. This *) - (* field is completely ignored by the FreeType library. *) - (* *) - (* finalizer :: A pointer to a `generic finalizer' function, which *) - (* will be called when the object is destroyed. If this *) - (* field is set to NULL, no code will be called. *) - (* *) - FT_Generic = record - data: pointer; - finalizer: FT_Generic_Finalizer; - end; - - - TByteArray = array [0 .. (MaxInt div SizeOf(byte))-1] of byte; - PByteArray = ^TByteArray; - -{$ENDIF TYPE_DECL} - diff --git a/src/lib/lib-info.txt b/src/lib/lib-info.txt deleted file mode 100644 index 0a184568..00000000 --- a/src/lib/lib-info.txt +++ /dev/null @@ -1,60 +0,0 @@ -bass: -http://www.un4seen.com/ (2.4.2.1) -- FPC Mac OS X compatibility fixes - -fft: -translation of audacity's FFT.cpp by hennymcc (maybe replace this with FFTW?) - -ffmpeg: -- http://www.iversenit.dk/dev/ffmpeg-headers/: 2006-10 -- several bugs were fixed -- many IFDEFS were added to the header to support multiple versions of ffmpeg (starting with end of 2006) and not only one specific version. This is necessary as we cannot control which version is used on linux. We could ship the ffmpeg lib with USDX and link statically but a stripped down ffmpeg is 15MB in size and takes 5 minutes to compile (so static linkage is not a good option). -- the headers were updated to reflect the changes in the ffmpeg C-headers (http://svn.mplayerhq.hu/ffmpeg/trunk/ and http://svn.mplayerhq.hu/mplayer/trunk/libswscale/) - -freeimage: -- inserted by eddie. Some compatibility fixes for platforms different than mac os x. -- not used anymore - -freetype: -- based on the AggPas (http://aggpas.org/) headers -- just a minimal header that contains only some of the freetype functions and types. Some functions and structures/constants/types needed for USDX were added. -- some comments added - -jedi-sdl: -JEDI-SDL v1.0 Final RC 2 (http://jedi-sdl.pascalgamedevelopment.com/) -- 64bit compatibility patch (http://sourceforge.net/tracker/index.php?func=detail&aid=1902924&group_id=43805&atid=437446) -- some Mac OS X patches from freepascal trunk -- some additional patched (see *.patch) - -midi: -taken from http://www.torry.net/authorsmore.php?id=1615 (TMidiPlayer) -- FPC (Win32) compatibility fixes -- Win32 only. Maybe use some timidity stuff under linux. - -libpng: -autocreated H2Pas file taken from freepascal trunk -- bug fixes (especially H2Pas related stuff like wrong file types) -- delphi compatibility -- comments added - -portaudio: -translation of the (patched) audacity C headers by hennymcc. -See http://audacity.cvs.sourceforge.net/viewvc/audacity/lib-src/portaudio-v19/include/?sortdir=down - -portmixer: -translation of the (patched) audacity C headers by hennymcc. -- Unlike portaudio portmixer is part of audacity and there is no linux package for it. If we want to use it for linux, we have to link it statically. Unfortunately it requires a patched version of portaudio (which is part of audacity and statically linked to) so we have to statically link portaudio too :(. - -projectM: -translation of the original C++ headers and C-wrapper by hennymcc - -samplerate: -translation of the original C headers by profoX/hennymcc - -sqlite: -taken from http://www.itwriting.com/blog/a-simple-delphi-wrapper-for-sqlite-3 -- slightly patched: see *.patch files for what has been patched (e.g. Binding) - -zlib: -taken from freepascal (slightly patched) -- delphi compatibility
\ No newline at end of file diff --git a/src/lib/midi/CIRCBUF.PAS b/src/lib/midi/CIRCBUF.PAS deleted file mode 100644 index 3ceb4c6e..00000000 --- a/src/lib/midi/CIRCBUF.PAS +++ /dev/null @@ -1,183 +0,0 @@ -{ $Header: /MidiComp/CIRCBUF.PAS 2 10/06/97 7:33 Davec $ } - -{ Written by David Churcher <dchurcher@cix.compulink.co.uk>, - released to the public domain. } - - -{ A First-In First-Out circular buffer. - Port of circbuf.c from Microsoft's Windows MIDI monitor example. - I did do a version of this as an object (see Rev 1.1) but it was getting too - complicated and I couldn't see any real benefits to it so I dumped it - for an ordinary memory buffer with pointers. - - This unit is a bit C-like, everything is done with pointers and extensive - use is made of the undocumented feature of the Inc() function that - increments pointers by the size of the object pointed to. - All of this could probably be done using Pascal array notation with - range-checking turned off, but I'm not sure it's worth it. -} - -Unit Circbuf; - -interface - -{$IFDEF FPC} - {$MODE Delphi} - {$H+} // use long strings -{$ENDIF} - -Uses - Windows, - MMSystem; - -type - { MIDI input event } - TMidiBufferItem = record - timestamp: DWORD; { Timestamp in milliseconds after midiInStart } - data: DWORD; { MIDI message received } - sysex: PMidiHdr; { Pointer to sysex MIDIHDR, nil if not sysex } - end; - PMidiBufferItem = ^TMidiBufferItem; - - { MIDI input buffer } - TCircularBuffer = record - RecordHandle: HGLOBAL; { Windows memory handle for this record } - BufferHandle: HGLOBAL; { Windows memory handle for the buffer } - pStart: PMidiBufferItem; { ptr to start of buffer } - pEnd: PMidiBufferItem; { ptr to end of buffer } - pNextPut: PMidiBufferItem; { next location to fill } - pNextGet: PMidiBufferItem; { next location to empty } - Error: Word; { error code from MMSYSTEM functions } - Capacity: Word; { buffer size (in TMidiBufferItems) } - EventCount: Word; { Number of events in buffer } - end; - - PCircularBuffer = ^TCircularBuffer; - -function GlobalSharedLockedAlloc( Capacity: Word; var hMem: HGLOBAL ): Pointer; -procedure GlobalSharedLockedFree( hMem: HGLOBAL; ptr: Pointer ); - -function CircbufAlloc( Capacity: Word ): PCircularBuffer; -procedure CircbufFree( PBuffer: PCircularBuffer ); -function CircbufRemoveEvent( PBuffer: PCircularBuffer ): Boolean; -function CircbufReadEvent( PBuffer: PCircularBuffer; PEvent: PMidiBufferItem ): Boolean; -{ Note: The PutEvent function is in the DLL } - -implementation - -{ Allocates in global shared memory, returns pointer and handle } -function GlobalSharedLockedAlloc( Capacity: Word; var hMem: HGLOBAL ): Pointer; -var - ptr: Pointer; -begin - { Allocate the buffer memory } - hMem := GlobalAlloc(GMEM_SHARE Or GMEM_MOVEABLE Or GMEM_ZEROINIT, Capacity ); - - if (hMem = 0) then - ptr := Nil - else - begin - ptr := GlobalLock(hMem); - if (ptr = Nil) then - GlobalFree(hMem); - end; - - GlobalSharedLockedAlloc := Ptr; -end; - -procedure GlobalSharedLockedFree( hMem: HGLOBAL; ptr: Pointer ); -begin - if (hMem <> 0) then - begin - GlobalUnlock(hMem); - GlobalFree(hMem); - end; -end; - -function CircbufAlloc( Capacity: Word ): PCircularBuffer; -var - NewCircularBuffer: PCircularBuffer; - NewMIDIBuffer: PMidiBufferItem; - hMem: HGLOBAL; -begin - { TODO: Validate circbuf size, <64K } - NewCircularBuffer := - GlobalSharedLockedAlloc( Sizeof(TCircularBuffer), hMem ); - if (NewCircularBuffer <> Nil) then - begin - NewCircularBuffer^.RecordHandle := hMem; - NewMIDIBuffer := - GlobalSharedLockedAlloc( Capacity * Sizeof(TMidiBufferItem), hMem ); - if (NewMIDIBuffer = Nil) then - begin - { TODO: Exception here? } - GlobalSharedLockedFree( NewCircularBuffer^.RecordHandle, - NewCircularBuffer ); - NewCircularBuffer := Nil; - end - else - begin - NewCircularBuffer^.pStart := NewMidiBuffer; - { Point to item at end of buffer } - NewCircularBuffer^.pEnd := NewMidiBuffer; - Inc(NewCircularBuffer^.pEnd, Capacity); - { Start off the get and put pointers in the same position. These - will get out of sync as the interrupts start rolling in } - NewCircularBuffer^.pNextPut := NewMidiBuffer; - NewCircularBuffer^.pNextGet := NewMidiBuffer; - NewCircularBuffer^.Error := 0; - NewCircularBuffer^.Capacity := Capacity; - NewCircularBuffer^.EventCount := 0; - end; - end; - CircbufAlloc := NewCircularBuffer; -end; - -procedure CircbufFree( pBuffer: PCircularBuffer ); -begin - if (pBuffer <> Nil) then - begin - GlobalSharedLockedFree(pBuffer^.BufferHandle, pBuffer^.pStart); - GlobalSharedLockedFree(pBuffer^.RecordHandle, pBuffer); - end; -end; - -{ Reads first event in queue without removing it. - Returns true if successful, False if no events in queue } -function CircbufReadEvent( PBuffer: PCircularBuffer; PEvent: PMidiBufferItem ): Boolean; -var - PCurrentEvent: PMidiBufferItem; -begin - if (PBuffer^.EventCount <= 0) then - CircbufReadEvent := False - else - begin - PCurrentEvent := PBuffer^.PNextget; - - { Copy the object from the "tail" of the buffer to the caller's object } - PEvent^.Timestamp := PCurrentEvent^.Timestamp; - PEvent^.Data := PCurrentEvent^.Data; - PEvent^.Sysex := PCurrentEvent^.Sysex; - CircbufReadEvent := True; - end; -end; - -{ Remove current event from the queue } -function CircbufRemoveEvent(PBuffer: PCircularBuffer): Boolean; -begin - if (PBuffer^.EventCount > 0) then - begin - Dec( Pbuffer^.EventCount); - - { Advance the buffer pointer, with wrap } - Inc( Pbuffer^.PNextGet ); - If (PBuffer^.PNextGet = PBuffer^.PEnd) then - PBuffer^.PNextGet := PBuffer^.PStart; - - CircbufRemoveEvent := True; - end - else - CircbufRemoveEvent := False; -end; - -end. diff --git a/src/lib/midi/DELPHMCB.PAS b/src/lib/midi/DELPHMCB.PAS deleted file mode 100644 index ef0d5451..00000000 --- a/src/lib/midi/DELPHMCB.PAS +++ /dev/null @@ -1,140 +0,0 @@ -{ $Header: /MidiComp/DELPHMCB.PAS 2 10/06/97 7:33 Davec $ } - -{MIDI callback for Delphi, was DLL for Delphi 1} - -unit Delphmcb; - -{ These segment options required for the MIDI callback functions } -{$IFNDEF FPC} -{$C PRELOAD FIXED PERMANENT} -{$ENDIF} - -interface - -{$IFDEF FPC} - {$MODE Delphi} - {$H+} // use long strings -{$ENDIF} - -uses - Windows, - MMsystem, - Circbuf, - MidiDefs, - MidiCons; - -procedure midiHandler( - hMidiIn: HMidiIn; - wMsg: UINT; - dwInstance: DWORD; - dwParam1: DWORD; - dwParam2: DWORD); stdcall; export; -function CircbufPutEvent(PBuffer: PCircularBuffer; PTheEvent: PMidiBufferItem): Boolean; stdcall; export; - -implementation - -{ Add an event to the circular input buffer. } -function CircbufPutEvent(PBuffer: PCircularBuffer; PTheEvent: PMidiBufferItem): Boolean; stdcall; -begin - If (PBuffer^.EventCount < PBuffer^.Capacity) Then - begin - Inc(Pbuffer^.EventCount); - - { Todo: better way of copying this record } - with PBuffer^.PNextput^ do - begin - Timestamp := PTheEvent^.Timestamp; - Data := PTheEvent^.Data; - Sysex := PTheEvent^.Sysex; - end; - - { Move to next put location, with wrap } - Inc(Pbuffer^.PNextPut); - If (PBuffer^.PNextPut = PBuffer^.PEnd) then - PBuffer^.PNextPut := PBuffer^.PStart; - - CircbufPutEvent := True; - end - else - CircbufPutEvent := False; -end; - -{ This is the callback function specified when the MIDI device was opened - by midiInOpen. It's called at interrupt time when MIDI input is seen - by the MIDI device driver(s). See the docs for midiInOpen for restrictions - on the Windows functions that can be called in this interrupt. } -procedure midiHandler( - hMidiIn: HMidiIn; - wMsg: UINT; - dwInstance: DWORD; - dwParam1: DWORD; - dwParam2: DWORD); stdcall; -var - thisEvent: TMidiBufferItem; - thisCtlInfo: PMidiCtlInfo; - thisBuffer: PCircularBuffer; -Begin - case wMsg of - - mim_Open: {nothing}; - - mim_Error: {TODO: handle (message to trigger exception?) }; - - mim_Data, mim_Longdata, mim_Longerror: - { Note: mim_Longerror included because there's a bug in the Maui - input driver that sends MIM_LONGERROR for subsequent buffers when - the input buffer is smaller than the sysex block being received } - - begin - { TODO: Make filtered messages customisable, I'm sure someone wants to - do something with MTC! } - if (dwParam1 <> MIDI_ACTIVESENSING) and - (dwParam1 <> MIDI_TIMINGCLOCK) then - begin - - { The device driver passes us the instance data pointer we - specified for midiInOpen. Use this to get the buffer address - and window handle for the MIDI control } - thisCtlInfo := PMidiCtlInfo(dwInstance); - thisBuffer := thisCtlInfo^.PBuffer; - - { Screen out short messages if we've been asked to } - if ((wMsg <> mim_Data) or (thisCtlInfo^.SysexOnly = False)) - and (thisCtlInfo <> Nil) and (thisBuffer <> Nil) then - begin - with thisEvent do - begin - timestamp := dwParam2; - if (wMsg = mim_Longdata) or - (wMsg = mim_Longerror) then - begin - data := 0; - sysex := PMidiHdr(dwParam1); - end - else - begin - data := dwParam1; - sysex := Nil; - end; - end; - if CircbufPutEvent( thisBuffer, @thisEvent ) then - { Send a message to the control to say input's arrived } - PostMessage(thisCtlInfo^.hWindow, mim_Data, 0, 0) - else - { Buffer overflow } - PostMessage(thisCtlInfo^.hWindow, mim_Overflow, 0, 0); - end; - end; - end; - - mom_Done: { Sysex output complete, dwParam1 is pointer to MIDIHDR } - begin - { Notify the control that its sysex output is finished. - The control should call midiOutUnprepareHeader before freeing the buffer } - PostMessage(PMidiCtlInfo(dwInstance)^.hWindow, mom_Done, 0, dwParam1); - end; - - end; { Case } -end; - -end. diff --git a/src/lib/midi/MIDIDEFS.PAS b/src/lib/midi/MIDIDEFS.PAS deleted file mode 100644 index 4afe56ef..00000000 --- a/src/lib/midi/MIDIDEFS.PAS +++ /dev/null @@ -1,55 +0,0 @@ -{ $Header: /MidiComp/MIDIDEFS.PAS 2 10/06/97 7:33 Davec $ } - -{ Written by David Churcher <dchurcher@cix.compulink.co.uk>, - released to the public domain. } - - -{ Common definitions used by DELPHMID.DPR and the MIDI components. - This must be a separate unit to prevent large chunks of the VCL being - linked into the DLL. } -unit Mididefs; - -interface - -{$IFDEF FPC} - {$MODE Delphi} - {$H+} // use long strings -{$ENDIF} - -uses - Windows, - MMsystem, - Circbuf; - -type - - {-------------------------------------------------------------------} - { This is the information about the control that must be accessed by - the MIDI input callback function in the DLL at interrupt time } - PMidiCtlInfo = ^TMidiCtlInfo; - TMidiCtlInfo = record - hMem: THandle; { Memory handle for this record } - PBuffer: PCircularBuffer; { Pointer to the MIDI input data buffer } - hWindow: HWnd; { Control's window handle } - SysexOnly: Boolean; { Only process System Exclusive input } - end; - - { Information for the output timer callback function, also required at - interrupt time. } - PMidiOutTimerInfo = ^TMidiOutTimerInfo; - TMidiOutTimerInfo = record - hMem: THandle; { Memory handle for this record } - PBuffer: PCircularBuffer; { Pointer to MIDI output data buffer } - hWindow: HWnd; { Control's window handle } - TimeToNextEvent: DWORD; { Delay to next event after timer set } - MIDIHandle: HMidiOut; { MIDI handle to send output to - (copy of component's FMidiHandle property) } - PeriodMin: Word; { Multimedia timer minimum period supported } - PeriodMax: Word; { Multimedia timer maximum period supported } - TimerId: Word; { Multimedia timer ID of current event } - end; - -implementation - - -end. diff --git a/src/lib/midi/MIDITYPE.PAS b/src/lib/midi/MIDITYPE.PAS deleted file mode 100644 index 45b50820..00000000 --- a/src/lib/midi/MIDITYPE.PAS +++ /dev/null @@ -1,90 +0,0 @@ -{ $Header: /MidiComp/MIDITYPE.PAS 2 10/06/97 7:33 Davec $ } - -{ Written by David Churcher <dchurcher@cix.compulink.co.uk>, - released to the public domain. } - - -unit Miditype; - -interface - -{$IFDEF FPC} - {$MODE Delphi} - {$H+} // use long strings -{$ENDIF} - -uses - Classes, - Windows, - Messages, - MMSystem, - MidiDefs, - Circbuf; - -type - {-------------------------------------------------------------------} - { A MIDI input/output event } - TMyMidiEvent = class(TPersistent) - public - MidiMessage: Byte; { MIDI message status byte } - Data1: Byte; { MIDI message data 1 byte } - Data2: Byte; { MIDI message data 2 byte } - Time: DWORD; { Time in ms since midiInOpen } - SysexLength: Word; { Length of sysex data (0 if none) } - Sysex: PChar; { Pointer to sysex data buffer } - destructor Destroy; override; { Frees sysex data buffer if nec. } - end; - PMyMidiEvent = ^TMyMidiEvent; - - {-------------------------------------------------------------------} - { Encapsulates the MIDIHDR with its memory handle and sysex buffer } - PMyMidiHdr = ^TMyMidiHdr; - TMyMidiHdr = class(TObject) - public - hdrHandle: THandle; - hdrPointer: PMIDIHDR; - sysexHandle: THandle; - sysexPointer: Pointer; - constructor Create(BufferSize: Word); - destructor Destroy; override; - end; - -implementation - -{-------------------------------------------------------------------} -{ Free any sysex buffer associated with the event } -destructor TMyMidiEvent.Destroy; -begin - if (Sysex <> Nil) then - Freemem(Sysex, SysexLength); - - inherited Destroy; -end; - -{-------------------------------------------------------------------} -{ Allocate memory for the sysex header and buffer } -constructor TMyMidiHdr.Create(BufferSize:Word); -begin - inherited Create; - - if BufferSize > 0 then - begin - hdrPointer := GlobalSharedLockedAlloc(sizeof(TMIDIHDR), hdrHandle); - sysexPointer := GlobalSharedLockedAlloc(BufferSize, sysexHandle); - - hdrPointer^.lpData := sysexPointer; - hdrPointer^.dwBufferLength := BufferSize; - end; -end; - -{-------------------------------------------------------------------} -destructor TMyMidiHdr.Destroy; -begin - GlobalSharedLockedFree( hdrHandle, hdrPointer ); - GlobalSharedLockedFree( sysexHandle, sysexPointer ); - inherited Destroy; -end; - - - -end. diff --git a/src/lib/midi/demo/MidiTest.dfm b/src/lib/midi/demo/MidiTest.dfm Binary files differdeleted file mode 100644 index 0d0ae182..00000000 --- a/src/lib/midi/demo/MidiTest.dfm +++ /dev/null diff --git a/src/lib/midi/demo/Project1.dpr b/src/lib/midi/demo/Project1.dpr deleted file mode 100644 index 7aa4e512..00000000 --- a/src/lib/midi/demo/Project1.dpr +++ /dev/null @@ -1,13 +0,0 @@ -program Project1; - -uses - Forms, - MidiTest in 'MidiTest.pas' {MidiPlayer}; - -{$R *.RES} - -begin - Application.Initialize; - Application.CreateForm(TMidiPlayer, MidiPlayer); - Application.Run; -end. diff --git a/src/lib/midi/demo/Project1.res b/src/lib/midi/demo/Project1.res Binary files differdeleted file mode 100644 index 2b020d69..00000000 --- a/src/lib/midi/demo/Project1.res +++ /dev/null diff --git a/src/lib/midi/midiComp.cfg b/src/lib/midi/midiComp.cfg deleted file mode 100644 index 8b774c81..00000000 --- a/src/lib/midi/midiComp.cfg +++ /dev/null @@ -1,35 +0,0 @@ --$A+ --$B- --$C+ --$D+ --$E- --$F- --$G+ --$H+ --$I+ --$J+ --$K- --$L+ --$M- --$N+ --$O+ --$P+ --$Q- --$R- --$S- --$T- --$U- --$V+ --$W- --$X+ --$Y- --$Z1 --cg --AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; --H+ --W+ --M --$M16384,1048576 --K$00400000 --LE"d:\program files\borland\delphi5\Projects\Bpl" --LN"d:\program files\borland\delphi5\Projects\Bpl" diff --git a/src/lib/midi/midiComp.dpk b/src/lib/midi/midiComp.dpk deleted file mode 100644 index 7c403eae..00000000 --- a/src/lib/midi/midiComp.dpk +++ /dev/null @@ -1,45 +0,0 @@ -package midiComp;
-
-{$R *.RES}
-{$R 'MidiFile.dcr'}
-{$R 'Midiin.dcr'}
-{$R 'Midiout.dcr'}
-{$R 'MidiScope.dcr'}
-{$ALIGN ON}
-{$ASSERTIONS ON}
-{$BOOLEVAL OFF}
-{$DEBUGINFO ON}
-{$EXTENDEDSYNTAX ON}
-{$IMPORTEDDATA ON}
-{$IOCHECKS ON}
-{$LOCALSYMBOLS ON}
-{$LONGSTRINGS ON}
-{$OPENSTRINGS ON}
-{$OPTIMIZATION ON}
-{$OVERFLOWCHECKS OFF}
-{$RANGECHECKS OFF}
-{$REFERENCEINFO OFF}
-{$SAFEDIVIDE OFF}
-{$STACKFRAMES OFF}
-{$TYPEDADDRESS OFF}
-{$VARSTRINGCHECKS ON}
-{$WRITEABLECONST ON}
-{$MINENUMSIZE 1}
-{$IMAGEBASE $400000}
-{$DESCRIPTION 'Midi related components'}
-{$DESIGNONLY}
-{$IMPLICITBUILD ON}
-
-requires
- vcl50;
-
-contains
- Miditype in 'Miditype.pas',
- Mididefs in 'Mididefs.pas',
- MidiFile in 'MidiFile.pas',
- Midiin in 'Midiin.pas',
- Midiout in 'Midiout.pas',
- MidiScope in 'MidiScope.pas',
- Midicons in 'Midicons.pas';
-
-end.
diff --git a/src/lib/midi/midiComp.res b/src/lib/midi/midiComp.res Binary files differdeleted file mode 100644 index 91fb756e..00000000 --- a/src/lib/midi/midiComp.res +++ /dev/null diff --git a/src/lib/midi/readme.txt b/src/lib/midi/readme.txt deleted file mode 100644 index 7112aecf..00000000 --- a/src/lib/midi/readme.txt +++ /dev/null @@ -1,60 +0,0 @@ - -Midi components - TMidiFile, TMidiScope - TMidiIn and TMidiOut of david Churcher are included because they are used in - the demo application - -Freeware. - -100% source code, demo application. - -Included Components/Classes - -TMidiFile, read a midifile and have the contents available in memory - list of Tracks, track is list of events - - -TMidiScope, show all activity on a midi device - -TMidiIn and TMidiOut of David Churcher are included because they are used -in the demo application - -Midiplayer is a demo application which plays a midifile on a midi output - it is build fairly simple with the included components. The timer is used - to time the midievents. The timing is therefor as good as the windows timer. - - - The header of midifile,midiscope contains help information on the properties/functions - The example Midiplayer gives a good idea how to use the components - -Installation - open midiComp.dpk with file/open - compile and install the package - make sure that the directory where the files are located is in the library path - (tools/environment options/library) - -to run the demo - open project1.dpr in the demo directory and press run. - - - -history -1.0 18-1-1999 first release - -1.1 5-3-1999 update - added some functions for display purposes - improved demo to include event viewer - bpm can be changed - -1.2 24-2-2000 update - added some functions to see the length of a song and ready function to know when playback is ready - -for comments/bugs in these components: - -Frans Bouwmans -fbouwmans@spiditel.nl - -I'm busy building a software music synthesizer, which will be available in source -to the public. If you are interrested in helping me with certain soundmodules -(effects, filters, sound generators) just sent me an email. - diff --git a/src/lib/projectM/cwrapper/Makefile.in b/src/lib/projectM/cwrapper/Makefile.in deleted file mode 100644 index fef3b80b..00000000 --- a/src/lib/projectM/cwrapper/Makefile.in +++ /dev/null @@ -1,41 +0,0 @@ -################################################# -# projectM C-wrapper -# @configure_input@ -################################################# - -@SET_MAKE@ - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ - -OBJECTS = projectM-cwrapper.o -LIBRARY = libprojectM-cwrapper.a - -CXX = @CXX@ -CXXFLAGS += @CXXFLAGS@ -INCLUDES = -I@libprojectM_INCLUDEDIR@/libprojectM -DEFINES = -DPROJECTM_VERSION_INT=@libprojectM_VERSION_INT@ -RANLIB = @RANLIB@ - -.PHONY: all clean distclean strip - -all : $(LIBRARY) - -$(LIBRARY): $(OBJECTS) - ar ruv $(LIBRARY) $(OBJECTS) - $(RANLIB) $(LIBRARY) - -%.o : %.cpp - $(CXX) $(CXXFLAGS) $(DEFINES) $(INCLUDES) -c $(<) -o $@ - -clean : - rm -f $(LIBRARY) - rm -f $(OBJECTS) - -distclean: clean - rm -rf Makefile - -strip : - strip $(LIBRARY) - $(RANLIB) $(LIBRARY) - diff --git a/src/lib/projectM/cwrapper/projectM-cwrapper.cpp b/src/lib/projectM/cwrapper/projectM-cwrapper.cpp deleted file mode 100644 index ebf43554..00000000 --- a/src/lib/projectM/cwrapper/projectM-cwrapper.cpp +++ /dev/null @@ -1,104 +0,0 @@ -#include "projectM-cwrapper.h" - -#define PM_CLASS(pm) ((projectM*)pm) - -#if (PROJECTM_VERSION_INT > 1000000) -#define PM_PCM(pm) (PM_CLASS(pm)->pcm()) -#else -#define PM_PCM(pm) (PM_CLASS(pm)->pcm) -#endif - -projectM_ptr projectM_create1(char* config_file) -{ - return projectM_ptr(new projectM(config_file)); -} - -#if (PROJECTM_VERSION_INT < 1000000) -projectM_ptr projectM_create2(int gx, int gy, int fps, int texsize, - int width, int height, char* preset_url, - char* title_fonturl, char* title_menuurl) -{ - return projectM_ptr(new projectM(gx, gy, fps, texsize, width, height, - preset_url, title_fonturl, title_menuurl));} -#endif - -void projectM_resetGL(projectM_ptr pm, int width, int height) -{ - PM_CLASS(pm)->projectM_resetGL(width, height); -} - -void projectM_setTitle(projectM_ptr pm, char* title) -{ - PM_CLASS(pm)->projectM_setTitle(title); -} - -void projectM_renderFrame(projectM_ptr pm) -{ - PM_CLASS(pm)->renderFrame(); -} - -unsigned projectM_initRenderToTexture(projectM_ptr pm) -{ - return PM_CLASS(pm)->initRenderToTexture(); -} - -void projectM_key_handler(projectM_ptr pm, projectMEvent event, - projectMKeycode keycode, projectMModifier modifier) -{ - PM_CLASS(pm)->key_handler(event, keycode, modifier); -} - -void projectM_free(projectM_ptr pm) -{ - delete PM_CLASS(pm); -} - -void PCM_addPCMfloat(projectM_ptr pm, float *PCMdata, int samples) -{ - PM_PCM(pm)->addPCMfloat(PCMdata, samples); -} - -void PCM_addPCM16(projectM_ptr pm, short pcm_data[2][512]) -{ - PM_PCM(pm)->addPCM16(pcm_data); -} - -void PCM_addPCM16Data(projectM_ptr pm, const short* pcm_data, short samples) -{ - PM_PCM(pm)->addPCM16Data(pcm_data, samples); -} - -void PCM_addPCM8(projectM_ptr pm, unsigned char pcm_data[2][1024]) -{ - PM_PCM(pm)->addPCM8(pcm_data); -} - -void PCM_addPCM8_512(projectM_ptr pm, const unsigned char pcm_data[2][512]) -{ - PM_PCM(pm)->addPCM8_512(pcm_data); -} - -#define COPY_FIELD(c_ptr, s, fld) (c_ptr->fld = s.fld) - -#if (PROJECTM_VERSION_INT > 1000000) -void projectM_settings(projectM_ptr pm, Settings* settings) -{ - const projectM::Settings& pmSettings = PM_CLASS(pm)->settings(); - - COPY_FIELD(settings, pmSettings, meshX); - COPY_FIELD(settings, pmSettings, meshY); - COPY_FIELD(settings, pmSettings, fps); - COPY_FIELD(settings, pmSettings, textureSize); - COPY_FIELD(settings, pmSettings, windowWidth); - COPY_FIELD(settings, pmSettings, windowHeight); - settings->presetURL = pmSettings.presetURL.c_str(); - settings->titleFontURL = pmSettings.titleFontURL.c_str(); - settings->menuFontURL = pmSettings.menuFontURL.c_str(); - COPY_FIELD(settings, pmSettings, smoothPresetDuration); - COPY_FIELD(settings, pmSettings, presetDuration); - COPY_FIELD(settings, pmSettings, beatSensitivity); - COPY_FIELD(settings, pmSettings, aspectCorrection); - COPY_FIELD(settings, pmSettings, easterEgg); - COPY_FIELD(settings, pmSettings, shuffleEnabled); -} -#endif diff --git a/src/lib/projectM/cwrapper/projectM-cwrapper.h b/src/lib/projectM/cwrapper/projectM-cwrapper.h deleted file mode 100644 index 43f36ef4..00000000 --- a/src/lib/projectM/cwrapper/projectM-cwrapper.h +++ /dev/null @@ -1,67 +0,0 @@ -#ifndef __PROJECTM_CWRAPPER_H__ -#define __PROJECTM_CWRAPPER_H__ - -#include "projectM.hpp" - -// PROJECTM_VERSION define is not very helpful, lets create our own -#define PROJECTM_VERSION_1_00_00 1000000 // 1.00.00 = 1.0 or 1.01 (same version number for 1.0 and 1.01) -#define PROJECTM_VERSION_1_10_00 1010000 // 1.10.00 = 1.1 (bigger than 1.2 due to strange versioning) -#define PROJECTM_VERSION_1_02_00 1002000 // 1.02.00 = 1.2 - -// version of projectM to wrap (see PROJECTM_VERSION) -#ifndef PROJECTM_VERSION_INT -#define PROJECTM_VERSION_INT PROJECTM_VERSION_1_02_00 -#endif - -extern "C" { - - #if (PROJECTM_VERSION_INT > 1000000) - struct Settings { - int meshX; - int meshY; - int fps; - int textureSize; - int windowWidth; - int windowHeight; - const char* presetURL; - const char* titleFontURL; - const char* menuFontURL; - int smoothPresetDuration; - int presetDuration; - float beatSensitivity; - char aspectCorrection; - float easterEgg; - char shuffleEnabled; - }; - #endif - - typedef void* projectM_ptr; - - DLLEXPORT projectM_ptr projectM_create1(char* config_file); - #if (PROJECTM_VERSION_INT < 1000000) - DLLEXPORT projectM_ptr projectM_create2(int gx, int gy, int fps, int texsize, - int width, int height, char* preset_url, - char* title_fonturl, char* title_menuurl); - #endif - - DLLEXPORT void projectM_resetGL(projectM_ptr pm, int width, int height); - DLLEXPORT void projectM_setTitle(projectM_ptr pm, char* title); - DLLEXPORT void projectM_renderFrame(projectM_ptr pm); - DLLEXPORT unsigned projectM_initRenderToTexture(projectM_ptr pm); - DLLEXPORT void projectM_key_handler(projectM_ptr pm, projectMEvent event, - projectMKeycode keycode, projectMModifier modifier); - - DLLEXPORT void projectM_free(projectM_ptr pm); - - DLLEXPORT void PCM_addPCMfloat(projectM_ptr pm, float *PCMdata, int samples); - DLLEXPORT void PCM_addPCM16(projectM_ptr pm, short [2][512]); - DLLEXPORT void PCM_addPCM16Data(projectM_ptr pm, const short* pcm_data, short samples); - DLLEXPORT void PCM_addPCM8(projectM_ptr pm, unsigned char [2][1024]); - DLLEXPORT void PCM_addPCM8_512(projectM_ptr pm, const unsigned char [2][512]); - - #if (PROJECTM_VERSION_INT > 1000000) - DLLEXPORT void projectM_settings(projectM_ptr pm, Settings* settings); - #endif -} - -#endif diff --git a/src/lib/projectM/cwrapper/projectM-cwrapper.sln b/src/lib/projectM/cwrapper/projectM-cwrapper.sln deleted file mode 100644 index e05f79a3..00000000 --- a/src/lib/projectM/cwrapper/projectM-cwrapper.sln +++ /dev/null @@ -1,20 +0,0 @@ -
-Microsoft Visual Studio Solution File, Format Version 9.00
-# Visual Studio 2005
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "projectM-cwrapper", "projectM-cwrapper.vcproj", "{8E653284-12F3-4A90-9D0D-4195557051F7}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Win32 = Debug|Win32
- Release|Win32 = Release|Win32
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {8E653284-12F3-4A90-9D0D-4195557051F7}.Debug|Win32.ActiveCfg = Debug|Win32
- {8E653284-12F3-4A90-9D0D-4195557051F7}.Debug|Win32.Build.0 = Debug|Win32
- {8E653284-12F3-4A90-9D0D-4195557051F7}.Release|Win32.ActiveCfg = Release|Win32
- {8E653284-12F3-4A90-9D0D-4195557051F7}.Release|Win32.Build.0 = Release|Win32
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/src/lib/projectM/cwrapper/projectM-cwrapper.vcproj b/src/lib/projectM/cwrapper/projectM-cwrapper.vcproj deleted file mode 100644 index 94e848d7..00000000 --- a/src/lib/projectM/cwrapper/projectM-cwrapper.vcproj +++ /dev/null @@ -1,208 +0,0 @@ -<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
- ProjectType="Visual C++"
- Version="8,00"
- Name="projectM-cwrapper"
- ProjectGUID="{8E653284-12F3-4A90-9D0D-4195557051F7}"
- RootNamespace="projectMcwrapper"
- Keyword="Win32Proj"
- >
- <Platforms>
- <Platform
- Name="Win32"
- />
- </Platforms>
- <ToolFiles>
- </ToolFiles>
- <Configurations>
- <Configuration
- Name="Debug|Win32"
- OutputDirectory="$(SolutionDir)$(ConfigurationName)"
- IntermediateDirectory="$(ConfigurationName)"
- ConfigurationType="2"
- CharacterSet="2"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories=""D:\daten\ultrastar\libprojectM\libprojectM-1.2.0\projectM";"D:\daten\ultrastar\libprojectM\libs\pthreads\Pre-built.2\include""
- PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;PROJECTMCWRAPPER_EXPORTS"
- MinimalRebuild="true"
- BasicRuntimeChecks="3"
- RuntimeLibrary="3"
- UsePrecompiledHeader="0"
- WarningLevel="3"
- Detect64BitPortabilityProblems="true"
- DebugInformationFormat="4"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="libprojectM.lib"
- LinkIncremental="2"
- AdditionalLibraryDirectories=""D:\daten\ultrastar\libprojectM\libprojectM-1.2.0\projectM\Debug""
- GenerateDebugInformation="true"
- SubSystem="2"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCWebDeploymentTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- <Configuration
- Name="Release|Win32"
- OutputDirectory="$(SolutionDir)$(ConfigurationName)"
- IntermediateDirectory="$(ConfigurationName)"
- ConfigurationType="2"
- CharacterSet="1"
- WholeProgramOptimization="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- />
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""D:\daten\ultrastar\libprojectM\libprojectM-1.2.0\projectM";"D:\daten\ultrastar\libprojectM\libs\pthreads\Pre-built.2\include""
- PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;PROJECTMCWRAPPER_EXPORTS"
- ExceptionHandling="1"
- RuntimeLibrary="2"
- UsePrecompiledHeader="0"
- WarningLevel="3"
- Detect64BitPortabilityProblems="true"
- DebugInformationFormat="3"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalDependencies="libprojectM.lib"
- LinkIncremental="1"
- AdditionalLibraryDirectories=""D:\daten\ultrastar\libprojectM\libprojectM-1.2.0\projectM\Release""
- GenerateDebugInformation="true"
- SubSystem="2"
- OptimizeReferences="2"
- EnableCOMDATFolding="2"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCWebDeploymentTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- </Configurations>
- <References>
- </References>
- <Files>
- <Filter
- Name="Quelldateien"
- Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
- UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
- >
- <File
- RelativePath=".\projectM-cwrapper.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Headerdateien"
- Filter="h;hpp;hxx;hm;inl;inc;xsd"
- UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
- >
- <File
- RelativePath=".\projectM-cwrapper.h"
- >
- </File>
- </Filter>
- <Filter
- Name="Ressourcendateien"
- Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
- UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
- >
- </Filter>
- </Files>
- <Globals>
- </Globals>
-</VisualStudioProject>
diff --git a/src/lib/projectM/projectM-0_9.inc b/src/lib/projectM/projectM-0_9.inc deleted file mode 100644 index 6b525cf7..00000000 --- a/src/lib/projectM/projectM-0_9.inc +++ /dev/null @@ -1,427 +0,0 @@ -{$IFDEF Unix} -uses - baseunix; -{$ENDIF} - -const -{$IF Defined(MSWINDOWS)} - libprojectM = 'libprojectM.dll'; -{$ELSEIF Defined(UNIX)} - libprojectM = 'libprojectM.so'; -{$IFEND} - -{**************** INTERNAL SECTION ****************} - - -type - PPCfloat = ^PCfloat; - -type - _TContextType = cint; -const - AGL_CONTEXT = 0; - CGL_CONTEXT = 1; - NSGL_CONTEXT = 2; - GLX_CONTEXT = 3; - WGL_CONTEXT = 4; - -type - _PRenderTarget = ^_TRenderTarget; - _TRenderTarget = record - { Texture size } - texsize: cint; - - { Application context } - origContextType: _TContextType; - - usePbuffers: cint; - - {$ifdef LINUX} - lock_func: procedure(); cdecl; - unlock_func: procedure(); cdecl; - {$endif} - - { Opaque pbuffer context and pbuffer } - {$ifdef DARWIN} - origContext: Pointer; - pbufferContext: Pointer; - pbuffer: Pointer; - {$endif} - - { Render target texture ID for non-pbuffer systems } - textureID: array[0..2] of GLuint; - end; - - _PProjectM = ^_TProjectM; - _TProjectM = record - presetURL: PChar; - presetName: PChar; - fontURL: PChar; - - hasInit: cint; - - noSwitch: cint; - pcmframes: cint; - freqframes: cint; - totalframes: cint; - - showfps: cint; - showtitle: cint; - showpreset: cint; - showhelp: cint; - showstats: cint; - - studio: cint; - - fbuffer: PGLubyte; - - {$IFNDEF MSWINDOWS} - { The first ticks value of the application } - startTime: timeval; - {$ELSE} - startTime: clong; - {$ENDIF} - Time: cfloat; - - { Render target texture ID } - renderTarget: _PRenderTarget; - - disp: array[0..79] of Char; - - wave_o: cfloat; - - //int texsize=1024; //size of texture to do actual graphics - fvw: cint; //fullscreen dimensions - fvh: cint; - wvw: cint; //windowed dimensions - wvh: cint; - vw: cint; //runtime dimensions - vh: cint; - fullscreen: cint; - - maxsamples: cint; //size of PCM buffer - numsamples: cint; //size of new PCM info - pcmdataL: PCfloat; //holder for most recent pcm data - pcmdataR: PCfloat; //holder for most recent pcm data - - avgtime: cint; //# frames per preset - - title: PChar; - drawtitle: cint; - - correction: cint; - - vol: cfloat; - - //per pixel equation variables - gridx: PPCfloat; //grid containing interpolated mesh - gridy: PPCfloat; - origtheta: PPCfloat; //grid containing interpolated mesh reference values - origrad: PPCfloat; - origx: PPCfloat; //original mesh - origy: PPCfloat; - origx2: PPCfloat; //original mesh - origy2: PPCfloat; - - { Timing information } - mspf: cint; - timed: cint; - timestart: cint; - nohard: cint; - count: cint; - realfps, - fpsstart: cfloat; - - { PCM data } - vdataL: array[0..511] of cfloat; //holders for FFT data (spectrum) - vdataR: array[0..511] of cfloat; - - { Various toggles } - doPerPixelEffects: cint; - doIterative: cint; - - { ENGINE VARIABLES } - { From engine_vars.h } - preset_name: array[0..255] of Char; - - { PER FRAME CONSTANTS BEGIN } - zoom: cfloat; - zoomexp: cfloat; - rot: cfloat; - warp: cfloat; - - sx: cfloat; - sy: cfloat; - dx: cfloat; - dy: cfloat; - cx: cfloat; - cy: cfloat; - - gy: cint; - gx: cint; - - decay: cfloat; - - wave_r: cfloat; - wave_g: cfloat; - wave_b: cfloat; - wave_x: cfloat; - wave_y: cfloat; - wave_mystery: cfloat; - - ob_size: cfloat; - ob_r: cfloat; - ob_g: cfloat; - ob_b: cfloat; - ob_a: cfloat; - - ib_size: cfloat; - ib_r: cfloat; - ib_g: cfloat; - ib_b: cfloat; - ib_a: cfloat; - - meshx: cint; - meshy: cint; - - mv_a: cfloat; - mv_r: cfloat; - mv_g: cfloat; - mv_b: cfloat; - mv_l: cfloat; - mv_x: cfloat; - mv_y: cfloat; - mv_dy: cfloat; - mv_dx: cfloat; - - treb: cfloat; - mid: cfloat; - bass: cfloat; - bass_old: cfloat; - beat_sensitivity: cfloat; - treb_att: cfloat; - mid_att: cfloat; - bass_att: cfloat; - progress: cfloat; - frame: cint; - - { PER_FRAME CONSTANTS END } - - { PER_PIXEL CONSTANTS BEGIN } - - x_per_pixel: cfloat; - y_per_pixel: cfloat; - rad_per_pixel: cfloat; - ang_per_pixel: cfloat; - - { PER_PIXEL CONSTANT END } - - - fRating: cfloat; - fGammaAdj: cfloat; - fVideoEchoZoom: cfloat; - fVideoEchoAlpha: cfloat; - - nVideoEchoOrientation: cint; - nWaveMode: cint; - bAdditiveWaves: cint; - bWaveDots: cint; - bWaveThick: cint; - bModWaveAlphaByVolume: cint; - bMaximizeWaveColor: cint; - bTexWrap: cint; - bDarkenCenter: cint; - bRedBlueStereo: cint; - bBrighten: cint; - bDarken: cint; - bSolarize: cint; - bInvert: cint; - bMotionVectorsOn: cint; - fps: cint; - - fWaveAlpha: cfloat; - fWaveScale: cfloat; - fWaveSmoothing: cfloat; - fWaveParam: cfloat; - fModWaveAlphaStart: cfloat; - fModWaveAlphaEnd: cfloat; - fWarpAnimSpeed: cfloat; - fWarpScale: cfloat; - fShader: cfloat; - - - { Q VARIABLES START } - - q1: cfloat; - q2: cfloat; - q3: cfloat; - q4: cfloat; - q5: cfloat; - q6: cfloat; - q7: cfloat; - q8: cfloat; - - - { Q VARIABLES END } - - zoom_mesh: PPCfloat; - zoomexp_mesh: PPCfloat; - rot_mesh: PPCfloat; - - sx_mesh: PPCfloat; - sy_mesh: PPCfloat; - dx_mesh: PPCfloat; - dy_mesh: PPCfloat; - cx_mesh: PPCfloat; - cy_mesh: PPCfloat; - - x_mesh: PPCfloat; - y_mesh: PPCfloat; - rad_mesh: PPCfloat; - theta_mesh: PPCfloat; - end; - - PProjectMState = ^TProjectMState; - TProjectMState = record - fontURLStr: string; - presetURLStr: string; - titleStr: string; - pm: _TProjectM; - end; - -{ projectM.h declarations } -procedure _projectM_init(pm: _PProjectM); cdecl; external libprojectM name 'projectM_init'; -procedure _projectM_reset(pm: _PProjectM); cdecl; external libprojectM name 'projectM_reset'; -procedure _projectM_resetGL(pm: _PProjectM; width: cint; height: cint); cdecl; external libprojectM name 'projectM_resetGL'; -procedure _projectM_setTitle(pm: _PProjectM; title: PChar); cdecl; external libprojectM name 'projectM_setTitle'; -procedure _renderFrame(pm: _PProjectM); cdecl; external libprojectM name 'renderFrame'; - -{ PCM.h declarations } -procedure _addPCMfloat(pcm_data: PCfloat; samples: cint); cdecl; external libprojectM name 'addPCMfloat'; -procedure _addPCM16(pcm_data: PPCM16); cdecl; external libprojectM name 'addPCM16'; -procedure _addPCM16Data(pcm_data: PCshort; samples: cshort); cdecl; external libprojectM name 'addPCM16Data'; -procedure _addPCM8_512(pcm_data: PPCM8_512); cdecl; external libprojectM name 'addPCM8'; - -{ console_interface.h declarations } -procedure _key_handler(pm: _PProjectM; - event: TProjectMEvent; - keycode: TProjectMKeycode; - modifier: TProjectMModifier); cdecl; external libprojectM name 'key_handler'; - - - - -{**************** EXTERNAL SECTION ****************} - - -constructor TProjectM.Create(gx, gy: cint; fps: integer; - texsize: integer; width, height: integer; - const presetsDir, fontsDir: string; - const titleFont, menuFont: string); -var - state: PProjectMState; -begin - inherited Create(); - - New(state); - data := state; - - with state^ do - begin - // copy strings (Note: do not use e.g. PChar(presetsDir) directly, it might - // be a pointer to local stack data that is invalid after the calling function returns) - fontURLStr := fontsDir; - presetURLStr := presetsDir; - - _projectM_reset(@pm); - - pm.fullscreen := 0; - pm.renderTarget^.texsize := texsize; - pm.gx := gx; - pm.gy := gy; - pm.fps := fps; - pm.renderTarget^.usePbuffers := 0; - pm.fontURL := PChar(fontURLStr); - pm.presetURL := PChar(presetURLStr); - - _projectM_init(@pm); - end; -end; - -procedure TProjectM.ResetGL(width, height: integer); -begin - _projectM_resetGL(@PProjectMState(data).pm, width, height); -end; - -procedure TProjectM.SetTitle(const title: string); -var - state: PProjectMState; -begin - state := PProjectMState(data); - with state^ do - begin - titleStr := title; - pm.title := PChar(titleStr); - pm.showtitle := 1; - end; -end; - -procedure TProjectM.RenderFrame(); -begin - _renderFrame(@PProjectMState(data).pm); -end; - -procedure TProjectM.AddPCMfloat(pcmData: PSingle; samples: integer); -begin - _addPCMfloat(PCfloat(pcmData), samples); -end; - -procedure TProjectM.AddPCM16(pcmData: PPCM16); -begin - _addPCM16(pcmData); -end; - -procedure TProjectM.AddPCM16Data(pcmData: PSmallint; samples: Smallint); -begin - _addPCM16Data(PCshort(pcmData), samples); -end; - -procedure TProjectM.AddPCM8_512(pcmData: PPCM8_512); -begin - _addPCM8_512(pcmData); -end; - -procedure TProjectM.KeyHandler(event: TProjectMEvent; - keycode: TProjectMKeycode; - modifier: TProjectMModifier); -begin - _key_handler(@PProjectMState(data).pm, event, keycode, modifier); -end; - -procedure TProjectM.RandomPreset(); -begin - KeyHandler(PROJECTM_KEYDOWN, PROJECTM_K_r_LOWERCASE, PROJECTM_KMOD_LSHIFT); -end; - -procedure TProjectM.PreviousPreset(); -begin - KeyHandler(PROJECTM_KEYDOWN, PROJECTM_K_p_LOWERCASE, PROJECTM_KMOD_LSHIFT); -end; - -procedure TProjectM.NextPreset(); -begin - KeyHandler(PROJECTM_KEYDOWN, PROJECTM_K_n_LOWERCASE, PROJECTM_KMOD_LSHIFT); -end; - -procedure TProjectM.ToggleShowPresetNames(); -begin - KeyHandler(PROJECTM_KEYDOWN, PROJECTM_K_F3, PROJECTM_KMOD_LSHIFT); -end; - -destructor TProjectM.Destroy(); -begin - Dispose(PProjectMState(data)); - data := nil; - inherited; -end; - diff --git a/src/lib/projectM/projectM-1_0.inc b/src/lib/projectM/projectM-1_0.inc deleted file mode 100644 index 8e84894d..00000000 --- a/src/lib/projectM/projectM-1_0.inc +++ /dev/null @@ -1,188 +0,0 @@ -//uses - -(** - * Note: be careful with ProjectM's versioning scheme. - * - * Version | Version in pkg-config .pc file - * ---------+-------------------------------------------- - * 1.00 | 1.00 - * 1.01 | 1.00 - * 1.1 | 1.10 - * 1.2 | 1.2 (= 1.02) - * - * So the version number of 1.1 is bigger than that of 1.2. - *) - -const -{$IFDEF MSWINDOWS} - // Note: static linking is not possible with delphi because it does neither - // accept gcc nor MSVC object files (only Intel-style ones). - libprojectM_cwrapper = 'projectM-cwrapper.dll'; -{$ELSE} - // static libs are not supported in the "external"-clause - libprojectM_cwrapper = ''; - // statically link the cwrapper and dynamically link projectM - {$L 'cwrapper/libprojectM-cwrapper.a'} - {$LINKLIB projectM} -{$ENDIF} - -{**************** INTERNAL SECTION ****************} - - -type - _PProjectM = Pointer; - -{ projectM.hpp declarations } -function _projectM_create1(config_file: PChar): _PProjectM; cdecl; external libprojectM_cwrapper name 'projectM_create1'; -{$IF PROJECTM_VERSION < 1000000} // 0.9x -function _projectM_create2(gx: cint; gy: cint; fps: cint; - texsize: cint; width: cint; height: cint; - preset_url: PChar; title_fonturl: PChar; title_menuurl: PChar): _PProjectM; cdecl; external libprojectM_cwrapper name 'projectM_create2'; -{$IFEND} - -procedure _projectM_resetGL(pm: _PProjectM; width: cint; height: cint); cdecl; external libprojectM_cwrapper name 'projectM_resetGL'; -procedure _projectM_setTitle(pm: _PProjectM; title: PChar); cdecl; external libprojectM_cwrapper name 'projectM_setTitle'; -procedure _projectM_renderFrame(pm: _PProjectM); cdecl; external libprojectM_cwrapper name 'projectM_renderFrame'; -function _projectM_initRenderToTexture(pm: _PProjectM): cuint; cdecl; external libprojectM_cwrapper name 'projectM_initRenderToTexture'; - -procedure _projectM_free(pm: _PProjectM); cdecl; external libprojectM_cwrapper name 'projectM_free'; - -procedure _projectM_key_handler(pm: _PProjectM; event: TProjectMEvent; - keycode: TProjectMKeycode; modifier: TProjectMModifier); cdecl; external libprojectM_cwrapper name 'projectM_key_handler'; - -{$IF PROJECTM_VERSION > 1000000} // > 1.01 -procedure _projectM_settings(pm: _PProjectM; settings: PSettings); cdecl; external libprojectM_cwrapper name 'projectM_settings'; -{$IFEND} - -{ PCM.hpp declarations } -procedure _PCM_addPCMfloat(pm: _PProjectM; pcm_data: PSingle; samples: cint); cdecl; external libprojectM_cwrapper name 'PCM_addPCMfloat'; -procedure _PCM_addPCM16(pm: _PProjectM; pcm_data: PPCM16); cdecl; external libprojectM_cwrapper name 'PCM_addPCM16'; -procedure _PCM_addPCM16Data(pm: _PProjectM; pcm_data: PCshort; samples: cshort); cdecl; external libprojectM_cwrapper name 'PCM_addPCM16Data'; -procedure _PCM_addPCM8_512(pm: _PProjectM; pcm_data: PPCM8_512); cdecl; external libprojectM_cwrapper name 'PCM_addPCM8_512'; -procedure _PCM_addPCM8_1024(pm: _PProjectM; pcm_data: PPCM8_1024); cdecl; external libprojectM_cwrapper name 'PCM_addPCM8'; - - -{**************** EXTERNAL SECTION ****************} - -// This constructor is present in projectM 1.0(1) but does not work with -// linux because of a bug. -(* -constructor TProjectM.Create(gx, gy: integer; fps: integer; - texsize: integer; width, height: integer; - const presetsDir, fontsDir: string; - const titleFont, menuFont: string); -begin - data := _projectM_create2(gx, gy, fps, texsize, width, height, - PChar(presetsDir), - PChar(fontsDir + PathDelim + titleFont), - PChar(fontsDir + PathDelim + menuFont)); -end; -*) - -constructor TProjectM.Create(const configFile: string); -begin - inherited Create(); - - // we cannot catch C++ exceptions in delphi, so we have to check - // if configFile is valid first - if (not FileExists(configFile)) then - raise Exception.Create('Invalid file: ' + configFile); - - data := _projectM_create1(PChar(configFile)); - if (data = nil) then - raise Exception.Create('Creation of projectM object failed'); -end; - -procedure TProjectM.ResetGL(width, height: Integer); -begin - _projectM_resetGL(data, width, height); -end; - -procedure TProjectM.SetTitle(const title: string); -begin - _projectM_setTitle(data, PChar(title)); -end; - -procedure TProjectM.RenderFrame(); -begin - _projectM_renderFrame(data); -end; - -procedure TProjectM.AddPCMfloat(pcmData: PSingle; samples: integer); -begin - _PCM_addPCMfloat(data, pcmData, samples); -end; - -procedure TProjectM.AddPCM16(pcmData: PPCM16); -begin - _PCM_addPCM16(data, pcmData); -end; - -{** - * Passes interleaved stereo PCM-samples to projectM. - *} -procedure TProjectM.AddPCM16Data(pcmData: PSmallint; samples: Smallint); -begin - _PCM_addPCM16Data(data, PCshort(pcmData), samples); -end; - -procedure TProjectM.AddPCM8_512(pcmData: PPCM8_512); -begin - _PCM_addPCM8_512(data, pcmData); -end; - -procedure TProjectM.AddPCM8_1024(pcmData: PPCM8_1024); -begin - _PCM_addPCM8_1024(data, pcmData); -end; - -{** - * If the result is > -1 projectM will render to a texture. - * The texture-ID is the return-value. - *} -function TProjectM.InitRenderToTexture(): GLuint; -begin - result := _projectM_initRenderToTexture(data); -end; - -procedure TProjectM.KeyHandler(event: TProjectMEvent; - keycode: TProjectMKeycode; - modifier: TProjectMModifier); -begin - _projectM_key_handler(data, event, keycode, modifier); -end; - -procedure TProjectM.RandomPreset(); -begin - KeyHandler(PROJECTM_KEYDOWN, PROJECTM_K_r_LOWERCASE, PROJECTM_KMOD_LSHIFT); -end; - -procedure TProjectM.PreviousPreset(); -begin - KeyHandler(PROJECTM_KEYDOWN, PROJECTM_K_p_LOWERCASE, PROJECTM_KMOD_LSHIFT); -end; - -procedure TProjectM.NextPreset(); -begin - KeyHandler(PROJECTM_KEYDOWN, PROJECTM_K_n_LOWERCASE, PROJECTM_KMOD_LSHIFT); -end; - -procedure TProjectM.ToggleShowPresetNames(); -begin - KeyHandler(PROJECTM_KEYDOWN, PROJECTM_K_F3, PROJECTM_KMOD_LSHIFT); -end; - -{$IF PROJECTM_VERSION > 1000000} // > 1.01 -procedure TProjectM.Settings(var settings: TSettings); -begin - _projectM_settings(data, @settings); -end; -{$IFEND} - -destructor TProjectM.Destroy(); -begin - _projectM_free(data); - data := nil; - inherited; -end; - diff --git a/src/lib/requirements.txt b/src/lib/requirements.txt deleted file mode 100644 index d3955585..00000000 --- a/src/lib/requirements.txt +++ /dev/null @@ -1,48 +0,0 @@ -Included in SVN .. ---------------------------------------------------------------------------- - - -Jedi-sdl - http://sourceforge.net/projects/jedi-sdl - -pngImage - http://pngdelphi.sourceforge.net/ - -BASS.pas - http://www.un4seen.com/download.php?bass23 - -ffmpeg - http://www.iversenit.dk/dev/ffmpeg-headers/ - -SQLLite Wrapper - http://www.itwriting.com/sqlitesimple.php - -====================================== -LINUX build -====================================== -On top of the above pas files, you will need development libraries for them. - -here are the instructions needed to compile on ubunty ( 7.04 ) - - sudo apt-get install libavcodec-dev libavformat-dev libsqlite3-dev libsdl-ttf2.0-dev libsdl-image1.2-dev portaudio19-dev - -in order to build the configure file ( with autogen.sh ) - - sudo apt-get install automake autoconf - - -for Fedora 8 ( contributed by kdub ) - - yum install ffmpeg-devel portaudio-devel SDL_ttf-devel SDL_image-devel sqlite-devel - -====================================== -Mac OS X build -====================================== -You need the Developer tools from Apple, Xcode and fink, the open source software package manager. - -Install the FreePascal compiler (version 2.2.2 or later) using fink or a package. - -Install these libs and their dependences using fink: - - fink install pkgconfig libavcodec-dev libavformat-dev libavutil-dev libswscale-dev - fink install portaudio2 SDL SDL-image libpng3 sqlite3-dev
\ No newline at end of file |