From 1c27849121cb94007829879bdc9879eeb5547db8 Mon Sep 17 00:00:00 2001 From: Sebastian Gaida <gaida@ca-digit.com> Date: Tue, 8 Jun 2021 18:25:25 +0200 Subject: [PATCH] [#69] add uniform buffer for color --- projects/particle_simulation/shaders/frag.spv | Bin 808 -> 832 bytes .../particle_simulation/shaders/shader.frag | 5 ++- projects/particle_simulation/src/main.cpp | 34 +++++++++++++++++- 3 files changed, 35 insertions(+), 4 deletions(-) diff --git a/projects/particle_simulation/shaders/frag.spv b/projects/particle_simulation/shaders/frag.spv index d926fa4b4ad738f5aaca2f00fbb92a91d024fd12..2bda54b389e0b6a615e819f05c1ac07bbd714f86 100644 GIT binary patch literal 832 zcmYk4%Syvg5QfLb)JxTRcUM}w6p9NKK@?OZE((f1K!|O?NNhrr2)>?A<wo%T(o}QG zWHSHx=FH4VokoAjY{6D--S%y^wyYt=tYyv8d&B49Aj`*tlhb2}4RcBmrY&Ys9(xa> z2^%Z2O)+RXTyKs}H2YG*qISKZfBkghXJHylgFN)J*I*n@{p95>9OW6zDvbB=;0^Em zQJVT${uzgU98E%h98E<<A0gawjf*CuxER*~S46!p*W9wVq{wfRIGL&?DO58nDy1of zm^G>(m^H=oB+l7UTs$UOlt&3eH}ykfrT?->*Y>2<Q1f&ichmvay06vj&m=KU*$4Lq zPyNHcy;<C=V)Ey;>-lK&e0r$o6O+$3+z|!WE5Fn%XJ7A4X<gZY>hm3mxzDbi%kumS z&@ZZ(nb10Va)<1}w&Xb<4VIXB(DoFs%Xei9vZE^A&^wF#wmdB7(aW|xy`WKxIniKu wD;<qm#LNnNrhCFO1B+h2rMU9fdQxXoMsL)=6iLl38Tyqnn34EL-JZ*S0Ti@MI{*Lx literal 808 zcmYk4%}&Bl5QT@IB7*WGMt1~csUa@Zn3!nPn7Sar=mRteO{_sm+G66)XY;Atn0USd z+DnG%Irp49Gq)||dmCmstJt>f+Hy55FUG8Dr8K*Pr$IkXCjFDsV-z(jq(U@xX^P6k z+bEc^v8iZC1E<6FRM3fLUosT6>kho@#~Uy9=c8zp_+I=nn)s0yKEL|oBt}y~;|_=J z;LaP*=U$wAOnq+}%zSSWL{bIsKDu&77tF@f#Uv|mq{#N=n3MJvE|S}D8b)eKOi`1Y zEmllP445@uiO|%A*Cx(s3NIeQI7ot!p-cL~vF87@l#aE;Wu)fnJnpECSnEDhv$v$A zDWrXHZ|JFi@VB?b-4({auATM6t^M?n^@H*A4qH;8>!xpN>DkkBNnA&<ull@4F!$Nf ze_5HY0RCcynF;Pt7;Qyi_Ib6&)fAf@$%SuAfd-!7xvdkpfA*<UQ>HgK>VUZmIQnWR qQ;WKInHdi6jxstpykO>rJJX$!nTLh{Ta2T8Da0)F_hUIbSNsBx&P+A{ diff --git a/projects/particle_simulation/shaders/shader.frag b/projects/particle_simulation/shaders/shader.frag index 215fa788..87ae41a7 100644 --- a/projects/particle_simulation/shaders/shader.frag +++ b/projects/particle_simulation/shaders/shader.frag @@ -8,11 +8,10 @@ layout(set=0, binding=0) uniform uColor { } Color; layout(set=0,binding=1) uniform uPosition{ - vec3 position; + vec2 position; } Position; void main() { -// outColor = Color.color; - outColor = vec4(1.0f, 0.0f,0.f,1.f); + outColor = Color.color; } \ No newline at end of file diff --git a/projects/particle_simulation/src/main.cpp b/projects/particle_simulation/src/main.cpp index c1c0b59e..1d5f4de5 100644 --- a/projects/particle_simulation/src/main.cpp +++ b/projects/particle_simulation/src/main.cpp @@ -4,6 +4,25 @@ #include <vkcv/camera/CameraManager.hpp> #include <chrono> +uint32_t findMemoryType( vk::PhysicalDeviceMemoryProperties const & memoryProperties, + uint32_t typeBits, + vk::MemoryPropertyFlags requirementsMask ) +{ + uint32_t typeIndex = uint32_t( ~0 ); + for ( uint32_t i = 0; i < memoryProperties.memoryTypeCount; i++ ) + { + if ( ( typeBits & 1 ) && + ( ( memoryProperties.memoryTypes[i].propertyFlags & requirementsMask ) == requirementsMask ) ) + { + typeIndex = i; + break; + } + typeBits >>= 1; + } + assert( typeIndex != uint32_t( ~0 ) ); + return typeIndex; +} + int main(int argc, const char** argv) { const char* applicationName = "Particlesystem"; @@ -97,7 +116,7 @@ int main(int argc, const char** argv) { 1 ); - vkcv::Buffer<glm::vec4> position = core.createBuffer<glm::vec4>( + vkcv::Buffer<glm::vec2> position = core.createBuffer<glm::vec2>( vkcv::BufferType::UNIFORM, 1 ); @@ -120,6 +139,14 @@ int main(int argc, const char** argv) { auto start = std::chrono::system_clock::now(); + glm::vec4 colorData = glm::vec4(1.0f,1.0f,0.0f,1.0f); + + glm::vec2 pos = glm::vec2(1.f); + + window.e_mouseMove.add([&]( double offsetX, double offsetY) { + pos = glm::vec2(static_cast<float>(offsetX), static_cast<float>(offsetY)); + }); + while (window.isWindowOpen()) { window.pollEvents(); @@ -129,6 +156,10 @@ int main(int argc, const char** argv) { continue; } + color.fill(&colorData); + + position.fill(&pos); + auto end = std::chrono::system_clock::now(); auto deltatime = end - start; start = end; @@ -149,5 +180,6 @@ int main(int argc, const char** argv) { core.submitCommandStream(cmdStream); core.endFrame(); } + return 0; } -- GitLab