2#ifndef LIBSBX_ANIMATIONS_SKINNING_TASK_HPP_
3#define LIBSBX_ANIMATIONS_SKINNING_TASK_HPP_
9#include <vulkan/vulkan.h>
11#include <libsbx/core/engine.hpp>
13#include <libsbx/graphics/task.hpp>
15#include <libsbx/graphics/graphics_module.hpp>
16#include <libsbx/graphics/commands/command_buffer.hpp>
18#include <libsbx/graphics/buffers/storage_buffer.hpp>
19#include <libsbx/graphics/buffers/push_handler.hpp>
21#include <libsbx/graphics/pipeline/compute_pipeline.hpp>
23#include <libsbx/models/vertex3d.hpp>
25namespace sbx::animations {
41 template<
typename Type>
43 const auto required_size =
static_cast<std::size_t
>(element_count) *
sizeof(Type);
45 if (buffer.size() < required_size) {
46 buffer.resize(required_size + required_size / 2);
50 template<
typename Type>
52 _resize_buffer<Type>(buffer,
static_cast<std::uint32_t
>(data.size()));
55 buffer.update(data.data(), data.size() *
sizeof(Type));
59 auto _dispatch_skinning(
graphics::command_buffer& command_buffer, graphics::buffer::address_type bone_matrices_buffer_address) -> void;
Definition: skinning_task.hpp:27
Definition: command_buffer.hpp:15
Definition: compute_pipeline.hpp:18
Definition: push_handler.hpp:18
Definition: resource_storage.hpp:18
Definition: storage_buffer.hpp:17