Immediate-Mode-UI / Immediate-Mode-UI/Nuklear

Compiling Examples with different Backends

Open
#544 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
C
Stars
11.4k
Forks
686
Avg merge
4d 1h
Merged PRs (30d)
3

Description

Hi. I am very new here.
And very interested on this low-resources gui concept.
While trying the demos, I made a unified Makefile that I am attaching here to be executed from Nuklear/demo directory. [Makefile.zip](https://github.com/Immediate-Mode-UI/Nuklear/files/10717785/Makefile.zip)

However, I couldn't figure out how to compile the examples with different backends.
The example folder contains another backend stb_image.h not present on the demo folder. And those c-files contains calls to a stbi_load function which is not present in other backends like the GDI ones.
Is it possible to try the same 'complex' examples with multiple backends?

It would be an interesting approach to compile a project with different backends without modifying the sources, probably through DEFINE passed to the compiler.
Is that possible or planned?

Other thing that called my attention was about the "Small codebase (~18kLOC)" and "(you can compile and use only what you need)". A very basic non-nuklear gdi example is ~100kb while the most basic example of nuklear is ~500kb. A heavier example, as those in the example folder, are about ~700kb.
Not complaining at all!
But I wonder if there is one step missing to "compile and use only what you need" or I should know that this is the bare minimum and the maximum is still unknown.

[gdi_basic.zip](https://github.com/Immediate-Mode-UI/Nuklear/files/10717872/gdi_basic.zip)
[nk_gdi.zip](https://github.com/Immediate-Mode-UI/Nuklear/files/10717875/nk_gdi.zip)

Many thanks in advance !

Contributor guide

Open the contributing guide

Research direction

Start in the Nuklear/demo directory with the attached Makefile.zip and compare the example sources that use stbi_load with the GDI backends. Trace how each backend is selected and whether compiler defines can support the same examples without source changes; done means a documented or working build path for the requested backend combinations.

Written by the indexing model from the issue text.

Assessment

Tech stack
c
Domain
build-system
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.