Commit graph

729 commits

Author SHA1 Message Date
historic_bruno
199eb46d86 Fixes GLES build
This was SVN commit r15914.
2014-10-29 02:36:42 +00:00
historic_bruno
7f1fd01174 Moves some includes out of Renderer.h to slightly optimize compilation
This was SVN commit r15912.
2014-10-28 03:57:22 +00:00
historic_bruno
e3e86e2a29 Fixes init of post processing effects, so they can be cleanly enabled/disabled at runtime. Fixes #2890, refs #2672, #2893.
Updates descriptions on options screen and fixes comment in default.cfg
(smoothlos does not require preferglsl)

This was SVN commit r15905.
2014-10-27 00:53:31 +00:00
Itms
5d9d9a67bf Allow enabling the post processing filters during a game.
Includes numerous code updates, also updated the copyright for
cd5de73f3a.

Patch by dan@sstrev.com, fixes #2672.

This was SVN commit r15843.
2014-10-05 20:50:10 +00:00
historic_bruno
ea2db5386b Fixes water rendering and crashes on GPUs without FBO support, fixes #2667
This was SVN commit r15814.
2014-09-27 01:32:03 +00:00
historic_bruno
fee304d789 Fixes crash from 41b98a6f12 where a VBChunk* was released but not set to NULL
This was SVN commit r15721.
2014-09-09 04:13:50 +00:00
historic_bruno
41b98a6f12 Fixes incorrect reuse of a member variable in WaterManager, caused a crash when starting a new map in Atlas after loading a water map. Fixes #2784.
Fixes likely mem leaks from not cleaning up vertex buffer allocations

This was SVN commit r15715.
2014-09-07 23:49:24 +00:00
wraitii
a4df483f60 Forgot to make a variable unused.
This was SVN commit r15631.
2014-08-13 14:52:38 +00:00
wraitii
0b385384aa Fix terrain overlay rendering after water.
This was SVN commit r15628.
2014-08-12 15:58:03 +00:00
wraitii
403b3b68af Fix some errors in WaterManager.
This was SVN commit r15620.
2014-08-06 15:24:38 +00:00
leper
5ae040ea54 Fix non-PCH build.
This was SVN commit r15618.
2014-08-06 13:23:02 +00:00
wraitii
4028cd425e Actually fix bugs on ATI cards. Switch reflection and refractions to use POT textures in an attempt to improve compatibility.
This was SVN commit r15598.
2014-08-02 12:54:45 +00:00
wraitii
e50147fd96 Metaprogramming 9ce51f4357.
Change something on water shaders to see if it works better on ATI
cards.

This was SVN commit r15594.
2014-08-01 10:15:29 +00:00
wraitii
9ce51f4357 Commit coastal waves when activating fancy effects, and incidentally completely change how this effect work. Refs #48.
This was SVN commit r15576.
2014-07-28 10:14:00 +00:00
JoshuaJB
17634d7507 Move the minimap to only use the shader pipeline. Should make it OpenGL ES compatible (untested).
This was SVN commit r15533.
2014-07-14 17:15:22 +00:00
leper
8b45f453e5 Fix non-PCH build.
This was SVN commit r15498.
2014-07-06 16:35:41 +00:00
wraitii
5571f7a7f9 Fix "Wind Angle" parameter not working properly. Add a precomputed "wind strength" variable so that waves look smaller behind islands. Some tweaks. Refs #48 as usual.
This was SVN commit r15492.
2014-07-05 10:20:30 +00:00
wraitii
9d4665248b Check water FBOs creation correctly to detect some errors. Use two depth textures since I have a hunch the issues people encounter are caused by my using only one.
This was SVN commit r15488.
2014-07-04 10:14:35 +00:00
wraitii
991d5bbd63 Fix random maps for my water changes. Fix the replay mode after I had broken it. Fix an occasional crash (that might have crashed Atlas, need someone to check).
Improve debugging slightly in case of framebuffer errors. Fix a few
style issues.

This was SVN commit r15486.
2014-07-04 09:03:21 +00:00
wraitii
326290463e Further WIP water improvements. Add 3 different textures for different looks. Update some oasis maps for that. Streamline water settings (some removed, some added). Update Atlas for those (needs to be tested). Fix an issue with HQ water effects.
Please report any issue and/or crash. Those will get fixed in commits to
come. Refs #48.

This was SVN commit r15484.
2014-07-03 20:07:15 +00:00
Ykkrosh
eb7955599a Optimise silhouette rendering.
Do some intersection tests on the CPU so that the silhouette render
passes only have to draw models/patches that might actually contribute
to silhouettes, saving the CPU and GPU cost of rendering more objects
than necessary.

This was SVN commit r15483.
2014-07-03 01:00:25 +00:00
Ykkrosh
30e851ab90 Forward-declare CShaderProgramPtr, to avoid pulling in more headers than necessary and to hypothetically reduce build times by a minuscule amount.
This was SVN commit r15481.
2014-07-02 22:36:45 +00:00
wraitii
f8d53d9a1d Clean up of the last commit.
This was SVN commit r15474.
2014-07-01 16:15:03 +00:00
wraitii
ab30e0d4fb Change the water texture to a new, bigger one, created in Blender (thanks to Enrique). Change settings so that they are more logical, yet allow reverting back to an even lower quality setting. Add a WIP high setting (with foam) which isn't finished yet.
Change the shader itself so that the effects look nicer and are more
consistent across settings.
Rework the water mesh generation (simpler system). Fix a few issues.

May work oddly with Atlas since I haven't been able to compile yet.

Refs #1875 (maybe fix), Fixes #2077 (I'll assume it does), Fixes #2114
(assumption again), refs #48.

This was SVN commit r15473.
2014-07-01 16:05:05 +00:00
wraitii
c626cf66f9 Fix build-osx-libs properly for mavericks after learning some Bash.
Fix a long-standing typo in TerrainRenderer for water rendering that
apparently had no effect.
Don't compress the water textures to make it look better. They will be
changed anyhow.

This was SVN commit r15461.
2014-06-28 08:54:59 +00:00
Ykkrosh
b1b96a89d6 Fix culling for shadows and reflections.
Previously we had a single culling frustum based on the main camera, and
any object outside the frustum would never get rendered, even if it
should actually contribute to shadows or reflections/refractions. This
caused ugly pop-in effects in the shadows and reflections while
scrolling.

Extend the renderer to support multiple cull groups, each with a
separate frustum and with separate lists of submitted objects, so that
shadows and reflections will render the correctly culled sets of
objects.

Update the shadow map generation to compute the (hopefully) correct
bounds and matrices for this new scheme.

Include terrain patches in the shadow bounds, so hills can cast shadows
correctly.

Remove the code that tried to render objects slightly outside the camera
frustum in order to reduce the pop-in effect, since that was a
workaround for the lack of a proper fix.

Remove the model/patch filtering code, which was used to cull objects
that were in the normal camera frustum but should be excluded from
reflections/refractions, since that's redundant now too.

Inline DistanceToPlane to save a few hundred usecs per frame inside
CCmpUnitRenderer::RenderSubmit.

Fixes #504, #579.

This was SVN commit r15445.
2014-06-25 01:11:10 +00:00
Ykkrosh
fe3315376c Add BoundingSphere, SOverlaySphere.
BoundingSphere is similar to a bounding box, but more spherical.

SOverlaySphere is useful for visualising BoundingSphere (it's quite
inefficient and should only be used for debug functionality).

Normalise the camera frustum clipping planes, so that IsSphereVisible
gives the correct result.

This was SVN commit r15261.
2014-06-01 18:05:46 +00:00
Ykkrosh
85a1f880ab Fix compatibility with LLVM libc++ (used on OS X).
libc++ vector asserts that allocator::value_type is correct, so we have
to pass in the correct types.

This was SVN commit r15231.
2014-05-26 16:48:28 +00:00
Ykkrosh
6407b593d6 Make displayFrustum controllable from scripts.
This was SVN commit r15225.
2014-05-26 13:42:32 +00:00
leper
683170ea19 Enable/disable GenTangents when enabling/disabling PreferGLSL. Fixes #2505.
This was SVN commit r15061.
2014-04-28 22:30:27 +00:00
JoshuaJB
9a809c3131 Revert overlay resizing (forgot about translations) and minor fixes to my last changes.
This was SVN commit r15010.
2014-04-26 19:52:56 +00:00
JoshuaJB
5a8bc1158a Add some more GUI graphics settings while fixing some persistence issues. Refs #2310
This was SVN commit r14967.
2014-04-22 05:09:31 +00:00
wraitii
ffe0faeca4 Move the skybox up per Mythos' ruler recommendation. This should probably be a map setting.
This was SVN commit r14844.
2014-03-15 21:07:02 +00:00
JoshuaJB
a5639631ee Texture system refactoring and cleanup, fixes #2455, patch by IronNerd.
This was SVN commit r14835.
2014-03-13 02:37:05 +00:00
wraitii
4e5eeba27b Fix the skybox.
This was SVN commit r14792.
2014-02-28 18:23:24 +00:00
wraitii
3f78042f45 Fix tests and C++11 build.
This was SVN commit r14788.
2014-02-26 19:08:03 +00:00
wraitii
e2f4379e9a Fix an issue with corruption of water data when the actor editor opened in Atlas.
Potential marginal optimizations to the water data creation code.

This was SVN commit r14784.
2014-02-25 06:27:15 +00:00
sanderd17
9f243a3372 Disabling the OFFSET_LINE doesn't change any functionality as far as seen, while it fixes #2368.
This was SVN commit r14563.
2014-01-10 19:56:36 +00:00
wraitii
2d806f81f0 If at first you don't succeed…
Refs #2359

This was SVN commit r14549.
2014-01-08 18:18:52 +00:00
wraitii
0482038af2 Another go at #2359
This was SVN commit r14539.
2014-01-08 00:06:26 +00:00
wraitii
d0e57cb0ff Change a few things to avoid warnings with gcc. Should fix #2359
This was SVN commit r14529.
2014-01-06 22:14:27 +00:00
wraitii
aa0d485d72 Fix improper disabling of waves.
This was SVN commit r14515.
2014-01-05 16:41:50 +00:00
wraitii
15ec863aec Substantial speed-up of the foam generation code.
Remove waves for now as they were unsatisfactory.
Removes "shininess" as a water parameter as it was basically useless.
Add a button in Atlas to recompute water parameters so you can now see
fog in Atlas.

Fixes #1743, #1803 (invalid)
Refs #1875, #2114, #48.

This was SVN commit r14514.
2014-01-05 16:15:20 +00:00
Yves
4b1297b328 Removes g_ScriptingHost and implements global to compartment 1 to 1 relation.
Each GUI Page gets its own compartment and all ScriptInterfaces in the
same thread should now use the same JS Runtime.
This is required for the SpiderMonkey upgrade.
Check the ticket for details.

Closes #2241
Refs #1886
Refs #1966

This was SVN commit r14496.
2014-01-04 10:14:53 +00:00
wraitii
08b44fe647 Fix water rendering (transparent objects now appear correctly when underwater/in reflections)
Add a new config option (renderactors) that, if set to false, will
prevent actors from rendering in-game (grass…)

This was SVN commit r14447.
2013-12-30 15:52:42 +00:00
historic_bruno
b1c081e36d Set svn:eol-style=native, fix some inconsistent line endings
This was SVN commit r14299.
2013-12-06 00:42:50 +00:00
historic_bruno
acf1c420c1 Moves management of GL viewports to CRenderer, letting it store the current viewport; calling code can retrieve and restore it later (instead of using deprecated glPush/PopAttrib, previously removed for GLES compatibility by 7dec618898)
This was SVN commit r14235.
2013-11-28 00:57:39 +00:00
historic_bruno
7dec618898 Some attempts to fix GLES build in smooth LOS and post proc manager.
Replaces glBegin/End with glDrawArrays, GL_QUADS with GL_TRIANGLES, and
replaces glPush/PopAttrib by resetting the viewport manually.
Adjusts GLSL shaders for these changes.

This was SVN commit r14152.
2013-11-12 01:30:17 +00:00
historic_bruno
f1613a3c90 Fixes fancy waves build on GLES (replaces GL_QUADS with GL_TRIANGLES)
This was SVN commit r14151.
2013-11-12 01:25:32 +00:00
historic_bruno
81eabfc934 Fixes basic water rendering on GLES (replaces GL_QUADS with GL_TRIANGLES).
Sets SDL2 to use correct profile for GLES.
Cleans up some old SDL 1.3 version checks.

This was SVN commit r14150.
2013-11-12 01:24:04 +00:00
historic_bruno
5771bee032 First pass at fixing GLES build - more to come
This was SVN commit r14149.
2013-11-12 01:17:16 +00:00
Ykkrosh
3c47b12cbe Display texture memory usage in profiler's renderer stats
This was SVN commit r14116.
2013-11-09 01:03:23 +00:00
Ykkrosh
701508922f Use CStrIntern for font names to reduce lookup cost
This was SVN commit r14020.
2013-10-18 16:15:42 +00:00
Ykkrosh
5778484a77 Refactor text renderer
Replace unifont with CFont and CFontManager, since the h_mgr interface
was
needlessly inconvenient.

Load the font textures through CTextureManager, to support dynamic
reloading (e.g. when resetting GL state - see #741).

Add CFontMetrics as a convenient wrapper for code that just wants to
measure text.

Fixes #1117.

This was SVN commit r14016.
2013-10-18 15:53:07 +00:00
Ykkrosh
e700937fd3 Fix non-SSE x86 builds
This was SVN commit r13934.
2013-10-03 18:22:10 +00:00
Ykkrosh
e449364408 Recompute system shader defines immediately when the relevant inputs change, instead of delaying until ReloadShaders.
This fixes an error with autostart and smoothlos=true, where the system
defines were being accessed before the first rendered frame.

This was SVN commit r13923.
2013-09-30 22:39:06 +00:00
historic_bruno
e24ce51029 Adds DynamicArena allocator that grows by fixed chunk size, fixes #2142.
Changes fixed size arenas to new dynamic arenas with reasonable chunk
sizes (may require tuning), refs #1842

This was SVN commit r13916.
2013-09-30 01:22:44 +00:00
Ykkrosh
c2583e42da Reduce memory allocations in the renderer
Use an arena allocator in ShaderModelRenderer::Render, to reduce
the allocation cost in STL containers.

Avoid unnecessary copying of std::vectors.

This was SVN commit r13911.
2013-09-29 14:48:11 +00:00
Ykkrosh
994ebd9836 Add a list of statically-constructed CStrIntern strings
Switch all the constant strings in graphics code to use the new
variables.
This avoids the cost of instantiating CStrInterns at runtime every
frame.

This was SVN commit r13906.
2013-09-29 13:19:52 +00:00
Ykkrosh
4e9570cd0f Fix unnecessary CShaderConditionalDefines copy, and inline some functions
This was SVN commit r13904.
2013-09-29 02:05:02 +00:00
Ykkrosh
f075571502 Fix slightly expensive GetSystemShaderDefines()
Only recompute when any relevant parameters have changed, then return
the cached value.

This was SVN commit r13903.
2013-09-29 01:00:11 +00:00
Ykkrosh
555deea136 Fix conditional defines to not construct new CShaderDefines frequently
CShaderDefines is designed to be efficient to copy and compare, but not
to construct. Conditional defines were constructing new CShaderDefines
for many models every frame.

Precompute all the possible conditional combinations of CShaderDefines
when a material is first loaded, so they can be looked up at no cost
when rendering.

This was SVN commit r13902.
2013-09-29 00:30:58 +00:00
Yves
12e2428495 Changes the Renderer to expose global functions to scripts instead of using CJSObject.
Fixes #2137
Refs #1886

This was SVN commit r13877.
2013-09-21 08:24:45 +00:00
wraitii
f106d7714a Fix a swap between reflections and refractions in config.cfg . Disabling "Render Reflections" now reverts to the skybox for better results.
Allows to oversaturate in Atlas' HDR settings.

This was SVN commit r13752.
2013-08-24 14:44:38 +00:00
wraitii
957c51727b Improve on-water shadows. Fix an issue with foam looking static. Add anisotropic filtering (x4) to the water normal texture for testing.
This was SVN commit r13750.
2013-08-24 14:12:39 +00:00
Ykkrosh
deb64d36fc Fix rendering artifacts with novbo=true gentangents=true
glDrawRangeElements needs to know the range of vertexs that are used
by the index array. With VBOs it doesn't really matter if the range
is wrong (all the vertexes are in GPU memory anyway), but with CPU
vertex arrays the driver has to memcpy the given range of data, so
incorrect bounds will result in garbage data being rendered.

With gentangents, the rendered mesh can have more vertexes than the
original CModelDef, but was rendered with the CModelDef's vertex count.

Use the correct vertex count instead.

Refs #2050.

This was SVN commit r13734.
2013-08-21 21:01:32 +00:00
wraitii
ee877a46c7 Switch X and Z loops in the foam generation, possible speed improvement.
This was SVN commit r13720.
2013-08-20 08:55:33 +00:00
Ykkrosh
1739a381c1 Fix crash when editing terrain near map edges.
The values in CMessageTerrainChanged can be overestimates that exceed
the normal map boundaries, and should be clamped before looping over
them.

This was SVN commit r13714.
2013-08-19 19:19:34 +00:00
wraitii
29b5021f97 Fix my previous commit because obviously I had forgotten something.
This was SVN commit r13699.
2013-08-18 09:42:02 +00:00
wraitii
a4707bcc16 Change the water manager so incremental updates to the water information is possible. Streamline a few things (and removes a not-really-used calculation to speed things up further). Fixes #2063 , refs #1743.
This was SVN commit r13698.
2013-08-18 09:27:11 +00:00
historic_bruno
7ff167e7de Removes more unused variables, based on patch by Markus, refs #1852.
Adds TODOs to use POT textures in fancy water rendering.

This was SVN commit r13663.
2013-08-15 18:25:32 +00:00
historic_bruno
047992e61a Fixes possible memory leaks by only allocating wave vertex buffers once and only when needed, and releasing them before re-allocating (in case CreateSuperfancyInfo is called multiple times).
Checks if wave vertex buffers were allocated before rendering, fixes
#2017

This was SVN commit r13561.
2013-07-15 03:26:48 +00:00
wraitii
595c964d77 Make water specular more visible and fixes a few cases where it would actually hardly appear when it should.
Adds the ability to access an element in a dropdown box by typing the
first letters (Refs #1532).

This was SVN commit r13556.
2013-07-14 12:17:07 +00:00
wraitii
408c30e061 Probably fixes #2021. Optimization for foam generation while I'm at it (it's faster now, but there's a new temporary array of the size of the map)
This was SVN commit r13555.
2013-07-14 08:06:07 +00:00
historic_bruno
facd447d0f Hopefully fixes GCC warning about narrowing conversion in C++11, fixes #1851
This was SVN commit r13470.
2013-06-11 02:40:49 +00:00
historic_bruno
17bb997e0e Fixes memory leak in CVertexBuffer::Release, patch by Markus, fixes #1933
This was SVN commit r13423.
2013-05-23 23:16:36 +00:00
historic_bruno
94c57085e9 Makes some classes NONCOPYABLE, based on patch by Markus, refs #1852
This was SVN commit r13419.
2013-05-22 21:40:56 +00:00
historic_bruno
d7dcd3b26c Use prefix increment operator for iterators (for consistency), refs #1852, #1064
This was SVN commit r13418.
2013-05-22 18:41:13 +00:00
wraitii
136f1891c1 Fixes a fix about a fix on the waterManager. Fixes #1891
This was SVN commit r13411.
2013-05-21 08:55:49 +00:00
wraitii
9a0749f3c9 Make sure to actually prevent Atlas from trying to render coastal waves. Fixes #1925
This was SVN commit r13386.
2013-05-01 06:47:49 +00:00
historic_bruno
d9540ad7f6 Fixes MSVC build error and warning
This was SVN commit r13375.
2013-04-27 22:43:22 +00:00
wraitii
4233acfa36 Slight clean up of the water code. Uses vertex data instead of a texture for foam. Should be faster to generate and render. Still no Atlas support.
This was SVN commit r13374.
2013-04-27 12:20:42 +00:00
historic_bruno
a317cd9cba Fixes memory leak and removes unused code in WaterManager, fixes #1891, refs #1852
This was SVN commit r13337.
2013-04-03 03:30:10 +00:00
historic_bruno
a87019ea5a Render initial game view during loading screen, to begin loading assets and eliminate ugly terrain blending artifacts. Refs #1663
This was SVN commit r13181.
2013-02-22 07:32:22 +00:00
wraitii
abd98ad581 Re: disable foam and coastal waves in Atlas until properly optimized (this time with 100% more it-does-not-bug). Refs #1743
(sorry about the last time, should not blindly commit).

This was SVN commit r13146.
2013-02-03 15:49:41 +00:00
historic_bruno
f51e129628 Temporary revert of revert from 38b0c0eb72 to fix water maps in Atlas, refs #1743
This was SVN commit r13138.
2013-01-31 23:03:09 +00:00
wraitii
38b0c0eb72 Reverts some changes: Atlas now won't recompute the water foam on terrain change, thus reducing the lag until I properly optimize it. refs #1743
This was SVN commit r13120.
2013-01-26 17:10:12 +00:00
Ykkrosh
75a23856cf Fix some static analysis warnings
This was SVN commit r13101.
2013-01-21 20:33:25 +00:00
leper
276f0a41a0 New Year's clean-up.
Throw a warning if a invalid (not present) AI is specified in a map.
Replace the last occurences of jubot with qbot.
Exclude the common siege templates from the Units Demo map.
Fix an error with flying units.
Replace CFG_GET_SYS_VAL with CFG_GET_USER_VAL and rename it to
CFG_GET_VAL to reflect its behaviour better.
Fix linker error with clang 3.2. Refs 1588.
Remove some useless includes.

This was SVN commit r13031.
2013-01-01 18:33:53 +00:00
wraitii
61734c48d4 Fix a logic error that lead to reflections always being rendered. Might ref #1744
This was SVN commit r13013.
2012-12-23 10:50:30 +00:00
historic_bruno
e7ef6a57ad Fixes some build errors from the OS X 10.5 SDK, refs #1768
This was SVN commit r12998.
2012-12-18 22:58:34 +00:00
historic_bruno
5c94761c3e Fixes use of NULL for non-pointer type, fixes #1765
This was SVN commit r12997.
2012-12-18 22:52:55 +00:00
historic_bruno
a4a060cd86 Fixes build warning and cleans up a few things
This was SVN commit r12895.
2012-11-26 02:28:35 +00:00
myconid
f456112492 Shadowmapping bugfixes and tweaks.
This was SVN commit r12884.
2012-11-25 18:35:59 +00:00
wraitii
d4ea031334 Fix a warning, a bug, and modifies the setting for the Cycladic Archipelagos maps.
This was SVN commit r12838.
2012-11-10 07:48:43 +00:00
wraitii
76676b1e38 Fix a non-fatal GL error, fix me forgetting to commit a file, remove the "3D" waviness setting as it was mostly redundant with HQ.
This was SVN commit r12822.
2012-11-05 12:14:04 +00:00
wraitii
ed7c66eb82 Updates the water settings: features can now be enabled individually for more modularity. Fixes a few bugs. Allows it to be run at an acceptable speed in Atlas.
This was SVN commit r12817.
2012-11-04 15:54:36 +00:00
wraitii
a3ddd7b1b3 Fix for some problems when using shadows with the superfancywater.
This was SVN commit r12809.
2012-11-02 13:08:58 +00:00
wraitii
cf23990192 Updates random maps with new settings for the new water shader. Type ambiguity tweaks in WaterManager.
This was SVN commit r12806.
2012-11-01 10:17:54 +00:00
historic_bruno
79f2fc1ac1 Fixes build error on MSVC, use of sqrt was ambiguous. Refs #1572
This was SVN commit r12804.
2012-10-31 20:59:43 +00:00
wraitii
fb035d08e3 fixes #1572 and fixes #932
Changes the water rendering in game to support higher quality effects
and to look nicer.

This was SVN commit r12802.
2012-10-31 18:42:17 +00:00
myconid
97b46d402c Removing GL3 dependency from GPU skinning code.
This was SVN commit r12801.
2012-10-30 21:57:00 +00:00
myconid
367c67d6ad GPU-skinned tangent-space effects for non-instanced units, plus a bit of cleanup.
This was SVN commit r12795.
2012-10-29 13:20:21 +00:00
myconid
1fb7889539 Postproc manager
This was SVN commit r12755.
2012-10-15 10:34:23 +00:00
myconid
9e328e6b9f Changing sky manager to render sky using cubemaps, to avoid duplication of sky textures in memory.
This was SVN commit r12727.
2012-10-03 12:40:01 +00:00
historic_bruno
7d8dc05c68 Fixes actor viewer bug where view was obstructed by map's water level. Fixes #1562.
Adds water plane option to actor viewer.

This was SVN commit r12715.
2012-09-28 18:20:36 +00:00
myconid
db4b08d1ad Slight changes to the cubemap stuff in the sky manager, to make it behave better after archivebuild.
This was SVN commit r12697.
2012-09-21 20:22:23 +00:00
myconid
11b1c59397 A minor change to water rendering on models.
This was SVN commit r12677.
2012-09-16 11:39:04 +00:00
myconid
779a33ee30 Water and waterfall shaders, materials and examples.
This was SVN commit r12643.
2012-09-08 18:56:13 +00:00
myconid
3efb235725 And re-enabling the stuff disabled for debugging 2
This was SVN commit r12632.
2012-09-04 17:30:01 +00:00
myconid
10101b138d And re-enabling the stuff disabled for debugging
This was SVN commit r12631.
2012-09-04 16:59:03 +00:00
myconid
8b10290f78 Disabling some LOD stuff to track down Deiz's bug (as a result, parallax also temporarily disabled)
This was SVN commit r12629.
2012-09-04 15:55:36 +00:00
myconid
1ba858bf6e More on that bug (warning: renderer temporarily slower)
This was SVN commit r12628.
2012-09-04 12:34:02 +00:00
myconid
f92cda7a91 Testing something different in the hope it helps with a bug reported on the forums
This was SVN commit r12627.
2012-09-04 11:09:36 +00:00
myconid
affe91b52c Fixed fixed renderpath: green water, broken minimap
This was SVN commit r12588.
2012-09-01 22:34:36 +00:00
myconid
38c1a4c4a1 Modified sky, minimap and healthbar renderers to use shaders, to fix a bug reported by historic_bruno
This was SVN commit r12551.
2012-08-29 23:07:53 +00:00
myconid
89cf2b26e3 Second attempt to fix a graphical glitch in ARB mode
This was SVN commit r12526.
2012-08-25 21:41:31 +00:00
myconid
e50bf9e539 Sky toggling through config and with Alt+Z
This was SVN commit r12513.
2012-08-22 07:32:26 +00:00
historic_bruno
ddbc9e7d86 Disables useless MSVC warning in MikktspaceWrap. Cleans up a few inconsistencies
This was SVN commit r12505.
2012-08-21 16:40:07 +00:00
myconid
952385b21d Ticket 1612: Fixed overlay z-fighting in GLSL mode
This was SVN commit r12504.
2012-08-21 16:28:06 +00:00
historic_bruno
011ba8255e New sound system implementation by stwf, refs #1223, #961.
Enables audio on OS X, refs #685, #931.
Fixes music not playing after a game, refs #946.

This was SVN commit r12428.
2012-08-15 00:10:44 +00:00
myconid
97c97dc7e0 Bugfix- changed decal/terrain blending mode for the fixed renderpath
This was SVN commit r12334.
2012-08-09 16:22:49 +00:00
myconid
e046fc0a01 Bugfix- changed some decal materials and fixed decal blending mode
This was SVN commit r12325.
2012-08-08 19:08:56 +00:00
myconid
88ab3f0f5b Terrain/decal materials (includes triplanar/normal/specular/emissive mapping); custom alphamaps
This was SVN commit r12306.
2012-08-07 18:21:16 +00:00
myconid
648e68e49c smooth LOS
This was SVN commit r12304.
2012-08-06 22:38:42 +00:00
myconid
47c2907f10 added licensing headers to some of the new files
This was SVN commit r12301.
2012-08-06 21:34:41 +00:00
myconid
da8c673a0a ao/parallax/normal/specular/emissive mapping; windy trees; time manager; render queries; conditional defines
This was SVN commit r12300.
2012-08-06 19:10:47 +00:00
historic_bruno
c1a3b8f171 Updates to myconid's most recent multiple UV set patch. Refs #1497
This was SVN commit r12185.
2012-07-24 02:57:25 +00:00
quantumstate
f598101c34 Add support for multiple UVs and data driven texture loading. From myconid's patches. Fixes #1493 and fixes #1497.
This was SVN commit r12183.
2012-07-23 22:49:46 +00:00
vts
821cfe8862 Removed reverse dependency on SOverlayTexturedLine from CTexturedLineRData; fixes dangling pointer dereference. Fixes #1495.
This was SVN commit r11979.
2012-06-17 03:40:35 +00:00
leper
637c09b204 Add support for OpenBSD. Fixes #1463.
Backport os_getversion from premake4.4-beta4 and extend it to support
POSIX-compilant systems.
Add some missing newlines at the end of file as these cause warnings on
OpenBSD.
Update the config paths.

This was SVN commit r11970.
2012-06-13 20:43:56 +00:00
vts
da719b883c Split out code specific to textured overlay lines construction from OverlayRenderer into its own files.
This was SVN commit r11933.
2012-06-02 21:19:20 +00:00
Ykkrosh
dd072112d1 Improved shadow filtering, from eihrul.
This was SVN commit r11896.
2012-05-21 19:23:14 +00:00
historic_bruno
79c6a2cecc Adds config and hotkey options for toggling unit silhouettes, based on patches by Ello and mk12. Fixes #1186.
This was SVN commit r11779.
2012-05-07 01:09:53 +00:00
Ykkrosh
e4528af72b Fix vector allocator types
This was SVN commit r11708.
2012-05-01 21:12:43 +00:00
Ykkrosh
0bd649294f Add support for texture-based terrain overlays.
Fix GLES compatibility.

This was SVN commit r11663.
2012-04-24 16:46:32 +00:00
vts
f72bfb1cf1 Add option to disable particles, based on patch by rogue-spectre. Fixes #1222.
This was SVN commit r11658.
2012-04-23 22:57:51 +00:00
vts
97f49954cd Allocate VBO buffers in OverlayRenderer only after graphics capabilities and shader path have been properly determined. Fixes #824.
This was SVN commit r11654.
2012-04-23 18:55:32 +00:00
vts
2590e62c38 Dropped some remnant debugging code
This was SVN commit r11644.
2012-04-22 22:45:28 +00:00
vts
3cbfd9260e Properly enforce the MAX_QUAD_OVERLAYS constraint
Some cleanup of graphics/Overlay.h

This was SVN commit r11629.
2012-04-22 13:19:35 +00:00
vts
34fc883317 Pretty unit selection overlay rings. Fixes #824.
This was SVN commit r11623.
2012-04-22 04:04:02 +00:00
Ykkrosh
227f9e403f Experimental GPU skinning.
Share inverse bind pose matrices between models.

This was SVN commit r11490.
2012-04-12 15:43:59 +00:00
Ykkrosh
e6a82fff48 Bind textures correctly to GLSL sampler uniforms.
This was SVN commit r11476.
2012-04-10 21:07:52 +00:00
Ykkrosh
f2260892bd Add config option to force alpha-tested materials.
This was SVN commit r11475.
2012-04-10 21:03:22 +00:00
Ykkrosh
b7888aea52 Add support for specular materials.
Let materials specify shader uniform values.
Use interned strings for shader uniform/attribute names.
Remove confusing float* cast operator on CVector4D.
Simplify and clean up CVector4D.
Remove non-supported 'old' lighting model.

This was SVN commit r11453.
2012-04-08 15:55:06 +00:00
vts
305723f9a7 Prevent AABB/frustum intersections from blowing up on empty input bounds. Fixes #1027.
This was SVN commit r11441.
2012-04-05 22:29:01 +00:00
Ykkrosh
59447bce2e Move shaders into appropriate subdirectories.
Delete some obsolete shader files.

This was SVN commit r11424.
2012-04-03 19:45:58 +00:00
Ykkrosh
6bc33fe8bd Update renderer design to be more flexible and data-driven based on material and shader definitions.
Support conditional expressions in shader effect XML files.
Consolidate fixed-function model rendering into the shader system.
Remove lots of now-obsolete renderer code.
Move shader defines from std::map to new class with interned data, for
performance.
Move texture from model into material.
Alleviate singletonitis.
Remove obsolete lodbias setting.
Remove unused terrain shadow transparency.

This was SVN commit r11423.
2012-04-03 18:44:46 +00:00
Ykkrosh
1095782d1a Increase maximum VBO size, to support larger meshes
This was SVN commit r11387.
2012-03-21 18:45:10 +00:00
Ykkrosh
36107cb7e1 GLES compatibility for particles and shadows.
Fix invalid enum errors.
Fix shader texture binding.

This was SVN commit r11372.
2012-03-19 21:10:14 +00:00
Ykkrosh
dc715fe57f Remove some unused includes
This was SVN commit r11250.
2012-03-05 16:15:07 +00:00
historic_bruno
7fa6afac37 Corrects some Doxygen comments and adds a few others of interest.
This was SVN commit r11209.
2012-03-01 03:55:05 +00:00
Ykkrosh
7663e78861 Fix terrain overlay rendering
This was SVN commit r11163.
2012-02-25 22:11:34 +00:00
Ykkrosh
5009636e39 Improve Android compatibility.
Basic touchscreen input for testing.
Better GLSL support for map rendering.

This was SVN commit r11155.
2012-02-25 17:29:27 +00:00
Ykkrosh
f4625e69af Partial Android compatibility.
Remove unnecessary VM allocation (which seemingly causes problems on
Android due to mmap during static initialization).
Allow building without NVTT.

This was SVN commit r11074.
2012-02-15 13:58:58 +00:00
Ykkrosh
d70a981377 Android fixes
This was SVN commit r11068.
2012-02-13 23:53:09 +00:00
Ykkrosh
9972eb8cae Enough GLES compatibility to reach the menu screen
This was SVN commit r11064.
2012-02-13 20:53:24 +00:00
Ykkrosh
677ccf53e6 Yet more GLES compatibility
This was SVN commit r11061.
2012-02-13 16:41:17 +00:00
Ykkrosh
a9eca31bad Even more GLES compatibility
This was SVN commit r11060.
2012-02-13 15:06:25 +00:00
Ykkrosh
4bf59b9a7d More GLES compatibility, mainly around terrain rendering.
This was SVN commit r11059.
2012-02-13 14:02:14 +00:00
Ykkrosh
531b40578a More GLES compatibility.
Add config option to disable hardware cursors on Windows.

This was SVN commit r11053.
2012-02-12 20:45:31 +00:00
Ykkrosh
db85833655 More GLES compatibility.
Move more rendering code to shader API.

This was SVN commit r11050.
2012-02-12 13:20:49 +00:00
Ykkrosh
a3f168b887 Initial support for GLSL generic vertex attributes in shader API, for GLES compatibility.
Specify GLSL version in shader files, for better error detection.

This was SVN commit r11040.
2012-02-09 17:55:25 +00:00
Ykkrosh
1f5b8f1c9a Move GUI renderer towards using shader infrastructure.
Remove support for unused GUI sprite effects.
Use vertex arrays for bounding box rendering.

This was SVN commit r11039.
2012-02-08 20:43:38 +00:00
historic_bruno
08bd07ddd6 Adds safe bool operator to ICmpPtr, replacing the null() method, based on patch by leper. Also changes bool operator in AtSmartPtr to safe bool. Fixes #1077.
Changes some CmpPtr variable names for consistency.

This was SVN commit r11036.
2012-02-08 02:46:15 +00:00
Ykkrosh
b9c406551b Cache shader effects. Fixes #1143.
This was SVN commit r11006.
2012-02-02 22:58:42 +00:00
Ykkrosh
cc5a0fba4e Use shader API for GUI text.
Flip GUI quads so we don't have to disable back-face culling.

This was SVN commit r10989.
2012-01-30 00:27:23 +00:00
Ykkrosh
8be430eb30 Remove obsolete ogl_shader
This was SVN commit r10984.
2012-01-29 12:23:16 +00:00
Ykkrosh
8324a8981d Simplify GLSL program files.
Move water shaders to new shader system.

This was SVN commit r10982.
2012-01-29 12:04:39 +00:00
Ykkrosh
adbd7633dd # Initial GLSL rendering support
This was SVN commit r10978.
2012-01-29 01:22:22 +00:00
Ykkrosh
7f679a7975 # Support separate rotation and scaling for each terrain texture
This was SVN commit r10952.
2012-01-22 18:20:33 +00:00
vts
91652bdf6e Implemented nested territory boundaries. Fixes #918.
Fixed out of bounds memory access in Atlas due to always using global
terrain in TerrainOverlay
Fixed wrong player ID calculation in TerritoryOverlay

This was SVN commit r10929.
2012-01-18 21:22:58 +00:00
Ykkrosh
ce67dfd333 Rename CELL_SIZE to TERRAIN_TILE_SIZE, to free up the term "cell" for other concepts.
This was SVN commit r10902.
2012-01-12 12:51:10 +00:00
Ykkrosh
0ec4242962 Detect and fix printf signedness errors. Fixes #1086, #1087.
This was SVN commit r10846.
2012-01-01 16:43:10 +00:00
Ykkrosh
1e0074e9da Fix crash with missing shader support
This was SVN commit r10829.
2011-12-29 13:35:07 +00:00
Ykkrosh
c4bb67a1ca Fix #1064 (use ++it instead of it++ for consistency), based on patch by Echelon9
This was SVN commit r10822.
2011-12-29 01:17:03 +00:00
janwas
3537ae31d5 sync with work:
x86_x64: update MSR definitions to include model 2F (westmere ex);
update bus clock computation for sandy bridge; remove unused
cpu_Serialize; use namespace, add model names
mahaf: cope with stricter security for services/drivers
ApicId -> GetApicId, move to apic module
aken: add batch file to install driver (optional)

This was SVN commit r10815.
2011-12-27 14:12:31 +00:00
vts
46a09ced71 Fixed some compilation warnings
This was SVN commit r10710.
2011-12-11 02:11:05 +00:00
vts
db864f10c3 Rendering marker lines between buildings and rally points
Added command button to focus on rally point
(implements #524)

This was SVN commit r10704.
2011-12-10 07:07:04 +00:00
vts
85186c98b2 Better selection boxes. Closes #914, #295, #810.
This was SVN commit r10593.
2011-11-25 06:36:13 +00:00
historic_bruno
39d100c732 Moves camera projection settings to default.cfg.
Changes field of view (FOV) to 45 degrees per discussion. Fixes #941.
Tweaks default camera zoom and rotation accordingly.

This was SVN commit r10548.
2011-11-17 23:34:01 +00:00
Ykkrosh
fbff0aa98d Fix printf argument types
This was SVN commit r10529.
2011-11-13 18:31:06 +00:00
Ykkrosh
3916c25b84 Optimise vertex skinning code with SSE, based on patch by gruby.
Fixes #905.

This was SVN commit r10499.
2011-11-09 23:11:28 +00:00
Ykkrosh
cfb79c3062 # Add GPU performance profiling support.
Add some profiler region attributes.
Render events in profile visualiser.
Change profiler from GPL to MIT.

This was SVN commit r10492.
2011-11-09 13:09:01 +00:00
Ykkrosh
09a02c96d5 Add initial code annotations for the new profiling tool
This was SVN commit r10466.
2011-11-04 01:35:50 +00:00
janwas
8af8326563 replace old pool_allocator/RawPoolAllocator with ProxyAllocator that draws upon the new-style Arena (more efficient, avoids slow VirtualAlloc)
This was SVN commit r10410.
2011-10-16 10:37:21 +00:00
Ykkrosh
8729d1115d Render territory borders in non-shader render path.
Add basic support for fixed-function implementations of shader API.

This was SVN commit r10106.
2011-08-27 14:31:24 +00:00
Ykkrosh
8fee3d8ef8 # New territory border rendering.
Add textured line overlay rendering.
Change terrain height calculations to be triangulation-dependent for
improved accuracy.
Add triangulation-dependent terrain normal function.
Support separate S/T wrap modes for textures.
Rename CVector2D_Maths since it no longer conflicts with simulation
CVector2D.
Coalesce freed chunks in vertex buffers, to avoid excessive
fragmentation.
Add some things to help debug vertex buffer allocation a little.

This was SVN commit r9929.
2011-07-30 00:56:45 +00:00
Ykkrosh
f9d7c1246d # Initial support for territories
This was SVN commit r9889.
2011-07-20 19:48:06 +00:00
Ykkrosh
364f76c5ff Fix rare use of uninitialised values
This was SVN commit r9847.
2011-07-16 19:52:48 +00:00
Ykkrosh
8eb7af4ac9 Be a bit more robust to build environment changes.
Reduce some module dependencies.
Clean up some unused instantiations.

This was SVN commit r9827.
2011-07-15 13:22:48 +00:00
Ykkrosh
ca42649c5b Fix MSVC warning
This was SVN commit r9820.
2011-07-13 19:28:31 +00:00
Ykkrosh
7f74693052 Disable culling of transparent objects in shadows/reflections, to fix trees
This was SVN commit r9818.
2011-07-13 13:51:40 +00:00
Ykkrosh
b08e142193 Graphics optimisations and features from eihrul.
Add shadow filtering (PCF) option.
Fix ugly shadow saturation in old lighting mode.
Fix fancy water shader.
Fix camera matrix computation.
Support scissoring of camera frustum.
Optimise vertex skinning.
Inline various matrix functions.
Support filtering of the list of submitted models before a rendering
pass, for more precise culling.
Optimise water renderer (fixes #721, based on patch by ortalo).
Use scissoring when generating reflection/refraction textures.
Skip reflection/refraction texture generation when no water is visible.
Render alpha-blended objects differently (fixes #434).
Reduce shadow swimming effects.

This was SVN commit r9814.
2011-07-12 23:48:05 +00:00
Ykkrosh
db5e483266 Fix typo in comment
This was SVN commit r9635.
2011-06-19 14:18:07 +00:00
janwas
5c76bc12fa refactor status code definitions: allow modules to define an array of them (more convenient+efficient).
merge ERR::NO_SYS, NOT_IMPLEMENTED into NOT_SUPPORTED
renderer: remove unnecessary ogl_shader include

This was SVN commit r9447.
2011-05-05 13:03:34 +00:00
Ykkrosh
9733affb05 Fix non-PCH build
This was SVN commit r9419.
2011-05-04 01:17:09 +00:00
janwas
cccd6849a7 cleanup (requires update-workspaces)
lib_errors.cpp: replace with status.cpp, adapt to needs at work
wutil: fix runtime warning reported via feedback box
config: merge CONFIG_PARANOIA and !CONFIG_FINAL into
CONFIG_ENABLE_CHECKS
add openmp, pointer_typedefs.h

This was SVN commit r9410.
2011-05-03 12:38:42 +00:00
janwas
0720025073 cleanup
reduce dependency on PCH. move KiB constants to alignment, ARRAY_SIZE to
code_annotation.h.
move glext_funcs.h to external_libraries/glext_funcs.h, move part of
ogl.h to external_libraries/opengl.h
remove unused saturating arithmetic functions

This was SVN commit r9363.
2011-04-30 13:22:46 +00:00
janwas
4663ac0fe7 split debug_assert into ENSURE and ASSERT as discussed in a previous meeting.
the old debug_assert always ran and tested the expression, which slows
down release builds. wrapping them in #ifndef NDEBUG is clumsy. the new
ASSERT behaves like assert and ENSURE like the old debug_assert. Let's
change any time-critical but not-super-important ENSURE to ASSERT to
speed up release builds. (already done in bits.h and unique_range.h)

This was SVN commit r9362.
2011-04-30 13:01:45 +00:00