8 #include "irendertarget.h"
9 #include "rendertexturecube.h"
12 #include <nap/resource.h>
13 #include <nap/resourceptr.h>
14 #include <vulkan/vulkan_core.h>
20 class CubeRenderTarget;
22 class PerspCameraComponentInstance;
68 virtual void beginRendering()
override;
73 virtual void endRendering()
override;
78 virtual const glm::ivec2
getBufferSize()
const override {
return mSize; }
99 virtual VkRenderPass
getRenderPass()
const override {
return mRenderPass; }
120 virtual VkSampleCountFlagBits
getSampleCount()
const override {
return VK_SAMPLE_COUNT_1_BIT; }
180 static const std::vector<glm::mat4>& getCubeMapViewMatrices();
185 static const std::vector<glm::mat4>& getCubeMapInverseViewMatrices();
187 bool mSampleShading =
true;
188 bool mUpdateLODs =
false;
200 void renderInternal(
const glm::vec3& camPosition,
const glm::mat4& projectionMatrix,
CubeRenderTargetCallback renderCallback);
205 void setLayerIndex(
uint index);
208 VkRenderPass mRenderPass = VK_NULL_HANDLE;
210 VkFormat mVulkanColorFormat = VK_FORMAT_UNDEFINED;
211 VkFormat mVulkanDepthFormat = VK_FORMAT_UNDEFINED;
216 std::array<VkFramebuffer, TextureCube::layerCount> mFramebuffers = { VK_NULL_HANDLE };
219 uint mLayerIndex = 0U;
220 bool mIsFirstPass =
true;
@ D16
16 bit unsigned, 1 component
unsigned int uint
Definition: numeric.h:23
Definition: irendertarget.h:21
virtual VkRenderPass getRenderPass() const override
Definition: cuberendertarget.h:99
EFormat
Definition: rendertexturecube.h:43
Definition: texture.h:298
EDepthFormat
Definition: rendertexturecube.h:99
virtual VkSampleCountFlagBits getSampleCount() const override
Definition: cuberendertarget.h:120
Definition: objectptr.h:154
ECullWindingOrder
Definition: materialcommon.h:30
virtual const RGBAColorFloat & getClearColor() const override
Definition: cuberendertarget.h:89
Definition: errorstate.h:19
virtual VkFormat getColorFormat() const override
Definition: cuberendertarget.h:109
Definition: imagedata.h:23
Definition: renderservice.h:275
virtual VkFormat getDepthFormat() const override
Definition: cuberendertarget.h:114
uint getLayerIndex() const
Definition: cuberendertarget.h:175
virtual ECullWindingOrder getWindingOrder() const override
Definition: cuberendertarget.h:94
virtual bool getSampleShadingEnabled() const override
Definition: cuberendertarget.h:125
Definition: perspcameracomponent.h:46
TextureCube & getColorTexture()
Definition: cuberendertarget.h:104
Definition: templateapp.h:17
@ RGBA8
08 bit unsigned, 4 components
std::function< void(CubeRenderTarget &target, const glm::mat4 &projection, const glm::mat4 &view)> CubeRenderTargetCallback
Definition: cuberendertarget.h:25
static constexpr const uint layerCount
Definition: texture.h:304
Definition: resource.h:19
virtual void setClearColor(const RGBAColorFloat &color) override
Definition: cuberendertarget.h:84
Definition: cuberendertarget.h:43
glm::ivec2 getSize() const
Definition: cuberendertarget.h:130
virtual const glm::ivec2 getBufferSize() const override
Definition: cuberendertarget.h:78
ResourcePtr< TextureCube > mCubeTexture
Property: 'CubeTexture' cube texture to render to.
Definition: cuberendertarget.h:194