finetune.md 2.4 KB

Finomhangolás

Alap

Az SMGUI alaprendszere hangolható néhány define-al az ui.h behúzása előtt.

UI_IMPLEMENTATION

WARN: Ezt mindig a modulok behúzása után szabad csak definiálni.

Akkor kell megadni, ha nemcsak a prototípusokra, de az implementációra is szükség van.

UI_NOAA

Anti-alias nélküli vonalat rajzol (kiiktatja a math.h és libm függőséget).

UI_MAXEVENTS

A várakozó események maximális száma. Ha nincs megadva, alapértelmezetten 16.

UI_MAXPOPUPS

A látható felugrók maximális száma. Ha nincs megadva, alapértelmezetten 16.

UI_BACKEND_INITIALIZED

Ha a kódból már meg lett hívva a glfwInit() / glfwTerminate(), SDL_Init() / SDL_Quit() stb., akkor használatos. Erre akkor van szükség, ha az SMGUI-val több ablakot is akarunk kezelni egyszerre.

UI_BACKEND_NOFLUSH

Ha nem akarod, hogy az ui_event() érvényesítse a képet, hanem kódból magad hívod a glfwSwapBuffers() / SDL_RenderPresent() / stb. függvényeket. Erre akkor van szükség, ha az UI réteg fölé még rajzolni szeretnénk.

GLFW3

Függetlenül a GLFW3 motor is finomhangolható define-okkal, a ui_glfw.h behúzása előtt.

Alapból ez a motor OpenGL 3.3 core profile-os shaderekkel fordul, és egyaránt támogatja a glad és glew bővítménybetöltést.

UI_GLFW_NOSHADER

A régi OpenGL API használata. Ez mindenhol működik és nem kell neki bővítménybetöltő se shader. A hátránya, hogy néhány videokártya meghajtóban bugos a visszafele kompatibilitás, emiatt nem lehet már saját shadert se használni, ha ez az opció engedélyezve lett.

UI_GLFW_GLES2

Használjon shadereket, de csak OpenGL ES 2.0-t (mobil platform verzió). Csak régi mobilok támogatásához, a mai modern eszközök általában gond nélkül kezelik az OpenGL 3.3 core-t.

UI_GLFW_CUSTOMHOOKS

Akkor használatos, ha magunk akarjuk a GLFW3 visszacsatolásokat megadni. Ekkor a visszacsatolásokból meg kell hívni a motor visszacsatolásait is. Például:

/* visszacsatolás megadása a szokásos módon */
glfwSetMouseButtonCallback(ui_getwindow(ctx), my_glfw_mouse);

/* a visszacsatolásod */
void my_glfw_mouse(GLFWwindow *window, int button, int action, int mods)
{
    /* tetszőlegesen értelmezhető */
        /* ... */
    /* a végén meg kell hívni az ui_glfw visszacsatolását is */
    ui_glfw_mouse(window, button, action, mods);
}