Commit Graph

950 Commits

Author SHA1 Message Date
Paul Chote
6f5d035e79 Introduce IMouseBounds and split/rework mouse rectangles.
The render bounds for an actor now include the area covered
by bibs, shadows, and any other widgets. In many cases this
area is much larger than we really want to consider for
tooltips and mouse selection.

An optional Margin is added to Selectable to support cases
like infantry, where we want the mouse area of the actor
to be larger than the drawn selection box.
2017-12-11 19:45:07 +01:00
Paul Chote
29255c8e01 Add IModel.AggregateBounds and ModelAnimation.ScreenBounds.
The bounds define the smallest Rectangle that covers all
rotations of all frames within a model sequence.
2017-12-11 19:45:07 +01:00
Paul Chote
506b677527 Add ModelAnimation.IsVisible property. 2017-12-11 19:45:07 +01:00
Paul Chote
041431d966 Add ISpriteSequence.Bounds and Animation(WithOffset).ScreenBounds.
The bounds define the smallest Rectangle that covers all frames within a sequence.
2017-12-11 19:45:07 +01:00
RoosterDragon
c75a866f0d Lazily allocate sheet builder in ModelRenderer.
Avoid allocating the sheet builder each frame until it is needed. For mods that do not need to render models, this avoids allocating a large buffer and backing sheet as it will never render to the sheet. For mods that do render models, but don't need any this frame, this avoids allocating a new SheetBuilder that will not be used.
2017-12-11 01:44:21 +01:00
Paul Chote
9d2935935c Add a debug visualization for screen map rectangles. 2017-12-04 23:10:23 +01:00
reaperrr
6711af63eb Move SelectionBarsRenderable to Mods.Common 2017-11-21 01:00:09 +02:00
reaperrr
be290cfabd Split Actor.Bounds into RenderBounds and SelectableBounds
Additionally, internally renamed VisualBounds to SelectionOverlayBounds to avoid confusion with RenderBounds.

This step was necessary to prevent actors with selectable area smaller than their graphics to be removed too early from ScreenMap even though part of the graphics should still be visible.
RA cruisers were a prime example, but to a lesser extent several other actors were affected as well.

This separation also serves as preparation to determine the final RenderBounds from multiple source bounds later, to fix the remaining ScreenMap issues (building 'bibs', aircraft shadows).
2017-11-21 01:00:09 +02:00
RoosterDragon
a71a5cc71d Reduce the size of the sheets created for fonts.
- A 512x512 sheet is about half full after precaching and some usage, but uses 16x less memory than the default 2048x2048 sheet. This saving occurs twice as we maintain a managed buffer for this sheet.
- Only precache smaller fonts, as the larger fonts are less used and take up more space than is worthwhile.
- Only precache in white, as red is largely unused.
2017-11-19 12:40:04 +00:00
Andrii Yukhymchak
636a9a74a1 Font Crash gracious fallback 2017-11-01 18:50:15 +01:00
Paul Chote
69b4b541d2 Fix mutable use of float2 in SpriteFont. 2017-10-17 15:46:07 +02:00
Matthias Mailänder
1aebf9857c Add support for only rendering effects inside screen bounds 2017-09-17 12:52:04 +01:00
rob-v
d4e9e0e069 Add Visualization chat commands 2017-07-23 15:08:24 +02:00
rob-v
1b3422db2d Fix flickering tooltip 2017-06-24 11:52:27 +01:00
Paul Chote
2683b2507e Fix remaining voxel references in Game. 2017-06-14 18:56:06 +02:00
Paul Chote
34810756c2 Move Voxel code to Mods.Cnc. 2017-06-14 18:56:06 +02:00
Paul Chote
dc4c3fd546 Rename VoxelRenderer to ModelRenderer. 2017-06-14 18:56:06 +02:00
Paul Chote
4f42778d26 Rename VoxelAnimation to ModelAnimation. 2017-06-14 18:56:06 +02:00
Paul Chote
e1cd00c1dd Add backend plumbing for model loaders. 2017-06-14 18:56:06 +02:00
rob-v
b2e6a0484b Fix Selecting a map resets player color 2017-05-14 14:00:45 +01:00
Paul Chote
cdf2df58a0 Define RectangularIsometric world coordinate scale along the cell axis. 2017-05-07 13:45:30 +01:00
Paul Chote
f6b65c98e4 Fix PBOG voxel rendering. 2017-02-07 10:05:06 +00:00
Paul Chote
956ea5197b Fix BGRA channel count. 2017-02-04 17:05:00 +00:00
Paul Chote
5e7c816257 Add support for font scaling. 2017-01-21 10:59:59 +00:00
Paul Chote
6599aeb035 Add support for retina displays on OSX. 2017-01-21 10:59:59 +00:00
Taryn Hill
43317e0f5d Update copyright notice year to 2017 2016-12-31 23:46:13 -06:00
Paul Chote
a16344d347 Remove "Show Shellmap" setting. 2016-12-23 11:34:23 +00:00
Paul Chote
a266dc6639 Fix shroud rendering outside the map cordon. 2016-11-19 18:10:12 +00:00
Paul Chote
4db93f70c7 Add a cell sanity check to TerrainSpriteLayer. 2016-11-05 17:44:02 +00:00
Oliver Brakmann
65b919a7ae Merge pull request #12062 from abc013/VoxelShadows
Added a flag ShowShadow in WithVoxelBarrel, WithVoxelBody, …
2016-09-30 16:04:30 +02:00
RoosterDragon
2ffea5db54 Change Game.RunTime to a long to prevent overflow. 2016-09-20 19:06:10 +01:00
abc013
b9d1f373fe Added a flag ShowShadow in WithVoxelBarrel, WithVoxelBody, WithVoxelTurret, WithVoxelUnloadBody and WithVoxelWalkerBody 2016-09-20 13:34:05 +02:00
Oliver Brakmann
1059d5b88d Add a Shadow option to LabelWidget and ButtonWidget 2016-09-02 20:58:46 +02:00
Oliver Brakmann
8ad18ad161 Rewrite color inversal in a reusable way 2016-09-02 20:58:46 +02:00
Paul Chote
3082c61e75 Add depth buffer support to tactical overlays. 2016-08-27 15:43:20 +01:00
Paul Chote
c092c93401 Add depth buffer support to debug overlays. 2016-08-27 15:43:20 +01:00
Paul Chote
50da18cd22 Add depth buffer support to RgbaColorRenderer. 2016-08-27 15:43:20 +01:00
Oliver Brakmann
b3c4ecd7c5 Merge pull request #11881 from reaperrr/always-visible-bar
Allow keeping empty selection bars visible
2016-08-26 14:56:29 +02:00
reaperrr
39034b0de9 Allow keeping empty selection bars visible 2016-08-25 20:40:56 +02:00
Paul Chote
d2f5fe7380 Draw order generator renderables above the shroud. 2016-08-22 20:27:59 +01:00
Paul Chote
69b358ec7b Add IEffectAboveShroud for effects that draw above the shroud. 2016-08-22 20:27:58 +01:00
Paul Chote
ed349f9086 Remove health bar rendering duplication. 2016-08-22 20:27:58 +01:00
Paul Chote
6354686b58 Introduce IRenderAboveShroud interface. 2016-08-22 17:45:25 +01:00
Paul Chote
11805bb567 Rename and tweak post-render interfaces. 2016-08-22 17:40:05 +01:00
Paul Chote
f0306e7cc2 Render voxels with an approximately-correct z-offset. 2016-08-21 12:43:16 +01:00
Paul Chote
860e92a2a6 Rename IGraphicsDevice.cs to PlatformInterfaces.cs. 2016-08-06 19:53:50 +01:00
Paul Chote
9437a86e7e Remove legacy sound code and simplify platform init. 2016-08-06 19:53:50 +01:00
Paul Chote
0371727596 Allow sequences to define depth offsets via sprites. 2016-07-13 22:22:13 +01:00
Paul Chote
983abee1ed Support tracking multiple sprites in SpriteCache. 2016-07-13 21:03:31 +01:00
Paul Chote
37c5e9e0b0 Fix incorrect secondary data channel in FastCreateQuad. 2016-07-13 21:03:30 +01:00