CeresEngine 0.2.0
A game development framework
Loading...
Searching...
No Matches
VKShader.hpp
Go to the documentation of this file.
1//
2// CeresEngine - A game development framework
3//
4// Created by Rogiel Sulzbach.
5// Copyright (c) 2018-2022 Rogiel Sulzbach. All rights reserved.
6//
7
8#pragma once
9
10#include "VKCommon.hpp"
11
12#include "VKPipelineLayout.hpp"
13
15
16namespace CeresEngine {
17
18 class VKShaderProgram;
19
56
108
109} // namespace CeresEngine
A retain-release type of smart pointer.
Definition SmartPtr.hpp:132
GPUDevice & device
The owning device this object was created from.
Definition Common.hpp:55
Definition GPUShader.hpp:256
Definition GPUShader.hpp:361
const Descriptor & descriptor
A structure that describes the object and it's properties.
Definition Common.hpp:69
Definition VKDevice.hpp:79
Definition VKCommon.hpp:143
Definition VKCommon.hpp:93
Definition VKShader.hpp:20
VKShader(VKDevice &device, const GPUShaderDescriptor &descriptor)
GPUShaderReflectionDescriptor mReflectionDescriptor
The shader reflection descriptor.
Definition VKShader.hpp:34
const GPUShaderDescriptor descriptorVK
A structure that describes the shader and it's properties.
Definition VKShader.hpp:25
VKObjectAllocator Allocator
An allocator type used to allocate new VKShader instances from a memory pool.
Definition VKShader.hpp:45
void destroy() noexcept final
ShaderType mType
The shader type.
Definition VKShader.hpp:31
VkShaderModule mShaderModule
The Vulkan shader module object.
Definition VKShader.hpp:28
static Allocator & getAllocator() noexcept
Returns the allocator for VKShader.
Definition VKShader.hpp:57
const VKPipelineLayoutPtr & getPipelineLayoutVK() const noexcept
The pipeline layout for this shader program.
Definition VKShader.hpp:106
const GPUShaderProgramDescriptor descriptorVK
A structure that describes the shader program and it's properties.
Definition VKShader.hpp:60
VKShaderProgram(VKDevice &device, const GPUShaderProgramDescriptor &descriptor)
GPUPipelineLayoutPtr getPipelineLayout() const final
The pipeline layout deduced for this shader program.
Definition VKShader.hpp:103
VKObjectAllocator Allocator
An allocator type used to allocate new VKShaderProgram instances from a memory pool.
Definition VKShader.hpp:87
GPUShaderReflectionDescriptor mReflectionDescriptor
The shader reflection descriptor.
Definition VKShader.hpp:69
GPUShaderProgramDescriptor mDescriptor
The shader program descriptor.
Definition VKShader.hpp:66
Definition Application.hpp:19
VKAllocator & gVKAllocator()
std::vector< T, ScopedAllocatorAdaptor< StdAllocator< T, RawAllocator > > > Vector
Vector is a sequence container that encapsulates dynamic size arrays.
Definition Vector.hpp:17
ThreadSafeAllocator< MemoryPool< NodePool, AllocatorReference< VKAllocator > > > VKObjectAllocator
A pool allocator to be used for individual object pools.
Definition VKCommon.hpp:59
constexpr size_t hash(const T &v)
Generates a hash for the provided type.
Definition Hash.hpp:25
Definition Span.hpp:668
Definition Allocator.hpp:66
Shader source and binary code descriptor structure.
Definition GPUShader.hpp:193
Descriptor structure for shader programs.
Definition GPUShader.hpp:303
Shader reflection descriptor structure.
Definition GPUShader.hpp:108
Shader type enumeration.
Definition ShaderType.hpp:59