Commit graph

351 commits

Author SHA1 Message Date
Cameron Cawley
88e2764d13 GRIM: Reduce the amount of format conversion for bitmaps 2024-11-03 09:40:07 +02:00
Cameron Cawley
0825fab676 GRIM: Reduce memory usage for 3bpp textures 2024-11-03 09:40:07 +02:00
Cameron Cawley
4700a4110e GRIM: Use the best pixel format for video playback 2024-11-03 09:40:07 +02:00
Le Philousophe
1c1125d8ac GRIM: Refresh screen on a regular basis when possible
The only case where it's not possible is when we directly draw on OpenGL
backbuffer.
In TinyGL, we only update the backend screen without doing any
rendering.
2024-08-31 16:29:21 +02:00
KOLANICH
1fb6489072 GRIM: Add runtime introspection of renderer type used via get_renderer console command. 2023-06-21 09:44:05 +03:00
Donovan Watteau
09419beae0 GRIM: Fix MSVC C4245 char/uint8 warning
Related to commit 6df761e70e.
2023-03-07 13:52:18 +01:00
Vladimir Serbinenko
829eab2f72 GRIM: Split TTF fonts from bitmap fonts and add a drawing interface
This cleans up the code and allows adding double-byte charsets easier
2023-03-05 22:39:27 +01:00
Cameron Cawley
366e0c5f67 TINYGL: Replace tglFrustum, tglOrtho and tglClearDepth with float versions 2023-03-05 22:36:31 +01:00
Cameron Cawley
9f13b979d6 TINYGL: Ensure that Z-buffer images are never converted 2023-03-03 09:59:41 +00:00
Paweł Kołodziejski
c4686ee84c
TINYGL: Rename copyToBuffer to copyFromFrameBuffer 2023-02-09 07:31:09 +01:00
Paweł Kołodziejski
d8d42bf2fe
GRIM: Ported debug shadow plane draw from opengl to tinygl 2022-06-18 18:56:30 +02:00
Paweł Kołodziejski
ce0427e130
GRIM: Moved debug color shadow draw 2022-06-18 18:55:35 +02:00
Paweł Kołodziejski
06902574b4
GRIM: Janitorial 2022-06-08 01:12:00 +02:00
Paweł Kołodziejski
680772b8af
GRIM: Use generic description in game for TinyGL renderer 2022-06-07 23:10:26 +02:00
Paweł Kołodziejski
300a56ee46
GRIM: Put debug trace on different level 2022-06-07 23:09:15 +02:00
Paweł Kołodziejski
20cb0ae228
ALL: Cleanup ResidualVM -> ScummVM 2021-12-26 21:19:38 +01:00
Eugene Sandulenko
abea37c9bb
ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
Paweł Kołodziejski
df8776b191
GRIM: Removed dead code 2021-12-20 12:23:43 +01:00
Paweł Kołodziejski
a4e50f9f9c
GRIM: Synchronise portions of opengl vs tinygl 2021-12-15 20:31:04 +01:00
Paweł Kołodziejski
c66ca22cbb
TINYGL,GRIM: Replace custom shadows to stencil buffer solution 2021-12-10 18:37:24 +01:00
Cameron Cawley
06e79f2adf TINYGL: Use the existing list of rectangles when copying to the screen 2021-12-09 22:01:46 +01:00
Paweł Kołodziejski
6a591146c8
TINYGL: Added stencil buffer implementation 2021-12-09 21:10:53 +01:00
Paweł Kołodziejski
3b9f9804ee
TINYGL: Rearrange access to TinyGL 2021-12-08 14:52:18 +01:00
Paweł Kołodziejski
776cfe7585
GRIM: Moved getting tinygl buffer reference out of loop 2021-12-07 14:14:16 +01:00
Paweł Kołodziejski
d80bd265d2
TINYGL: Rearrange visibility various functions 2021-12-06 13:57:41 +01:00
Paweł Kołodziejski
66bc1955e8
GRIM: Cleanup pixel formats for textures 2021-12-04 22:21:12 +01:00
Paweł Kołodziejski
6f3b535752
GRIM,STARK,TINYGL: Fixed BE drawing issues. 2021-11-29 22:34:13 +01:00
Paweł Kołodziejski
af37825be3
ENGINES: Replace PixelBuffer with Surface 2021-11-27 20:14:44 +01:00
Orgad Shaneh
33a4eaa4d2 GRIM: Replace new[]/memset with new[]() 2021-11-10 19:53:15 +01:00
Cameron Cawley
757a819da9 GRIM: Remove unneeded use of Graphics::createPixelFormat 2021-06-24 11:55:54 +02:00
Orgad Shaneh
a05e54f00c JANITORIAL: Remove trailing whitespaces 2021-05-04 11:46:30 +03:00
Laurent Merckx
741cd5ddc7 GRIM: use GL_UNSIGNED_SHORT for glDrawElements instead of GL_UNSIGNED_INT (not supported for GLES <= 2) 2020-11-12 05:58:36 +01:00
Cameron Cawley
03e8f0ed2d
ENGINES: Remove code for toggling fullscreen mode (#2523)
* GRIM: Remove code for toggling fullscreen mode

* MYST3: Remove code for toggling fullscreen mode

* STARK: Remove code for toggling fullscreen mode

* ENGINES: Remove the fullscreen argument from initGraphics3d()
2020-10-14 07:49:28 +02:00
Cameron Cawley
b19857bd8c
ENGINES: Use ScummVM's 2D API for blitting the TinyGL framebuffer (#2516)
* GRIM: Use ScummVM's 2D API for blitting the TinyGL framebuffer

* MYST3: Use ScummVM's 2D API for blitting the TinyGL framebuffer

* ICB: Use ScummVM's 2D API for blitting the TinyGL framebuffer
2020-10-13 22:12:10 +02:00
Pawel Kolodziejski
b8ae32d71b GRIM: Remove unused return value from GfxBase::setupScreen 2020-10-05 20:03:16 +02:00
Pawel Kolodziejski
fb636cadde GRIM: Drop setting windows title with used renderer. 2020-10-05 07:59:10 +02:00
Pawel Kolodziejski
27e12d8a96 ALL: Eliminate LOCAL_PI macro 2020-09-23 23:20:23 +02:00
Bastien Bouclet
f4e3bd0424 GRIM: Take adventage of kFeatureFullscreenToggleKeepsContext 2017-09-01 09:26:57 +02:00
Vincent Pelletier
198554a211 GRIM: Log front buffer pixel format on TinyGL initialisation 2017-05-15 10:31:25 +00:00
Vincent Pelletier
e7073dc037 ALL: Add an option to control dirty rectangless TinyGL optimisation
Exposed to command line via --[no-]dirtyrects.
As dirty rectangles make the workload vary a lot between frames, it makes
performance regressions harder to spot. Disabling it produces lower, but
much more regular FPS counts.
2017-05-03 16:52:36 +00:00
Vincent Pelletier
1ca4e22223 GRIM: Use drawBitmap in GfxTinyGL::copyStoredToDisplay
Removes image down-sampling to texture resolution - much nicer !
2017-05-02 12:49:04 +00:00
Vincent Pelletier
bad3de8a12 GRIM: Drop off-screen buffers
These were present to implement actor freezing in software rendering mode
in the way original engine was intended for performance reason.
In residualvm, software rendering will generalise the principle through
dirty-rectangles management, so off-screen buffers should not be needed.

Also, properly implementing them requires invasive changes (move previous
draw call list from global OpenGL context to individual off-screen buffers,
along with associated linear vertex allocator, adding a new draw call to
track requested buffer changes until final on-screen frame buffer
presentation).
So instead of such added complexity, lie to lua API about actor not being
in set but keep it in so it is part of normal redraw sequence.

Fixes disappearing actors in cn, bi.
Likely also fixes at, ly, sh, mn, dd which uses free/thaw lua API, but
which I did not check.
2017-05-02 09:51:47 +00:00
Vincent Pelletier
d92e9581b4 GRIM: Use default clear depth
For consistency with OpenGL.
2017-05-01 03:19:45 +00:00
Vincent Pelletier
ee66143a90 GRIM: Disable lighting in GfxTinyGL::drawEMIModelFace
As is done for OpenGL. It allows TinyGL to take shortcuts in coordinates
transformations of all vertices.
Also, reduce trivial diffs with gfx_opengl.cpp .
2017-05-01 03:19:45 +00:00
Vincent Pelletier
a0886193f0 GRIM: Do not convert type-1 bitmap data on submission
Instead, generate color key in a consistent pixel format.
2017-04-29 15:17:37 +00:00
Vincent Pelletier
090dc58a83 GRIM: Drop outdated comment
This came from code in TinyGL which was removed during the 32bits works,
but I forgot to remove this comment.
2017-04-29 14:40:14 +00:00
Vincent Pelletier
8fc17a49e2 GRIM: {T,}GL_LINES does not need to be interrupted between each line 2017-04-28 21:55:36 +00:00
Vincent Pelletier
a8612e130f GRIM TINYGL: Do not force conversion to RGBA8888
createScreenshotBitmap internally converts to RGB565 anyway.
2017-04-26 13:11:00 +00:00
Vincent Pelletier
f8ef0b2261 GRIM: Draw to buffer before storing display
Fixes save game screenshots with TinyGL: without this, the screenshot
content is the menu at the time user confirmed the save, and not the
original scene.
This is consistent with OpenGL behaviour, where framebuffer-reading
operations implicitly call glFlush.
2017-04-25 11:31:49 +00:00
Vincent Pelletier
a3a6218060 GRIM: Avoid writing to buffer directly. 2017-04-23 01:44:51 +00:00