From 579bfa5a27aaab03410ec219c441d238263e5a19 Mon Sep 17 00:00:00 2001 From: Andreas Fankhauser hiddenalpha.ch Date: Sun, 23 Nov 2025 15:27:27 +0100 Subject: Add some experimental rendering stuff. --- include/qntan/Qntan.h | 69 +++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 67 insertions(+), 2 deletions(-) diff --git a/include/qntan/Qntan.h b/include/qntan/Qntan.h index 2a44cdf..1b28790 100644 --- a/include/qntan/Qntan.h +++ b/include/qntan/Qntan.h @@ -2,7 +2,6 @@ #define INCGUARD_aM91R0ljMWoqtn7F #if 0 - Qntan - A C module separations framework http://git.hiddenalpha.ch/qntan.git/tree/README.txt @@ -18,7 +17,6 @@ */ }; - #endif #include /* size_t */ @@ -83,6 +81,7 @@ struct Qntan_XmlDec_Mentor; struct Qntan_HttpClient; struct Qntan_HttpClient_Exchg; struct Qntan_HttpClient_Exchg_Opts; +struct Qntan_GfxRenderer; struct Qntan_JavaBytecodeParser; struct Qntan_JavaBytecodeParser_Mentor; struct Qntan_CamtAccount; @@ -1127,6 +1126,72 @@ struct Qntan_HttpClient { +#ifndef Qntan_GfxRenderer_setScissor +# define Qntan_GfxRenderer_setScissor(A, B, C, D, E) (*A)->setScissor(A, B, C, D, E) +#endif +#ifndef Qntan_GfxRenderer_triangleStrip2d +# define Qntan_GfxRenderer_triangleStrip2d(A, B, C) (*A)->triangleStrip2d(A, B, C) +#endif +#ifndef Qntan_GfxRenderer_triangleStrip2dOneColor +# define Qntan_GfxRenderer_triangleStrip2dOneColor(A, B, C, D) (*A)->triangleStrip2dOneColor(A, B, C, D) +#endif +#ifndef Qntan_GfxRenderer_circle2dOneColor +# define Qntan_GfxRenderer_circle2dOneColor(A, B, C, D, E, F) (*A)->circle2dOneColor(A, B, C, D, E, F) +#endif +#ifndef Qntan_GfxRenderer_lineStrip2dOneColor +# define Qntan_GfxRenderer_lineStrip2dOneColor(A, B, C, D, E) (*A)->lineStrip2dOneColor(A, B, C, D, E) +#endif + +struct Qntan_GfxRenderer_Vtx2d { + float x, y; +}; + +struct Qntan_GfxRenderer_Vtx2dColor { + float x, y; + uint32_t rgba8888; +}; + +struct Qntan_GfxRenderer_Mtx4d { + float m00, m01, m02, m03; + float m10, m11, m12, m13; + float m20, m21, m22, m23; + float m30, m31, m32, m33; +}; + +struct Qntan_GfxRenderer { + /* WARN: All around graphics rendering is heavily experimental! Make + * sure you're ready to handle all kind of changes here. + */ + void (*setScissor)( struct Garbage_Renderer**, int x, int y, int w, int h ); + /**/ + void (*triangleStrip2d)( struct Qntan_GfxRenderer**, + struct Qntan_GfxRenderer_Vtx2dColor const*vertices, int vertices_cnt ); + /**/ + void (*triangleStrip2dOneColor)( struct Qntan_GfxRenderer**, + struct Qntan_GfxRenderer_Vtx2d const*vertices, int vertices_cnt, uint32_t rgba8888 ); + /**/ + void (*circle2dOneColor)( struct Qntan_GfxRenderer**, + int x, int y, int w, int h, uint32_t colorRGBA8888 ); + /* @param x NOT center. + * @param y NOT center. + * @param w horizontal diameter. + * @param h vertical diameter. + */ + void (*lineStrip2dOneColor)( struct Qntan_GfxRenderer**, + struct Qntan_GfxRenderer_Vtx2d const*vertices, int vertices_cnt, + float lineWidth, uint32_t rgba8888 ); + /**/ +}; + + + + + + + + + + struct Qntan_JavaBytecodeParser { /**/ void (*write)( -- cgit v1.3.1