From af4623a787e5e556fe6aa8bb061b0d3be17a4bf1 Mon Sep 17 00:00:00 2001 From: Tristan Date: Sun, 23 Feb 2025 23:06:51 -0600 Subject: [PATCH] Updated source, now the program replaces the red color with a yellow color through texture in SDL --- renderer | Bin 16992 -> 17208 bytes src/main.c | 31 ++++++++++++++++++++++++++++--- 2 files changed, 28 insertions(+), 3 deletions(-) diff --git a/renderer b/renderer index ce4d274b9e0888c075904503c0d61e2442d1283e..38074d46015d4186f94f292783b78ff73867d910 100755 GIT binary patch delta 3533 zcmZ`+4^Wfm8Gql9FC>9T5)wkdnh13b|B^rjf+dht>0;+q&~bAECQd-<+R3qGL#h`M zaneACeXiEt&2G24uHAK4m332RZ6a6ywA$&}+i>S@>UA!tcU7!Cr0BQj{r+Ic-9C=@ z_x$-i&-;Au`y}t1D?8}nopdDI*lHxg;}e1OJhi*$~iRHAl91xD)h z2Nj|!BhiaGMPN)viKsigbMdwm=Y~FNF?b}FM`C&4UHV^5Pz)hKctf#r;s47tE@c`A zP0A*d`w#x!Y;*qeMVHgE{<7!evtREY-vUD^4r>-BlZzs>j}RrvV>Sz%ODUrN0E5y3 zdSy1f&m{VppdTnzf=OwDE@d`s6J=Tkl(T@{tAru+9L9(VA>w}p#VZ2xY1PcYQoPF62l zv36DaPukkMmu~9X3|mw!24-5?-TsIKrJB+xz8@tD{G+fn)zYyUCz7^?m^wRk z?EU*C+n;vt!L3Rm!;&7#>C_O6+>1JUM1wHeeWJo4WQ(FO)=N>Ts7aLw_B9YwTXd}n-W1rUw!n-!UDuUh z<=`Azi#6%GZ3)&?c!1Vsw2mZLwNRq5zz|x0lVDAU7PKBi>wyI8JQ&tktQiTFMiabx z_z+`mVa)jit9kT}<~!W0`aE@xi;zivQ7#nfZQ zPB1WiAW7evq=#V2kY7KOLI`heLf=;%&J5cQVI2d*-afPhhPhq_RZ~H8Ai~u!c_13p z@K-Wy+Zb_7LgY6H{PJhv$Hw_o2fK_53Lirg2^BR4`n@NLQ49?JCzu|Hc(0=px8fqk z+i;~%a`%eiyzz-}2rZbs1ZO&mjKE;*DC@uDtl6-Vm(!W;RQxlf9YzzG7{eiA-j3V| z*Mp<~2-_e3;CYP1mvS9v!$*u7Kk|U*1A|;I%NyZ-%3vTGDnxlDlQAH7J@VwaJn7*cv_HX+rER7{LCEF06Eimw*a7PA}?ZV>}1?foJ#ZB9bghiPyrGq3R=bFDug;of7y z-ay9tCjzl63YPC}G2bb4M0CS!H1{)-$n_7N9=vdrEyr=Cy&{VRye0;`Sp+tdBmDUc z&qwN_UiSG6YP|RzLV{^GttYu9n1tNaN9sQBpUMrTp5zLcVPqr_shesG6e$-uPz`eN zirK)ab%cuQyQ#8UoC8$$dMn@8+$8;+TA1KXDfr<1&m=$)J8n*uTJujoPI7m`{ns^=v2U(+n>+~9Z& zXWmuD{T4a#%-ab4N6EJ^nK4LX)&H8Vl zeFOT_68%pLZXrG$XI+K<)ro$^v$OHVl!VCu658hwnr8_sFu^D2Z=T~{J?nn~{VH5T z;kcAvAo!?&A@t{?-VBb1k@*%}Mb7&IKPoUUBGW)}h}|bnB43-XgTLHTdKbNV z^sbS-B8QMEDXKmxN(Z#UVtpLHaamM$QWWk%xrMF}I6p)Vo7b0=VS~W=nJ|tpruHpl zvel@`8qKTlDRgu0pU~pTF?I|0&$a6}y|Af!?T0=>D@$4_T?77V>`QiC#7D;c(1+H`QbWpE2C-_FRxd3k zw&!$pg|=Q&v1ylhD-3ck%eWW%ykP}?At`E{8lTj*KB%gxG}cR+jCu;&Yn-#cjO0FP zQo@NEr&j)qVP{R(?4&{Ht92Pp+l8`;jPF6L)}@gz(GIv@Td9$+&TgpkRcapn?Ah$A uoc%m{@TSO~(-8B8vGx7_u%cB3C;SzfcPd2JA)rrJYJRXp)N*ivZ2toi;)yr_ delta 3008 zcmZ`*3vg7`89w)BZ}#DaePlPAT_nk_K`_bgX7g;Yn{0rEr9*YKV2z9|4T(Z0qSVdQ zQfy2E8RAA8_|+0B4on}zI9N$z(-d0_O$T*QCs1aZW^5a1>ujJML%=p;#oO=PM_e=0 zvvbdPzVH11e_sFIdq#VO>Ak{0p_4h8QerBwqpJ>-{me3NR_VO?z*NX`NmAJ*iJU^H zd84RO9hqI_0w5PpEU5BW^z%5W`Pr#k@Hms2RZ_D`M(J3zfX0LgbBF53I%rV5+yDQ< zjcMV=$ei=2>u+sy&DHHaE#K+=?jOI3TYHQvce|NdP`}=stoiKgG+GGF?h@?+E%HOwpJSG zgj69cX!Njd%KX;QU0^4$g~y5GIwfY3r3;PUh8VLIuVw7It>|O$=ptUbhzA$(<%{^T zMcloJ=VkE%KA@B(aDFpL8ys7x&FM)#p2L{zejR_E8xMtS#e0=qPCOI61SRo|G{vD| zKIKlNrI&bn-&o2lPuq&0;)dfI!hT4xuYH-$Id2snp^USr>`6$hvwU-+CmP_*MBhJB z)P;!s|3oIn3mWm1}Qi-hR8+Kv94}`=@FPBFw8J*gnKj7qlWG0G1AgL4qDh2-bPqoR@ARqslgQ} zb?~lj6KToH8;26MSAUl{GcEFXBWk=A6?D?I^6px&bbKtzUp6Uo6n{sSy5*|(taPp% zQLoz5@ryn4OFNBcrBhrO7)Ye!^KFT8!}67&DJfHm0B?`;q}z1I%0L?8pX@o;6Q38-Qn5nk_Y4mVJhNSZXzz1_VZbEio6BV2s;&=USuk)-6S|2G2^&X_is0KMan6bThOk87V8{vqIH!bq*5yZi$hMh2CFb`TUcQN-0Vzp|ze{2(5If#uM4D*<9nd5fmjWfIFc(L@z6harLvZTk%aR z^-Hv?))N_mrJdodVxL*@)@eoevE(9sock`D(s~!i{{VUkzpw}*Me01lEhM1!DRm8< zuk~2g(V}n}55>v2YjGPwheu9c~I)^gjho`9f2# z&_OM+uw$%5_13YU24i8fe$$H4`B=SKzh5C4o9oRB7hSrixqjh)lEm$Umy^u5*=P$XRfSMyY8but**E9HmJ-e(A1qp{{vnH?pXi; diff --git a/src/main.c b/src/main.c index 516a598..2ea65a4 100644 --- a/src/main.c +++ b/src/main.c @@ -4,10 +4,14 @@ #include bool is_running = false; + SDL_Window* window = NULL; SDL_Renderer* renderer = NULL; + // Also known as frame buffer in other books, pointer to an array of color_buffer uint32_t* color_buffer = NULL; +SDL_Texture* color_buffer_texture = NULL; + int window_width = 800; int window_height = 600; @@ -17,6 +21,7 @@ bool initialize_window(void) { return false; } + // Create a SDL window window = SDL_CreateWindow( NULL, @@ -42,9 +47,17 @@ bool initialize_window(void) { } void setup(void){ - - // Allocates the memory required for color_buffer, using sizeof to allocate the # of bytes required + // Allocates the memory in bytes required to hold for color_buffer, using sizeof to allocate the # of bytes required color_buffer = (uint32_t*) malloc(sizeof(uint32_t) * window_width * window_height); + + // Creating a SDL texture that is used to display the color buffer + color_buffer_texture = SDL_CreateTexture( + renderer, + SDL_PIXELFORMAT_ARGB8888, + SDL_TEXTUREACCESS_STREAMING, + window_width, + window_height + ); } void process_input(void){ @@ -65,6 +78,16 @@ void update(void){ //TODO } +void render_color_buffer(void){ + SDL_UpdateTexture( + color_buffer_texture, + NULL, + color_buffer, + (int)(window_width * sizeof(uint32_t)) + ); + SDL_RenderCopy(renderer, color_buffer_texture, NULL, NULL); +} + void clear_color_buffer(uint32_t color){ for (int y = 0; y < window_height; y++){ for (int x = 0; x < window_width; x++){ @@ -76,7 +99,9 @@ void clear_color_buffer(uint32_t color){ void render(void){ SDL_SetRenderDrawColor(renderer, 255, 0, 0, 255); SDL_RenderClear(renderer); - + + render_color_buffer(); + clear_color_buffer(0xFFFFFF00); SDL_RenderPresent(renderer);