Program Listing for File GenericTypes.cpp

Return to documentation for file (Source\Azura\RenderSystem\Src\Generic\GenericTypes.cpp)

#include "Generic/GenericTypes.h"

namespace Azura {

ShaderRequirements::ShaderRequirements(U32 numShaders, Memory::Allocator& allocator)
  : m_shaders(numShaders, allocator) {

}

U32 ShaderRequirements::AddShader(const ShaderCreateInfo& info) {
  m_shaders.PushBack(info);
  return m_shaders.GetSize() - 1;
}

RenderPassRequirements::RenderPassRequirements(U32 numRenderTargets,
                                               U32 numPasses,
                                               U32 numBuffers,
                                               Memory::Allocator& alloc)
  : m_buffers(numBuffers, alloc),
    m_targets(numRenderTargets, alloc),
    m_passSequence(numPasses, alloc) {
}

U32 RenderPassRequirements::AddTarget(const RenderTargetCreateInfo& info) {
  m_targets.PushBack(info);
  return m_targets.GetSize() - 1;
}

U32 RenderPassRequirements::AddBuffer(const StructuredBufferCreateInfo& info) {
  m_buffers.PushBack(info);
  return m_buffers.GetSize() - 1;
}

U32 RenderPassRequirements::AddPass(const PipelinePassCreateInfo& info) {
  m_passSequence.PushBack(info);
  return m_passSequence.GetSize() - 1;
}

DescriptorRequirements::DescriptorRequirements(U32 numDescriptors, U32 numSets, Memory::Allocator& alloc)
  : m_descriptorSlots(numDescriptors, alloc),
    m_descriptorSets(numSets, alloc),
    m_allocator(alloc) {
}

U32 DescriptorRequirements::AddDescriptor(const DescriptorSlotCreateInfo& info) {
  m_descriptorSlots.PushBack(info);
  return m_descriptorSlots.GetSize() - 1;
}

U32 DescriptorRequirements::AddSet(const std::initializer_list<U32>& sets) {
  m_descriptorSets.EmplaceBack(sets, m_allocator);
  return m_descriptorSets.GetSize() - 1;
}

} // namespace Azura