Jolt Physics
A multi core friendly Game Physics Engine
Loading...
Searching...
No Matches
ComputeShaderMTL.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
9#include <MetalKit/MetalKit.h>
10
13
15
17class JPH_EXPORT ComputeShaderMTL : public ComputeShader
18{
19public:
21
23 ComputeShaderMTL(id<MTLComputePipelineState> inPipelineState, MTLComputePipelineReflection *inReflection, uint32 inGroupSizeX, uint32 inGroupSizeY, uint32 inGroupSizeZ);
24 virtual ~ComputeShaderMTL() override { [mPipelineState release]; }
25
27 id<MTLComputePipelineState> GetPipelineState() const { return mPipelineState; }
28
30 uint NameToBindingIndex(const char *inName) const;
31
32private:
33 id<MTLComputePipelineState> mPipelineState;
34 UnorderedMap<String, uint> mNameToBindingIndex;
35};
36
38
39#endif // JPH_USE_MTL
#define JPH_EXPORT
Definition Core.h:275
unsigned int uint
Definition Core.h:500
#define JPH_NAMESPACE_END
Definition Core.h:425
std::uint32_t uint32
Definition Core.h:503
#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
Compute shader handle.
Definition ComputeShader.h:15
Definition UnorderedMap.h:30