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

75 commits

Author SHA1 Message Date
RainRat f6c1da97fe fix typos 2024-04-25 21:21:39 -07:00
Samuel Gomes 8cf0492418 Link with gdi32 when compiling Windows GUI apps 2024-04-19 18:11:36 +05:30
Samuel Gomes ebb4dbd3ad Create Windows GUI application only when both DEP_CONSOLE_ONLY & DEP_CONSOLE are not defined 2024-04-19 17:17:36 +05:30
Samuel Gomes 20f1871966 Add clipboard test and add clip license 2024-03-29 23:21:10 +05:30
Samuel Gomes 47e3ec40f7 Add cross-platform clipboard support 2024-03-26 23:34:54 +05:30
Samuel Gomes ae8c5e283d
Merge branch 'main' into llvm-mingw-fixes 2024-03-24 22:30:04 +05:30
a740g 787c9579b6 Add support for _MOUSEWHEEL and _MOUSEMOVEMENTx on macOS 2024-03-09 21:55:34 +05:30
Samuel Gomes 49bbe94381 Remove objcopy dependency for DATA 2024-03-07 20:18:20 +05:30
Matthew Kilgore 01b4209c1b Bump C++ version 2024-02-17 01:36:10 -05:00
Matthew Kilgore 0da86b61a5 Suppress warnings about NULL-integer conversion 2024-02-16 20:04:35 -05:00
Matthew Kilgore 74824350eb Disable strict-aliasing
The libqb code currently has various operations that break
strict-aliasing, so we're disabling the optimizations around that to
avoid breaking the code.
2024-02-16 20:04:35 -05:00
Matthew Kilgore fa317c2612 Don't silence warnings for anything other than qbx.cpp 2024-02-14 17:21:14 -05:00
Samuel Gomes a3891cc611 Filter-out GLEW_OBJS for DEP_CONSOLE_ONLY apps 2024-01-30 06:32:53 +05:30
a740g 68413c0fc3 Avoid unusual long compile time for glew.c using -O3 on macOS 2024-01-22 11:10:23 +05:30
Samuel Gomes 5f91458ef9 Use FreeType flat-directory compilation 2024-01-08 09:56:41 +05:30
Samuel Gomes 91129c60ed Replace FreeTypeAmalgam with FreeType v2.13.2 2024-01-07 06:02:16 +05:30
Roland Heyder acfcd4f50a Fixing Makefile
as suggested by Matt...
2023-12-13 22:56:56 +01:00
Roland Heyder 38eed18fc4 Implement file embedding
$EMBED:'filename','handle' and _EMBEDDED$("handle")
2023-12-13 20:49:53 +01:00
Matthew Kilgore 9c0b4d599c Build the bootstrap QB64-PE with DEP_CONSOLE=y
The bootstrap build settings in the Makefile were missing DEP_CONSOLE,
which meant that the console output from the bootstrap qb64pe did not
work.
2023-12-08 21:48:07 -05:00
a740g d0b89a3d1a Add required miniaudio libs 2023-10-09 14:03:30 +05:30
Samuel Gomes 79c531f2bb Reorg. game controller and update libstem_gamepad 2023-09-26 02:01:35 +05:30
Samuel Gomes efbd16b19c Remove legacy openal headers from libqb.cpp 2023-09-22 08:41:45 +05:30
Samuel Gomes 8b60585420 Remove legacy openal stuff from makefile 2023-09-22 07:56:30 +05:30
Samuel Gomes 4f004c117b
Merge branch 'main' into audio-enhancements 2023-09-21 01:13:54 +05:30
Samuel Gomes c8367869e8 Add QOA license info 2023-09-20 23:21:39 +05:30
Samuel Gomes 37c17c78f6 Remove GPL xbr.hpp and update all license info 2023-09-19 02:07:57 +05:30
Samuel Gomes fef7065c5f Bump minimum C++ version to 14 2023-07-04 03:38:24 +05:30
Samuel Gomes 1c505561d6 Implement pending changes in #330 2023-04-09 03:37:44 +05:30
Samuel Gomes d974c0b9a8 Tidy up font code 2023-04-04 17:51:17 +05:30
Samuel Gomes 889408acb9 Remove DEPENDENCY_ZLIB related stuff from Makefile 2023-03-19 08:55:02 +05:30
Samuel Gomes 5c3fe449e6 Update miniz license 2023-03-19 03:05:29 +05:30
Samuel Gomes 6dd651f7cd Replace MinGW intrinsic zlib with miniz 2023-03-19 02:28:05 +05:30
Samuel Gomes 097395959c Update Makefile to correctly set BITS when on WoA64 2023-03-04 11:24:44 +05:30
Samuel Gomes 66ad42e573 Add HivelyTracker license. This is going to fail some tests. 2023-01-06 17:39:47 +05:30
Matthew Kilgore 6c288ecb6f Don't compile libqb.cpp as Objective-C on Mac OS
With the recent changes to libqb.cpp to pull out some of the GLUT logic,
the only actual Objective-C in libqb.cpp was pulled out. That being the
case, it's no longer necessary to have libqb.mm for compiling libqb.cpp,
so we're removing it to simplify the compliation logic a bit.
2022-11-29 20:04:54 -05:00
Matthew Kilgore d678be717c Move GLUT initialization logic into separate .cpp file 2022-11-29 20:04:53 -05:00
Matthew Kilgore ac999d8f4b Add DEP_HTTP to the dependency list for QB64-PE
Fairly straight forward, QB64-PE's dependency list has to be built into
the Makefile for when we're building straight from ./internal/source.
Recently it gained a HTTP dependency, so that now needs to be included.

Fixes: #255
2022-11-26 21:25:33 -05:00
Matthew Kilgore 45d52271da Add libqb_http API for HTTP connections
This adds the libqb_http API, which is designed to support HTTP and
HTTPS usage from QB64-PE source.

The design consists of a single thread which services all the HTTP(s)
connections. There are then various libqb_http APIs exposed that allow
interacting with this thread to create a new connection, query
connection status, read data, or close the connection.

Internally the thread makes use of the curl_multi interface to allow a
single thread to service multiple HTTP(s) connections in parallel. This
means you can _OPENCLIENT() multiple HTTP connection in a row and all of
them will be serviced at the same time in whatever order data is
available.

HTTP is optional and selected via a Makefile setting. A stub is swapped
in if HTTP support is not used, which avoids need to add another build
flag to libqb.cpp.
2022-11-19 15:13:26 -05:00
Samuel Gomes 6b4ad03d1f Remove -lcomdlg32 -lole32 from line Makefile:363 2022-10-25 08:36:06 +05:30
Samuel Gomes 8fa58443b4 Add -lcomdlg32 -lole32 to CXXLIBS always for Windows 2022-10-25 08:12:07 +05:30
Samuel Gomes 56c7936fb4 Address issues mentioned in #216 2022-10-25 04:24:01 +05:30
Samuel Gomes 98e40c173d Fix common dialogs build.mk bug 2022-10-23 22:44:39 +05:30
Samuel Gomes 93e58baa1d Common dialogs support 2022-10-23 12:57:02 +05:30
Matthew Kilgore 908585aa2e Generate .license.txt file with license information
This gives QB64-PE the ability to automatically generate a text file
comprising all of the licenses that apply to your QB64 program. This
file can then be distributed with your program to meet the requirements
of those licenses, and also examined to understand what licenses apply
to your program.

The generation is controlled via a configuration flag, settable either
via the `Run` dialog, or via a new `-f` setting on the comamnd line.

Fixes: #145
2022-10-01 14:46:00 -04:00
Samuel Gomes fa0ba3e5d8
Merge branch 'main' into main 2022-09-18 14:49:58 +05:30
Matthew Kilgore a4d910207e Link winmm when using _DEVICES on Windows
The _DEVICES command pulls in some stuff that depends on `winmm`.
Normally this isn't a problem, but if `$CONSOLE:ONLY` is used then this
dependency can actually get removed from the `CXXLIBS` and cause linking
to fail.

It's easy enough to fix this by always adding `-lwinmm` if `_DEVICES` is
in use.

Fixes: #178
2022-09-17 03:06:24 -04:00
Samuel Gomes a100a434e4 Fix #175 2022-09-17 08:53:32 +05:30
Matthew Kilgore cebcb11646 Fix compiling source files with single quotes in name
Using single quotes in a file name wasn't working because the Makefile
was using single quotes itself to quote the filename when providing it
to the compiler. The Makefile was switched to use double quotes instead,
which work just as well but are allowed to contain single quotes inside
of them.

Since double quotes are a legal character to have in a file name on
Linux and Mac OS, I added extra logic to start escaping double quote
characters.

I added a test to verify that we can compile source files with single
quotes in the name. I could not add a test for double quotes since such
files cannot exist on Windows and thsu cannot easily be added to the
repository.
2022-09-09 09:59:43 -04:00
Matthew Kilgore 2b3403745c Add initial MIDI language support
This adds MIDI support to the language as a new unstable feature. There
are two new metacommands that come with this:

$Unstable: Midi
$MidiSoundFont: [Default|"filename"]

The $Unstable command is required to be able to use any of the other
commands, and just signifies that this is not a full part of the
language yet and may change in breaking ways before the API is
finalized.

The $MidiSoundFont command enables MIDI support in the compiled program,
and also specifies what sound font to use to play MIDI files. "Default"
will make use of the soundfont placed at
'./internal/support/default_soundfont.sf2', and otherwise a filename can
be specified to use any soundfont wanted.

In either case, the selected sound font is compiled into the executable
and then loaded at runtime.

Fixes: #115
2022-09-04 23:35:14 -04:00
Matthew Kilgore 41cc1e6569 Integrate the miniaudio backend into the build
This integrates the miniaudio backend, using a new `DEP_AUDIO_MINIAUDIO`
flag to enable it. This will allow consumers to choose which backend to
use.
2022-08-27 14:27:55 -04:00