Commit Graph

3813 Commits

Author SHA1 Message Date
RoosterDragon
c2b7d9ca5b Release sheet buffers in SequenceProvider and MapCache.
The buffers in SequenceProvider can be freed if Preload is called, since we know everything is loaded. A SequenceProvider is created for each TileSet is use so this saves memory for however many tilesets had been used in the game. This will be at least one for the shellmap, and often more.

The MapCache loading thread is kept alive for 5 seconds after it last generated a map (in anticipation of more requests). Once this time expires the thread is allowed to die, as it is unlikely there will be more requests in the short term. At this time it is ideal to force the changes to be committed to the texture so we can release the buffer. As well as marking the buffer for release, we must access the texture to force the changes stored in the buffer to be written to the texture, after which the buffer can be reclaimed.

Additionally, when starting the MapCache loading thread we must ensure the buffer is created from the main thread since it may query the texture object which has thread affinity. After that the buffer may be modified freely on the loading thread until released.
2014-11-29 12:04:51 +00:00
RoosterDragon
a6f5a21ed4 Made Sheet.Texture into Sheet.GetTexture() since we will want to call it for side-effects.
Do the same for Sheet.Data since it has the side effect of generating a buffer.
2014-11-29 12:04:50 +00:00
RoosterDragon
ff16690b86 Lazily generate buffer in Sheet.
The managed byte buffer is created on demand, meaning a newly allocated sheet will not waste memory holding onto the buffer until some changes are actually required to be written. This avoids a newly allocated sheet wasting memory on buffers that do not differ from their backing texture.
2014-11-29 12:04:00 +00:00
Matthijs Benschop
2d380c64bd Implementation of the automated D2k Carryall
Closes #2246
2014-11-29 12:17:11 +01:00
Paul Chote
da4599f621 Merge pull request #6638 from DeadlySurprise/tsVqa
Tiberian Sun .vqa support
2014-11-29 22:01:28 +13:00
atlimit8
bbd54cb32f Added IDisabledTrait & rewrote upgrade code using a level-based approach.
Upgradeable traits are notified whenever an upgrade of their declared types are granted or revoked.  The traits maintain their own internal level counter, which is then used to enable or disable the trait functionality.  A trait can register for multiple upgrade types which then all affect the internal level counter.

	IDisabledTrait for identifying (and filtering) disabled traits
	UpgradableTrait provides an abstract base for traits to support upgrade levels
	Added IDisabledTrait support to GlobalButtonOrderGenerator

	Includes rework by pchote with alterations.
2014-11-26 05:45:26 -06:00
Matthias Mailänder
f263579158 Merge pull request #6934 from abcdefg30/survival01
Ported Survival01 to Lua
2014-11-23 15:17:42 +01:00
Matthias Mailänder
7ad2a57517 Merge pull request #6927 from huwpascoe/actor-fixup
Actor properties consistency improved
2014-11-23 14:53:33 +01:00
Matthias Mailänder
b52dbe6c07 Merge pull request #6988 from RoosterDragon/enum-memory
Reduce enum memory
2014-11-23 14:48:20 +01:00
abcdefg30
e29adf5f4f Added proximity triggers 2014-11-23 13:31:39 +01:00
huwpascoe
d313317cf5 Cleaned up the server browser 2014-11-22 21:55:55 +00:00
RoosterDragon
35da7d8a6e Make the underlying types of TextureChannel and BlendMode enums a byte to save memory. 2014-11-22 18:12:46 +00:00
huwpascoe
a660bb95b5 Actor properties consistency improved 2014-11-21 02:44:05 +00:00
DeadlySurprise
c504383d92 Changed aspect ratio implementation 2014-11-18 22:35:34 +01:00
DeadlySurprise
cdb05537f3 Added tiberian sun vqa file support 2014-11-18 22:35:33 +01:00
DeadlySurprise
b7e3dfc665 Fixed vqa crashes 2014-11-18 18:42:38 +01:00
Oliver Brakmann
4e3f565354 Fix broken orders when actors are selected.
Fixes an oversight in #6949.
2014-11-15 21:00:52 +01:00
obrakmann
2c3b812b26 Merge pull request #6949 from pchote/retire-classic-mouse
Retire classic mouse orders
2014-11-15 19:38:32 +01:00
Paul Chote
f5c09121ad Remove buggy classic mouse orders. Closes #3153. 2014-11-15 09:40:25 +13:00
Paul Chote
563efd678a Revert "DevEnableTech now displays from all factions"
This reverts commit 5d5f302d07.
2014-11-15 09:20:04 +13:00
obrakmann
22c2dc56fe Merge pull request #6931 from Happy0/mono310_workaround
Workarounds for a bug in certain versions of Mono (3.10 and certain versions of 3.8) which stops OpenRA building
2014-11-12 20:45:20 +01:00
Gordon Martin
04cbea3792 Desugaring a couple of ternary expressions which prevented OpenRA building on Mono 3.10 and certain versions of the 3.8 series due to a bug in Mono: https://bugzilla.xamarin.com/show_bug.cgi?id=23319 2014-11-11 21:43:33 +00:00
Chris Forbes
551000104d Merge pull request #6905 from LipkeGu/Dont_query_traits_on_dead_units
AnyUnitsAt: Ignore Units which are Destroyed
2014-11-12 08:06:58 +13:00
Guido L.
ae4ee0926a AnyUnitsAt: Ignore destroyed Units 2014-11-09 03:15:33 +01:00
obrakmann
93bde9f511 Merge pull request #6900 from pchote/fix-gameplay-skipping
Force at least one render per tick during regular gameplay.
2014-11-08 22:43:36 +01:00
Paul Chote
118275b376 Add terrain geometry visualisation. 2014-11-07 19:18:34 +13:00
Paul Chote
18f65552a1 Account for terrain height in Viewport. 2014-11-07 19:14:02 +13:00
Paul Chote
55d9e71ff3 Force at least one render per tick during regular gameplay.
Partially reverts #5850, as this feature is a serious usability regression when controlling units. Fixes #6867.
2014-11-07 18:58:56 +13:00
Paul Chote
60420340fb Add height map support. 2014-11-07 18:18:41 +13:00
obrakmann
603d700382 Merge pull request #6876 from Mailaender/render-perflog
Measure long TickRender in perf.log
2014-11-06 22:05:49 +01:00
Paul Chote
c66c72dc71 Merge pull request #6888 from obrakmann/fix6887_crash_dialog_on_restart
Prevent crash dialog from popping up when the game restarts
2014-11-07 08:15:45 +13:00
Matthias Mailänder
ac82e3079a Merge pull request #6710 from huwpascoe/depends
Fixes #3160
Fixes #3568
Fixes #4894
Closes #6701
2014-11-06 10:48:17 +01:00
Paul Chote
f0eee47e68 Introduce TerrainTemplatePreviewWidget. 2014-11-05 09:39:55 +13:00
Paul Chote
63f5fc8613 Work around the undesired R8 terrain sprite offsets. 2014-11-05 09:39:55 +13:00
Paul Chote
aab9ad5ac0 Load tmp(ts) ExtraData for cliffs etc. 2014-11-05 09:39:55 +13:00
Paul Chote
c3b6f9bef6 Rename TileTemplate -> TerrainTemplateInfo. 2014-11-05 09:39:55 +13:00
Paul Chote
ab2bc789ce TileSet cleanups. 2014-11-05 09:39:54 +13:00
Paul Chote
7d11649fab Add support for per-tile minimap color and height/ramp type. 2014-11-05 09:39:54 +13:00
Oliver Brakmann
64506b856a Prevent crash dialog from popping up when the game restarts
Fixes #6887
2014-11-04 21:35:56 +01:00
huwpascoe
dfc6ebd3ba Introduced NUnit and some tests. 2014-11-02 20:18:04 +00:00
obrakmann
19c1f4ca99 Merge pull request #6877 from Mailaender/spritefont-perf
Measure SpriteFont in perf.log
2014-11-02 18:18:53 +01:00
Matthias Mailänder
fb0d5036da beautify comment 2014-11-01 22:16:03 +01:00
Matthias Mailänder
b28615c2f6 StyleCop clean Order 2014-11-01 21:50:53 +01:00
Matthias Mailänder
a26a9cc3a2 StyleCop clean GenericSelectTarget 2014-11-01 21:48:09 +01:00
Matthias Mailänder
0a06ae1d76 avoid unneccessary spaces 2014-11-01 21:48:09 +01:00
Matthias Mailänder
3f75ff0e00 StyleCop clean Unitorders 2014-11-01 21:48:09 +01:00
Matthias Mailänder
8e667304aa StyleCop clean SyncReport 2014-11-01 21:48:09 +01:00
Matthias Mailänder
7decbdeae0 StyleCop clean Session 2014-11-01 21:48:09 +01:00
Matthias Mailänder
a4b6ddc836 StyleCop clean ReplayRecorderConnection 2014-11-01 21:48:09 +01:00
Matthias Mailänder
6a5d304f07 StyleCop clean FrameData 2014-11-01 21:46:19 +01:00