From 938e2434e4ff87b92def462af94756d2e616de94 Mon Sep 17 00:00:00 2001 From: Alessandro Mauri Date: Thu, 26 Jan 2023 18:21:19 +0100 Subject: [PATCH] font trasparente e resize della finestra --- opengl-ren/charmap.ff | Bin 65552 -> 65552 bytes opengl-ren/charmap.png | Bin 1026 -> 862 bytes opengl-ren/main.c | 31 ++++++++++++++++++++++--------- 3 files changed, 22 insertions(+), 9 deletions(-) diff --git a/opengl-ren/charmap.ff b/opengl-ren/charmap.ff index 711c202a8b3a16d443200dad60cddadc86412c12..f3c0c543f74565f61cafd7c727f63ade60ee14e0 100644 GIT binary patch literal 65552 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 Sdtmm!?19+>vj^U75BvoRPsJDj diff --git a/opengl-ren/charmap.png b/opengl-ren/charmap.png index 017a3e70a229c89093f7f1bb5f6452937e05077f..4bfad2dcb93e68268a577aa99227e27e76af582d 100644 GIT binary patch delta 789 zcmZqTxW_g@B9M^*2!5?~x&)*Yl0AZa85pY67#JE_fTBR5h8GMBr3MTPuM!v-tY$DU zh!@P+6=(yLU@8gn3ua&_n|#&+#7pvacVS?>+abOM%cYC@0S1nd;kBJ5{6<`zS-ru z$3iMIIGAtQv-PaEukUAEQP;ZQ)9f`350Y7~ZDwX!GS@)h+|eCko2NhXN?jD*yNLZj zxgbO3EPe)C0ghaeC7$<~{T3!TCUb2MU;O*o^Y+^FTfDc4mpP`#>u9KmH*Ioy#j|GB zmJVgcTf*N0UrF3J+#Q(oo5Ao)*!IH`7Q&5X8XezS>9nO2Fe!OY6k9HQZ-YHm7Eg9hA&lFZ!H m;*!MN0=OPUkS%6b#s*e~P)+Zi`3e9vF?hQAxvXA(9F>D`?!kzJYz1Wtioo!^h(LPuEa=7x? z8_Eq_(R26aDMG(~wANZ{_+zKetu;j$a8x_+CppnpQ)yNMWUGOS-RaW369^=C@Mm(EZb9wbf6o{klvyu(ra^Hl^Li3D5a zKgOg?<#G0R@{weEctHXz%cTBG#j&TlIYZ4KcxZ|)|W5P&$Uw_I-pY9a9u5)~!TeFG=f6>)* zxd-@s;?Am2_*864kd@LSe%r;JT;+Cii~^Ur>uO>fpvOjOmdY6mnA^OO3gGuGyDu@A z@-W(nGbvNDG2Oqjra+OC-Uod4GM(Bkiy0eFWp^~@dfiPYz4*CPw^jlaWp`8&4kz7? z9nB*A3xAg=-7Q3lT<(gSsepCcT*I*|j0La?NQshr!Qgo(5}fs=f`rjg;bDhQjUW## zB339Q`s>39%pD?gBA)IXpd4A|1}OL0C6ev<{EGb!K(APsdeRTFd_7Oz4fSv?sq6z1 zt7#ARRifM}V-^uZXj)IPqxk8S)n6}fk*K@lM@W{*OduL4`u0P$(1%g+ifF eC>azApMoD)hUvf5Js~Rq0000 #include #define _POSIX_C_SOURCE 200809l @@ -113,7 +114,7 @@ int vstack_push_quad_c(int x, int y, int w, int h, vec4 color) // x1,y1 x2,y2 int hw = w_width(ren.w)/2; - int hh = w_width(ren.w)/2; + int hh = w_height(ren.w)/2; float x1, x2, x3, x4; float y1, y2, y3, y4; @@ -152,7 +153,7 @@ int vstack_push_quad_t(int x, int y, int w, int h, int u, int v) // x1,y1 x2,y2 int hw = w_width(ren.w)/2; - int hh = w_width(ren.w)/2; + int hh = w_height(ren.w)/2; float x1, x2, x3, x4; float y1, y2, y3, y4; @@ -343,6 +344,9 @@ void ren_initshaders() void ren_drawvertbuffer() { glBindBuffer(GL_ARRAY_BUFFER, ren.gl_vertbuffer); + // upload vertex data + glBufferData(GL_ARRAY_BUFFER, vstack.idx*sizeof(struct vertex), vstack.v, GL_DYNAMIC_DRAW); + // draw vertex data glDrawArrays(GL_TRIANGLES, 0, vstack.idx); glBindBuffer(GL_ARRAY_BUFFER, 0); } @@ -437,13 +441,11 @@ int main (void) import_font("./charmap.ff"); vec4 magenta = {.r=1.0, .g=0.0, .b=1.0, .a=1.0}; - vstack_push_quad_c(0, 0, 100, 100, magenta); - vstack_push_quad_c(200, 0, 10, 10, magenta); - vstack_push_quad_c(10, 150, 100, 100, magenta); - push_text(250, 250, "ò Ciao Victoria <3"); ren_initvertbuffer(); + glClearColor(0.3f, 0.3f, 0.3f, 0.f); + // event loop and drawing SDL_Event ev = {0}; int running = 1; @@ -451,22 +453,33 @@ int main (void) SDL_WaitEvent(&ev); switch (ev.type) { case SDL_QUIT: running = 0; break; + case SDL_WINDOWEVENT: + glClear(GL_COLOR_BUFFER_BIT); + if(ev.window.event == SDL_WINDOWEVENT_SIZE_CHANGED) { + glViewport(0, 0, w_width(ren.w), w_height(ren.w)); + glScissor(0, 0, w_width(ren.w), w_height(ren.w)); + } + break; default: break; } - glViewport(0, 0, w_width(ren.w), w_height(ren.w)); - glClearColor(0.f, 0.f, 0.f, 0.f); - glClear(GL_COLOR_BUFFER_BIT); + vstack_push_quad_c(0, 0, 100, 100, magenta); + vstack_push_quad_c(200, 0, 10, 10, magenta); + vstack_push_quad_c(10, 150, 100, 100, magenta); + push_text(250, 250, "ò Ciao Victoria <3"); ren_drawvertbuffer(); SDL_GL_SwapWindow(ren.w); + vstack_clear(); + } while(running); glUseProgram(0); glDisableVertexAttribArray(vertindex); glDisableVertexAttribArray(colindex); + glDeleteTextures(1, &ren.font_texture); SDL_GL_DeleteContext(ren.gl); SDL_DestroyWindow(ren.w); SDL_Quit();