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

37 commits

Author SHA1 Message Date
Samuel Gomes a100a434e4 Fix #175 2022-09-17 08:53:32 +05:30
Matthew Kilgore cd5e312f5a Revert changes to miniaudio.h, move changes elsewhere
Changing midiaudio.h will make it harder to incorporate new versions
into QB64-PE as they come out. To fix that I have reverted all the
changes to midiaudio.h and moved the few private parts we were using
into a separate 'filepath' API that's part of libqb.
2022-09-08 23:59:19 -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
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
Matthew Kilgore 94c2b56b69 Use mutex guard in completion implementation 2022-06-14 23:58:04 -04:00
Matthew Kilgore 298331e490 posix mutex shouldn't allow NULL
We shouldn't allow mutex lock/unlock to silently do nothing if NULL is
passed, as that is very likely a bug. Beyond that the Windows version
doesn't do this, so it's inconsistent as well.
2022-06-14 23:56:17 -04:00
Matthew Kilgore 869e361ee4 Move QB64 compiler settings to libqb-common.h
This moves a lot of the preprocessor flags for what compiler/platform
we're using into a libqb-common.h header inside the libqb/include
folder. This gets included at the top of every libqb .cpp file, and is
intended to be fairly small, providing only necessary things like
_WIN32_WINNT (which needs to be defined before including <windows.h> or
friends).
2022-06-12 00:28:16 -04:00
Matthew Kilgore 4052b8cc19 Add append-only buffer API
The Buffer API implements an append-only buffer, where you can write to
the end or read from the beginning. Data that is read is discarded from
the buffer, and you can query the buffer to get the current amount of
data inside.

Internally the buffer API is implemented as a chain of separate buffers.
This is done to avoid having to resize the existing buffer, which is
expensive. We keep track of where the reading currently is, and discard
the internal buffers after all the data in them is read.
2022-06-11 22:47:06 -04:00
Matthew Kilgore ecfc71ef95 Add completion API
Completions are basically a oneshot flag, which provide a `wait()` call
that blocks until 'finish()' has been called on the completion.

The nice aspect of completions is that because it is a oneshot the order
does not matter - if 'finish()' is called before 'wait()' then 'wait()'
returns immediately. It makes the logic for waiting until a thread is
done finishing up some work easy to implement.
2022-06-11 22:47:06 -04:00
Matthew Kilgore 7ef15653fd Add generic thread, mutex, and condvar API
This adds generic APIs to libqb for handling thread's, mutex's, and
condition variables. On Linux and OSX these are implemented via the ones
provided by pthreads. On Windows they're implemented via the ones
provided by the Win32 API.

For compiling, the code itself is not conditional, but the Makefile
includes logic to decide which implementation to pick.

Note that it would have been nice to simply use std::thread and friends
from C++11, however using them on MinGW appears to be a bit messy. Since
using the Windows ones directly isn't that hard this was an easy compromise.
2022-06-11 22:47:06 -04:00
Matthew Kilgore eb815c4220 Prepare for separate libqb, define C++ standard
This sets up a few different flags we'll need for the conditional
compiling, and also sets the C++ standard to gnu++11, which effectively
just matches what we were implicitly using before.
2022-06-11 22:47:05 -04:00
Matthew Kilgore f99407f251 Revert existing libqb split 2022-06-11 20:42:23 -04:00
Matthew Kilgore 437cfc3ab7 Remove old build system
Mostly old build scripts and helper files that are now covered by the
Makefile.

A notable deletion is the glew dll and lib files. These are unnecessary
because we compile `glew.c` directly rather than link against the dll or
lib copies we have.
2022-05-19 09:17:13 -04:00
Matthew Kilgore 55da5f4ce3 Format other various source files 2022-05-06 13:20:30 -04:00
Matthew Kilgore 1aa8d7a42f Run clang-format on ./internal/c/*cpp files 2022-05-06 13:20:30 -04:00
Luke Ceddia a23e8ce212 Use manual delta method for _mouseinputx/y on non-windows 2021-01-12 01:32:01 +11:00
Carlos A. Leguizamón a6fcfd51b3 Replaced way to detect macOS version and screen configuration. This way removes any output from console. 2020-12-21 11:03:34 -03:00
Carlos A. Leguizamón 6d3fbe23a4 Fix for UI scale in macOS Catalina, running with 4K/Retina displays. 2020-12-07 00:57:22 -03:00
Fellippe Heitor 8c19e0b60f
Extend to UHD and 5K test for Mac computers.
Closes #47

Thanks to @familygw for the report/fix.
2020-03-11 23:10:19 -03:00
Fellippe Heitor c22ef3ac96 And clang++ where applicable. 2020-02-20 21:43:23 -03:00
Fellippe Heitor 172583fd17 Replaces g++ with clang for the remaining macOS scripts.
If a user has Homebrew installed, calling g++ won't use Apple's Xcode version of the tool, which is required by QB64. This fix continues on with the patch introduced in 4dbdddc89e.

Extra "osx" references replaced with "macOS", but nothing substantial (almost aesthetic).
2020-02-20 20:52:30 -03:00
Fellippe Heitor 95664863be
Merge pull request #17 from QB64Team/detect-retina-macos
Detects Retina displays on macOS for proper scaling.
2020-01-15 00:08:38 -03:00
Fellippe Heitor 21cdb70efe
Trigger recompilation 2020-01-08 09:06:28 -03:00
Fellippe Heitor 0f1f63eda8 Detects Retina displays on macOS for proper scaling. 2020-01-06 12:09:15 -03:00
Fellippe Heitor 9f89e063f7
Trigger recompilation 2020-01-02 20:18:06 -03:00
Fellippe Heitor 7bf6dbb6e9
Trigger recompilation 2020-01-02 06:20:08 -03:00
Luke Ceddia 1c365c2bb8 Manually apply PR #93 chmod +x .command files 2020-01-02 14:13:56 +11:00
FellippeHeitor 31a855d642 Removes dead Android references. 2019-04-14 15:33:19 -03:00
FellippeHeitor f8c989a079 Moves glutSetWindowTitle call to proper place on macOS. Fixes #75 for good. 2019-03-31 23:38:36 -03:00
FellippeHeitor 12df99c8da Indentation work. No actual code changes. 2018-06-30 14:23:33 -03:00
FellippeHeitor 713d27fae6 Fix makeline in setup_win.bat.
Previous iterations built qb64.exe without proper access to terminal.
2016-09-06 11:17:12 -03:00
Luke Ceddia a6ad741acf Fix scroll wheel on Linux (again). 2016-08-13 00:16:56 +10:00
Galleondragon 0ea631d375 Implements the _DIR$("desktop") function which returns OS specific paths.
Implements changes to allow programs to run on ARMBI-v7 Android devices which also provides a massive performance boost to but runtime and startup time.
Implements changes to allow programs to run on x86-based Android devices.
Fix to ensure variables allocated in the "stack" are aligned on appropriate boundaries which would have otherwise crashed on Android.
Fix to _DEVICES to ensure variables are aligned on appropriate boundaries which would have otherwise crashed on Android (includes some refactoring).
Added permissions to allow reading from/writing to external storage. Use the _DIR$(...) function to help locate appropriate paths.
2016-03-20 18:56:10 +11:00
Galleondragon accdaf1ce0 Added support for Android & Virtual Keyboards 2015-10-30 23:18:44 +11:00
Luke Ceddia c003f0bc20 Fix scroll wheel on Linux; tidy up licensing info; clean up Windows setup; fix OSX script permissions.
The scroll wheel now behaves correctly on Linux. Reports suggest that the fix does not have any effect
on OSX though. The licensing documentation is updated to reflect the fact that there are no GPL components
included in a QB64 program. Some redundant code was removed from the Windows setup script. OSX setup and
run scripts were missing the executable bit - hopefully the repository will preserve that change.
2015-08-06 21:39:16 +10: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 f5285a1a61 (Automated push) Update internal/source/* from qb64.bas 2015-02-20 05:15:27 -08:00