From 48a3749bd5068d4da9c7cad9dfee51b1fc085ed2 Mon Sep 17 00:00:00 2001 From: connellpaxton Date: Thu, 1 Feb 2024 11:54:18 -0500 Subject: [PATCH] Fixed timing --- Input/Input.cpp | 4 ++-- Renderer/Renderer.cpp | 6 +++--- Renderer/Renderer.hpp | 4 ++++ assets/shaders/basic.frag | 2 +- assets/shaders/basic.frag.spv | Bin 972 -> 1032 bytes assets/shaders/basic.vert | 3 +-- assets/shaders/basic.vert.spv | Bin 1484 -> 1676 bytes pléascach.cpp | 11 ++++++----- 8 files changed, 17 insertions(+), 13 deletions(-) diff --git a/Input/Input.cpp b/Input/Input.cpp index 1e8e5d8..1a0ab09 100644 --- a/Input/Input.cpp +++ b/Input/Input.cpp @@ -36,8 +36,8 @@ Input::Input(INPUT_PTR in) : in(in) { glfwSetKeyCallback(in, [](GLFWwindow* in, int key, int scancode, int action, int mods) { int state = (action == GLFW_PRESS || action == GLFW_REPEAT); - static const char* action_strings[] = { "RELEASE", "PRESS", "REPEAT" }; - Log::info("Event Received:Key:\"%s\" %s\n", glfwGetKeyName(key, scancode), action_strings[action]); + // static const char* action_strings[] = { "RELEASE", "PRESS", "REPEAT" }; + // Log::info("Event Received:Key:\"%s\" %s\n", glfwGetKeyName(key, scancode), action_strings[action]); Input* input = reinterpret_cast(glfwGetWindowUserPointer(in)); InputModifierBit i_mods = eNONE; diff --git a/Renderer/Renderer.cpp b/Renderer/Renderer.cpp index 466c164..7fe6b91 100644 --- a/Renderer/Renderer.cpp +++ b/Renderer/Renderer.cpp @@ -320,17 +320,16 @@ void Renderer::draw() { const auto p = glm::perspective(glm::radians(90.0f), static_cast(sz.width) / static_cast(sz.height), 0.01f, 2000.0f); - const auto t = static_cast(frame) * 0.0167f; uniform_buffer->upload(UniformData{ .mvp = p * cam.view(), - .time = t, + .time = time, .aspect_ratio = static_cast(sz.width)/static_cast(sz.height), }); //command_buffer->draw(std::size(triangle), 1, 0, 0); - command_buffer->command_buffer.drawIndexed(models[0]->indices.size(), 1, 0, 0, 0); + command_buffer->command_buffer.drawIndexed(models[0]->indices.size(), 10, 0, 0, 0); /*command_buffer->bind(*models[1]->vertex_buffer); command_buffer->command_buffer.bindIndexBuffer(*models[1]->index_buffer, 0, vk::IndexType::eUint16); @@ -385,6 +384,7 @@ void Renderer::present() { } frame++; + time += 0.0167f * speed * static_cast(running); } Renderer::~Renderer() { diff --git a/Renderer/Renderer.hpp b/Renderer/Renderer.hpp index 78d4a13..b4c709b 100644 --- a/Renderer/Renderer.hpp +++ b/Renderer/Renderer.hpp @@ -64,4 +64,8 @@ struct Renderer { bool capture_mouse = false; bool flycam = false; + /* time speed */ + float time = 0.0; + float speed = 1.0; + bool running = true; }; diff --git a/assets/shaders/basic.frag b/assets/shaders/basic.frag index 1e64096..f852fc8 100644 --- a/assets/shaders/basic.frag +++ b/assets/shaders/basic.frag @@ -12,5 +12,5 @@ layout (set = 0, binding = 0) uniform Matrices { layout (set = 0, binding = 1) uniform sampler2D tex; void main() { - FragColor = vec4(0.0, 0.0, 0.0, 1.0); + FragColor = vec4(norm, 1.0); } \ No newline at end of file diff --git a/assets/shaders/basic.frag.spv b/assets/shaders/basic.frag.spv index 24651e1c346b8581561e2d362d514ca26daf601b..f3ff5b239101e5e48aa5193d019428cb3c111401 100644 GIT binary patch literal 1032 zcmZQ(Qf6mhU}WHC;AN0wfB-=TCI&_Z1_o{hHZbk(6YQf`T#}+^Vrl?V!N*wB3=CkLo0ypglHg=uVBle3U=U?sU=Uzn2FtNCFfcGPFf%YQFfg291gYm@aQBIK z_xE@Aag9$dD2OjEsmw`@&&kY7jZeueN=+`wEK3Ec<3LiEnU|bXnu4r=m4O9pKFn@b z237`;{cc5x>CX8%`9%y23?MZi_vGal<$~M?QUh{ZNos|2etuC3OiY}Cfx$Piq$o2v zwHPGE#=yb=5(BYw%L*9S7+Ar4P}r1Y=B9$gSs9oaBtZ64{`&D4>HdK$u3p~1_lqPT_B^CK?Ir@C_Dv_#6V_%)HyIPFt{@?gWU-V zYmmJl_bEZmfbkWP_#ihU%Y*nJd61dH3{2oSQv}Bz1DGwwz|6qLz`&ruz`!8Rz`_7> z3y2R&2MP=<3>@INW&n#@L;0XM0i_y{dM*YAuznC9q@J4rlmZzTK;j_vAU-IpK=x}h zuz=O_f!*6+57I9T)erI?NWTbFKS&&;AH)ZREl9rv0}F!~1H>&L_sK!S86*aBGf2M# z1H@mTxCZG5@j+n*GGCH`lR*kFFU`QrAkDx4RtGXq1}YB{1DOZngTfRf zY{tL}4nvSzKzvXb{9s^W0L8g20}D6|c%k_xkbxEKcYX#229Ov?JxmM~_aHHl8(?CB qP<0@82QaXM!(WJjfdQl+q#h&>3P(EzW^mdB$^B(uWUydhWB>rE!9wQ% delta 576 zcmeC+IK$4%%%sfDz`)4B&A`hbJ(1U&m7jruL1WDauSvEe46PF|aUz#6axavH}J+237`<$%c%=yka0Buu04e zQj-H2rCmYh%Rxom8CbyPgZPXL3=AGf=CFeKtZ;Lcp?W;PW^ZH^4g}c<(gl)nU|?Wy zXJ7`aW&*QW7(jL_L3M#_0`V1*_)-iE49N0QlSP@L>$MqJ7}yvX7`UJ+VSH{dzrkLI zft`V!fq{Vsss^MEghBG+3@i-13=ClX%nS?+3Jfd^d<>v)W&n#@L;0XE0J$8bUI3~d z^yuY<%S88{ilC#y0mD@rghFo;8)C<*o&0|Q75qyxm4nw-h3EMmvN%)klt>|X{( J1`7s81_0K>BJ%(M diff --git a/assets/shaders/basic.vert b/assets/shaders/basic.vert index df1816c..b670d34 100644 --- a/assets/shaders/basic.vert +++ b/assets/shaders/basic.vert @@ -12,8 +12,7 @@ layout (set = 0, binding = 0) uniform Matrices { }; void main() { - //gl_Position = mvp * vec4(aPos, 1.0); - gl_Position = vec4(aPos, 1.0); + gl_Position = vec4(aPos + (vec3(10.0) * gl_InstanceIndex), 1.0); texCoord = aTexCoord; norm = aNorm; } \ No newline at end of file diff --git a/assets/shaders/basic.vert.spv b/assets/shaders/basic.vert.spv index e9568b17d218e3dfb93e11ac27c8f94a62fb5daa..45552638ff342755d6ad148b97d96ab339f9e0bb 100644 GIT binary patch delta 948 zcmX@Z-NVbv%%sfDz`)4B&A`iGIFZ*>n}-1eSQr=>auYN2Kx|$H1_mJp1_p5k1_o6I z1_pHo1_mt#1_teonVgLE>|pWqoOsW?;*!L?MRF z%uWLa1_mXlevq98n?;!!8S51sbr{$f1Q-|?L>U+uM3Aro0}F!~)DwIR3=Gy#KFG5m zi?kV77}yvX7-YbPHrRvID>5)JFf%YPu!Cce1?*su8jvGE@+weykRw6nsnkQG8KeoM zKn-dkOaX`w3O$g8AbCxw0U!s13;^*#p$XCt;tN7!0i<4nfrUXA>KITGlY@pVNDSmC zka?o|3=9k)*MWi$WB`b7F!>>ialI`A3j@gC5@5eDFyur1E6KpX021qCU$5F85kHq;-KJyiGd;=BnEOWOiUi4t{&{H00wq&U@9;$ zFn|mIX#gnz1-c^xD+4INL9q(THv9|>40a66;8+H!2YCP#jvCNx1d;<~DG(nd2MR+S WXn29-K;a1D|7BoguwYq`XF@6f delta 743 zcmeC-J;Tk*%%sfDz`)4B&A`i`Ig!^?otps!SQr=>auYN2Kx|$H1_mJp1_oIM1_pTs z1_mVt1_tGgxtxsotYEQ{)C%YP{Gt?)T2=;Du$sgWgdi&e3s_HHeo-z&4GV)Z0|P^% zA4CA8M~#7j!8fs_C^I>=7^H@cfrSAi24d%y6)>TtoPmWwnt_3V zje&syq!}bH1CshouldClose()) { Timer frame_timer; in->poll(); @@ -63,11 +62,15 @@ int main(int argc, char* argv[]) { ren.capture_mouse = !ren.capture_mouse; in->setCursor(!ren.capture_mouse); } else if (event.key.key == GLFW_KEY_R && event.key.state == GLFW_PRESS) { - ren.frame = 0; + ren.time = 0; } else if (event.key.key == GLFW_KEY_C && event.key.state == GLFW_PRESS) { ren.flycam = !ren.flycam; } else if (event.key.key == GLFW_KEY_P && event.key.state == GLFW_PRESS) { - paused = !paused; + ren.running = !ren.running; + } else if (event.key.key == GLFW_KEY_T && event.key.state == GLFW_PRESS) { + ren.speed *= 10.0; + } else if (event.key.key == GLFW_KEY_Y && event.key.state == GLFW_PRESS) { + ren.speed /= 10.0; } break; } @@ -80,8 +83,6 @@ int main(int argc, char* argv[]) { while (frame_timer.read() < 16.60) ; - if(paused) - ren.frame -= 1; } } catch (const std::string& e) {