Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
godotengine
GitHub Repository: godotengine/godot
Path: blob/master/thirdparty/metal-cpp/QuartzCore/CAMetalDrawable.hpp
21059 views
1
//-------------------------------------------------------------------------------------------------------------------------------------------------------------
2
//
3
// QuartzCore/CAMetalDrawable.hpp
4
//
5
// Copyright 2020-2024 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 "../Metal/MTLDrawable.hpp"
26
#include "../Metal/MTLTexture.hpp"
27
28
#include "CADefines.hpp"
29
#include "CAPrivate.hpp"
30
31
//-------------------------------------------------------------------------------------------------------------------------------------------------------------
32
33
namespace CA
34
{
35
class MetalDrawable : public NS::Referencing<MetalDrawable, MTL::Drawable>
36
{
37
public:
38
class MetalLayer* layer() const;
39
MTL::Texture* texture() const;
40
};
41
}
42
43
//-------------------------------------------------------------------------------------------------------------------------------------------------------------
44
45
_CA_INLINE CA::MetalLayer* CA::MetalDrawable::layer() const
46
{
47
return Object::sendMessage<MetalLayer*>(this, _CA_PRIVATE_SEL(layer));
48
}
49
50
//-------------------------------------------------------------------------------------------------------------------------------------------------------------
51
52
_CA_INLINE MTL::Texture* CA::MetalDrawable::texture() const
53
{
54
return Object::sendMessage<MTL::Texture*>(this, _CA_PRIVATE_SEL(texture));
55
}
56
57
//-------------------------------------------------------------------------------------------------------------------------------------------------------------
58
59