Jolt Physics
A multi core friendly Game Physics Engine
Loading...
Searching...
No Matches
ComputeQueueCPU.h
Go to the documentation of this file.
1// Jolt Physics Library (https://github.com/jrouwe/JoltPhysics)
2// SPDX-FileCopyrightText: 2026 Jorrit Rouwe
3// SPDX-License-Identifier: MIT
4
5#pragma once
6
10
12
15{
16public:
18
20 virtual ~ComputeQueueCPU() override;
21
22 // See: ComputeQueue
23 virtual void SetShader(const ComputeShader *inShader) override;
24 virtual void SetConstantBuffer(const char *inName, const ComputeBuffer *inBuffer) override;
25 virtual void SetBuffer(const char *inName, const ComputeBuffer *inBuffer) override;
26 virtual void SetRWBuffer(const char *inName, ComputeBuffer *inBuffer, EBarrier inBarrier = EBarrier::Yes) override;
27 virtual void ScheduleReadback(ComputeBuffer *inDst, const ComputeBuffer *inSrc) override;
28 virtual void Dispatch(uint inThreadGroupsX, uint inThreadGroupsY, uint inThreadGroupsZ) override;
29 virtual void Execute() override;
30 virtual void Wait() override;
31
32private:
33 RefConst<ComputeShaderCPU> mShader = nullptr;
34 ShaderWrapper * mWrapper = nullptr;
36};
37
#define JPH_EXPORT
Definition Core.h:275
unsigned int uint
Definition Core.h:500
#define JPH_NAMESPACE_END
Definition Core.h:425
#define JPH_NAMESPACE_BEGIN
Definition Core.h:419
#define JPH_OVERRIDE_NEW_DELETE
Macro to override the new and delete functions.
Definition Memory.h:50
Buffer that can be read from / written to by a compute shader.
Definition ComputeBuffer.h:18
A command queue for the CPU compute system.
Definition ComputeQueueCPU.h:15
Definition ComputeQueue.h:20
EBarrier
If a barrier should be placed before accessing the buffer.
Definition ComputeQueue.h:33
virtual void Wait()=0
virtual void SetBuffer(const char *inName, const ComputeBuffer *inBuffer)=0
virtual void ScheduleReadback(ComputeBuffer *inDst, const ComputeBuffer *inSrc)=0
virtual void SetConstantBuffer(const char *inName, const ComputeBuffer *inBuffer)=0
virtual void SetShader(const ComputeShader *inShader)=0
virtual void Execute()=0
virtual void Dispatch(uint inThreadGroupsX, uint inThreadGroupsY=1, uint inThreadGroupsZ=1)=0
Dispatch a compute shader with the specified number of thread groups.
virtual void SetRWBuffer(const char *inName, ComputeBuffer *inBuffer, EBarrier inBarrier=EBarrier::Yes)=0
Compute shader handle.
Definition ComputeShader.h:15
Definition Reference.h:163
Wraps a compute shader to allow calling it from C++.
Definition ShaderWrapper.h:13
Definition UnorderedSet.h:29