1
1
Fork 0
mirror of https://github.com/QB64-Phoenix-Edition/QB64pe.git synced 2024-07-01 13:50:36 +00:00
Commit graph

2576 commits

Author SHA1 Message Date
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
Luke Ceddia c7b6f85075 Support internal clipboard on Linux
It's not true cross-program clipboard support, but the clipboard now functions
within a QB64 program. Importantly, this means you can copy/paste code around
in the IDE.
2014-09-17 20:56:55 +10:00
SMcNeill 3aa8bc8a27 Removed non-used string support in the CONST math routines. Added _CONTROLCHR function. Changed _OS$ to detect and report x64 compilers for Windows. 2014-09-17 06:10:11 -04:00
SMcNeill 22e0a75b05 Fix to _PRINTWIDTH so it doesn't interfer with _FREEFONT. 2014-09-06 16:58:11 -04:00
Luke Ceddia d7218cd301 Modify linux setup script to exit if it has root permissions. 2014-08-29 22:57:45 +10:00
Galleon 54a0e14ef5 (Automated push) Update internal/source/* from qb64.bas 2014-08-15 05:19:53 -07:00
SMcNeill 1b7f25aaba Fix to the IDE Resizing and changing fonts. Patch to ELSE allowing invalid syntax in various cases. 2014-08-14 03:55:38 -04:00
Galleon 4e73933e74 Fix bug in sub__depthbuffer where primary depthbuffer could not be turned off 2014-08-09 18:31:08 -07:00
Galleon a73e482de5 (Automated push) Update internal/source/* from qb64.bas 2014-08-09 04:04:35 -07:00
Galleon ba99b3cb97 _MAPTRIANGLE 3D Upgrade:
[{_CLOCKWISE|_ANTICLOCKWISE}][{_SEAMLESS}](?,?)-(?,?)-(?,?)[,?]{TO}(?,?[,?])-(?,?[,?])-(?,?[,?])[,[?][,{_SMOOTH|_SMOOTHSHRUNK|_SMOOTHSTRETCHED}]]

Refactor/rewrite of how OpenGL state is monitored/maintained

Critical fix to stop _MAPTRIANGLE (2D hardware version) not freeing old commands in the pipeline

Critical fix to stop intermittent QB64 crashing in 32-bit mode when screen size expanded
2014-08-09 03:55:53 -07:00
Galleon 8c793da56f (Automated push) Update internal/source/* from qb64.bas 2014-08-04 05:15:48 -07:00
Luke Ceddia a34f40bc74 Changed command-line parsing routine
Removed the ad-hoc system and insert ParseCMDLineArgs$(), which
should be easily extensible. Also supports the -- option for using
a filename that looks like an option (I would have liked to just be
able to use quotes on the command line, but COMMAND$ doesn't preserve
that information unfortunately.
2014-08-03 23:08:05 +10:00
Galleon 7c971c936c (Automated push) Update internal/source/* from qb64.bas 2014-07-29 05:16:19 -07:00
SMcNeill 33f652e0cc Changed QB64.bas to use BINARY for LINE INPUT files fot the performance increase.
Added new _SCREENEXISTS command to see if a screen has been made yet for the user.
Fixed the string < comparison bug.
2014-07-28 08:34:00 -04:00
Galleon d3a9052604 (Automated push) Update internal/source/* from qb64.bas 2014-07-27 05:19:30 -07:00
Luke Ceddia 69598a1a13 Merge 2014-07-27 00:39:23 +10:00
Galleon aa45425139 (Automated push) Update internal/source/* from qb64.bas 2014-07-26 07:12:35 -07:00
Luke Ceddia b586eafd3b Integrated _BLINEINPUT into regular LINE INPUT for BINARY files
LINE INPUT will now use the faster method if passed a file handle
that has been opened FOR BINARY. As such, the _BLINEINPUT command
has been removed.

qb64.bas now takes advantage of this for reading from '$include files,
at least in Include Manager 1. Some tweaking of internal/source/main.txt
was required to get things into a sane state, so I'm holing off changing
the compiler any further so the auto-builder can make sure everything's
smoothed over.

Note: Everything should still compile as normal; I'm just being overcautious.
2014-07-27 00:06:17 +10:00
Galleon 5155570c54 Added missing function hardware_img_tri2d 2014-07-26 07:04:41 -07:00
Galleon 5e2c5acc74 Added support for hardware _MAPTRIANGLE
_SEAMLESS option is not available for hardware yet and will generate an Illegal Func Call error. This is due to it failing to be pixel-perfect with the non-hardware version.
2014-07-26 06:56:15 -07:00