Wyatt Radkiewicz
742f1f296d
AGS: Fixed code formatting
2023-08-28 21:16:42 +02:00
Wyatt Radkiewicz
87656d66df
AGS: Cleaned up blending/blitting pull request.
2023-08-28 21:16:42 +02:00
Wyatt Radkiewicz
a22396163f
AGS: Created test code for blending modes
2023-08-28 21:16:42 +02:00
Wyatt Radkiewicz
4ad7a30b38
AGS: Just fixed kTintBlenderMode
2023-08-28 21:16:42 +02:00
Wyatt Radkiewicz
07107b19bd
AGS: Fixed ARGB blending and finished benchmark
2023-08-28 21:16:42 +02:00
Wyatt Radkiewicz
d5b2cd4aea
AGS: Added SIMD optimizations for stretchedDraw
2023-08-28 21:16:42 +02:00
Wyatt Radkiewicz
499dfd7d7a
AGS: Added 2Bpp specifc code path optimization
...
Added a template specialization for 2bpp to 2bpp blits in
BITMAP::drawInner, makes 2bpp to 2bpp now around 2 times as fast as
normal 4bpp to 4bpp blitting.
2023-08-28 21:16:42 +02:00
Wyatt Radkiewicz
aa9d13f84a
AGS: Preliminary optimizations of blending funcs
...
Just commiting my first attempts at optimizing BITMAP::draw and the
blendPixel function. Here's an overview of the changes (some are
temporary):
- Put the loop of BITMAP::draw into its own function drawInner.
I templated it so that I could put different paths into the loop that
could be optimized out at compile time if a certain blending function
didn't need it etc.
- I added apple NEON (SIMD) intrensics to the drawInner function,
haven't ported it to SSE yet, but there is a small library that actually
maps neon intrensics to sse ones.
- Removed a few ifs from the normal x loop and put it in the y loop.
2023-08-28 21:16:42 +02:00
wyatt-radkiewicz
bf1f3dbb8b
AGS: Refined the temporary bitmap benchmark
...
The old benchmark benchmarked the render_to_screen function, which
wasn't specific enough to what is needing to be benchmarked (
BITMAP::draw, and blending functions), so it was changed to just use the
drawing functions of allegro's bitmap directly. Also from just looking
at other games, it seems like AGS games use truecolor graphics more
often than not, so the benchmark test graphic was changed to truecolor.
2023-08-28 21:16:42 +02:00
wyatt-radkiewicz
9b77e3bf03
AGS: Preliminary bitmap benchmark code
...
Made basic benchmarking code in engines/ags/engine/main/engine.cpp, by
adding the code into the seemingly unused allegro_bitmap_test_init
function.
2023-08-28 21:16:42 +02:00
Walter Agazzi
37f97cc8b6
AGS: Engine: add bitness and endianess to the printed engine version
...
+ Use term "engine" instead of "ACI" (a legacy "Adventure
Creator Interpreter" title).
From upstream eaf298ae3f96db6e37bfd9ac99bad1dff48430ae
2023-04-29 13:11:41 +02:00
Walter Agazzi
7808fb52e6
AGS: Engine: tidied few remaining old functions in Mouse namespace
...
* minstalled -> Mouse::GetButtonCount();
* msetgraphpos -> Mouse::SetSysPosition() (internal);
* mgetgraphpos -> Mouse::Poll();
* msetcursorlimit -> merged with Mouse::SetMoveLimit();
* msethotspot -> Mouse::SetHotspot().
From upstream 9211b07f36528776e6fabc34a29405b6d63f6c23
2023-04-29 13:11:41 +02:00
Walter Agazzi
6565ca8530
AGS: Engine: allow VSync in windowed mode
...
From upstream bcf90697ac93080d0edac3e99727041a4e2b461a
2023-04-29 13:11:41 +02:00
Walter Agazzi
9a801a02fd
AGS: Engine: fixed preload image does not have a sprite batch
...
From upstream 84730a4bbfb971855c667241a9a47745f283f12e
2023-04-29 13:11:41 +02:00
Walter Agazzi
711ca20dd1
AGS: Engine: abort in case failed both to switch and restore gfx mode
...
This may be a temporary solution, but it's necessary, because otherwise
engine will fail later, with a seemingly unrelated error, which will
be harder to diagnose.
From upstream 902568c4eba9dba4eb762882890c6e8a308683aa
2023-03-12 20:58:28 +00:00
Thierry Crozat
fa87b3f28f
AGS: force update gui metrics on load and on game start
...
This fixes some controls not reporting their metrics correctly until first displayed on screen.
From upstream ea4e6762236a13621ba0771b9d5d8ac4bcf33ee8
2022-10-09 19:12:22 +01:00
Thierry Crozat
29505204c1
AGS: Turned want_exit and abort_engine vars from int to bool
...
From upstream e924778ce3f88a4c821a4eecfea8edc353a6807b
In ScummVM they were already bools, but where still assigned values
of 0 and 1 instead of false and true in some places.
2022-06-23 23:57:27 +01:00
Thierry Crozat
3a4d94bf0b
AGS: Updated Multitasking setting
...
* Added `[misc] multitasking=[0,1]` to config, acting as a *starting*
setting, which may be changed by runtime call to `SetMultitaskingMode`;
* Ensure multitasking mode is overridden by connected external debugger
(always on, if possible);
* Let multitasking mode work in "fullscreen desktop" gfx mode (still
disabled in exclusive fullscreen);
* Now correctly reset multitasking mode if gfx mode changes.
From upstream 9f091926e393f75c90c951f9597710bf17395332
2022-06-23 23:57:27 +01:00
Thierry Crozat
305fdb853a
AGS: Abort current scripts on close window event
...
This helps kill "hanging" scripts if user closed the window while
there's no real engine update.
From upstream a758fd6de2dccd0c948fc7f9e5b65200df902a65
2022-06-23 23:57:26 +01:00
Thierry Crozat
e90fb00412
AGS: Replaced more strcpy with snprintf, for safety
...
From upstream 1b6cf053ebbe85e7ba6c5828e2582d757503bc16
2022-06-19 20:50:24 +01:00
Thierry Crozat
d6d464f898
AGS: Fixed sprite cache limit was reset on sprite file open
...
From upstream 4f57730e2b3d41af4fd0300e8b092d31d448f544
2022-06-16 23:16:20 +01:00
Paul Gilbert
d2547418c0
AGS: Added show_fps to config
...
From upstream 2d6e0fca6bd310822e4f82ed95eb2bb5c116ac65
2022-05-05 22:59:51 -07:00
Paul Gilbert
d385968209
AGS: Tidy up mobile config once more and get rid of psp_* variables
...
From upstream 4ba8fbed2f16786e86f201f57fdaaa91cc887700
2022-05-05 22:41:10 -07:00
Paul Gilbert
97c12e8435
AGS: Merged Character and ObjectCache structs, and hid in draw.cpp
...
From upstream 753d47d975b10666702c47a22cbc4e68847787f1
2022-05-05 22:41:09 -07:00
Paul Gilbert
6482e38803
AGS: CharacterExtras and MoveLists are stored in std::vector
...
From upstream 0c81cfefb788c0dcfdb2cad914f939f28110edca
2022-05-05 22:41:08 -07:00
Paul Gilbert
21ab95f5ab
AGS: Remove RegisterGameWithGameExplorer()
...
From upstream 1554207f04dc6999994d02956587b302bb56f858
2022-04-29 22:20:39 -07:00
Paul Gilbert
23a2e8c709
AGS: More config parse helpers: reading boolean ints, min-max range
...
From upstream 9737cabb8e7562122f8c471793bd994685d72bfe
2022-04-27 20:38:38 -07:00
Paul Gilbert
7b0bfee7cc
AGS: Renamed and moved INIread/write functions for proper org&style
...
From upstream 18398a7d695e81575218380e1bba28010c239fdc
2022-04-27 20:25:31 -07:00
Paul Gilbert
7fb5f6d21a
AGS: Support option for software renderer's output driver
...
From upstream d45f77548675f06056143d6989929870338b34a1
2022-04-21 21:31:00 -07:00
Paul Gilbert
5060848b48
AGS: Support requesting particular audio driver
...
From upstream 076e675a3d031cd0a9d162f914e6d94c93a10d71
2022-04-21 21:20:58 -07:00
Paul Gilbert
1b502b3d0f
AGS: Switch text format mode depending on OPT_GAMETEXTENCODING
...
From upstream 1295b8b70eced8ea7c6e277d0595c24e58b6c657
2022-04-12 22:27:58 -07:00
Paul Gilbert
29ea22c308
AGS: Add rotation support in config
...
From upstream d68e28eb1927c6c4391cddfe1e6294142181c365
2022-04-12 22:27:58 -07:00
Paul Gilbert
6fb506b1fe
AGS: Prevent reacting to window events during gfx mode init
...
From upstream b288b1ccb35b615bec9eb049352fa51adab1415a
2022-04-10 19:39:07 -07:00
Paul Gilbert
e4a6bd71f6
AGS: Option to clip GUI Controls' contents to their rect
...
From upstream 6c2612eb087924255a04d2da1dc1d5c8559d28b3
2022-04-10 19:39:06 -07:00
Paul Gilbert
3425f8faf2
AGS: Moved couple of gui-related global vars into GuiOptions struct
...
From upstream 973d238a2c20368d8932ade22d2965d121cb7793
2022-04-10 19:39:06 -07:00
Paul Gilbert
f5cfc86d70
AGS: Audio core init may throw
...
From upstream 0bd5a95eaabb87afc1ef577f3757f90b8953761d
2022-04-10 19:39:05 -07:00
Paul Gilbert
0408ce2b72
AGS: Fixed unnecessary registration of empty optional data paths
...
From upstream af24f3c307b3080e4ec8a7215dcac496f9ce38c6
2022-04-08 22:17:50 -07:00
Paul Gilbert
1d92ed73d9
AGS: Code rewrite: split SetSaveGameDirectory to make things easier
...
From upstream a53c06090a268b8c6dd6aa30369a30db2d3513a7
2022-03-31 21:34:33 -07:00
Paul Gilbert
e37ab7b725
AGS: Implemented "localuserconf" option in cmdline and global config
...
From upstream 109a9d985f498ed31308e2e97e1b97fa306c87c0
2022-03-31 19:36:12 -07:00
Paul Gilbert
70d620c07a
AGS: Support freely switching voice-over pack at runtime
...
From upstream 40b6fff14ac404185b822245bc1a3ba4af928a12
2022-03-27 19:14:55 -07:00
Paul Gilbert
8e310c5d98
AGS: Split GameState::want_speech into two variables for easier handling
...
From upstream 2f6e7362f742c59020fc6a70fdf67c5a87ff2e69
2022-03-27 19:14:55 -07:00
Paul Gilbert
6ab3c326b3
AGS: Don't quit if setting translation failed on start
...
From upstream ac5cb3be64a5c23e8d274099baed76b0b54cfb17
2022-03-27 19:14:54 -07:00
Paul Gilbert
8e12d38366
AGS: Simplier implementation of --windowed/--fullscreen cmd arg
...
From upstream 87d14d90579cbcf798ff7b6b72f125b54803c74e
2022-03-27 19:14:52 -07:00
Paul Gilbert
db3e087526
AGS: Fixed play.globalscriptvars[] was not initialized on start
...
From upstream b5c8feb3f70d35eebbab30d80d08f1c901081be2
2022-03-27 13:37:12 -07:00
Paul Gilbert
c4e7bd355b
AGS: Distinct "real fullscreen" and "desktop fullscreen" window mode
...
From upstream e7763cea241d46e360ed48dcb07bc8c75e591a8c
2022-03-22 22:30:13 -07:00
Paul Gilbert
d7727eb964
AGS: Separate configs for fullscreen and windowed modes
...
From upstream 96a1868fcf5d5aa0c070feaebc912c969348db0f
2022-03-22 22:30:13 -07:00
Paul Gilbert
1ad9fe0a37
AGS: Deprecated "ScreenSizeDefinition" option as overcomplicating
...
From upstream 997170c80c6189b0f4d6940cc1817dabcd77fe30
2022-03-22 22:30:12 -07:00
Paul Gilbert
106622d44c
AGS: Removed "scaling factor" from the FrameScaleDefinition struct
...
From upstream b2a4e98ecdd8cfd1d8e42ab32f6f337af60e5a68
2022-03-21 22:08:04 -07:00
Paul Gilbert
83c785cf22
AGS: Slightly more clear platform driver init/exit steps
...
From upstream b539f0c5c57514fb77875b4d15fc623e0251de52
2022-03-20 22:11:56 -07:00
Paul Gilbert
fff50e3735
AGS: Moved IsFile() and similar functions from Path to File unit
...
From upstream ab78e1c454d1d0e60eac5a27672f27aa2487e24f
2022-03-20 22:11:55 -07:00