Emotion icon indicating copy to clipboard operation
Emotion copied to clipboard

Deprecating / Refactoring

Open Cryru opened this issue 4 years ago • 7 comments

  • Interlacing and non 8bit PNGs Supporting these PNG formats is bloat as interlacing PNGs are slower to load, and non-8 bit depth PNGs cause all readers to check for bit depth. Removing the ImageUtil function for remapping bit depth would also be good.
  • EmotionEvent Originally used for OnKey, which now has custom logic to track event propagation, this is no longer necessary and only causes random lambas around the codebase to have to return a boolean. These should be converted to C# events.
  • ~Speaking of OnKey, there's no need to allocate a bool array for each entry, some of them don't care if they get an up. The default should be to allocate the full key tracker, but system input functions, and ones like the one used in the ImGui plugin are just increasing memory usage by being there. Add a boolean to AddListener and branch. Don't include those without allocated trackers in the object pool.~

Cryru avatar Feb 16 '21 22:02 Cryru

  • YOffset is the same for all AtlasGlyph in a FontAtlas. Move the property there instead of storing it in the glyph. Anyone who requests its value currently also has a reference to the font, so the glyph doesn't have to hold one. Remove the "YBearing" property. Be careful not to break the tests.

Cryru avatar Mar 03 '21 21:03 Cryru

~TransformRenderable is confusing, and the model matrix is rarely used (only by classes such as RichText which overoptimize their drawing). The memory overhead in TileMap is not worth it. Along with removing this, the automatic matrix push in the RenderComposer should also go, as it breaks batches.~

Cryru avatar Mar 21 '21 22:03 Cryru

CrossPlatformPath and MakeStringPathSafe in the helpers file are no longer needed?

Cryru avatar Mar 27 '21 13:03 Cryru

~Main thread does nothing but sleep in Parallel.FastLoops essentially idling. Maybe a new task system is in order?~

Cryru avatar Mar 27 '21 18:03 Cryru

FlipX and FlipY arguments to RenderSprite should be grouped in a enum. Introduce rotation in 90 degree increments (90/180/270) both before and after flip. Add flag combining.

enum UVTransformation {
 Rotate90,
 FlipX,
 FlipY,
 Rotate90AfterFlip
}

Cryru avatar Aug 11 '21 21:08 Cryru

CoroutineManager and ITimer are flawed. Cant create alternate time incrementors and there's a lot of dead weight in that API

Cryru avatar Dec 09 '23 13:12 Cryru

BaseMap's world tree needs to be replaced with a grid for allocation free iteration and tags instead of world tree layers

Cryru avatar Dec 09 '23 13:12 Cryru