Commit Graph

5127 Commits

Author SHA1 Message Date
72e11a2dea Fix VS2013 build errors, warnings
This was SVN commit r14073.
2013-11-03 12:46:07 +00:00
29e4b1a17c Update Android support
This was SVN commit r14068.
2013-11-02 23:05:38 +00:00
1fa2fc9739 CClientArea parsing test
This was SVN commit r14064.
2013-11-02 14:39:08 +00:00
60fb5ed1c3 - Fix garisson and formation aura types
- Implement tech mods for UnitMotion speeds, Fixes #1958, based on patch
by wraitii
- Implement athen_hero_themistocles ship speed aura as a test

This was SVN commit r14058.
2013-10-30 16:12:53 +00:00
2d1be3d47e Improve correctness of hotkeys at low framerates.
SDL queues up all the input events received in a frame. When the hotkey
system saw a key up/down event, it immediately updated its
HotkeyIsPressed state and then pushed a hotkey event onto the end of the
queue.

If the initial queue was e.g. [key-down shift, key-press Z, key-up
shift], the hotkey event triggered by Z would be processed after the
key-up shift had updated the HotkeyIsPressed state, so the handler of
the Z hotkey would not think the shift hotkey was pressed.

If the initial queue was e.g. [key-press Z, mouse-click], the hotkey
triggered by Z would be processed after the mouse-click event, so it
could apply to the wrong building selection.

Fix by pushing the hotkey events onto a special queue that gets
processed before any subsequent SDL input events.

Also update the HotkeyIsPressed status when the HOTKEYDOWN/HOTKEYUP
events are processed, not when they are generated, to guarantee they are
consistent with the DOWN/UP events.

Fixes #1869.

This was SVN commit r14057.
2013-10-30 01:38:32 +00:00
4e86b00a05 Remove inconsistencies in the manual. Refs #2185.
Fix player name.
Make log messages when saving games use quotes around paths.

This was SVN commit r14037.
2013-10-23 22:18:40 +00:00
20ed5b118c Unify script conversions and remove JSInterface_Vector3D.
Because it was historically grown, we have some duplicated code for
converting script types to native types.
This patch removes the file JSConversions.cpp and moves some code to
ScriptConversions.cpp.
The places using JSConversions.cpp are changed to use the
ScriptInterface's conversion functions in ScriptConversions.cpp.
I also removed JSInterface_Vector3D because it had additional
requirements to the conversion code that no other code has and because
it's currently not used. I think it doesn't make sense to maintain code
just because it could possibly be used again later.

Closes #2213
Refs #1886

This was SVN commit r14036.
2013-10-20 17:13:53 +00:00
a4cd90ddfc Avoid non-ASCII characters in source code, since tools don't decode them consistently.
Fixes #2198.

This was SVN commit r14035.
2013-10-20 09:27:44 +00:00
d6f6d2b145 Remove useless error messages.
This was SVN commit r14034.
2013-10-20 01:47:16 +00:00
b9892bc73a Remove ScriptableObject/CJSObject
Since all remaining uses of ScriptableObject/CJSObject have been
removed, the related files can now also be removed.
Closes #2212
Refs #2126
Refs #2137
Refs #1886

This was SVN commit r14026.
2013-10-19 10:14:08 +00:00
024dd82209 Fix non-PCH build
This was SVN commit r14024.
2013-10-19 01:11:20 +00:00
ac335f37c8 Fix some Clang warnings about unused private members
This was SVN commit r14023.
2013-10-19 00:53:58 +00:00
701508922f Use CStrIntern for font names to reduce lookup cost
This was SVN commit r14020.
2013-10-18 16:15:42 +00:00
91169c82c7 Optimise rendering of scrollable text boxes by clipping
Add optional clipping rectangle to CTextRenderer. Strings that are
printed
outside the vertical extent of the clipping rectangle will be
immediately
skipped. This greatly reduces the cost of large scrollable text boxes.

This was SVN commit r14019.
2013-10-18 16:05:02 +00:00
751558d894 Optimise text rendering by batching
When CTextRenderer is given multiple strings with no differences other
than position, render them in a single glDrawElements call to reduce
driver overhead.

Also avoid some unnecessary copies of std::wstrings.

This helps performance a bit with large GUI text boxes.

This was SVN commit r14018.
2013-10-18 16:02:48 +00:00
b6c7c0d799 Optimise glyph lookup in text renderer
std::map lookup was a major cost when rendering large amounts of text.
Replace it with a more efficient 2-level array.

This was SVN commit r14017.
2013-10-18 15:56:12 +00:00
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
8799bd98b0 Support 8bpp textures
When textures.xml specifies format="alpha", the input is expected to be
an
8-bit greyscale PNG, and the output will be an 8-bit uncompressed
alpha-only DDS.

Add format override to CTextureProperties, to select between e.g.
GL_ALPHA
and GL_LUMINANCE for 8-bit textures.

This is needed so fonts can use the new texture system.

This was SVN commit r14015.
2013-10-18 15:36:31 +00:00
6a2fac7a58 Add hotkeys for JSDebugger commands. Patch by sathyam. Fixes #2208.
This was SVN commit r14014.
2013-10-18 14:41:08 +00:00
e6d9094c98 Remove InitSavedGame, but keep the rallypoint problem it solved. Fixes #1762, Patch by mimo.
This was SVN commit r14010.
2013-10-16 17:58:12 +00:00
a2f836c393 Prevent bogus -Wmaybe-uninitialized warnings in GCC
This was SVN commit r14008.
2013-10-16 12:22:50 +00:00
5f5eedc513 Rename technology related files, methods and messages so their names represent the shared data flow between technologies and auras (and maybe future components). Implement the C++ part of auras through these generalised files. Fixes #2154
This was SVN commit r14001.
2013-10-15 10:05:08 +00:00
379a7b208f Implement the js side of auras. Refs #2048. Patch with the help of Alpha123. Only the temple aura is added as example, all other aura components are removed from the templates to be created from scratch again.
This was SVN commit r13998.
2013-10-14 15:51:21 +00:00
ce5c43fe03 Fix typo
This was SVN commit r13995.
2013-10-13 11:41:30 +00:00
a00e57df72 Fixes hypothetical mem leak in network code (and an error in Cppcheck), patch by Riemer, fixes #2122
This was SVN commit r13980.
2013-10-10 23:46:42 +00:00
f3d088dd5c Fixes JS debugger, fixes VS 2013 build error, re-fixes #2127, #2175
This was SVN commit r13973.
2013-10-07 22:55:30 +00:00
b9268fbdcd Fixes error logging in the JS debugger, based on patch by RefinedCode. Fixes #2175
This was SVN commit r13967.
2013-10-07 02:10:41 +00:00
50782c1c1c Fixes non-PCH build
This was SVN commit r13953.
2013-10-06 05:15:54 +00:00
754e794f9b Implements attack notifications based on patch by madmax and zoot, fixes #1719
This was SVN commit r13951.
2013-10-06 04:49:38 +00:00
3624c591bd Fix compilation failure without PCH.
This was SVN commit r13946.
2013-10-05 16:22:51 +00:00
85253ca3c8 Let corpses cast shadows again. Refs #1771.
This was SVN commit r13945.
2013-10-05 16:22:46 +00:00
7901ed51d4 Implements skirmish maps, based on patch by sanderd17, fixes #1198. Skirmish maps are like scenarios, except the player can choose their civ during match setup. To create a skirmish map: place some skirmish entities for each player in Atlas (see templates/skirmish/* for examples), uncheck the player's civ in Atlas' player panel if desired, and save in the maps/skirmishes directory. The map will appear in match setup under the "Skirmish" match type.
Implements custom, VFS-based map load/save dialogs for Atlas (replaces
broken native file dialogs), fixes #631, #889.
Fixes map loading/saving to handle arbitrary subdirectories for better
organization.
Adds default settings to Atlas player panel, fixes #1872. Each setting
now has a checkbox to choose whether it should be saved with the map
(avoids writing lots of useless default data for each map).
Adds map preview setting to Atlas, refs #1745.
Cleans up and simplifies some duplicate code.
Fixes optional serialization performance test.

This was SVN commit r13938.
2013-10-04 02:29:16 +00:00
6a97bbd4c3 Fixes dropdowns opening with empty list, caused assertion failure about vector subscript range in MSVC debug build
This was SVN commit r13936.
2013-10-04 00:31:36 +00:00
e700937fd3 Fix non-SSE x86 builds
This was SVN commit r13934.
2013-10-03 18:22:10 +00:00
9f5635085e Fix #1833: animals spin around needlessly while roaming.
Patch from mimo.

This was SVN commit r13924.
2013-09-30 23:52:22 +00:00
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
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
fbee618ac8 Fixes memory leak in sound manager
This was SVN commit r13915.
2013-09-30 01:09:16 +00:00
238b7f84d8 Changes the ConfigDB to expose global functions to scripts instead of properties and custom objects.
Fixes #2172
Refs #1886

This was SVN commit r13914.
2013-09-29 18:56:50 +00:00
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
6b0a0e83eb Fix profiler malloc count in debug mode on Windows
wdbg_heap_NumberOfAllocations doesn't work without the wdbg_heap
leak detector, which is disabled since it's slow and broken.
Use a simple hook via _CrtSetAllocHook instead to count allocations.

This was SVN commit r13910.
2013-09-29 14:43:14 +00:00
eceae8be5c Fix crash when setting rally point
This was SVN commit r13908.
2013-09-29 14:02:47 +00:00
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
4e9570cd0f Fix unnecessary CShaderConditionalDefines copy, and inline some functions
This was SVN commit r13904.
2013-09-29 02:05:02 +00:00
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
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
28ce5f3458 It might be better to issue a LOGWARNING when Spatial queries are too large. Opening the crash window seems a bit too much for something that can be recovered from.
This was SVN commit r13898.
2013-09-24 21:50:46 +00:00
e370af8d4e Fix rally point rendering on saved games. Fixes #1762. Patch by mimo
This was SVN commit r13897.
2013-09-24 20:27:18 +00:00
cd51540725 This was SVN commit r13892. 2013-09-22 18:13:19 +00:00
2a613f8236 Removes mostly useless video memory detection, fixes another crash with Nvidia Optimus on Windows, fixes #2145, #2138
This was SVN commit r13891.
2013-09-22 18:07:33 +00:00