1
1
Fork 0
mirror of https://github.com/QB64-Phoenix-Edition/QB64pe.git synced 2024-08-06 18:40:25 +00:00
Commit graph

2768 commits

Author SHA1 Message Date
Matthew Kilgore
dcc181244c Add test of MIDI unsupported with OpenAL 2022-09-04 23:35:14 -04:00
Matthew Kilgore
adb52f4f04 Add support for custom flags on QB64 tests 2022-09-04 23:35:14 -04:00
Matthew Kilgore
d928e5d8ba Add command line switches for compiler settings
This adds compiler settings for each of the settings in the
'Compiler Settings' IDE dialog. This makes it easy to supply the
settings per compile without needing to use the IDE to change them (or
edit the `config.ini`).

Fixes: #162
2022-09-04 23:35:14 -04:00
Matthew Kilgore
3e4477521a fix audio midi vtable linking 2022-09-04 23:35:14 -04:00
Matthew Kilgore
b301e2acf5 Fix chmod +x when filename has spaces
We were missing some quotes in the command line strings, so if there
were spaces involved `chmod +x` would not work correctly.
2022-09-04 23:35:14 -04:00
Matthew Kilgore
8a20f79fd9 Install dummy sound card on Linux
This adds a fake sound card to the GitHub build agents. The existance of
a fake sound card allows us to run tests using the audio backend on the
build agents without getting errors.
2022-09-04 23:35:14 -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
65db95c876 Add support for error tests
This adds support for tests of the error output of QB64-PE. The tests
are in the form of a `.bas` file that does not compile, and a `.err`
file containing the expected output of QB64-PE when producing an error
for that file.

Additionally the `compile_tests` now support multiple tests in a single
folder, via using multiple `.bas` files with different names.
2022-09-04 22:43:30 -04:00
Matthew Kilgore
64d86326bf Add testing documentation 2022-09-04 22:41:28 -04:00
Matt Kilgore
170871bf5d
Merge pull request #157 from a740g/main
Fix usage of `mem_block` `type` in `_MEMSOUND`
2022-09-03 20:19:06 -04:00
Samuel Gomes
184db340dc Merge branch 'main' of https://github.com/a740g/QB64PE 2022-09-04 05:16:45 +05:30
Samuel Gomes
d3854630cf Fix usage of mem_block type in _MEMSOUND 2022-09-04 05:16:41 +05:30
github-actions[bot]
dc0cf1e3d2 Automatic update of ./internal/source 2022-09-03 19:36:01 +00:00
Matt Kilgore
3b31873713
Merge pull request #156 from mkilgore/release-3.1.0
Version v3.1.0
2022-09-03 15:21:40 -04:00
Matthew Kilgore
fcc1444910 Version v3.1.0 2022-09-03 14:31:30 -04:00
Matt Kilgore
4449c3c545
Merge pull request #154 from mkilgore/remove-dpi-awareness
Remove DPI Awareness on Windows
2022-09-03 13:23:28 -04:00
Matthew Kilgore
f03b55808b Remove DPI Awareness on Windows
DPI Awareness allows a program to tell Windows that it will handle
properly scaling itself for the screen's DPI. Thus when a program is DPI
Aware, it will always see the actual screen size. When a program is not
DPI Aware, then Windows will scale the program according to the
selection by the user, and the reported screen size will match the
scaled size rather than the actual screen size.

Commit 189cdb8e added logic to enable DPI Awareness on Windows, but it
was hidden behind a `WINVER` check. This meant it was not actually in
use because at the time QB64 did not set a `WINVER` high enough to
actually enable that code. As such all Windows versions of QB64
including v2.0.2 were not DPI Aware.

Much later-on, Commit 869e361e declared a `_WIN32_WINNT` of `0x0600`,
which seems to have also declared `WINVER` as the same and thus enabled
the DPI Awareness logic. As a consequence, QB64-PE programs no longer
get scaled even though they don't have a way to acquire the current DPI
to do proper scaling themselves.

Since the behavior change was unintentional and proper language support
is not there, we're considering the addition of DPI Awareness a bug. It
will be added back some time later with more language support to allow
it to be properly used.
2022-09-02 23:50:23 -04:00
github-actions[bot]
480e3c3d6e Automatic update of ./internal/source 2022-09-03 02:27:00 +00:00
Matt Kilgore
d776f7afa9
Merge pull request #153 from a740g/main
Add _ROR & _ROL support.
2022-09-02 22:13:48 -04:00
Samuel Gomes
4d4692314e Update rotation test to include more cases 2022-09-02 10:15:07 +05:30
Samuel Gomes
a2cd317d6a Change SHR & SHL to camel case per discussion in https://github.com/QB64-Phoenix-Edition/QB64pe/pull/153 2022-09-01 21:39:30 +05:30
Samuel Gomes
028017b21a Change ROL and ROR names to Camel case per discission in https://github.com/QB64-Phoenix-Edition/QB64pe/pull/153 2022-09-01 21:30:23 +05:30
Samuel Gomes
adf838cd81 Update _ROL & _ROR test and output 2022-09-01 18:09:47 +05:30
Samuel Gomes
a7a4d837ea Added test for _ROL & _ROR 2022-09-01 17:28:12 +05:30
Samuel Gomes
f99eb27717 Remove all _SHR & _SHL changes 2022-09-01 16:15:42 +05:30
Samuel Gomes
5812433b9d Added limits.h to common.h 2022-09-01 07:25:01 +05:30
Samuel Gomes
2ed17f6198 Add _ROR & _ROL support. Fix issues with _SHR & _SHL 2022-09-01 06:51:06 +05:30
Steve McNeill
ab9a0d5982
Merge pull request #152 from SteveMcNeill/main
Update setup_win.bat
2022-08-30 09:58:46 -04:00
SteveMcNeill
ffefa3a23a Update setup_win.bat
Removed the DEL command which was taking 5-7 minutes to execute and appeared to lock up and freeze the process.

Added option for users on 64-bit OSes to be able to choose if they want to download the 64-bit or the 32-bit compiler.
2022-08-30 00:10:37 -04:00
Matt Kilgore
4677acad86
Merge pull request #151 from mkilgore/split-workflows
Split up workflows
2022-08-29 11:36:34 -04:00
Steve McNeill
ccf4d22669
Merge pull request #150 from mkilgore/fix-winver
Fix High-DPI awareness on Windows
2022-08-28 23:39:56 -04:00
Matthew Kilgore
7f3b048216 Split up workflows
Splitting up the build process into separate workflows makes it easier
to differentiate the builds for each, since each Workflow will get a
different name and history of builds. The actual build process remains
the same.
2022-08-28 23:21:08 -04:00
Matthew Kilgore
30c0634d20 Fix High-DPI awareness on Windows
We started defining `_WIN32_WINNT` a little while ago to express that we
require Windows Vista or above for support. This enables us to access
some Windows Vista-only APIs. The fact that `WINVER` also needs to be
defined was missed, and it seems that defining one means the other no
longer gets defined automatically as it did before. Thus we're simplying
now also defining `WINVER` the same as `_WIN32_WINNT`.

This fixes High-DPI awareness and a few other things that were gated
behind WINVER checks.
2022-08-28 21:44:07 -04:00
Matt Kilgore
2587ae60dc
Merge pull request #141 from mkilgore/a740g-image-enhancements
a740g's image library enhancements
2022-08-28 14:42:52 -04:00
Matthew Kilgore
0325d6ea24 Update licensing information 2022-08-28 02:16:56 -04:00
Samuel Gomes
26391445ee Updated comments 2022-08-28 02:16:56 -04:00
Matthew Kilgore
5bae6dadc4 Remove unnecessary help file 2022-08-28 02:16:56 -04:00
Samuel Gomes
124251f8f8 Fixed Linux compile issue - extra space in #include. Doh! 2022-08-28 02:16:56 -04:00
Samuel Gomes
9ed193346a Update QB64-PE image library to convert images to 8bpp 2022-08-28 02:16:56 -04:00
Samuel Gomes
d3da6da2fa Simplified image library. Added PCX support using dr_pcx 2022-08-28 02:16:56 -04:00
github-actions[bot]
09f2546e35 Automatic update of ./internal/source 2022-08-27 20:50:21 +00:00
Matt Kilgore
4241d41e4f
Merge pull request #143 from mkilgore/a740g-miniaudio-backend
a740g's miniaudio audio backend
2022-08-27 16:35:28 -04:00
Matthew Kilgore
ed78905a03 Update stdvorbis license to latest 2022-08-27 14:27:55 -04:00
Matthew Kilgore
c989be69f6 Disable MIDI support
This will be added back soon with with functionality to be able to
optionally enable it.
2022-08-27 14:27:55 -04:00
Matthew Kilgore
2603f84896 Format licensing information in markdown
This formats the licensing information as a markdown file, and
reorganizes it to be a bit easier to use. It additionally adds all the
licenses for the new audio backend, and adds a couple missing ones as
well.
2022-08-27 14:27:55 -04:00
Matthew Kilgore
333bc6231d Allow selecting audio backend in IDE
This change allows selecting the audio backend to use in your compiler
programs. The selection can be made via the 'Compiler Settings' dialog
in the IDE (renamed from the 'C++ Compiler Settings' dialog).

The new miniaudio backend is the default, a checkbox for "Use old audio
backend" exists in the IDE for switching back to the old backend (in the
event someone runs into compatibility issues or etc.). Eventually we'll
drop the old one.
2022-08-27 14:27:55 -04:00
Matthew Kilgore
48208e2eda Change miniaudio build logic to always clean all files 2022-08-27 14:27:55 -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
Matthew Kilgore
481906977e Add a740g's miniaudio backend
This is a single commit adding all of a740g's audio backend. Later
commits will connect it together with QB64PE itself.
2022-08-27 14:27:55 -04:00
github-actions[bot]
1de7d29ba6 Automatic update of ./internal/source 2022-08-27 14:55:26 +00:00