Christian Krause
c2060b1649
GRAPHICS: Set uniform parameters for _spriteProgram
...
Set the uniform parameter for _spriteProgram
since they are needed by emi_actor.{fragment,vertex}
in drawSprite().
2015-04-27 21:46:16 +02:00
Christian Krause
4b8fcda1a1
GRAPHICS: Remove unused shader uniform variables
2015-04-27 21:01:42 +02:00
Dries Harnie
1bb9cd5258
EMI: Enable primitives drawing [OpenGLS]
2015-04-21 11:19:42 +02:00
Vincent Pelletier
8364862329
GRIM: SHADERS: Use the same coordinates as opengl renderer.
...
Reorder vertices to suit GL_TRIANGLE_STRIP instead of GL_QUADS.
Fixes Copal's computer display (checkbox border being offset) and save/load
menu arrows.
2015-04-07 08:52:22 +02:00
Bastien Bouclet
d1b72c7975
GRIM: Perform alpha testing when rendering actors with the shaders renderer
...
Fixes transparency for the tie rope and Glottis' head
2015-03-29 14:10:36 +02:00
Bastien Bouclet
1908a43d18
GRIM: Actors and billboards should not share the same shader uniforms
...
Fixes Manny's smoke idle animation
2015-03-23 23:24:28 +01:00
Vincent Pelletier
1fd56d769c
GRIM,EMI: SHADERS: Move 3 multiplication per light from CPU to GPU.
...
GPU already has to multiply intensity, this change just changes initial
shader-level intensity from fixed 1.0 to data value (after per-game
scaling). Use color w coordinate, as it already used as a boolean light
switch.
2015-03-22 14:15:31 +01:00
Vincent Pelletier
2b12ebbbe8
GRIM: SHADERS: Enable lighting.
2015-03-22 14:15:31 +01:00
Vincent Pelletier
25af91b4a8
GRIM: SHADERS: Pass light parameters to actor vertex shader.
...
They contain (pen)umbra angles for spotlights.
2015-03-22 14:15:30 +01:00
Vincent Pelletier
2990d241e1
GRIM,EMI: SHADERS: cos() expects radiants, _(pen)umbraangle is in degrees.
...
Also, use cosf() instead of cos(), the latter working on doubles.
2015-03-22 14:15:30 +01:00
Vincent Pelletier
1ab56fa3cd
GRIM: SHADERS: Get rid of the last mention of 1.3 intensity coefficient.
...
Also, reduce code duplication and avoid redundant divisions.
2015-03-22 14:15:30 +01: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
28804cd9fe
EMI: Flip y coordinate when creating screenshot textures
...
With OpenGL the created textures were mirrored in y direction
because OpenGL uses a different coordinate system where (0, 0)
is the bottom left corner.
2015-02-23 20:24:57 +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
Christian Krause
789da551fc
GRIM/EMI: Add nullptr checks to avoid segfaults on cleanup
2015-01-13 21:12:23 +01:00
Christian Krause
ad2ce4a87e
EMI: Fix memleaks caused by specialtyTextures
...
- delete screenshot after texture is created
- free _data[] entries in BitmapData::freeData()
- destroy _specialtyTextures[] entries in
graphic driver's destructors
2014-12-31 15:47:36 +01:00
Dries Harnie
ae4f9e20d4
EMI: Properly set viewMatrix as well [OpenGLS]
2014-11-24 14:07:30 +01:00
Dries Harnie
c0ec475288
EMI: Support overworld actors [OpenGLS]
2014-11-23 23:15:10 +01:00
Dries Harnie
e06056e7be
EMI: Factor out makeFrustumMatrix
2014-11-23 23:14:59 +01:00
Dries Harnie
0a73f11e9c
GRIM: Enable screenshot saving on ES2
2014-10-11 12:48:00 +02:00
Christian Krause
d9ade245d6
GRIM/EMI: Use the correct setUniform function for "alphaRef"
2014-09-17 01:24:31 +02:00
Christian Krause
598bfc5fe9
GRIM/EMI: Call glViewport for apitrace compatibility
...
glViewport needs to be called once to avoid the apitrace
error: "could not infer drawable size (glViewport never called)".
This fixes the problem that all apitrace framebuffer pictures
had a default size of 32x32 instead of the correct resolution used
in residualvm.
2014-09-17 01:17:29 +02:00
Dries Harnie
c2318c7153
EMI: Use half-transparent plane to implement dimScreen (OpenGLS)
...
- 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-15 20:44:35 +02:00
Dries Harnie
ef403a49d0
GRIM/EMI: Initialize _storedDisplay after setupScreen
2014-08-29 23:45:14 +02:00
Joel Teichroeb
6a852161c7
Merge pull request #999 from JoseJX/Camera
...
EMI: Keep camera as a rotation matrix and add Lua functions for changing it.
2014-08-19 17:21:43 -07: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
915e12321c
GRIM: Enable alpha test when drawing sprites.
2014-08-18 13:09:42 +03:00
Christian Krause
cbbf60d155
EMI: Check another bit in the mesh face flags to enable blending.
...
Bit 0x40000 in the mesh face flags (set only in the intro) should
enable blending, too. This fix lets the various screens of the intro
fade into each other.
2014-08-14 03:01:12 +02:00
Joni Vähämäki
40f5f7360f
EMI: Fix alpha test in OpenGLS.
2014-08-12 17:46:50 +03:00
Joni Vähämäki
1de77d8625
EMI: Fix matrix concatenation order when drawing sprites in OpenGLS.
2014-08-12 17:46:49 +03:00
Joni Vähämäki
3df07c384e
EMI: Fix parsing of sprite flags. Fixes #960
2014-08-12 17:46:47 +03:00
Joni Vähämäki
398f2afa98
EMI: Always write sprites to the depth buffer.
2014-08-12 17:46:45 +03:00
Joni Vähämäki
055f742ccc
EMI: Enable alpha blending if the mesh face flags has the 16th bit set.
...
This fixes drawing of the shadow mesh in the set unc when Guybrush is under the lights.
2014-08-12 17:46:43 +03: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
e638c09ba6
GRIM/EMI: Adjust the width and height names to better reflect usage.
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
Joel Teichroeb
265f62d3b3
GRIM: Fix build with GLES2
2014-07-28 15:20:57 -07:00
Bastien Bouclet
af44ec1ed3
GRIM: Fix build
2014-07-27 11:49:26 +02: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
Joni Vähämäki
8c14adb54f
EMI: Implement projection shadows for OpenGLS renderer.
2014-07-20 22:11:08 +03:00
Christian Krause
dfe1373386
GRAPHICS: Initialize/Destroy _storedDisplay
2014-07-16 23:24:24 +02:00
Christian Krause
1e82136592
EMI: Implement screenshot thumbnails for savegames
2014-07-16 23:18:43 +02:00
Pawel Kolodziejski
b80dea5a90
JANITORIAL: formating code
2014-07-14 09:33:37 +02:00
Pawel Kolodziejski
5ece56965c
GRIM/OPENGL: un-hardcode GFX operations a bit
2014-07-14 08:10:08 +02:00
Pawel Kolodziejski
0ba0bf20ca
GRIM: drop SYMBIAN32 ifdef
2014-07-14 08:04:37 +02:00
Pawel Kolodziejski
39e9dcb8aa
GRIM: remove _screenSize usage
2014-07-14 08:03:10 +02:00