Commit Graph
95 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 f70d871748 AGS: Prefer to use override specifier where necessary
From upstream 0d41b5ef0e2dadf24a4618a496b43630981687ff
2022-06-21 23:28:01 +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
Thierry Crozat 282ee9ad97 AGS: Fixing more trivial warnings
From upstream 83f7d9857e70f7d1d10fedf61196740d20ba0b0a
2022-06-18 01:08:54 +01:00
Thierry Crozat aecb62429d AGS: Update shared texture when dynamic sprite changes
From upstream 6be0e6d094e70e96d93a9ee4dd31ca166663eeaf
2022-06-13 00:30:21 +01:00
Thierry Crozat 487a58b3a8 AGS: Implements short-term texture cache in graphic renderers
- caches textures while they are in the immediate use;
- this lets to share same texture data among multiple sprites on screen.
- texture entries are identified by an arbitrary uint32 number.

From upstream 6f3f84e049df2f800aa4b06d221a393d904c2826
2022-06-13 00:30:21 +01:00
Thierry Crozat 29ee2d2ab8 AGS: Separated texture data from DDB objects with render settings
This allows to have multiple DDBs sharing same texture data.
From upstream fbcb62c507fb15ffc288d5ebdc1f0d664e66ecb8
2022-06-13 00:30:21 +01:00
Paul Gilbert 4d15fc94c8 AGS: Refactor ScummVM GfxFilter from being static global 2022-05-31 21:04:19 -07:00
Paul Gilbert 8a4186f225 AGS: Bit simplified DDB::GetWidthToRender()
From upstream 7cfb38f490e297387be4689c6c68ef7aa3d6c8b1
2022-05-10 21:18:01 -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 8b027e0d82 AGS: Support sprite batch's alpha
From upstream 190897b97c8959954fea3f3561923e1b1c73a2b6
2022-05-01 17:23:23 -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 fec8ab3183 AGS: Simplified DrawSpriteWithTransparency() a little
From upstream 38922c2eb62b8082ae7ba07f07a8fe2192f1bac5
2022-05-01 17:23:21 -07:00
Paul Gilbert d09117334d AGS: Removed obscure hack in DrawSpriteWithTransparency()
From upstream 083d8496f2d7c0eedc31c068ddf27720dee4ff2b
2022-05-01 17:23:20 -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 27ad60df72 AGS: Unify video flags in VideoPlayer, convert in script functions
From upstream e5c8293a8c8350c38a8df338f56e3806fdc4f119
Plus changes to local video player implementation to reflect changes
2022-04-12 22:27:56 -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 106622d44c AGS: Removed "scaling factor" from the FrameScaleDefinition struct
From upstream b2a4e98ecdd8cfd1d8e42ab32f6f337af60e5a68
2022-03-21 22:08:04 -07:00
Paul Gilbert ccb87178d5 AGS: Simplified add_to_sprite_list() argument list
From upstream 172466469dca450a05ba97fab85dcf747d344b02
2022-03-15 22:28:38 -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
Paul Gilbert 399a89825f AGS: New auto outline supports AA TTFs in 32- and 16-bit games
From upstream cae84d689019313cad49b6dca7e916866b90e49e
2022-03-14 21:04:07 -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
Max Horn b7e6d61669 JANITORIAL: Fix compiler warnings about unused code 2021-08-07 10:46:14 +02: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 cf3cc50981 AGS: Remove global macro from some strings and comments 2021-07-12 20:05:28 -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 14a8406719 AGS: Fix GUI sprite renderings 2021-06-13 21:20:41 -07:00
Paul Gilbert 0d600fcd9e AGS: Fix rendering 32-bit game screens 2021-06-13 21:09:15 -07:00
Paul Gilbert 8278e9fa52 AGS: Moved PlaneScaling to Shared
From upstream 080226c6b1c1a9b7ae913dedd35a2022a3ce1940
2021-06-13 21:09:08 -07:00
Paul Gilbert 15b90c14f3 AGS: picked out VideoMemoryGraphicsDriver::CreateDDB()
From upstream baae1b880a6e0e8ae96007c72eda2408147158fa
2021-06-13 21:09:03 -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