Commit graph

4065 commits

Author SHA1 Message Date
SupSuper
8f6935a263 GRAPHICS: Add option to use FrameLimiter without vsync 2024-12-06 10:51:17 +00:00
Cameron Cawley
0881cc6e45 GRAPHICS: MACGUI: Use a const pointer for MacPatterns arrays 2024-11-27 12:57:02 +02:00
Torbjörn Andersson
f4567290f6 SCUMM: MACGUI: Optimize Mac palette handling (bug #15492)
Previously, every palette change in a game get passed on to the Mac
Window Manager, which would then have to look up new colors for drawing
Mac GUI stuff. This was fine for some games, but later ones do a lot of
palette animations, which could slow things down.

Now the Mac Window Manager gets the new palette only when it's about to
draw the Mac menu, or when it's about to draw a dialog (since those can
be triggered outside of the menu).

Additionally, the Mac Window Manager now triggers the auto-opening of
the menu in the event handler, not in the drawing code. Otherwise the
menu would be drawn once before the SCUMM Mac GUI could notice that the
menu was visible, causing an ugly color glitch.
2024-11-21 19:50:05 +01:00
Miro Kropacek
f18147a08a BACKENDS: ATARI: Remove move16 code
There's no evidence of that code being faster than the already optimized
memcpy().
2024-11-21 11:33:11 +01:00
Le Philousophe
aa23b106b9 GRAPHICS: OPENGL: Add back ARB_fragment extensions
These extensions were removed in PR #5683 but they are still used by
Grim Fandango.
The following API were enabled:
- GL 3.3 compatibility
- GLES1 1.0 common
- GLES2 2.0
The following extensions have been selected:
- GL_ARB_fragment_program
- GL_ARB_fragment_shader
- GL_ARB_shading_language_100
- GL_ARB_texture_non_power_of_two
- GL_EXT_color_subtable
- GL_EXT_convolution
- GL_EXT_histogram
- GL_EXT_packed_depth_stencil
- GL_EXT_packed_pixels
- GL_EXT_paletted_texture
- GL_EXT_texture_compression_s3tc
- GL_EXT_unpack_subimage
- GL_KHR_debug
- GL_OES_depth24
- GL_OES_packed_depth_stencil
- GL_OES_texture_npot
- GL_SGI_color_table
- GL_SGIS_texture_edge_clamp

The header only, aliasing and merge options were chosen.
The permalink is this one:
https://gen.glad.sh/#generator=c&api=gl%3D3.3%2Cgles1%3D1.0%2Cgles2%3D2.0&profile=gl%3Dcompatibility%2Cgles1%3Dcommon&extensions=GL_ARB_fragment_program%2CGL_ARB_fragment_shader%2CGL_ARB_shading_language_100%2CGL_ARB_texture_non_power_of_two%2CGL_EXT_color_subtable%2CGL_EXT_convolution%2CGL_EXT_histogram%2CGL_EXT_packed_depth_stencil%2CGL_EXT_packed_pixels%2CGL_EXT_paletted_texture%2CGL_EXT_texture_compression_s3tc%2CGL_EXT_unpack_subimage%2CGL_KHR_debug%2CGL_OES_depth24%2CGL_OES_packed_depth_stencil%2CGL_OES_texture_npot%2CGL_SGI_color_table%2CGL_SGIS_texture_edge_clamp&options=ALIAS%2CALIAS%2CHEADER_ONLY%2CMERGE%2CMERGE%2CMERGE
2024-11-16 10:30:23 +01:00
Scott Percival
a205480946 MACGUI: Fix getBorderFlags for titleless window types
Fixes rendering of game viewport in Zeddas: Servant of Sheol.
2024-11-11 20:40:06 +01:00
Le Philousophe
dea9f5f33e GRAPHICS: OPENGL: Fix typo in comment 2024-11-11 14:05:56 +01:00
Niv Baehr
2a5602f34d GRAPHICS: MACGUI: Fix blank characters on forced Win95 mode 2024-11-05 20:18:50 +01:00
AndywinXp
90b5a73825 GRAPHICS: MACGUI: Add kWMModeForceMacFonts flag
This flag prevents Mac fonts substitutions with equivalent TTF fonts.
Of course, being this a flag, it will not impact any previous game using
this. It will only impact whichever engine will decide to set it to active
(in our case, SCUMM).
2024-10-28 08:24:59 +01:00
AndywinXp
7d3a3532cc SCUMM: Implement gamma correction for Mac games 2024-10-28 08:24:59 +01:00
Matthew Duggan
8bc2db262f GRAPHICS: Add wrapping mode that ignores trailing space
The DGDS engine word wrapping algorithm appends any amount of whitepsace on the
end of the line before wrapping, allowing the nominal line length to go beyond
the limit specified. The drawn length will still be within the limit.

Add a WordWrapMode flag that does the same.
2024-10-26 10:08:56 +03:00
Eugene Sandulenko
56565c65e7
GRAPHICS: MACGUI: Fix regression after ManagedSurface usage changes 2024-10-25 23:12:53 +02:00
Eugene Sandulenko
c191ea24fa
GRAPHICS: MACGUI: Fix usage of deprecated ManagedSurface methods 2024-10-24 15:07:01 +02:00
Cameron Cawley
ec53c5ea87 GRAPHICS: Simplify the generic blending routines 2024-09-29 02:19:42 +03:00
Cameron Cawley
c41edfd2e5 GRAPHICS: Some optimisations for the alpha blending routines 2024-09-29 02:19:42 +03:00
Cameron Cawley
433d6804f7 GRAPHICS: Make the blend structs into objects on the stack 2024-09-29 02:19:42 +03:00
Cameron Cawley
b987fe3573 GRAPHICS: Reduce complexity of the crossBlit() code 2024-09-27 03:48:52 +03:00
sluicebox
b4f8be5174 GRAPHICS: Fix memory leak in WinFont when reloading
Occurs during Hugo 1 introduction
2024-09-18 12:41:01 -07:00
Hubert Maier
1a816a5978 JANITORIAL: GRAPHICS: Fix typos 2024-09-16 09:41:26 +03:00
Le Philousophe
8b26ce1c16 GRAPHICS: Add target specifiers for Clang
This allows to enable back SIMD support when compiling with it
2024-09-05 07:24:29 +03:00
elasota
e2fccfe581 GRAPHICS: Normalize PixelFormat shift amounts to 0 for empty channels.
This fixes fromScummvmPixelFormat in the JPEG decoder not selecting the correct output format due to the comparisons failing.
2024-09-04 08:32:16 +03:00
sluicebox
cd755fc663 GRAPHICS: Fix memory leak in TTF font 2024-08-25 12:26:47 -07:00
Eugene Sandulenko
5a3a131b09
GRAPHICS: Added an arrow cursor to CursorMan
It is meant to be used as a sane cursor when the game is relying on
system cursor, like some Windows titles.

If you want to improve the cursor graphics, you are welcome.
2024-08-09 14:17:52 +02:00
Cameron Cawley
bdd164e551 GRAPHICS: Add missing addDirtyRect calls to ManagedSurface wrappers 2024-07-31 02:50:43 +03:00
Cameron Cawley
89c57d29ef COMMON: Move more maths functions into the Math namespace 2024-07-27 14:00:48 +03:00
Cameron Cawley
7e0dfe0081 GRAPHICS: Use custom stream callbacks for loading TTF fonts 2024-07-23 15:33:43 +01:00
Matthew Duggan
a5067e783c GRAPHICS: Remove erroneously added temp file 2024-07-16 13:52:49 +10:00
Matthew Duggan
4c78530c72 GRAPHICS: Constify object references in primitives API
This makes usage of the API a bit clearer - they are inputs only, not outputs.
2024-07-16 13:48:44 +10:00
Cameron Cawley
a8221621e6 GRAPHICS: Explicitly handle matching formats in ManagedSurface::simpleBlitFrom 2024-07-05 08:38:08 +03:00
Cameron Cawley
3676b39194 GRAPHICS: Deprecate the ManagedSurface copy constructor
Also reverted the changes from commit 81f566a.
2024-07-04 22:54:21 +03:00
Cameron Cawley
4bbcf77f70 GRAPHICS: Add move constructors to ManagedSurface 2024-07-04 22:54:21 +03:00
Misty De Meo
81f566a71b GRAPHICS: replace deprecated operator 2024-07-03 09:27:11 +03:00
Cameron Cawley
ff530edcb1 GRAPHICS: Deprecate ManagedSurface methods that implicitly copy pixel data 2024-07-02 13:31:18 +01:00
Cameron Cawley
224f5bb9d3 GRAPHICS: Add scaling and conversion wrappers to ManagedSurface 2024-07-02 13:31:18 +01:00
Cameron Cawley
86f9731bae GRAPHICS: Only invalidate the updated area of the screen in ManagedSurface::blitFrom 2024-06-30 16:35:41 +03:00
Cameron Cawley
1357bfe672 COMMON: Avoid including engine headers in common code for DebugChannelDef 2024-06-20 20:15:57 +01:00
Cameron Cawley
96f9569790 GUI: Make use of simple blitting routines where possible 2024-06-19 02:36:17 +02:00
Cameron Cawley
3da558fc96 GRAPHICS: Add a common function for detecting transparent surfaces 2024-06-19 02:36:17 +02:00
Cameron Cawley
49ca5c3a0e GRAPHICS: Add simplified blitting routines to ManagedSurface 2024-06-19 02:36:17 +02:00
Scott Percival
e1f2418c17
GRAPHICS: MACGUI: Fix MacMenu to support 32-bit graphics 2024-06-18 18:24:08 +08:00
Paul Gilbert
7559ecdf84 GRAPHICS: Copy fields, not surface itself, in ManagedSurface constructor 2024-06-06 20:31:03 -07:00
Paul Gilbert
6136c20a35 GRAPHICS: Fix setting _disposeAfterUse in ManagedSurface constructor
The copyFrom method called in the constructor always sets
_disposeAfterUse to true, so in the case we call the constructor
with DisposeAfterUse::NO, we need to set the field value after
the call to prevent it being overwritten.

I'm also not entirely happy that the DisposeAfterUse::YES case
automatically deletes the passed surface immediately, it seems
like it'll be prone to nasty side effects. But I'm leaving as is,
because I'm not sure which code, if any, currently relies on it
to prevent a memory leak.
2024-06-05 21:54:05 -07:00
Krish
1c1ed2e61e GRAPHICS: MACGUI: Fix compilation with DEBUG enabled 2024-06-03 14:01:15 +02:00
Krish
a51e33f1de GRAPHICS: MACGUl: Handle empty text in selection logic
Fixes crash in The Apartment version D4, movie "editableText"
./scummvm --start-movie=editableText theapartment4
2024-06-03 14:01:15 +02:00
Paul Gilbert
1f65be27d9 GRAPHICS: Palette constants cleanup, added Palette methods to ManagedSurface 2024-06-02 10:55:01 -07:00
Paul Gilbert
80e83c1a4b GRAPHICS: Support Graphics::Palette in PaletteManager 2024-06-01 11:38:27 -07:00
Paul Gilbert
2027813d67 GRAPHICS: Added Palette::createEGAPalette method 2024-06-01 11:26:17 -07:00
neuromancer
e49387f0c8 TINYGL: revert previous commit and correct number of elements for polygon offset ADD_OP 2024-06-01 15:33:50 +02:00
neuromancer
d22cffbcba TINYGL: correct number of elements for polygon offset ADD_OP 2024-06-01 15:33:50 +02:00
neuromancer
7ac37265f9 TINYGL: correct initialization of the stipple pattern buffer 2024-06-01 15:33:50 +02:00