yum-mirror/VkFFT
git clone https://git.yummers.dev/yum-mirror/VkFFT
ba7001c
master
1//------------------------------------------------------------------------------------------------------------------------------------------------------------- 2// 3// Metal/MTLPipeline.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 "MTLPipeline.hpp" 30 31namespace MTL 32{ 33_MTL_ENUM (NS ::UInteger ,Mutability ) { 34MutabilityDefault = 0 , 35MutabilityMutable = 1 , 36MutabilityImmutable = 2 , 37}; 38 39class PipelineBufferDescriptor :public NS ::Copying < PipelineBufferDescriptor > 40{ 41public : 42static class PipelineBufferDescriptor * alloc (); 43 44class PipelineBufferDescriptor * init (); 45 46MTL ::Mutability mutability ()const ; 47void setMutability (MTL ::Mutability mutability ); 48}; 49 50class PipelineBufferDescriptorArray :public NS ::Referencing < PipelineBufferDescriptorArray > 51{ 52public : 53static class PipelineBufferDescriptorArray * alloc (); 54 55class PipelineBufferDescriptorArray * init (); 56 57class PipelineBufferDescriptor * object (NS ::UInteger bufferIndex ); 58 59void setObject (const class PipelineBufferDescriptor * buffer ,NS ::UInteger bufferIndex ); 60}; 61 62} 63 64// static method: alloc 65_MTL_INLINE MTL ::PipelineBufferDescriptor * MTL ::PipelineBufferDescriptor ::alloc () 66{ 67return NS ::Object ::alloc < MTL ::PipelineBufferDescriptor > (_MTL_PRIVATE_CLS (MTLPipelineBufferDescriptor )); 68} 69 70// method: init 71_MTL_INLINE MTL ::PipelineBufferDescriptor * MTL ::PipelineBufferDescriptor ::init () 72{ 73return NS ::Object ::init < MTL ::PipelineBufferDescriptor > (); 74} 75 76// property: mutability 77_MTL_INLINE MTL ::Mutability MTL ::PipelineBufferDescriptor ::mutability ()const 78{ 79return Object ::sendMessage < MTL ::Mutability > (this ,_MTL_PRIVATE_SEL (mutability )); 80} 81 82_MTL_INLINE voidMTL ::PipelineBufferDescriptor ::setMutability (MTL ::Mutability mutability ) 83{ 84Object ::sendMessage < void > (this ,_MTL_PRIVATE_SEL (setMutability_ ),mutability ); 85} 86 87// static method: alloc 88_MTL_INLINE MTL ::PipelineBufferDescriptorArray * MTL ::PipelineBufferDescriptorArray ::alloc () 89{ 90return NS ::Object ::alloc < MTL ::PipelineBufferDescriptorArray > (_MTL_PRIVATE_CLS (MTLPipelineBufferDescriptorArray )); 91} 92 93// method: init 94_MTL_INLINE MTL ::PipelineBufferDescriptorArray * MTL ::PipelineBufferDescriptorArray ::init () 95{ 96return NS ::Object ::init < MTL ::PipelineBufferDescriptorArray > (); 97} 98 99// method: objectAtIndexedSubscript: 100_MTL_INLINE MTL ::PipelineBufferDescriptor * MTL ::PipelineBufferDescriptorArray ::object (NS ::UInteger bufferIndex ) 101{ 102return Object ::sendMessage < MTL ::PipelineBufferDescriptor *> (this ,_MTL_PRIVATE_SEL (objectAtIndexedSubscript_ ),bufferIndex ); 103} 104 105// method: setObject:atIndexedSubscript: 106_MTL_INLINE voidMTL ::PipelineBufferDescriptorArray ::setObject (const MTL ::PipelineBufferDescriptor * buffer ,NS ::UInteger bufferIndex ) 107{ 108Object ::sendMessage < void > (this ,_MTL_PRIVATE_SEL (setObject_atIndexedSubscript_ ),buffer ,bufferIndex ); 109}