Replies: 1 comment
-
Another thing that will be changed, finally, is the events packages, everything will go into the base events package, because again, Ada's child package rules. |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Hi,
I want to get some conversation about what the future of SDLAda will be. What is happening now:
Future
I want the bindings to automatically generated, this currently cannot be done, but it needs to be. SDL revisions come out quite fast and it's nigh on impossible to keep up with when manually binding.
Maybe this will not be required if the SDL project does create machine readable API definitions, would could just create a generator for that and the rest of SDLAda (SDL2 for now) can be hand written?
But, given that a lot of these projects require binding to C libraries, it makes sense that these are generated. I covered issues related to binding generation on the ada-lang forum which received practically no interest, but is a major blocker.
This brings me onto making the base bindings a bit thinner, not C in Ada thin, but mapping more to the SDL header files. At the moment there is a
SDL.C_Pointers
package which provides a way for the entire library to see the pointer types and then there are various Ada imports all over to get access to functions to return these types.I don't like this. But I would want a way to have a controlled API if people wanted that at a higher level than the base SDLAda library. Having a separate tree parallel to the thinner bindings causes issues because of Ada's insane child package rules regarding depths!
An alternative way is to create thinner SDL2 bindings as a separate package, then SDLAda imports those. An SDL3 branch could provide thicker bindings over a thinner SDL3 bindings lib too. By keeping the names the same at the thinner binding level, the higher level could just sit on either, there are things that have been removed from SDL3, which is why we'd need a new branch for that.
Beta Was this translation helpful? Give feedback.
All reactions