Commit Graph
32 Commits
Author SHA1 Message Date
Cameron Cawley 138a983d80 COMMON: Refactor VSync handling to match the other options 2023-01-16 18:09:53 +01:00
Thierry Crozat 9a3ff9b285 AGS: Implement shake screen and flip screen support
This is partially based on upstream 675560f7c2060528ba7c75d5ecca78c56b9f0d8e
2022-12-15 22:40:17 +01:00
Thierry Crozat 887f156f73 AGS: Engine: OpenGL, Software drivers also try 24bit display modes for 32bit
This is mostly a cosmetic fix, as graphic mode was created successfully anyway.
But the engine was incorrectly reporting no suitable modes available.

From upstream 4399d6448c579c648fe7e0c157a6d5f1adc74a6c
2022-12-15 22:40:17 +01:00
Thierry Crozat e9c84767f7 AGS: Merged BitmapFlip with engine's GlobalFlipType (same values)
From upstream a747deafe67d536b6bcaf408077ca83f6e61a33d
2022-06-24 20:54:47 +01:00
Thierry Crozat b3aed69af6 AGS: Implement toggling Vsync if the backends supports it 2022-06-21 23:28:01 +01:00
Thierry Crozat db1d5b17cd AGS: Tidy vsync setting methods in renderers
From upstream 5ff955152c43f6adfe03298a7cac069efffbee4d
2022-06-21 23:28:01 +01:00
Paul Gilbert 4d15fc94c8 AGS: Refactor ScummVM GfxFilter from being static global 2022-05-31 21:04:19 -07:00
Paul Gilbert b1649597d7 AGS: Replaced Math/std Min/Max with ScummVM macros
Inspired by 6dee5ee6f271c600e30879d892295ea6069e8cc9
2022-05-05 22:41:10 -07:00
Paul Gilbert b9a9b00974 AGS: Graphic renderers use correct alpha as sprite transparency
From upstream d2502a5240c6c06eb2fb65a9bf90b30584d79051
2022-05-01 17:23:23 -07:00
Paul Gilbert 2b96f0ff67 AGS: Sprite batches may have parents
From upstream 369b3985400284df53695cee4d3f8f2dfc138beb
2022-05-01 17:23:20 -07:00
Paul Gilbert 9fff1dc1fa AGS: Separate sprite lists and batch lists in renderers
From upstream ccbf3d16788720e94e5362ff8aeae1e32b4febe5
2022-05-01 17:23:19 -07:00
Paul Gilbert a6f42ad1ab AGS: Fixing various "unused va/arg" warnings + removed empty funcs
From upstream 61771ecd638338806c40d0da2bf1addea06cac90
2022-04-25 21:44:40 -07:00
Paul Gilbert f009829e67 AGS: Further unifying VideoPlayer code in the base class
From upstream 6c6507e0427bbb8783616691affea83fdcaf10ef
2022-04-12 22:27:57 -07:00
Paul Gilbert 2b7e671eb7 AGS: Remade VideoMemDDB class into BaseDDB, tidy ddb declarations
From upstream 6faef191c6f5728d0e10fd2ed29f3adb0013496c
2022-03-15 22:28:38 -07:00
D G Turner 649ad6f9a6 AGS: Remove Duplicate Definition from Allegro System Header
This was causing GCC warnings when -Wduplicated-branches was defined.
2022-03-02 09:57:27 +00:00
Eugene Sandulenko abea37c9bb ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
Paul Gilbert ec75ae627a AGS: Implemented fade_interpolate 2021-09-25 09:54:22 -07:00
Paul Gilbert 4bcaeb6609 AGS: Use native color depth when creating vscreen and fading
From upstream 28a882eefad283e20397d787a934ec9bd0efc8b7
2021-07-31 14:34:09 -07:00
Paul Gilbert 12b9c52fba AGS: IGraphicsDriver must also know native game color depth
From upstream 0f9392acc1dd71b9b849af0eefbccdd92be12b30
2021-07-31 14:34:09 -07:00
Paul Gilbert 71500f8162 AGS: Revert corrected GetDisplayDepthForNativeDepth
We want to use paletted mode for paletted games, rather than just being
32-bit mode all the time
2021-07-12 20:06:05 -07:00
Paul Gilbert 116a2f8941 AGS: Further improve rendering with a screen dirty rect area
When the screen format doesn't match the virtual screen, rather than
blitting the entire surface each frame, keep track of the largest
bounds of pixels that have been changed when writing to the temporary
intermediate screen, and only blit the resulting area.

Long term, though, it would be interesting to review to see if the
batch system the graphics driver uses for rendering can be used to
determine a list of rects in the screen that are affected. If so,
hopefully those can be used instead.
2021-07-11 22:12:09 -07:00
Paul Gilbert 0cf9a86286 AGS: Further optimization for 32-bit screen rendering
I tried once again to refactor the AGS codebase to use an RGBA
format that can directly blitted to the screen for performance,
but once again couldn't locate all the places that assume that
specific pixel format. So to at least provide some optimization,
I've implemented two fast for loops that handle converting the
AGS surface pixels to RGBA or ABGR for rendering
2021-07-11 20:06:32 -07:00
Paul Gilbert ee75794504 AGS: Cleanup of usage of ScummVM Graphics::Screen 2021-07-11 14:06:26 -07:00
Paul Gilbert f5a019d3b4 AGS: corrected GetDisplayDepthForNativeDepth
From upstream 4c51ca2045b478b63f5e6b35be02fdce3ebf9b18
2021-07-10 18:56:58 -07:00
Paul Gilbert 76926d0d3a AGS: Fix rendering crash in La Croix Pan 2021-06-24 22:48:55 -07:00
Paul Gilbert 259accebac AGS: Properly update palette in 8-bit paletted mode 2021-06-20 19:15:56 -07:00
Paul Gilbert aec0a06700 AGS: Enable setting paletted graphics mode 2021-06-20 19:15:56 -07:00
Thierry Crozat 0cf45fbc39 AGS: Fix some regressions with blender modes 2021-06-14 20:21:10 +01:00
Paul Gilbert 0d600fcd9e AGS: Fix rendering 32-bit game screens 2021-06-13 21:09:15 -07:00
Paul Gilbert 4eb0c3bc24 AGS: Graphical fixes 2021-06-13 21:08:52 -07:00
Paul Gilbert b104d78888 AGS: Enabling disabled blocks, and making ScummVM needed changes 2021-06-13 21:08:50 -07:00
Paul Gilbert 701396361c AGS: Import of fresh codebase 2021-06-13 21:08:44 -07:00