From eec2f988124e3eaeb7647d6929ddf1dacacb77e8 Mon Sep 17 00:00:00 2001 From: Hoguchi-live Date: Sun, 15 Jan 2023 15:11:31 +0100 Subject: [PATCH] Moved params_fbo from main to renderer --- .../clangd/index/main.c.4CB5CE34A69A03F5.idx | Bin 3398 -> 3290 bytes .../clangd/index/main.h.5E55335D654F222C.idx | Bin 2494 -> 2458 bytes .gitignore | 8 ++-- memchk.sh | 1 + src/gfx/renderer.c | 13 ++++-- src/gfx/renderer.h | 2 + src/main.c | 44 +++++++----------- src/main.h | 10 ++-- 8 files changed, 41 insertions(+), 37 deletions(-) create mode 100755 memchk.sh diff --git a/.cache/clangd/index/main.c.4CB5CE34A69A03F5.idx b/.cache/clangd/index/main.c.4CB5CE34A69A03F5.idx index 24bef8dfeeaad0db833996c85c7ab5a1a29a5d0f..db4fde5ddc0042ccf31ff4f739a1b37a97be1e10 100644 GIT binary patch literal 3290 zcmY*b30Mp zXcZQ!s0&?BiXio<;L*ypXlp^#2d|Yw1*sKQ?HAmCaOZiFXTEp7KE5K=>wV#|!RU19$lad4)~gx()~>v35q8dBJd3{9`*c9Y8t7Nm2d;XyfAHSh z4oyYlN)Lx)vZ!UNbI$&|V({jjp*I_k?mQ=Vf8N#XpEB%mWODb-d4bW%{V%7zwbq3U zKl@<+ovz+MP78Ii>wWmVDNqSE6#P ztMpGPIK>V$y}7e`S9yn^wNo^l%e($B)<0IM_f~K1IV_r-KKGAyS&uU}`@7!{9G7|Q zAAd4)Xx{n2wC3{`ZNGl&meiKff7-9xCgK;1L$jBd<1<2qDZ^1}O5 z7sXflr-ro*vdh!Ucl*xQH$>0;A)_>VAT6#wsi@`5rUUWacvX$NlgXh|#qN=dm$8Pc zb8dI7-AE8)}*?8e$L9;sROj?A==}4-P_uxwb{NqsJOu2d;Qftt4xPL z&d0vfN!P4aZ|}{>UUKN!^Tp+Y!tD30b`#8lXTNjw39$a_%2@}JJ6{x^(6cRe1&m+w zVP3&eT@k^2GiB?}`F81#D#Oe#eMoIsaO2*k&DHy2);apUvL`lY39;05Ny~8)40G^& za!94%DF|#bhLM4^K!!Mo7R109G@8g&Xd*UoDSszgnm4qZz#PEAj%H_0js(rjpg|Ak{0 z@}2W}>xCQwQ^4Z|v<2qkU|O)bvHqv{-wbOv%9-gM1SSUu2~ENkt7&R3#u#trGFo7y zL$*aeQkzI%Q@~*v0(=i4eH<1cpi79a_ zQk4u0!*A`*m6f(zm=L5IS6d>AG(msb=6V$lFdyf$ksvhD#QMHt6%tE`arI2naUS)o|lt=FGcy-}ZrScy#Hf%J25;x=%icbzlA zM^hr*(f*qfB+s5FM0A;>t$^w}9333YNSUgIl#aNg6>{QlXj=XF;O%ob#EN(%@&-%7 zgU$MM5u~fDt8&az$Eg#L#lJ8&A~x>nWyq@zQ^z8B(ktJE`>Q;r0wH9KrgVh|Eneg{2{P$aIyEYQ7H`J*zjHv4Oq|I?t;QTZD2S?ZMWK0`vTg`6 zNpUF$ahjffq~^DW`35?43N9p2V$j&ykvC?kL@FubM3CXiaEc1_jHP}e+INDCWJPkv ztSC{Gbj(VyOrShfmRAp-FHZjeeEjMD7N{3hIgK`j>$Xn-I2wr!Th{V;M(} zqpYB2W!Q#-Di(xzIM!J#Ea=_-g)wtPo{bOmK_&e}Pk!Jjx&C)je2s@ySxhtr8+mkjY9-4I&7!j-s9|EDaWTGacF?lSZzYfkGCC#<@8KMW~@O)lOohN@q$73G&sciuypeVAnpxkb;pak#)$+B}QjUlM z^DybpGJy3wy$EeaNzIJAfgL{@0G8Ry;4Sj$s@Rjeq<7}8MgpN;p$ky%<0iYjl7}3U`iwF`@u)PuNM5C1+kG6A{|jBlmlXUE<7cYpE>$wM6tC`g3dJG@vMPZ z4$iSbL+7$IR*~5-_!eM=y@C?;$C)!DHXmA+4=rOn)~M30Cey25GdkkoP=vaMx}(C- zoQm+NW0t|y;EqCms=Ql&#b6l^1#~i<969||Tc)^Iw>JggP*$iI!L9Rpdv*s{Uj;b9 zF@btNqP8<-j=s#%nqVJrEeFMREIi${uyxBGh}Ga4>SNVg=8PU7$>W0pZ;a6vjf*z%&Hb=yZDpeduvtjB07=nBeutZFz@HlwW;Xv*nw zYAsJbw#@1LX8js~RdQ7TYU;lIn>NMH%Jm1Bi*wnC{oAJd?U^38>9DuPFBarId_zz= zEKwLGh{Pia#A`&!*>qyC(-*vrsv>Xn*w}NPJT+Q9bM#vZ?GLI5bKUp_g48v^UmzSSA|GgQ8#R0H*=a!9$IUO=q*|J;zs%!tARr==op~O1o!A;@i z?FF;SH7~t#`#1GcuT;2LK07q@;Q{WYJ+UaE_ww@AJarZ~ch!^^TC*>kKQFvz)b4#7 z^(tal%dgLuZM<3B?f(4a_cb8x{H5jdvp98`c%u38ec)-&kG{;9nY#0EsK*r^o>c;8kn?Oicj`PN*epOfS4_|JZ>Pj~P&$;ve0HBoli-=m@ef9?1~TD57;$Lh(| zZcgIhbk}Qfmr4hNHah*W-FLO?mMgCx*cP4nm@%Z7_hXmfQRRcR^kado7i$?qtNf?0 zZ7EH#@qbqGM!0cbfwnB@r{fCwqQ12jdoNUdyzcq@j?q|RUc|nr@pRDtd3aN;{%gop zQG0)}F#Aa3no4R_&)upev+|Z?&+CCz;1cj;N2m|mhrrx1j2}gbqVdO2#?WA7_?yg# z9LrF&w-J~ShJz?U9D$0W;$Sq2IVN>A6POhkmmS%B@jyI*alj$mKAgj+*i+#Dx9?Pi zu!6mm%OWrd498GntoW7`ODi9tbw zxgm?d#Nd!XNwDHmDO584i|)mbk87D_1m*$5R=5>aAi_mdjAn_OiClmlmYbTEcNeCE zU*AyfRnu;5M(|a*$_5dja0c>MoDIbRw#V(6C?AD4_Uy|g6XgJ>QPV_-1>K16Z8~3a z7+^=HBL{g~Tb#Jxj1_4Cju1rzB1x=e<&|lH{(S%^@)M;fiFH^%RaRxN1z1Pu91#jYrpPdtX#NyzbQDaVi|Y_ z@radalSz7p+BEL^Wn1A8aE+iwSfd3QTGnh|wPcMGz)5%#xd&8pyIRcx27Un9Io6!9 zBgC{S?Nl`V3H6hdYaL425NpSrju4ot2};L6#=lsRpO1jv)cRjw9ev&0<0yp?nuW4O}4`0u?41c$c^UahLYquWS)qO zu09QLCZ5SedgPtyF-G`C769xm_9k=Z-J;b9i--m|G}O4-5sA8J+d@V@YtY1m$zYO= zMr#PplF{co>^7>OJ=zTP;R^tfUn;EskZ}88GY*+>CLOVaed`eGjHUvc%vC2CWqIq! zJ-z%`n||e+ibFsp$u`Lq3DnF$B@dXbXI{Pb?kC`7x+_o;SiEpoAnWAd;|Z^4yf1-R zy_4Pz5kNVhk)v;7=#e*5j_T5fuWFR3;YrM~*1G}qkV%LO?UB<3ak5WQ)8GeyWzI5E z`AZWgCaln-Mu>u8-Bu>CZ?8b3q>7PgOe{D_t2o92f?ZXCXM_F{@n z1{BbF=_JVMMuXAk!Ralz0BaZ;5rW&k>+jnz*{%`bOt(z(&PHp~oId=%Ky!j-;jt_f z+o?U;t!-Pm8DhimuyM%gp=+X`GNVThI*T2}ZYUMO58?)qNA^R5JmXDGUpK@i;)&$0 z>pn;+F&>XvX9));ZZ~T6+uPVXA_+lImXO?Iz{x$9oF>f9L*tDYf=(i>bi_*YNb^QI z^{jlczpeDE5@<@PQo9kFGOCQUdPAFz8P#_hfTlOqo1Dv&ueYam?OeJLV5LMk8Lj-6 zTZ@a6Bg!WM?2fyW@1hSa58I3UZ&9JQrdJg5{&ba7^U1@Gi_`M8l7Rqa&UH{j>G;7 Dtq4J= diff --git a/.cache/clangd/index/main.h.5E55335D654F222C.idx b/.cache/clangd/index/main.h.5E55335D654F222C.idx index b11dfbeec761c96a9697c3afc394630899e6d6af..dc30cac5771e38dd08a17f710216dcd8afd084f2 100644 GIT binary patch literal 2458 zcmYk72~<*97{@OvD##O2Aw-ZRC6$Ck5DF`s(kv~s^0Zlvm5pU-fsXp42FEy_#BE9K1ltlN~<&$!}NDshoQu zFUF0#zhI}-;ZoVA%!}3q?S-a}jIzc_=Gzk%N>ei{Mv9|o^7Wwk$HTL!>L&& zx3jlubDzJGj>&C4@>~1M`0|j6^M4&ZTE{TRDT>_U=bu}i4qWo(W2#|mj9j1l;qXnr ztz}bRO}inRknXbothrc!@5F~k<~89(fm-^f)XbDUjzuxk&OEu5Tbfqi<@L6({7!3H z*x}{7az`mC+842k0abeiKWtZV?&ZYuLlRAAZ?~1~S01pbU0o=XJLoH#yN`~48(tF2 zt@&(SEhre-RUz%15oSI=IRCLGV`H7wtC~$0cQ2i|-ZKxZS(jX$P?>X0=Cmuc`f65d z!U&JxjwT|^w(G(91nUnoUsqKozSvPBiA_r_f-DA{{x zOJprIqE#!8roR3oqr{^nvvJw}5~VPvsjN;Vf8VWbJtg^Q8XVlxAUc<5^zf`RUtu`s z^dZoA}q>C1u6m+SL(h=lI+(d!qK^5cFPcRS8J zrTv8X)~wpUt8Thkjrig(8L3W>__-*%?1-=TOj+&XN$KOh%=U?msAhN6s7`hyWkpum zUm2ZLKDOwbsd`)fPL{*b_wVZd)eI^zf6ZHT!|#y$f+YvT`5#TQ@{R_im|HV=^OuP; z{>vQsq&oh#+rhx0=L6|+>uR2-NC|z^o0CbdT~xcTPOFWni)M4J0kF$wwwS2j_7Q*q zfJ95xI-&sJpaQ~$BB9Xc%+ybR_9&hJ{UD&^CZ`)6Q?um`cBS0_&d~AGJC|Ce__v)@<@8s(Q;6gxSt6`#m z0I4g?pcLfZOcR}aKmZ>I46_}^LID8-SP;;r?5=2dym>AG0wADfsoliRTxSsiv`mVa zGKvV}61w|!4B(Br0I48qkO!dISpn3Cu&JS0il9yf0sP@_{v3Y+3Md2WIS$>9o1Q-Yb z4NJpA0RiZk%RMVPV(uQgLV)2AkTGR!u?xqAkAT5W@D$k_n%ZJ_CG97G3IYm3(ND~F zWy4dzGr=Ool;UqOcS_T*za~Hs1O^d(+=obNqysq*J$-1H zyVNA3r!+Ev0s}g#jtyw`)@szKrbEP3^%A^mlj12(mMuXq0Vy8(xiv5yz<+=3r|mYnV`(G z=k?K9^ZaTq#H<|yWr{te?@ZWgP$qqblVF2EnRFMHv8`Ztk)3+=`k>~?Uakj&VSzF` z8G#GKBL->YtzOzJn9)BwzB#}O4kAY$`J?D-Vxn(cSxd3PpT@2Tu(C2bN%$K>z>% literal 2494 zcmYk74Ny~88ir4RBqZb-0wDx61T{AT34e)%q$G$642Ud7r{k_hD~pJwpe|u7u0maC z-6D%1t5ETWEm*X*ASgvGXi@Qp(&FOUu80DPP?lQPLXD!e?01hGvUeumoV%wsjqgN|#sq zoj79)JY3sc_OF=H#Kc?al}eY(jm7yF9UuKto%if7!NoO?hq-M(Jb5XX4_c$PTb7$O zZB_2u#TAx@%a1xozKwV*X1pcDlG{SnoUAdI)ZXNm?6FA|7KgRxmf|?(KXM z(7N_;oh1CM+W66i=)sQmi4&0(4duJ{yXhsn>(4DU z{rubh6~C5m9KZeWIk&m$z~V2D);?bo`O~ILwK?;OLPxK~Bs3(PVcA;m3F$(1Nc7Q& zw9fs}Yxj&~oO+w;Y!>%3PUq5i7Ep2M&{G~$!0i5eE{Nv71x~~Jq zFP_(gRC3-PleXU-KC1tQ6L(kI?)h{=P&Q(7P^RpYOWH-E-f#L#7W@`fs5G>vmg(D`qk^1?lN z?5=d=^`GC*PFd4pw)l5FQLtxD_=%F2wk+co_og=Xj^3o-i0tVO@Oql1a*0)E3=RIh zd-J;Ece^VihZc>Nt-9NE=4I3OkG*&NxNW4qY`OQ5CF?GDny+{rf6=mI*{vpJ`pG>T z3M&uRpB`1YX0CeZsokl~ux`uz<1_Ff_n`1W9((d*3JDOR4Q#^xP(Gp3_xkcxYz-DS;Ms#+uZh2C=37%r4i#| z2LguDu2dzP4^U_^0RB$?B3v+_X0`}=`TmPze%T!qnhAiOqZi_W0Y6UwG_vx}_k6$j zjzTH`7H}4baKV7T7y$jdN6y|E*t4EO;Q;7FIxmGtD)PmE(UqlOMN@H7D&khR00qFw znTs~DO+JXnaX?X0=n(gZ*rH(L^I!_;;5Us#Bf|xEz;j3(v+Z!0XRD%63;=3@+8q}R z@Ml1W-?ff~duf7r6j}&CqEjMY&UfL97~l;!rks^@L%Slkw2q=sGyr~1ey+IS4tNgB zJ%*?x&UFEWLI4O72hCJSW=iH@K;sUlc;}GrK~Z3qCxrq5(2MlmxL^Pe>d%U^&n*A^ z^eTlG0iY79JQQvcw^%#Z+^E~x z@t8sj00^Z*CAbiPX7!x9Ffd*_YZZlp0SFWX3UR?es2j}T&ibu+D*n5@0yG~F8Ym;% z=z(}#M*|*p->2+?>eC5D6w<Duq|$V^m-Oilwb z6A&VkWUzRz6EUTeJOIsvfzTucATtplGVwmhjPZ#~91k*McOny?gUpzm$ZIZF4-b_# zQH}!IfDFt(D!v4?8JYk8o6<}&j7T7$6O#sVOJ-qb3T?`+2U+SYogU++bHd4rnCb?Q zy_~(IgtoT!SH}d$ZG~545E`b>M6v`l6C^_CPJZ0>@HCwVvbVGMG+neI@KT%Qukj$W zoLSRHC3ypx2^(or;Vx_r-J6yRTLz&ZH!=_sKA@T85&E{VeJp$S!H~AAw5D&u!OiIZHB%ZJV zj^&h2LJ2Ysatlas = makeBitmaps(); } @@ -57,6 +55,7 @@ void renderer_destroy(struct Renderer *self) { vao_destroy(self->screenVAO); vbo_destroy(self->screenVBO); + free(self->params_fbo); free(self); } @@ -102,9 +101,17 @@ void _renderer_mpv(struct Renderer *self) { glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, self->video_textureColorbuffer, 0); - if (glCheckFramebufferStatus(GL_FRAMEBUFFER) != GL_FRAMEBUFFER_COMPLETE) + if (glCheckFramebufferStatus(GL_FRAMEBUFFER) != GL_FRAMEBUFFER_COMPLETE){ printf("ERROR::FRAMEBUFFER:: VIDEO Framebuffer #%d is not complete!\n", self->video_framebuffer); + } self->mpv_fbo = (mpv_opengl_fbo){(int)(self->video_framebuffer), fbo_width, fbo_height, 0}; + + self->params_fbo = malloc(sizeof(mpv_render_param [3])); + memcpy(self->params_fbo, (mpv_render_param [3]){ + {MPV_RENDER_PARAM_OPENGL_FBO, &(self->mpv_fbo)}, + {MPV_RENDER_PARAM_FLIP_Y, &flip_y}, + {MPV_RENDER_PARAM_INVALID, NULL}}, sizeof(mpv_render_param [3])); + } /* diff --git a/src/gfx/renderer.h b/src/gfx/renderer.h index 70e35f1..f94f3c5 100644 --- a/src/gfx/renderer.h +++ b/src/gfx/renderer.h @@ -16,6 +16,8 @@ enum ShaderType { SHADER_BASIC_TEXTURE }; +extern int flip_y; + struct Renderer{ struct Shader shaders[SHADERS_LAST + 1]; diff --git a/src/main.c b/src/main.c index 01957eb..9c5af14 100644 --- a/src/main.c +++ b/src/main.c @@ -3,42 +3,32 @@ #include "gfx/vbo.h" #include "glad/glad.h" -static inline void check_error(int); -void init(); -void update(); -void render(); - +static inline void check_error(int); +static inline void _setup(); int main(int argc, char const *argv[]){ if (argc < 2){ return -1;} + _setup(); - /* Create the main window*/ - window = window_create(init, NULL, NULL, update, render); - - /* Set up the MPV player*/ - player = player_create(); - player_init(player); - - /* Setting the renderer*/ - renderer = renderer_create(); - renderer_init(renderer); - - /* Glyph shenanigans */ - //mat4s transformation = glms_ortho(0.0f, (float)(window_width), 0.0f, (float)window_height, -100, 100); - - // this doesn't work when called from inside the Renderer struct... - int flip_y = 1; - renderer->params_fbo = (mpv_render_param [3]){ - {MPV_RENDER_PARAM_OPENGL_FBO, &(renderer->mpv_fbo)}, - {MPV_RENDER_PARAM_FLIP_Y, &flip_y}, - {MPV_RENDER_PARAM_INVALID, NULL}}; - - /* Start video playback */ player_loadfile(player, argv[1]); window_loop(); return 0; } +void _setup(){ + window = window_create(init, NULL, NULL, update, render); + + player = player_create(); + player_init(player); + + renderer = renderer_create(); + renderer_init(renderer); + + /* Glyph shenanigans */ + //mat4s transformation = glms_ortho(0.0f, (float)(window_width), 0.0f, (float)window_height, -100, 100); +} + +// TODO Remove these function from here void processGLFWInput(GLFWwindow *window, mpv_handle *ctx) { glfwSetInputMode(window, GLFW_STICKY_KEYS, GLFW_FALSE); diff --git a/src/main.h b/src/main.h index 2f36df0..111a22c 100644 --- a/src/main.h +++ b/src/main.h @@ -42,9 +42,8 @@ int window_width = 1920; int window_height = 1080; struct Window *window; -GLFWwindow *wwindow = NULL; -mpv_handle *mpv; -mpv_render_context *mpv_ctx; + +int flip_y = 1; unsigned int screen_rbo; unsigned int video_rbo; @@ -78,6 +77,11 @@ float imgVertices[] = { int wakeup = 0; //extern int wakeup; +void init(); +void update(); +void render(); + + bool SetSocketBlockingEnabled(int fd, bool blocking);