yum-mirror/VkFFT
git clone https://git.yummers.dev/yum-mirror/VkFFT
ba7001c
master
1//------------------------------------------------------------------------------------------------------------------------------------------------------------- 2// 3// Metal/MTLDepthStencil.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#include "MTLDefines.hpp" 24#include "MTLHeaderBridge.hpp" 25#include "MTLPrivate.hpp" 26 27#include <Foundation/Foundation.hpp> 28 29#include "MTLDepthStencil.hpp" 30 31namespace MTL 32{ 33_MTL_ENUM (NS ::UInteger ,CompareFunction ) { 34CompareFunctionNever = 0 , 35CompareFunctionLess = 1 , 36CompareFunctionEqual = 2 , 37CompareFunctionLessEqual = 3 , 38CompareFunctionGreater = 4 , 39CompareFunctionNotEqual = 5 , 40CompareFunctionGreaterEqual = 6 , 41CompareFunctionAlways = 7 , 42}; 43 44_MTL_ENUM (NS ::UInteger ,StencilOperation ) { 45StencilOperationKeep = 0 , 46StencilOperationZero = 1 , 47StencilOperationReplace = 2 , 48StencilOperationIncrementClamp = 3 , 49StencilOperationDecrementClamp = 4 , 50StencilOperationInvert = 5 , 51StencilOperationIncrementWrap = 6 , 52StencilOperationDecrementWrap = 7 , 53}; 54 55class StencilDescriptor :public NS ::Copying < StencilDescriptor > 56{ 57public : 58static class StencilDescriptor * alloc (); 59 60class StencilDescriptor * init (); 61 62MTL ::CompareFunction stencilCompareFunction ()const ; 63void setStencilCompareFunction (MTL ::CompareFunction stencilCompareFunction ); 64 65MTL ::StencilOperation stencilFailureOperation ()const ; 66void setStencilFailureOperation (MTL ::StencilOperation stencilFailureOperation ); 67 68MTL ::StencilOperation depthFailureOperation ()const ; 69void setDepthFailureOperation (MTL ::StencilOperation depthFailureOperation ); 70 71MTL ::StencilOperation depthStencilPassOperation ()const ; 72void setDepthStencilPassOperation (MTL ::StencilOperation depthStencilPassOperation ); 73 74uint32_t readMask ()const ; 75void setReadMask (uint32_t readMask ); 76 77uint32_t writeMask ()const ; 78void setWriteMask (uint32_t writeMask ); 79}; 80 81class DepthStencilDescriptor :public NS ::Copying < DepthStencilDescriptor > 82{ 83public : 84static class DepthStencilDescriptor * alloc (); 85 86class DepthStencilDescriptor * init (); 87 88MTL ::CompareFunction depthCompareFunction ()const ; 89void setDepthCompareFunction (MTL ::CompareFunction depthCompareFunction ); 90 91bool depthWriteEnabled ()const ; 92void setDepthWriteEnabled (bool depthWriteEnabled ); 93 94class StencilDescriptor * frontFaceStencil ()const ; 95void setFrontFaceStencil (const class StencilDescriptor * frontFaceStencil ); 96 97class StencilDescriptor * backFaceStencil ()const ; 98void setBackFaceStencil (const class StencilDescriptor * backFaceStencil ); 99 100NS ::String * label ()const ; 101void setLabel (const NS ::String * label ); 102}; 103 104class DepthStencilState :public NS ::Referencing < DepthStencilState > 105{ 106public : 107NS ::String * label ()const ; 108 109class Device * device ()const ; 110}; 111 112} 113 114// static method: alloc 115_MTL_INLINE MTL ::StencilDescriptor * MTL ::StencilDescriptor ::alloc () 116{ 117return NS ::Object ::alloc < MTL ::StencilDescriptor > (_MTL_PRIVATE_CLS (MTLStencilDescriptor )); 118} 119 120// method: init 121_MTL_INLINE MTL ::StencilDescriptor * MTL ::StencilDescriptor ::init () 122{ 123return NS ::Object ::init < MTL ::StencilDescriptor > (); 124} 125 126// property: stencilCompareFunction 127_MTL_INLINE MTL ::CompareFunction MTL ::StencilDescriptor ::stencilCompareFunction ()const 128{ 129return Object ::sendMessage < MTL ::CompareFunction > (this ,_MTL_PRIVATE_SEL (stencilCompareFunction )); 130} 131 132_MTL_INLINE voidMTL ::StencilDescriptor ::setStencilCompareFunction (MTL ::CompareFunction stencilCompareFunction ) 133{ 134Object ::sendMessage < void > (this ,_MTL_PRIVATE_SEL (setStencilCompareFunction_ ),stencilCompareFunction ); 135} 136 137// property: stencilFailureOperation 138_MTL_INLINE MTL ::StencilOperation MTL ::StencilDescriptor ::stencilFailureOperation ()const 139{ 140return Object ::sendMessage < MTL ::StencilOperation > (this ,_MTL_PRIVATE_SEL (stencilFailureOperation )); 141} 142 143_MTL_INLINE voidMTL ::StencilDescriptor ::setStencilFailureOperation (MTL ::StencilOperation stencilFailureOperation ) 144{ 145Object ::sendMessage < void > (this ,_MTL_PRIVATE_SEL (setStencilFailureOperation_ ),stencilFailureOperation ); 146} 147 148// property: depthFailureOperation 149_MTL_INLINE MTL ::StencilOperation MTL ::StencilDescriptor ::depthFailureOperation ()const 150{ 151return Object ::sendMessage < MTL ::StencilOperation > (this ,_MTL_PRIVATE_SEL (depthFailureOperation )); 152} 153 154_MTL_INLINE voidMTL ::StencilDescriptor ::setDepthFailureOperation (MTL ::StencilOperation depthFailureOperation ) 155{ 156Object ::sendMessage < void > (this ,_MTL_PRIVATE_SEL (setDepthFailureOperation_ ),depthFailureOperation ); 157} 158 159// property: depthStencilPassOperation 160_MTL_INLINE MTL ::StencilOperation MTL ::StencilDescriptor ::depthStencilPassOperation ()const 161{ 162return Object ::sendMessage < MTL ::StencilOperation > (this ,_MTL_PRIVATE_SEL (depthStencilPassOperation )); 163} 164 165_MTL_INLINE voidMTL ::StencilDescriptor ::setDepthStencilPassOperation (MTL ::StencilOperation depthStencilPassOperation ) 166{ 167Object ::sendMessage < void > (this ,_MTL_PRIVATE_SEL (setDepthStencilPassOperation_ ),depthStencilPassOperation ); 168} 169 170// property: readMask 171_MTL_INLINE uint32_tMTL ::StencilDescriptor ::readMask ()const 172{ 173return Object ::sendMessage < uint32_t > (this ,_MTL_PRIVATE_SEL (readMask )); 174} 175 176_MTL_INLINE voidMTL ::StencilDescriptor ::setReadMask (uint32_t readMask ) 177{ 178Object ::sendMessage < void > (this ,_MTL_PRIVATE_SEL (setReadMask_ ),readMask ); 179} 180 181// property: writeMask 182_MTL_INLINE uint32_tMTL ::StencilDescriptor ::writeMask ()const 183{ 184return Object ::sendMessage < uint32_t > (this ,_MTL_PRIVATE_SEL (writeMask )); 185} 186 187_MTL_INLINE voidMTL ::StencilDescriptor ::setWriteMask (uint32_t writeMask ) 188{ 189Object ::sendMessage < void > (this ,_MTL_PRIVATE_SEL (setWriteMask_ ),writeMask ); 190} 191 192// static method: alloc 193_MTL_INLINE MTL ::DepthStencilDescriptor * MTL ::DepthStencilDescriptor ::alloc () 194{ 195return NS ::Object ::alloc < MTL ::DepthStencilDescriptor > (_MTL_PRIVATE_CLS (MTLDepthStencilDescriptor )); 196} 197 198// method: init 199_MTL_INLINE MTL ::DepthStencilDescriptor * MTL ::DepthStencilDescriptor ::init () 200{ 201return NS ::Object ::init < MTL ::DepthStencilDescriptor > (); 202} 203 204// property: depthCompareFunction 205_MTL_INLINE MTL ::CompareFunction MTL ::DepthStencilDescriptor ::depthCompareFunction ()const 206{ 207return Object ::sendMessage < MTL ::CompareFunction > (this ,_MTL_PRIVATE_SEL (depthCompareFunction )); 208} 209 210_MTL_INLINE voidMTL ::DepthStencilDescriptor ::setDepthCompareFunction (MTL ::CompareFunction depthCompareFunction ) 211{ 212Object ::sendMessage < void > (this ,_MTL_PRIVATE_SEL (setDepthCompareFunction_ ),depthCompareFunction ); 213} 214 215// property: depthWriteEnabled 216_MTL_INLINE boolMTL ::DepthStencilDescriptor ::depthWriteEnabled ()const 217{ 218return Object ::sendMessage < bool > (this ,_MTL_PRIVATE_SEL (isDepthWriteEnabled )); 219} 220 221_MTL_INLINE voidMTL ::DepthStencilDescriptor ::setDepthWriteEnabled (bool depthWriteEnabled ) 222{ 223Object ::sendMessage < void > (this ,_MTL_PRIVATE_SEL (setDepthWriteEnabled_ ),depthWriteEnabled ); 224} 225 226// property: frontFaceStencil 227_MTL_INLINE MTL ::StencilDescriptor * MTL ::DepthStencilDescriptor ::frontFaceStencil ()const 228{ 229return Object ::sendMessage < MTL ::StencilDescriptor *> (this ,_MTL_PRIVATE_SEL (frontFaceStencil )); 230} 231 232_MTL_INLINE voidMTL ::DepthStencilDescriptor ::setFrontFaceStencil (const MTL ::StencilDescriptor * frontFaceStencil ) 233{ 234Object ::sendMessage < void > (this ,_MTL_PRIVATE_SEL (setFrontFaceStencil_ ),frontFaceStencil ); 235} 236 237// property: backFaceStencil 238_MTL_INLINE MTL ::StencilDescriptor * MTL ::DepthStencilDescriptor ::backFaceStencil ()const 239{ 240return Object ::sendMessage < MTL ::StencilDescriptor *> (this ,_MTL_PRIVATE_SEL (backFaceStencil )); 241} 242 243_MTL_INLINE voidMTL ::DepthStencilDescriptor ::setBackFaceStencil (const MTL ::StencilDescriptor * backFaceStencil ) 244{ 245Object ::sendMessage < void > (this ,_MTL_PRIVATE_SEL (setBackFaceStencil_ ),backFaceStencil ); 246} 247 248// property: label 249_MTL_INLINE NS ::String * MTL ::DepthStencilDescriptor ::label ()const 250{ 251return Object ::sendMessage < NS ::String *> (this ,_MTL_PRIVATE_SEL (label )); 252} 253 254_MTL_INLINE voidMTL ::DepthStencilDescriptor ::setLabel (const NS ::String * label ) 255{ 256Object ::sendMessage < void > (this ,_MTL_PRIVATE_SEL (setLabel_ ),label ); 257} 258 259// property: label 260_MTL_INLINE NS ::String * MTL ::DepthStencilState ::label ()const 261{ 262return Object ::sendMessage < NS ::String *> (this ,_MTL_PRIVATE_SEL (label )); 263} 264 265// property: device 266_MTL_INLINE MTL ::Device * MTL ::DepthStencilState ::device ()const 267{ 268return Object ::sendMessage < MTL ::Device *> (this ,_MTL_PRIVATE_SEL (device )); 269}