Commit graph

44 commits

Author SHA1 Message Date
Vincent Pelletier
a6af3a38a3 TINYGL: Fix vertice color when clipped and lighting is disabled
longcurrent_color is assigned per vertex, but it is not saved on each
vertex on creation (unlike their "color" attribute, used when lighting
is enabled).
As a consequence, and because rendering happens asynchronously (rather,
following the draw call queue managed by zdirtyrect.cpp when requested
to flip current buffer), longcurrent_color at clipping time can be
different to the one at vertex declaration time, causing color artifacts.

The effect is most noticeable in EMI set shi, in the grog dispenser +
shipyard manager closeup angle, when Guybrush exits the screen by
crossing its right border: dark triangles become visible on his face.

Instead, always use the color attribute, which is already properly
initialised on vertex creation.
2017-07-20 01:51:07 +00:00
Vincent Pelletier
77a4672530 TINYGL: Enable dirty rectangle by default. 2017-05-02 09:57:09 +00:00
Vincent Pelletier
1d3d581870 TINYGL: Use same default clear depth as OpenGL 2017-05-01 02:19:42 +00:00
Vincent Pelletier
bf319b5437 TINYGL: Cache and clip dirty rect on all DrawCall subclasses.
getDirtyRegion will be called twice on each DrawCall instance, so make
repeated work as short as possible.
2017-04-23 12:30:00 +00:00
Vincent Pelletier
6087492dbd TINYGL: Simplify setting & disabling scissors. 2017-04-23 10:35:04 +00:00
Vincent Pelletier
a577b4c6a6 TINYGL: Free disposed textures before images.
Reusing function already defined in zdirtyrect.cpp doing both.
2016-07-28 01:55:48 +00:00
Vincent Pelletier
47a1e826e7 TINYGL: Free draw call lists in glClose. 2016-07-28 01:55:48 +00:00
Vincent Pelletier
786311652a TINYGL: Initialise all light properties (valgrind).
Also, sort initialisation in the same order as declaration, for easier
difference-spotting.
2016-07-28 01:55:48 +00:00
Paweł Kołodziejski
d1be78ca49 Merge pull request #1269 from vpelletier/tinygl_optimise_light
Tinygl: optimise gl_shade_vertex
2016-07-20 14:39:05 +02:00
Vincent Pelletier
db8cee2a69 TINYGL: Free BlitImage memory on close. 2016-07-18 04:36:37 +02:00
Vincent Pelletier
f66026a8aa TINYGL: Only do spotlight & specular computations when actually needed.
Spotlight and specular requires normalized d.
Skip specular if the light source or the material have no specular
component.
2016-07-16 12:17:59 +00:00
Vincent Pelletier
411e16fba5 TINYGL: Fix default diffuse and specular values for lights > 0. 2016-07-16 12:17:59 +00:00
Vincent Pelletier
f6bbbc7b28 TinyGL: Use standard initial diffuse and specular values.
As per OpenGL specifications, light 0 is the only light with full diffuse and
specular light initial state. This should not affect residualvm as all enabled
light properties are configured.
2016-01-01 17:37:23 +01:00
Pawel Kolodziejski
f039ccd474 TINYGL: make consistent between allocation and free resource 2014-12-27 23:28:11 +01:00
Stefano Musumeci
974f47fa42 TINYGL: Added a way to disable or enable dirty rectangles at runtime. 2014-08-16 16:04:10 +02:00
Stefano Musumeci
2cf70d6d76 Merge branch 'master' into tinygl-dirty-rects-fixed
Conflicts:
	graphics/tinygl/ztriangle.cpp
2014-08-16 16:03:27 +02:00
Pawel Kolodziejski
1b48414d7e TINYGL: cleanup license headers 2014-08-13 18:52:52 +02:00
Stefano Musumeci
5adba756e3 TINYGL: Renamed tglBlitScissorRect into tglBlitSetScissorRect 2014-08-10 19:38:06 +02:00
Stefano Musumeci
72054e87ca TINYGL: Replaced magic numbers with a constant. 2014-08-07 21:47:54 +02:00
Stefano Musumeci
a0a17717be TINYGL: Added linear allocator for frames draw call data. 2014-08-06 21:50:49 +02:00
Stefano Musumeci
2af17ffdb3 TINYGL: Added default scissor rectangle value. 2014-08-05 20:00:13 +02:00
Stefano Musumeci
7f560daf04 TINYGL: Replaced Array with List as the container for draw calls queue.
NOTE: I also had to construct the struct GLContext properly now.
2014-07-26 17:56:44 +02:00
Stefano Musumeci
96167b84c4 TINYGL: Removed duplicated variables.
Explanation: those two variables were already tracked inside the class FrameBuffer and they were duplicated here, since there is no need to keep a copy of those variables I just removed them.
2014-07-25 15:54:07 +02:00
Stefano Musumeci
fb65073dcd TINYGL: Addressed a few issues with blitting interface. 2014-07-18 18:49:56 +02:00
Stefano Musumeci
62aa0af91a TINYGL: Brute force blit api implementation. 2014-07-18 18:49:54 +02:00
Pawel Kolodziejski
97b03aed01 TINYGL: changed code to allow initialize TinyGL with specific internal texture dimension.
Grim: 256x256, Myst3: 1024x1024
2014-07-05 13:08:34 +02:00
Pawel Kolodziejski
1b8dd28bc7 TINYGL: implemented tglDepthFunc 2014-07-04 23:14:44 +02:00
Pawel Kolodziejski
b4962f645e TINYGL: added tglAlphaTest stubs 2014-07-04 08:43:19 +02:00
Stefano Musumeci
109767e513 TINYGL: Implemented alpha blending and color transformation in sprite blitting for Grim TinyGL renderer. 2014-07-02 00:09:13 +02:00
Stefano Musumeci
63fd685589 TINYGL: Implemented alpha interpolation in triangle rasterization routine. 2014-07-01 14:29:44 +02:00
Stefano Musumeci
10c25d49d4 TINYGL: Added external interface for tglBlendFunc 2014-07-01 14:25:36 +02:00
Stefano Musumeci
1a5b6272fc TINYGL: Refactored the name of FrameBuffer instance from zb to fb 2014-06-28 20:39:09 +02:00
Stefano Musumeci
b9e0b28ed9 TINYGL: Renamed ZBuffer into FrameBuffer 2014-06-28 20:39:08 +02:00
Stefano Musumeci
19c819e2b0 TINYGL: Fixed an error in matrix transpose method and optimized the code a little bit more. 2014-06-28 17:58:27 +02:00
Stefano Musumeci
6c7eaca2eb TINYGL: Last optimization batch, performance comparable to the previous version. 2014-06-28 17:58:26 +02:00
Stefano Musumeci
d31c3e7744 TINYGL: Fixed an issue with vertices transformation and matrix-vector multiplication. 2014-06-28 17:58:21 +02:00
Stefano Musumeci
c1040a9cdf TINYGL: Started replacing the old classes with the new ones.
TINYGL: Removed all the use of the old classes of Vector and Matrix.
2014-06-27 11:28:59 +02:00
Einar Johan Trøan Sømåen
698ef4a37c TINYGL: Use astyle to (semi-selectively) apply the code-formatting conventions to TinyGL. 2014-02-20 18:46:49 +01:00
Einar Johan Trøan Sømåen
b21271bd82 TINYGL: Put declaration of counting variable inside for-construct. 2014-02-20 18:06:04 +01:00
Dries Harnie
6bd38b1801 TINYGL: Support ColorMask
Note, this is just basic support, it is either all or nothing.
Disabling select channels is not possible.
2013-07-02 00:22:59 +02:00
Andrea Corna
bd14146a78 TINYGL: Fix some memory leaks 2012-04-21 12:18:42 +02:00
Pawel Kolodziejski
49b578ec6a put tinygl internals into namespace, left only api 2009-05-25 13:19:29 +00:00
Pawel Kolodziejski
110527019b make compilable after latest change 2009-05-08 07:32:33 +00:00
Pawel Kolodziejski
f85c21fa4c moved tinygl 2009-05-08 07:17:43 +00:00
Renamed from engine/tinygl/init.cpp (Browse further)