Commit Graph

678 Commits

Author SHA1 Message Date
Paul Chote
7a71f87d9f Introduce Renderable.BeforeRender().
WorldRenderer.Draw() has been slightly reorganized
to ensure that BeforeRender is called before any
drawing render state (e.g. scissor) has been set.
2013-06-15 19:16:08 +12:00
Paul Chote
18311be3ae Remove nearest-int position rounding from SpriteRenderer.
The things that want to be rounded already do this
much earlier (wr.ScreenPxPosition, etc).
2013-06-15 19:16:08 +12:00
Paul Chote
7d09e78655 Add WorldRgbaSpriteRenderer. 2013-06-15 19:16:08 +12:00
Paul Chote
7beef85a64 Use PaletteReferences everywhere. 2013-06-15 19:16:08 +12:00
Paul Chote
e5bcb88b0e Support sprites with an internal offset. 2013-06-15 19:16:08 +12:00
Paul Chote
9b576d3fdd Add a visualization layer for renderable geometry. 2013-06-15 19:16:08 +12:00
Paul Chote
4152f61999 Move MakeFloatMatrix to Graphics.Util. 2013-06-15 19:16:08 +12:00
Paul Chote
5f0ab1f62d Add functions for calculating voxel bounding boxes. 2013-06-15 19:16:08 +12:00
Paul Chote
37770a4e47 Extract voxel transform matrix into a function. 2013-06-15 19:16:08 +12:00
Paul Chote
013ad0617e Allow sheets to wrap an ITexture directly. 2013-06-15 19:16:07 +12:00
Paul Chote
0e1c12131a Generalize SheetBuilder overflow behavior. 2013-06-15 19:16:07 +12:00
Paul Chote
da8202a15e Clean up LineRenderer whitespace (no code changes). 2013-06-15 19:09:20 +12:00
Paul Chote
235042ea65 Add VoxelRenderable to integrate voxel drawing with render traits. 2013-06-04 20:40:24 +12:00
Paul Chote
82faf7e929 Allow mods and maps to define voxel sequences. 2013-06-04 20:40:24 +12:00
Paul Chote
a00696ec3b Add core voxel rendering code. 2013-06-04 20:40:24 +12:00
Paul Chote
f6264eeba4 Expose stencil buffer to render code.
The intention is to provide a layer for tracking shadow
rendering, so a single bit is sufficient for now.
2013-06-04 20:25:21 +12:00
Paul Chote
1b34c7d6b9 Expose depth buffer to render code. 2013-06-04 20:25:21 +12:00
Paul Chote
fb3e776cb9 Add matrix helpers to Graphics.Util. 2013-06-04 20:25:20 +12:00
Paul Chote
8123a383b6 Fixes #3334. 2013-06-01 12:53:31 +12:00
Paul Chote
bf3d337913 Support alternate sequence ordering for ts and d2k. Fixes #3333. 2013-05-28 22:37:07 +12:00
Paul Chote
a11e403084 Draw turrets, spinners, rotors at ZOffset +1 relative to the body. 2013-05-24 18:18:47 +12:00
Paul Chote
25dd8d9fa7 Fix aircraft shadow render order. 2013-05-23 21:25:11 +12:00
Paul Chote
e382dc9b71 Remove obsolete functions from WorldRenderer. 2013-05-17 18:12:28 +12:00
Paul Chote
e1290dca47 Round PxPosition to the nearest pixel. 2013-05-17 18:12:28 +12:00
Paul Chote
ca5f2c3785 Split Renderable into an IRenderable interface and SpriteRenderable implementation. 2013-05-17 18:12:28 +12:00
Paul Chote
9b7aaebcbc Rewrite RenderCargo -> WithCargo.
Now uses world coordinates and properly displays
cargo at all facings.
2013-05-17 18:12:27 +12:00
Paul Chote
462478afdf Convert building rendering to world coordinates. 2013-05-17 18:12:27 +12:00
Paul Chote
fe716e76a7 Convert AnimationWithOffset to world coords.
Animations (via Actor.CenterPosition) now
understand Altitude, so there is potential for
mis-positioned animations if any existing altitude
hacks were missed.
2013-05-17 18:12:27 +12:00
Paul Chote
fb17654ea0 Convert Renderable to World Coordinates internally. 2013-05-17 18:12:26 +12:00
Paul Chote
d878c96343 Change Renderable to take centered positions. 2013-05-17 18:12:26 +12:00
Paul Chote
d103a187f6 Make the guts of Renderable private. 2013-05-17 18:12:26 +12:00
Paul Chote
7719ad1f2d Move Renderable into its own file. 2013-05-17 18:12:26 +12:00
Matthias Mailänder
881fcf1191 added in-game SHP viewer with frame slider 2013-05-15 18:13:33 +02:00
Paul Chote
f5d59fab22 Fix #2106.
The current tilesets only use only ~3% of the
available sheet space, so a future patch may want
to look into decreasing the terrain sheet size to
save some GPU memory.
2013-05-15 20:36:30 +12:00
Paul Chote
4ebe547a05 Allow SheetBuilder to generate 1/2/4 channel sheets.
This makes the SpriteFont RBGA sprite hack explicit,
and adds a DualIndexed option to be used by the voxel
renderer.
2013-05-15 20:18:41 +12:00
Paul Chote
28d4df355d Tidy Sprite. 2013-05-15 20:18:41 +12:00
Paul Chote
891158ca44 Allow SheetBuilder to throw an exception on sheet overflow.
This removes unnecessary checks from TerrainRenderer
and will be used in the voxel renderer.
2013-05-15 20:18:41 +12:00
Paul Chote
c13c989fe8 Allow sheet contents to be exported to bitmap. 2013-05-15 19:24:19 +12:00
Paul Chote
7d543abb92 Always store Sheet data as bytes. 2013-05-15 19:24:19 +12:00
Paul Chote
6dd62d7806 Fix Animation formatting (no code changes). 2013-05-15 19:24:18 +12:00
Paul Chote
ccbfacec62 Tidy TerrainRenderer formatting (no code changes). 2013-05-15 19:24:18 +12:00
Matthias Mailänder
2d685ab07d added SHP(TS) support by @katzsmile 2013-05-05 19:19:16 +02:00
Paul Chote
d091789206 Remove sequence warnings for the stable release. Fixes #3142. 2013-05-04 23:20:28 +12:00
Matthias Mailänder
3649342317 be more verbose about missing sequences and files
as requested in #3039
2013-04-20 21:56:29 +02:00
Scott_NZ
2c4c7aa4c0 Fixes TerrainRenderer.Draw() causing a crash because of negative firstRow value 2013-04-19 19:09:29 +12:00
Chris Forbes
405975bd6e fix enemies showing on minimap under fog 2013-04-13 19:15:53 +12:00
Paul Chote
400ad49de0 Allow maps/mods to properly disable fog or shroud (or both). 2013-04-11 22:36:56 +12:00
Paul Chote
248e815d99 More shroud refactoring.
This introduces a hash on Shroud which ShroudRenderer
can observe, removing the need to explicitly twiddle
a dirty flag between objects.

Shroud disabling is now done via RenderPlayer, so
enabling the cheat or winning/losing will now give
vis equivalent to an observer.
2013-04-10 21:08:22 +12:00
Paul Chote
c428cad70c Refactor per-player shrouds & fix shellmap shroud. 2013-04-10 19:36:03 +12:00
Matthias Mailänder
acc8cd1e5e fixes #2885 forgot to enable the cursor palette before drawing
split HardwarePalette.Update into two functions, closes #2847
2013-04-06 08:44:32 +02:00