Commit graph

354 commits

Author SHA1 Message Date
Orgad Shaneh
a05e54f00c JANITORIAL: Remove trailing whitespaces 2021-05-04 11:46:30 +03:00
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