descriptor update
This commit is contained in:
parent
073205376f
commit
abc1d7da9f
8 changed files with 254 additions and 127 deletions
33
main.cpp
33
main.cpp
|
|
@ -22,6 +22,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|||
#include <exception>
|
||||
#include <thread>
|
||||
#include <vulkan/vulkan.h>
|
||||
#include "VulkanInitializers.hpp"
|
||||
import Crafter.Graphics;
|
||||
import Crafter.Asset;
|
||||
import Crafter.Event;
|
||||
|
|
@ -45,29 +46,39 @@ int main() {
|
|||
|
||||
Camera camera(1.57079633, 16 / 9, 0.01, 512);
|
||||
camera.Update();
|
||||
VkCommandBuffer cmd = window.StartInit();
|
||||
Mesh<VertexUV>* mesh = Mesh<VertexUV>::FromAssetUV(asset.entries[0].data.data());
|
||||
DescriptorSet descriptors;
|
||||
Pipeline::GetDescriptorSet(descriptors);
|
||||
|
||||
MeshShader<VertexUV> meshShader(mesh, &camera);
|
||||
meshShader.WriteDescriptors(descriptors);
|
||||
meshShader.Update();
|
||||
|
||||
Asset asset2;
|
||||
asset2.LoadFull("texture.cras");
|
||||
|
||||
VkCommandBuffer cmd = window.StartInit();
|
||||
VulkanTexture<Pixel_RU8_GU8_BU8_AU8>* txt = VulkanTexture<Pixel_RU8_GU8_BU8_AU8>::FromAsset(asset2.entries[0].data.data(), cmd);
|
||||
|
||||
TextureShader texShader(txt);
|
||||
texShader.WriteDescriptors(descriptors);
|
||||
DescriptorSet<MeshVulkanShader, FragmentShader> descriptors;
|
||||
EventListener<void> bruhlistener(&descriptors.onDescriptorRefresh, [&meshShader, &texShader, &camera, &descriptors](){
|
||||
meshShader.WriteDescriptors(&descriptors.set[0]);
|
||||
texShader.WriteDescriptors(&descriptors.set[0]);
|
||||
});
|
||||
meshShader.WriteDescriptors(&descriptors.set[0]);
|
||||
texShader.WriteDescriptors(&descriptors.set[0]);
|
||||
MeshShader<VertexUV> meshShader2(mesh, &camera);
|
||||
TextureShader texShader2(txt);
|
||||
DescriptorSet<MeshVulkanShader, FragmentShader> descriptors2;
|
||||
meshShader2.WriteDescriptors(&descriptors2.set[0]);
|
||||
texShader2.WriteDescriptors(&descriptors2.set[0]);
|
||||
|
||||
meshShader.Update();
|
||||
meshShader2.Update();
|
||||
|
||||
window.FinishInit();
|
||||
|
||||
EventListener<VkCommandBuffer> listener(&window.onDraw, [&descriptors, &meshShader](VkCommandBuffer cmd){
|
||||
EventListener<VkCommandBuffer> listener(&window.onDraw, [&descriptors, &meshShader, &descriptors2, &meshShader2](VkCommandBuffer cmd){
|
||||
vkCmdBindDescriptorSets(cmd, VK_PIPELINE_BIND_POINT_GRAPHICS, Pipeline::pipelineLayout, 0, 2, &descriptors.set[0], 0, NULL);
|
||||
vkCmdBindPipeline(cmd, VK_PIPELINE_BIND_POINT_GRAPHICS, Pipeline::pipeline);
|
||||
VulkanDevice::vkCmdDrawMeshTasksEXTProc(cmd, meshShader.threadCount, 1, 1);
|
||||
|
||||
vkCmdBindDescriptorSets(cmd, VK_PIPELINE_BIND_POINT_GRAPHICS, Pipeline::pipelineLayout, 0, 2, &descriptors2.set[0], 0, NULL);
|
||||
vkCmdBindPipeline(cmd, VK_PIPELINE_BIND_POINT_GRAPHICS, Pipeline::pipeline);
|
||||
VulkanDevice::vkCmdDrawMeshTasksEXTProc(cmd, meshShader2.threadCount, 1, 1);
|
||||
});
|
||||
|
||||
window.Start();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue