Files
LNXSDK/lib/haxejolt/JoltPhysics/Jolt/Compute/ComputeShader.h

42 lines
1.0 KiB
C
Raw Normal View History

2026-03-04 00:50:15 -08:00
// Jolt Physics Library (https://github.com/jrouwe/JoltPhysics)
// SPDX-FileCopyrightText: 2025 Jorrit Rouwe
// SPDX-License-Identifier: MIT
#pragma once
#include <Jolt/Core/Reference.h>
#include <Jolt/Core/NonCopyable.h>
#include <Jolt/Core/Result.h>
JPH_NAMESPACE_BEGIN
/// Compute shader handle
class JPH_EXPORT ComputeShader : public RefTarget<ComputeShader>, public NonCopyable
{
public:
JPH_OVERRIDE_NEW_DELETE
/// Constructor / destructor
ComputeShader(uint32 inGroupSizeX, uint32 inGroupSizeY, uint32 inGroupSizeZ) :
mGroupSizeX(inGroupSizeX),
mGroupSizeY(inGroupSizeY),
mGroupSizeZ(inGroupSizeZ)
{
}
virtual ~ComputeShader() = default;
/// Get group sizes
uint32 GetGroupSizeX() const { return mGroupSizeX; }
uint32 GetGroupSizeY() const { return mGroupSizeY; }
uint32 GetGroupSizeZ() const { return mGroupSizeZ; }
private:
uint32 mGroupSizeX;
uint32 mGroupSizeY;
uint32 mGroupSizeZ;
};
using ComputeShaderResult = Result<Ref<ComputeShader>>;
JPH_NAMESPACE_END