|
|
@@ -1,30 +1,30 @@
|
|
|
___This library is NOT ready for use!___
|
|
|
|
|
|
-Karl2D is a WIP library for creating 2D games using the Odin Programming Language.
|
|
|
+Karl2D is a work-in-progress library for creating 2D games using the Odin Programming Language.
|
|
|
|
|
|
-The API is based on Raylib, but adapted to my tastes.
|
|
|
+The API is based on Raylib because I like that API. But the implementation is meant to have as few dependencies as possible (only `core` libs and rendering APIs in `vendor`). The API will not be identical to Raylib. I'll modify to fit Odin better etc.
|
|
|
|
|
|
-In its current state, Karl2D wraps Raylib. But in the long term the library will have its own implementation that only uses `core` libraries and rendering APIs from `vendor`.
|
|
|
+## What features of Raylib will not be included?
|
|
|
|
|
|
-Big upcoming tasks:
|
|
|
-* Port raylib examples to figure out API surface
|
|
|
-* Write a Windows + D3D11 backend (no more Raylib)
|
|
|
+* 3D
|
|
|
+* Some maths things that can be found in Odin's core libs
|
|
|
|
|
|
-## Why does it wrap Raylib?
|
|
|
+Might no be included:
|
|
|
+* Time management (use `core:time` instead)
|
|
|
|
|
|
-I know Raylib very well. I like it, but I would like to have something written in native Odin. Having a native library is great for debugging, among other reasons. There are a few things I'd like to change about Raylib as well. So this library is meant to solve all those things.
|
|
|
+## TODO
|
|
|
|
|
|
-However, since I like Raylib, using something similar to its API is a good starting point. The steps towards a native Odin library independent of Raylib are:
|
|
|
-- Wrap Raylib
|
|
|
-- Modify the API to my tastes, within what is possible while still wrapping Raylib
|
|
|
-- Write a new implementation that uses native OS windowing APIs and rendering APIs
|
|
|
-- At this point I have more control and can further refine the API
|
|
|
+Here follows my near-future TODO list
|
|
|
|
|
|
-## What features of Raylib will not be included?
|
|
|
-
|
|
|
-* 3D
|
|
|
-* Some maths things that can be found in Odin's core libs
|
|
|
+* Do proper checks of vertex count and dispatch rendering when full
|
|
|
+* Should we sort by depth?
|
|
|
+* Load textures and somehow bind to shader -- split draw calls on texture switch -- needs a start of a batch system.
|
|
|
|
|
|
-Audio support isn't planned at first, but may be added later. Until then you can use `vendor:miniaudio` or similar.
|
|
|
+## DONE
|
|
|
|
|
|
-I might skip the GetFrameTime / GetTime from Raylib and let the user use `core:time` instead.
|
|
|
+* Make 0, 0 be at top left (should vertex data be flipped, or is it a transformation thingy?)
|
|
|
+* Construct vertex buffer from k2.draw_blabla calls. Do we need index buffer? 🤷
|
|
|
+* Organize the d3d11 things neatly. It's just a hack right now!
|
|
|
+ * enable debug layers
|
|
|
+ * asserting on hresult and checking errors
|
|
|
+ * clean up on shutdown
|