40 template<typename Processor> static constexpr
void reflect(Processor&& RTTI) {
CE_REFL_DATA(name); }
80 using TDeviceObject::TDeviceObject;
135 bindIndexBuffer(*indexBuffer, offset, indexType);
210 virtual
void setViewport(const
Viewport& viewport);
232 virtual
void setScissor(const
Scissor& scissor);
247 void buildAccelerationStructures();
248 void buildAccelerationStructuresIndirect();
250 void copyAccelerationStructure();
251 void copyAccelerationStructureToMemory();
252 void copyMemoryToAccelerationStructure();
253 void writeAccelerationStructuresProperties();
255 void setRayTracingPipelineStackSize();
258 void traceRaysIndirect();
292 virtual
void drawMeshTasksIndirect(
GPUBuffer& buffer,
UInt64 offset,
GPUBuffer& countBuffer,
UInt64 countBufferOffset, uint32_t maxDrawCount, uint32_t stride) = 0;
313 virtual
void updateBuffer(
GPUBuffer& dstBuffer,
std::uint64_t dstOffset, const
void* data,
std::uint16_t dataSize) = 0;
346 virtual
void fillBuffer(
GPUBuffer& dstBuffer,
std::uint64_t dstOffset,
std::uint32_t value,
std::uint64_t fillSize = ~0u) = 0;
383 std::uint32_t rowStride = 0,
std::uint32_t layerStride = 0) = 0;
406 const TExtent3<
UInt32>& extent) = 0;
444 std::uint32_t rowStride = 0,
std::uint32_t layerStride = 0) = 0;
448 const TExtent3<
UInt32>& extent) = 0;
496 virtual
void begin() = 0;
504 virtual
void end() = 0;
506 virtual
void wait() = 0;
510 template<typename Func> decltype(auto) record(Func&& recorder) {
#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
#define CE_SCOPE_EXIT
Definition ScopeExit.hpp:40
A retain-release type of smart pointer.
Definition SmartPtr.hpp:132
Definition GPUBuffer.hpp:124
Definition GPUCommandBuffer.hpp:77
virtual void bindIndexBuffer(const GPUIndexBuffer &indexBuffer)
Binds a index buffer for drawing.
GPUCommandBuffer & operator=(GPUCommandBuffer &&)=delete
Event< void()> didFinish
An event triggered whenever the command buffer has finished execution.
Definition GPUCommandBuffer.hpp:93
GPUCommandBuffer(const GPUCommandBuffer &)=delete
Deleted copy constructor.
GPUCommandBuffer & operator=(const GPUCommandBuffer &)=delete
void bindResourceSet(const GPUResourceSetPtr &resourceSet, const UInt32 firstSet=0, const Int32 offset=-1)
Definition GPUCommandBuffer.hpp:110
GPUCommandBuffer(GPUCommandBuffer &&)=delete
Deleted move constructor.
void bindVertexBuffer(const GPUBufferPtr &vertexBuffer, const UInt32 offset=0, const UInt32 slot=0)
Definition GPUCommandBuffer.hpp:120
virtual void bindVertexBuffer(const GPUVertexBuffer &vertexBuffer)
Binds a vertex buffer for drawing.
Definition GPUImage.hpp:331
Definition GPUBufferObject.hpp:169
Definition GPUBufferObject.hpp:314
A RenderAPI object that holds a set of resources that can be bound into shader.
Definition GPUResourceSet.hpp:735
Definition GPUBufferObject.hpp:126
Base template for the event class.
Definition Event.hpp:27
Definition Application.hpp:19
std::uint64_t UInt64
Definition DataTypes.hpp:26
GPUImageLayout
Definition GPUImage.hpp:65
std::int32_t Int32
Definition DataTypes.hpp:21
sfl::small_vector< T, N, ScopedAllocatorAdaptor< StdAllocator< T, RawAllocator > > > SmallVector
SmallVector is a sequence container similar to Vector.
Definition SmallVector.hpp:31
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
Command buffer descriptor structure.
Definition GPUCommandBuffer.hpp:32
Structure specifying a draw indirect command.
Definition GPUCommandBuffer.hpp:59
UInt32 indexCount
The number of vertices to draw.
Definition GPUCommandBuffer.hpp:61
UInt32 firstInstance
The instance ID of the first instance to draw.
Definition GPUCommandBuffer.hpp:74
UInt32 instanceCount
The number of instances to draw.
Definition GPUCommandBuffer.hpp:64
UInt32 firstIndex
The base index within the index buffer.
Definition GPUCommandBuffer.hpp:67
Int32 vertexOffset
The value added to the vertex index before indexing into the vertex buffer.
Definition GPUCommandBuffer.hpp:71
Structure specifying a draw indirect command.
Definition GPUCommandBuffer.hpp:44
UInt32 vertexCount
The number of vertices to draw.
Definition GPUCommandBuffer.hpp:46
UInt32 firstInstance
The instance ID of the first instance to draw.
Definition GPUCommandBuffer.hpp:55
UInt32 firstVertex
The index of the first vertex to draw.
Definition GPUCommandBuffer.hpp:52
UInt32 instanceCount
The number of instances to draw.
Definition GPUCommandBuffer.hpp:49
Image location structure: MIP-map level and offset.
Definition GPUImage.hpp:120
Image region structure: Subresource (MIP-map level and array layer range), offset,...
Definition GPUImage.hpp:156
Image subresource descriptor which specifies the array layer and MIP-map level range of a image resou...
Definition GPUImage.hpp:77
Definition IndexType.hpp:20
Definition GPUGraphicsPipeline.hpp:281
Definition GPUGraphicsPipeline.hpp:214