yum-mirror/VkFFT

git clone https://git.yummers.dev/yum-mirror/VkFFT

Tolmachev DmitriiMetal support in VkFFTba7001c

develop
3.6 KiB92 linesraw
1//-------------------------------------------------------------------------------------------------------------------------------------------------------------
2//
3// Metal/MTLCaptureScope.hpp
4//
5// Copyright 2020-2021 Apple Inc.
6//
7// Licensed under the Apache License, Version 2.0 (the "License");
8// you may not use this file except in compliance with the License.
9// You may obtain a copy of the License at
10//
11//     http://www.apache.org/licenses/LICENSE-2.0
12//
13// Unless required by applicable law or agreed to in writing, software
14// distributed under the License is distributed on an "AS IS" BASIS,
15// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16// See the License for the specific language governing permissions and
17// limitations under the License.
18//
19//-------------------------------------------------------------------------------------------------------------------------------------------------------------
20
21#pragma once
22
23//-------------------------------------------------------------------------------------------------------------------------------------------------------------
24
25#include "MTLDefines.hpp"
26#include "MTLPrivate.hpp"
27
28#include "../Foundation/NSObject.hpp"
29#include "../Foundation/NSString.hpp"
30
31//-------------------------------------------------------------------------------------------------------------------------------------------------------------
32
33namespace MTL
34{
35class CaptureScope : public NS::Referencing<CaptureScope>
36{
37public:
38    class Device*       device() const;
39
40    NS::String*         label() const;
41    void                setLabel(const NS::String* pLabel);
42
43    class CommandQueue* commandQueue() const;
44
45    void                beginScope();
46    void                endScope();
47};
48}
49
50//-------------------------------------------------------------------------------------------------------------------------------------------------------------
51
52_MTL_INLINE MTL::Device* MTL::CaptureScope::device() const
53{
54    return Object::sendMessage<Device*>(this, _MTL_PRIVATE_SEL(device));
55}
56
57//-------------------------------------------------------------------------------------------------------------------------------------------------------------
58
59_MTL_INLINE NS::String* MTL::CaptureScope::label() const
60{
61    return Object::sendMessage<NS::String*>(this, _MTL_PRIVATE_SEL(label));
62}
63
64//-------------------------------------------------------------------------------------------------------------------------------------------------------------
65
66_MTL_INLINE void MTL::CaptureScope::setLabel(const NS::String* pLabel)
67{
68    Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setLabel_), pLabel);
69}
70
71//-------------------------------------------------------------------------------------------------------------------------------------------------------------
72
73_MTL_INLINE MTL::CommandQueue* MTL::CaptureScope::commandQueue() const
74{
75    return Object::sendMessage<CommandQueue*>(this, _MTL_PRIVATE_SEL(commandQueue));
76}
77
78//-------------------------------------------------------------------------------------------------------------------------------------------------------------
79
80_MTL_INLINE void MTL::CaptureScope::beginScope()
81{
82    return Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(beginScope));
83}
84
85//-------------------------------------------------------------------------------------------------------------------------------------------------------------
86
87_MTL_INLINE void MTL::CaptureScope::endScope()
88{
89    return Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(endScope));
90}
91
92//-------------------------------------------------------------------------------------------------------------------------------------------------------------