Commit Graph
121 Commits
Author SHA1 Message Date
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