1
0
forked from 0ad/0ad
Commit Graph

620 Commits

Author SHA1 Message Date
3efb235725 And re-enabling the stuff disabled for debugging 2
This was SVN commit r12632.
2012-09-04 17:30:01 +00:00
10101b138d And re-enabling the stuff disabled for debugging
This was SVN commit r12631.
2012-09-04 16:59:03 +00:00
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
1ba858bf6e More on that bug (warning: renderer temporarily slower)
This was SVN commit r12628.
2012-09-04 12:34:02 +00:00
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
affe91b52c Fixed fixed renderpath: green water, broken minimap
This was SVN commit r12588.
2012-09-01 22:34:36 +00:00
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
89cf2b26e3 Second attempt to fix a graphical glitch in ARB mode
This was SVN commit r12526.
2012-08-25 21:41:31 +00:00
e50bf9e539 Sky toggling through config and with Alt+Z
This was SVN commit r12513.
2012-08-22 07:32:26 +00:00
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
952385b21d Ticket 1612: Fixed overlay z-fighting in GLSL mode
This was SVN commit r12504.
2012-08-21 16:28:06 +00:00
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
97c97dc7e0 Bugfix- changed decal/terrain blending mode for the fixed renderpath
This was SVN commit r12334.
2012-08-09 16:22:49 +00:00
e046fc0a01 Bugfix- changed some decal materials and fixed decal blending mode
This was SVN commit r12325.
2012-08-08 19:08:56 +00:00
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
648e68e49c smooth LOS
This was SVN commit r12304.
2012-08-06 22:38:42 +00:00
47c2907f10 added licensing headers to some of the new files
This was SVN commit r12301.
2012-08-06 21:34:41 +00:00
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
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
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
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
dd072112d1 Improved shadow filtering, from eihrul.
This was SVN commit r11896.
2012-05-21 19:23:14 +00:00
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
e4528af72b Fix vector allocator types
This was SVN commit r11708.
2012-05-01 21:12:43 +00:00
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
227f9e403f Experimental GPU skinning.
Share inverse bind pose matrices between models.

This was SVN commit r11490.
2012-04-12 15:43:59 +00:00
e6a82fff48 Bind textures correctly to GLSL sampler uniforms.
This was SVN commit r11476.
2012-04-10 21:07:52 +00:00
f2260892bd Add config option to force alpha-tested materials.
This was SVN commit r11475.
2012-04-10 21:03:22 +00:00
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
59447bce2e Move shaders into appropriate subdirectories.
Delete some obsolete shader files.

This was SVN commit r11424.
2012-04-03 19:45:58 +00:00
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
1095782d1a Increase maximum VBO size, to support larger meshes
This was SVN commit r11387.
2012-03-21 18:45:10 +00:00
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
dc715fe57f Remove some unused includes
This was SVN commit r11250.
2012-03-05 16:15:07 +00:00
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
7663e78861 Fix terrain overlay rendering
This was SVN commit r11163.
2012-02-25 22:11:34 +00:00
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
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
d70a981377 Android fixes
This was SVN commit r11068.
2012-02-13 23:53:09 +00:00
9972eb8cae Enough GLES compatibility to reach the menu screen
This was SVN commit r11064.
2012-02-13 20:53:24 +00:00
677ccf53e6 Yet more GLES compatibility
This was SVN commit r11061.
2012-02-13 16:41:17 +00:00
a9eca31bad Even more GLES compatibility
This was SVN commit r11060.
2012-02-13 15:06:25 +00:00
4bf59b9a7d More GLES compatibility, mainly around terrain rendering.
This was SVN commit r11059.
2012-02-13 14:02:14 +00:00
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
db85833655 More GLES compatibility.
Move more rendering code to shader API.

This was SVN commit r11050.
2012-02-12 13:20:49 +00:00
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
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
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
b9c406551b Cache shader effects. Fixes #1143.
This was SVN commit r11006.
2012-02-02 22:58:42 +00:00
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
8be430eb30 Remove obsolete ogl_shader
This was SVN commit r10984.
2012-01-29 12:23:16 +00:00
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
adbd7633dd # Initial GLSL rendering support
This was SVN commit r10978.
2012-01-29 01:22:22 +00:00
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
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
0ec4242962 Detect and fix printf signedness errors. Fixes #1086, #1087.
This was SVN commit r10846.
2012-01-01 16:43:10 +00:00
1e0074e9da Fix crash with missing shader support
This was SVN commit r10829.
2011-12-29 13:35:07 +00:00
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
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
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
fbff0aa98d Fix printf argument types
This was SVN commit r10529.
2011-11-13 18:31:06 +00:00
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
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
09a02c96d5 Add initial code annotations for the new profiling tool
This was SVN commit r10466.
2011-11-04 01:35:50 +00:00
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
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
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
f9d7c1246d # Initial support for territories
This was SVN commit r9889.
2011-07-20 19:48:06 +00:00
364f76c5ff Fix rare use of uninitialised values
This was SVN commit r9847.
2011-07-16 19:52:48 +00:00
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
ca42649c5b Fix MSVC warning
This was SVN commit r9820.
2011-07-13 19:28:31 +00:00
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
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
db5e483266 Fix typo in comment
This was SVN commit r9635.
2011-06-19 14:18:07 +00:00
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
9733affb05 Fix non-PCH build
This was SVN commit r9419.
2011-05-04 01:17:09 +00:00
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
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
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
6c915291cc cleanup (requires update-workspaces):
major refactor of wfilesystem - remove gotos and workaround for FAT file
times
replace more round_up of constants with Align<>
remove old unused allocators (STL aligned, matrix, some shared_ptr)
move allocator utils into separate headers.
remove lockfree, wterminal
avoid testing __cplusplus

This was SVN commit r9361.
2011-04-30 12:34:28 +00:00
188c020ae0 Fix reading outside buffer, when terrain alpha maps are 8-bit.
Change alpha map composite texture to 8-bit to avoid wasting memory.
Warn about non-square alpha maps.

This was SVN commit r9360.
2011-04-30 11:46:23 +00:00
2374caac3e major refactor of file/io and alignment code. requires update-workspaces
. completely rewrite waio - use IOCP, add several hardcore
optimizations. now outperforms the
  AS SSD and ATTO benchmarks when writing
. refactor file interface - use LIO_READ instead of 'r', allow access to
file descriptor.
. completely rewrite the IO wrapper. now much more simple, less CPU
overhead, adds
  support for pre-issue/post-completion hooks and preallocation.
  io::Run defaults to simple synchronous IO; use io::Parameters to get
asynchronous.
. add alignment.h with constants and Align() function template (more
efficient than
  round_up for compile-time constants)
. add UniqueRange - similar to C++0x unique_ptr (emulated for C++03),
plus a
  built-in size. avoids expensive thread-safe reference counting in
shared_ptr.

cleanup:
- move fat_time functions into archive_zip
- remove no longer needed io_align and block_cache
- reduce dependencies in sysdep/compiler (move parts to
code_annotation.h)
- move IOCP into separate file (reused by waio)

This was SVN commit r9350.
2011-04-29 19:10:34 +00:00
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
e4b530fb1a Clean up some GL state explicitly
This was SVN commit r9331.
2011-04-27 20:12:58 +00:00
2d0c183afb Fix use of uninitialised variable, causing errors randomly when GL_ARB_fragment_program_shadow is missing
This was SVN commit r9310.
2011-04-23 18:51:47 +00:00
ed62b49a74 Renderer simplification: Remove now-unused texgen stream.
This was SVN commit r9190.
2011-04-06 22:09:58 +00:00
1866c2d3b7 Renderer simplification: Remove non-FBO shadow mode.
This was SVN commit r9189.
2011-04-06 22:08:51 +00:00
a1eb830f2c Renderer simplification: Remove old non-depth-texture shadows.
This was SVN commit r9188.
2011-04-06 22:08:07 +00:00
7339a346e3 Renderer simplification: Remove fixed-function shadowing. Remove now-unused diffuse-only model lighting mode.
This was SVN commit r9187.
2011-04-06 22:07:13 +00:00
8753f881ee Renderer simplification: Remove old vertexshader path.
This was SVN commit r9186.
2011-04-06 22:02:05 +00:00
29dd635d3b Fix decals and LOS texture in Actor Viewer, by slightly reducing use of globals.
Fix particles in Actor Viewer.
Expand terrain in Actor Viewer.
Change background to black so it blends with the LOS texture more
nicely.

This was SVN commit r9172.
2011-04-05 20:32:03 +00:00
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
823e63a93b # Initial version of new particle system.
This was SVN commit r9151.
2011-04-03 19:15:15 +00:00
97c934ad1c Apply unit shading colour in shader renderpath.
Don't adjust the shading colour of units in FoW (the shading comes from
the LOS texture instead).

This was SVN commit r9142.
2011-04-02 12:04:19 +00:00
1014da1f88 Use pool allocator to avoid apparently expensive dynamic allocations when rendering terrain.
Add function to get pool usage, for debugging.

This was SVN commit r9132.
2011-03-30 21:42:35 +00:00
d295dacb9b # Add new renderer mode based on GL_ARB_fragment_program.
Change lighting model for new maps to allow better overbrightness.
Cache player colours instead of loading from scripts every time the
renderer wants them.

This was SVN commit r9123.
2011-03-26 20:17:21 +00:00
afbfca17ce Fix silhouettes being displayed for some models that always stick into the ground
This was SVN commit r9117.
2011-03-24 23:54:08 +00:00
9193ba56f9 Build fixes and whatnot
This was SVN commit r9115.
2011-03-23 21:15:22 +00:00
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
e825a98671 Fix flag filtering of transparent models
This was SVN commit r9102.
2011-03-22 23:09:38 +00:00
c0a105432e Use path types and conversions more consistently.
This was SVN commit r9094.
2011-03-21 22:59:00 +00:00
c3405e6f50 path improvements/fixes:
- replace more std::wstring with Native or VfsPath; wstring_from_utf8 ->
NativePathFromString
- replace sequences of Join(Path(), Basename+extension) with
ChangeExtension in wsdl, CacheLoader
- add Path::IsDirectory to replace .empty() / path_is_dir_sep(.back()).
also changed behavior to reflect the fact that "" is the VFS root
_directory_
- Path::Join now allows 2 identical path types (e.g. VfsPath) or one
char* literal (prevents inadvertently introducing non-safe characters).
to convert from wstring or wchar_t, use an explicit ctor (e.g.
VfsPath(wchar_t_string))

This was SVN commit r9091.
2011-03-21 19:54:08 +00:00
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
ecbd0ae31b Fix Windows build.
Improve compatibility with GL1.3.

This was SVN commit r9077.
2011-03-18 18:07:18 +00:00
d805e764c5 # Render unit silhouettes when behind buildings.
Fixes #144.
Start using stencil buffer.
Simplify materials a little.

This was SVN commit r9076.
2011-03-18 16:57:54 +00:00
e70fae8d80 Stop using glMultiDrawElements since it's too buggy
This was SVN commit r9064.
2011-03-14 21:57:09 +00:00
099dbdb24a Fix use of uninitialised variable
This was SVN commit r9063.
2011-03-14 21:54:44 +00:00
5fa577ea25 Attempt to fix shadowAlphaFix to generate FBOs in a more widely supported format
This was SVN commit r9062.
2011-03-14 02:50:43 +00:00
612539f109 Don't bother creating shadow textures if shadows are disabled
This was SVN commit r9061.
2011-03-14 02:49:53 +00:00
d24c93237c # Initial version of terrain decal textures.
Rejig CModel to support non-mesh-based props.
Avoid redundant recomputation for non-moving CRenderableObjects.

This was SVN commit r9055.
2011-03-13 19:22:05 +00:00
ba8163e248 # Explicitly triangulate terrain tiles.
Store blend splats as indexed triangles.
Remove unnecessary copy of vertex data.
Fixes #169.

This was SVN commit r9054.
2011-03-13 19:10:38 +00:00
fc2c54c39f # Optimise terrain renderer.
Batch patch splats by texture match.
Use VBOs for patch indices.
Fixes #722.

This was SVN commit r9053.
2011-03-13 19:06:33 +00:00
2f28b07356 Support storing index data in VBOs.
Use index VBOs in model renderers, for performance.
Be more explicit about static/dynamic VBOs.
Add VBO usage to renderer stats.
Clean up some obsolete unused code.

This was SVN commit r9052.
2011-03-13 18:58:09 +00:00
18f44bebbc Add workaround for missing tree shadows on certain graphics drivers
This was SVN commit r9042.
2011-03-07 00:34:03 +00:00
6bcce22a88 Tell the profiler about a few more bits of code
This was SVN commit r9007.
2011-03-03 22:38:01 +00:00
c7f647ae73 Don't bother initialising shadow map textures with data that will never be used.
Add some profiling in the shadow rendering code.

This was SVN commit r8934.
2011-02-18 23:41:27 +00:00
4f724056d5 Remove some unused bits from CRenderer
This was SVN commit r8927.
2011-02-16 22:40:15 +00:00
02e7eb69ff # Add solid black sides to the map, to hide underwater terrain.
This was SVN commit r8886.
2011-02-03 14:36:54 +00:00
c710e718aa Windows fixes
This was SVN commit r8884.
2011-02-03 02:33:37 +00:00
cb78822f19 Delete some unused bits.
This was SVN commit r8883.
2011-02-03 01:17:16 +00:00
fe21c5e023 # Rewrite fog-of-war rendering.
Disable shadows when only 2 TMUs available.
Clean up some other rendering code.

This was SVN commit r8882.
2011-02-03 01:12:24 +00:00
18189ef4fc Simplify terrain blend rendering to use non-indexed arrays
This was SVN commit r8878.
2011-01-30 14:43:35 +00:00
566bbf0fa0 Fix assertion failure when running pre-game GUI
This was SVN commit r8877.
2011-01-30 02:14:44 +00:00
03c75100ab # Fix terrain blending logic.
Add terrain priority rendering mode in Atlas.
Fix terrain painting in Atlas to be less profligate with priority
values.
Support hotloading of blend textures.
Clean up some trivial things.

This was SVN commit r8872.
2011-01-29 16:31:48 +00:00
1201956b93 Additional cleaning up of logging: removed LOG_CATEGORY macro definitions.
This was SVN commit r8792.
2010-12-05 08:50:33 +00:00
19dbbb816d Changed all references from old CLogger API to use the new API. Removed old API. Fixes #247
This was SVN commit r8791.
2010-12-05 08:41:55 +00:00
3407983e98 remove no-longer needed (and non-reentrant) MICROLOG as per today's meeting
This was SVN commit r8542.
2010-11-06 19:11:40 +00:00
52851faeb6 cleanup - remove old cpu_memcpy and cpu_i64FromDouble that are no longer needed
This was SVN commit r8517.
2010-11-01 11:09:03 +00:00
602b99c397 Fix water rendering in "reveal map" mode.
This was SVN commit r8512.
2010-10-31 22:07:57 +00:00
5d764f1435 Run network server in a separate thread, to minimise latency.
Make some parts of logger and console thread-safe.
Simplify console: remove special commands; remove prefix for script
commands.
Remove LOG_ONCE, to simplify logger.
Change some code to use the new logger interface.
Fix OOS when revealing map.
Clean up some formatting.

This was SVN commit r8511.
2010-10-31 22:00:28 +00:00
02aa8499ed Partial experimental version of circular maps
This was SVN commit r8470.
2010-10-25 21:59:52 +00:00
9dfa21b558 Fix off-by-one error (glDrawRangeElements expects the *inclusive* upper bound of indexes)
This was SVN commit r8288.
2010-10-05 15:54:04 +00:00
7ea522a484 # Add on-screen health bars
This was SVN commit r8241.
2010-10-02 12:41:29 +00:00
6d82bfaabf Disable some profiler calls that are frequent enough to significantly affect performance
This was SVN commit r8171.
2010-09-24 21:33:07 +00:00
ede71ea791 Inline common vector/matrix operations, for performance.
Remove some redundant vector methods.
Compute skinning for positions and normals simultaneously.
(These changes reduce skinning cost by >50%.)

This was SVN commit r8170.
2010-09-24 16:54:20 +00:00
e1082e5adb Fix warnings
This was SVN commit r8162.
2010-09-23 12:54:16 +00:00
924d1219a7 # Add fog-of-war.
Move Vision component to C++, for more efficient FoW processing.
Disable FoW on demo maps.

This was SVN commit r8160.
2010-09-23 12:13:13 +00:00
000b7250a2 Use slightly higher quality texture compression in archive-builder mode
This was SVN commit r8148.
2010-09-20 16:34:09 +00:00
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
2e7436434d warning fixes: mostly size_t vs. specialized API type and other type conversion.
added player_id_t typedef and INVALID_PLAYER, use that instead of -1.
also added sanity checks to cpu.cpp to ensure ARCH_* is correct (see
http://www.wildfiregames.com/forum/index.php?showtopic=13327&hl=)
and further predefined macros to arch.h just to be sure.

This was SVN commit r8079.
2010-09-05 09:38:30 +00:00
1936acc8a8 Fix #557 (Minor improvements to non-fancy water fresnel effect), based on patch from hex539
This was SVN commit r8046.
2010-08-29 14:13:39 +00:00
2529ae2a7b Fix #543 (Replace skybox with black background), based on patch from Jayschwa
This was SVN commit r8018.
2010-08-21 22:43:35 +00:00
6c7b82130c # Redesigned the camera control system.
Add shift+wheel (and Q/E, and ctrl+arrows, and ctrl+WASD) to rotate the
camera.
Restrict the rotation and zoom to narrow ranges. (Constraints can be
disabled in the dev overlay).
Smooth the movement and rotation.
Fix some stupid whitespace.
Fix some const correctness.

This was SVN commit r7930.
2010-08-13 13:26:29 +00:00
e64d115d7c # Change selection circles to match the player colour
This was SVN commit r7880.
2010-08-08 17:28:51 +00:00
1706363bab Fix #423 (Switch from CppDoc to Doxygen), based on patch from anr.
Also delete some unused declarations, and rename is_playing to
snd_is_playing.

This was SVN commit r7813.
2010-07-29 15:55:41 +00:00
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
1c0536bf08 # Refactored the networking code, and redesigned the game setup screen.
Major updates to most network classes.
Simplify CNetServer so it doesn't duplicate any client behaviour; all
players now run CNetClient.
Remove most player/slot management from networking code.
Wait for all players to finish loading before starting the simulation.
Remove CGameAttributes; attributes are now just a JS object.
Remove CPlayer; they are now just simulation entities.
Handle player colours via simulation system.
Add a default map for Atlas, so it always has something to load.
Move network documentation to Doxygen.
Remove lots of now-unused code.

This was SVN commit r7653.
2010-06-30 21:41:04 +00:00
48b83a413c Added access to shadows property back to console
:renderer.shadows = booleanValue <-- should work again

This was SVN commit r7629.
2010-06-19 22:07:27 +00:00
d3048906cb # Unit animation improvements.
Animate props much more sensibly.
Move ammo code out of CUnit.
Move animation logic out of CModel.
Launch projectiles from the correct location.
Use entity's speeds and sounds in actor viewer.
Add -nosound option to disable audio, and allow audio by default in
Atlas.
Remove some obsolete options.

This was SVN commit r7609.
2010-06-05 00:49:14 +00:00
0f611042b1 # Support alt+enter to toggle fullscreen mode. Make game window resizable.
Refactor the video mode setting logic to cope better with dynamic
changes.

This was SVN commit r7606.
2010-06-03 19:07:59 +00:00
7dca91f26b # Various changes to the text rendering system.
Rewrite font builder tool to be much simpler and to support more text
effects.
Change GUI to use new set of fonts.
Switch font textures from TGA to PNG so they're easier for the font
builder to create.
Support RGBA font textures (for e.g. stroked text).
Greatly improve text rendering performance by using vertex arrays.
Fix rendering code leaving vertex buffers bound.
Add 'clip' property to GUI text objects, to disable clipping when
rendering.
Delete part of unused console function registration system.

This was SVN commit r7595.
2010-05-30 13:42:56 +00:00
11a20e1bcf # Handle terrain passability and movement costs in pathfinder.
Simplify terrain code (remove Handle indirection).
Delete unused terrain properties.

This was SVN commit r7590.
2010-05-27 23:31:03 +00:00
828400d82e # Support floating units in new simulation system.
Fix rendering of underwater lines.
Fix rendering of unit selection outlines in Atlas.
Remove some obsolete hotkeys.

This was SVN commit r7589.
2010-05-27 23:23:53 +00:00
cf85004f61 Windows build fixes.
Remove unused function.

This was SVN commit r7557.
2010-05-20 20:05:38 +00:00
56bb858802 # Delete a lot of obsolete simulation code.
This was SVN commit r7555.
2010-05-20 18:09:23 +00:00
e140aa7baf Avoid running the old simulation code in the background when it's not needed.
Optimise GUI updates to only occur when necessary.
Switch to more peaceful music after starting the game.

This was SVN commit r7492.
2010-05-01 16:20:58 +00:00
cfae58928f # New unit movement system, which does a far better job of approaching targets and avoiding obstacles.
Add short-range vertex-based pathfinder.
Integrate new pathfinder into unit motion code.
Change obstruction system to get rid of circles, and differentiate
structures from units.
Make PositionChanged messages synchronous.
Try to prevent some accidental float->int conversions.

This was SVN commit r7484.
2010-04-29 23:36:05 +00:00
1ebebc4338 Avoid -Wnon-virtual-dtor warnings
This was SVN commit r7416.
2010-03-31 08:36:46 +00:00
58e79bfdbe Force fancywater off if fragment shader extensions are not supported. See #270
This was SVN commit r7385.
2010-03-21 14:18:15 +00:00
06928f7694 # Basic bandbox selection of units in new simulation system
This was SVN commit r7349.
2010-03-11 20:01:16 +00:00
275d22742d Fix some rendering glitches
This was SVN commit r7335.
2010-02-28 21:29:23 +00:00
6a2d237aad # Initial pathfinder integration in new simulation system
Minor extra terrain overlay features

This was SVN commit r7293.
2010-01-29 21:13:18 +00:00
7c2e9027c2 # Rewrite of the game's simulation system
Giant merge from
http://svn.wildfiregames.com/hg-source/file/5fb522019d5e
Infrastructure is largely complete, gameplay is largely missing
Disabled by default; use command-line flag "-sim2"
(Second attempt at commit...)

This was SVN commit r7259.
2010-01-09 19:20:14 +00:00
03726c0b54 ICC build fixes
warning fixes
get rid of SAFE_WCSCPY and SAFE_STRCPY

This was SVN commit r7239.
2010-01-01 15:33:07 +00:00
3334c83ce0 Fix build and tests on Linux
This was SVN commit r7174.
2009-11-06 18:35:32 +00:00
9662666403 more string drudgery
- sprintf, snprintf -> sprintf_s (ensures 0-termination of result)
- use %s instead of %hs with sprintf_s to avoid GCC warnings
- convert h_mgr's to_string to unicode

This was SVN commit r7170.
2009-11-06 10:59:10 +00:00
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
e257bef5da Fix even more 64-bit warnings
This was SVN commit r7152.
2009-10-05 16:15:51 +00:00
cd6a926c14 Fix #293 (Lots of printf format string errors), based on patch from Cygal
This was SVN commit r7113.
2009-08-14 18:42:39 +00:00
4a4269824b Add more vararg error-checking annotation
This was SVN commit r7073.
2009-08-04 16:08:41 +00:00
cd0554c6bc Fix Linux build warnings
This was SVN commit r7034.
2009-07-25 20:35:48 +00:00
c4ae6001f9 fix relics of GPL comment insertion (removing empty description comments and in some cases adding new file descriptions)
test_XeroXMB.h: fix warning

This was SVN commit r6851.
2009-05-03 11:47:38 +00:00
1743645fd3 Simplify the overly-complex CppDoc-breaking file headers
This was SVN commit r6832.
2009-04-18 17:51:05 +00:00
c9fa7f13d9 Add GPL header
This was SVN commit r6830.
2009-04-18 17:00:33 +00:00
1e3cd00c72 Set svn:eol-style=native
This was SVN commit r6816.
2009-04-11 17:00:39 +00:00
4e32136b4c # Fixed ambient terrain lighting when shadows are disabled
This was SVN commit r6808.
2009-04-05 18:31:05 +00:00
228859da99 # Fix water-related crash on some video drivers
Detect some errors loading fancy-water fragment shader, and disable
fancy water.
Fixes crash with Mesa on 945GM (which doesn't support fragment shaders,
though it advertises the extensions).

This was SVN commit r6773.
2009-03-24 21:00:41 +00:00
b51353ae0b Use NONCOPYABLE macro, to avoid ICC warnings
This was SVN commit r6589.
2009-01-03 18:40:28 +00:00
5228800b73 # Fixed Linux build
Use noncopyable instead of boost::noncopyable. (But maybe this should be
changed to the NONCOPYABLE macro instead?)
Use boost::filesystem::wpath::file_string instead of
external_file_string, since the latter varies between std::string on
Linux and std::wstring on Windows.
Use wcstombs instead of wcstombs_s.
Use rtl_AllocateAligned instead of _mm_malloc.

This was SVN commit r6574.
2009-01-02 21:19:41 +00:00
becab2d479 fix: alpha map texture wasn't initialized, which caused crash if multiplayer -> host -> continue -> cancel
thanks to anton for noticing and reporting the problem :)

also: fix hardcoded paths in rmgen to point to mods/public

This was SVN commit r6429.
2008-10-18 17:58:04 +00:00
40a7da782e warning fixes
GameSetup.cpp: add support for new internal/public mod layout

This was SVN commit r6393.
2008-09-18 11:31:12 +00:00
0f9294ce17 Fixed some strict aliasing warnings
This was SVN commit r6252.
2008-07-19 00:36:42 +00:00
8e86d29301 dehydra fixes (mostly copy-ctor warnings)
This was SVN commit r6239.
2008-07-17 14:23:51 +00:00
3c411dd174 large batch of Dehydra static code analysis fixes
(mostly passing arguments by const reference and checking LibError
return codes)

This was SVN commit r6214.
2008-07-12 10:45:11 +00:00
b79375a0c5 color conversion: avoid type punning by returning SColor4ub directly. that required a non-extern-C declaration of the SSE function, so i replaced it with straightforward intrinsics.
ia32: no longer needs #if since build system ensures it's not compiled
on amd64

This was SVN commit r6164.
2008-06-30 19:08:29 +00:00
0994b71316 fixes
bits: avoid warning, document ceil_log2 corner case
cpu, x86_x64: remove unused cpu_MemoryFence
wdbg_heap: avoid warning
test_bits: fix incorrect test values
TerrainOverlay: fix use of struct vs. class, correct unintended
search&destroy of intended->ssize_tended (LOL)

This was SVN commit r6119.
2008-06-26 20:12:42 +00:00
b5987f11e8 Cleaned up TerrainOverlay a little
This was SVN commit r6104.
2008-06-24 23:35:46 +00:00
c0ed950657 had to remove uint and ulong from lib/types.h due to conflict with other library.
this snowballed into a massive search+destroy of the hodgepodge of
mostly equivalent types we had in use (int, uint, unsigned, unsigned
int, i32, u32, ulong, uintN).

it is more efficient to use 64-bit types in 64-bit mode, so the
preferred default is size_t (for anything remotely resembling a size or
index). tile coordinates are ssize_t to allow more efficient conversion
to/from floating point. flags are int because we almost never need more
than 15 distinct bits, bit test/set is not slower and int is fastest to
type. finally, some data that is pretty much directly passed to OpenGL
is now typed accordingly.

after several hours, the code now requires fewer casts and less
guesswork.

other changes:
- unit and player IDs now have an "invalid id" constant in the
respective class to avoid casting and -1
- fix some endian/64-bit bugs in the map (un)packing. added a
convenience function to write/read a size_t.
- ia32: change CPUID interface to allow passing in ecx (required for
cache topology detection, which I need at work). remove some unneeded
functions from asm, replace with intrinsics where possible.

This was SVN commit r5942.
2008-05-11 18:48:32 +00:00