8 #include "irendertarget.h"
9 #include "rendertexturecube.h"
12 #include <nap/resource.h>
13 #include <nap/resourceptr.h>
14 #include <vulkan/vulkan_core.h>
15 #include <texturelink.h>
21 class CubeRenderTarget;
23 class PerspCameraComponentInstance;
69 virtual void beginRendering()
override;
74 virtual void endRendering()
override;
79 virtual const glm::ivec2
getBufferSize()
const override {
return mSize; }
121 virtual VkSampleCountFlagBits
getSampleCount()
const override {
return VK_SAMPLE_COUNT_1_BIT; }
131 virtual VkImageLayout
getFinalLayout()
const override {
return VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL; }
186 static const std::vector<glm::mat4>& getCubeMapViewTransforms();
188 bool mSampleShading =
true;
189 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 };
218 glm::ivec2 mSize = { 0, 0 };
219 uint mLayerIndex = 0;
220 TextureCubeTargetLink mTextureLink;
@ 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:100
EFormat
Definition: rendertexturecube.h:43
Definition: texture.h:302
virtual VkImageLayout getFinalLayout() const override
Definition: cuberendertarget.h:131
EDepthFormat
Definition: rendertexturecube.h:105
ResourcePtr< RenderTextureCube > mCubeTexture
Property: 'CubeTexture' cube texture to render to.
Definition: cuberendertarget.h:193
virtual VkSampleCountFlagBits getSampleCount() const override
Definition: cuberendertarget.h:121
Definition: objectptr.h:150
ECullWindingOrder
Definition: materialcommon.h:30
virtual const RGBAColorFloat & getClearColor() const override
Definition: cuberendertarget.h:90
Definition: errorstate.h:19
virtual VkFormat getColorFormat() const override
Definition: cuberendertarget.h:110
Definition: imagedata.h:23
Definition: renderservice.h:198
virtual VkFormat getDepthFormat() const override
Definition: cuberendertarget.h:115
uint getLayerIndex() const
Definition: cuberendertarget.h:181
virtual ECullWindingOrder getWindingOrder() const override
Definition: cuberendertarget.h:95
virtual bool getSampleShadingEnabled() const override
Definition: cuberendertarget.h:126
Definition: perspcameracomponent.h:46
TextureCube & getColorTexture()
Definition: cuberendertarget.h:105
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:26
static constexpr const uint layerCount
Definition: texture.h:309
Definition: resource.h:19
virtual void setClearColor(const RGBAColorFloat &color) override
Definition: cuberendertarget.h:85
Definition: cuberendertarget.h:44
glm::ivec2 getSize() const
Definition: cuberendertarget.h:136
virtual const glm::ivec2 getBufferSize() const override
Definition: cuberendertarget.h:79