Jolt Physics
A multi core friendly Game Physics Engine
Loading...
Searching...
No Matches
ComputeShaderDX12.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_DX12
8
12
14
16class JPH_EXPORT ComputeShaderDX12 : public ComputeShader
17{
18public:
20
22 ComputeShaderDX12(ComPtr<ID3DBlob> inShader, ComPtr<ID3D12RootSignature> inRootSignature, ComPtr<ID3D12PipelineState> inPipelineState, Array<String> &&inBindingNames, UnorderedMap<string_view, uint> &&inNameToIndex, uint32 inGroupSizeX, uint32 inGroupSizeY, uint32 inGroupSizeZ) :
23 ComputeShader(inGroupSizeX, inGroupSizeY, inGroupSizeZ),
24 mShader(inShader),
25 mRootSignature(inRootSignature),
26 mPipelineState(inPipelineState),
27 mBindingNames(std::move(inBindingNames)),
28 mNameToIndex(std::move(inNameToIndex))
29 {
30 }
31
33 uint NameToIndex(const char *inName) const
34 {
35 UnorderedMap<string_view, uint>::const_iterator it = mNameToIndex.find(inName);
36 JPH_ASSERT(it != mNameToIndex.end());
37 return it->second;
38 }
39
41 ID3D12PipelineState * GetPipelineState() const { return mPipelineState.Get(); }
42 ID3D12RootSignature * GetRootSignature() const { return mRootSignature.Get(); }
43
44private:
45 ComPtr<ID3DBlob> mShader;
46 ComPtr<ID3D12RootSignature> mRootSignature;
47 ComPtr<ID3D12PipelineState> mPipelineState;
48 Array<String> mBindingNames;
50};
51
53
54#endif // JPH_USE_DX12
#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_ASSERT(...)
Definition IssueReporting.h:33
#define JPH_OVERRIDE_NEW_DELETE
Macro to override the new and delete functions.
Definition Memory.h:50
Definition Array.h:36
Compute shader handle.
Definition ComputeShader.h:15
Definition UnorderedMap.h:30
typename Base::const_iterator const_iterator
Definition UnorderedMap.h:36
Definition Array.h:699