MTLRenderCommandEncoder.hpp
1 //------------------------------------------------------------------------------------------------------------------------------------------------------------- 2 // 3 // Metal/MTLRenderCommandEncoder.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 #include "MTLDefines.hpp" 24 #include "MTLHeaderBridge.hpp" 25 #include "MTLPrivate.hpp" 26 27 #include <Foundation/Foundation.hpp> 28 29 #include "MTLCommandEncoder.hpp" 30 #include "MTLRenderCommandEncoder.hpp" 31 #include "MTLRenderPass.hpp" 32 #include "MTLStageInputOutputDescriptor.hpp" 33 #include "MTLTypes.hpp" 34 35 namespace MTL 36 { 37 _MTL_ENUM(NS::UInteger, PrimitiveType) { 38 PrimitiveTypePoint = 0, 39 PrimitiveTypeLine = 1, 40 PrimitiveTypeLineStrip = 2, 41 PrimitiveTypeTriangle = 3, 42 PrimitiveTypeTriangleStrip = 4, 43 }; 44 45 _MTL_ENUM(NS::UInteger, VisibilityResultMode) { 46 VisibilityResultModeDisabled = 0, 47 VisibilityResultModeBoolean = 1, 48 VisibilityResultModeCounting = 2, 49 }; 50 51 struct ScissorRect 52 { 53 NS::UInteger x; 54 NS::UInteger y; 55 NS::UInteger width; 56 NS::UInteger height; 57 } _MTL_PACKED; 58 59 struct Viewport 60 { 61 double originX; 62 double originY; 63 double width; 64 double height; 65 double znear; 66 double zfar; 67 } _MTL_PACKED; 68 69 _MTL_ENUM(NS::UInteger, CullMode) { 70 CullModeNone = 0, 71 CullModeFront = 1, 72 CullModeBack = 2, 73 }; 74 75 _MTL_ENUM(NS::UInteger, Winding) { 76 WindingClockwise = 0, 77 WindingCounterClockwise = 1, 78 }; 79 80 _MTL_ENUM(NS::UInteger, DepthClipMode) { 81 DepthClipModeClip = 0, 82 DepthClipModeClamp = 1, 83 }; 84 85 _MTL_ENUM(NS::UInteger, TriangleFillMode) { 86 TriangleFillModeFill = 0, 87 TriangleFillModeLines = 1, 88 }; 89 90 struct DrawPrimitivesIndirectArguments 91 { 92 uint32_t vertexCount; 93 uint32_t instanceCount; 94 uint32_t vertexStart; 95 uint32_t baseInstance; 96 } _MTL_PACKED; 97 98 struct DrawIndexedPrimitivesIndirectArguments 99 { 100 uint32_t indexCount; 101 uint32_t instanceCount; 102 uint32_t indexStart; 103 int32_t baseVertex; 104 uint32_t baseInstance; 105 } _MTL_PACKED; 106 107 struct VertexAmplificationViewMapping 108 { 109 uint32_t viewportArrayIndexOffset; 110 uint32_t renderTargetArrayIndexOffset; 111 } _MTL_PACKED; 112 113 struct DrawPatchIndirectArguments 114 { 115 uint32_t patchCount; 116 uint32_t instanceCount; 117 uint32_t patchStart; 118 uint32_t baseInstance; 119 } _MTL_PACKED; 120 121 struct QuadTessellationFactorsHalf 122 { 123 uint16_t edgeTessellationFactor[4]; 124 uint16_t insideTessellationFactor[2]; 125 } _MTL_PACKED; 126 127 struct TriangleTessellationFactorsHalf 128 { 129 uint16_t edgeTessellationFactor[3]; 130 uint16_t insideTessellationFactor; 131 } _MTL_PACKED; 132 133 _MTL_OPTIONS(NS::UInteger, RenderStages) { 134 RenderStageVertex = 1, 135 RenderStageFragment = 2, 136 RenderStageTile = 4, 137 RenderStageObject = 8, 138 RenderStageMesh = 16, 139 }; 140 141 class RenderCommandEncoder : public NS::Referencing<RenderCommandEncoder, CommandEncoder> 142 { 143 public: 144 void setRenderPipelineState(const class RenderPipelineState* pipelineState); 145 146 void setVertexBytes(const void* bytes, NS::UInteger length, NS::UInteger index); 147 148 void setVertexBuffer(const class Buffer* buffer, NS::UInteger offset, NS::UInteger index); 149 150 void setVertexBufferOffset(NS::UInteger offset, NS::UInteger index); 151 152 void setVertexBuffers(const class Buffer* const buffers[], const NS::UInteger offsets[], NS::Range range); 153 154 void setVertexBuffer(const class Buffer* buffer, NS::UInteger offset, NS::UInteger stride, NS::UInteger index); 155 156 void setVertexBuffers(const class Buffer* const buffers[], const NS::UInteger* offsets, const NS::UInteger* strides, NS::Range range); 157 158 void setVertexBufferOffset(NS::UInteger offset, NS::UInteger stride, NS::UInteger index); 159 160 void setVertexBytes(const void* bytes, NS::UInteger length, NS::UInteger stride, NS::UInteger index); 161 162 void setVertexTexture(const class Texture* texture, NS::UInteger index); 163 164 void setVertexTextures(const class Texture* const textures[], NS::Range range); 165 166 void setVertexSamplerState(const class SamplerState* sampler, NS::UInteger index); 167 168 void setVertexSamplerStates(const class SamplerState* const samplers[], NS::Range range); 169 170 void setVertexSamplerState(const class SamplerState* sampler, float lodMinClamp, float lodMaxClamp, NS::UInteger index); 171 172 void setVertexSamplerStates(const class SamplerState* const samplers[], const float lodMinClamps[], const float lodMaxClamps[], NS::Range range); 173 174 void setVertexVisibleFunctionTable(const class VisibleFunctionTable* functionTable, NS::UInteger bufferIndex); 175 176 void setVertexVisibleFunctionTables(const class VisibleFunctionTable* const functionTables[], NS::Range range); 177 178 void setVertexIntersectionFunctionTable(const class IntersectionFunctionTable* intersectionFunctionTable, NS::UInteger bufferIndex); 179 180 void setVertexIntersectionFunctionTables(const class IntersectionFunctionTable* const intersectionFunctionTables[], NS::Range range); 181 182 void setVertexAccelerationStructure(const class AccelerationStructure* accelerationStructure, NS::UInteger bufferIndex); 183 184 void setViewport(MTL::Viewport viewport); 185 186 void setViewports(const MTL::Viewport* viewports, NS::UInteger count); 187 188 void setFrontFacingWinding(MTL::Winding frontFacingWinding); 189 190 void setVertexAmplificationCount(NS::UInteger count, const MTL::VertexAmplificationViewMapping* viewMappings); 191 192 void setCullMode(MTL::CullMode cullMode); 193 194 void setDepthClipMode(MTL::DepthClipMode depthClipMode); 195 196 void setDepthBias(float depthBias, float slopeScale, float clamp); 197 198 void setScissorRect(MTL::ScissorRect rect); 199 200 void setScissorRects(const MTL::ScissorRect* scissorRects, NS::UInteger count); 201 202 void setTriangleFillMode(MTL::TriangleFillMode fillMode); 203 204 void setFragmentBytes(const void* bytes, NS::UInteger length, NS::UInteger index); 205 206 void setFragmentBuffer(const class Buffer* buffer, NS::UInteger offset, NS::UInteger index); 207 208 void setFragmentBufferOffset(NS::UInteger offset, NS::UInteger index); 209 210 void setFragmentBuffers(const class Buffer* const buffers[], const NS::UInteger offsets[], NS::Range range); 211 212 void setFragmentTexture(const class Texture* texture, NS::UInteger index); 213 214 void setFragmentTextures(const class Texture* const textures[], NS::Range range); 215 216 void setFragmentSamplerState(const class SamplerState* sampler, NS::UInteger index); 217 218 void setFragmentSamplerStates(const class SamplerState* const samplers[], NS::Range range); 219 220 void setFragmentSamplerState(const class SamplerState* sampler, float lodMinClamp, float lodMaxClamp, NS::UInteger index); 221 222 void setFragmentSamplerStates(const class SamplerState* const samplers[], const float lodMinClamps[], const float lodMaxClamps[], NS::Range range); 223 224 void setFragmentVisibleFunctionTable(const class VisibleFunctionTable* functionTable, NS::UInteger bufferIndex); 225 226 void setFragmentVisibleFunctionTables(const class VisibleFunctionTable* const functionTables[], NS::Range range); 227 228 void setFragmentIntersectionFunctionTable(const class IntersectionFunctionTable* intersectionFunctionTable, NS::UInteger bufferIndex); 229 230 void setFragmentIntersectionFunctionTables(const class IntersectionFunctionTable* const intersectionFunctionTables[], NS::Range range); 231 232 void setFragmentAccelerationStructure(const class AccelerationStructure* accelerationStructure, NS::UInteger bufferIndex); 233 234 void setBlendColor(float red, float green, float blue, float alpha); 235 236 void setDepthStencilState(const class DepthStencilState* depthStencilState); 237 238 void setStencilReferenceValue(uint32_t referenceValue); 239 240 void setStencilReferenceValues(uint32_t frontReferenceValue, uint32_t backReferenceValue); 241 242 void setVisibilityResultMode(MTL::VisibilityResultMode mode, NS::UInteger offset); 243 244 void setColorStoreAction(MTL::StoreAction storeAction, NS::UInteger colorAttachmentIndex); 245 246 void setDepthStoreAction(MTL::StoreAction storeAction); 247 248 void setStencilStoreAction(MTL::StoreAction storeAction); 249 250 void setColorStoreActionOptions(MTL::StoreActionOptions storeActionOptions, NS::UInteger colorAttachmentIndex); 251 252 void setDepthStoreActionOptions(MTL::StoreActionOptions storeActionOptions); 253 254 void setStencilStoreActionOptions(MTL::StoreActionOptions storeActionOptions); 255 256 void setObjectBytes(const void* bytes, NS::UInteger length, NS::UInteger index); 257 258 void setObjectBuffer(const class Buffer* buffer, NS::UInteger offset, NS::UInteger index); 259 260 void setObjectBufferOffset(NS::UInteger offset, NS::UInteger index); 261 262 void setObjectBuffers(const class Buffer* const buffers[], const NS::UInteger* offsets, NS::Range range); 263 264 void setObjectTexture(const class Texture* texture, NS::UInteger index); 265 266 void setObjectTextures(const class Texture* const textures[], NS::Range range); 267 268 void setObjectSamplerState(const class SamplerState* sampler, NS::UInteger index); 269 270 void setObjectSamplerStates(const class SamplerState* const samplers[], NS::Range range); 271 272 void setObjectSamplerState(const class SamplerState* sampler, float lodMinClamp, float lodMaxClamp, NS::UInteger index); 273 274 void setObjectSamplerStates(const class SamplerState* const samplers[], const float* lodMinClamps, const float* lodMaxClamps, NS::Range range); 275 276 void setObjectThreadgroupMemoryLength(NS::UInteger length, NS::UInteger index); 277 278 void setMeshBytes(const void* bytes, NS::UInteger length, NS::UInteger index); 279 280 void setMeshBuffer(const class Buffer* buffer, NS::UInteger offset, NS::UInteger index); 281 282 void setMeshBufferOffset(NS::UInteger offset, NS::UInteger index); 283 284 void setMeshBuffers(const class Buffer* const buffers[], const NS::UInteger* offsets, NS::Range range); 285 286 void setMeshTexture(const class Texture* texture, NS::UInteger index); 287 288 void setMeshTextures(const class Texture* const textures[], NS::Range range); 289 290 void setMeshSamplerState(const class SamplerState* sampler, NS::UInteger index); 291 292 void setMeshSamplerStates(const class SamplerState* const samplers[], NS::Range range); 293 294 void setMeshSamplerState(const class SamplerState* sampler, float lodMinClamp, float lodMaxClamp, NS::UInteger index); 295 296 void setMeshSamplerStates(const class SamplerState* const samplers[], const float* lodMinClamps, const float* lodMaxClamps, NS::Range range); 297 298 void drawMeshThreadgroups(MTL::Size threadgroupsPerGrid, MTL::Size threadsPerObjectThreadgroup, MTL::Size threadsPerMeshThreadgroup); 299 300 void drawMeshThreads(MTL::Size threadsPerGrid, MTL::Size threadsPerObjectThreadgroup, MTL::Size threadsPerMeshThreadgroup); 301 302 void drawMeshThreadgroups(const class Buffer* indirectBuffer, NS::UInteger indirectBufferOffset, MTL::Size threadsPerObjectThreadgroup, MTL::Size threadsPerMeshThreadgroup); 303 304 void drawPrimitives(MTL::PrimitiveType primitiveType, NS::UInteger vertexStart, NS::UInteger vertexCount, NS::UInteger instanceCount); 305 306 void drawPrimitives(MTL::PrimitiveType primitiveType, NS::UInteger vertexStart, NS::UInteger vertexCount); 307 308 void drawIndexedPrimitives(MTL::PrimitiveType primitiveType, NS::UInteger indexCount, MTL::IndexType indexType, const class Buffer* indexBuffer, NS::UInteger indexBufferOffset, NS::UInteger instanceCount); 309 310 void drawIndexedPrimitives(MTL::PrimitiveType primitiveType, NS::UInteger indexCount, MTL::IndexType indexType, const class Buffer* indexBuffer, NS::UInteger indexBufferOffset); 311 312 void drawPrimitives(MTL::PrimitiveType primitiveType, NS::UInteger vertexStart, NS::UInteger vertexCount, NS::UInteger instanceCount, NS::UInteger baseInstance); 313 314 void drawIndexedPrimitives(MTL::PrimitiveType primitiveType, NS::UInteger indexCount, MTL::IndexType indexType, const class Buffer* indexBuffer, NS::UInteger indexBufferOffset, NS::UInteger instanceCount, NS::Integer baseVertex, NS::UInteger baseInstance); 315 316 void drawPrimitives(MTL::PrimitiveType primitiveType, const class Buffer* indirectBuffer, NS::UInteger indirectBufferOffset); 317 318 void drawIndexedPrimitives(MTL::PrimitiveType primitiveType, MTL::IndexType indexType, const class Buffer* indexBuffer, NS::UInteger indexBufferOffset, const class Buffer* indirectBuffer, NS::UInteger indirectBufferOffset); 319 320 void textureBarrier(); 321 322 void updateFence(const class Fence* fence, MTL::RenderStages stages); 323 324 void waitForFence(const class Fence* fence, MTL::RenderStages stages); 325 326 void setTessellationFactorBuffer(const class Buffer* buffer, NS::UInteger offset, NS::UInteger instanceStride); 327 328 void setTessellationFactorScale(float scale); 329 330 void drawPatches(NS::UInteger numberOfPatchControlPoints, NS::UInteger patchStart, NS::UInteger patchCount, const class Buffer* patchIndexBuffer, NS::UInteger patchIndexBufferOffset, NS::UInteger instanceCount, NS::UInteger baseInstance); 331 332 void drawPatches(NS::UInteger numberOfPatchControlPoints, const class Buffer* patchIndexBuffer, NS::UInteger patchIndexBufferOffset, const class Buffer* indirectBuffer, NS::UInteger indirectBufferOffset); 333 334 void drawIndexedPatches(NS::UInteger numberOfPatchControlPoints, NS::UInteger patchStart, NS::UInteger patchCount, const class Buffer* patchIndexBuffer, NS::UInteger patchIndexBufferOffset, const class Buffer* controlPointIndexBuffer, NS::UInteger controlPointIndexBufferOffset, NS::UInteger instanceCount, NS::UInteger baseInstance); 335 336 void drawIndexedPatches(NS::UInteger numberOfPatchControlPoints, const class Buffer* patchIndexBuffer, NS::UInteger patchIndexBufferOffset, const class Buffer* controlPointIndexBuffer, NS::UInteger controlPointIndexBufferOffset, const class Buffer* indirectBuffer, NS::UInteger indirectBufferOffset); 337 338 NS::UInteger tileWidth() const; 339 340 NS::UInteger tileHeight() const; 341 342 void setTileBytes(const void* bytes, NS::UInteger length, NS::UInteger index); 343 344 void setTileBuffer(const class Buffer* buffer, NS::UInteger offset, NS::UInteger index); 345 346 void setTileBufferOffset(NS::UInteger offset, NS::UInteger index); 347 348 void setTileBuffers(const class Buffer* const buffers[], const NS::UInteger* offsets, NS::Range range); 349 350 void setTileTexture(const class Texture* texture, NS::UInteger index); 351 352 void setTileTextures(const class Texture* const textures[], NS::Range range); 353 354 void setTileSamplerState(const class SamplerState* sampler, NS::UInteger index); 355 356 void setTileSamplerStates(const class SamplerState* const samplers[], NS::Range range); 357 358 void setTileSamplerState(const class SamplerState* sampler, float lodMinClamp, float lodMaxClamp, NS::UInteger index); 359 360 void setTileSamplerStates(const class SamplerState* const samplers[], const float lodMinClamps[], const float lodMaxClamps[], NS::Range range); 361 362 void setTileVisibleFunctionTable(const class VisibleFunctionTable* functionTable, NS::UInteger bufferIndex); 363 364 void setTileVisibleFunctionTables(const class VisibleFunctionTable* const functionTables[], NS::Range range); 365 366 void setTileIntersectionFunctionTable(const class IntersectionFunctionTable* intersectionFunctionTable, NS::UInteger bufferIndex); 367 368 void setTileIntersectionFunctionTables(const class IntersectionFunctionTable* const intersectionFunctionTables[], NS::Range range); 369 370 void setTileAccelerationStructure(const class AccelerationStructure* accelerationStructure, NS::UInteger bufferIndex); 371 372 void dispatchThreadsPerTile(MTL::Size threadsPerTile); 373 374 void setThreadgroupMemoryLength(NS::UInteger length, NS::UInteger offset, NS::UInteger index); 375 376 void useResource(const class Resource* resource, MTL::ResourceUsage usage); 377 378 void useResources(const class Resource* const resources[], NS::UInteger count, MTL::ResourceUsage usage); 379 380 void useResource(const class Resource* resource, MTL::ResourceUsage usage, MTL::RenderStages stages); 381 382 void useResources(const class Resource* const resources[], NS::UInteger count, MTL::ResourceUsage usage, MTL::RenderStages stages); 383 384 void useHeap(const class Heap* heap); 385 386 void useHeaps(const class Heap* const heaps[], NS::UInteger count); 387 388 void useHeap(const class Heap* heap, MTL::RenderStages stages); 389 390 void useHeaps(const class Heap* const heaps[], NS::UInteger count, MTL::RenderStages stages); 391 392 void executeCommandsInBuffer(const class IndirectCommandBuffer* indirectCommandBuffer, NS::Range executionRange); 393 394 void executeCommandsInBuffer(const class IndirectCommandBuffer* indirectCommandbuffer, const class Buffer* indirectRangeBuffer, NS::UInteger indirectBufferOffset); 395 396 void memoryBarrier(MTL::BarrierScope scope, MTL::RenderStages after, MTL::RenderStages before); 397 398 void memoryBarrier(const class Resource* const resources[], NS::UInteger count, MTL::RenderStages after, MTL::RenderStages before); 399 400 void sampleCountersInBuffer(const class CounterSampleBuffer* sampleBuffer, NS::UInteger sampleIndex, bool barrier); 401 }; 402 403 } 404 405 // method: setRenderPipelineState: 406 _MTL_INLINE void MTL::RenderCommandEncoder::setRenderPipelineState(const MTL::RenderPipelineState* pipelineState) 407 { 408 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setRenderPipelineState_), pipelineState); 409 } 410 411 // method: setVertexBytes:length:atIndex: 412 _MTL_INLINE void MTL::RenderCommandEncoder::setVertexBytes(const void* bytes, NS::UInteger length, NS::UInteger index) 413 { 414 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setVertexBytes_length_atIndex_), bytes, length, index); 415 } 416 417 // method: setVertexBuffer:offset:atIndex: 418 _MTL_INLINE void MTL::RenderCommandEncoder::setVertexBuffer(const MTL::Buffer* buffer, NS::UInteger offset, NS::UInteger index) 419 { 420 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setVertexBuffer_offset_atIndex_), buffer, offset, index); 421 } 422 423 // method: setVertexBufferOffset:atIndex: 424 _MTL_INLINE void MTL::RenderCommandEncoder::setVertexBufferOffset(NS::UInteger offset, NS::UInteger index) 425 { 426 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setVertexBufferOffset_atIndex_), offset, index); 427 } 428 429 // method: setVertexBuffers:offsets:withRange: 430 _MTL_INLINE void MTL::RenderCommandEncoder::setVertexBuffers(const MTL::Buffer* const buffers[], const NS::UInteger offsets[], NS::Range range) 431 { 432 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setVertexBuffers_offsets_withRange_), buffers, offsets, range); 433 } 434 435 // method: setVertexBuffer:offset:attributeStride:atIndex: 436 _MTL_INLINE void MTL::RenderCommandEncoder::setVertexBuffer(const MTL::Buffer* buffer, NS::UInteger offset, NS::UInteger stride, NS::UInteger index) 437 { 438 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setVertexBuffer_offset_attributeStride_atIndex_), buffer, offset, stride, index); 439 } 440 441 // method: setVertexBuffers:offsets:attributeStrides:withRange: 442 _MTL_INLINE void MTL::RenderCommandEncoder::setVertexBuffers(const MTL::Buffer* const buffers[], const NS::UInteger* offsets, const NS::UInteger* strides, NS::Range range) 443 { 444 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setVertexBuffers_offsets_attributeStrides_withRange_), buffers, offsets, strides, range); 445 } 446 447 // method: setVertexBufferOffset:attributeStride:atIndex: 448 _MTL_INLINE void MTL::RenderCommandEncoder::setVertexBufferOffset(NS::UInteger offset, NS::UInteger stride, NS::UInteger index) 449 { 450 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setVertexBufferOffset_attributeStride_atIndex_), offset, stride, index); 451 } 452 453 // method: setVertexBytes:length:attributeStride:atIndex: 454 _MTL_INLINE void MTL::RenderCommandEncoder::setVertexBytes(const void* bytes, NS::UInteger length, NS::UInteger stride, NS::UInteger index) 455 { 456 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setVertexBytes_length_attributeStride_atIndex_), bytes, length, stride, index); 457 } 458 459 // method: setVertexTexture:atIndex: 460 _MTL_INLINE void MTL::RenderCommandEncoder::setVertexTexture(const MTL::Texture* texture, NS::UInteger index) 461 { 462 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setVertexTexture_atIndex_), texture, index); 463 } 464 465 // method: setVertexTextures:withRange: 466 _MTL_INLINE void MTL::RenderCommandEncoder::setVertexTextures(const MTL::Texture* const textures[], NS::Range range) 467 { 468 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setVertexTextures_withRange_), textures, range); 469 } 470 471 // method: setVertexSamplerState:atIndex: 472 _MTL_INLINE void MTL::RenderCommandEncoder::setVertexSamplerState(const MTL::SamplerState* sampler, NS::UInteger index) 473 { 474 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setVertexSamplerState_atIndex_), sampler, index); 475 } 476 477 // method: setVertexSamplerStates:withRange: 478 _MTL_INLINE void MTL::RenderCommandEncoder::setVertexSamplerStates(const MTL::SamplerState* const samplers[], NS::Range range) 479 { 480 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setVertexSamplerStates_withRange_), samplers, range); 481 } 482 483 // method: setVertexSamplerState:lodMinClamp:lodMaxClamp:atIndex: 484 _MTL_INLINE void MTL::RenderCommandEncoder::setVertexSamplerState(const MTL::SamplerState* sampler, float lodMinClamp, float lodMaxClamp, NS::UInteger index) 485 { 486 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setVertexSamplerState_lodMinClamp_lodMaxClamp_atIndex_), sampler, lodMinClamp, lodMaxClamp, index); 487 } 488 489 // method: setVertexSamplerStates:lodMinClamps:lodMaxClamps:withRange: 490 _MTL_INLINE void MTL::RenderCommandEncoder::setVertexSamplerStates(const MTL::SamplerState* const samplers[], const float lodMinClamps[], const float lodMaxClamps[], NS::Range range) 491 { 492 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setVertexSamplerStates_lodMinClamps_lodMaxClamps_withRange_), samplers, lodMinClamps, lodMaxClamps, range); 493 } 494 495 // method: setVertexVisibleFunctionTable:atBufferIndex: 496 _MTL_INLINE void MTL::RenderCommandEncoder::setVertexVisibleFunctionTable(const MTL::VisibleFunctionTable* functionTable, NS::UInteger bufferIndex) 497 { 498 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setVertexVisibleFunctionTable_atBufferIndex_), functionTable, bufferIndex); 499 } 500 501 // method: setVertexVisibleFunctionTables:withBufferRange: 502 _MTL_INLINE void MTL::RenderCommandEncoder::setVertexVisibleFunctionTables(const MTL::VisibleFunctionTable* const functionTables[], NS::Range range) 503 { 504 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setVertexVisibleFunctionTables_withBufferRange_), functionTables, range); 505 } 506 507 // method: setVertexIntersectionFunctionTable:atBufferIndex: 508 _MTL_INLINE void MTL::RenderCommandEncoder::setVertexIntersectionFunctionTable(const MTL::IntersectionFunctionTable* intersectionFunctionTable, NS::UInteger bufferIndex) 509 { 510 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setVertexIntersectionFunctionTable_atBufferIndex_), intersectionFunctionTable, bufferIndex); 511 } 512 513 // method: setVertexIntersectionFunctionTables:withBufferRange: 514 _MTL_INLINE void MTL::RenderCommandEncoder::setVertexIntersectionFunctionTables(const MTL::IntersectionFunctionTable* const intersectionFunctionTables[], NS::Range range) 515 { 516 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setVertexIntersectionFunctionTables_withBufferRange_), intersectionFunctionTables, range); 517 } 518 519 // method: setVertexAccelerationStructure:atBufferIndex: 520 _MTL_INLINE void MTL::RenderCommandEncoder::setVertexAccelerationStructure(const MTL::AccelerationStructure* accelerationStructure, NS::UInteger bufferIndex) 521 { 522 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setVertexAccelerationStructure_atBufferIndex_), accelerationStructure, bufferIndex); 523 } 524 525 // method: setViewport: 526 _MTL_INLINE void MTL::RenderCommandEncoder::setViewport(MTL::Viewport viewport) 527 { 528 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setViewport_), viewport); 529 } 530 531 // method: setViewports:count: 532 _MTL_INLINE void MTL::RenderCommandEncoder::setViewports(const MTL::Viewport* viewports, NS::UInteger count) 533 { 534 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setViewports_count_), viewports, count); 535 } 536 537 // method: setFrontFacingWinding: 538 _MTL_INLINE void MTL::RenderCommandEncoder::setFrontFacingWinding(MTL::Winding frontFacingWinding) 539 { 540 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setFrontFacingWinding_), frontFacingWinding); 541 } 542 543 // method: setVertexAmplificationCount:viewMappings: 544 _MTL_INLINE void MTL::RenderCommandEncoder::setVertexAmplificationCount(NS::UInteger count, const MTL::VertexAmplificationViewMapping* viewMappings) 545 { 546 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setVertexAmplificationCount_viewMappings_), count, viewMappings); 547 } 548 549 // method: setCullMode: 550 _MTL_INLINE void MTL::RenderCommandEncoder::setCullMode(MTL::CullMode cullMode) 551 { 552 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setCullMode_), cullMode); 553 } 554 555 // method: setDepthClipMode: 556 _MTL_INLINE void MTL::RenderCommandEncoder::setDepthClipMode(MTL::DepthClipMode depthClipMode) 557 { 558 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setDepthClipMode_), depthClipMode); 559 } 560 561 // method: setDepthBias:slopeScale:clamp: 562 _MTL_INLINE void MTL::RenderCommandEncoder::setDepthBias(float depthBias, float slopeScale, float clamp) 563 { 564 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setDepthBias_slopeScale_clamp_), depthBias, slopeScale, clamp); 565 } 566 567 // method: setScissorRect: 568 _MTL_INLINE void MTL::RenderCommandEncoder::setScissorRect(MTL::ScissorRect rect) 569 { 570 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setScissorRect_), rect); 571 } 572 573 // method: setScissorRects:count: 574 _MTL_INLINE void MTL::RenderCommandEncoder::setScissorRects(const MTL::ScissorRect* scissorRects, NS::UInteger count) 575 { 576 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setScissorRects_count_), scissorRects, count); 577 } 578 579 // method: setTriangleFillMode: 580 _MTL_INLINE void MTL::RenderCommandEncoder::setTriangleFillMode(MTL::TriangleFillMode fillMode) 581 { 582 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setTriangleFillMode_), fillMode); 583 } 584 585 // method: setFragmentBytes:length:atIndex: 586 _MTL_INLINE void MTL::RenderCommandEncoder::setFragmentBytes(const void* bytes, NS::UInteger length, NS::UInteger index) 587 { 588 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setFragmentBytes_length_atIndex_), bytes, length, index); 589 } 590 591 // method: setFragmentBuffer:offset:atIndex: 592 _MTL_INLINE void MTL::RenderCommandEncoder::setFragmentBuffer(const MTL::Buffer* buffer, NS::UInteger offset, NS::UInteger index) 593 { 594 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setFragmentBuffer_offset_atIndex_), buffer, offset, index); 595 } 596 597 // method: setFragmentBufferOffset:atIndex: 598 _MTL_INLINE void MTL::RenderCommandEncoder::setFragmentBufferOffset(NS::UInteger offset, NS::UInteger index) 599 { 600 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setFragmentBufferOffset_atIndex_), offset, index); 601 } 602 603 // method: setFragmentBuffers:offsets:withRange: 604 _MTL_INLINE void MTL::RenderCommandEncoder::setFragmentBuffers(const MTL::Buffer* const buffers[], const NS::UInteger offsets[], NS::Range range) 605 { 606 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setFragmentBuffers_offsets_withRange_), buffers, offsets, range); 607 } 608 609 // method: setFragmentTexture:atIndex: 610 _MTL_INLINE void MTL::RenderCommandEncoder::setFragmentTexture(const MTL::Texture* texture, NS::UInteger index) 611 { 612 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setFragmentTexture_atIndex_), texture, index); 613 } 614 615 // method: setFragmentTextures:withRange: 616 _MTL_INLINE void MTL::RenderCommandEncoder::setFragmentTextures(const MTL::Texture* const textures[], NS::Range range) 617 { 618 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setFragmentTextures_withRange_), textures, range); 619 } 620 621 // method: setFragmentSamplerState:atIndex: 622 _MTL_INLINE void MTL::RenderCommandEncoder::setFragmentSamplerState(const MTL::SamplerState* sampler, NS::UInteger index) 623 { 624 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setFragmentSamplerState_atIndex_), sampler, index); 625 } 626 627 // method: setFragmentSamplerStates:withRange: 628 _MTL_INLINE void MTL::RenderCommandEncoder::setFragmentSamplerStates(const MTL::SamplerState* const samplers[], NS::Range range) 629 { 630 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setFragmentSamplerStates_withRange_), samplers, range); 631 } 632 633 // method: setFragmentSamplerState:lodMinClamp:lodMaxClamp:atIndex: 634 _MTL_INLINE void MTL::RenderCommandEncoder::setFragmentSamplerState(const MTL::SamplerState* sampler, float lodMinClamp, float lodMaxClamp, NS::UInteger index) 635 { 636 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setFragmentSamplerState_lodMinClamp_lodMaxClamp_atIndex_), sampler, lodMinClamp, lodMaxClamp, index); 637 } 638 639 // method: setFragmentSamplerStates:lodMinClamps:lodMaxClamps:withRange: 640 _MTL_INLINE void MTL::RenderCommandEncoder::setFragmentSamplerStates(const MTL::SamplerState* const samplers[], const float lodMinClamps[], const float lodMaxClamps[], NS::Range range) 641 { 642 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setFragmentSamplerStates_lodMinClamps_lodMaxClamps_withRange_), samplers, lodMinClamps, lodMaxClamps, range); 643 } 644 645 // method: setFragmentVisibleFunctionTable:atBufferIndex: 646 _MTL_INLINE void MTL::RenderCommandEncoder::setFragmentVisibleFunctionTable(const MTL::VisibleFunctionTable* functionTable, NS::UInteger bufferIndex) 647 { 648 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setFragmentVisibleFunctionTable_atBufferIndex_), functionTable, bufferIndex); 649 } 650 651 // method: setFragmentVisibleFunctionTables:withBufferRange: 652 _MTL_INLINE void MTL::RenderCommandEncoder::setFragmentVisibleFunctionTables(const MTL::VisibleFunctionTable* const functionTables[], NS::Range range) 653 { 654 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setFragmentVisibleFunctionTables_withBufferRange_), functionTables, range); 655 } 656 657 // method: setFragmentIntersectionFunctionTable:atBufferIndex: 658 _MTL_INLINE void MTL::RenderCommandEncoder::setFragmentIntersectionFunctionTable(const MTL::IntersectionFunctionTable* intersectionFunctionTable, NS::UInteger bufferIndex) 659 { 660 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setFragmentIntersectionFunctionTable_atBufferIndex_), intersectionFunctionTable, bufferIndex); 661 } 662 663 // method: setFragmentIntersectionFunctionTables:withBufferRange: 664 _MTL_INLINE void MTL::RenderCommandEncoder::setFragmentIntersectionFunctionTables(const MTL::IntersectionFunctionTable* const intersectionFunctionTables[], NS::Range range) 665 { 666 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setFragmentIntersectionFunctionTables_withBufferRange_), intersectionFunctionTables, range); 667 } 668 669 // method: setFragmentAccelerationStructure:atBufferIndex: 670 _MTL_INLINE void MTL::RenderCommandEncoder::setFragmentAccelerationStructure(const MTL::AccelerationStructure* accelerationStructure, NS::UInteger bufferIndex) 671 { 672 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setFragmentAccelerationStructure_atBufferIndex_), accelerationStructure, bufferIndex); 673 } 674 675 // method: setBlendColorRed:green:blue:alpha: 676 _MTL_INLINE void MTL::RenderCommandEncoder::setBlendColor(float red, float green, float blue, float alpha) 677 { 678 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setBlendColorRed_green_blue_alpha_), red, green, blue, alpha); 679 } 680 681 // method: setDepthStencilState: 682 _MTL_INLINE void MTL::RenderCommandEncoder::setDepthStencilState(const MTL::DepthStencilState* depthStencilState) 683 { 684 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setDepthStencilState_), depthStencilState); 685 } 686 687 // method: setStencilReferenceValue: 688 _MTL_INLINE void MTL::RenderCommandEncoder::setStencilReferenceValue(uint32_t referenceValue) 689 { 690 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setStencilReferenceValue_), referenceValue); 691 } 692 693 // method: setStencilFrontReferenceValue:backReferenceValue: 694 _MTL_INLINE void MTL::RenderCommandEncoder::setStencilReferenceValues(uint32_t frontReferenceValue, uint32_t backReferenceValue) 695 { 696 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setStencilFrontReferenceValue_backReferenceValue_), frontReferenceValue, backReferenceValue); 697 } 698 699 // method: setVisibilityResultMode:offset: 700 _MTL_INLINE void MTL::RenderCommandEncoder::setVisibilityResultMode(MTL::VisibilityResultMode mode, NS::UInteger offset) 701 { 702 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setVisibilityResultMode_offset_), mode, offset); 703 } 704 705 // method: setColorStoreAction:atIndex: 706 _MTL_INLINE void MTL::RenderCommandEncoder::setColorStoreAction(MTL::StoreAction storeAction, NS::UInteger colorAttachmentIndex) 707 { 708 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setColorStoreAction_atIndex_), storeAction, colorAttachmentIndex); 709 } 710 711 // method: setDepthStoreAction: 712 _MTL_INLINE void MTL::RenderCommandEncoder::setDepthStoreAction(MTL::StoreAction storeAction) 713 { 714 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setDepthStoreAction_), storeAction); 715 } 716 717 // method: setStencilStoreAction: 718 _MTL_INLINE void MTL::RenderCommandEncoder::setStencilStoreAction(MTL::StoreAction storeAction) 719 { 720 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setStencilStoreAction_), storeAction); 721 } 722 723 // method: setColorStoreActionOptions:atIndex: 724 _MTL_INLINE void MTL::RenderCommandEncoder::setColorStoreActionOptions(MTL::StoreActionOptions storeActionOptions, NS::UInteger colorAttachmentIndex) 725 { 726 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setColorStoreActionOptions_atIndex_), storeActionOptions, colorAttachmentIndex); 727 } 728 729 // method: setDepthStoreActionOptions: 730 _MTL_INLINE void MTL::RenderCommandEncoder::setDepthStoreActionOptions(MTL::StoreActionOptions storeActionOptions) 731 { 732 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setDepthStoreActionOptions_), storeActionOptions); 733 } 734 735 // method: setStencilStoreActionOptions: 736 _MTL_INLINE void MTL::RenderCommandEncoder::setStencilStoreActionOptions(MTL::StoreActionOptions storeActionOptions) 737 { 738 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setStencilStoreActionOptions_), storeActionOptions); 739 } 740 741 // method: setObjectBytes:length:atIndex: 742 _MTL_INLINE void MTL::RenderCommandEncoder::setObjectBytes(const void* bytes, NS::UInteger length, NS::UInteger index) 743 { 744 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setObjectBytes_length_atIndex_), bytes, length, index); 745 } 746 747 // method: setObjectBuffer:offset:atIndex: 748 _MTL_INLINE void MTL::RenderCommandEncoder::setObjectBuffer(const MTL::Buffer* buffer, NS::UInteger offset, NS::UInteger index) 749 { 750 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setObjectBuffer_offset_atIndex_), buffer, offset, index); 751 } 752 753 // method: setObjectBufferOffset:atIndex: 754 _MTL_INLINE void MTL::RenderCommandEncoder::setObjectBufferOffset(NS::UInteger offset, NS::UInteger index) 755 { 756 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setObjectBufferOffset_atIndex_), offset, index); 757 } 758 759 // method: setObjectBuffers:offsets:withRange: 760 _MTL_INLINE void MTL::RenderCommandEncoder::setObjectBuffers(const MTL::Buffer* const buffers[], const NS::UInteger* offsets, NS::Range range) 761 { 762 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setObjectBuffers_offsets_withRange_), buffers, offsets, range); 763 } 764 765 // method: setObjectTexture:atIndex: 766 _MTL_INLINE void MTL::RenderCommandEncoder::setObjectTexture(const MTL::Texture* texture, NS::UInteger index) 767 { 768 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setObjectTexture_atIndex_), texture, index); 769 } 770 771 // method: setObjectTextures:withRange: 772 _MTL_INLINE void MTL::RenderCommandEncoder::setObjectTextures(const MTL::Texture* const textures[], NS::Range range) 773 { 774 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setObjectTextures_withRange_), textures, range); 775 } 776 777 // method: setObjectSamplerState:atIndex: 778 _MTL_INLINE void MTL::RenderCommandEncoder::setObjectSamplerState(const MTL::SamplerState* sampler, NS::UInteger index) 779 { 780 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setObjectSamplerState_atIndex_), sampler, index); 781 } 782 783 // method: setObjectSamplerStates:withRange: 784 _MTL_INLINE void MTL::RenderCommandEncoder::setObjectSamplerStates(const MTL::SamplerState* const samplers[], NS::Range range) 785 { 786 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setObjectSamplerStates_withRange_), samplers, range); 787 } 788 789 // method: setObjectSamplerState:lodMinClamp:lodMaxClamp:atIndex: 790 _MTL_INLINE void MTL::RenderCommandEncoder::setObjectSamplerState(const MTL::SamplerState* sampler, float lodMinClamp, float lodMaxClamp, NS::UInteger index) 791 { 792 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setObjectSamplerState_lodMinClamp_lodMaxClamp_atIndex_), sampler, lodMinClamp, lodMaxClamp, index); 793 } 794 795 // method: setObjectSamplerStates:lodMinClamps:lodMaxClamps:withRange: 796 _MTL_INLINE void MTL::RenderCommandEncoder::setObjectSamplerStates(const MTL::SamplerState* const samplers[], const float* lodMinClamps, const float* lodMaxClamps, NS::Range range) 797 { 798 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setObjectSamplerStates_lodMinClamps_lodMaxClamps_withRange_), samplers, lodMinClamps, lodMaxClamps, range); 799 } 800 801 // method: setObjectThreadgroupMemoryLength:atIndex: 802 _MTL_INLINE void MTL::RenderCommandEncoder::setObjectThreadgroupMemoryLength(NS::UInteger length, NS::UInteger index) 803 { 804 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setObjectThreadgroupMemoryLength_atIndex_), length, index); 805 } 806 807 // method: setMeshBytes:length:atIndex: 808 _MTL_INLINE void MTL::RenderCommandEncoder::setMeshBytes(const void* bytes, NS::UInteger length, NS::UInteger index) 809 { 810 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setMeshBytes_length_atIndex_), bytes, length, index); 811 } 812 813 // method: setMeshBuffer:offset:atIndex: 814 _MTL_INLINE void MTL::RenderCommandEncoder::setMeshBuffer(const MTL::Buffer* buffer, NS::UInteger offset, NS::UInteger index) 815 { 816 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setMeshBuffer_offset_atIndex_), buffer, offset, index); 817 } 818 819 // method: setMeshBufferOffset:atIndex: 820 _MTL_INLINE void MTL::RenderCommandEncoder::setMeshBufferOffset(NS::UInteger offset, NS::UInteger index) 821 { 822 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setMeshBufferOffset_atIndex_), offset, index); 823 } 824 825 // method: setMeshBuffers:offsets:withRange: 826 _MTL_INLINE void MTL::RenderCommandEncoder::setMeshBuffers(const MTL::Buffer* const buffers[], const NS::UInteger* offsets, NS::Range range) 827 { 828 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setMeshBuffers_offsets_withRange_), buffers, offsets, range); 829 } 830 831 // method: setMeshTexture:atIndex: 832 _MTL_INLINE void MTL::RenderCommandEncoder::setMeshTexture(const MTL::Texture* texture, NS::UInteger index) 833 { 834 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setMeshTexture_atIndex_), texture, index); 835 } 836 837 // method: setMeshTextures:withRange: 838 _MTL_INLINE void MTL::RenderCommandEncoder::setMeshTextures(const MTL::Texture* const textures[], NS::Range range) 839 { 840 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setMeshTextures_withRange_), textures, range); 841 } 842 843 // method: setMeshSamplerState:atIndex: 844 _MTL_INLINE void MTL::RenderCommandEncoder::setMeshSamplerState(const MTL::SamplerState* sampler, NS::UInteger index) 845 { 846 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setMeshSamplerState_atIndex_), sampler, index); 847 } 848 849 // method: setMeshSamplerStates:withRange: 850 _MTL_INLINE void MTL::RenderCommandEncoder::setMeshSamplerStates(const MTL::SamplerState* const samplers[], NS::Range range) 851 { 852 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setMeshSamplerStates_withRange_), samplers, range); 853 } 854 855 // method: setMeshSamplerState:lodMinClamp:lodMaxClamp:atIndex: 856 _MTL_INLINE void MTL::RenderCommandEncoder::setMeshSamplerState(const MTL::SamplerState* sampler, float lodMinClamp, float lodMaxClamp, NS::UInteger index) 857 { 858 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setMeshSamplerState_lodMinClamp_lodMaxClamp_atIndex_), sampler, lodMinClamp, lodMaxClamp, index); 859 } 860 861 // method: setMeshSamplerStates:lodMinClamps:lodMaxClamps:withRange: 862 _MTL_INLINE void MTL::RenderCommandEncoder::setMeshSamplerStates(const MTL::SamplerState* const samplers[], const float* lodMinClamps, const float* lodMaxClamps, NS::Range range) 863 { 864 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setMeshSamplerStates_lodMinClamps_lodMaxClamps_withRange_), samplers, lodMinClamps, lodMaxClamps, range); 865 } 866 867 // method: drawMeshThreadgroups:threadsPerObjectThreadgroup:threadsPerMeshThreadgroup: 868 _MTL_INLINE void MTL::RenderCommandEncoder::drawMeshThreadgroups(MTL::Size threadgroupsPerGrid, MTL::Size threadsPerObjectThreadgroup, MTL::Size threadsPerMeshThreadgroup) 869 { 870 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(drawMeshThreadgroups_threadsPerObjectThreadgroup_threadsPerMeshThreadgroup_), threadgroupsPerGrid, threadsPerObjectThreadgroup, threadsPerMeshThreadgroup); 871 } 872 873 // method: drawMeshThreads:threadsPerObjectThreadgroup:threadsPerMeshThreadgroup: 874 _MTL_INLINE void MTL::RenderCommandEncoder::drawMeshThreads(MTL::Size threadsPerGrid, MTL::Size threadsPerObjectThreadgroup, MTL::Size threadsPerMeshThreadgroup) 875 { 876 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(drawMeshThreads_threadsPerObjectThreadgroup_threadsPerMeshThreadgroup_), threadsPerGrid, threadsPerObjectThreadgroup, threadsPerMeshThreadgroup); 877 } 878 879 // method: drawMeshThreadgroupsWithIndirectBuffer:indirectBufferOffset:threadsPerObjectThreadgroup:threadsPerMeshThreadgroup: 880 _MTL_INLINE void MTL::RenderCommandEncoder::drawMeshThreadgroups(const MTL::Buffer* indirectBuffer, NS::UInteger indirectBufferOffset, MTL::Size threadsPerObjectThreadgroup, MTL::Size threadsPerMeshThreadgroup) 881 { 882 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(drawMeshThreadgroupsWithIndirectBuffer_indirectBufferOffset_threadsPerObjectThreadgroup_threadsPerMeshThreadgroup_), indirectBuffer, indirectBufferOffset, threadsPerObjectThreadgroup, threadsPerMeshThreadgroup); 883 } 884 885 // method: drawPrimitives:vertexStart:vertexCount:instanceCount: 886 _MTL_INLINE void MTL::RenderCommandEncoder::drawPrimitives(MTL::PrimitiveType primitiveType, NS::UInteger vertexStart, NS::UInteger vertexCount, NS::UInteger instanceCount) 887 { 888 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(drawPrimitives_vertexStart_vertexCount_instanceCount_), primitiveType, vertexStart, vertexCount, instanceCount); 889 } 890 891 // method: drawPrimitives:vertexStart:vertexCount: 892 _MTL_INLINE void MTL::RenderCommandEncoder::drawPrimitives(MTL::PrimitiveType primitiveType, NS::UInteger vertexStart, NS::UInteger vertexCount) 893 { 894 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(drawPrimitives_vertexStart_vertexCount_), primitiveType, vertexStart, vertexCount); 895 } 896 897 // method: drawIndexedPrimitives:indexCount:indexType:indexBuffer:indexBufferOffset:instanceCount: 898 _MTL_INLINE void MTL::RenderCommandEncoder::drawIndexedPrimitives(MTL::PrimitiveType primitiveType, NS::UInteger indexCount, MTL::IndexType indexType, const MTL::Buffer* indexBuffer, NS::UInteger indexBufferOffset, NS::UInteger instanceCount) 899 { 900 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(drawIndexedPrimitives_indexCount_indexType_indexBuffer_indexBufferOffset_instanceCount_), primitiveType, indexCount, indexType, indexBuffer, indexBufferOffset, instanceCount); 901 } 902 903 // method: drawIndexedPrimitives:indexCount:indexType:indexBuffer:indexBufferOffset: 904 _MTL_INLINE void MTL::RenderCommandEncoder::drawIndexedPrimitives(MTL::PrimitiveType primitiveType, NS::UInteger indexCount, MTL::IndexType indexType, const MTL::Buffer* indexBuffer, NS::UInteger indexBufferOffset) 905 { 906 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(drawIndexedPrimitives_indexCount_indexType_indexBuffer_indexBufferOffset_), primitiveType, indexCount, indexType, indexBuffer, indexBufferOffset); 907 } 908 909 // method: drawPrimitives:vertexStart:vertexCount:instanceCount:baseInstance: 910 _MTL_INLINE void MTL::RenderCommandEncoder::drawPrimitives(MTL::PrimitiveType primitiveType, NS::UInteger vertexStart, NS::UInteger vertexCount, NS::UInteger instanceCount, NS::UInteger baseInstance) 911 { 912 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(drawPrimitives_vertexStart_vertexCount_instanceCount_baseInstance_), primitiveType, vertexStart, vertexCount, instanceCount, baseInstance); 913 } 914 915 // method: drawIndexedPrimitives:indexCount:indexType:indexBuffer:indexBufferOffset:instanceCount:baseVertex:baseInstance: 916 _MTL_INLINE void MTL::RenderCommandEncoder::drawIndexedPrimitives(MTL::PrimitiveType primitiveType, NS::UInteger indexCount, MTL::IndexType indexType, const MTL::Buffer* indexBuffer, NS::UInteger indexBufferOffset, NS::UInteger instanceCount, NS::Integer baseVertex, NS::UInteger baseInstance) 917 { 918 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(drawIndexedPrimitives_indexCount_indexType_indexBuffer_indexBufferOffset_instanceCount_baseVertex_baseInstance_), primitiveType, indexCount, indexType, indexBuffer, indexBufferOffset, instanceCount, baseVertex, baseInstance); 919 } 920 921 // method: drawPrimitives:indirectBuffer:indirectBufferOffset: 922 _MTL_INLINE void MTL::RenderCommandEncoder::drawPrimitives(MTL::PrimitiveType primitiveType, const MTL::Buffer* indirectBuffer, NS::UInteger indirectBufferOffset) 923 { 924 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(drawPrimitives_indirectBuffer_indirectBufferOffset_), primitiveType, indirectBuffer, indirectBufferOffset); 925 } 926 927 // method: drawIndexedPrimitives:indexType:indexBuffer:indexBufferOffset:indirectBuffer:indirectBufferOffset: 928 _MTL_INLINE void MTL::RenderCommandEncoder::drawIndexedPrimitives(MTL::PrimitiveType primitiveType, MTL::IndexType indexType, const MTL::Buffer* indexBuffer, NS::UInteger indexBufferOffset, const MTL::Buffer* indirectBuffer, NS::UInteger indirectBufferOffset) 929 { 930 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(drawIndexedPrimitives_indexType_indexBuffer_indexBufferOffset_indirectBuffer_indirectBufferOffset_), primitiveType, indexType, indexBuffer, indexBufferOffset, indirectBuffer, indirectBufferOffset); 931 } 932 933 // method: textureBarrier 934 _MTL_INLINE void MTL::RenderCommandEncoder::textureBarrier() 935 { 936 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(textureBarrier)); 937 } 938 939 // method: updateFence:afterStages: 940 _MTL_INLINE void MTL::RenderCommandEncoder::updateFence(const MTL::Fence* fence, MTL::RenderStages stages) 941 { 942 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(updateFence_afterStages_), fence, stages); 943 } 944 945 // method: waitForFence:beforeStages: 946 _MTL_INLINE void MTL::RenderCommandEncoder::waitForFence(const MTL::Fence* fence, MTL::RenderStages stages) 947 { 948 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(waitForFence_beforeStages_), fence, stages); 949 } 950 951 // method: setTessellationFactorBuffer:offset:instanceStride: 952 _MTL_INLINE void MTL::RenderCommandEncoder::setTessellationFactorBuffer(const MTL::Buffer* buffer, NS::UInteger offset, NS::UInteger instanceStride) 953 { 954 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setTessellationFactorBuffer_offset_instanceStride_), buffer, offset, instanceStride); 955 } 956 957 // method: setTessellationFactorScale: 958 _MTL_INLINE void MTL::RenderCommandEncoder::setTessellationFactorScale(float scale) 959 { 960 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setTessellationFactorScale_), scale); 961 } 962 963 // method: drawPatches:patchStart:patchCount:patchIndexBuffer:patchIndexBufferOffset:instanceCount:baseInstance: 964 _MTL_INLINE void MTL::RenderCommandEncoder::drawPatches(NS::UInteger numberOfPatchControlPoints, NS::UInteger patchStart, NS::UInteger patchCount, const MTL::Buffer* patchIndexBuffer, NS::UInteger patchIndexBufferOffset, NS::UInteger instanceCount, NS::UInteger baseInstance) 965 { 966 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(drawPatches_patchStart_patchCount_patchIndexBuffer_patchIndexBufferOffset_instanceCount_baseInstance_), numberOfPatchControlPoints, patchStart, patchCount, patchIndexBuffer, patchIndexBufferOffset, instanceCount, baseInstance); 967 } 968 969 // method: drawPatches:patchIndexBuffer:patchIndexBufferOffset:indirectBuffer:indirectBufferOffset: 970 _MTL_INLINE void MTL::RenderCommandEncoder::drawPatches(NS::UInteger numberOfPatchControlPoints, const MTL::Buffer* patchIndexBuffer, NS::UInteger patchIndexBufferOffset, const MTL::Buffer* indirectBuffer, NS::UInteger indirectBufferOffset) 971 { 972 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(drawPatches_patchIndexBuffer_patchIndexBufferOffset_indirectBuffer_indirectBufferOffset_), numberOfPatchControlPoints, patchIndexBuffer, patchIndexBufferOffset, indirectBuffer, indirectBufferOffset); 973 } 974 975 // method: drawIndexedPatches:patchStart:patchCount:patchIndexBuffer:patchIndexBufferOffset:controlPointIndexBuffer:controlPointIndexBufferOffset:instanceCount:baseInstance: 976 _MTL_INLINE void MTL::RenderCommandEncoder::drawIndexedPatches(NS::UInteger numberOfPatchControlPoints, NS::UInteger patchStart, NS::UInteger patchCount, const MTL::Buffer* patchIndexBuffer, NS::UInteger patchIndexBufferOffset, const MTL::Buffer* controlPointIndexBuffer, NS::UInteger controlPointIndexBufferOffset, NS::UInteger instanceCount, NS::UInteger baseInstance) 977 { 978 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(drawIndexedPatches_patchStart_patchCount_patchIndexBuffer_patchIndexBufferOffset_controlPointIndexBuffer_controlPointIndexBufferOffset_instanceCount_baseInstance_), numberOfPatchControlPoints, patchStart, patchCount, patchIndexBuffer, patchIndexBufferOffset, controlPointIndexBuffer, controlPointIndexBufferOffset, instanceCount, baseInstance); 979 } 980 981 // method: drawIndexedPatches:patchIndexBuffer:patchIndexBufferOffset:controlPointIndexBuffer:controlPointIndexBufferOffset:indirectBuffer:indirectBufferOffset: 982 _MTL_INLINE void MTL::RenderCommandEncoder::drawIndexedPatches(NS::UInteger numberOfPatchControlPoints, const MTL::Buffer* patchIndexBuffer, NS::UInteger patchIndexBufferOffset, const MTL::Buffer* controlPointIndexBuffer, NS::UInteger controlPointIndexBufferOffset, const MTL::Buffer* indirectBuffer, NS::UInteger indirectBufferOffset) 983 { 984 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(drawIndexedPatches_patchIndexBuffer_patchIndexBufferOffset_controlPointIndexBuffer_controlPointIndexBufferOffset_indirectBuffer_indirectBufferOffset_), numberOfPatchControlPoints, patchIndexBuffer, patchIndexBufferOffset, controlPointIndexBuffer, controlPointIndexBufferOffset, indirectBuffer, indirectBufferOffset); 985 } 986 987 // property: tileWidth 988 _MTL_INLINE NS::UInteger MTL::RenderCommandEncoder::tileWidth() const 989 { 990 return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(tileWidth)); 991 } 992 993 // property: tileHeight 994 _MTL_INLINE NS::UInteger MTL::RenderCommandEncoder::tileHeight() const 995 { 996 return Object::sendMessage<NS::UInteger>(this, _MTL_PRIVATE_SEL(tileHeight)); 997 } 998 999 // method: setTileBytes:length:atIndex: 1000 _MTL_INLINE void MTL::RenderCommandEncoder::setTileBytes(const void* bytes, NS::UInteger length, NS::UInteger index) 1001 { 1002 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setTileBytes_length_atIndex_), bytes, length, index); 1003 } 1004 1005 // method: setTileBuffer:offset:atIndex: 1006 _MTL_INLINE void MTL::RenderCommandEncoder::setTileBuffer(const MTL::Buffer* buffer, NS::UInteger offset, NS::UInteger index) 1007 { 1008 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setTileBuffer_offset_atIndex_), buffer, offset, index); 1009 } 1010 1011 // method: setTileBufferOffset:atIndex: 1012 _MTL_INLINE void MTL::RenderCommandEncoder::setTileBufferOffset(NS::UInteger offset, NS::UInteger index) 1013 { 1014 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setTileBufferOffset_atIndex_), offset, index); 1015 } 1016 1017 // method: setTileBuffers:offsets:withRange: 1018 _MTL_INLINE void MTL::RenderCommandEncoder::setTileBuffers(const MTL::Buffer* const buffers[], const NS::UInteger* offsets, NS::Range range) 1019 { 1020 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setTileBuffers_offsets_withRange_), buffers, offsets, range); 1021 } 1022 1023 // method: setTileTexture:atIndex: 1024 _MTL_INLINE void MTL::RenderCommandEncoder::setTileTexture(const MTL::Texture* texture, NS::UInteger index) 1025 { 1026 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setTileTexture_atIndex_), texture, index); 1027 } 1028 1029 // method: setTileTextures:withRange: 1030 _MTL_INLINE void MTL::RenderCommandEncoder::setTileTextures(const MTL::Texture* const textures[], NS::Range range) 1031 { 1032 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setTileTextures_withRange_), textures, range); 1033 } 1034 1035 // method: setTileSamplerState:atIndex: 1036 _MTL_INLINE void MTL::RenderCommandEncoder::setTileSamplerState(const MTL::SamplerState* sampler, NS::UInteger index) 1037 { 1038 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setTileSamplerState_atIndex_), sampler, index); 1039 } 1040 1041 // method: setTileSamplerStates:withRange: 1042 _MTL_INLINE void MTL::RenderCommandEncoder::setTileSamplerStates(const MTL::SamplerState* const samplers[], NS::Range range) 1043 { 1044 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setTileSamplerStates_withRange_), samplers, range); 1045 } 1046 1047 // method: setTileSamplerState:lodMinClamp:lodMaxClamp:atIndex: 1048 _MTL_INLINE void MTL::RenderCommandEncoder::setTileSamplerState(const MTL::SamplerState* sampler, float lodMinClamp, float lodMaxClamp, NS::UInteger index) 1049 { 1050 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setTileSamplerState_lodMinClamp_lodMaxClamp_atIndex_), sampler, lodMinClamp, lodMaxClamp, index); 1051 } 1052 1053 // method: setTileSamplerStates:lodMinClamps:lodMaxClamps:withRange: 1054 _MTL_INLINE void MTL::RenderCommandEncoder::setTileSamplerStates(const MTL::SamplerState* const samplers[], const float lodMinClamps[], const float lodMaxClamps[], NS::Range range) 1055 { 1056 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setTileSamplerStates_lodMinClamps_lodMaxClamps_withRange_), samplers, lodMinClamps, lodMaxClamps, range); 1057 } 1058 1059 // method: setTileVisibleFunctionTable:atBufferIndex: 1060 _MTL_INLINE void MTL::RenderCommandEncoder::setTileVisibleFunctionTable(const MTL::VisibleFunctionTable* functionTable, NS::UInteger bufferIndex) 1061 { 1062 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setTileVisibleFunctionTable_atBufferIndex_), functionTable, bufferIndex); 1063 } 1064 1065 // method: setTileVisibleFunctionTables:withBufferRange: 1066 _MTL_INLINE void MTL::RenderCommandEncoder::setTileVisibleFunctionTables(const MTL::VisibleFunctionTable* const functionTables[], NS::Range range) 1067 { 1068 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setTileVisibleFunctionTables_withBufferRange_), functionTables, range); 1069 } 1070 1071 // method: setTileIntersectionFunctionTable:atBufferIndex: 1072 _MTL_INLINE void MTL::RenderCommandEncoder::setTileIntersectionFunctionTable(const MTL::IntersectionFunctionTable* intersectionFunctionTable, NS::UInteger bufferIndex) 1073 { 1074 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setTileIntersectionFunctionTable_atBufferIndex_), intersectionFunctionTable, bufferIndex); 1075 } 1076 1077 // method: setTileIntersectionFunctionTables:withBufferRange: 1078 _MTL_INLINE void MTL::RenderCommandEncoder::setTileIntersectionFunctionTables(const MTL::IntersectionFunctionTable* const intersectionFunctionTables[], NS::Range range) 1079 { 1080 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setTileIntersectionFunctionTables_withBufferRange_), intersectionFunctionTables, range); 1081 } 1082 1083 // method: setTileAccelerationStructure:atBufferIndex: 1084 _MTL_INLINE void MTL::RenderCommandEncoder::setTileAccelerationStructure(const MTL::AccelerationStructure* accelerationStructure, NS::UInteger bufferIndex) 1085 { 1086 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setTileAccelerationStructure_atBufferIndex_), accelerationStructure, bufferIndex); 1087 } 1088 1089 // method: dispatchThreadsPerTile: 1090 _MTL_INLINE void MTL::RenderCommandEncoder::dispatchThreadsPerTile(MTL::Size threadsPerTile) 1091 { 1092 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(dispatchThreadsPerTile_), threadsPerTile); 1093 } 1094 1095 // method: setThreadgroupMemoryLength:offset:atIndex: 1096 _MTL_INLINE void MTL::RenderCommandEncoder::setThreadgroupMemoryLength(NS::UInteger length, NS::UInteger offset, NS::UInteger index) 1097 { 1098 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(setThreadgroupMemoryLength_offset_atIndex_), length, offset, index); 1099 } 1100 1101 // method: useResource:usage: 1102 _MTL_INLINE void MTL::RenderCommandEncoder::useResource(const MTL::Resource* resource, MTL::ResourceUsage usage) 1103 { 1104 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(useResource_usage_), resource, usage); 1105 } 1106 1107 // method: useResources:count:usage: 1108 _MTL_INLINE void MTL::RenderCommandEncoder::useResources(const MTL::Resource* const resources[], NS::UInteger count, MTL::ResourceUsage usage) 1109 { 1110 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(useResources_count_usage_), resources, count, usage); 1111 } 1112 1113 // method: useResource:usage:stages: 1114 _MTL_INLINE void MTL::RenderCommandEncoder::useResource(const MTL::Resource* resource, MTL::ResourceUsage usage, MTL::RenderStages stages) 1115 { 1116 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(useResource_usage_stages_), resource, usage, stages); 1117 } 1118 1119 // method: useResources:count:usage:stages: 1120 _MTL_INLINE void MTL::RenderCommandEncoder::useResources(const MTL::Resource* const resources[], NS::UInteger count, MTL::ResourceUsage usage, MTL::RenderStages stages) 1121 { 1122 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(useResources_count_usage_stages_), resources, count, usage, stages); 1123 } 1124 1125 // method: useHeap: 1126 _MTL_INLINE void MTL::RenderCommandEncoder::useHeap(const MTL::Heap* heap) 1127 { 1128 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(useHeap_), heap); 1129 } 1130 1131 // method: useHeaps:count: 1132 _MTL_INLINE void MTL::RenderCommandEncoder::useHeaps(const MTL::Heap* const heaps[], NS::UInteger count) 1133 { 1134 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(useHeaps_count_), heaps, count); 1135 } 1136 1137 // method: useHeap:stages: 1138 _MTL_INLINE void MTL::RenderCommandEncoder::useHeap(const MTL::Heap* heap, MTL::RenderStages stages) 1139 { 1140 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(useHeap_stages_), heap, stages); 1141 } 1142 1143 // method: useHeaps:count:stages: 1144 _MTL_INLINE void MTL::RenderCommandEncoder::useHeaps(const MTL::Heap* const heaps[], NS::UInteger count, MTL::RenderStages stages) 1145 { 1146 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(useHeaps_count_stages_), heaps, count, stages); 1147 } 1148 1149 // method: executeCommandsInBuffer:withRange: 1150 _MTL_INLINE void MTL::RenderCommandEncoder::executeCommandsInBuffer(const MTL::IndirectCommandBuffer* indirectCommandBuffer, NS::Range executionRange) 1151 { 1152 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(executeCommandsInBuffer_withRange_), indirectCommandBuffer, executionRange); 1153 } 1154 1155 // method: executeCommandsInBuffer:indirectBuffer:indirectBufferOffset: 1156 _MTL_INLINE void MTL::RenderCommandEncoder::executeCommandsInBuffer(const MTL::IndirectCommandBuffer* indirectCommandbuffer, const MTL::Buffer* indirectRangeBuffer, NS::UInteger indirectBufferOffset) 1157 { 1158 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(executeCommandsInBuffer_indirectBuffer_indirectBufferOffset_), indirectCommandbuffer, indirectRangeBuffer, indirectBufferOffset); 1159 } 1160 1161 // method: memoryBarrierWithScope:afterStages:beforeStages: 1162 _MTL_INLINE void MTL::RenderCommandEncoder::memoryBarrier(MTL::BarrierScope scope, MTL::RenderStages after, MTL::RenderStages before) 1163 { 1164 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(memoryBarrierWithScope_afterStages_beforeStages_), scope, after, before); 1165 } 1166 1167 // method: memoryBarrierWithResources:count:afterStages:beforeStages: 1168 _MTL_INLINE void MTL::RenderCommandEncoder::memoryBarrier(const MTL::Resource* const resources[], NS::UInteger count, MTL::RenderStages after, MTL::RenderStages before) 1169 { 1170 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(memoryBarrierWithResources_count_afterStages_beforeStages_), resources, count, after, before); 1171 } 1172 1173 // method: sampleCountersInBuffer:atSampleIndex:withBarrier: 1174 _MTL_INLINE void MTL::RenderCommandEncoder::sampleCountersInBuffer(const MTL::CounterSampleBuffer* sampleBuffer, NS::UInteger sampleIndex, bool barrier) 1175 { 1176 Object::sendMessage<void>(this, _MTL_PRIVATE_SEL(sampleCountersInBuffer_atSampleIndex_withBarrier_), sampleBuffer, sampleIndex, barrier); 1177 }