Commit Graph
353 Commits
Author SHA1 Message Date
Hubert Maier e19d4e197b AMIGAOS: Keep platform name continuity (#2643) 2020-11-26 15:10:01 +01:00
Einar Johan Trøan Sømåen 33572861c2 GRIM: Fix PixelFormat lookup during Remastered's startup.
Grim Fandango Remastered has an alpha channel in the
video that plays as intro.

This makes Grim Fandango Remastered start, although there
are still quite a few issues to fix.
2020-11-22 22:31:35 +01: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
Paweł Kołodziejski 9bdba8b919 GRIM: Fixed param for gl call 2020-10-14 08:31:25 +02:00
Paweł Kołodziejski d113c5d3a4 GRIM: Silence compiler warning 2020-10-14 08:29:48 +02: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
BeWorld cab7cd49c4 MORPHOS : Fixed for int vs int32 types for AmigaOS/MorphOS (#2510)
MORPHOS : Fixed int to int32 and some functions not available on AmigaOS/MorphOS
2020-10-11 18:24:36 +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
SupSuper 9ed8525c63 GRIM: Remove obsolete Windows headers 2020-10-09 21:24:52 +01:00
Pawel Kolodziejski 527ac8ee87 GRIM: Allow compile without freetype 2020-10-07 21:11:04 +02:00
Pawel Kolodziejski 5acf4af7f4 GRIM: Fixed regression in EMI. 2020-10-07 20:18:35 +02:00
Pawel Kolodziejski 3d74c3dd4d GRIM: Post branch merge fixes. 2020-10-07 19:50:27 +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
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
Mathias Parnaudeau 75de72f38f GRIM: Add one missing character description in emerFont data
The builtin font emerFont is currently used to display FPS.
Each graphics engine reads this array to render each of the 96 characters,
from 32 to 127 the ASCII table.

TinyGL and OpenGL-shaders read the array out of bound because they read
data for the 96th character in emerFont that only describes 95.
No problem was hightlighted with OpenGL engine because it only read 95
characters, with no consequence as the character 127 is DEL, so never
displayed.

To be compliant with the global implementation, data for character 127
is added in emerFont (will display nothing) and the OpenGL engine is
changed accordingly.
2020-02-21 07:17:48 +01:00
Mathias Parnaudeau e395d8d15d GRIM: Fix resource leak calling releaseMovieFrame
In EMI and GRIM games, a resource leak was found with OpenGL and
OpenGL-shaders engines: releaseMovieFrame() was not called in the destructor
of these graphics drivers (and never called at all on exit).
This patch calls explicitely realeaseMovieFrame.

Note that is was already done correctly with TinyGL.
2020-02-21 07:16:34 +01:00
Dries Harnie a6770e0bee AMIGAOS4: Use GL_UNSIGNED_INT for uploading video frames
GL_UNSIGNED_INT_8_8_8_8 is not (yet) recognized as a format.
2019-09-26 17:02:57 +02:00
Dries Harnie b236a005e8 GFX: Do not consult color map for alpha for AlphaOff meshes 2018-07-09 23:33:14 +02:00
Joel Teichroeb d43b5b4a0c GRIM: Switch iris renderer to regular rendering 2017-11-27 13:07:49 -08:00
Bastien Bouclet f4e3bd0424 GRIM: Take adventage of kFeatureFullscreenToggleKeepsContext 2017-09-01 09:26:57 +02: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 ae6b5b8c8e GRIM: Add support for reversed 32bits color endianness.
Also, reduce differences between opengl and shader prepareMovieFrame.
2016-11-06 10:07:40 +01:00
Paweł Kołodziejski d467980499 Merge pull request #1262 from vpelletier/tinygl_dirty2d
GRIM: Fix drawLine/Rect/Polygon in TinyGL renderer
2016-07-18 05:17:35 +02:00
Bastien Bouclet 420f19d6de GRIM: Remove useless assignments to g_driver 2016-07-12 06:16:35 +02:00
Bastien Bouclet 62bf521944 GRIM: Fix memory leaks related to the emergency built-in font 2016-07-12 06:16:35 +02:00
Vincent Pelletier 84859619f1 GRIM: Use [T]GL_LINE_LOOP to display an empty rectangle.
Reduces vertex redundancy.
In TinyGL, fixes checkbox border on Copal computer (actually, works around
yet another discrepancy between OpenGL and TinyGL on 1-pixel-thick
[T]GL_QUADS).
2016-07-11 14:52:36 +00:00
Bastien Bouclet 0362ac0dbc GRIM: Don't use OSystem::getScreenPixelBuffer in the OpenGL renderers 2016-06-11 12:07:38 +02:00
Pawel Kolodziejski 4e47c03a64 OPENGL: add checks for case when glGetString return NULL 2016-03-10 05:55:32 +01:00
Bastien Bouclet 3f295ec773 GRIM: Check at runtime that shaders are available 2016-02-06 08:53:42 +01:00
Bastien Bouclet 31715787ca SYSTEM: Add a system method for retrieving the screen framebuffer 2016-02-06 08:53:41 +01:00
Paweł Kołodziejski f40da7598e Merge pull request #1220 from vpelletier/move_computations_out_of_renderer
Move computations out of renderer
2016-01-09 12:17:35 +01:00
Vincent Pelletier ea8245696b GRIM,EMI: Scale intensity on change instead of for each frame
Also uniformises intensity scaling factor implementation across renderers.
Maintain saved-state compatibility by computing on restore.
2016-01-01 23:07:59 +01:00
Bastien Bouclet 8a4bada6b9 ENGINES: Also build the legacy OpenGL renderer when enabling shaders 2015-12-29 08:05:49 +01:00
Paweł Kołodziejski 0eb20ae8d5 Merge pull request #1177 from vpelletier/for_upstream
GRIM: Assorted lighting fixes
2015-08-16 08:53:18 +02:00
Christian Krause b186c21f85 EMI: Fix wrap around of Layers/Frames
This patch makes sure, that Layer::_frame is smaller than numLayers
of the bitmap in order to prevent out-of-bounds access to
BitmapData::_layers.
2015-05-16 10:39:08 +02:00
Dries Harnie 5c813a8b64 GRAPHICS: Only manually pull pointers if USE_GLEW not defined 2015-05-11 16:57:05 +02:00
Vincent Pelletier faad6a1fe3 GRIM: Disable quadratic attenuation for spotlights.
Enabling quadratic atenuation, even with values as low as 0.1, reduces spot
lighting too much in (at least) sets "do" (see Domino), "al" (see Manny when
walking along the garage door), "hq" (see Salvador).
Disabling is not perfect either, as attenuation can be seen (at least) in
set "tu" (see fire extinguisher), but it should be overall better.

Also, it should be noted that perfect fidelity cannot be achieved with openGL
fixed pipeline, as DirectX spotlight have two angles (0 <= phi <= theta <= pi),
atenuation being null below phi, full above theta, transitioning with a
configurable exponent between both (defaults to angle-linear). OpenGL would
correspond to phi=0 and theta=pi (ie, transition is always done between fixed
angles), plus a configurable hard cutoff.
2015-05-06 19:49:42 +02:00
Vincent Pelletier 351a4efa8a GRIM: Tweak attenuation.
Determined by enabling a single omnidirectional light (newlight9 in set
"ce", which stands at set entrance toward elevator) and comparing
luminosity level on Manny at several locations in that scene with original
software renderer.
This set is quite convenient for this comparison, as Manny position can be
easily controlled: stick to the wall with the red arrow pointing at the
stairs, making movements one-dimensional.

For spotlight, set "tu" was used with the single spotlight on, walking
from the fire extinguisher to server door, confirming similar attenuation.

From these tests, it seems only quadratic attenuation is used, which makes
sense as it gives a realistic effect.
2015-05-06 19:49:42 +02:00
Vincent Pelletier 06e7aa68b0 GRIM: Correct diffuse reflectance.
Determined by keping a single directional light source enabled, as they are
not subject to attenuation (having no position), and comparing with
original software renderer.
Default DirectX material reflects all diffuse light, so 1.0f coefficient is
likely correct.
2015-05-06 19:49:42 +02:00
Vincent Pelletier f36d2b62f8 GRIM: Drop TinyGL-only intensity divisor.
Also, divide intensity once instead of once per component.
2015-05-06 19:49:42 +02:00
Vincent Pelletier 6e996d145b GRIM: Disable specular lighting.
My initial idea that GRIM would use specular likely came from a difference
between DirectX and OpenGL lighting for spotlights: DirectX allows for an
extra penumbra angle, allowing stronger center spots while maintaining a
smooth fade (which I emulated with a fixed 2.0 exponent).
Also, specular involves an extra light color value and material definition
for specular reflection, which are not visible in game data files.
All this making the use of specular very unlikely to match original renderer.
2015-05-06 19:48:18 +02:00
Christian Krause d7e7ee214d GRAPHICS: Enable drawing of bitmaps/tiles with just one sub-image
Instead of using the number of sub-images to decide whether bitmaps
should be drawn using TIL information, better use the existance
of texture coordinates which are distinctive for tiles.
2015-05-05 23:19:16 +02:00
Christian Krause a8460f4f3f EMI: Check bit in mesh face flags to disable lighting
Use bit 0x20 in the mesh face flags to disable ligthing. This
fixes the problem that once a previous screen is used as
texture (e.g. in the intro or for the transition effects
in set kab when walking eastwards or westwards), it is shown
too dark due to the applied static lighting for overworld
actors.
2015-02-24 22:49:48 +01:00
Christian Krause 6d226501b5 EMI: Implement mesh-specific alpha values
- if Lua_V2::SetActorGlobalAlpha() is called with a mesh name,
  set a mesh-specific alpha value / mode
- use this alpha value in drawEMIModelFace()
- fixes the problem that the whole actor vanishes in some scenes
  (e.g. when entering or leaving the porch of the of LUA bar)
2015-02-17 01:57:07 +01:00
Joel Teichroeb 08dc8b3422 Load coords from text objects 2015-02-03 19:49:47 -08:00
Joel Teichroeb 86813e936b Put overlays into the right place 2015-02-03 19:11:18 -08:00
Joel Teichroeb 7618d95317 Improve text rendering 2015-02-03 18:46:02 -08:00
Einar Johan Trøan Sømåen 25386f19a7 Draw all lines of text, not just the first one 2015-02-02 10:21:19 +01:00