Nebula
Loading...
Searching...
No Matches
vkvertexlayout.h
Go to the documentation of this file.
1#pragma once
2//------------------------------------------------------------------------------
9//------------------------------------------------------------------------------
10#include "ids/idallocator.h"
11#include "util/hashtable.h"
12namespace Vulkan
13{
14
20
23
25{
26 VkPipelineVertexInputStateCreateInfo info;
28
30 {
31
32 }
34 {
35 this->info = rhs.info;
36 this->attrs = rhs.attrs;
37 this->info.vertexAttributeDescriptionCount = this->attrs.Size();
38 this->info.pVertexAttributeDescriptions = this->attrs.Begin();
39 }
41 {
42 this->info = rhs.info;
43 this->attrs = std::move(rhs.attrs);
44 this->info.vertexAttributeDescriptionCount = this->attrs.Size();
45 this->info.pVertexAttributeDescriptions = this->attrs.Begin();
46 }
47
48 void operator=(const DerivativeLayout& rhs)
49 {
50 this->info = rhs.info;
51 this->attrs = rhs.attrs;
52 this->info.vertexAttributeDescriptionCount = this->attrs.Size();
53 this->info.pVertexAttributeDescriptions = this->attrs.Begin();
54 }
55
57 {
58 this->info = rhs.info;
59 this->attrs = std::move(rhs.attrs);
60 this->info.vertexAttributeDescriptionCount = this->attrs.Size();
61 this->info.pVertexAttributeDescriptions = this->attrs.Begin();
62 }
63};
64
70
71enum
72{
79};
80
81typedef Ids::IdAllocator<
83 VkPipelineVertexInputStateCreateInfo,
84 BindInfo,
87 VertexLayoutVkBindInfo
90} // namespace Vulkan
An ID allocator associates an id with a slice in an N number of arrays.
Definition idallocator.h:39
Nebula's dynamic array class.
Definition array.h:60
Iterator Begin() const
return iterator to beginning of array
Definition array.h:1245
const SizeT Size() const
get number of elements in array
Definition array.h:880
Implements a fixed size one-dimensional array.
Definition fixedarray.h:20
Organizes key/value pairs by a hash code.
Definition hashtable.h:42
Vulkan implementation of GPU acceleration structure.
Definition vkaccelerationstructure.cc:15
Ids::IdAllocator< Util::HashTable< uint64_t, DerivativeLayout >, VkPipelineVertexInputStateCreateInfo, BindInfo, CoreGraphics::VertexLayoutInfo, Util::Array< SizeT >, VertexLayoutVkBindInfo > VkVertexLayoutAllocator
Definition vkvertexlayout.h:88
const VertexLayoutVkBindInfo & VertexLayoutGetVkBindInfo(const CoreGraphics::VertexLayoutId layout)
Get dynamic bind info.
Definition vkvertexlayout.cc:20
@ VertexSignature_BindInfo
Definition vkvertexlayout.h:75
@ VertexSignature_StreamSize
Definition vkvertexlayout.h:77
@ VertexSignature_DynamicBindInfo
Definition vkvertexlayout.h:78
@ VertexSignature_LayoutInfo
Definition vkvertexlayout.h:76
@ VertexSignature_VkPipelineInfo
Definition vkvertexlayout.h:74
@ VertexSignature_ProgramLayoutMapping
Definition vkvertexlayout.h:73
VkVertexLayoutAllocator vertexLayoutAllocator
Definition vkvertexlayout.cc:13
Definition vertexlayout.h:16
Definition vertexlayout.h:28
Definition vkvertexlayout.h:66
Util::FixedArray< VkVertexInputBindingDescription > binds
Definition vkvertexlayout.h:67
Util::FixedArray< VkVertexInputAttributeDescription > attrs
Definition vkvertexlayout.h:68
Definition vkvertexlayout.h:25
DerivativeLayout()
Definition vkvertexlayout.h:29
Util::Array< VkVertexInputAttributeDescription > attrs
Definition vkvertexlayout.h:27
DerivativeLayout(DerivativeLayout &&rhs)
Definition vkvertexlayout.h:40
void operator=(const DerivativeLayout &rhs)
Definition vkvertexlayout.h:48
DerivativeLayout(const DerivativeLayout &rhs)
Definition vkvertexlayout.h:33
VkPipelineVertexInputStateCreateInfo info
Definition vkvertexlayout.h:26
void operator=(DerivativeLayout &&rhs)
Definition vkvertexlayout.h:56
Definition vkvertexlayout.h:16
Util::FixedArray< VkVertexInputAttributeDescription2EXT > attrs
Definition vkvertexlayout.h:18
Util::FixedArray< VkVertexInputBindingDescription2EXT > binds
Definition vkvertexlayout.h:17