yum-mirror/VkFFT

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

Tolmachev DmitriiMetal support in VkFFTba7001c

develop
32.0 KiB786 linesraw
1//-------------------------------------------------------------------------------------------------------------------------------------------------------------
2//
3// Metal/MTLRenderPass.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 "MTLRenderPass.hpp"
30
31namespace MTL
32{
33_MTL_ENUM(NS::UInteger, LoadAction) {
34    LoadActionDontCare = 0,
35    LoadActionLoad = 1,
36    LoadActionClear = 2,
37};
38
39_MTL_ENUM(NS::UInteger, StoreAction) {
40    StoreActionDontCare = 0,
41    StoreActionStore = 1,
42    StoreActionMultisampleResolve = 2,
43    StoreActionStoreAndMultisampleResolve = 3,
44    StoreActionUnknown = 4,
45    StoreActionCustomSampleDepthStore = 5,
46};
47
48_MTL_OPTIONS(NS::UInteger, StoreActionOptions) {
49    StoreActionOptionNone = 0,
50    StoreActionOptionValidMask = 1,
51    StoreActionOptionCustomSamplePositions = 1,
52};
53
54struct ClearColor
55{
56    static ClearColor Make(double red, double green, double blue, double alpha);
57
58    ClearColor() = default;
59
60    ClearColor(double red, double green, double blue, double alpha);
61
62    double red;
63    double green;
64    double blue;
65    double alpha;
66} _MTL_PACKED;
67
68class RenderPassAttachmentDescriptor : public NS::Copying<RenderPassAttachmentDescriptor>
69{
70public:
71    static class RenderPassAttachmentDescriptor* alloc();
72
73    class RenderPassAttachmentDescriptor*        init();
74
75    class Texture*                               texture() const;
76    void                                         setTexture(const class Texture* texture);
77
78    NS::UInteger                                 level() const;
79    void                                         setLevel(NS::UInteger level);
80
81    NS::UInteger                                 slice() const;
82    void                                         setSlice(NS::UInteger slice);
83
84    NS::UInteger                                 depthPlane() const;
85    void                                         setDepthPlane(NS::UInteger depthPlane);
86
87    class Texture*                               resolveTexture() const;
88    void                                         setResolveTexture(const class Texture* resolveTexture);
89
90    NS::UInteger                                 resolveLevel() const;
91    void                                         setResolveLevel(NS::UInteger resolveLevel);
92
93    NS::UInteger                                 resolveSlice() const;
94    void                                         setResolveSlice(NS::UInteger resolveSlice);
95
96    NS::UInteger                                 resolveDepthPlane() const;
97    void                                         setResolveDepthPlane(NS::UInteger resolveDepthPlane);
98
99    MTL::LoadAction                              loadAction() const;
100    void                                         setLoadAction(MTL::LoadAction loadAction);
101
102    MTL::StoreAction                             storeAction() const;
103    void                                         setStoreAction(MTL::StoreAction storeAction);
104
105    MTL::StoreActionOptions                      storeActionOptions() const;
106    void                                         setStoreActionOptions(MTL::StoreActionOptions storeActionOptions);
107};
108
109class RenderPassColorAttachmentDescriptor : public NS::Copying<RenderPassColorAttachmentDescriptor, MTL::RenderPassAttachmentDescriptor>
110{
111public:
112    static class RenderPassColorAttachmentDescriptor* alloc();
113
114    class RenderPassColorAttachmentDescriptor*        init();
115
116    MTL::ClearColor                                   clearColor() const;
117    void                                              setClearColor(MTL::ClearColor clearColor);
118};
119
120_MTL_ENUM(NS::UInteger, MultisampleDepthResolveFilter) {
121    MultisampleDepthResolveFilterSample0 = 0,
122    MultisampleDepthResolveFilterMin = 1,
123    MultisampleDepthResolveFilterMax = 2,
124};
125
126class RenderPassDepthAttachmentDescriptor : public NS::Copying<RenderPassDepthAttachmentDescriptor, MTL::RenderPassAttachmentDescriptor>
127{
128public:
129    static class RenderPassDepthAttachmentDescriptor* alloc();
130
131    class RenderPassDepthAttachmentDescriptor*        init();
132
133    double                                            clearDepth() const;
134    void                                              setClearDepth(double clearDepth);
135
136    MTL::MultisampleDepthResolveFilter                depthResolveFilter() const;
137    void                                              setDepthResolveFilter(MTL::MultisampleDepthResolveFilter depthResolveFilter);
138};
139
140_MTL_ENUM(NS::UInteger, MultisampleStencilResolveFilter) {
141    MultisampleStencilResolveFilterSample0 = 0,
142    MultisampleStencilResolveFilterDepthResolvedSample = 1,
143};
144
145class RenderPassStencilAttachmentDescriptor : public NS::Copying<RenderPassStencilAttachmentDescriptor, MTL::RenderPassAttachmentDescriptor>
146{
147public:
148    static class RenderPassStencilAttachmentDescriptor* alloc();
149
150    class RenderPassStencilAttachmentDescriptor*        init();
151
152    uint32_t                                            clearStencil() const;
153    void                                                setClearStencil(uint32_t clearStencil);
154
155    MTL::MultisampleStencilResolveFilter                stencilResolveFilter() const;
156    void                                                setStencilResolveFilter(MTL::MultisampleStencilResolveFilter stencilResolveFilter);
157};
158
159class RenderPassColorAttachmentDescriptorArray : public NS::Referencing<RenderPassColorAttachmentDescriptorArray>
160{
161public:
162    static class RenderPassColorAttachmentDescriptorArray* alloc();
163
164    class RenderPassColorAttachmentDescriptorArray*        init();
165
166    class RenderPassColorAttachmentDescriptor*             object(NS::UInteger attachmentIndex);
167
168    void                                                   setObject(const class RenderPassColorAttachmentDescriptor* attachment, NS::UInteger attachmentIndex);
169};
170
171class RenderPassSampleBufferAttachmentDescriptor : public NS::Copying<RenderPassSampleBufferAttachmentDescriptor>
172{
173public:
174    static class RenderPassSampleBufferAttachmentDescriptor* alloc();
175
176    class RenderPassSampleBufferAttachmentDescriptor*        init();
177
178    class CounterSampleBuffer*                               sampleBuffer() const;
179    void                                                     setSampleBuffer(const class CounterSampleBuffer* sampleBuffer);
180
181    NS::UInteger                                             startOfVertexSampleIndex() const;
182    void                                                     setStartOfVertexSampleIndex(NS::UInteger startOfVertexSampleIndex);
183
184    NS::UInteger                                             endOfVertexSampleIndex() const;
185    void                                                     setEndOfVertexSampleIndex(NS::UInteger endOfVertexSampleIndex);
186
187    NS::UInteger                                             startOfFragmentSampleIndex() const;
188    void                                                     setStartOfFragmentSampleIndex(NS::UInteger startOfFragmentSampleIndex);
189
190    NS::UInteger                                             endOfFragmentSampleIndex() const;
191    void                                                     setEndOfFragmentSampleIndex(NS::UInteger endOfFragmentSampleIndex);
192};
193
194class RenderPassSampleBufferAttachmentDescriptorArray : public NS::Referencing<RenderPassSampleBufferAttachmentDescriptorArray>
195{
196public:
197    static class RenderPassSampleBufferAttachmentDescriptorArray* alloc();
198
199    class RenderPassSampleBufferAttachmentDescriptorArray*        init();
200
201    class RenderPassSampleBufferAttachmentDescriptor*             object(NS::UInteger attachmentIndex);
202
203    void                                                          setObject(const class RenderPassSampleBufferAttachmentDescriptor* attachment, NS::UInteger attachmentIndex);
204};
205
206class RenderPassDescriptor : public NS::Copying<RenderPassDescriptor>
207{
208public:
209    static class RenderPassDescriptor*                     alloc();
210
211    class RenderPassDescriptor*                            init();
212
213    static class RenderPassDescriptor*                     renderPassDescriptor();
214
215    class RenderPassColorAttachmentDescriptorArray*        colorAttachments() const;
216
217    class RenderPassDepthAttachmentDescriptor*             depthAttachment() const;
218    void                                                   setDepthAttachment(const class RenderPassDepthAttachmentDescriptor* depthAttachment);
219
220    class RenderPassStencilAttachmentDescriptor*           stencilAttachment() const;
221    void                                                   setStencilAttachment(const class RenderPassStencilAttachmentDescriptor* stencilAttachment);
222
223    class Buffer*                                          visibilityResultBuffer() const;
224    void                                                   setVisibilityResultBuffer(const class Buffer* visibilityResultBuffer);
225
226    NS::UInteger                                           renderTargetArrayLength() const;
227    void                                                   setRenderTargetArrayLength(NS::UInteger renderTargetArrayLength);
228
229    NS::UInteger                                           imageblockSampleLength() const;
230    void                                                   setImageblockSampleLength(NS::UInteger imageblockSampleLength);
231
232    NS::UInteger                                           threadgroupMemoryLength() const;
233    void                                                   setThreadgroupMemoryLength(NS::UInteger threadgroupMemoryLength);
234
235    NS::UInteger                                           tileWidth() const;
236    void                                                   setTileWidth(NS::UInteger tileWidth);
237
238    NS::UInteger                                           tileHeight() const;
239    void                                                   setTileHeight(NS::UInteger tileHeight);
240
241    NS::UInteger                                           defaultRasterSampleCount() const;
242    void                                                   setDefaultRasterSampleCount(NS::UInteger defaultRasterSampleCount);
243
244    NS::UInteger                                           renderTargetWidth() const;
245    void                                                   setRenderTargetWidth(NS::UInteger renderTargetWidth);
246
247    NS::UInteger                                           renderTargetHeight() const;
248    void                                                   setRenderTargetHeight(NS::UInteger renderTargetHeight);
249
250    void                                                   setSamplePositions(const MTL::SamplePosition* positions, NS::UInteger count);
251
252    NS::UInteger                                           getSamplePositions(MTL::SamplePosition* positions, NS::UInteger count);
253
254    class RasterizationRateMap*                            rasterizationRateMap() const;
255    void                                                   setRasterizationRateMap(const class RasterizationRateMap* rasterizationRateMap);
256
257    class RenderPassSampleBufferAttachmentDescriptorArray* sampleBufferAttachments() const;
258};
259
260}
261
262_MTL_INLINE MTL::ClearColor MTL::ClearColor::Make(double red, double green, double blue, double alpha)
263{
264    return ClearColor(red, green, blue, alpha);
265}
266
267_MTL_INLINE MTL::ClearColor::ClearColor(double _red, double _green, double _blue, double _alpha)
268    : red(_red)
269    , green(_green)
270    , blue(_blue)
271    , alpha(_alpha)
272{
273}
274
275// static method: alloc
276_MTL_INLINE MTL::RenderPassAttachmentDescriptor* MTL::RenderPassAttachmentDescriptor::alloc()
277{
278    return NS::Object::alloc<MTL::RenderPassAttachmentDescriptor>(_MTL_PRIVATE_CLS(MTLRenderPassAttachmentDescriptor));
279}
280
281// method: init
282_MTL_INLINE MTL::RenderPassAttachmentDescriptor* MTL::RenderPassAttachmentDescriptor::init()
283{
284    return NS::Object::init<MTL::RenderPassAttachmentDescriptor>();
285}
286
287// property: texture
288_MTL_INLINE MTL::Texture* MTL::RenderPassAttachmentDescriptor::texture() const
289{
290    return Object::sendMessage<MTL::Texture*>(this, _MTL_PRIVATE_SEL(texture));
291}
292
293_MTL_INLINE void MTL::RenderPassAttachmentDescriptor::setTexture(const MTL::Texture* texture)
294{
295    Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setTexture_), texture);
296}
297
298// property: level
299_MTL_INLINE NS::UInteger MTL::RenderPassAttachmentDescriptor::level() const
300{
301    return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(level));
302}
303
304_MTL_INLINE void MTL::RenderPassAttachmentDescriptor::setLevel(NS::UInteger level)
305{
306    Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setLevel_), level);
307}
308
309// property: slice
310_MTL_INLINE NS::UInteger MTL::RenderPassAttachmentDescriptor::slice() const
311{
312    return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(slice));
313}
314
315_MTL_INLINE void MTL::RenderPassAttachmentDescriptor::setSlice(NS::UInteger slice)
316{
317    Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setSlice_), slice);
318}
319
320// property: depthPlane
321_MTL_INLINE NS::UInteger MTL::RenderPassAttachmentDescriptor::depthPlane() const
322{
323    return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(depthPlane));
324}
325
326_MTL_INLINE void MTL::RenderPassAttachmentDescriptor::setDepthPlane(NS::UInteger depthPlane)
327{
328    Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setDepthPlane_), depthPlane);
329}
330
331// property: resolveTexture
332_MTL_INLINE MTL::Texture* MTL::RenderPassAttachmentDescriptor::resolveTexture() const
333{
334    return Object::sendMessage<MTL::Texture*>(this, _MTL_PRIVATE_SEL(resolveTexture));
335}
336
337_MTL_INLINE void MTL::RenderPassAttachmentDescriptor::setResolveTexture(const MTL::Texture* resolveTexture)
338{
339    Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setResolveTexture_), resolveTexture);
340}
341
342// property: resolveLevel
343_MTL_INLINE NS::UInteger MTL::RenderPassAttachmentDescriptor::resolveLevel() const
344{
345    return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(resolveLevel));
346}
347
348_MTL_INLINE void MTL::RenderPassAttachmentDescriptor::setResolveLevel(NS::UInteger resolveLevel)
349{
350    Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setResolveLevel_), resolveLevel);
351}
352
353// property: resolveSlice
354_MTL_INLINE NS::UInteger MTL::RenderPassAttachmentDescriptor::resolveSlice() const
355{
356    return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(resolveSlice));
357}
358
359_MTL_INLINE void MTL::RenderPassAttachmentDescriptor::setResolveSlice(NS::UInteger resolveSlice)
360{
361    Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setResolveSlice_), resolveSlice);
362}
363
364// property: resolveDepthPlane
365_MTL_INLINE NS::UInteger MTL::RenderPassAttachmentDescriptor::resolveDepthPlane() const
366{
367    return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(resolveDepthPlane));
368}
369
370_MTL_INLINE void MTL::RenderPassAttachmentDescriptor::setResolveDepthPlane(NS::UInteger resolveDepthPlane)
371{
372    Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setResolveDepthPlane_), resolveDepthPlane);
373}
374
375// property: loadAction
376_MTL_INLINE MTL::LoadAction MTL::RenderPassAttachmentDescriptor::loadAction() const
377{
378    return Object::sendMessage<MTL::LoadAction>(this, _MTL_PRIVATE_SEL(loadAction));
379}
380
381_MTL_INLINE void MTL::RenderPassAttachmentDescriptor::setLoadAction(MTL::LoadAction loadAction)
382{
383    Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setLoadAction_), loadAction);
384}
385
386// property: storeAction
387_MTL_INLINE MTL::StoreAction MTL::RenderPassAttachmentDescriptor::storeAction() const
388{
389    return Object::sendMessage<MTL::StoreAction>(this, _MTL_PRIVATE_SEL(storeAction));
390}
391
392_MTL_INLINE void MTL::RenderPassAttachmentDescriptor::setStoreAction(MTL::StoreAction storeAction)
393{
394    Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setStoreAction_), storeAction);
395}
396
397// property: storeActionOptions
398_MTL_INLINE MTL::StoreActionOptions MTL::RenderPassAttachmentDescriptor::storeActionOptions() const
399{
400    return Object::sendMessage<MTL::StoreActionOptions>(this, _MTL_PRIVATE_SEL(storeActionOptions));
401}
402
403_MTL_INLINE void MTL::RenderPassAttachmentDescriptor::setStoreActionOptions(MTL::StoreActionOptions storeActionOptions)
404{
405    Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setStoreActionOptions_), storeActionOptions);
406}
407
408// static method: alloc
409_MTL_INLINE MTL::RenderPassColorAttachmentDescriptor* MTL::RenderPassColorAttachmentDescriptor::alloc()
410{
411    return NS::Object::alloc<MTL::RenderPassColorAttachmentDescriptor>(_MTL_PRIVATE_CLS(MTLRenderPassColorAttachmentDescriptor));
412}
413
414// method: init
415_MTL_INLINE MTL::RenderPassColorAttachmentDescriptor* MTL::RenderPassColorAttachmentDescriptor::init()
416{
417    return NS::Object::init<MTL::RenderPassColorAttachmentDescriptor>();
418}
419
420// property: clearColor
421_MTL_INLINE MTL::ClearColor MTL::RenderPassColorAttachmentDescriptor::clearColor() const
422{
423    return Object::sendMessage<MTL::ClearColor>(this, _MTL_PRIVATE_SEL(clearColor));
424}
425
426_MTL_INLINE void MTL::RenderPassColorAttachmentDescriptor::setClearColor(MTL::ClearColor clearColor)
427{
428    Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setClearColor_), clearColor);
429}
430
431// static method: alloc
432_MTL_INLINE MTL::RenderPassDepthAttachmentDescriptor* MTL::RenderPassDepthAttachmentDescriptor::alloc()
433{
434    return NS::Object::alloc<MTL::RenderPassDepthAttachmentDescriptor>(_MTL_PRIVATE_CLS(MTLRenderPassDepthAttachmentDescriptor));
435}
436
437// method: init
438_MTL_INLINE MTL::RenderPassDepthAttachmentDescriptor* MTL::RenderPassDepthAttachmentDescriptor::init()
439{
440    return NS::Object::init<MTL::RenderPassDepthAttachmentDescriptor>();
441}
442
443// property: clearDepth
444_MTL_INLINE double MTL::RenderPassDepthAttachmentDescriptor::clearDepth() const
445{
446    return Object::sendMessage<double>(this, _MTL_PRIVATE_SEL(clearDepth));
447}
448
449_MTL_INLINE void MTL::RenderPassDepthAttachmentDescriptor::setClearDepth(double clearDepth)
450{
451    Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setClearDepth_), clearDepth);
452}
453
454// property: depthResolveFilter
455_MTL_INLINE MTL::MultisampleDepthResolveFilter MTL::RenderPassDepthAttachmentDescriptor::depthResolveFilter() const
456{
457    return Object::sendMessage<MTL::MultisampleDepthResolveFilter>(this, _MTL_PRIVATE_SEL(depthResolveFilter));
458}
459
460_MTL_INLINE void MTL::RenderPassDepthAttachmentDescriptor::setDepthResolveFilter(MTL::MultisampleDepthResolveFilter depthResolveFilter)
461{
462    Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setDepthResolveFilter_), depthResolveFilter);
463}
464
465// static method: alloc
466_MTL_INLINE MTL::RenderPassStencilAttachmentDescriptor* MTL::RenderPassStencilAttachmentDescriptor::alloc()
467{
468    return NS::Object::alloc<MTL::RenderPassStencilAttachmentDescriptor>(_MTL_PRIVATE_CLS(MTLRenderPassStencilAttachmentDescriptor));
469}
470
471// method: init
472_MTL_INLINE MTL::RenderPassStencilAttachmentDescriptor* MTL::RenderPassStencilAttachmentDescriptor::init()
473{
474    return NS::Object::init<MTL::RenderPassStencilAttachmentDescriptor>();
475}
476
477// property: clearStencil
478_MTL_INLINE uint32_t MTL::RenderPassStencilAttachmentDescriptor::clearStencil() const
479{
480    return Object::sendMessage<uint32_t>(this, _MTL_PRIVATE_SEL(clearStencil));
481}
482
483_MTL_INLINE void MTL::RenderPassStencilAttachmentDescriptor::setClearStencil(uint32_t clearStencil)
484{
485    Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setClearStencil_), clearStencil);
486}
487
488// property: stencilResolveFilter
489_MTL_INLINE MTL::MultisampleStencilResolveFilter MTL::RenderPassStencilAttachmentDescriptor::stencilResolveFilter() const
490{
491    return Object::sendMessage<MTL::MultisampleStencilResolveFilter>(this, _MTL_PRIVATE_SEL(stencilResolveFilter));
492}
493
494_MTL_INLINE void MTL::RenderPassStencilAttachmentDescriptor::setStencilResolveFilter(MTL::MultisampleStencilResolveFilter stencilResolveFilter)
495{
496    Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setStencilResolveFilter_), stencilResolveFilter);
497}
498
499// static method: alloc
500_MTL_INLINE MTL::RenderPassColorAttachmentDescriptorArray* MTL::RenderPassColorAttachmentDescriptorArray::alloc()
501{
502    return NS::Object::alloc<MTL::RenderPassColorAttachmentDescriptorArray>(_MTL_PRIVATE_CLS(MTLRenderPassColorAttachmentDescriptorArray));
503}
504
505// method: init
506_MTL_INLINE MTL::RenderPassColorAttachmentDescriptorArray* MTL::RenderPassColorAttachmentDescriptorArray::init()
507{
508    return NS::Object::init<MTL::RenderPassColorAttachmentDescriptorArray>();
509}
510
511// method: objectAtIndexedSubscript:
512_MTL_INLINE MTL::RenderPassColorAttachmentDescriptor* MTL::RenderPassColorAttachmentDescriptorArray::object(NS::UInteger attachmentIndex)
513{
514    return Object::sendMessage<MTL::RenderPassColorAttachmentDescriptor*>(this, _MTL_PRIVATE_SEL(objectAtIndexedSubscript_), attachmentIndex);
515}
516
517// method: setObject:atIndexedSubscript:
518_MTL_INLINE void MTL::RenderPassColorAttachmentDescriptorArray::setObject(const MTL::RenderPassColorAttachmentDescriptor* attachment, NS::UInteger attachmentIndex)
519{
520    Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setObject_atIndexedSubscript_), attachment, attachmentIndex);
521}
522
523// static method: alloc
524_MTL_INLINE MTL::RenderPassSampleBufferAttachmentDescriptor* MTL::RenderPassSampleBufferAttachmentDescriptor::alloc()
525{
526    return NS::Object::alloc<MTL::RenderPassSampleBufferAttachmentDescriptor>(_MTL_PRIVATE_CLS(MTLRenderPassSampleBufferAttachmentDescriptor));
527}
528
529// method: init
530_MTL_INLINE MTL::RenderPassSampleBufferAttachmentDescriptor* MTL::RenderPassSampleBufferAttachmentDescriptor::init()
531{
532    return NS::Object::init<MTL::RenderPassSampleBufferAttachmentDescriptor>();
533}
534
535// property: sampleBuffer
536_MTL_INLINE MTL::CounterSampleBuffer* MTL::RenderPassSampleBufferAttachmentDescriptor::sampleBuffer() const
537{
538    return Object::sendMessage<MTL::CounterSampleBuffer*>(this, _MTL_PRIVATE_SEL(sampleBuffer));
539}
540
541_MTL_INLINE void MTL::RenderPassSampleBufferAttachmentDescriptor::setSampleBuffer(const MTL::CounterSampleBuffer* sampleBuffer)
542{
543    Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setSampleBuffer_), sampleBuffer);
544}
545
546// property: startOfVertexSampleIndex
547_MTL_INLINE NS::UInteger MTL::RenderPassSampleBufferAttachmentDescriptor::startOfVertexSampleIndex() const
548{
549    return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(startOfVertexSampleIndex));
550}
551
552_MTL_INLINE void MTL::RenderPassSampleBufferAttachmentDescriptor::setStartOfVertexSampleIndex(NS::UInteger startOfVertexSampleIndex)
553{
554    Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setStartOfVertexSampleIndex_), startOfVertexSampleIndex);
555}
556
557// property: endOfVertexSampleIndex
558_MTL_INLINE NS::UInteger MTL::RenderPassSampleBufferAttachmentDescriptor::endOfVertexSampleIndex() const
559{
560    return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(endOfVertexSampleIndex));
561}
562
563_MTL_INLINE void MTL::RenderPassSampleBufferAttachmentDescriptor::setEndOfVertexSampleIndex(NS::UInteger endOfVertexSampleIndex)
564{
565    Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setEndOfVertexSampleIndex_), endOfVertexSampleIndex);
566}
567
568// property: startOfFragmentSampleIndex
569_MTL_INLINE NS::UInteger MTL::RenderPassSampleBufferAttachmentDescriptor::startOfFragmentSampleIndex() const
570{
571    return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(startOfFragmentSampleIndex));
572}
573
574_MTL_INLINE void MTL::RenderPassSampleBufferAttachmentDescriptor::setStartOfFragmentSampleIndex(NS::UInteger startOfFragmentSampleIndex)
575{
576    Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setStartOfFragmentSampleIndex_), startOfFragmentSampleIndex);
577}
578
579// property: endOfFragmentSampleIndex
580_MTL_INLINE NS::UInteger MTL::RenderPassSampleBufferAttachmentDescriptor::endOfFragmentSampleIndex() const
581{
582    return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(endOfFragmentSampleIndex));
583}
584
585_MTL_INLINE void MTL::RenderPassSampleBufferAttachmentDescriptor::setEndOfFragmentSampleIndex(NS::UInteger endOfFragmentSampleIndex)
586{
587    Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setEndOfFragmentSampleIndex_), endOfFragmentSampleIndex);
588}
589
590// static method: alloc
591_MTL_INLINE MTL::RenderPassSampleBufferAttachmentDescriptorArray* MTL::RenderPassSampleBufferAttachmentDescriptorArray::alloc()
592{
593    return NS::Object::alloc<MTL::RenderPassSampleBufferAttachmentDescriptorArray>(_MTL_PRIVATE_CLS(MTLRenderPassSampleBufferAttachmentDescriptorArray));
594}
595
596// method: init
597_MTL_INLINE MTL::RenderPassSampleBufferAttachmentDescriptorArray* MTL::RenderPassSampleBufferAttachmentDescriptorArray::init()
598{
599    return NS::Object::init<MTL::RenderPassSampleBufferAttachmentDescriptorArray>();
600}
601
602// method: objectAtIndexedSubscript:
603_MTL_INLINE MTL::RenderPassSampleBufferAttachmentDescriptor* MTL::RenderPassSampleBufferAttachmentDescriptorArray::object(NS::UInteger attachmentIndex)
604{
605    return Object::sendMessage<MTL::RenderPassSampleBufferAttachmentDescriptor*>(this, _MTL_PRIVATE_SEL(objectAtIndexedSubscript_), attachmentIndex);
606}
607
608// method: setObject:atIndexedSubscript:
609_MTL_INLINE void MTL::RenderPassSampleBufferAttachmentDescriptorArray::setObject(const MTL::RenderPassSampleBufferAttachmentDescriptor* attachment, NS::UInteger attachmentIndex)
610{
611    Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setObject_atIndexedSubscript_), attachment, attachmentIndex);
612}
613
614// static method: alloc
615_MTL_INLINE MTL::RenderPassDescriptor* MTL::RenderPassDescriptor::alloc()
616{
617    return NS::Object::alloc<MTL::RenderPassDescriptor>(_MTL_PRIVATE_CLS(MTLRenderPassDescriptor));
618}
619
620// method: init
621_MTL_INLINE MTL::RenderPassDescriptor* MTL::RenderPassDescriptor::init()
622{
623    return NS::Object::init<MTL::RenderPassDescriptor>();
624}
625
626// static method: renderPassDescriptor
627_MTL_INLINE MTL::RenderPassDescriptor* MTL::RenderPassDescriptor::renderPassDescriptor()
628{
629    return Object::sendMessage<MTL::RenderPassDescriptor*>(_MTL_PRIVATE_CLS(MTLRenderPassDescriptor), _MTL_PRIVATE_SEL(renderPassDescriptor));
630}
631
632// property: colorAttachments
633_MTL_INLINE MTL::RenderPassColorAttachmentDescriptorArray* MTL::RenderPassDescriptor::colorAttachments() const
634{
635    return Object::sendMessage<MTL::RenderPassColorAttachmentDescriptorArray*>(this, _MTL_PRIVATE_SEL(colorAttachments));
636}
637
638// property: depthAttachment
639_MTL_INLINE MTL::RenderPassDepthAttachmentDescriptor* MTL::RenderPassDescriptor::depthAttachment() const
640{
641    return Object::sendMessage<MTL::RenderPassDepthAttachmentDescriptor*>(this, _MTL_PRIVATE_SEL(depthAttachment));
642}
643
644_MTL_INLINE void MTL::RenderPassDescriptor::setDepthAttachment(const MTL::RenderPassDepthAttachmentDescriptor* depthAttachment)
645{
646    Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setDepthAttachment_), depthAttachment);
647}
648
649// property: stencilAttachment
650_MTL_INLINE MTL::RenderPassStencilAttachmentDescriptor* MTL::RenderPassDescriptor::stencilAttachment() const
651{
652    return Object::sendMessage<MTL::RenderPassStencilAttachmentDescriptor*>(this, _MTL_PRIVATE_SEL(stencilAttachment));
653}
654
655_MTL_INLINE void MTL::RenderPassDescriptor::setStencilAttachment(const MTL::RenderPassStencilAttachmentDescriptor* stencilAttachment)
656{
657    Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setStencilAttachment_), stencilAttachment);
658}
659
660// property: visibilityResultBuffer
661_MTL_INLINE MTL::Buffer* MTL::RenderPassDescriptor::visibilityResultBuffer() const
662{
663    return Object::sendMessage<MTL::Buffer*>(this, _MTL_PRIVATE_SEL(visibilityResultBuffer));
664}
665
666_MTL_INLINE void MTL::RenderPassDescriptor::setVisibilityResultBuffer(const MTL::Buffer* visibilityResultBuffer)
667{
668    Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setVisibilityResultBuffer_), visibilityResultBuffer);
669}
670
671// property: renderTargetArrayLength
672_MTL_INLINE NS::UInteger MTL::RenderPassDescriptor::renderTargetArrayLength() const
673{
674    return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(renderTargetArrayLength));
675}
676
677_MTL_INLINE void MTL::RenderPassDescriptor::setRenderTargetArrayLength(NS::UInteger renderTargetArrayLength)
678{
679    Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setRenderTargetArrayLength_), renderTargetArrayLength);
680}
681
682// property: imageblockSampleLength
683_MTL_INLINE NS::UInteger MTL::RenderPassDescriptor::imageblockSampleLength() const
684{
685    return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(imageblockSampleLength));
686}
687
688_MTL_INLINE void MTL::RenderPassDescriptor::setImageblockSampleLength(NS::UInteger imageblockSampleLength)
689{
690    Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setImageblockSampleLength_), imageblockSampleLength);
691}
692
693// property: threadgroupMemoryLength
694_MTL_INLINE NS::UInteger MTL::RenderPassDescriptor::threadgroupMemoryLength() const
695{
696    return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(threadgroupMemoryLength));
697}
698
699_MTL_INLINE void MTL::RenderPassDescriptor::setThreadgroupMemoryLength(NS::UInteger threadgroupMemoryLength)
700{
701    Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setThreadgroupMemoryLength_), threadgroupMemoryLength);
702}
703
704// property: tileWidth
705_MTL_INLINE NS::UInteger MTL::RenderPassDescriptor::tileWidth() const
706{
707    return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(tileWidth));
708}
709
710_MTL_INLINE void MTL::RenderPassDescriptor::setTileWidth(NS::UInteger tileWidth)
711{
712    Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setTileWidth_), tileWidth);
713}
714
715// property: tileHeight
716_MTL_INLINE NS::UInteger MTL::RenderPassDescriptor::tileHeight() const
717{
718    return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(tileHeight));
719}
720
721_MTL_INLINE void MTL::RenderPassDescriptor::setTileHeight(NS::UInteger tileHeight)
722{
723    Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setTileHeight_), tileHeight);
724}
725
726// property: defaultRasterSampleCount
727_MTL_INLINE NS::UInteger MTL::RenderPassDescriptor::defaultRasterSampleCount() const
728{
729    return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(defaultRasterSampleCount));
730}
731
732_MTL_INLINE void MTL::RenderPassDescriptor::setDefaultRasterSampleCount(NS::UInteger defaultRasterSampleCount)
733{
734    Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setDefaultRasterSampleCount_), defaultRasterSampleCount);
735}
736
737// property: renderTargetWidth
738_MTL_INLINE NS::UInteger MTL::RenderPassDescriptor::renderTargetWidth() const
739{
740    return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(renderTargetWidth));
741}
742
743_MTL_INLINE void MTL::RenderPassDescriptor::setRenderTargetWidth(NS::UInteger renderTargetWidth)
744{
745    Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setRenderTargetWidth_), renderTargetWidth);
746}
747
748// property: renderTargetHeight
749_MTL_INLINE NS::UInteger MTL::RenderPassDescriptor::renderTargetHeight() const
750{
751    return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(renderTargetHeight));
752}
753
754_MTL_INLINE void MTL::RenderPassDescriptor::setRenderTargetHeight(NS::UInteger renderTargetHeight)
755{
756    Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setRenderTargetHeight_), renderTargetHeight);
757}
758
759// method: setSamplePositions:count:
760_MTL_INLINE void MTL::RenderPassDescriptor::setSamplePositions(const MTL::SamplePosition* positions, NS::UInteger count)
761{
762    Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setSamplePositions_count_), positions, count);
763}
764
765// method: getSamplePositions:count:
766_MTL_INLINE NS::UInteger MTL::RenderPassDescriptor::getSamplePositions(MTL::SamplePosition* positions, NS::UInteger count)
767{
768    return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(getSamplePositions_count_), positions, count);
769}
770
771// property: rasterizationRateMap
772_MTL_INLINE MTL::RasterizationRateMap* MTL::RenderPassDescriptor::rasterizationRateMap() const
773{
774    return Object::sendMessage<MTL::RasterizationRateMap*>(this, _MTL_PRIVATE_SEL(rasterizationRateMap));
775}
776
777_MTL_INLINE void MTL::RenderPassDescriptor::setRasterizationRateMap(const MTL::RasterizationRateMap* rasterizationRateMap)
778{
779    Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setRasterizationRateMap_), rasterizationRateMap);
780}
781
782// property: sampleBufferAttachments
783_MTL_INLINE MTL::RenderPassSampleBufferAttachmentDescriptorArray* MTL::RenderPassDescriptor::sampleBufferAttachments() const
784{
785    return Object::sendMessage<MTL::RenderPassSampleBufferAttachmentDescriptorArray*>(this, _MTL_PRIVATE_SEL(sampleBufferAttachments));
786}