Nebula
Toggle main menu visibility
Loading...
Searching...
No Matches
vkshaderserver.h
Go to the documentation of this file.
1
#pragma once
2
//------------------------------------------------------------------------------
9
//------------------------------------------------------------------------------
10
#include "
core/refcounted.h
"
11
#include "
util/fixedpool.h
"
12
#include "
coregraphics/base/shaderserverbase.h
"
13
#include "
coregraphics/config.h
"
14
#include "
coregraphics/texture.h
"
15
16
17
namespace
Graphics
18
{
19
class
FrameScript;
20
}
21
22
namespace
Vulkan
23
{
24
25
class
VkShaderServer
:
public
Base::ShaderServerBase
26
{
27
__DeclareClass
(
VkShaderServer
);
28
__DeclareInterfaceSingleton
(
VkShaderServer
);
29
public
:
31
VkShaderServer
();
33
virtual
~VkShaderServer
();
34
36
bool
Open
();
38
void
Close
();
39
40
42
void
AddPendingImageView
(
CoreGraphics::TextureId
tex, VkImageViewCreateInfo viewCreate, uint32_t bind);
43
45
void
UpdateResources
();
46
47
private
:
48
49
Threading::CriticalSection
bindResourceCriticalSection
;
50
struct
_PendingView
51
{
52
CoreGraphics::TextureId
tex
;
53
VkImageViewCreateInfo
createInfo
;
54
uint32_t
bind
;
55
};
56
57
struct
_PendingViewDelete
58
{
59
VkImageView
view
;
60
uint32_t
replaceCounter
;
61
};
62
63
Threading::SafeQueue<_PendingView>
pendingViews
;
64
Util::Array<_PendingViewDelete>
pendingViewDeletes
;
65
};
66
67
}
// namespace Vulkan
Base::ShaderServerBase
The ShaderServer loads all shaders when created, meaning all shaders in the project must be valid and...
Definition
shaderserverbase.h:59
Threading::SafeQueue
Thread-safe version of Util::Queue.
Definition
safequeue.h:27
Util::Array
Nebula's dynamic array class.
Definition
array.h:61
Vulkan::VkShaderServer::AddPendingImageView
void AddPendingImageView(CoreGraphics::TextureId tex, VkImageViewCreateInfo viewCreate, uint32_t bind)
add a pending image view update to the update queue, thread safe
Definition
vkshaderserver.cc:115
Vulkan::VkShaderServer::__DeclareInterfaceSingleton
__DeclareInterfaceSingleton(VkShaderServer)
Vulkan::VkShaderServer::Close
void Close()
close the shader server
Definition
vkshaderserver.cc:54
Vulkan::VkShaderServer::__DeclareClass
__DeclareClass(VkShaderServer)
Vulkan::VkShaderServer::bindResourceCriticalSection
Threading::CriticalSection bindResourceCriticalSection
Definition
vkshaderserver.h:49
Vulkan::VkShaderServer::VkShaderServer
VkShaderServer()
constructor
Definition
vkshaderserver.cc:23
Vulkan::VkShaderServer::~VkShaderServer
virtual ~VkShaderServer()
destructor
Definition
vkshaderserver.cc:31
Vulkan::VkShaderServer::UpdateResources
void UpdateResources()
begin frame
Definition
vkshaderserver.cc:69
Vulkan::VkShaderServer::pendingViews
Threading::SafeQueue< _PendingView > pendingViews
Definition
vkshaderserver.h:63
Vulkan::VkShaderServer::Open
bool Open()
open the shader server
Definition
vkshaderserver.cc:40
Vulkan::VkShaderServer::pendingViewDeletes
Util::Array< _PendingViewDelete > pendingViewDeletes
Definition
vkshaderserver.h:64
fixedpool.h
Graphics
Implements the shader server used by Vulkan.
Definition
cameramanager.h:22
Vulkan
Vulkan implementation of GPU acceleration structure.
Definition
vkaccelerationstructure.cc:15
refcounted.h
config.h
Compile time configuration options for the CoreGraphics subsystem.
shaderserverbase.h
CoreGraphics::TextureId
texture type
Definition
texture.h:25
Vulkan::VkShaderServer::_PendingViewDelete
Definition
vkshaderserver.h:58
Vulkan::VkShaderServer::_PendingViewDelete::view
VkImageView view
Definition
vkshaderserver.h:59
Vulkan::VkShaderServer::_PendingViewDelete::replaceCounter
uint32_t replaceCounter
Definition
vkshaderserver.h:60
Vulkan::VkShaderServer::_PendingView
Definition
vkshaderserver.h:51
Vulkan::VkShaderServer::_PendingView::bind
uint32_t bind
Definition
vkshaderserver.h:54
Vulkan::VkShaderServer::_PendingView::createInfo
VkImageViewCreateInfo createInfo
Definition
vkshaderserver.h:53
Vulkan::VkShaderServer::_PendingView::tex
CoreGraphics::TextureId tex
Definition
vkshaderserver.h:52
texture.h
code
render
coregraphics
vk
vkshaderserver.h
Generated on
for Nebula. Dark theme by
Tilen Majerle
. All rights reserved.