From c3b4357852258b8b357f8008fbcd4152d6a72dde Mon Sep 17 00:00:00 2001 From: lllzebralll Date: Tue, 28 Jun 2022 21:21:36 +0300 Subject: [PATCH] update --- res/block_select.png | Bin 0 -> 264487 bytes src/declarations.h | 2 +- src/voxel_engine.cpp | 5 +++-- src/world_render.h | 28 +++++++++++++++++++++++++--- 4 files changed, 29 insertions(+), 6 deletions(-) create mode 100644 res/block_select.png diff --git a/res/block_select.png b/res/block_select.png new file mode 100644 index 0000000000000000000000000000000000000000..420eb9c110106141de13c1a4a18800e6b9775177 GIT binary patch literal 264487 zcmeI533ycHxyRqxGRY*9WwIv_0s?~UxUkt;6t#3wt5j|6Vry|L?z>h&rB;i2Yj3aH zwO%aVN?W&D6}=XOAA5=rL)#qU*j~ z@%_!eSUvydHCt|Zw&Kd0YS-P{)wb!x<>Sh4IAPUYe}C)9CwCq5v%DSkFMF14`qo)P zpL*r#=~qk${P@>5e)Xaai%*Cgn?3IFrH{wYGC!JET>`GaNe-s`(}`VW8q;61lo@%48+&o4f2#Th@0 z+jh%uZN%|)cl_k53%*i6{GRFGKJS=e8{fZm?N=(so_K@Xeepe0p8H8=wXKS*T$!`v zi3w9~x#*6CHtXNV$6a`Q+_R@&5_syN=~It-_^3;sYCr$IbDn?yzkhn!^6P5PTD0Pg zjSpXQP?sdLodhOWDKQ9)Kg+IfXlufOYA@{5$CzVYbfYhK*)#5ezI z(kl1O_doq&*K_4#J{+0_N&EnH9ezESN>fC9`ORp`fy6A}^Gj1up z`?`$* zof8>$*7);}&iUhocaPoXyI{kKN%0qlmYvYJx%c>n#7lku6Z?Kq=V4ctA0Li=<>~KL zy*jgD%%#PPUwr1ZXa2MzaNaAE|9aw6?#MX*`kR}ImaI*h@rRKYJhL%d z&L3~=4o_U|TQqh?W!kn^)>fSM-nu)EUT|J=@5_yMo%6=2`J+;IUU1p+kuxql;ieN# zS+eAYt20}F^Wn`Yrz~Ffc;l<*-u}01U%$8e%SAVKJ$%k3kG^;0IbV8g_yx(gwf_8( zH;?&c`?n@#|9;I&f4J29A20uT)fF`#Oq=(@@6LT}{F2I=Z_mql>++0iR!sTz?c;mu zZkZA+TlCl&bDyo9TRC^^S(n}ZZ2acUsCuYpOP!*OrsJ zE}gw8p2<5BZwzqs1FW!`X0TUGPD%+5EyvV6$}Z&rABzV}Gs z8NWL%?v~V-j-GsK-XFK#8~5VMxg#c>`{W%*CM>-Ft*cMoe)d`0vfe*y`a93(r!MMv zGI)LcLpQe_U4Q0;zi+#AREKxr<9C1X=f$1P8NH)w#%-K(!f}Nybzcvkea+ERkNMil zeDAV*A6x0U;i8`;_+EJIqzjjS=bLl>dgEJpGj}}nt!-YaX>8u$Qi$|RC?_*{)oi=0D!n5AJ)c=hCUhjiDlhO~%4n1(;;^4Gjt_{pR z_lfVnU36<;@=MJNOUC@*ft8d0!{@4+zU=zd6*WzlPJHyou5Y@px-j_{i;@n1{kT8A z{b=D2$4)JrT{6$AKK#{_7yPvNH-BFIjh~;q;kFH(xBd2SsZWpn*1EK5%N}_CPfu^n zxcM6!rua8*3@5}V=LKJ%^}w1<%d;onHaGa>HKm3>s6C~z4DHQ!#{kvU}5Whc}eH*{9c>)*xZT760bFOz;;ez7%u9(GQ zxUk>D<=CEnPuqFlIn^qv>+mTtE6B^XuI_HDsc$s5%WXZqz2FKdrT-TDl(RzE`=5a+Wn3iBwWo?#_=&{70$08j)78h_^LrssRhT<$7HVe0P zS}4P3F_*{M+q&%K`!4Q(aQkq^6}*MU)t-Cv-OEpzan!H&cFR9Ix8hGX#TuJBE#Qx{ zj!2iKq{dr<&ucxH>#M7F*|7Ye6&9qL0Yj`OivO5J`HgsVmoKfCt&N!+iiSqf|WJ*T4#@0c9P4s)r2iCHNjf4%B`+CY`|yn2?5)( zt==Y%NwNBdcFP+aw71`Bw5*&sE657i%YUo3WN_`mXB>S@y7hE*TVd82*4f!mreeZLVuvx;JL~`rdPkrk&l|-s7-H zPxD(-OPBNgKA+nEA0HFqJ=WOVW!+$yi@7wnM64bAihq;$OYIKoj=Q{y~R z;3@1;jG2Pd)z#$)6W}88tfFg^tP>SCf8x_*_?b{v2M5V;BQBk$F zw!&zHEj}Jf8Sjl8Inp@KjT<*wa&j`(ER70ae}{fh+_&324`3?XFtqA!n6oZy?7W;T z3ncg*zrr8qGe0b2c1D_`dFdtan#Sf9XX7PcVItv9^J3Gc=f+!eQx6=KIP1lAPy^

;19(eczJ=!OTbx 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 literal 0 HcmV?d00001 diff --git a/src/declarations.h b/src/declarations.h index b32ddc8e..01407ffc 100644 --- a/src/declarations.h +++ b/src/declarations.h @@ -61,7 +61,7 @@ int initialize_assets(Assets* assets) { LOAD_SHADER("res/ui.glslv", "res/ui.glslf", "ui"); LOAD_TEXTURE("res/block.png", "block"); - //LOAD_TEXTURE("res/font.png", "font"); + LOAD_TEXTURE("res/block_select.png", "block_select"); LOAD_FONT("res/font.png", "normal"); return 0; diff --git a/src/voxel_engine.cpp b/src/voxel_engine.cpp index 3612717d..28e79b7f 100644 --- a/src/voxel_engine.cpp +++ b/src/voxel_engine.cpp @@ -304,7 +304,7 @@ int main() { bool occlusion = false; bool devdata = false; - glfwSwapInterval(1); + glfwSwapInterval(0); std::cout << "-- initializing finished" << std::endl; @@ -314,6 +314,7 @@ int main() { float currentTime = glfwGetTime(); delta = currentTime - lastTime; lastTime = currentTime; + int fps = 1 / delta; if (Events::jpressed(GLFW_KEY_O)){ occlusion = !occlusion; @@ -332,7 +333,7 @@ int main() { for (int i = 0; i < freeLoaders; i++) chunksController.loadVisible(wfile); - draw_world(camera, assets, chunks, occlusion, devdata); + draw_world(player, camera, assets, chunks, occlusion, devdata, fps); Window::swapBuffers(); Events::pullEvents(); diff --git a/src/world_render.h b/src/world_render.h index b56dfa0d..22d993df 100644 --- a/src/world_render.h +++ b/src/world_render.h @@ -5,6 +5,10 @@ #include #include +#ifndef std::string +#include +#endif + #include #include #include @@ -41,6 +45,7 @@ int uiscale = 2; LineBatch *lineBatch; Batch2D *batch; +Batch2D *activeBlockBatch; Camera *uicamera; void init_renderer(){ @@ -48,6 +53,7 @@ void init_renderer(){ lineBatch = new LineBatch(4096); batch = new Batch2D(1024); + activeBlockBatch = new Batch2D(1024); uicamera = new Camera(glm::vec3(), Window::height / uiscale); uicamera->perspective = false; } @@ -57,6 +63,7 @@ void finalize_renderer(){ delete crosshair; delete lineBatch; delete batch; + delete activeBlockBatch; } void draw_chunk(size_t index, Camera* camera, Shader* shader, bool occlusion){ @@ -105,8 +112,8 @@ bool chunks_comparator(size_t i, size_t j) { } -void draw_world(Camera* camera, Assets* assets, Chunks* chunks, - bool occlusion, bool devdata){ +void draw_world(Player* player, Camera* camera, Assets* assets, Chunks* chunks, + bool occlusion, bool devdata, int fps){ glClearColor(0.7f,0.81f,1.0f,1); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glEnable(GL_DEPTH_TEST); @@ -115,6 +122,7 @@ void draw_world(Camera* camera, Assets* assets, Chunks* chunks, // Draw VAO Texture* texture = assets->getTexture("block"); + Texture* blocks = assets->getTexture("block_select"); Shader* shader = assets->getShader("main"); Shader* crosshairShader = assets->getShader("crosshair"); Shader* linesShader = assets->getShader("lines"); @@ -126,6 +134,7 @@ void draw_world(Camera* camera, Assets* assets, Chunks* chunks, shader->uniform3f("u_fogColor", 0.7f,0.71f,0.73f); shader->uniform3f("u_cameraPos", camera->position.x,camera->position.y,camera->position.z); texture->bind(); + // blocks->bind(); std::vector indices; @@ -170,14 +179,27 @@ void draw_world(Camera* camera, Assets* assets, Chunks* chunks, uishader->uniformMatrix("u_projview", uicamera->getProjection()); Font* font = assets->getFont("normal"); + // Texture* blocks = assets->getTexture("blocks") batch->begin(); batch->texture(font->texture); // font->draw(batch, "void Font::draw(Batch2D* batch, std::string text, int x, int y) {", 10, 10); if (devdata){ - font->draw(batch, "devdata does not exist", 10, 10); + font->draw(batch, "devdata does not exist", 16, 16); + font->draw(batch, std::to_string((int)player->camera->position.x), 10, 30); + font->draw(batch, std::to_string((int)player->camera->position.y), 50, 30); + font->draw(batch, std::to_string((int)player->camera->position.z), 90, 30); + font->draw(batch, "fps:", 16, 42); + font->draw(batch, std::to_string(fps), 40, 42); } //batch->rect(0, 0, 256, 256); batch->render(); + + activeBlockBatch->begin(); + activeBlockBatch->texture(blocks); + float u = (player->choosenBlock % 16) / 16.0f; + float v = 1.0f - ((player->choosenBlock / 16) / 16.0f) - 1.0f/16.0f; + activeBlockBatch->rect(16, 280, 64, 64, u, v, 1.0f/16.0f, 1.0f/16.0f, 1,1,1,1); + activeBlockBatch->render(); } #endif // WORLD_RENDERER_CPP