5#ifndef RENDERGRAPHRENDERGRAPHBUFFERNODE_H
6#define RENDERGRAPHRENDERGRAPHBUFFERNODE_H
43 setFixedSize(other.size.width, other.size.height);
52 setFixedSize(other.width, other.height);
61 setFixedSize(other.width, other.height);
141 throw std::runtime_error(
"RenderGraph conflict: Different names for same resource - existing: '" +
142 m_name +
"', new: '" + name +
"'");
145 throw std::runtime_error(
"RenderGraph conflict: Incompatible formats for resource '" + name +
146 "' - existing format conflicts with new format");
149 throw std::runtime_error(
"RenderGraph conflict: Incompatible sample counts for resource '" + name +
150 "' - existing samples conflict with new samples");
166 throw std::runtime_error(
"RenderGraph conflict: Incompatible sizes for resource '" + name +
"'");
172 throw std::runtime_error(
"RenderGraph conflict: Incompatible sizes for texture resource '" + name +
"'");
198 throw std::runtime_error(
"RenderGraphWindowTargetNode can only be created from window Target");
206 throw std::runtime_error(
"RenderGraphWindowTargetNode can only merge with window Target");
230 throw std::runtime_error(
"RenderGraph conflict: Different names for same window target - existing: '" +
231 m_name +
"', new: '" + name +
"'");
234 throw std::runtime_error(
"RenderGraph conflict: Different windows for same target '" + name +
"'");
241 throw std::runtime_error(
"RenderGraphWindowTargetNode can't merge with texture");
245 throw std::runtime_error(
"RenderGraphWindowDepthStencilNode can't merge with depth stencil");
267 throw std::runtime_error(
"RenderGraphWindowDepthStencilNode can only be created from window DepthStencil");
275 throw std::runtime_error(
"RenderGraphWindowDepthStencilNode can only merge with window DepthStencil");
299 throw std::runtime_error(
"RenderGraph conflict: Different names for same window depth stencil - existing: '" +
300 m_name +
"', new: '" + name +
"'");
303 throw std::runtime_error(
"RenderGraph conflict: Different windows for same depth stencil '" + name +
"'");
310 throw std::runtime_error(
"RenderGraphWindowDepthStencilNode cannot merge with texture");
314 throw std::runtime_error(
"RenderGraphWindowDepthStencilNode cannot merge with window Target");
RenderGraphImageNode & operator|=(const Target &other) override
RenderGraphBufferNode(const Target &other)
void checkCompatibilityAndMerge(const std::string &name, Format format, Samples samples, ImageUsage usage, const TextureSize &size)
void checkCompatibilityAndMergeImpl(const std::string &name, Format format, Samples samples, ImageUsage usage, bool hasFixedSize, uint32_t width, uint32_t height, const TextureSize *textureSize)
Image * getImage() const override
Samples getSamples() const noexcept
void checkCompatibilityAndMerge(const std::string &name, Format format, Samples samples, ImageUsage usage, bool hasFixedSize, uint32_t width, uint32_t height)
void fillDefaultData() override
Format getFormat() const noexcept
RenderGraphImageNode & operator|=(const Texture &other) override
bool isFilled() const noexcept
void setAllocatedImage(Image *image)
ImageUsages getUsage() const noexcept
RenderGraphImageNode & operator|=(const DepthStencil &other) override
RenderGraphBufferNode(const DepthStencil &other)
RenderGraphBufferNode(const Texture &other)
RenderGraphImageNode()=default
RenderGraphImageNode & operator|=(const Target &other) override
Image * getImage() const override
RenderGraphImageNode & operator|=(const DepthStencil &other) override
RenderGraphWindowDepthStencilNode(const DepthStencil &other)
RenderGraphImageNode & operator|=(const Texture &other) override
void checkCompatibilityAndMerge(const std::string &name, Window *window)
bool isValidWindowDepthStencil() const noexcept
void fillDefaultData() override
RenderGraphWindowDepthStencilNode()
Window * getWindow() const noexcept
RenderGraphImageNode & operator|=(const Target &other) override
void fillDefaultData() override
void checkCompatibilityAndMerge(const std::string &name, Window *window)
RenderGraphImageNode & operator|=(const Texture &other) override
RenderGraphWindowTargetNode(const Target &other)
RenderGraphImageNode & operator|=(const DepthStencil &other) override
Image * getImage() const override
bool isValidWindowTarget() const noexcept
RenderGraphWindowTargetNode()
Window * getWindow() const noexcept
bool setFixed() const noexcept
bool setFixedSize(uint32_t w, uint32_t h) const noexcept