Commit Graph
28 Commits
Author SHA1 Message Date
Gleb Mazovetskiy 12de70550b Fix an OOB in CEL/CL2 outline rendering
This OOB happened when rendering a sprite so that it is exactly
off-screen (touching the border but not visible) on top/bottom
while also being only partly off-screen on the left or right.
2022-04-12 01:52:53 +02:00
Gleb Mazovetskiy 7fede6c4cb Clean up owned/unowned CelSprite ambiguity
Makes `CelSprite` unowned and adds a new `OwnedCelSprite` class for
owned sprites.

This clarifies ownership and makes the code cleaner in a number of
places.

Additionally, because the `CelSprite` class is now tiny (1 less
pointer), we can pass it by-value instead of by-reference, removing a
pointer indirection in the rendering functions.
2022-03-06 04:49:13 +01:00
qndel 9ba64ad08b TRN rewrite + bugfix (#4056)
* working new TRN system
* apply TRNs to all unique missiles
2022-02-20 14:28:51 +01:00
Anders Jenbo b6bdbcfc98 Stip stippled transparency 2021-12-21 12:55:30 +01:00
obligaron 6273f700fa Add some Graphic Settings to Settingsmenu (#3617) 2021-11-27 00:25:48 +01:00
qndel 5a35e0640b shorter & better MeasureSolidHorizontalBounds 2021-11-02 14:10:44 +01:00
Juliano Leal Goncalves bb2dfdfb73 🚚 Rename 'ItemStruct' to 'Item' 2021-08-30 13:40:08 +02:00
Anders Jenbo 2ca6e37c46 Clean up sub folders using clang-tidy/Android Studio 2021-07-08 03:30:25 -07:00
Anders Jenbo dce78dde62 Rename lighting globals 2021-07-08 02:01:14 -07:00
Gleb Mazovetskiy cb0dae8590 🚚 Rename CelOutputBuf to Surface and extract 2021-07-03 05:33:32 -07:00
qndel a1710ff51e pass item to CelDrawItem (#2265)
pass item to CelDrawItem
2021-06-29 18:09:54 +02:00
Anders Jenbo 8e07ef8fe5 Clang-tidy: misc-unused-parameters 2021-06-27 17:34:32 +02:00
Anders Jenbo af254601d6 ♻️ Apply clang-tidy to engine 2021-06-25 13:22:08 +02:00
Gleb Mazovetskiy 14218080b6 🚚 engine.h: Extract CelGetFrame and friends 2021-06-21 02:34:28 -07:00
Kalebe Alves 118efe8e6d Use Point/SDL_Rect for control functions coordinate system 2021-05-28 19:57:16 +02:00
Kalebe Alves 0461529176 Move byte from engine.h 2021-05-27 16:04:27 +02:00
qndel b1d74d2791 alt highlighting (#2060) 2021-05-25 23:47:29 +02:00
qndel 610d5319bd swap if in drawing inventory items (#1968) 2021-05-14 12:50:32 +02:00
qndel 89c40eaa7b inventory items rendering cleanup (#1938) 2021-05-14 12:46:16 +02:00
Gleb Mazovetskiy 8ac9047b4f 🧹 Clean up CEL outline clipping
A simpler structure based on the CL2 implementation.
2021-05-13 23:41:50 +02:00
Gleb Mazovetskiy 29a488738e 🔥 Mark core CL2 and CEL functions as inline hot 2021-05-13 02:22:38 +02:00
Gleb Mazovetskiy 64ad9aeacf 🎉 cl2_render.cpp: Clip the outline 2021-05-11 07:57:08 +02:00
Gleb Mazovetskiy 99dc016ec1 🧹 cel_render: Move internal functions to anon ns 2021-05-10 12:35:55 +02:00
Gleb Mazovetskiy ad18ecc21b 🎉 cel_render.cpp: Clip stippled transparency
Example FPS change: 1336 -> 1424
2021-05-09 05:31:41 +02:00
Gleb Mazovetskiy be7880c4db 🎉 cel_render.cpp: Clip outline
Clips `CelBlitOutlineTo` to the output buffer.

The templated implementation means that this compiles to many
case-specific functions with near-branchless inner loops.

Increases binary size by 92 KiB.
2021-05-09 05:31:41 +02:00
Anders Jenbo 68923c6c33 ✨ Generic game text render function
This should gradually replace all the direct rendering of game texts
throughout the code. The interface is made to closly mirror that of the
art fonts as that is what will eventually be used for rendering Unicode
fonts both in the menus and ingame.

fixup! ✨ Generic game text render function
2021-05-08 18:48:19 +02:00
Anders Jenbo bcbaeba2f0 📝 Correct file header 2021-05-08 18:48:19 +02:00
Gleb Mazovetskiy 0edfa3de66 🚚 Move CEL rendering to engine/render/cel_render.cpp 2021-05-07 00:16:40 +02:00