Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
godotengine
GitHub Repository: godotengine/godot
Path: blob/master/thirdparty/metal-cpp/Metal/MTL4CompilerTask.hpp
21066 views
1
//-------------------------------------------------------------------------------------------------------------------------------------------------------------
2
//
3
// Metal/MTL4CompilerTask.hpp
4
//
5
// Copyright 2020-2025 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
#include "../Foundation/Foundation.hpp"
24
#include "MTLDefines.hpp"
25
#include "MTLHeaderBridge.hpp"
26
#include "MTLPrivate.hpp"
27
28
namespace MTL4
29
{
30
class Compiler;
31
_MTL_ENUM(NS::Integer, CompilerTaskStatus) {
32
CompilerTaskStatusNone = 0,
33
CompilerTaskStatusScheduled = 1,
34
CompilerTaskStatusCompiling = 2,
35
CompilerTaskStatusFinished = 3,
36
};
37
38
class CompilerTask : public NS::Referencing<CompilerTask>
39
{
40
public:
41
Compiler* compiler() const;
42
43
CompilerTaskStatus status() const;
44
45
void waitUntilCompleted();
46
};
47
48
}
49
50
_MTL_INLINE MTL4::Compiler* MTL4::CompilerTask::compiler() const
51
{
52
return Object::sendMessage<MTL4::Compiler*>(this, _MTL_PRIVATE_SEL(compiler));
53
}
54
55
_MTL_INLINE MTL4::CompilerTaskStatus MTL4::CompilerTask::status() const
56
{
57
return Object::sendMessage<MTL4::CompilerTaskStatus>(this, _MTL_PRIVATE_SEL(status));
58
}
59
60
_MTL_INLINE void MTL4::CompilerTask::waitUntilCompleted()
61
{
62
Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(waitUntilCompleted));
63
}
64
65