Commit graph

100 commits

Author SHA1 Message Date
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
Donovan Watteau
579a272211 GRIM: Fix -Wunused-private-field warning when there's no GL_ARB_fragment_program 2024-08-17 09:24:54 +03: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
Cameron Cawley
ac37fe4044 GRIM: Avoid directly including system OpenGL headers 2021-12-09 22:37:27 +00:00
Paweł Kołodziejski
af37825be3
ENGINES: Replace PixelBuffer with Surface 2021-11-27 20:14:44 +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
Paweł Kołodziejski
264f6f037b ALL: Separate USE_OPENGL and USE_OPENG_GAME. Exclude WME3D for GLES2 for now. 2020-10-10 14:12:07 +02:00
Paweł Kołodziejski
6e619ca714 GRIM: Merge branch 'remastered' 2020-10-07 18:26:49 +02:00
Pawel Kolodziejski
b8ae32d71b GRIM: Remove unused return value from GfxBase::setupScreen 2020-10-05 20:03:16 +02:00
Dries Harnie
5c813a8b64 GRAPHICS: Only manually pull pointers if USE_GLEW not defined 2015-05-11 16:57:05 +02:00
Joel Teichroeb
1afe52dcf9 Add overlays. Colour is currently wrong" 2015-01-28 20:44:27 -08:00
Christian Krause
56e13b52ca EMI: Use half-transparent plane to implement dimScreen (OpenGL)
- instead of re-calculating the color values when dimming the screen,
  better draw a half-transparent plane after drawing all non-overworld
  characters
- fixes the issue that overworld actors were dimmed and that the
  pause screen is transparent when the inventory is open
2014-09-13 10:43:33 +02:00
Joseph Jezak
ff9f26981c EMI: Refactor to use a matrix for the camera. 2014-08-19 18:35:26 -04:00
Joni Vähämäki
9a87fa5d51 EMI: Parse per-texture blending mode from model data. 2014-08-12 17:46:42 +03:00
Joseph Jezak
e057c003c1 EMI: Calculate the bounding box using the actor's bounding box info. 2014-08-04 11:14:28 -04:00
Joseph Jezak
60fa48490e EMI/GRIM: Rename getBoundingBoxPos to getScreenBoundingBox to better describe the behavior. 2014-07-30 15:23:53 -04:00
Pawel Kolodziejski
a39576d921 GRIM/EMI: attempt to fix over read buffer. cleanup types 2014-07-24 15:37:11 +02:00
Joseph Jezak
0866354007 GRIM/EMI: Rename setupCamera to better describe what it does. 2014-07-22 23:28:00 -04:00
Joseph Jezak
6068e94938 EMI/GRIM: Remove unsused roll parameter from setupCamera calls. 2014-07-22 23:27:56 -04:00
Joel Teichroeb
e97e61c619 Merge pull request #954 from chkr-private/savegame-screenshots
EMI: Implement screenshot thumbnails for savegames
2014-07-22 14:45:04 -07:00
Pawel Kolodziejski
90e7fa2fa7 OPENGL: remove GLU leftovers 2014-07-19 12:45:09 +02:00
Christian Krause
1e82136592 EMI: Implement screenshot thumbnails for savegames 2014-07-16 23:18:43 +02:00
Joni Vähämäki
88ec1d5285 EMI: Implement lighting for OpenGL Shaders renderer. 2014-07-05 14:09:56 +03:00
Joel Teichroeb
5f87912e91 Merge pull request #949 from Akz-/grim-quat
GRIM: Use quaternions for animation.
2014-07-04 10:45:32 -07:00
Joni Vähämäki
dbfec3b1e8 GRIM: Use quaternions for animation. 2014-07-02 22:29:37 +03:00
Christian Krause
565f488c58 GRAPHICS: Refactoring
Rename some variables and functions of the graphics drivers to distinguish properly betwen textures and materials.
2014-07-02 02:07:06 +02:00
Christian Krause
bf8501fd37 EMI: Clear depth buffer before starting to draw the Overworld
- all actors of the Overworld should cover any non-Overworld drawings
- Overworld actors need to use the depth buffer so that e.g. the
pause screen is drawn above the inventory

- this fixes issue #927 (inventory is drawn above background of pause
  or menu screen)
2014-06-21 23:59:07 +02:00
Christian Krause
ec43bc6755 GRIM/EMI: Cleanup
- add override to overridden functions
- make sure that all overridden functions are virtual
- make local functions protected
2014-06-21 23:59:04 +02:00
Joel Teichroeb
a539832c78 Merge pull request #910 from JoseJX/FixGLTextureParams
EMI: Clamp sprites, repeat other textures.
2014-06-20 08:30:44 -07:00
Joseph Jezak
df3d63fc24 EMI: Add support for clamping sprite textures and repeating other textures. 2014-06-18 22:19:42 -04:00
Joni Vähämäki
b5cdd1240f EMI: Only draw models for actors inside the view frustum.
This adds math classes for doing frustum culling in software. These could be used for optimizing performance in many other places as well. For example, if an actor is outside the view frustum, it may not be necessary to do expensive keyframe animation and vertex skinning calculations for that actor.
2014-06-16 15:42:18 +03:00
Joel Teichroeb
21ca0acedc GRIM: Add override to overriden functions 2014-05-30 17:45:22 -07:00
Christian Krause
47251c0c09 EMI: Change drawing order of faces
If multiple faces of one model are referring to the same triangles, let
them overwrite each other so that the latest one will be visible. For
this purpose glDepthFunc is changed from GL_LESS to GL_LEQUAL so
that subsequent drawing attempts for the same triangle are not ignored by
the depth test.

This fixes the issue of the colored leg of the monkey bot in the end
scenes: the leg is drawn using color maps by the first face and using
textures by a following face.
2014-05-03 00:22:35 +02:00
Pawel Kolodziejski
8759900b6a ALL: synced with ScummVM 2014-04-05 18:18:42 +02:00
sietschie
98e9b41010 EMI: Implement GetBoundingPos for EMIModel
Added the ability to compute the bounding boxes of models so that the
text can be correctly placed near the actors.
2013-12-10 17:19:07 +01:00
Dries Harnie
b1a910c800 GRIM/EMI: Refactor GfxBase::startActorDraw 2013-12-04 14:31:06 +01:00
Dries Harnie
43fcfa765f GRAPHICS: Pass Mesh* to GfxBase::drawModelFace 2013-11-05 07:29:30 -08:00
Einar Johan Trøan Sømåen
fe3883cecd GRIM: Reformat code to be closer to convention. 2013-07-09 21:12:55 +02:00
Dries Harnie
3196c0a0fb EMI: Draw to depth buffer if sortorder >= 100 2013-07-02 00:22:58 +02:00
Dries Harnie
a723b0e3f5 EMI: Draw background layers at intervals
Previously, we split the background layers into everything
before SO 15 and after, and drew like that. However, this caused
the pink ship in shi.setb to not be drawn.

This patch draws the layers of the background at intervals of ten.
So if a set has six layers, layer 5 is the background and 4,3,2,1,0
are rendered at sortorder 40,30,20,10,0.
2013-06-29 14:41:17 +02:00
Paweł Kołodziejski
175620b62a ALL: change license headers from LGPL to GPL, and few updates 2012-12-19 23:15:43 +01:00
Dries Harnie
bde37f96a8 EMI: Over-draw some actors in Set::drawForeground
EMI draws portions of the background over actors
with sortOrder >= 15.
2012-11-26 02:08:58 +01:00
Dries Harnie
6334cc0290 EMI: Gfx::startActorDraw() accepts a quaternion 2012-11-13 21:51:11 +01:00
Dries Harnie
1bc9155cb7 EMI: Move _current{Quat,Pos} up to GfxBase 2012-07-03 20:02:57 +02:00
Dries Harnie
9d8f2afd09 EMI: Proper rendering of setups (OpenGL) 2012-07-03 00:20:45 +02:00
Dries Harnie
662e247c77 EMI: Pass scene.roll to Gfx::positionCamera() 2012-07-03 00:20:39 +02:00
Joel Teichroeb
13a9e6fd3e GRIM: Make TextObject use const where appropriate 2012-05-05 18:20:54 -07:00
Joel Teichroeb
b223ca4880 GRIM: Make PrimitiveObject use const where appropriate 2012-05-05 18:20:54 -07:00