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