Commit graph

49 commits

Author SHA1 Message Date
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
Stan
9ae084519f Fix most of the new vs2017 induced warnings.
Refs: https://code.wildfiregames.com/D3096
https://code.wildfiregames.com/D3103 #5862
Reviewed by: @wraitii
Comments by: @Angen
Differential Revision: https://code.wildfiregames.com/D3126
This was SVN commit r24268.
2020-11-26 22:28:50 +00:00
elexis
417c84870c Actually remove trailing tabs from source/.
This was SVN commit r18991.
2016-11-23 14:09:58 +00:00
historic_bruno
b1c4e29ac8 Fixes inconsistencies in spelling of colour/color by preferring "color" (only wxWidgets remains with some API that requires "colour"), fixes #1029.
NOTE: requires update-workspaces and may require correction of some
modded actors/scenarios

This was SVN commit r16438.
2015-03-15 23:59:48 +00:00
historic_bruno
607bbcc2f1 Fixes invisible particles (clouds, dust storms) due to incorrect bounds calculations on the emitters, fixes #2643.
Makes the emitters a little more efficient by only setting
position/rotation when their transform changes.

This was SVN commit r16397.
2015-03-01 23:58:53 +00:00
Ykkrosh
0ef6c7555e Optimise VBO updates.
Some drivers (at least the Intel drivers on Windows) are slow at
incrementally updating a VBO with hundreds of calls to glBufferSubData
every frame. Performance is significantly better if you use
glBufferData(NULL) to tell it to discard all the previous contents, and
then re-upload all the data at once.

Update CVertexBuffer so that GL_DYNAMIC_DRAW/GL_STREAM_DRAW buffers are
handled with the new mechanism. This requires the caller to hold onto
the backing store so it can be re-uploaded when necessary, and needs a
bit more signalling to indicate exactly what needs uploading.

I see an improvement from roughly 60 to 75 fps on Intel HD Graphics
3000, Windows, 1024x768, Siwa Oasis.

This was SVN commit r16241.
2015-01-28 00:48:00 +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
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
wraitii
5f8b6be833 Some additions to the particle system:
This was SVN commit r14286.
2013-12-04 17:21:59 +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
wraitii
d40a66f310 Fix particle to correctly display in the FOW, and to adapt slightly to sunColor settings (both on ARB and GLSL).
This was SVN commit r13287.
2013-03-15 10:22:24 +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
wraitii
d75ae52f56 Particles now correctly update with the fog. Refs #276 .
This was SVN commit r12811.
2012-11-02 16:31:27 +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
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
677ccf53e6 Yet more GLES compatibility
This was SVN commit r11061.
2012-02-13 16:41:17 +00:00
vts
85186c98b2 Better selection boxes. Closes #914, #295, #810.
This was SVN commit r10593.
2011-11-25 06:36:13 +00:00
Ykkrosh
c41b7904d2 Fix burst of particles when starting to construct a building.
Fix crash when particle XML loading failed.

This was SVN commit r9509.
2011-05-13 19:36:56 +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
Ykkrosh
8af82baf67 # Minor particle system fixes.
Support emitters that are fully running as soon as the game starts.
Fix particle clumping when moving from off-screen to on-screen, by
computing updates more incrementally.
Fix overzealous culling of models with particle emitters.
Add particles to renderer stats.

This was SVN commit r9345.
2011-04-29 12:26:31 +00:00
Ykkrosh
a872e4a6ad Attempt to fix reported GL error
This was SVN commit r9327.
2011-04-27 09:41:28 +00:00
Ykkrosh
d03559f2c9 Add dust particles on under-construction buildings, varying based on number of active builders.
This was SVN commit r9175.
2011-04-06 00:11:40 +00:00
janwas
66807d40c1 windows build fix: use arb names/function pointers; +noncopyable/struct vs. class warning fix
This was SVN commit r9156.
2011-04-03 20:45:43 +00:00
Ykkrosh
823e63a93b # Initial version of new particle system.
This was SVN commit r9151.
2011-04-03 19:15:15 +00:00
Ykkrosh
253efdad57 Delete non-working particle system code
This was SVN commit r9147.
2011-04-03 18:49:48 +00:00
janwas
dcd192cb60 refactor path interface:
- use wrapper class instead of std::wstring (reduces mixing of
strings/paths; allows safe+easy join via operator/ and convenient
case-insensitive comparison via operator==, avoids NativePathFromString,
similar to boost::filesystem)
- NativePath -> OsPath
- add hash and To/FromJSVal for Path
- add TS_ASSERT_PATH_EQUALS
- replace _wfopen_s with sys_OpenFile
- remove obsolete SortFiles/Directories

This was SVN commit r9107.
2011-03-23 13:36:20 +00:00
janwas
6d25329412 # towards locale-independent pathnames on Linux
c.f.
http://www.wildfiregames.com/forum/index.php?showtopic=14541&st=0&p=217250&#entry217250
and 2011-03-19 meeting

This was SVN commit r9090.
2011-03-21 17:53:13 +00:00
Ykkrosh
1c7e33b528 Remove a load of implicit CStr type conversions, since they're error-prone and can cause silent data loss.
Handle most CStr8/CStrW conversions via UTF-8 instead of effectively
assuming Latin-1.
Return UTF-8 strings from Xeromyces API.

This was SVN commit r8929.
2011-02-17 20:08:20 +00:00
Ykkrosh
67a94572ec # Add new texture loading system with automatic compression.
Replace almost all texture uses with calls to the new system.
Add some anistropic filtering to terrain textures.
Let Atlas load terrain texture previews partly-asynchronously by
polling.
Fix inefficient texture colour determination for minimap.
Remove unused global g_TerrainModified.
Change GUI texcoord computation to be less efficient but to cope with
dynamic texture changes.
Fix GUI renderer effects leaving bogus colour state.

This was SVN commit r8099.
2010-09-10 21:02:10 +00:00
janwas
d2cf6ceb88 less global variables: make most uses of g_VFS explicit (required for another app that has two VFSes), g_yres is no longer required by cursor module
This was SVN commit r7686.
2010-07-04 10:15:53 +00:00
janwas
8a52113e60 huge cleanup and conversion of most string handling (especially paths) to unicode
please note: format strings must be %hs for char* arguments and %ls for
wchar_t*

This was SVN commit r7161.
2009-11-03 21:46:35 +00:00
Ykkrosh
1743645fd3 Simplify the overly-complex CppDoc-breaking file headers
This was SVN commit r6832.
2009-04-18 17:51:05 +00:00
Ykkrosh
c9fa7f13d9 Add GPL header
This was SVN commit r6830.
2009-04-18 17:00:33 +00:00
Ykkrosh
5bd6cc0f02 Fix some no-newline-at-end-of-file warnings
This was SVN commit r6819.
2009-04-13 17:45:43 +00:00
travis
121faff0e8 #Added reading of particle settings from XML.
Added CEmitter::LoadFromXML method to load particle settings from XML
files.
Made Update code generic and moved from CDefaultEmitter child class up
into CEmitter base class.
Cleaned up code in general and removed unused member variables.

This was SVN commit r6691.
2009-02-19 00:19:06 +00:00
janwas
b755ddefda remove all author/modified by tags.
make include guards consistent.

This was SVN commit r5040.
2007-05-07 16:33:24 +00:00
janwas
73683b6109 # SwEng
. the massive renaming undertaking: camelCase functions -> PascalCase.
. add some cppdoc.
. minor additional renaming improvements: e.g. GetIsClosed -> IsClosed
. in entity code, replace constructs like "pvec = new vector; return
pvec; use *pvec; delete pvec" with a simple stack variable passed as
output parameter (avoid unnecessary dynamic allocs)
. timer: simpler handling of raw ticks vs normal timer (less #if)

This was SVN commit r5017.
2007-05-02 12:07:08 +00:00
Ykkrosh
3d26549032 Fixed file properties - removed svn:executable and svn:keywords (left over from CVS conversion?) from all files; set svn:eol-style=native for *.cpp, *.h (and fixed files with inconsistent line endings)
This was SVN commit r3802.
2006-04-23 23:14:18 +00:00
janwas
e2a11fabe8 fix warnings (VC7)
This was SVN commit r3542.
2006-02-19 21:16:54 +00:00
livingaftermidnight
cac25fa660 This was SVN commit r3525. 2006-02-17 02:02:04 +00:00
livingaftermidnight
85b2f8f7b1 Fixed texture issues. Still needs alpha blending fixed though.
This was SVN commit r3523.
2006-02-17 00:26:15 +00:00
livingaftermidnight
ef7f6e35bd This was SVN commit r3489. 2006-02-11 09:36:21 +00:00
prefect
f953258a9d Fix Linux build, don't EVER #include <windows.h> again!
Removed some apparently unnecessary #includes
Merged multiple M_PI definitions into maths/MathUtil.h
Add newline at end of file

This was SVN commit r3384.
2006-01-21 20:01:17 +00:00
livingaftermidnight
aef0a42780 This is the new particle engine. It's in and it compiles, but it's not implemented fully yet. Will get to that soon.
This was SVN commit r3369.
2006-01-19 11:19:55 +00:00
janwas
20d038efda profiling indicates memcpy is a bottleneck, so globally replace all of them with memcpy2 (hand-optimized). depending on transfer size, this is 10%..300% faster. also made memcpy2 into a macro instead of thunk function because vc7 was still generating a jump.
This was SVN commit r3057.
2005-10-30 16:19:20 +00:00
Ykkrosh
7bef7160ca gcc warning fixes
This was SVN commit r702.
2004-07-11 12:49:44 +00:00
olsner
0983fdcf9c CStr namespace de-pollution; added using namespace to source
This was SVN commit r475.
2004-06-11 02:20:59 +00:00
janwas
c7a84e84be added precompiled.h everywhere
This was SVN commit r392.
2004-06-03 18:38:14 +00:00
notpete
7fb944a1e1 Either moved from terrain directory, or an inital revision, depending on the file. Whole bunch of changes related to props and animation.
This was SVN commit r306.
2004-05-29 20:56:24 +00:00