VisuTwin Canvas
C++ 3D Engine — Metal Backend
Loading...
Searching...
No Matches
metalComputePipeline.h
Go to the documentation of this file.
1
// SPDX-License-Identifier: Apache-2.0
2
// Copyright 2025-2026 Arnis Lektauers
3
//
4
// Created by Arnis Lektauers on 05.11.2025.
5
//
6
#pragma once
7
8
#include <unordered_map>
9
10
#include "
metalPipeline.h
"
11
#include "
platform/graphics/computePipeline.h
"
12
13
namespace
visutwin::canvas
14
{
15
class
Shader
;
16
17
// Metal compute pipeline cache and creation
18
class
MetalComputePipeline
:
public
MetalPipeline
,
public
ComputePipelineBase
19
{
20
public
:
21
explicit
MetalComputePipeline
(
const
MetalGraphicsDevice
* device):
MetalPipeline
(device) {}
22
~MetalComputePipeline
();
23
24
MTL::ComputePipelineState*
get
(
const
std::shared_ptr<Shader>& shader);
25
26
private
:
27
MTL::ComputePipelineState* create(
const
std::shared_ptr<Shader>& shader);
28
29
std::unordered_map<int, MTL::ComputePipelineState*> _cache;
30
};
31
}
visutwin::canvas::ComputePipelineBase
Definition
computePipeline.h:16
visutwin::canvas::MetalComputePipeline::get
MTL::ComputePipelineState * get(const std::shared_ptr< Shader > &shader)
Definition
metalComputePipeline.cpp:25
visutwin::canvas::MetalComputePipeline::~MetalComputePipeline
~MetalComputePipeline()
Definition
metalComputePipeline.cpp:15
visutwin::canvas::MetalComputePipeline::MetalComputePipeline
MetalComputePipeline(const MetalGraphicsDevice *device)
Definition
metalComputePipeline.h:21
visutwin::canvas::MetalGraphicsDevice
Definition
metalGraphicsDevice.h:46
visutwin::canvas::MetalPipeline::MetalPipeline
MetalPipeline(const MetalGraphicsDevice *device)
Definition
metalPipeline.h:21
visutwin::canvas::Shader
Definition
shader.h:30
computePipeline.h
metalPipeline.h
visutwin::canvas
Definition
eventHandler.cpp:9
platform
graphics
metal
metalComputePipeline.h
Generated by
1.16.1