Jolt Physics
A multi core friendly Game Physics Engine
Loading...
Searching...
No Matches
ComputeBufferMTL.h
Go to the documentation of this file.
1// Jolt Physics Library (https://github.com/jrouwe/JoltPhysics)
2// SPDX-FileCopyrightText: 2025 Jorrit Rouwe
3// SPDX-License-Identifier: MIT
4
5#pragma once
6
7#ifdef JPH_USE_MTL
8
10
12
14class JPH_EXPORT ComputeBufferMTL final : public ComputeBuffer
15{
16public:
18
20 ComputeBufferMTL(ComputeSystemMTL *inComputeSystem, EType inType, uint64 inSize, uint inStride);
21 virtual ~ComputeBufferMTL() override;
22
23 bool Initialize(const void *inData);
24
25 virtual ComputeBufferResult CreateReadBackBuffer() const override;
26
27 id<MTLBuffer> GetBuffer() const { return mBuffer; }
28
29private:
30 virtual void * MapInternal(EMode inMode) override;
31 virtual void UnmapInternal() override;
32
33 ComputeSystemMTL * mComputeSystem;
34 id<MTLBuffer> mBuffer;
35};
36
38
39#endif // JPH_USE_MTL
#define JPH_EXPORT
Definition Core.h:275
std::uint64_t uint64
Definition Core.h:504
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
virtual ComputeBufferResult CreateReadBackBuffer() const =0
virtual void * MapInternal(EMode inMode)=0
virtual void UnmapInternal()=0
Helper class that either contains a valid result or an error.
Definition Result.h:12