Commit graph

1089 commits

Author SHA1 Message Date
vladislavbelov
aba7a170d9 Moves vertex attribute binding to CDeviceCommandContext.
Tested By: Langbart, Stan
Differential Revision: https://code.wildfiregames.com/D4610
This was SVN commit r26815.
2022-04-23 20:11:14 +00:00
vladislavbelov
7bd075d570 Moves glReadPixels to GL backend.
This was SVN commit r26802.
2022-04-17 14:55:00 +00:00
vladislavbelov
c6da4d9312 Adds a fallback texture to skies to avoid a crash if a sky texture was invalid.
This was SVN commit r26800.
2022-04-17 10:10:52 +00:00
vladislavbelov
e02b402a14 Uses vertex attribute name only for GLSL. Fixes #6500
This was SVN commit r26799.
2022-04-17 08:00:10 +00:00
vladislavbelov
eaac0b0dbe Uses vertex streams to get attribute locations reducing duplication in XML.
Also adds missing streams.

This was SVN commit r26792.
2022-04-15 18:13:33 +00:00
vladislavbelov
37645670c1 Fixes crash in shader preprocessor introduced in d295dacb9b and appeared after 25332f9b86. Fixes #6033
This was SVN commit r26791.
2022-04-15 17:45:15 +00:00
vladislavbelov
2c8f4c4837 Moves AssertPointersBound to draw commands to not forget to call it for new shaders.
In the future it allows to call AssertPointersBound in a more lazy way.

This was SVN commit r26784.
2022-04-12 18:02:08 +00:00
vladislavbelov
d8d736f0eb Allows tex clients decide how to handle invalid textures instead of assertions. Fixes #6436
This was SVN commit r26783.
2022-04-12 17:39:05 +00:00
vladislavbelov
8c1a469253 Uses GL device capabilities for all vertex attribute locations.
This was SVN commit r26782.
2022-04-12 16:49:04 +00:00
vladislavbelov
ad2068dae0 Uses sequential numbering of GL vertex attributes for modern hardware. Refs #3054
Differential Revision: https://code.wildfiregames.com/D4601
This was SVN commit r26781.
2022-04-12 16:13:47 +00:00
vladislavbelov
f6837978e8 Adds GL debug labels only if they are supported (forgotten in 3db24af763). Fixes #6495
This was SVN commit r26780.
2022-04-12 06:44:06 +00:00
vladislavbelov
e6dd9f944e Moves Vulkan report code to its device to prevent crashing when a GL device is created. Fixes #6270
Differential Revision: https://code.wildfiregames.com/D4577
This was SVN commit r26779.
2022-04-12 06:39:14 +00:00
vladislavbelov
811a540382 Simplifies GL::CShaderProgram to store less data.
This was SVN commit r26777.
2022-04-11 22:10:21 +00:00
vladislavbelov
3db24af763 Adds names to GL shaders and programs.
This was SVN commit r26776.
2022-04-11 20:30:23 +00:00
vladislavbelov
73c0e40045 Fixes warnings about unused function arguments in renderer.
This was SVN commit r26763.
2022-04-08 06:49:38 +00:00
vladislavbelov
e08590ee34 Fixes warning about unused captured variable in CDeviceCommandContext.
This was SVN commit r26749.
2022-04-02 20:40:40 +00:00
vladislavbelov
02b87cdb46 Fixes MSAA on macOS GL drivers for textures with incorrect sample count, fixes #6480
Refs #5969

Tested By: Langbart
Differential Revision: https://code.wildfiregames.com/D4581
This was SVN commit r26737.
2022-03-31 07:04:51 +00:00
vladislavbelov
4934784266 Adds USE_FP_SHADOW to shader context only for GL ARB.
This was SVN commit r26712.
2022-03-26 19:00:28 +00:00
vladislavbelov
a57581471d Reduces the number of uniform changes in decals rendering and the number of render queries in models.
This was SVN commit r26688.
2022-03-20 16:08:19 +00:00
vladislavbelov
d214745f8f Reduces the number of uniform changes in decals rendering.
This was SVN commit r26687.
2022-03-20 14:58:03 +00:00
vladislavbelov
2ed2e9de0c Invalidates CDeviceCommandContext texture bind cache properly.
Tested By: Langbart
Differential Revision: https://code.wildfiregames.com/D4553
This was SVN commit r26664.
2022-03-17 18:17:11 +00:00
vladislavbelov
37b30901b3 Removes C++ code for conditional defines removed in f29d059617.
Differential Revision: https://code.wildfiregames.com/D4551
This was SVN commit r26661.
2022-03-15 22:13:22 +00:00
vladislavbelov
ea6af3f148 Updates a model color uniform in RenderModifier only if it was changed.
This was SVN commit r26653.
2022-03-14 22:56:38 +00:00
vladislavbelov
b4253d48cb Moves CShaderProgram to backend and handling via CDeviceCommandContext.
Differential Revision: https://code.wildfiregames.com/D4548
This was SVN commit r26652.
2022-03-14 22:16:14 +00:00
vladislavbelov
992c18aabb Enables ARB shaders only once since we should not mix different backends.
This was SVN commit r26629.
2022-03-12 22:10:47 +00:00
vladislavbelov
518a1421ab Clears the color attachment of the main framebuffer only if needed.
Differential Revision: https://code.wildfiregames.com/D4539
This was SVN commit r26623.
2022-03-11 22:26:49 +00:00
vladislavbelov
5390143b66 Fixes rendering reflections even they are disabled, broken in 9ce51f4357. Fixes #6454
Reported By: Langbart
This was SVN commit r26615.
2022-03-10 16:36:16 +00:00
vladislavbelov
1ce999a52d Creates water backend textures and framebuffers only if needed.
Tested By: Stan
Differential Revision: https://code.wildfiregames.com/D4536
This was SVN commit r26613.
2022-03-09 21:40:24 +00:00
vladislavbelov
cb1f0807c5 Removes FALLTHROUGH in VertexArray after 12c304e494. Fixes #6453
This was SVN commit r26611.
2022-03-09 07:07:02 +00:00
vladislavbelov
12c304e494 Removes duplication of backend format in VertexArray usages, optimizes vertex color attribute of quad overlay.
This was SVN commit r26609.
2022-03-08 23:28:31 +00:00
vladislavbelov
647fccd410 Replaces native GL types by backend format in vertex attributes in CShaderProgram.
This was SVN commit r26594.
2022-03-07 02:21:05 +00:00
vladislavbelov
3399791677 Adds renderer backend vertex formats and normalizes texture formats.
This was SVN commit r26588.
2022-03-06 22:14:57 +00:00
vladislavbelov
db7894ff6b Removes redundant binding slot retrieving from CShaderProgram.
This was SVN commit r26585.
2022-03-06 21:17:24 +00:00
vladislavbelov
bc6ab4ac49 Removes redundant CShaderProgram streams.
This was SVN commit r26582.
2022-03-06 20:53:39 +00:00
vladislavbelov
3a4bbd11fd Moves all GL draw commands to CDeviceCommandContext.
Differential Revision: https://code.wildfiregames.com/D4518
This was SVN commit r26525.
2022-03-03 07:09:59 +00:00
vladislavbelov
6de2649955 Fixes empty decals drawing when a decal is outside or on a border of a map.
Reported By: Nullus
This was SVN commit r26514.
2022-03-01 18:02:52 +00:00
vladislavbelov
1ff3b45a1e Adds more checks for vertex and index buffer creations.
This was SVN commit r26502.
2022-02-27 20:21:07 +00:00
vladislavbelov
da4ec670c1 Moves glViewport from CRenderer to CDeviceCommandContext.
This was SVN commit r26497.
2022-02-26 23:17:48 +00:00
vladislavbelov
680b0215fc Adds depth bias to PipelineState and its management to CDeviceCommandContext.
Refs #2368

This was SVN commit r26495.
2022-02-26 21:49:32 +00:00
vladislavbelov
bf8fe51dea Moves enabling of GL multisample to CDevice.
This was SVN commit r26494.
2022-02-26 21:10:14 +00:00
vladislavbelov
67cafcd599 Fixes GLES and compilation warnings.
This was SVN commit r26492.
2022-02-26 20:28:39 +00:00
vladislavbelov
23a023507a Replaces GL_LINES, GL_QUADS, GL_TRIANGLE_STRIP and GL_TRIANGLE_FAN by GL_TRIANGLES.
This was SVN commit r26488.
2022-02-26 00:37:27 +00:00
vladislavbelov
59a0a74951 Fixes a degenerate triangle on terrain sides of map corners.
This was SVN commit r26487.
2022-02-25 23:45:54 +00:00
vladislavbelov
d5d1754991 Moves polygon mode handling to PipelineState and CDeviceCommandContext.
This was SVN commit r26486.
2022-02-25 22:05:06 +00:00
vladislavbelov
a87cb6c94d Moves GL depth comparison function to SamplerDesc.
This was SVN commit r26485.
2022-02-25 20:02:03 +00:00
vladislavbelov
8a63adc40d Uses CDeviceCommandContext as an input parameter for CCanvas2D.
This was SVN commit r26480.
2022-02-25 08:14:11 +00:00
vladislavbelov
d1f1d41a9f Uses triangles for drawing lines in CCanvas2D.
Differential Revision: https://code.wildfiregames.com/D4444
This was SVN commit r26479.
2022-02-25 06:59:57 +00:00
vladislavbelov
6a0fc31c33 Replaces GL_QUADS by GL_TRIANGLES for drawing overlays and debug frustums.
This was SVN commit r26465.
2022-02-22 18:41:31 +00:00
vladislavbelov
731b85b9a2 Adds GPU scoped labels for console, logger and profiler.
This was SVN commit r26444.
2022-02-20 21:55:29 +00:00
vladislavbelov
aac1a64675 Moves dynamic geometry for rendering sky to static vertex buffer.
This was SVN commit r26424.
2022-02-19 20:07:55 +00:00
vladislavbelov
b0826da1bc Fixes not drawing brushes under water when refractions are enabled.
This was SVN commit r26411.
2022-02-19 15:44:32 +00:00
vladislavbelov
36833d1df2 Moves max texture size to backend device capabilities.
This was SVN commit r26409.
2022-02-18 23:17:48 +00:00
vladislavbelov
5eb21cbfbf Adds debug labels to backend framebuffers.
This was SVN commit r26408.
2022-02-18 23:00:11 +00:00
vladislavbelov
b949f19875 Moves GL debug information toggle to run-time to make it easier to test after release.
This was SVN commit r26407.
2022-02-18 22:38:45 +00:00
vladislavbelov
cff79b421a Moves GL vertex and index buffer management to CDeviceCommandContext.
Tested By: Stan
Differential Revision: https://code.wildfiregames.com/D4493
This was SVN commit r26406.
2022-02-18 17:33:12 +00:00
vladislavbelov
aaf378f041 Moves backend capabilities to CDevice.
This was SVN commit r26366.
2022-02-13 21:46:03 +00:00
vladislavbelov
4de89c3db1 Moves texture management to CDeviceCommandContext, adds quality options.
Comments By: nwtour, Stan
Tested By: nwtour, Stan
Differential Revision: https://code.wildfiregames.com/D4488
This was SVN commit r26365.
2022-02-13 19:30:28 +00:00
vladislavbelov
a17fad722a Moves framebuffer management to CDeviceCommandContext.
Tested By: Langbart, nwtour
Differential Revision: https://code.wildfiregames.com/D4475
This was SVN commit r26302.
2022-02-05 16:59:23 +00:00
vladislavbelov
37aa0456c8 Fixes missed assignment to currentTech in ParticleRenderer added in 5adbe4f1a3.
This was SVN commit r26296.
2022-02-04 16:27:35 +00:00
vladislavbelov
ac77d1c3e0 Moves scissor test management to DeviceCommandContext.
This was SVN commit r26288.
2022-02-01 17:58:21 +00:00
vladislavbelov
aeaf495da3 Renames GL::CTexture levelCount to MIPLevelCount to match Tex.
This was SVN commit r26287.
2022-02-01 16:48:24 +00:00
vladislavbelov
a1f98b016b Moves depth and stencil tests to PipelineState and DeviceCommandContext.
Differential Revision: https://code.wildfiregames.com/D4471
This was SVN commit r26286.
2022-02-01 16:38:55 +00:00
vladislavbelov
709e8292b0 Moves color mask, depth mask and function management from CShaderPass to DeviceCommandContext.
Tested By: Langbart
Comments By: Stan
Differential Revision: https://code.wildfiregames.com/D4465
This was SVN commit r26284.
2022-01-31 20:10:06 +00:00
vladislavbelov
22db9202f1 Fixes EOL in PipelineState files after 5adbe4f1a3.
This was SVN commit r26283.
2022-01-31 11:47:58 +00:00
vladislavbelov
02c96903c5 Renames sgn function to Sign to fit the naming of other MathUtil functions.
This was SVN commit r26276.
2022-01-30 20:51:01 +00:00
wraitii
410d2e883a Remove leftover terrain-based movement cost code.
6581796103 removed the ability for terrain to affect movement speed. The
JPS pathfinder cannot support it, and the approach was poor anyways,
coupling rendering data with simulation data.
This lets us remove the dependency on CTerrainTextureManager everywhere.

Tested by: langbart
Differential Revision: https://code.wildfiregames.com/D4459
This was SVN commit r26269.
2022-01-29 08:22:28 +00:00
vladislavbelov
1e07283bac Disables possibility to mix shader types with a single backend.
Differential Revision: https://code.wildfiregames.com/D4463
This was SVN commit r26264.
2022-01-28 06:34:34 +00:00
vladislavbelov
d4d1bc039f Moves culling mode and front face state management to DeviceCommandContext.
Tested By: Langbart
Differential Revision: https://code.wildfiregames.com/D4456
This was SVN commit r26259.
2022-01-27 17:25:37 +00:00
wraitii
330b570ba8 Remove RENDERDATA_UPDATE_COLOR, which is not used, and cleanup.
RENDERDATA_UPDATE_COLOR was used to precompute lightEnv-dependent data
on the CPU. This is no longer done following engine upgrades, and in
particular d7d02a4740 which explictly always did this on the GPU.

ModelAbstract had a 'SetDirtyRec' hack for it because of decals, which
can also be removed. The 'dirty' bit of CRenderableObject is renderdata
for the specific item, never its props, so it never actually needs to be
recursive.

CheckLightEnv is also useless as a result, and removed.

Differential Revision: https://code.wildfiregames.com/D4453
This was SVN commit r26249.
2022-01-25 16:59:29 +00:00
vladislavbelov
acb043f4a2 Adds a rasterization state to the renderer backend pipeline state.
This was SVN commit r26248.
2022-01-25 16:28:58 +00:00
vladislavbelov
ad5377bc0e Fixes fancy water shores drawing after 1d9a8b2b0b.
Reported By: wraitii
This was SVN commit r26231.
2022-01-20 17:31:21 +00:00
vladislavbelov
5adbe4f1a3 Moves blend state management to DeviceCommandContext. Fixes #6420
Tested By: Langbart
Comments By: Stan
Differential Revision: https://code.wildfiregames.com/D4441
This was SVN commit r26228.
2022-01-19 17:28:47 +00:00
vladislavbelov
40e75f9c89 Removes binding additional attribute for water shader added in 1d9a8b2b0b.
Reported By: Freagarach
This was SVN commit r26223.
2022-01-15 16:47:42 +00:00
vladislavbelov
a4a647e9f0 Removes unused variable in ParticleRenderer after fc223e3540.
This was SVN commit r26222.
2022-01-15 16:29:26 +00:00
vladislavbelov
971b734873 Moves hardcoded blend state in debug overlay and water to their techniques.
This was SVN commit r26218.
2022-01-14 18:44:40 +00:00
vladislavbelov
fc223e3540 Moves hardcoded blend state in ParticleRenderer to the transparent particles technique.
This was SVN commit r26217.
2022-01-14 18:18:28 +00:00
vladislavbelov
1d9a8b2b0b Splits water surface and shore drawing functions and fixes their switch.
Differential Revision: https://code.wildfiregames.com/D4436
This was SVN commit r26215.
2022-01-14 17:34:58 +00:00
vladislavbelov
5cbd46de94 Removes deprecated GL alpha test.
In GL3.0 alpha test mode was deprecated and removed in GL3.3. We should
use discard/kill in shaders instead.
In shaders alpha test was removed in d3a24c26ba, in FFP it was removed
with FFP in b7e6811ea6.

Differential Revision: https://code.wildfiregames.com/D4434
This was SVN commit r26211.
2022-01-13 17:50:28 +00:00
vladislavbelov
9757cc2539 Removes direct shader binding, uses BeginPass always following e1374252b7.
Tested By: Stan
Differential Revision: https://code.wildfiregames.com/D4431
This was SVN commit r26199.
2022-01-11 05:56:44 +00:00
vladislavbelov
0cda752ec3 Uses CVertexBufferManager handle instead of raw VBChunk pointer management.
Tested By: Stan
Differential Revision: https://code.wildfiregames.com/D4430
This was SVN commit r26196.
2022-01-10 16:51:43 +00:00
vladislavbelov
795fb070af Removes asking GL of current bind framebuffer to avoid syncs.
Tested By: Stan
Differential Revision: https://code.wildfiregames.com/D4422
This was SVN commit r26193.
2022-01-09 07:36:56 +00:00
vladislavbelov
95318d34ff Removes redundant layer check added in f715b73f4f.
Reported By: Freagarach
This was SVN commit r26189.
2022-01-08 13:44:40 +00:00
vladislavbelov
9924450d36 Moves default GL state setup to GL device.
This was SVN commit r26187.
2022-01-07 22:21:22 +00:00
vladislavbelov
5610c71fc6 Fixes rendering big screenshot pieces onto screen, refs 52a8793450.
This was SVN commit r26186.
2022-01-07 20:15:48 +00:00
vladislavbelov
f715b73f4f Uploads cube textures in SkyManager via DeviceCommandContext.
Commented By: Stan
Differential Revision: https://code.wildfiregames.com/D4421
This was SVN commit r26185.
2022-01-07 20:00:41 +00:00
vladislavbelov
15c40861b4 Separates terrain alphamap combining and uploading.
Tested By: Stan
Differential Revision: https://code.wildfiregames.com/D4419
This was SVN commit r26184.
2022-01-07 14:33:54 +00:00
vladislavbelov
9d7457da9b Removes ogl_tex usage from CRenderer.
This was SVN commit r26181.
2022-01-06 23:23:36 +00:00
vladislavbelov
b061a7ead4 Optimizes FBO usages for LOSTexture and water shore foam.
Tested By: Stan
Differential Revision: https://code.wildfiregames.com/D4418
This was SVN commit r26180.
2022-01-06 22:44:54 +00:00
vladislavbelov
9bc3dd4699 Fixes terrain overlay texture upload after fd976456d7.
Reported By: nwtour
This was SVN commit r26176.
2022-01-06 14:16:32 +00:00
vladislavbelov
912202ff0c Uses core GL functions for GLSL shaders.
Tested By: nwtour, Stan
Differential Revision: https://code.wildfiregames.com/D4416
This was SVN commit r26175.
2022-01-06 11:41:04 +00:00
vladislavbelov
cee0ce48eb Disables redundant mipmap generation for postprocessing.
Tested By: Stan
Differential Revision: https://code.wildfiregames.com/D4417
This was SVN commit r26174.
2022-01-06 11:09:42 +00:00
vladislavbelov
27c8771a3a Fixes debug drawing of a null shadow texture introduced in 36107cb7e1, appeared after abc3190c03.
Reported By: nwtour
This was SVN commit r26173.
2022-01-06 11:04:45 +00:00
vladislavbelov
fd976456d7 Performs texture uploads via DeviceCommandContext interface.
Tested By: Langbart, Stan
Differential Revision: https://code.wildfiregames.com/D4415
This was SVN commit r26170.
2022-01-05 14:49:54 +00:00
Stan
0a8d382657 Fix OpenGL ES 2.0 Warnings.
This was SVN commit r26167.
2022-01-04 20:54:37 +00:00
vladislavbelov
5e3426794c Moves frame rendering function to CRenderer and combines with making screenshots.
Tested By: Stan
Differential Revision: https://code.wildfiregames.com/D4414
This was SVN commit r26166.
2022-01-04 18:13:45 +00:00
vladislavbelov
87b5c233c5 Splits CRenderer part about scene to CSceneRenderer.
Tested By: Stan
Differential Revision: https://code.wildfiregames.com/D4412
This was SVN commit r26165.
2022-01-04 13:29:01 +00:00
vladislavbelov
2f90becb28 Removes SkipSubmit and unused friends from Renderer.
This was SVN commit r26162.
2022-01-03 12:16:16 +00:00
vladislavbelov
3e6b0780fa Removes unused Renderer friends of removed classes, refs 8753f881ee, 6bc33fe8bd.
This was SVN commit r26161.
2022-01-03 12:00:37 +00:00
vladislavbelov
3b8f1cdc04 Moves Renderer internals class out of the global namespace.
This was SVN commit r26160.
2022-01-03 11:11:58 +00:00
vladislavbelov
6dc0abebdb Removes unused includes from Renderer.
This was SVN commit r26159.
2022-01-03 10:59:41 +00:00
vladislavbelov
4fba543488 Unifies providing SkyManager and WaterManager like other managers, refs b889826a3d.
This was SVN commit r26158.
2022-01-03 10:49:12 +00:00
vladislavbelov
273d336364 Removes unused Atlas functionality to set clear color added in 2f53eea71a and removed in 0d6882dad2.
This was SVN commit r26156.
2022-01-03 09:39:54 +00:00
vladislavbelov
c9ba9299a3 Ignores sampler settings for multisample GL textures.
Reported By: Stan
This was SVN commit r26144.
2021-12-30 17:31:16 +00:00
vladislavbelov
abc3190c03 Removes binding native GLuint textures from public ShaderProgram API.
Differential Revision: https://code.wildfiregames.com/D4407
This was SVN commit r26143.
2021-12-30 16:37:51 +00:00
Stan
ae32055c9b Add support for GL_KHR_debug in Debug Mode.
Based on a patch by: @linkmauve
Reviewed by: @vladislavbelov
Differential Revision: https://code.wildfiregames.com/D2488
This was SVN commit r26141.
2021-12-30 15:07:17 +00:00
vladislavbelov
92cf0c784c Removes Handle from ShaderProgram to use more high-level objects.
Tested By: Stan
Differential Revision: https://code.wildfiregames.com/D4403
This was SVN commit r26138.
2021-12-29 07:07:08 +00:00
vladislavbelov
b9e4c14083 Fixes out of bounds access in SkyManager after 0837e369cf.
This was SVN commit r26136.
2021-12-28 10:50:42 +00:00
vladislavbelov
136f4621af Fixes crash for ARB shaders because they don't provide actual locations, triggered after c2c3a3b663.
Reported By: nwtour
This was SVN commit r26127.
2021-12-27 21:27:56 +00:00
vladislavbelov
0837e369cf Moves PostProcManager and SkyManager to GL texture class continuing 57ba7c4a1c.
Tested By: Stan
Differential Revision: https://code.wildfiregames.com/D4398
This was SVN commit r26126.
2021-12-27 21:01:43 +00:00
vladislavbelov
9696df3c28 Removes unused ogl/ogl_tex includes.
This was SVN commit r26121.
2021-12-27 10:11:26 +00:00
vladislavbelov
60a422b668 Moves water textures and terrain alpha composite map to GL texture class following 57ba7c4a1c.
Tested By: Stan
Differential Revision: https://code.wildfiregames.com/D4394
This was SVN commit r26120.
2021-12-27 08:14:47 +00:00
vladislavbelov
c2c3a3b663 Moves shadow map and terrain overlay to GL texture class continuing 57ba7c4a1c.
Tested By: Stan
Differential Revision: https://code.wildfiregames.com/D4393
This was SVN commit r26117.
2021-12-26 09:48:48 +00:00
vladislavbelov
57ba7c4a1c Encapsulates GL texture creation in a separate class.
Tested By: Stan
Differential Revision: https://code.wildfiregames.com/D4389
This was SVN commit r26107.
2021-12-25 00:26:10 +00:00
vladislavbelov
478164962f Removes static linking of OpenGL library.
Tested By: Langbart, Stan
Differential Revision: https://code.wildfiregames.com/D4387
This was SVN commit r26104.
2021-12-24 08:02:27 +00:00
Stan
c9bea80e0d Use GLAD2 a multi-Language Vulkan/GL/GLES/EGL/GLX/WGL Loader-Generator.
Comments by: @nwtour, @Langbart, @bb
Based on patch by: @echotangoecho
Tested on Windows 7 & 10, Ubuntu and macos.

Differential Revision: https://code.wildfiregames.com/D721
This was SVN commit r26093.
2021-12-21 22:03:31 +00:00
vladislavbelov
a32ab00f4d Moves backbuffer swap and error check to GL device.
This was SVN commit r26092.
2021-12-21 17:02:04 +00:00
vladislavbelov
3b9b7cd605 Moves GL report from HWDetect to GL device.
Tested By: Freagarach, Stan
Differential Revision: https://code.wildfiregames.com/D4376
This was SVN commit r26081.
2021-12-16 06:36:46 +00:00
vladislavbelov
eb004e5c98 Uses forward declaration for SDL in GL device.
This was SVN commit r26078.
2021-12-15 10:50:31 +00:00
vladislavbelov
93a9072618 Removes logs of unused GL constants which duplicate video mode settings.
This was SVN commit r26077.
2021-12-15 10:49:46 +00:00
vladislavbelov
89c181ded1 Encapsulates information about GL inside device.
Commented By: Stan
Differential Revision: https://code.wildfiregames.com/D4375
This was SVN commit r26072.
2021-12-15 06:43:41 +00:00
vladislavbelov
3809457513 Replaces unclear PreferGLSL by direct renderer backend choice.
Commented By: Stan
Differential Revision: https://code.wildfiregames.com/D4363
This was SVN commit r26069.
2021-12-14 06:34:02 +00:00
vladislavbelov
f28efbaa87 Forbids using more than 64 bones for GPU skinning.
Commented By: Stan
Differential Revision: https://code.wildfiregames.com/D4244
This was SVN commit r26067.
2021-12-13 19:22:27 +00:00
vladislavbelov
a3382fb3eb Removes checks for unused or always enabled GL extensions.
Differential Revision: https://code.wildfiregames.com/D4371
This was SVN commit r26065.
2021-12-13 18:36:37 +00:00
vladislavbelov
fe81a6eec7 Refactors WaterManager to remove duplication of the current texture index calculation. Removes unused m_WaterCurrentTex from f2cae8cb9b.
This was SVN commit r26045.
2021-12-09 18:01:28 +00:00
vladislavbelov
e1374252b7 Removes direct access to shaders, leaves only techniques.
Tested By: Langbart
Differential Revision: https://code.wildfiregames.com/D4353
This was SVN commit r26020.
2021-11-27 15:01:14 +00:00
vladislavbelov
c0e0d620eb Draws fancy water and its shore waves only for GLSL shaders.
This was SVN commit r26017.
2021-11-26 21:47:04 +00:00
vladislavbelov
d1a7aa2858 Adds alpha and custom options to render debug modes.
Tested By: Langbart
Differential Revision: https://code.wildfiregames.com/D4346
This was SVN commit r25996.
2021-11-14 08:33:59 +00:00
vladislavbelov
36eb92f9a4 Adds render debug modes.
Tested By: Langbart
Differential Revision: https://code.wildfiregames.com/D4311
This was SVN commit r25992.
2021-11-12 11:22:18 +00:00
vladislavbelov
4bae03c6c8 Enables GL_TEXTURE_2D always since we don't support FPP anymore.
Tested By: Langbart
Differential Revision: https://code.wildfiregames.com/D4327
This was SVN commit r25982.
2021-10-30 14:34:20 +00:00
vladislavbelov
3e198f1463 Removes duplication of terrain alpha map creation in Renderer.
Tested By: Langbart
Differential Revision: https://code.wildfiregames.com/D4269
This was SVN commit r25931.
2021-09-20 12:55:39 +00:00
Freagarach
645e053fd2 Remove executable bit on some source files.
Reported by: Ralph Sennhauser
Fixes: #6325

This was SVN commit r25917.
2021-09-12 18:41:51 +00:00
vladislavbelov
96708cc6a5 Adds header for forward declarations of CStr.
This was SVN commit r25905.
2021-09-09 17:39:08 +00:00
vladislavbelov
a5c82a4ef6 Removes unused forward declarations of class and struct.
This was SVN commit r25903.
2021-09-08 19:43:01 +00:00
vladislavbelov
3b417062bb Reduces the number of possible allocations for models with multiple UV sets during loading.
Tested By: Stan
Differential Revision: https://code.wildfiregames.com/D4247
This was SVN commit r25890.
2021-09-03 20:11:52 +00:00
vladislavbelov
7d039f2627 Replaces gui material by solid material in water waves rendering.
This was SVN commit r25713.
2021-06-06 18:13:20 +00:00
vladislavbelov
fa03eb3485 Switches ShadowMap debug rendering to canvas2d material.
This was SVN commit r25712.
2021-06-06 18:05:10 +00:00
vladislavbelov
30e135693e Implements configurable cascade shadows.
Tested By: Langbart, Stan, wraitii
Differential Revision: https://code.wildfiregames.com/D3972
This was SVN commit r25711.
2021-06-06 16:44:54 +00:00
vladislavbelov
b360b7bd2b Disallow hardware without VBO support to simplify vertex buffer usages.
Tested By: Stan
Differential Revision: https://code.wildfiregames.com/D4054
This was SVN commit r25659.
2021-06-03 22:06:59 +00:00
vladislavbelov
2d455df18d Removes Z value from TextRenderer translate, renames TextRenderer methods to more explicit ones.
This was SVN commit r25645.
2021-06-02 21:21:28 +00:00
vladislavbelov
7ce4552f5e Moves partially MiniMap texture rendering into a separate object.
Tested By: Langbart, Stan
Differential Revision: https://code.wildfiregames.com/D4045
This was SVN commit r25628.
2021-06-01 18:55:35 +00:00
vladislavbelov
2cc671fd36 Makes 2D text drawing via Canvas2D.
This was SVN commit r25607.
2021-05-30 19:10:10 +00:00
vladislavbelov
7f16a5c40c Moves TextRenderer shader to a more relevant place, into the rendering function argument.
This was SVN commit r25606.
2021-05-30 18:28:06 +00:00
vladislavbelov
f7ad2daf62 Removes gui_solid material shader usages from scene rendering.
This was SVN commit r25582.
2021-05-27 20:13:47 +00:00
vladislavbelov
d9d19543b5 Adds std namespace to shared_ptr usages in network and engine.
This was SVN commit r25527.
2021-05-22 19:28:40 +00:00
wraitii
0c23e595fa Include CStrInternStatic where necessary only.
This makes incremental recompilation faster when changing static
interned strings.

Differential Revision: https://code.wildfiregames.com/D3975
This was SVN commit r25457.
2021-05-18 11:09:54 +00:00
vladislavbelov
8b6d4233eb Disables by default Intel Mesa workaround to save video memory.
Tested By: Langbart
Differential Revision: https://code.wildfiregames.com/DD3967
This was SVN commit r25449.
2021-05-16 19:08:28 +00:00
vladislavbelov
5ff4fa19c0 Removes unused and outdated includes, replaces some includes by forward declarations.
This was SVN commit r25444.
2021-05-15 17:27:01 +00:00
vladislavbelov
3ebff376cc Adds view bounds test for an ortho camera and removes commented code after 44f8d2c6f5.
This was SVN commit r25441.
2021-05-15 13:47:48 +00:00
vladislavbelov
44f8d2c6f5 Fixes a bounding box projection to an incorrect camera causes the red water bug.
Tested By: Langbart
Differential Revision: https://code.wildfiregames.com/D3905
This was SVN commit r25440.
2021-05-15 13:33:36 +00:00
wraitii
34b1920e7b Split ScriptRequest in its own header.
We often only need to include ScriptRequest.h and not the full
ScriptInterface.h

Differential Revision: https://code.wildfiregames.com/D3920
This was SVN commit r25366.
2021-05-03 16:07:26 +00:00
vladislavbelov
2fcab79e15 Moves terrain independent code for viewport bounds calculations to camera.
This was SVN commit r25355.
2021-05-01 16:59:42 +00:00
vladislavbelov
9107d6d8c7 Fixes unused CCamera argument in debug rendering in SilhouetteRenderer.
This was SVN commit r25352.
2021-05-01 12:13:48 +00:00
wraitii
835c081ca4 Fix large slowdown in rendering on some configurations.
Usage of GL_VERTEX_ARRAY client state apparently prevented OpenGL from
using hardware acceleration on my computer (Macos 10.14 with an Intel
GPU).
It is unclear how many people would be affected by this issue, but on my
end it makes GLSL performance competitive with ARB again.

Reviewed By: vladislavbelov
Differential Revision: https://code.wildfiregames.com/D3900
This was SVN commit r25343.
2021-04-29 07:38:40 +00:00
vladislavbelov
b74d5bf0d8 Removes glColor* calls from scene rendering, colors are set explicitly by uniforms.
This was SVN commit r25330.
2021-04-27 19:35:36 +00:00
vladislavbelov
5b33d3a76c Removes ShaderProgramPtr argument from DebugRenderer methods.
This was SVN commit r25329.
2021-04-27 19:23:37 +00:00
vladislavbelov
cd6a554198 Removes GL matrix stack usages from scene rendering.
Tested By: Stan
Differential Revision: https://code.wildfiregames.com/D3894
This was SVN commit r25328.
2021-04-27 18:43:49 +00:00
wraitii
66fbc23f2c De-singletonify CConfigDB, make hooks RAII.
CConfigDB is no longer a singleton, and its members are no longer
static.
This makes it possible to have several instances of it, useful for
testing of if we ever want to have different config profiles.

Also updates hooks to delete themselves on destruction, to fit a more
natural RAII pattern. Long-lived objects must take care to destroy hooks
before ConfigDB is reset.

Differential Revision: https://code.wildfiregames.com/D3866
This was SVN commit r25326.
2021-04-27 07:45:40 +00:00
vladislavbelov
2698cf8ba2 Fixes missing DrawCameraFrustum argument after 5e12424123.
This was SVN commit r25324.
2021-04-26 21:21:13 +00:00
vladislavbelov
5e12424123 Removes glBegin from scene rendering, removes GL matrix stack dependency from scene rendering.
This was SVN commit r25323.
2021-04-26 21:11:35 +00:00
vladislavbelov
2086a66340 Adds circle drawing to DebugRenderer.
This was SVN commit r25315.
2021-04-25 21:55:19 +00:00
vladislavbelov
e90aaf6348 Adds line drawing to DebugRenderer.
This was SVN commit r25314.
2021-04-25 20:48:44 +00:00
vladislavbelov
5c51ce2e2f Removes old ARB state.matrix usages.
This was SVN commit r25285.
2021-04-17 23:08:55 +00:00
vladislavbelov
769b0426a7 Removes unused debug render from ShadowMap.
This was SVN commit r25284.
2021-04-17 22:16:01 +00:00
wraitii
924c6ce34e Rework 7ee94f23df
Following comments by @vladislavbelov.

Differential Revision: https://code.wildfiregames.com/D3860
This was SVN commit r25278.
2021-04-16 16:01:30 +00:00
vladislavbelov
4a51012442 Adds line drawing to DebugRenderer.
This was SVN commit r25271.
2021-04-15 22:51:25 +00:00
vladislavbelov
389a5a4379 Removes low-level GL calls from graphics and geometrics primitives and adds DebugRenderer.
Tested By: Freagarach
Differential Revision: https://code.wildfiregames.com/D3857
This was SVN commit r25269.
2021-04-15 18:07:01 +00:00
wraitii
7ee94f23df Use type_identity to simplify Clamp usage.
Differential Revision: https://code.wildfiregames.com/D3859
This was SVN commit r25266.
2021-04-15 13:01:24 +00:00
vladislavbelov
092ccfec77 Removes unused header dependencies from CTimeManager.
This was SVN commit r25262.
2021-04-14 22:14:37 +00:00
vladislavbelov
715dca0701 Removes unused shadow settings forgotten in 12e2428495, removes direct SkipSubmit access.
This was SVN commit r25261.
2021-04-14 20:25:05 +00:00
wraitii
3759fc8a98 Allow empty actor files.
This allows empty actor files -> they map to a dummy object that renders
nothing.
The use case is automatically hiding objects at lower quality levels &
LOD settings.

Differential Revision: https://code.wildfiregames.com/D3819
This was SVN commit r25224.
2021-04-09 15:45:31 +00:00
wraitii
76acc4e146 Implement quality levels for actors & corresponding setting.
An actor file, as referenced by the VisualActor, can now define
different actors for different "quality level" setting.
In this initial version, the quality is handled directly by the object
manager.

Actor format impact:
- '<qualitylevels>' may be used as the root node, containing actor nodes
as children.
  - such actor nodes can refer to a file, or to an inline actor, or
simply be inlined.
  - such actor nodes may have a 'quality' attribute, specifying the
maximum quality level of this actor. By default, 255 (the maximum) is
implied.
- The actor format remains valid, but 'groups', 'variants', 'material',
'castshadow' and 'float' can be given a [minquality, maxquality[ range
via XML attributes. Outside of this range, the XML node is ignored
(making it possible to define, in a single actor file, several quality
levels).

Quality is a 0-255 value, with:
- Range 0-99 intended for lower level-of-detail actors (billboards,
etc.)
- Range 100-200 the 'normal' range for models. 100 is "low", 150
"medium", and 200 "high".
- Range 201-255 used for higher quality actors that might be used for
e.g. cinematics.
The range is wide to make it easier to add intermediate levels in the
future and it seemed easier given that an integer value of some kind was
required anyways.

Engine impacts:
- A new CActorDef class is introduced, wrapping an art/actors XML file
and its different quality levels. ObjectBase remains the definition of a
given 'actor', now at a given quality level.
- CActorDef imposes a maximal # of quality level for a particular actor
definition (5 currently).
- CUnit is made to refer to an Actor Definition explicitly, not a
particular ObjectBase.
- As a minor optimisation, variation keys are calculated on
pointer-to-sets-of-selections, instead of raw sets-of-selections, as
this reduces copying.
- some refactoring, including better const-correctness and hotloading
support via std::shared_ptr.

Differential Revision: https://code.wildfiregames.com/D3787
This was SVN commit r25210.
2021-04-08 07:22:24 +00:00
vladislavbelov
c56c856ed5 Moves Frustum from graphics to maths to more related geometric primitives like bounding ones.
This was SVN commit r25159.
2021-03-29 17:28:13 +00:00
vladislavbelov
39c8e7f1a2 Cleanups ShadowMap, fixes possibly wrong depth format name for GLES.
This was SVN commit r25117.
2021-03-25 12:09:56 +00:00
vladislavbelov
4e728bf68f Uses sky as a water reflection instead of a fixed color.
Differential Revision: https://code.wildfiregames.com/D3734
This was SVN commit r25114.
2021-03-24 16:40:03 +00:00
vladislavbelov
92f94e25c6 Adds ortho projection type and its test.
This was SVN commit r25073.
2021-03-17 23:03:35 +00:00
vladislavbelov
76af18b23a Removes deprecated gl_*Matrix builtins from GLSL shaders.
Tested By: Freagarach, Stan
Differential Revision: https://code.wildfiregames.com/D3635
This was SVN commit r25018.
2021-03-05 22:32:32 +00:00
vladislavbelov
143fdf551f Moves glGetError under config to prevent a performance drop on some platforms.
Tested By: Stan
Differential Revision: https://code.wildfiregames.com/D3620
This was SVN commit r24986.
2021-03-02 21:24:34 +00:00
vladislavbelov
7ea57932c4 Small style fixes for framebuffer clears.
This was SVN commit r24985.
2021-03-02 21:21:08 +00:00
vladislavbelov
94ba80d0cb Removes useless framebuffer clears by glClear.
Tested By: Stan
Differential Revision: https://code.wildfiregames.com/D3622
This was SVN commit r24984.
2021-03-02 21:20:26 +00:00
wraitii
cb346e207b Refactor all usage of RegisterFunction to ScriptFunction::Register
- Replace ScriptInterface::RegisterFunction with
ScriptFunction::Register
 - Mostly removing unused cmpPrivate*
 - Some usage introduces specific getters (mapgenerator, AIWorker,
XmppClient,...)
 - Several passthrough functions are simply removed in favour of calling
the original, reducing duplication
 - Make use of ScriptRequest/ScriptInterface capabilities where
relevant.
- Make JSI_* headers only expose necessary functions, lightening them
considerably and reducing duplication
 - Reuse namespaces in JSI_* implementations directly, reducing visual
noise there

Follows f3aedf88a6

Differential Revision: https://code.wildfiregames.com/D3626
This was SVN commit r24983.
2021-03-02 20:01:14 +00:00
wraitii
0363ff112e Fix water wind speed computation
Fixes 2a485c5e3b

(the calculation resulted in mismatched wind speed & wave orientation)

Differential Revision: https://code.wildfiregames.com/D3551
This was SVN commit r24943.
2021-02-27 10:08:00 +00:00
vladislavbelov
03ed891029 Do not generate render data in case CDecal calculated wrong coordinates.
Tested By: OptimusShepard, Stan
Differential Revision: https://code.wildfiregames.com/D3578
This was SVN commit r24932.
2021-02-18 21:09:41 +00:00
vladislavbelov
7a71011149 Refactors smart pointers creation, reduces code duplication and improves exception safety.
This was SVN commit r24915.
2021-02-13 23:53:40 +00:00
vladislavbelov
f175bc4f8d Fixes big screenshots with water (reflection or refraction camera), adds big screenshot customization.
Commented By: Stan, wraitii
Differential Revision: https://code.wildfiregames.com/D3557
This was SVN commit r24891.
2021-02-12 21:20:07 +00:00
vladislavbelov
65aa3d9292 Switches decals to VBChunk to reduce the number of state changes.
Also allows to use compressed vertex formats in future.

Tested By: Stan
Differential Revision: https://code.wildfiregames.com/D3553
This was SVN commit r24870.
2021-02-10 23:48:43 +00:00
vladislavbelov
5e1b84ed64 Batches decals and reduces the number of state changes.
Reviewed By: wraitii
Tested By: Langbart
Differential Revision: https://code.wildfiregames.com/D3545
This was SVN commit r24867.
2021-02-10 16:42:56 +00:00
vladislavbelov
990f09e67e Changes CVertexBufferManager container from std::list to std::vector.
This was SVN commit r24861.
2021-02-08 22:37:44 +00:00
vladislavbelov
6d4fd01a59 Separates allocated vertex buffers into groups for data locality.
Tested By: Langbart, OptimusShepard, Stan
Differential Revision: https://code.wildfiregames.com/D3522
This was SVN commit r24860.
2021-02-08 22:34:10 +00:00
vladislavbelov
5eb7fba3bd Further VertexBuffer improvements after b3cbee6ba9.
Chunk merging is based on patch D2528 by @dm.

This was SVN commit r24835.
2021-02-04 23:48:30 +00:00
vladislavbelov
b3cbee6ba9 Performance improvements to VertexBuffer.
Patch By: dm
Tested By: OptimusShepard, Stan, wraitii
Differential Revision: https://code.wildfiregames.com/D2528
This was SVN commit r24834.
2021-02-04 23:26:37 +00:00
vladislavbelov
a564892fab Removes redundant normalizations for float types.
Tested By: Langbart
Differential Revision: https://code.wildfiregames.com/D3517
This was SVN commit r24833.
2021-02-04 20:03:03 +00:00
vladislavbelov
f8fde587a0 Removes unused dummy shader from decals rendering.
This was SVN commit r24828.
2021-02-04 00:00:55 +00:00
vladislavbelov
30fc281a4c Significantly reduces number of OpenGL state changes for terrain rendering.
Tested By: Freagarach, Langbart, Stan
Differential Revision: https://code.wildfiregames.com/D3512
This was SVN commit r24826.
2021-02-03 17:01:38 +00:00
vladislavbelov
55f6eae7c5 Removes unused dummy shader from terrain rendering.
This was SVN commit r24822.
2021-02-02 15:34:52 +00:00
vladislavbelov
065b03a3db Removes useless transparent pass before the water for lowest settings since the water is opaque there.
This was SVN commit r24756.
2021-01-21 22:38:11 +00:00
vladislavbelov
9df127f9d1 Removes shader code duplication to calculate LOS.
Tested By: Stan
Differential Revision: https://code.wildfiregames.com/D3428
This was SVN commit r24732.
2021-01-20 18:46:32 +00:00
vladislavbelov
5cbf8f04ec Removes code duplications for binding shadows to shaders.
This was SVN commit r24710.
2021-01-19 19:19:04 +00:00
Stan
4c4da81cc4 Fix no pch build.
This was SVN commit r24664.
2021-01-17 15:40:10 +00:00
vladislavbelov
57389cb9cb Partly restores the requested functionality to hide skies removed in 78d4dd0109.
This was SVN commit r24662.
2021-01-17 13:28:37 +00:00
vladislavbelov
1cb4ee1634 Combines terrain and units ambient colors into the single color.
Tested By: Stan
Differential Revision: https://code.wildfiregames.com/D3237
This was SVN commit r24661.
2021-01-17 13:10:00 +00:00