1
1
Fork 0
mirror of https://github.com/QB64Official/qb64.git synced 2024-07-01 09:10:37 +00:00
Commit graph

2245 commits

Author SHA1 Message Date
SMcNeill 507182a80d Fix for A = bug; added support for easy IDE text color support. 2015-04-05 03:12:55 -04:00
Galleon eab00d12e9 Fix for making starting directory exe's path in OSX 2015-03-26 04:37:39 -07:00
Galleon 784ca1f2de Correction for launching in executable's folder for Linux & OSX 2015-03-25 04:56:16 -07:00
Galleon 7458b453e3 (Automated push) Update internal/source/* from qb64.bas 2015-03-25 03:22:35 -07:00
Galleon 56228a8c23 Make function _CWD$ part of QB64's core
Implemented _STARTDIR$ function
2015-03-25 03:14:53 -07:00
Galleon 57f6ee159a Forward references for MacOSX Yosemite audio out compatibility 2015-03-22 01:16:50 -07:00
Galleon 830af1bd05 (Automated push) Update internal/source/* from qb64.bas 2015-03-12 02:14:12 -07:00
Galleon 5d41e5ec7b Major patch for OSX support
Fixes gamepad support dependency / thread of call
Allows libqb.cpp to use Objective C++
Fixes tracking/handling of SHIFT, ALT, CTRL & CAPS LOCK
Fixes serious bug in internal getticks() which caused _LIMIT, _DELAY, SLEEP, TIMER, etc to malfunction and IDE to be unusably slow
2015-03-12 02:06:48 -07:00
Galleon b52cb62c79 MacOSX fixes 2015-03-07 06:31:54 -08:00
Galleon 1eb89dde7f (Automated push) Update internal/source/* from qb64.bas 2015-03-06 19:09:57 -08:00
Galleon 89523c1523 Backed out of bad auto-generated content
Backed out changeset: fa576ac0137c
2015-03-06 19:02:33 -08:00
Galleon 2e6ba9b544 The internal\source folder should not be modified directly
Backed out changeset: 2507a0e666a9
2015-03-06 18:52:40 -08:00
Luke Ceddia 328a7f40af Manual bootstrap to work around errors in previous revisions.
In other words, I compiled QB64 with an older working version
and copied that across to internal/source/, then did a few self-compile
runs to ensure sanity.
2015-03-01 14:40:02 +11:00
Luke Ceddia 4b458acd67 Merge 2015-02-27 17:03:00 +11:00
SMcNeill f0aea404f1 Patch to fix DO.LOOP of previous patch so it ONLY works for <,>,= comparisons. 2015-02-23 15:45:52 -05:00
Galleon f5285a1a61 (Automated push) Update internal/source/* from qb64.bas 2015-02-20 05:15:27 -08:00
SMcNeill d46ce94d2b Big fixes to <>, <=, >= to handle spaces between symbols. Fix to PRINT (X AND Y) = Y logic evaluation. 2015-02-19 11:14:30 -05:00
Galleon 49a930cff1 Primarily re-implements support for GIF decoding for _LOADIMAGE
Removed GIF decoder which I never got working
Added stb_image which can decode GIF (not animated) and some other formats
(stb_image is now used as a fall-back for when no specific image decoder is available for the given format, it is supposed to be able to decode PNG, TGA, BMP, PSD, GIF, HDR, PIC, PNM(PPM/PGM))
Removed some precompiled object files from mini-mp3 which should not have been there in the first place
2015-02-09 03:06:50 -08:00
Galleon 9319147a5b (Automated push) Update internal/source/* from qb64.bas 2015-02-07 19:50:53 -08:00
Galleon edb7ddc584 Swapped out old MP3 decoder for MINI-MP3
(see bugs/incompatibilities forum for more details)
2015-02-07 19:40:21 -08:00
Galleon f238a5e49a Mutex thread-fix for Linux applied
(Note that the previous build of QB64 is not useable in Linux without this update)
2015-02-03 03:45:46 -08:00
Galleon 67e08be312 Re-implements clipboard support for Linux
Fixes a threading issue which caused QB64 to intermittently crash when using hardware commands
(Same threading fix yet to be applied to Linux)
Fixes problem in last update which prevented _OPENHOST/_OPENCLIENT from working (they always returned invalid handle '0')
Fixes 3D perspective issue when 3D rendering into images not the primary display (previuosly the dimensions of the screen/window not the target image were used to determine the aspect ratio)
2015-02-03 02:09:17 -08:00
Galleon dcacfd49e3 Critical stability fix to prevent crash related to freeing hardware images
(if != NULL it later tries to free the memory which causes the crash)
2015-01-26 01:45:56 -08:00
Galleon f1938b5b01 Fix to prevent SUB _GL from consuming all runtime resources when it cannot meet _FPS (or assumed _FPS) demands 2015-01-21 04:51:58 -08:00
Galleon dcaf43a493 Fix for Linux (running setup fails on prev dirty build) 2015-01-18 05:55:56 -08:00
Galleon f88b473216 Added missed update to qbx.cpp 2015-01-18 05:14:05 -08:00
Galleon 8e5357401e (Automated push) Update internal/source/* from qb64.bas 2015-01-18 04:28:32 -08:00
Galleon 3928325615 Primarily implements gamepad support (via _DEVICES, STICK/STRIG)
Corrects dependency detection bug in prev update which rendered _SCREENIMAGE unusable
Implements new command _FPS which limits the maximum hardware fps (primarily for throttling SUB _GL) [default is 60]
Usage example:
        _FPS 100
2015-01-18 04:20:57 -08:00
Galleon e86f50a3cf Tested -g in Linux
Found stdlib.h now needs to be explicitly defined
Now -g works in Linux too
2015-01-06 05:01:57 -08:00
Galleon 6761844058 (Automated push) Update internal/source/* from qb64.bas 2015-01-06 04:01:43 -08:00
Galleon 2af8c7399c Implements -g switch to compile with no graphical dependencies
(Can now generate stand-alone executables <1MB)
-g can be specified within code with:
$CONSOLE:ONLY
Note: Programs using this still need to call _DEST _CONSOLE or output will not be visible

Also added dependency rules to remove unrequired static system libs from being linked:
[X] lws2_32 as DEPENDENCY_SOCKETS
	_OPENHOST
	_OPENCLIENT
[X] -lwinspool as DEPENDENCY_PRINTER
	LPRINT
	_PRINTIMAGE
[X] -lwinmm & mmsystem.h
	Required by:
		FreeGlut (GUI)
		Audio Out
[X] -lksguid (From the DirectX SDK, Required for Audio)
	Required by:
		Audio Out
[X] -ldxguid (From the DirectX SDK, Required for Audio)
	Required by:
		Audio Out
[X] -lole32
	Required by:
		Audio Out (dsound.c)
[X] -lgdi32
	Required by:
		void sub__icon(int32 handle_icon, int32 handle_window_icon, int32 passed){
		int32 func__screenimage(int32 x1,int32 y1,int32 x2,int32 y2,int32 passed)
		Printer
Some code has been moved from inside libqb.cpp into subfolder internal\c\libqb

Added dummy config.h file so libsamplerate could compile in Linux (Need to establish when it was removed)
2015-01-06 03:55:55 -08:00
Galleon 9f71265de7 New non-blurry NPOT solution in place
New vertex/tex-coord arrays only created when state changes
_BLEND enabled hardware images don't write to the depth-buffer if their alpha is 0 (strictly speaking <0.001 if represented as a SINGLE from 0 to 1)
Apart from texture on texture rendering (requires FBOs) and the tiling of non-power of two dimensioned images with _MAPTRIANGLE QB64-GL now works via remote desktop and should work responsively and reliably on most less-OpenGL capable environments (if not, report it on the forums. I've successfully run a 3D minecraft-like program and a 2D top-down shooter with hardware acceleration via remote desktop)
2014-10-17 17:57:19 -07:00
Galleon 2ffc8fcbca Fixes severe bug in TTF usage which caused programs crash intermittently/always due to non-zero initialized memory
Fixes bug (add clipping) which causes rendering of TTF fonts outside screen boundaries to wrap/crash
2014-10-12 00:45:02 -07:00
Galleon 9b5c4bcc39 (Automated push) Update internal/source/* from qb64.bas 2014-10-06 05:13:28 -07:00
Luke Ceddia 160624a2b5 Reimplemented the _FREEFONT command
A new function has been added to parts/video/fonts/ttf/src.c, FontFree().
This takes an index into the fonts array, and calls FT_Done_Face() on the
handle, free() on the ttf_data then sets in_use to 0.

The sub__freefont() function calls FontFree(), and sets the appropriate font[]
element to NULL (after checking the passed font handle is valid, of course.
2014-10-06 19:05:05 +11:00
SMcNeill 5158950119 Fix to integer comparison so that (0 > -2147483648) evaluates as a True condition. 2014-10-06 03:21:57 -04:00
Galleon 492484ba84 (Automated push) Update internal/source/* from qb64.bas 2014-10-02 05:14:13 -07:00
SMcNeill d7c5484036 Replacement to stringcomp routine for less OS specific code, which executes faster overall for us anyway. 2014-10-02 04:32:07 -04:00
Luke Ceddia b9a52e9600 Incorporated the User Mods into the parts system.
This way, we only include that code if its commands are called upon.
In order to do this, some other areas had to be changed as well:
  - There is now a libqb.h file, which declares some routines in libqb.cpp,
    in order to allow them to be called from a separately compiled unit, i.e,
    the user mods part.
  - common.cpp now has an #include guard, just to be on the safe side.
  - The library purge routines know about the new part.
  - qb64.bas is modified to handle the new part; this area is just modeled
    off the code for the other parts.
  - Appropriate flags were set in the hash table entires for the commands.
  - The user mods, now being a separate compilation unit, #include common.cpp
    and libqb.h. The former is required for important type declarations and
    access to glut commmands, the latter for access to libqb routines.
  - qbx.cpp #includes the src.cpp file in the user mods part, which declares the
    routines.
Something to ponder: libqb does not include or rely on any of the user mod routines,
so it's probably not necessary to rebuild it like with the other parts. That exploration
is for another day, however.
2014-10-02 17:54:52 +10:00
SMcNeill a5b0fc7bd5 Merge 2014-09-28 11:30:27 -04:00
SMcNeill eb43ceff23 Change to the STRCMP routine to correct < vs > bug. 2014-09-28 11:27:07 -04:00
Galleon b2c3b0c749 (Automated push) Update internal/source/* from qb64.bas 2014-09-27 05:13:00 -07:00
Luke Ceddia 801ae6ae60 Added a _KEYCLEAR [buffer&] command to clear any characters in input buffers.
Without a parameter, it clears all buffers. A numeric parameter will
clear only a specific buffer: 1 = INKEY$ buffer (and other traditional
QB input commands), 2 = _KEYHIT buffer, 3 = INP(&H60) buffer. The last
one is not actually cleared, but we pretend we've read all the data from
it.

To ensure no stray characters, use this command immediately before the
code you wish to sanitise. You never know when the user might bang on
the keyboard, and this also helps to avoid stray key release values
persisting in the _KEYHIT buffer.
2014-09-27 03:12:54 +10:00
SMcNeill c100a8b8b9 Patch to _PUTIMAGE so STEP will work with it once again in GL. 2014-09-26 12:19:55 -04:00
SMcNeill 2c97e85402 Merge 2014-09-26 12:11:00 -04:00
Luke Ceddia c3c79964cf Fix regression introduced in previous commit in LCASE$ function 2014-09-23 23:39:53 +10:00
SMcNeill 6e01fc8dce Altered string compare routines (<,<=,>,>=) so they don't give false results with CHR$(0).
Added new _STRCMP and _STRICMP commands for quick string comparisons.
Cleaned up QB64 to finish removing the QUI (quick user insert) code and folders.
Altered UCASE and LCASE routines to be faster in some situations for us.
2014-09-22 08:19:03 -04:00
Galleon 14673b41b0 (Automated push) Update internal/source/* from qb64.bas 2014-09-20 05:14:01 -07:00
SMcNeill 35e0ed1dd8 Change to make QB64 more compatible for x64 support on Windows.
Deleted makedat_win.txt, and created makedat_win32.txt and makedat_win64.txt which we toggle between according to compiler now.
Made change inside QB64.bas so it automatically adjusts output for DATA statements according to OS.
2014-09-19 16:20:23 -04:00
Galleon 6fde941844 (Automated push) Update internal/source/* from qb64.bas 2014-09-17 05:14:08 -07:00