Nebula
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"
13#include "coregraphics/config.h"
15#include "effectfactory.h"
16#include "system_shaders/shared.h"
17
18namespace Graphics
19{
20class FrameScript;
21}
22
23namespace Vulkan
24{
25
27{
30public:
34 virtual ~VkShaderServer();
35
37 bool Open();
39 void Close();
40
41
43 void AddPendingImageView(CoreGraphics::TextureId tex, VkImageViewCreateInfo viewCreate, uint32_t bind);
44
46 void UpdateResources();
47
48private:
49
52 {
54 VkImageViewCreateInfo createInfo;
55 uint32_t bind;
56 };
57
59 {
60 VkImageView view;
62 };
63
66
67 AnyFX::EffectFactory* factory;
68};
69
70} // namespace Vulkan
The ShaderServer loads all shaders when created, meaning all shaders in the project must be valid and...
Definition shaderserverbase.h:59
Critical section objects are used to protect a portion of code from parallel execution.
Thread-safe version of Util::Queue.
Definition safequeue.h:27
Nebula's dynamic array class.
Definition array.h:60
Definition vkshaderserver.h:27
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:120
__DeclareInterfaceSingleton(VkShaderServer)
void Close()
close the shader server
Definition vkshaderserver.cc:58
__DeclareClass(VkShaderServer)
Threading::CriticalSection bindResourceCriticalSection
Definition vkshaderserver.h:50
VkShaderServer()
constructor
Definition vkshaderserver.cc:25
virtual ~VkShaderServer()
destructor
Definition vkshaderserver.cc:33
void UpdateResources()
begin frame
Definition vkshaderserver.cc:74
Threading::SafeQueue< _PendingView > pendingViews
Definition vkshaderserver.h:64
bool Open()
open the shader server
Definition vkshaderserver.cc:42
AnyFX::EffectFactory * factory
Definition vkshaderserver.h:67
Util::Array< _PendingViewDelete > pendingViewDeletes
Definition vkshaderserver.h:65
Implements the shader server used by Vulkan.
Definition cameramanager.h:21
Vulkan implementation of GPU acceleration structure.
Definition vkaccelerationstructure.cc:15
Compile time configuration options for the CoreGraphics subsystem.
texture type
Definition texture.h:25
Definition vkshaderserver.h:59
VkImageView view
Definition vkshaderserver.h:60
uint32_t replaceCounter
Definition vkshaderserver.h:61
Definition vkshaderserver.h:52
uint32_t bind
Definition vkshaderserver.h:55
VkImageViewCreateInfo createInfo
Definition vkshaderserver.h:54
CoreGraphics::TextureId tex
Definition vkshaderserver.h:53