Initial thoughts (Project: 'gamp')

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Initial thoughts (Project: 'gamp')

Sven Gothel
Administrator
Goal is to condense some of JogAmp's experience to C++ support classes allowing
a similar workflow in the native space.

This will be a little toy project for me for a while on the side,
but discussion is of course very welcome.
No timeline given and slow progress expected if any at all ;-)

Besides my little napkin roadmap below,
I will pursue this work in a quick & dirty path forward
since I am not sure yet whether I will scrap and abandon it
or keep, use & maintain it. In the latter case, it shall be clean.

Initial working items are simply to resemble
the following items in C++ (C++20)
- dynamic library loading across platforms
- dynamic library symbol lookup and storage (e.g. for GL profile functions)
- GL profiles (for now using GlueGen, later direct xml, open for VK)
- XXDrawable abstraction and XXEventListener
  - keep it toolkit agnostic for GL or VK, ..
- Graph
- GraphUI
- Targets: Native embedded, desktop & webassembly

Yes, I have looked through SDL2, SDL3, SFML, Galogen, glad, GLFW, GLEW, glm, FLTK, ..
but .. well, for some reason it doesn't seem to cover the whole story 'out of the box'
nor enables me to have it behave and expose properties as desired (by myself).
Maybe I am just plain wrong or it becomes too much work and I will ditch this attempt, we will see.

gamp - Graphics Audio Multimedia Processing via C++

gamp /gămp/
noun
- A large baggy umbrella.
- A large umbrella; -- said to allude to Mrs. Gamp's umbrella, in Dickens's “Martin Chuzzlewit.”

often : one that is untidily or loosely tied up if you carry an umbrella use it tightly rolled and never as a gamp
— S. D. Barney
Reply | Threaded
Open this post in threaded view
|

Re: Initial thoughts (Project: 'gamp')

gouessej
Administrator
Hello

I understand your choice. Some libraries don't support all major operating systems, others work very well only with "old" versions of OpenGL, some others only work very well with recent versions of OpenGL. FLTK is an excellent challenger, it even has a Rust binding but as far as I know, it doesn't support Vulkan, am I missing something?
Julien Gouesse | Personal blog | Website
Reply | Threaded
Open this post in threaded view
|

Re: Initial thoughts (Project: 'gamp')

Sven Gothel
Administrator
In reply to this post by Sven Gothel
FYI ...

All general stuff like math etc accumulates in jaulib
https://jausoft.com/cgit/jaulib.git/about/

And the gamp (playground) here
https://jausoft.com/cgit/gamp.git/about/

Earlier gfxbox2 playground, my 1st Webassembly - here
https://jausoft.com/cgit/cs_class/gfxbox2.git/about/

...

For now, gamp will just reuse SDL2/emscripten windowing glue
to windowing toolkit, input and OpenGL.
The latter is just a WebGL javascript 'call up' for the WebAssembly target.
At least it works.

The proof of concept is hence done (single threaded).

Focus is on the math stuff, Graph/GraphUI etc - even FFMpeg seems to be possible.
Later we can dabble about the multi-threading/parallel stuff
if there is even an interest.

Couldn't find a good Java to C++ source compiler, so porting over
the font (typecast) and whole Graph math plus some basic shader toolkits
will be tedious (but doable).

Passing over native data (layout) from C++ to the GPU is much easier and natural,
so that is a good outcome.