1
1
Fork 0
mirror of https://github.com/QB64-Phoenix-Edition/QB64pe.git synced 2024-09-09 17:30:19 +00:00
Commit graph

259 commits

Author SHA1 Message Date
Samuel Gomes
cee04c3728 Mono & AA gyph metrics are now tracked separately 2023-05-18 03:19:03 +05:30
Samuel Gomes
c9749a03ff Autoformat code 2023-05-10 23:44:59 +05:30
Samuel Gomes
715c1003c4 Update miniaudio to v0.11.15 2023-05-10 23:20:34 +05:30
Samuel Gomes
3fc585241a
Merge branch 'QB64-Phoenix-Edition:main' into audio-enhancements 2023-05-08 19:12:51 +05:30
Samuel Gomes
381e5ab0e9
Merge branch 'main' into ucharpos-enhancement 2023-05-08 18:04:22 +05:30
Samuel Gomes
290081ddb6 Use LONG array instead of INTEGER 2023-05-08 01:11:01 +05:30
Samuel Gomes
60a448fb54 Add _UCHARPOS() to get individual char pixel position 2023-05-07 22:12:47 +05:30
Samuel Gomes
c6b8524739 Improve dialog functions using #305 & make string options case insensitive 2023-05-02 00:19:33 +05:30
Samuel Gomes
67b95016fc
Merge branch 'QB64-Phoenix-Edition:main' into audio-enhancements 2023-04-30 03:27:55 +05:30
Samuel Gomes
d1ca9d75f3 Move common validations into macros 2023-04-30 01:50:35 +05:30
Samuel Gomes
f1bb16a6fe Changes per discussion in #335 2023-04-30 00:27:34 +05:30
Samuel Gomes
49fd18afab Update GetStringPixelWidth() to return more accurate pixel length 2023-04-28 15:04:55 +05:30
Samuel Gomes
d74471b569 Fix RenderBitmap() bug 2023-04-28 00:53:45 +05:30
Samuel Gomes
97ad4d7134 Remove static variables 2023-04-28 00:35:47 +05:30
Samuel Gomes
e49eb79baa Update comments 2023-04-27 23:13:54 +05:30
Samuel Gomes
4a6fb37a88 Implement all _PRINTMODEs for _UPRINTSTRING 2023-04-27 22:30:55 +05:30
Samuel Gomes
4fc1905809 Replace fast_boxfill() with qb32_boxfill() in sub__UPrintString() 2023-04-27 12:41:20 +05:30
Samuel Gomes
9ac4107d71 Implement _PRINTMODE 1 & 3 2023-04-27 08:45:25 +05:30
Samuel Gomes
3dd439e625 Change function names 2023-04-26 22:36:24 +05:30
Samuel Gomes
2d650cf1fe Fix GetStringPixelWidth() 2023-04-26 21:37:36 +05:30
Samuel Gomes
c033c624ac Add support for _UPrint*() 2023-04-26 17:36:09 +05:30
Samuel Gomes
bfacbec2b5 Fix RenderBitmapPSetAlpha() 2023-04-26 14:15:45 +05:30
Samuel Gomes
7b6b0b0d42 Implement UPint functions 2023-04-26 13:09:25 +05:30
Samuel Gomes
ac136b7ef7 Simplify rendering code 2023-04-22 13:03:14 +05:30
Samuel Gomes
381b27c38a Replace sprintf_s with snprintf 2023-04-21 11:02:40 +05:30
Samuel Gomes
2da5b89a22 Improve ResizeBuffers() behavior and update comments 2023-04-21 00:02:40 +05:30
Samuel Gomes
bdd9cb1256
Merge branch 'QB64-Phoenix-Edition:main' into font-fixes 2023-04-20 20:57:29 +05:30
Samuel Gomes
5692d476b4
Merge branch 'QB64-Phoenix-Edition:main' into audio-enhancements 2023-04-20 20:55:48 +05:30
Samuel Gomes
4c82a241c1 Add stub for FontLoadFileToMemory() 2023-04-20 09:26:59 +05:30
Samuel Gomes
e4b36ca8ad Add font load-from-memory support 2023-04-20 09:23:13 +05:30
Samuel Gomes
469d0a11e3 Baseline is now calculated correctly 2023-04-19 19:14:10 +05:30
Samuel Gomes
58fab19c8a Fixes a potential segfault in func_play() 2023-04-19 18:15:07 +05:30
Samuel Gomes
c28310de38 Fix stub_font.cpp function signatures 2023-04-19 17:02:18 +05:30
Samuel Gomes
618e5117cd Add FontPrintWidthUTF32() and optimize chrwidth() 2023-04-19 09:30:38 +05:30
Samuel Gomes
492c8d0cf5 Remove unused out_x_pre_increment, out_x_post_increment 2023-04-19 08:39:56 +05:30
Samuel Gomes
ec723ed46b New FreeType cached font renderer 2023-04-19 07:49:02 +05:30
Samuel Gomes
75ff666213 Add function comments 2023-04-13 04:42:53 +05:30
Samuel Gomes
ac6f6574a1 Update comments 2023-04-11 23:21:47 +05:30
Samuel Gomes
feeba9c3fb Experimental MML player using miniaudio waveforms 2023-04-11 01:49:14 +05:30
Samuel Gomes
1c505561d6 Implement pending changes in #330 2023-04-09 03:37:44 +05:30
Samuel Gomes
fe5ab05e6d
Merge branch 'main' into font-cleanup 2023-04-06 19:36:21 +05:30
Samuel Gomes
1d6154e95c Supress GCC warnings (errors on Clang) 2023-04-05 13:45:15 +05:30
Samuel Gomes
d974c0b9a8 Tidy up font code 2023-04-04 17:51:17 +05:30
Samuel Gomes
d7a04f9164 Tidy up RAD sources 2023-04-02 16:37:18 +05:30
Samuel Gomes
5a14c90e31 Add RAD v1 support 2023-04-02 15:27:40 +05:30
Samuel Gomes
a7559fb352 Update miniaudio to v0.11.14 2023-04-02 15:03:08 +05:30
Samuel Gomes
ce41ec5eaa Opal OPL emulator fixes & update 1 2023-04-02 14:56:59 +05:30
Samuel Gomes
8a9b8a2f25 Update TSF and add SF3 support. Fix $MIDISOUNDFONT behavior 2023-03-26 11:38:03 +05:30
Samuel Gomes
8e8d06fd20 miniaudio version number bump 2023-03-23 05:58:10 +05:30
Samuel Gomes
5dc77acec9 Fix compilation errors with the C++ build 2023-03-22 09:18:28 +05:30
Samuel Gomes
09a9728464 Update miniaudio to version 0.11.12 2023-03-20 05:44:38 +05:30
Samuel Gomes
13a6e209d5
Merge branch 'main' into main 2023-03-19 08:57:53 +05:30
Samuel Gomes
0581d8dabc Update stb_image.h to v2.28 2023-03-19 07:21:20 +05:30
Samuel Gomes
6dd651f7cd Replace MinGW intrinsic zlib with miniz 2023-03-19 02:28:05 +05:30
Samuel Gomes
9a48df5842 Remove dummy files from internal/c/parts/network 2023-03-04 09:39:09 +05:30
Samuel Gomes
009eb67ac7 Update comments 2023-02-13 16:24:11 +05:30
Samuel Gomes
52d168ff00 Update to use #305 2023-02-13 03:52:16 +05:30
Samuel Gomes
68234d4786 Fix ambiguous overload 2023-01-11 22:09:24 +05:30
Samuel Gomes
f0f0a9a420 Overload _LOADIMAGE to allow strings as the 2nd parameter 2023-01-11 16:18:43 +05:30
Samuel Gomes
05392054a4 Image will load in the write page's bpp (if not specified) 2023-01-09 22:33:45 +05:30
Samuel Gomes
00ccc61fcb Add load from memory feature for images 2023-01-09 13:01:56 +05:30
Matthew Kilgore
f082889c1f Remove unused code from tinyfiledialogs.c 2023-01-08 20:24:25 -05:00
Samuel Gomes
9686676324 BufferMap: only delete assignment operators 2023-01-09 06:11:21 +05:30
Samuel Gomes
60204afc8e Update delete copy and move constructors and assignments for BufferMap 2023-01-09 06:06:58 +05:30
Samuel Gomes
d48df65282 Delete copy and move constructors and assignments operators for BufferMap class 2023-01-09 06:02:29 +05:30
Samuel Gomes
8c0590acee Add workaround for _SNDCOPY for sound created using _SNDOPEN(buffer, "memory") 2023-01-09 05:33:39 +05:30
Samuel Gomes
2e176ebf98 Set AUDIO_DEBUG to 0 2023-01-08 00:34:58 +05:30
Samuel Gomes
2957c41061 Workaround for _SNDCOPY for _SNDNEW sounds. Another one to follow for _SNDOPEN(buffer, "memory") 2023-01-08 00:14:59 +05:30
Samuel Gomes
5a893b8ffc Update comments and some beautification 2023-01-06 20:32:03 +05:30
Samuel Gomes
eacee1f609 Add PushMonoSampleFrames 2023-01-06 12:21:17 +05:30
Samuel Gomes
f7690aea17 Update comments 2023-01-02 16:24:08 +05:30
Samuel Gomes
ecfe4fb1be Format code 2023-01-01 23:17:56 +05:30
Samuel Gomes
6c72deafc1 Improve _SNDOPEN test and supress printfs in Hively replayer code 2023-01-01 23:14:05 +05:30
Samuel Gomes
e4273c0a68 Add Amiga AHX & HVL decoder 2023-01-01 22:56:02 +05:30
Samuel Gomes
061bf6af3d Rename _NEWSOUND to _SNDNEW to align with _SND* APIs 2022-12-31 12:00:38 +05:30
Samuel Gomes
da9d9e871c Fix for template argument deduction/substitution failed 2022-12-31 05:18:22 +05:30
Samuel Gomes
4c80f6bcea Implement feature request #28 2022-12-31 01:49:23 +05:30
Samuel Gomes
eebb56afd5 Implement load sound from memory #232 2022-12-22 20:42:27 +05:30
Samuel Gomes
a72f80258f Address #186 2022-12-22 15:11:20 +05:30
Samuel Gomes
bc65076feb Reduce mutex locks by using 2 vectors for _SNDRAW 2022-12-21 11:47:41 +05:30
Samuel Gomes
1357f53041 Add NO_PITCH, NO_SPATIALIZATION flags for raw ma_sound 2022-12-16 12:28:22 +05:30
Samuel Gomes
bcc7105641 Avoid getting queue size inside loop 2022-12-16 03:50:32 +05:30
Samuel Gomes
bd82b24ac7 Improve SOUND timing - #167 2022-12-15 10:47:27 +05:30
Samuel Gomes
df9b739e23 Address #166 - _SNDRAW using miniaudio data source 2022-12-15 09:16:42 +05:30
Samuel Gomes
cf16cb0c00 Replace custom queue code with C++ STL queue 2022-12-13 09:12:52 +05:30
Samuel Gomes
7f2ab7e83a
Merge branch 'QB64-Phoenix-Edition:main' into miniaudio-fixes 2022-12-04 01:32:39 +05:30
Matthew Kilgore
d678be717c Move GLUT initialization logic into separate .cpp file 2022-11-29 20:04:53 -05:00
Samuel Gomes
50c1430456
Merge branch 'QB64-Phoenix-Edition:main' into miniaudio-fixes 2022-11-24 07:17:04 +05:30
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
4c5072e0aa Enable PulseAudio on Linux 2022-11-18 10:46:58 +05:30
Matthew Kilgore
34a7df535e Add libcurl to the repository
This copy is used for building on Windows. For Linux and OS X we used
the system-provided copy.
2022-11-17 22:03:41 -05:00
Samuel Gomes
96e2c92bd6
Merge branch 'QB64-Phoenix-Edition:main' into miniaudio-fixes 2022-11-16 08:13:26 +05:30
Matthew Kilgore
a28342be99 Fix password handling in _InputBox$ on Windows
We were incorrectly treating the empty string and NULL the same and
using a password dialog for both. It now has the correct behavior of
displaying the password when provided the empty string, but just
displaying a blank input box when provided NULL.
2022-11-14 20:23:41 -05:00
Samuel Gomes
5cefba8609 Merge branch 'miniaudio-fixes' of https://github.com/a740g/QB64pe into miniaudio-fixes 2022-11-14 23:46:22 +05:30
Samuel Gomes
ea80bddd51
Merge branch 'QB64-Phoenix-Edition:main' into miniaudio-fixes 2022-11-14 23:33:25 +05:30
Matthew Kilgore
1509f85719 Improve _InputBox$ support on Windows
This applies various dialog settings so that the dialog is always on
top, and also so that Tab works as expected to move between the
controls. The Edit control is moved first so that it's focused when the
window appears.
2022-11-12 19:48:17 -05:00
Matthew Kilgore
3f709ba65b Add logic to correctly discover our process's Window
Currently we have two different ways of determining what Window handle
to tie our dialogs too - we either use GetForegroundWindow(), or create
a completely new and hidden handle. The associated window determines
what process names shows up on notifications, and also which window
can't be interacted with while a dialog is open.

Both of those approaches aren't really good. In the case of
GetForegroundWindow(), it just returns whatever window the user has in
focus, which might be a completely different process. With the hidden
window, it means the dialog and notification aren't really tied to the
QB64-PE program, so you can still interact with the window even when a
dialog is open, and the notification doesn't show an exectuable name.

To solve this we're now using EnumWindows() to enumerate over all the
Windows on the system and find one associated with our ProcessId. We
then check if it's the top-level window and return it if it is.

If that process fails to find a window (such as if this is a
console-only program, or $SCREENHIDE is used) then we check if
GetConsoleWindow() gives us a handle and use that.

If neither approach works, then we fall back to creating a hidden window
so that the dialogs can still work.
2022-11-12 19:16:43 -05:00
Samuel Gomes
7c2f709b7e Change blockSampleFrames for reduced latency 2022-11-11 18:50:59 +05:30
Samuel Gomes
2a5e2e8add Add O2 by default due to resampling code in audio 2022-11-10 18:48:41 +05:30
Samuel Gomes
28bdc23ce3
Merge branch 'QB64-Phoenix-Edition:main' into miniaudio-fixes 2022-11-08 23:54:25 +05:30