Magnum::Vk::ShaderCreateInfo class new in Git master

Shader creation info.

Wraps a VkShaderModuleCreateInfo. See Shader creation for usage information.

Public types

enum class Flag: UnsignedInt { }
Shader creation flag.
using Flags = Containers::EnumSet<Flag>
Shader creation flags.

Constructors, destructors, conversion operators

ShaderCreateInfo(Containers::ArrayView<const void> code, Flags flags = {}) explicit
Constructor.
template<class T>
ShaderCreateInfo(Containers::Array<T>&& code, Flags flags = {}) explicit
Construct taking ownership of a r-value array instance.
template<class T, class Deleter>
ShaderCreateInfo(Containers::Array<T, Deleter>&& code, Flags flags = {}) deleted explicit
ShaderCreateInfo(NoInitT) explicit noexcept
Construct without initializing the contents.
ShaderCreateInfo(const VkShaderModuleCreateInfo& info) explicit
Construct from existing data.
ShaderCreateInfo(const ShaderCreateInfo&) deleted
Copying is not allowed.
ShaderCreateInfo(ShaderCreateInfo&& other) noexcept
Move constructor.
~ShaderCreateInfo()
Destructor.
operator const VkShaderModuleCreateInfo*() const

Public functions

auto operator=(const ShaderCreateInfo&) -> ShaderCreateInfo& deleted
Copying is not allowed.
auto operator=(ShaderCreateInfo&& other) -> ShaderCreateInfo& noexcept
Move assignment.
auto operator*() -> VkShaderModuleCreateInfo&
Underlying VkShaderModuleCreateInfo structure.
auto operator*() const -> const VkShaderModuleCreateInfo&
auto operator->() -> VkShaderModuleCreateInfo*
auto operator->() const -> const VkShaderModuleCreateInfo*

Enum documentation

enum class Magnum::Vk::ShaderCreateInfo::Flag: UnsignedInt

Shader creation flag.

Wraps VkShaderModuleCreateFlagBits.

Typedef documentation

typedef Containers::EnumSet<Flag> Magnum::Vk::ShaderCreateInfo::Flags

Shader creation flags.

Type-safe wrapper for VkShaderModuleCreateFlags.

Function documentation

Magnum::Vk::ShaderCreateInfo::ShaderCreateInfo(Containers::ArrayView<const void> code, Flags flags = {}) explicit

Constructor.

Parameters
code Shader code
flags Shader creation flags

The following VkShaderModuleCreateInfo fields are pre-filled in addition to sType, everything else is zero-filled:

  • flags
  • pCode and codeSize to code

template<class T>
Magnum::Vk::ShaderCreateInfo::ShaderCreateInfo(Containers::Array<T>&& code, Flags flags = {}) explicit

Construct taking ownership of a r-value array instance.

Behaves like ShaderCreateInfo(Containers::ArrayView<const void>, Flags) but in addition ensures code stays in scope until Shader is created, deleting it on destruction. The cleanup relies on the pointer and size stored in VkShaderModuleCreateInfo, changing the pCode and codeSize members afterwards may result in memory corruption.

template<class T, class Deleter>
Magnum::Vk::ShaderCreateInfo::ShaderCreateInfo(Containers::Array<T, Deleter>&& code, Flags flags = {}) explicit deleted

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Sorry, custom Corrade::Containers::Array deleter types can't be taken over.

Magnum::Vk::ShaderCreateInfo::ShaderCreateInfo(NoInitT) explicit noexcept

Construct without initializing the contents.

Note that not even the sType field is set — the structure has to be fully initialized afterwards in order to be usable.

Magnum::Vk::ShaderCreateInfo::ShaderCreateInfo(const VkShaderModuleCreateInfo& info) explicit

Construct from existing data.

Copies the existing values verbatim, pointers are kept unchanged without taking over the ownership. Modifying the newly created instance will not modify the original data nor the pointed-to data.

Magnum::Vk::ShaderCreateInfo::~ShaderCreateInfo()

Destructor.

If the ShaderCreateInfo(Containers::Array<T>&&, Flags) constructor was used, calls deleter on the stored array.

Magnum::Vk::ShaderCreateInfo::operator const VkShaderModuleCreateInfo*() const

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

const VkShaderModuleCreateInfo& Magnum::Vk::ShaderCreateInfo::operator*() const

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

VkShaderModuleCreateInfo* Magnum::Vk::ShaderCreateInfo::operator->()

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

const VkShaderModuleCreateInfo* Magnum::Vk::ShaderCreateInfo::operator->() const

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.