separate drawing

This commit is contained in:
NishiOwO 2025-04-08 05:50:15 +09:00
parent 8b42f1d5be
commit fcd4610f21
No known key found for this signature in database
GPG Key ID: 27EF69B208EB9343
6 changed files with 19 additions and 3 deletions

View File

@ -8,6 +8,7 @@
#include <ne_type/core.h>
/* NishBox */
#include <ne_type/draw.h>
/* Standard */
@ -15,6 +16,7 @@ void ne_engine_begin(void);
void ne_engine_end(void);
ne_engine_t* ne_engine_create(int nogui);
void ne_engine_loop(ne_engine_t* engine);
void ne_engine_set_draw(ne_engine_t* engine, void (*func)(ne_draw_t*));
void ne_engine_destroy(ne_engine_t* engine);
#endif

View File

@ -17,6 +17,7 @@ void ne_draw_frame(ne_draw_t* draw);
int ne_draw_step(ne_draw_t* draw);
void ne_draw_begin(void);
void ne_draw_end(void);
void ne_draw_set_draw(ne_draw_t* engine, void (*func)(ne_draw_t*));
void ne_draw_reshape(ne_draw_t* draw);
#endif

View File

@ -15,6 +15,8 @@
/* Standard */
NE_DECLARE_TYPE(draw, );
NE_DECLARE_TYPE(draw, {
ne_draw_platform_t* platform;
ne_draw_driver_t* driver;
@ -28,6 +30,7 @@ NE_DECLARE_TYPE(draw, {
ne_vector_t light;
ne_vector_t lookat;
ne_vector_t camera;
void (*draw)(ne_draw_t*);
});
#else
typedef void ne_draw_t;

View File

@ -63,6 +63,8 @@ ne_engine_t* ne_engine_create(int nogui) {
return engine;
}
void ne_engine_set_draw(ne_engine_t* engine, void (*func)(ne_draw_t*)) { ne_draw_set_draw(engine->draw, func); }
/**
* Writing this so I don't forget
*

View File

@ -57,11 +57,11 @@ void ne_draw_reshape(ne_draw_t* draw) { ne_draw_driver_reshape(draw); }
/* Runs every frame */
void ne_draw_frame(ne_draw_t* draw) {
ne_graphic_text(draw, 0, 0, 32, "test text", 255, 0, 0, 128);
ne_graphic_text(draw, 8, 8, 32, "test text", 0, 255, 0, 128);
ne_graphic_text(draw, 16, 16, 32, "test text", 0, 0, 255, 128);
if(draw->draw != NULL) draw->draw(draw);
}
void ne_draw_set_draw(ne_draw_t* draw, void (*func)(ne_draw_t*)) { draw->draw = func; }
int ne_draw_step(ne_draw_t* draw) {
int ret = ne_draw_platform_step(draw);
if(ret != 0) return ret;

View File

@ -1,5 +1,6 @@
/* NishBox */
#include <ne_core.h>
#include <ne_graphic.h>
/* External library */
@ -8,6 +9,12 @@
ne_engine_t* engine;
void draw_frame(ne_draw_t* draw) {
ne_graphic_text(draw, 0, 0, 32, "test text", 255, 0, 0, 128);
ne_graphic_text(draw, 8, 8, 32, "test text", 0, 255, 0, 128);
ne_graphic_text(draw, 16, 16, 32, "test text", 0, 0, 255, 128);
}
int main(int argc, char** argv) {
ne_engine_begin();
engine = ne_engine_create(0);
@ -16,6 +23,7 @@ int main(int argc, char** argv) {
ne_engine_end();
return 1;
}
ne_engine_set_draw(engine, draw_frame);
ne_engine_loop(engine);
ne_engine_destroy(engine);
ne_engine_end();