Nebula
Toggle main menu visibility
Loading...
Searching...
No Matches
vkinstancerenderer.h
Go to the documentation of this file.
1
#pragma once
2
//------------------------------------------------------------------------------
8
//------------------------------------------------------------------------------
9
#include "
core/refcounted.h
"
10
#include "
instancing/base/instancerendererbase.h
"
11
#include "coregraphics/constantbuffer.h"
12
13
namespace
Vulkan
14
{
15
class
VkInstanceRenderer
:
public
Base::InstanceRendererBase
16
{
17
__DeclareClass
(
VkInstanceRenderer
);
18
public
:
20
VkInstanceRenderer
();
22
virtual
~VkInstanceRenderer
();
23
25
void
Setup
();
27
void
Close
();
28
30
void
Render
(
const
SizeT
multiplier);
31
private
:
32
Ptr<CoreGraphics::ShaderState>
shaderState
;
33
Ptr<CoreGraphics::ConstantBuffer>
instancingBuffer
;
34
Ptr<CoreGraphics::ShaderVariable>
instancingBlockVar
;
35
36
Ptr<CoreGraphics::ShaderVariable>
modelArrayVar
;
37
Ptr<CoreGraphics::ShaderVariable>
modelViewArrayVar
;
38
Ptr<CoreGraphics::ShaderVariable>
modelViewProjectionArrayVar
;
39
Ptr<CoreGraphics::ShaderVariable>
idArrayVar
;
40
41
static
const
int
MaxInstancesPerBatch
= 256;
42
};
43
}
// namespace Vulkan
Base::InstanceRendererBase
Definition
instancerendererbase.h:19
Ptr
Nebula's smart pointer class which manages the life time of RefCounted objects.
Definition
ptr.h:38
Vulkan::VkInstanceRenderer::__DeclareClass
__DeclareClass(VkInstanceRenderer)
Vulkan::VkInstanceRenderer::Render
void Render(const SizeT multiplier)
render
Definition
vkinstancerenderer.cc:76
Vulkan::VkInstanceRenderer::instancingBlockVar
Ptr< CoreGraphics::ShaderVariable > instancingBlockVar
Definition
vkinstancerenderer.h:34
Vulkan::VkInstanceRenderer::shaderState
Ptr< CoreGraphics::ShaderState > shaderState
Definition
vkinstancerenderer.h:32
Vulkan::VkInstanceRenderer::instancingBuffer
Ptr< CoreGraphics::ConstantBuffer > instancingBuffer
Definition
vkinstancerenderer.h:33
Vulkan::VkInstanceRenderer::idArrayVar
Ptr< CoreGraphics::ShaderVariable > idArrayVar
Definition
vkinstancerenderer.h:39
Vulkan::VkInstanceRenderer::~VkInstanceRenderer
virtual ~VkInstanceRenderer()
destructor
Definition
vkinstancerenderer.cc:28
Vulkan::VkInstanceRenderer::modelViewArrayVar
Ptr< CoreGraphics::ShaderVariable > modelViewArrayVar
Definition
vkinstancerenderer.h:37
Vulkan::VkInstanceRenderer::Setup
void Setup()
setup renderer
Definition
vkinstancerenderer.cc:37
Vulkan::VkInstanceRenderer::Close
void Close()
close rendered
Definition
vkinstancerenderer.cc:57
Vulkan::VkInstanceRenderer::modelArrayVar
Ptr< CoreGraphics::ShaderVariable > modelArrayVar
Definition
vkinstancerenderer.h:36
Vulkan::VkInstanceRenderer::modelViewProjectionArrayVar
Ptr< CoreGraphics::ShaderVariable > modelViewProjectionArrayVar
Definition
vkinstancerenderer.h:38
Vulkan::VkInstanceRenderer::VkInstanceRenderer
VkInstanceRenderer()
constructor
Definition
vkinstancerenderer.cc:20
Vulkan::VkInstanceRenderer::MaxInstancesPerBatch
static const int MaxInstancesPerBatch
Definition
vkinstancerenderer.h:41
instancerendererbase.h
Vulkan
Vulkan implementation of GPU acceleration structure.
Definition
vkaccelerationstructure.cc:15
refcounted.h
SizeT
int SizeT
Definition
types.h:42
code
render
instancing
vk
vkinstancerenderer.h
Generated on
for Nebula. Dark theme by
Tilen Majerle
. All rights reserved.