Samuel Gomes
fcabef61ce
Implement cross-platform sub_files()
2023-12-28 23:35:20 +05:30
Samuel Gomes
a29d2b5955
Prefix function names with FS_ to avoid possible collisions
2023-12-28 02:28:53 +05:30
Samuel Gomes
c558d2a2d2
Update func__files() to return directory names with trailing slash
2023-12-28 01:50:24 +05:30
Samuel Gomes
8c61cac457
Merge branch 'filesystem-refactor-and-update' of https://github.com/a740g/QB64pe into filesystem-refactor-and-update
2023-12-28 00:10:52 +05:30
Samuel Gomes
4fc7fa3fd4
Merge branch 'QB64-Phoenix-Edition:main' into miniaudio-upgrade
2023-12-27 23:59:26 +05:30
Samuel Gomes
5d037775af
Add support for _FILES$()
2023-12-15 20:54:11 +05:30
a740g
9760895f92
Fix func__files() to return empty qbs on error
2023-12-15 13:48:04 +05:30
a740g
5c078a1ec1
Implement func__files()
2023-12-15 13:43:49 +05:30
a740g
260adbfe6b
Update more macOS known directories
2023-12-15 12:02:44 +05:30
a740g
3dd2495cee
Add more Linux known directories
2023-12-14 23:56:14 +05:30
Samuel Gomes
ef142ecd52
Update comments
2023-12-14 20:00:19 +05:30
Roland Heyder
2d9018ca85
Add missing changes
...
ideally these should have been part of the 1st commit
2023-12-14 00:30:03 +01:00
a740g
4d4b99ddd9
Fix some known directories
2023-12-14 02:47:29 +05:30
Samuel Gomes
901bdb4cd3
Add filesys test
2023-12-13 12:26:09 +05:30
Samuel Gomes
941f3583a4
Update comments
2023-12-13 10:59:04 +05:30
Samuel Gomes
ede0d38165
Merge branch 'QB64-Phoenix-Edition:main' into filesystem-refactor-and-update
2023-12-13 09:38:19 +05:30
Samuel Gomes
57eaa8d119
Merge branch 'QB64-Phoenix-Edition:main' into miniaudio-upgrade
2023-12-13 09:37:25 +05:30
Samuel Gomes
a52c3ba977
Simplify sub_kill()
2023-12-12 15:40:35 +05:30
a740g
ed30f7c211
Add some known directory support for macOS & Linux
2023-12-11 20:10:40 +05:30
a740g
3353364cf8
Make PATHNAME_LENGTH_MAX > 4k or FILENAME_MAX
2023-12-11 19:04:18 +05:30
Samuel Gomes
3604a7a7f7
Update sub_kill() to handle file spec without wildcard correctly
2023-12-11 16:17:53 +05:30
Samuel Gomes
07c8554f89
Cross-platform full sub_kill() implementation
2023-12-11 15:31:06 +05:30
Samuel Gomes
4ca0cf3a7b
Add initial support for FILES$()
2023-12-11 04:46:28 +05:30
Samuel Gomes
1b3a5a72f4
Simplify and remove magic numbers
2023-12-11 04:06:38 +05:30
Samuel Gomes
20e5789ffd
Simplify func__direxists() and func__fileexists()
2023-12-11 02:43:26 +05:30
Samuel Gomes
ffcd045da1
Make func__dir() cross-platform ready
2023-12-11 01:26:43 +05:30
Samuel Gomes
96a2ffcb1e
Simplify func__cwd()
2023-12-10 12:25:38 +05:30
Samuel Gomes
7a1f5100f2
Use Win32 ANSI API names
2023-12-10 11:40:34 +05:30
Samuel Gomes
a11a66fb63
Rename startDir to g_startDir
2023-12-10 11:25:01 +05:30
Samuel Gomes
48539861f3
Repace fixdir() with filepath_fix_directory()
2023-12-10 11:15:41 +05:30
Samuel Gomes
0e251eb8e8
Consolidate all filesystem related functions to it's own translation unit
2023-12-10 01:16:29 +05:30
Samuel Gomes
2835d2dde2
Update miniaudio to v0.11.21
2023-12-08 14:40:58 +05:30
Samuel Gomes
bbfd228597
Check for SVG start tag and add tests
2023-12-05 09:20:25 +05:30
Samuel Gomes
753ecb9609
Use uint8_t instead of auto / char
2023-12-05 06:44:23 +05:30
Samuel Gomes
4f7d2899c4
Add comments
2023-12-04 07:04:59 +05:30
Samuel Gomes
bb4a94a53e
Check for bogus data in image_svg_load_from_file()
2023-12-04 06:46:04 +05:30
Samuel Gomes
5f7cfa3747
Avoid segfault on bogus SVG data
2023-12-04 05:48:32 +05:30
SteveMcNeill
1be3e366ac
Final fixes to math stuff (I hope)
...
Fix to CONST with the math evaluator to toss a message and error with values out of acceptable range for ARCSEC and ARCCSC.
Tweak to _PI to add constexpr for speedier execution.
Fix to the math tests for the new (and unbuggy) values for ARCSEC and ARCCSC.
2023-10-31 11:32:22 -04:00
SteveMcNeill
64ba64f0bd
rename math.h to extended_math.h
2023-10-31 08:45:10 -04:00
SteveMcNeill
01163fb9e9
Create math.h
...
Move the extended math functions out of libqb and qbx, and place them inside math.h.
Correct the formula for _ARCSEC and _ARCCSC.
2023-10-31 08:34:19 -04:00
SteveMcNeill
3cf12d4222
Patch _ARCSEC and _ARCCSC
...
As per the forum posts here: https://qb64phoenix.com/forum/showthread.php?tid=2125
2023-10-31 00:21:30 -04:00
SteveMcNeill
5a063f4ef8
check for which optional param is passed to CLS
2023-10-18 09:11:40 -04:00
SteveMcNeill
7345839b75
missing call to sub__dest??
2023-10-18 08:49:42 -04:00
SteveMcNeill
9854955d99
Add Support for optional paramter for an image handle to CLS
2023-10-18 08:01:12 -04:00
a740g
3666f0763a
Avoid miniaudio runtime linking on macOS
2023-10-09 13:49:05 +05:30
Matthew Kilgore
d64221afda
Use correct math functions from std::
...
With the removal of `using namespace std;` we inadvertently started
using some of the global math.h versions of these functions, which take
different types and resulting in computation errors.
The fix is to prefix all these functions with std:: so that we go back
to using the std:: versions.
2023-10-07 02:05:13 -04:00
Samuel Gomes
c82dd88ee2
Merge branch 'main' into game-controller-fixes-and-enhancements
2023-10-04 18:47:20 +05:30
Samuel Gomes
2b92380460
Simplify func__os()
2023-10-01 09:47:31 +05:30
Samuel Gomes
49aeccc486
Initial WoA64 and MingW-LLVM support
2023-10-01 08:08:58 +05:30
Samuel Gomes
bd79d2db95
Make debugging code compile conditionally
2023-09-26 04:11:58 +05:30
Samuel Gomes
b514da5b39
Add include guard to game_controller.h
2023-09-26 03:41:16 +05:30
Samuel Gomes
563005c0e6
Update licenses/README.md
2023-09-26 02:31:54 +05:30
Samuel Gomes
79c531f2bb
Reorg. game controller and update libstem_gamepad
2023-09-26 02:01:35 +05:30
Samuel Gomes
d4c26d67bd
Merge branch 'main' into cleanup
2023-09-25 22:08:25 +05:30
Samuel Gomes
6287b4364f
Replace cout
with std::cout
2023-09-25 06:06:13 +05:30
Samuel Gomes
8822967d45
Replace string
with std::string
2023-09-25 05:32:00 +05:30
Samuel Gomes
2bfbf5b67c
Remove using namespace std
from libqb
2023-09-25 05:20:21 +05:30
Samuel Gomes
9981e09df5
RAD player: fix wrong KSL (key scale shift) values
2023-09-25 04:53:55 +05:30
Samuel Gomes
87a99c3970
Make _MEMSOUND channel parameter optional
2023-09-22 19:14:30 +05:30
Samuel Gomes
28d1bf1aac
Remove legacy audio code from the compiler
2023-09-22 10:10:04 +05:30
Samuel Gomes
efbd16b19c
Remove legacy openal headers from libqb.cpp
2023-09-22 08:41:45 +05:30
Samuel Gomes
7c17161d00
Remove legacy audio code
2023-09-21 19:52:10 +05:30
Samuel Gomes
b40edfbd9b
Avoid rendering filled background color boxes when _KEEPBACKGROUND is set
2023-09-21 07:52:07 +05:30
Samuel Gomes
4f004c117b
Merge branch 'main' into audio-enhancements
2023-09-21 01:13:54 +05:30
Samuel Gomes
66c3a7734b
Minor cleanup
2023-09-20 20:39:56 +05:30
Samuel Gomes
45e5a24f88
Add HDR format support to _SAVEIMAGE
2023-09-20 20:32:29 +05:30
Samuel Gomes
fcb7afceeb
Fix cannot initialize a parameter of type 'size_t *' with an rvalue of type 'ma_uint64 *'
2023-09-19 09:12:00 +05:30
Samuel Gomes
052d184ee7
Implement QOI datasource
2023-09-19 07:44:46 +05:30
Samuel Gomes
37c17c78f6
Remove GPL xbr.hpp and update all license info
2023-09-19 02:07:57 +05:30
Samuel Gomes
7d620c777b
Use better png compression level
2023-09-19 00:06:13 +05:30
Samuel Gomes
d27faf5ad7
Update extra libraries to latest
2023-09-17 22:40:43 +05:30
Samuel Gomes
a9a229f526
Replace most qbs stuff with std::string and cleanup
2023-09-17 17:20:38 +05:30
Samuel Gomes
fd088ec21b
Disable stderr debugging output
2023-09-17 14:13:17 +05:30
Samuel Gomes
fbc01dba85
Use VGA palette instead of EGA
2023-09-17 13:46:36 +05:30
Samuel Gomes
586371dc77
Implement _SAVEIMAGE
2023-09-17 11:52:54 +05:30
Samuel Gomes
8110307e2c
Add XBR & MMPX pixel scalers
2023-09-16 03:50:24 +05:30
Samuel Gomes
412b783efa
Add QOI support
2023-09-15 21:05:41 +05:30
Samuel Gomes
de128d8186
Add SVG loading support
2023-09-15 16:15:16 +05:30
Samuel Gomes
61fba93eb1
Remove dds_image: no load-from-memory support yet
2023-09-15 14:29:24 +05:30
Samuel Gomes
620d053577
Implement pixel scaler support
2023-09-15 14:10:27 +05:30
Samuel Gomes
b8ddbc30ee
Add jebp, QOI, dds_image, nanosvg & pixelscalers libraries
2023-09-15 11:24:41 +05:30
Samuel Gomes
6e80013339
Add QOA lib
2023-09-15 10:43:38 +05:30
Samuel Gomes
8548d090fc
Fix macOS seg-fault reported by @grymmjack
2023-09-14 07:19:22 +05:30
Samuel Gomes
1e251e4ea2
Add support for PCF & BDF fonts
2023-08-16 09:07:53 +05:30
Samuel Gomes
bf59b9da67
Fix incorrect client rect offset when compiled with LLVM-MingW
2023-07-29 10:38:23 +05:30
Samuel Gomes
89a0aa9f89
Merge branch 'main' into font-improvements
2023-06-21 07:21:30 +05:30
Samuel Gomes
3b1ca3a386
Fix fonts getting vertically misaligned
2023-06-19 07:06:49 +05:30
Samuel Gomes
7c96db91be
Update to Libxmp-lite v4.6.0
2023-06-17 14:07:50 +05:30
Samuel Gomes
6096ab90b6
Limit MML player to octave 6 like QB64 & QB45
2023-06-10 17:19:34 +05:30
Samuel Gomes
3f16e3c9d1
Add volume, panning & waveform support for SOUND
2023-06-10 02:24:05 +05:30
Samuel Gomes
947ebdca20
Replace Sleep with sub__delay()
2023-06-09 15:59:14 +05:30
Samuel Gomes
b26dfff73f
Implement "X" + VARPTR$(s$) support
2023-06-09 15:43:15 +05:30
Samuel Gomes
ef5d29e5fb
Implement PSG class
2023-06-09 13:02:14 +05:30
Samuel Gomes
ced04e9516
Minor cleanup
2023-06-05 10:47:11 +05:30
Samuel Gomes
e729e211e1
Update miniaudio to v0.11.17 (AIFF, AIFC support)
2023-06-01 04:09:09 +05:30
Samuel Gomes
bd9a7b6f6f
Merge branch 'QB64-Phoenix-Edition:main' into audio-enhancements
2023-05-23 01:42:57 +05:30
Samuel Gomes
8abb729d04
Update miniaudio to v0.11.16
2023-05-20 17:24:04 +05:30
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
47c3cac56a
Merge branch 'QB64-Phoenix-Edition:main' into dialog-fixes
2023-05-08 02:00: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
df4c144b34
Merge branch 'QB64-Phoenix-Edition:main' into audio-enhancements
2023-05-07 09:07:26 +05:30
Samuel Gomes
c6b8524739
Improve dialog functions using #305 & make string options case insensitive
2023-05-02 00:19:33 +05:30
RainRat
3914037c0f
fix typos
2023-04-30 15:20:42 -07:00
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
9870510b04
Merge branch 'QB64-Phoenix-Edition:main' into font-FreeTypeAmalgam
2023-04-28 20:57:28 +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
5a2f235064
Merge branch 'QB64-Phoenix-Edition:main' into audio-enhancements
2023-04-27 07:30:24 +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
Matthew Kilgore
8e1e7bc540
Fix keyboard _Device on Windows
...
Currently the Keyboard _Devices entry on Windows does not report all the
key presses and releases. This is due to missing some messages in the
form of WM_SYSKEYDOWN and WM_SYSKEYUP. Additionally Windows is weird
about report the state of the individual shift keys, so we add some
logic using GetAsyncKeyState() to fix that up.
Fixes: #333
2023-04-25 19:12:01 -04:00
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
4dcefd103e
Satisfy -Wc++11-narrowing
2023-03-04 07:50:46 +05:30
Samuel Gomes
e79537e624
Merge branch 'main' into image-load-from-memory-support
2023-02-13 16:24:36 +05:30
Samuel Gomes
009eb67ac7
Update comments
2023-02-13 16:24:11 +05:30
Matthew Kilgore
d4ed371681
Stopped timers don't trigger on TIMER ON
...
If a timer expires while stopped, it should trigger when TIMER ON is
run. Instead, on QB64 it triggers randomly after the TIMER ON happens.
The basic issue is that `qbevent` needs to be set to trigger the timer,
but TIMER ON doesn't do that. The regular timer logic that does that
already set it when the timer expired while sleeping, so it won't set it
again. The simplest solution is to just alway set qbevent = 1 when TIMER
ON is done. It's slightly less efficent but doesn't hurt to set it even
when there are no timers that expired.
Fixes: #293
2023-02-12 21:27:25 -05:00
Matthew Kilgore
f995f38e38
Using Sleep with Console programs does not trigger timers
...
The command Sleep is supposed to allow timers to trigger while the
program is sleeping on the delay. This is achieved in QB64 by having
commands that do delays manually call evnt() to trigger events if they
come up (of which timers are one).
Sleep has a custom implementation for console programs on Windows which
doesn't do this, so I redid the logic so that it calls evnt() at regular
intervals while waiting for input. Additionally, due to now calling
evnt() we also need to check if we should exit sleep early due to an
evnt() firing.
Fixes: #294
2023-02-12 21:27:25 -05:00
Matthew Kilgore
924472f5d6
Fix timers not firing at the start of the program
...
Timer's were not firing at the right time if they were started shortly
after the program started, instead they would fire at twice the interval
time (and then work correctly after that).
The issue was a mistaken assumption about `time_now`, with the idea that
if `last_time == 0` then `time_now` will be large enough such that the
interval check will pass. This is wrong because in most cases `time_now`
starts at zero at program start, so when `last_time == 0` it will take
one full interval of the timer before `time_now` is large enough for the
interval check to pass (at which point the timer is initialized and runs
normally).
This simply refactors the timer logic so that `last_time == 0` is
checked first, rather than if the interval has expired. This doesn't
change how the normal logic works, but ensures that the value of
`time_now` does not matter for initializing a timer.
Fixes: #273
2023-02-12 21:27:25 -05:00
Samuel Gomes
f86d566d7a
Merge branch 'image-load-from-memory-support' of https://github.com/a740g/QB64pe into image-load-from-memory-support
2023-02-13 03:52:28 +05:30
Samuel Gomes
52d168ff00
Update to use #305
2023-02-13 03:52:16 +05:30
Samuel Gomes
18efb60cc3
Merge branch 'QB64-Phoenix-Edition:main' into image-load-from-memory-support
2023-02-07 18:32:03 +05:30
Matthew Kilgore
42bded9ba9
Fix build on MacOS High Sierra
...
Fairly simple, MacOS High Sierra's libcurl version is too old and not
have `CURLINFO_CONTENT_LENGTH_DOWNLOAD_T`. This adds a version check to
use the older version of that command which gives back a double instead.
Fixes: #287
2023-01-20 13:30:12 -05:00
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
Matthew Kilgore
f21ce09e2d
Replace time() with std::chrono, fix startup delay
...
Currently main() includes logic that is intended to sync time() with
GetTicks() for the purpose of using GetTicks() to get millisecond
accuracy with time(), which only has second accuracy. Unfortunately, the
'syncing' up of these time sources results in an average of a half
second delay in starting a QB64-PE program.
This logic is easly replaced with std::chrono, which provides a real
time clock which is also millisecond accurate. That removes the need to
use time() and GetTicks() together to get millisecond accuracy, and
means the delay syncing them is no longer necessary.
I also separated most of the "delay" and "time" related functions into
datetime.cpp, and included the new std::chrono code into that file.
Since I needed to call some of the rounding functions in datetime.cpp I
also moved that stuff out into its own .cpp and header files to clean
things up a bit.
Fixes: #282
2023-01-08 20:24:25 -05:00
Matthew Kilgore
a3cea42e0d
Move icon image creation to sub__icon
...
The icon image creation is actually fairly expensive because the first
time you create a 32-bit image init_blend() is called, which is fairly
slow. Since only sub__icon makes use of these images (non-Windows
platforms and $Console:Only programs can't even use them) it's easy
enough to move the creation into sub__icon so the creation cost is
avoided on startup.
2023-01-08 20:24:25 -05:00
Matthew Kilgore
f88960966b
Fix use-after-free bug in buffer.cpp
...
Fairly simple, the finished entry is free'd and then removed from the
list, but that order results in us accessing the entry's next member
after it has been free'd. Swapping the order of the operations fixes the
issue.
Fixes: #281
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