diff --git a/source/engine/font.c b/source/engine/font.c index 30b1406..b2f08fa 100755 --- a/source/engine/font.c +++ b/source/engine/font.c @@ -7,6 +7,7 @@ #include #include #include +#include #define STB_TRUETYPE_IMPLEMENTATION #define STBTT_STATIC @@ -25,6 +26,11 @@ void font_init() { shader = MakeShader("textvert.glsl", "textfrag.glsl"); } +void font_frame(struct mSDLWindow *w) { + shader_use(shader); + shader_setmat4(shader, "projection", w->projection); +} + struct sFont *MakeFont(const char *fontfile, int height) { struct sFont *newfont = calloc(1, sizeof(struct sFont)); @@ -69,6 +75,13 @@ struct sFont *MakeFont(const char *fontfile, int height) bitmap = stbtt_GetCodepointBitmap(&fontinfo, 0, stbtt_ScaleForPixelHeight(&fontinfo, newfont->height), c, &w, &h, 0, 0); + +for (int i = 0; i < h; ++i) { + for (int j = 0; j>5]); + putchar('\n'); + } + GLuint ftexture; glGenTextures(1, &ftexture); glBindTexture(GL_TEXTURE_2D, ftexture); @@ -180,7 +193,7 @@ void text_settype(struct sFont *mfont) void renderText(const char *text, mfloat_t pos[2], float scale, mfloat_t color[3], float lw) { - shader_use(shader); + //shader_use(shader); shader_setvec3(shader, "textColor", color); mfloat_t cursor[2] = { 0.f }; diff --git a/source/engine/font.h b/source/engine/font.h index 5daf7fd..dfa825c 100755 --- a/source/engine/font.h +++ b/source/engine/font.h @@ -19,7 +19,10 @@ struct sFont { struct Character Characters[127]; }; +struct mSDLWindow; + void font_init(); +void font_frame(struct mSDLWindow *w); struct sFont *MakeFont(const char *fontfile, int height); void sdrawCharacter(struct Character c, mfloat_t cursor[2], float scale, struct mShader *shader, float color[3]); diff --git a/source/engine/openglrender.c b/source/engine/openglrender.c index 678436c..0c016fd 100755 --- a/source/engine/openglrender.c +++ b/source/engine/openglrender.c @@ -102,12 +102,13 @@ void openglInit() spriteShader = MakeShader("spritevert.glsl", "spritefrag.glsl"); animSpriteShader = MakeShader("animspritevert.glsl", "animspritefrag.glsl"); + textShader = MakeShader("textvert.glsl", "textfrag.glsl"); debugdraw_init(); - //stdFont = MakeFont("notosans.ttf", 300); + stdFont = MakeFont("notosans.ttf", 300); - //text_settype(stdFont); + text_settype(stdFont); //glEnable(GL_STENCIL_TEST); glClearColor(editorClearColor[0], editorClearColor[1], @@ -130,7 +131,7 @@ void openglInit() glBindBuffer(GL_UNIFORM_BUFFER, 0); shader_setUBO(spriteShader, "Projection", 0); - /* shader_setUBO(textShader, "Projection", 0);*/ + shader_setUBO(textShader, "Projection", 0); shader_setUBO(animSpriteShader, "Projection", 0); @@ -147,28 +148,28 @@ void openglRender(struct mSDLWindow *window, struct mCamera *mcamera) glBindBuffer(GL_UNIFORM_BUFFER, projUBO); glBufferSubData(GL_UNIFORM_BUFFER, 0, 64, projection); - /* + glEnable(GL_CULL_FACE); glEnable(GL_DEPTH_TEST); glCullFace(GL_BACK); - */ + // Clear color and depth glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT); ////// TEXT && GUI - /* + glDepthFunc(GL_ALWAYS); - shader_use(textShader); - shader_setmat4(textShader, "projection", window->projection); + //shader_use(textShader); + //shader_setmat4(textShader, "projection", window->projection); - */ - /* - mfloat_t fontpos[2] = { 25.f, 25.f }; - mfloat_t fontcolor[3] = { 0.5f, 0.8f, 0.2f }; - renderText(stdFont, textShader, "Sample text", fontpos, 0.4f, fontcolor, -1.f); - */ + + + //mfloat_t fontpos[2] = { 25.f, 25.f }; + //mfloat_t fontcolor[3] = { 0.5f, 0.8f, 0.2f }; + //renderText("Sample text", fontpos, 0.4f, fontcolor, -1.f); + /* for (int i = 0; i < numSprites; i++) {