-
Notifications
You must be signed in to change notification settings - Fork 0
WIPs
The above is a snapshot of recent work. It predates recent major Linux work and probably some other things, so merges might be difficult.
This incorporates PRs #1-4 and has "STEVE CHANGE", "/STEVE CHANGE", and "<- STEVE CHANGE" comments denoting blocks or lines switched during "PR #5" development.
Some of this would stomp on, say, the Vulkan repo, if that were sync'd first.
platform/apple/Rtt_ApplePlatform.mm
also has the following swath:
// STEVE CHANGE removed end clear ops, frame ops, RendererDo
(void*)CoronaRendererInvalidate,
// STEVE CHANGE
(void*)CoronaRendererRegisterStateBlock,
(void*)CoronaRendererReadStateBlock,
(void*)CoronaRendererWriteStateBlock,
// /STEVE CHANGE
platform/windows/Corona.Simulator.Native.Library.Win32/Main.cpp
needs similar changes.
Some stuff in some shape or another (a few have been submitted but not pulled):
- Secondary image fill, to use composite effects with objects having a fixed image, such as images and sprites
- Converting polygons to tri-strips (extend to meshes)
- TODO: look into how aggressively data was being updated
- Writers, for text and particles (might also have implications for vertex compression)
- Some optimization with deformed rects when switching shader variant
- Non-image masks
- Wuffs support for image loading (seems to offer some speedup, at least on Windows)
- Similar for Android? (not sure where this is at)
- Tuning the GC, in particular when doing captures (ditto)
- Minor capture fixes
- Also for some image loading
- Also something related to how outlines respected byte order... forgot the finer details :D
- And the GL packing thing
- Some depth and stencil stuff to revive
- NaN-boxing is basically functional (original 32-bit patch + 64-bit version), bar some light userdata corner case testing
- Integer patch seems to be functional too (want to eventually integrate NaN-boxing and do something like light userdata approach, too)
- Custom build.settings callbacks seem to be functional and so far implemented on Windows→Windows builds
Idea-land:
-
Redesign shell transforms around a shell generator, that would be regression-tested to produce the current versions available now
Less finicky (order of operations; preprocessor assumptions; etc.) than current text substitution scheme. Vulkan would benefit as well, as it also needs to do this even with standard shell, due to transform from old GLSL.
-
Add support for mods and such with Armoda.
Armoda falls down on some songs—ones provided with https://github.com/binji/raw-wasm, for example—so probably not worth integrating... but now have a test case for a
CoronaGraphics
-ish audio thing -
WASM as a plugin backend... sort of ties into the native compilers feature
Quite robust test with aforemention raw-wasm and also quickjs-ng + WASM3 + libopenmpt
Exploring OVM from Onyx, too, e.g. via build.settings idea
-
Atlasing at run-time for acceptable textures... want to rebase texCoord rect; could use some hybrid approach: vertex userdata if free, else store index there and use swath of vertex uniforms... else? (e.g. since these are useful for other things)
-
Could, say, normal maps be repurposed to use vertex uniforms?
-
Some sort of "inline function" syntax for above-mentioned build.settings logic to allow embedding non-Lua 5.1 code
-
Explore polar stroking
-
Indexed meshes currently always must be on GPU, but should be possible to provide normally (obviously complicates batching, though)
-
For that matter, sub-mesh (or sub-texture) updates
-
More stuff