101 template<typename Processor> static constexpr
void reflect(Processor&& RTTI) {
141 template<typename Processor> static constexpr
void reflect(Processor&& RTTI) {
152 using TDeviceObject::TDeviceObject;
186 template<
typename... Args>
188 : mCommandBuffer(&commandBuffer), mRenderPass(&renderPass), mRenderTarget(&renderTarget) {
189 mRenderPass->
begin(*mCommandBuffer, renderTarget, std::forward<Args>(args)...);
193 template<
typename... Args>
195 :
Scope(*commandBuffer, renderPass, renderTarget,
std::forward<Args>(args)...) {}
198 template<
typename... Args>
200 :
Scope(*commandBuffer, *renderPass, renderTarget,
std::forward<Args>(args)...) {}
203 template<
typename... Args>
205 :
Scope(*commandBuffer, renderPass, *renderTarget,
std::forward<Args>(args)...) {}
208 template<
typename... Args>
210 :
Scope(commandBuffer, *renderPass, renderTarget,
std::forward<Args>(args)...) {}
213 template<
typename... Args>
215 :
Scope(commandBuffer, *renderPass, *renderTarget,
std::forward<Args>(args)...) {}
218 template<
typename... Args>
220 :
Scope(commandBuffer, renderPass, *renderTarget,
std::forward<Args>(args)...) {}
223 template<
typename... Args>
225 :
Scope(*commandBuffer, *renderPass, *renderTarget,
std::forward<Args>(args)...) {}
233 if(mRenderPass !=
nullptr) {
234 mRenderPass->
end(*mCommandBuffer, *mRenderTarget);
235 mRenderPass =
nullptr;
236 mRenderTarget =
nullptr;
237 mCommandBuffer =
nullptr;
250 template<
typename Func,
typename... Args>
252 const Scope scope(commandBuffer, *
this, renderTarget, std::forward<Args>(args)...);
#define CE_REFLECT_HASH(T)
Definition Hash.hpp:89
#define CE_REFL_DATA(N)
Definition Macros.hpp:541
#define CE_SCRIPT_EXPORT(...)
The CE_SCRIPT_EXPORT macro marks a class or method as exportable and available in scripting environme...
Definition Macros.hpp:247
A retain-release type of smart pointer.
Definition SmartPtr.hpp:132
Definition GPUCommandBuffer.hpp:77
A helper class that begins a scoped render target binding.
Definition GPURenderPass.hpp:170
Scope(GPUCommandBuffer &commandBuffer, const GPURenderPassPtr &renderPass, GPURenderTarget &renderTarget, Args &&... args)
Definition GPURenderPass.hpp:209
Scope(GPUCommandBuffer &commandBuffer, GPURenderPass &renderPass, const GPURenderTargetPtr &renderTarget, Args &&... args)
Definition GPURenderPass.hpp:219
Scope(GPUCommandBuffer &commandBuffer, const GPURenderPassPtr &renderPass, const GPURenderTargetPtr &renderTarget, Args &&... args)
Definition GPURenderPass.hpp:214
Scope(const GPUCommandBufferPtr &commandBuffer, const GPURenderPassPtr &renderPass, GPURenderTarget &renderTarget, Args &&... args)
Definition GPURenderPass.hpp:199
Scope(const GPUCommandBufferPtr &commandBuffer, GPURenderPass &renderPass, GPURenderTarget &renderTarget, Args &&... args)
Definition GPURenderPass.hpp:194
~Scope() noexcept
Unbound the pipeline from the command buffer.
Definition GPURenderPass.hpp:228
Scope(const GPUCommandBufferPtr &commandBuffer, GPURenderPass &renderPass, const GPURenderTargetPtr &renderTarget, Args &&... args)
Definition GPURenderPass.hpp:204
Scope(GPUCommandBuffer &commandBuffer, GPURenderPass &renderPass, GPURenderTarget &renderTarget, Args &&... args)
Creates a new scope and calls begin() on the pipeline.
Definition GPURenderPass.hpp:187
void reset()
Unbound the pipeline from the command buffer.
Definition GPURenderPass.hpp:232
Scope(const GPUCommandBufferPtr &commandBuffer, const GPURenderPassPtr &renderPass, const GPURenderTargetPtr &renderTarget, Args &&... args)
Definition GPURenderPass.hpp:224
Definition GPURenderPass.hpp:149
GPURenderPass(const GPURenderPass &)=delete
Deleted copy constructor.
virtual void begin(GPUCommandBuffer &commandBuffer, GPURenderTarget &renderTarget, const Color &clearColor=Color(0.0, 0.0, 0.0, 0.0))=0
Prepares the render pass for execution.
GPURenderPass(GPURenderPass &&)=delete
Deleted move constructor.
virtual void end(GPUCommandBuffer &commandBuffer, GPURenderTarget &renderTarget)=0
Finishes the render pass execution.
decltype(auto) with(GPUCommandBuffer &commandBuffer, GPURenderTarget &renderTarget, Func &&block, Args &&... args)
Prepares the render pass for execution.
Definition GPURenderPass.hpp:251
GPURenderPass & operator=(GPURenderPass &&)=delete
GPURenderPass & operator=(const GPURenderPass &)=delete
Definition GPURenderTarget.hpp:105
Definition Application.hpp:19
GPUAttachmentLoadOp
Enumeration for render pass attachment load operations.
Definition GPURenderPass.hpp:32
@ Undefined
We don't care about the previous content of the respective render target attachment.
@ Load
Loads the previous content of the respective render target attachment.
GPUImageLayout
Definition GPUImage.hpp:65
GPUAttachmentStoreOp
Enumeration for render pass attachment store operations.
Definition GPURenderPass.hpp:48
@ Store
Stores the outcome in the respective render target attachment.
std::vector< T, ScopedAllocatorAdaptor< StdAllocator< T, RawAllocator > > > Vector
Vector is a sequence container that encapsulates dynamic size arrays.
Definition Vector.hpp:17
Format
Definition TextureFormat.hpp:54
std::uint32_t UInt32
Definition DataTypes.hpp:23
constexpr size_t hash(const T &v)
Generates a hash for the provided type.
Definition Hash.hpp:25
@ Clear
Resulting operation: 0.
Render pass descriptor structure.
Definition GPURenderPass.hpp:112
Vector< GPUAttachmentFormatDescriptor > colorAttachments
Specifies the color attachments used within the render pass.
Definition GPURenderPass.hpp:116