Path: blob/master/thirdparty/metal-cpp/MetalFX/MTLFXTemporalDenoisedScaler.hpp
21807 views
//-------------------------------------------------------------------------------------------------------------------------------------------------------------1//2// MetalFX/MTLFXTemporalDenoisedScaler.hpp3//4// Copyright 2020-2025 Apple Inc.5//6// Licensed under the Apache License, Version 2.0 (the "License");7// you may not use this file except in compliance with the License.8// You may obtain a copy of the License at9//10// http://www.apache.org/licenses/LICENSE-2.011//12// Unless required by applicable law or agreed to in writing, software13// distributed under the License is distributed on an "AS IS" BASIS,14// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.15// See the License for the specific language governing permissions and16// limitations under the License.17//18//-------------------------------------------------------------------------------------------------------------------------------------------------------------1920#pragma once2122//-------------------------------------------------------------------------------------------------------------------------------------------------------------2324#include "MTLFXDefines.hpp"25#include "MTLFXPrivate.hpp"26#include "MTLFXTemporalScaler.hpp"2728#include "../Metal/Metal.hpp"2930#include <simd/simd.h>3132//-------------------------------------------------------------------------------------------------------------------------------------------------------------3334namespace MTL4FX35{36class TemporalDenoisedScaler;37}3839namespace MTLFX40{41class TemporalDenoisedScalerDescriptor : public NS::Copying< TemporalDenoisedScalerDescriptor >42{43public:44static class TemporalDenoisedScalerDescriptor* alloc();45class TemporalDenoisedScalerDescriptor* init();4647MTL::PixelFormat colorTextureFormat() const;48void setColorTextureFormat( MTL::PixelFormat pixelFormat );4950MTL::PixelFormat depthTextureFormat() const;51void setDepthTextureFormat( MTL::PixelFormat pixelFormat );5253MTL::PixelFormat motionTextureFormat() const;54void setMotionTextureFormat( MTL::PixelFormat pixelFormal );5556MTL::PixelFormat diffuseAlbedoTextureFormat() const;57void setDiffuseAlbedoTextureFormat( MTL::PixelFormat pixelFormat );5859MTL::PixelFormat specularAlbedoTextureFormat() const;60void setSpecularAlbedoTextureFormat( MTL::PixelFormat pixelFormat );6162MTL::PixelFormat normalTextureFormat() const;63void setNormalTextureFormat( MTL::PixelFormat pixelFormat );6465MTL::PixelFormat roughnessTextureFormat() const;66void setRoughnessTextureFormat( MTL::PixelFormat pixelFormat );6768MTL::PixelFormat specularHitDistanceTextureFormat() const;69void setSpecularHitDistanceTextureFormat( MTL::PixelFormat pixelFormat );7071MTL::PixelFormat denoiseStrengthMaskTextureFormat() const;72void setDenoiseStrengthMaskTextureFormat( MTL::PixelFormat pixelFormat );7374MTL::PixelFormat transparencyOverlayTextureFormat() const;75void setTransparencyOverlayTextureFormat( MTL::PixelFormat pixelFormat );7677MTL::PixelFormat outputTextureFormat() const;78void setOutputTextureFormat( MTL::PixelFormat pixelFormat );7980NS::UInteger inputWidth() const;81void setInputWidth( NS::UInteger inputWidth );8283NS::UInteger inputHeight() const;84void setInputHeight( NS::UInteger inputHeight );8586NS::UInteger outputWidth() const;87void setOutputWidth( NS::UInteger outputWidth );8889NS::UInteger outputHeight() const;90void setOutputHeight( NS::UInteger outputHeight );9192bool requiresSynchronousInitialization() const;93void setRequiresSynchronousInitialization( bool requiresSynchronousInitialization );9495bool isAutoExposureEnabled() const;96void setAutoExposureEnabled( bool enabled );9798bool isInputContentPropertiesEnabled() const;99void setInputContentPropertiesEnabled( bool enabled );100101float inputContentMinScale() const;102void setInputContentMinScale( float inputContentMinScale );103104float inputContentMaxScale() const;105void setInputContentMaxScale( float inputContentMaxScale );106107bool isReactiveMaskTextureEnabled() const;108void setReactiveMaskTextureEnabled( bool enabled );109110MTL::PixelFormat reactiveMaskTextureFormat() const;111void setReactiveMaskTextureFormat( MTL::PixelFormat pixelFormat );112113bool isSpecularHitDistanceTextureEnabled() const;114void setSpecularHitDistanceTextureEnabled( bool enabled );115116bool isDenoiseStrengthMaskTextureEnabled() const;117void setDenoiseStrengthMaskTextureEnabled( bool enabled );118119bool isTransparencyOverlayTextureEnabled() const;120void setTransparencyOverlayTextureEnabled( bool enabled );121122class TemporalDenoisedScaler* newTemporalDenoisedScaler( const MTL::Device* device ) const;123MTL4FX::TemporalDenoisedScaler* newTemporalDenoisedScaler( const MTL::Device* device, const MTL4::Compiler* compiler) const;124125static float supportedInputContentMinScale(MTL::Device* device);126static float supportedInputContentMaxScale(MTL::Device* device);127128static bool supportsMetal4FX( MTL::Device* device);129static bool supportsDevice( MTL::Device* device);130};131132class TemporalDenoisedScalerBase : public NS::Referencing< TemporalDenoisedScalerBase, FrameInterpolatableScaler >133{134public:135MTL::TextureUsage colorTextureUsage() const;136MTL::TextureUsage depthTextureUsage() const;137MTL::TextureUsage motionTextureUsage() const;138MTL::TextureUsage reactiveTextureUsage() const;139MTL::TextureUsage diffuseAlbedoTextureUsage() const;140MTL::TextureUsage specularAlbedoTextureUsage() const;141MTL::TextureUsage normalTextureUsage() const;142MTL::TextureUsage roughnessTextureUsage() const;143MTL::TextureUsage specularHitDistanceTextureUsage() const;144MTL::TextureUsage denoiseStrengthMaskTextureUsage() const;145MTL::TextureUsage transparencyOverlayTextureUsage() const;146MTL::TextureUsage outputTextureUsage() const;147148MTL::Texture* colorTexture() const;149void setColorTexture( MTL::Texture* colorTexture );150151MTL::Texture* depthTexture() const;152void setDepthTexture( MTL::Texture* depthTexture );153154MTL::Texture* motionTexture() const;155void setMotionTexture( MTL::Texture* motionTexture );156157MTL::Texture* diffuseAlbedoTexture() const;158void setDiffuseAlbedoTexture( MTL::Texture* diffuseAlbedoTexture );159160MTL::Texture* specularAlbedoTexture() const;161void setSpecularAlbedoTexture( MTL::Texture* specularAlbedoTexture );162163MTL::Texture* normalTexture() const;164void setNormalTexture( MTL::Texture* normalTexture );165166MTL::Texture* roughnessTexture() const;167void setRoughnessTexture( MTL::Texture* roughnessTexture );168169MTL::Texture* specularHitDistanceTexture() const;170void setSpecularHitDistanceTexture( MTL::Texture* specularHitDistanceTexture );171172MTL::Texture* denoiseStrengthMaskTexture() const;173void setDenoiseStrengthMaskTexture( MTL::Texture* denoiseStrengthMaskTexture );174175MTL::Texture* transparencyOverlayTexture() const;176void setTransparencyOverlayTexture( MTL::Texture* transparencyOverlayTexture );177178MTL::Texture* outputTexture() const;179void setOutputTexture( MTL::Texture* outputTexture );180181MTL::Texture* exposureTexture() const;182void setExposureTexture( MTL::Texture* exposureTexture );183184float preExposure() const;185void setPreExposure( float preExposure );186187MTL::Texture* reactiveMaskTexture() const;188void setReactiveMaskTexture( MTL::Texture* reactiveMaskTexture );189190float jitterOffsetX() const;191void setJitterOffsetX( float jitterOffsetX );192193float jitterOffsetY() const;194void setJitterOffsetY( float jitterOffsetY );195196float motionVectorScaleX() const;197void setMotionVectorScaleX( float motionVectorScaleX );198199float motionVectorScaleY() const;200void setMotionVectorScaleY( float motionVectorScaleY );201202bool shouldResetHistory() const;203void setShouldResetHistory( bool shouldResetHistory );204205bool isDepthReversed() const;206void setDepthReversed( bool depthReversed );207208MTL::PixelFormat colorTextureFormat() const;209MTL::PixelFormat depthTextureFormat() const;210MTL::PixelFormat motionTextureFormat() const;211MTL::PixelFormat diffuseAlbedoTextureFormat() const;212MTL::PixelFormat specularAlbedoTextureFormat() const;213MTL::PixelFormat normalTextureFormat() const;214MTL::PixelFormat roughnessTextureFormat() const;215MTL::PixelFormat specularHitDistanceTextureFormat() const;216MTL::PixelFormat denoiseStrengthMaskTextureFormat() const;217MTL::PixelFormat transparencyOverlayTextureFormat() const;218MTL::PixelFormat reactiveMaskTextureFormat() const;219MTL::PixelFormat outputTextureFormat() const;220221NS::UInteger inputWidth() const;222NS::UInteger inputHeight() const;223NS::UInteger outputWidth() const;224NS::UInteger outputHeight() const;225float inputContentMinScale() const;226float inputContentMaxScale() const;227228simd::float4x4 worldToViewMatrix() const;229void setWorldToViewMatrix( simd::float4x4 worldToViewMatrix );230231simd::float4x4 viewToClipMatrix() const;232void setViewToClipMatrix( simd::float4x4 viewToClipMatrix );233234MTL::Fence* fence() const;235void setFence( MTL::Fence* fence );236};237238class TemporalDenoisedScaler : public NS::Referencing< TemporalDenoisedScaler, TemporalDenoisedScalerBase >239{240public:241242void encodeToCommandBuffer(MTL::CommandBuffer* commandBuffer);243};244}245246//-------------------------------------------------------------------------------------------------------------------------------------------------------------247248_MTLFX_INLINE MTLFX::TemporalDenoisedScalerDescriptor* MTLFX::TemporalDenoisedScalerDescriptor::alloc()249{250return NS::Object::alloc< TemporalDenoisedScalerDescriptor >( _MTLFX_PRIVATE_CLS( MTLFXTemporalDenoisedScalerDescriptor ) );251}252253//-------------------------------------------------------------------------------------------------------------------------------------------------------------254255_MTLFX_INLINE MTLFX::TemporalDenoisedScalerDescriptor* MTLFX::TemporalDenoisedScalerDescriptor::init()256{257return NS::Object::init< TemporalDenoisedScalerDescriptor >();258}259260//-------------------------------------------------------------------------------------------------------------------------------------------------------------261262_MTLFX_INLINE MTL::PixelFormat MTLFX::TemporalDenoisedScalerDescriptor::colorTextureFormat() const263{264return NS::Object::sendMessage< MTL::PixelFormat >( this, _MTLFX_PRIVATE_SEL( colorTextureFormat ) );265}266267//-------------------------------------------------------------------------------------------------------------------------------------------------------------268269_MTLFX_INLINE void MTLFX::TemporalDenoisedScalerDescriptor::setColorTextureFormat( MTL::PixelFormat pixelFormat )270{271return NS::Object::sendMessage< void >( this, _MTLFX_PRIVATE_SEL( setColorTextureFormat_ ), pixelFormat );272}273274//-------------------------------------------------------------------------------------------------------------------------------------------------------------275276_MTLFX_INLINE MTL::PixelFormat MTLFX::TemporalDenoisedScalerDescriptor::depthTextureFormat() const277{278return NS::Object::sendMessage< MTL::PixelFormat >( this, _MTLFX_PRIVATE_SEL( depthTextureFormat ) );279}280281//-------------------------------------------------------------------------------------------------------------------------------------------------------------282283_MTLFX_INLINE void MTLFX::TemporalDenoisedScalerDescriptor::setDepthTextureFormat( MTL::PixelFormat pixelFormat )284{285return NS::Object::sendMessage< void >( this, _MTLFX_PRIVATE_SEL( setDepthTextureFormat_ ), pixelFormat );286}287288//-------------------------------------------------------------------------------------------------------------------------------------------------------------289290_MTLFX_INLINE MTL::PixelFormat MTLFX::TemporalDenoisedScalerDescriptor::motionTextureFormat() const291{292return NS::Object::sendMessage< MTL::PixelFormat >( this, _MTLFX_PRIVATE_SEL( motionTextureFormat ) );293}294295//-------------------------------------------------------------------------------------------------------------------------------------------------------------296297_MTLFX_INLINE void MTLFX::TemporalDenoisedScalerDescriptor::setMotionTextureFormat( MTL::PixelFormat pixelFormat )298{299return NS::Object::sendMessage< void >( this, _MTLFX_PRIVATE_SEL( setMotionTextureFormat_ ), pixelFormat );300}301302//-------------------------------------------------------------------------------------------------------------------------------------------------------------303304_MTLFX_INLINE MTL::PixelFormat MTLFX::TemporalDenoisedScalerDescriptor::diffuseAlbedoTextureFormat() const305{306return NS::Object::sendMessage< MTL::PixelFormat >( this, _MTLFX_PRIVATE_SEL( diffuseAlbedoTextureFormat ) );307}308309//-------------------------------------------------------------------------------------------------------------------------------------------------------------310311_MTLFX_INLINE void MTLFX::TemporalDenoisedScalerDescriptor::setDiffuseAlbedoTextureFormat( MTL::PixelFormat pixelFormat )312{313return NS::Object::sendMessage< void >( this, _MTLFX_PRIVATE_SEL( setDiffuseAlbedoTextureFormat_ ), pixelFormat );314}315316//-------------------------------------------------------------------------------------------------------------------------------------------------------------317318_MTLFX_INLINE MTL::PixelFormat MTLFX::TemporalDenoisedScalerDescriptor::specularAlbedoTextureFormat() const319{320return NS::Object::sendMessage< MTL::PixelFormat >( this, _MTLFX_PRIVATE_SEL( specularAlbedoTextureFormat ) );321}322323//-------------------------------------------------------------------------------------------------------------------------------------------------------------324325_MTLFX_INLINE void MTLFX::TemporalDenoisedScalerDescriptor::setSpecularAlbedoTextureFormat( MTL::PixelFormat pixelFormat )326{327return NS::Object::sendMessage< void >( this, _MTLFX_PRIVATE_SEL( setSpecularAlbedoTextureFormat_ ), pixelFormat );328}329330//-------------------------------------------------------------------------------------------------------------------------------------------------------------331332_MTLFX_INLINE MTL::PixelFormat MTLFX::TemporalDenoisedScalerDescriptor::normalTextureFormat() const333{334return NS::Object::sendMessage< MTL::PixelFormat >( this, _MTLFX_PRIVATE_SEL( normalTextureFormat ) );335}336337//-------------------------------------------------------------------------------------------------------------------------------------------------------------338339_MTLFX_INLINE void MTLFX::TemporalDenoisedScalerDescriptor::setNormalTextureFormat( MTL::PixelFormat pixelFormat )340{341return NS::Object::sendMessage< void >( this, _MTLFX_PRIVATE_SEL( setNormalTextureFormat_ ), pixelFormat );342}343344//-------------------------------------------------------------------------------------------------------------------------------------------------------------345346_MTLFX_INLINE MTL::PixelFormat MTLFX::TemporalDenoisedScalerDescriptor::roughnessTextureFormat() const347{348return NS::Object::sendMessage< MTL::PixelFormat >( this, _MTLFX_PRIVATE_SEL( roughnessTextureFormat ) );349}350351//-------------------------------------------------------------------------------------------------------------------------------------------------------------352353_MTLFX_INLINE void MTLFX::TemporalDenoisedScalerDescriptor::setRoughnessTextureFormat( MTL::PixelFormat pixelFormat )354{355return NS::Object::sendMessage< void >( this, _MTLFX_PRIVATE_SEL( setRoughnessTextureFormat_ ), pixelFormat );356}357358//-------------------------------------------------------------------------------------------------------------------------------------------------------------359360_MTLFX_INLINE MTL::PixelFormat MTLFX::TemporalDenoisedScalerDescriptor::specularHitDistanceTextureFormat() const361{362return NS::Object::sendMessage< MTL::PixelFormat >( this, _MTLFX_PRIVATE_SEL( specularHitDistanceTextureFormat ) );363}364365//-------------------------------------------------------------------------------------------------------------------------------------------------------------366367_MTLFX_INLINE void MTLFX::TemporalDenoisedScalerDescriptor::setSpecularHitDistanceTextureFormat( MTL::PixelFormat pixelFormat )368{369return NS::Object::sendMessage< void >( this, _MTLFX_PRIVATE_SEL( setSpecularHitDistanceTextureFormat_ ), pixelFormat );370}371372//-------------------------------------------------------------------------------------------------------------------------------------------------------------373374_MTLFX_INLINE MTL::PixelFormat MTLFX::TemporalDenoisedScalerDescriptor::denoiseStrengthMaskTextureFormat() const375{376return NS::Object::sendMessage< MTL::PixelFormat >( this, _MTLFX_PRIVATE_SEL( denoiseStrengthMaskTextureFormat ) );377}378379//-------------------------------------------------------------------------------------------------------------------------------------------------------------380381_MTLFX_INLINE void MTLFX::TemporalDenoisedScalerDescriptor::setDenoiseStrengthMaskTextureFormat( MTL::PixelFormat pixelFormat )382{383return NS::Object::sendMessage< void >( this, _MTLFX_PRIVATE_SEL( setDenoiseStrengthMaskTextureFormat_ ), pixelFormat );384}385386//-------------------------------------------------------------------------------------------------------------------------------------------------------------387388_MTLFX_INLINE MTL::PixelFormat MTLFX::TemporalDenoisedScalerDescriptor::transparencyOverlayTextureFormat() const389{390return NS::Object::sendMessage< MTL::PixelFormat >( this, _MTLFX_PRIVATE_SEL( transparencyOverlayTextureFormat ) );391}392393//-------------------------------------------------------------------------------------------------------------------------------------------------------------394395_MTLFX_INLINE void MTLFX::TemporalDenoisedScalerDescriptor::setTransparencyOverlayTextureFormat( MTL::PixelFormat pixelFormat )396{397return NS::Object::sendMessage< void >( this, _MTLFX_PRIVATE_SEL( setTransparencyOverlayTextureFormat_ ), pixelFormat );398}399400//-------------------------------------------------------------------------------------------------------------------------------------------------------------401402_MTLFX_INLINE MTL::PixelFormat MTLFX::TemporalDenoisedScalerDescriptor::outputTextureFormat() const403{404return NS::Object::sendMessage< MTL::PixelFormat >( this, _MTLFX_PRIVATE_SEL( outputTextureFormat ) );405}406407//-------------------------------------------------------------------------------------------------------------------------------------------------------------408409_MTLFX_INLINE void MTLFX::TemporalDenoisedScalerDescriptor::setOutputTextureFormat( MTL::PixelFormat pixelFormat )410{411return NS::Object::sendMessage< void >( this, _MTLFX_PRIVATE_SEL( setOutputTextureFormat_ ), pixelFormat );412}413414//-------------------------------------------------------------------------------------------------------------------------------------------------------------415416_MTLFX_INLINE NS::UInteger MTLFX::TemporalDenoisedScalerDescriptor::inputWidth() const417{418return NS::Object::sendMessage< NS::UInteger >( this, _MTLFX_PRIVATE_SEL( inputWidth ) );419}420421//-------------------------------------------------------------------------------------------------------------------------------------------------------------422423_MTLFX_INLINE void MTLFX::TemporalDenoisedScalerDescriptor::setInputWidth( NS::UInteger inputWidth )424{425return NS::Object::sendMessage< void >( this, _MTLFX_PRIVATE_SEL( setInputWidth_ ), inputWidth );426}427428//-------------------------------------------------------------------------------------------------------------------------------------------------------------429430_MTLFX_INLINE NS::UInteger MTLFX::TemporalDenoisedScalerDescriptor::inputHeight() const431{432return NS::Object::sendMessage< NS::UInteger >( this, _MTLFX_PRIVATE_SEL( inputHeight ) );433}434435//-------------------------------------------------------------------------------------------------------------------------------------------------------------436437_MTLFX_INLINE void MTLFX::TemporalDenoisedScalerDescriptor::setInputHeight( NS::UInteger inputHeight )438{439return NS::Object::sendMessage< void >( this, _MTLFX_PRIVATE_SEL( setInputHeight_ ), inputHeight );440}441442//-------------------------------------------------------------------------------------------------------------------------------------------------------------443444_MTLFX_INLINE NS::UInteger MTLFX::TemporalDenoisedScalerDescriptor::outputWidth() const445{446return NS::Object::sendMessage< NS::UInteger >( this, _MTLFX_PRIVATE_SEL( outputWidth ) );447}448449//-------------------------------------------------------------------------------------------------------------------------------------------------------------450451_MTLFX_INLINE void MTLFX::TemporalDenoisedScalerDescriptor::setOutputWidth( NS::UInteger outputWidth )452{453return NS::Object::sendMessage< void >( this, _MTLFX_PRIVATE_SEL( setOutputWidth_ ), outputWidth );454}455456//-------------------------------------------------------------------------------------------------------------------------------------------------------------457458_MTLFX_INLINE NS::UInteger MTLFX::TemporalDenoisedScalerDescriptor::outputHeight() const459{460return NS::Object::sendMessage< NS::UInteger >( this, _MTLFX_PRIVATE_SEL( outputHeight ) );461}462463//-------------------------------------------------------------------------------------------------------------------------------------------------------------464465_MTLFX_INLINE void MTLFX::TemporalDenoisedScalerDescriptor::setOutputHeight( NS::UInteger outputHeight )466{467return NS::Object::sendMessage< void >( this, _MTLFX_PRIVATE_SEL( setOutputHeight_ ), outputHeight );468}469470//-------------------------------------------------------------------------------------------------------------------------------------------------------------471472_MTLFX_INLINE bool MTLFX::TemporalDenoisedScalerDescriptor::requiresSynchronousInitialization() const473{474return NS::Object::sendMessage< bool >( this, _MTLFX_PRIVATE_SEL( requiresSynchronousInitialization ) );475}476477//-------------------------------------------------------------------------------------------------------------------------------------------------------------478479_MTLFX_INLINE void MTLFX::TemporalDenoisedScalerDescriptor::setRequiresSynchronousInitialization( bool requiresSynchronousInitialization )480{481return NS::Object::sendMessage< void >( this, _MTLFX_PRIVATE_SEL( setRequiresSynchronousInitialization_ ), requiresSynchronousInitialization );482}483484//-------------------------------------------------------------------------------------------------------------------------------------------------------------485486_MTLFX_INLINE bool MTLFX::TemporalDenoisedScalerDescriptor::isAutoExposureEnabled() const487{488return NS::Object::sendMessage< bool >( this, _MTLFX_PRIVATE_SEL( isAutoExposureEnabled ) );489}490491//-------------------------------------------------------------------------------------------------------------------------------------------------------------492493_MTLFX_INLINE void MTLFX::TemporalDenoisedScalerDescriptor::setAutoExposureEnabled( bool enabled )494{495return NS::Object::sendMessage< void >( this, _MTLFX_PRIVATE_SEL( setAutoExposureEnabled_ ), enabled );496}497498//-------------------------------------------------------------------------------------------------------------------------------------------------------------499500_MTLFX_INLINE bool MTLFX::TemporalDenoisedScalerDescriptor::isInputContentPropertiesEnabled() const501{502return NS::Object::sendMessage< bool >( this, _MTLFX_PRIVATE_SEL( isInputContentPropertiesEnabled ) );503}504505//-------------------------------------------------------------------------------------------------------------------------------------------------------------506507_MTLFX_INLINE void MTLFX::TemporalDenoisedScalerDescriptor::setInputContentPropertiesEnabled( bool enabled )508{509return NS::Object::sendMessage< void >( this, _MTLFX_PRIVATE_SEL( setInputContentPropertiesEnabled_ ), enabled );510}511512//-------------------------------------------------------------------------------------------------------------------------------------------------------------513514_MTLFX_INLINE float MTLFX::TemporalDenoisedScalerDescriptor::inputContentMinScale() const515{516return NS::Object::sendMessage< float >( this, _MTLFX_PRIVATE_SEL( inputContentMinScale ) );517}518519//-------------------------------------------------------------------------------------------------------------------------------------------------------------520521_MTLFX_INLINE void MTLFX::TemporalDenoisedScalerDescriptor::setInputContentMinScale( float inputContentMinScale )522{523return NS::Object::sendMessage< void >( this, _MTLFX_PRIVATE_SEL( setInputContentMinScale_ ), inputContentMinScale );524}525526//-------------------------------------------------------------------------------------------------------------------------------------------------------------527528_MTLFX_INLINE float MTLFX::TemporalDenoisedScalerDescriptor::inputContentMaxScale() const529{530return NS::Object::sendMessage< float >( this, _MTLFX_PRIVATE_SEL( inputContentMaxScale ) );531}532533//-------------------------------------------------------------------------------------------------------------------------------------------------------------534535_MTLFX_INLINE void MTLFX::TemporalDenoisedScalerDescriptor::setInputContentMaxScale( float inputContentMaxScale )536{537return NS::Object::sendMessage< void >( this, _MTLFX_PRIVATE_SEL( setInputContentMaxScale_ ), inputContentMaxScale );538}539540//-------------------------------------------------------------------------------------------------------------------------------------------------------------541542_MTLFX_INLINE bool MTLFX::TemporalDenoisedScalerDescriptor::isReactiveMaskTextureEnabled() const543{544return NS::Object::sendMessage< bool >( this, _MTLFX_PRIVATE_SEL( isReactiveMaskTextureEnabled ) );545}546547//-------------------------------------------------------------------------------------------------------------------------------------------------------------548549_MTLFX_INLINE void MTLFX::TemporalDenoisedScalerDescriptor::setReactiveMaskTextureEnabled( bool enabled )550{551return NS::Object::sendMessage< void >( this, _MTLFX_PRIVATE_SEL( setReactiveMaskTextureEnabled_ ), enabled );552}553554//-------------------------------------------------------------------------------------------------------------------------------------------------------------555556_MTLFX_INLINE MTL::PixelFormat MTLFX::TemporalDenoisedScalerDescriptor::reactiveMaskTextureFormat() const557{558return NS::Object::sendMessage< MTL::PixelFormat >( this, _MTLFX_PRIVATE_SEL( reactiveMaskTextureFormat ) );559}560561//-------------------------------------------------------------------------------------------------------------------------------------------------------------562563_MTLFX_INLINE void MTLFX::TemporalDenoisedScalerDescriptor::setReactiveMaskTextureFormat( MTL::PixelFormat pixelFormat )564{565return NS::Object::sendMessage< void >( this, _MTLFX_PRIVATE_SEL( setReactiveMaskTextureFormat_ ), pixelFormat );566}567568//-------------------------------------------------------------------------------------------------------------------------------------------------------------569570_MTLFX_INLINE bool MTLFX::TemporalDenoisedScalerDescriptor::isSpecularHitDistanceTextureEnabled() const571{572return NS::Object::sendMessage< bool >( this, _MTLFX_PRIVATE_SEL( isSpecularHitDistanceTextureEnabled ) );573}574575//-------------------------------------------------------------------------------------------------------------------------------------------------------------576577_MTLFX_INLINE void MTLFX::TemporalDenoisedScalerDescriptor::setSpecularHitDistanceTextureEnabled( bool enabled )578{579return NS::Object::sendMessage< void >( this, _MTLFX_PRIVATE_SEL( setSpecularHitDistanceTextureEnabled_ ), enabled );580}581582//-------------------------------------------------------------------------------------------------------------------------------------------------------------583584_MTLFX_INLINE bool MTLFX::TemporalDenoisedScalerDescriptor::isDenoiseStrengthMaskTextureEnabled() const585{586return NS::Object::sendMessage< bool >( this, _MTLFX_PRIVATE_SEL( isDenoiseStrengthMaskTextureEnabled ) );587}588589//-------------------------------------------------------------------------------------------------------------------------------------------------------------590591_MTLFX_INLINE void MTLFX::TemporalDenoisedScalerDescriptor::setDenoiseStrengthMaskTextureEnabled( bool enabled )592{593return NS::Object::sendMessage< void >( this, _MTLFX_PRIVATE_SEL( setDenoiseStrengthMaskTextureEnabled_ ), enabled );594}595596//-------------------------------------------------------------------------------------------------------------------------------------------------------------597598_MTLFX_INLINE bool MTLFX::TemporalDenoisedScalerDescriptor::isTransparencyOverlayTextureEnabled() const599{600return NS::Object::sendMessage< bool >( this, _MTLFX_PRIVATE_SEL( isTransparencyOverlayTextureEnabled ) );601}602603//-------------------------------------------------------------------------------------------------------------------------------------------------------------604605_MTLFX_INLINE void MTLFX::TemporalDenoisedScalerDescriptor::setTransparencyOverlayTextureEnabled( bool enabled )606{607return NS::Object::sendMessage< void >( this, _MTLFX_PRIVATE_SEL( setTransparencyOverlayTextureEnabled_ ), enabled );608}609610//-------------------------------------------------------------------------------------------------------------------------------------------------------------611612_MTLFX_INLINE MTLFX::TemporalDenoisedScaler* MTLFX::TemporalDenoisedScalerDescriptor::newTemporalDenoisedScaler( const MTL::Device* device ) const613{614return NS::Object::sendMessage< TemporalDenoisedScaler* >( this, _MTLFX_PRIVATE_SEL( newTemporalDenoisedScalerWithDevice_ ), device );615}616617//-------------------------------------------------------------------------------------------------------------------------------------------------------------618619_MTLFX_INLINE MTL4FX::TemporalDenoisedScaler* MTLFX::TemporalDenoisedScalerDescriptor::newTemporalDenoisedScaler( const MTL::Device* device, const MTL4::Compiler* compiler ) const620{621return NS::Object::sendMessage< MTL4FX::TemporalDenoisedScaler* >( this, _MTLFX_PRIVATE_SEL( newTemporalDenoisedScalerWithDevice_compiler_ ), device, compiler );622}623624//-------------------------------------------------------------------------------------------------------------------------------------------------------------625626_MTLFX_INLINE float MTLFX::TemporalDenoisedScalerDescriptor::supportedInputContentMinScale( MTL::Device* pDevice )627{628float scale = 1.0f;629630if ( nullptr != methodSignatureForSelector( _MTLFX_PRIVATE_CLS( MTLFXTemporalDenoisedScalerDescriptor ), _MTLFX_PRIVATE_SEL( supportedInputContentMinScaleForDevice_ ) ) )631{632scale = sendMessage< float >( _NS_PRIVATE_CLS( MTLFXTemporalDenoisedScalerDescriptor ), _MTLFX_PRIVATE_SEL( supportedInputContentMinScaleForDevice_ ), pDevice );633}634635return scale;636}637638//-------------------------------------------------------------------------------------------------------------------------------------------------------------639640_MTLFX_INLINE float MTLFX::TemporalDenoisedScalerDescriptor::supportedInputContentMaxScale( MTL::Device* pDevice )641{642float scale = 1.0f;643644if ( nullptr != methodSignatureForSelector( _MTLFX_PRIVATE_CLS( MTLFXTemporalDenoisedScalerDescriptor ), _MTLFX_PRIVATE_SEL( supportedInputContentMaxScaleForDevice_ ) ) )645{646scale = sendMessage< float >( _MTLFX_PRIVATE_CLS( MTLFXTemporalDenoisedScalerDescriptor ), _MTLFX_PRIVATE_SEL( supportedInputContentMaxScaleForDevice_ ), pDevice );647}648else if ( supportsDevice( pDevice ) )649{650scale = 2.0f;651}652653return scale;654}655656//-------------------------------------------------------------------------------------------------------------------------------------------------------------657658_MTLFX_INLINE bool MTLFX::TemporalDenoisedScalerDescriptor::supportsMetal4FX( MTL::Device* device )659{660return NS::Object::sendMessageSafe< bool >( _MTLFX_PRIVATE_CLS(MTLFXTemporalDenoisedScalerDescriptor), _MTLFX_PRIVATE_SEL( supportsMetal4FX_ ), device );661}662663//-------------------------------------------------------------------------------------------------------------------------------------------------------------664665_MTLFX_INLINE bool MTLFX::TemporalDenoisedScalerDescriptor::supportsDevice( MTL::Device* device )666{667return NS::Object::sendMessageSafe< bool >( _MTLFX_PRIVATE_CLS(MTLFXTemporalDenoisedScalerDescriptor), _MTLFX_PRIVATE_SEL( supportsDevice_ ), device );668}669670//-------------------------------------------------------------------------------------------------------------------------------------------------------------671672_MTLFX_INLINE MTL::TextureUsage MTLFX::TemporalDenoisedScalerBase::colorTextureUsage() const673{674return NS::Object::sendMessage< MTL::TextureUsage >( this, _MTLFX_PRIVATE_SEL( colorTextureUsage ) );675}676677//-------------------------------------------------------------------------------------------------------------------------------------------------------------678679_MTLFX_INLINE MTL::TextureUsage MTLFX::TemporalDenoisedScalerBase::depthTextureUsage() const680{681return NS::Object::sendMessage< MTL::TextureUsage >( this, _MTLFX_PRIVATE_SEL( depthTextureUsage ) );682}683684//-------------------------------------------------------------------------------------------------------------------------------------------------------------685686_MTLFX_INLINE MTL::TextureUsage MTLFX::TemporalDenoisedScalerBase::motionTextureUsage() const687{688return NS::Object::sendMessage< MTL::TextureUsage >( this, _MTLFX_PRIVATE_SEL( motionTextureUsage ) );689}690691//-------------------------------------------------------------------------------------------------------------------------------------------------------------692693_MTLFX_INLINE MTL::TextureUsage MTLFX::TemporalDenoisedScalerBase::reactiveTextureUsage() const694{695return NS::Object::sendMessage< MTL::TextureUsage >( this, _MTLFX_PRIVATE_SEL( reactiveTextureUsage ) );696}697698//-------------------------------------------------------------------------------------------------------------------------------------------------------------699700_MTLFX_INLINE MTL::TextureUsage MTLFX::TemporalDenoisedScalerBase::diffuseAlbedoTextureUsage() const701{702return NS::Object::sendMessage< MTL::TextureUsage >( this, _MTLFX_PRIVATE_SEL( diffuseAlbedoTextureUsage ) );703}704705//-------------------------------------------------------------------------------------------------------------------------------------------------------------706707_MTLFX_INLINE MTL::TextureUsage MTLFX::TemporalDenoisedScalerBase::specularAlbedoTextureUsage() const708{709return NS::Object::sendMessage< MTL::TextureUsage >( this, _MTLFX_PRIVATE_SEL( specularAlbedoTextureUsage ) );710}711712//-------------------------------------------------------------------------------------------------------------------------------------------------------------713714_MTLFX_INLINE MTL::TextureUsage MTLFX::TemporalDenoisedScalerBase::normalTextureUsage() const715{716return NS::Object::sendMessage< MTL::TextureUsage >( this, _MTLFX_PRIVATE_SEL( normalTextureUsage ) );717}718719//-------------------------------------------------------------------------------------------------------------------------------------------------------------720721_MTLFX_INLINE MTL::TextureUsage MTLFX::TemporalDenoisedScalerBase::roughnessTextureUsage() const722{723return NS::Object::sendMessage< MTL::TextureUsage >( this, _MTLFX_PRIVATE_SEL( roughnessTextureUsage ) );724}725726//-------------------------------------------------------------------------------------------------------------------------------------------------------------727728_MTLFX_INLINE MTL::TextureUsage MTLFX::TemporalDenoisedScalerBase::specularHitDistanceTextureUsage() const729{730return NS::Object::sendMessage< MTL::TextureUsage >( this, _MTLFX_PRIVATE_SEL( specularHitDistanceTextureUsage ) );731}732733//-------------------------------------------------------------------------------------------------------------------------------------------------------------734735_MTLFX_INLINE MTL::TextureUsage MTLFX::TemporalDenoisedScalerBase::denoiseStrengthMaskTextureUsage() const736{737return NS::Object::sendMessage< MTL::TextureUsage >( this, _MTLFX_PRIVATE_SEL( denoiseStrengthMaskTextureUsage ) );738}739740//-------------------------------------------------------------------------------------------------------------------------------------------------------------741742_MTLFX_INLINE MTL::TextureUsage MTLFX::TemporalDenoisedScalerBase::transparencyOverlayTextureUsage() const743{744return NS::Object::sendMessage< MTL::TextureUsage >( this, _MTLFX_PRIVATE_SEL( transparencyOverlayTextureUsage ) );745}746747//-------------------------------------------------------------------------------------------------------------------------------------------------------------748749_MTLFX_INLINE MTL::TextureUsage MTLFX::TemporalDenoisedScalerBase::outputTextureUsage() const750{751return NS::Object::sendMessage< MTL::TextureUsage >( this, _MTLFX_PRIVATE_SEL( outputTextureUsage ) );752}753754//-------------------------------------------------------------------------------------------------------------------------------------------------------------755756_MTLFX_INLINE MTL::Texture* MTLFX::TemporalDenoisedScalerBase::colorTexture() const757{758return NS::Object::sendMessage< MTL::Texture* >( this, _MTLFX_PRIVATE_SEL( colorTexture ) );759}760761//-------------------------------------------------------------------------------------------------------------------------------------------------------------762763_MTLFX_INLINE void MTLFX::TemporalDenoisedScalerBase::setColorTexture( MTL::Texture* colorTexture )764{765return NS::Object::sendMessage< void >( this, _MTLFX_PRIVATE_SEL( setColorTexture_ ), colorTexture );766}767768//-------------------------------------------------------------------------------------------------------------------------------------------------------------769770_MTLFX_INLINE MTL::Texture* MTLFX::TemporalDenoisedScalerBase::depthTexture() const771{772return NS::Object::sendMessage< MTL::Texture* >( this, _MTLFX_PRIVATE_SEL( depthTexture ) );773}774775//-------------------------------------------------------------------------------------------------------------------------------------------------------------776777_MTLFX_INLINE void MTLFX::TemporalDenoisedScalerBase::setDepthTexture( MTL::Texture* depthTexture )778{779return NS::Object::sendMessage< void >( this, _MTLFX_PRIVATE_SEL( setDepthTexture_ ), depthTexture );780}781782//-------------------------------------------------------------------------------------------------------------------------------------------------------------783784_MTLFX_INLINE MTL::Texture* MTLFX::TemporalDenoisedScalerBase::motionTexture() const785{786return NS::Object::sendMessage< MTL::Texture* >( this, _MTLFX_PRIVATE_SEL( motionTexture ) );787}788789//-------------------------------------------------------------------------------------------------------------------------------------------------------------790791_MTLFX_INLINE void MTLFX::TemporalDenoisedScalerBase::setMotionTexture( MTL::Texture* motionTexture )792{793return NS::Object::sendMessage< void >( this, _MTLFX_PRIVATE_SEL( setMotionTexture_ ), motionTexture );794}795796//-------------------------------------------------------------------------------------------------------------------------------------------------------------797798_MTLFX_INLINE MTL::Texture* MTLFX::TemporalDenoisedScalerBase::diffuseAlbedoTexture() const799{800return NS::Object::sendMessage< MTL::Texture* >( this, _MTLFX_PRIVATE_SEL( diffuseAlbedoTexture ) );801}802803//-------------------------------------------------------------------------------------------------------------------------------------------------------------804805_MTLFX_INLINE void MTLFX::TemporalDenoisedScalerBase::setDiffuseAlbedoTexture( MTL::Texture* diffuseAlbedoTexture )806{807return NS::Object::sendMessage< void >( this, _MTLFX_PRIVATE_SEL( setDiffuseAlbedoTexture_ ), diffuseAlbedoTexture );808}809810//-------------------------------------------------------------------------------------------------------------------------------------------------------------811812_MTLFX_INLINE MTL::Texture* MTLFX::TemporalDenoisedScalerBase::specularAlbedoTexture() const813{814return NS::Object::sendMessage< MTL::Texture* >( this, _MTLFX_PRIVATE_SEL( specularAlbedoTexture ) );815}816817//-------------------------------------------------------------------------------------------------------------------------------------------------------------818819_MTLFX_INLINE void MTLFX::TemporalDenoisedScalerBase::setSpecularAlbedoTexture( MTL::Texture* specularAlbedoTexture )820{821return NS::Object::sendMessage< void >( this, _MTLFX_PRIVATE_SEL( setSpecularAlbedoTexture_ ), specularAlbedoTexture );822}823824//-------------------------------------------------------------------------------------------------------------------------------------------------------------825826_MTLFX_INLINE MTL::Texture* MTLFX::TemporalDenoisedScalerBase::normalTexture() const827{828return NS::Object::sendMessage< MTL::Texture* >( this, _MTLFX_PRIVATE_SEL( normalTexture ) );829}830831//-------------------------------------------------------------------------------------------------------------------------------------------------------------832833_MTLFX_INLINE void MTLFX::TemporalDenoisedScalerBase::setNormalTexture( MTL::Texture* normalTexture )834{835return NS::Object::sendMessage< void >( this, _MTLFX_PRIVATE_SEL( setNormalTexture_ ), normalTexture );836}837838//-------------------------------------------------------------------------------------------------------------------------------------------------------------839840_MTLFX_INLINE MTL::Texture* MTLFX::TemporalDenoisedScalerBase::roughnessTexture() const841{842return NS::Object::sendMessage< MTL::Texture* >( this, _MTLFX_PRIVATE_SEL( roughnessTexture ) );843}844845//-------------------------------------------------------------------------------------------------------------------------------------------------------------846847_MTLFX_INLINE void MTLFX::TemporalDenoisedScalerBase::setRoughnessTexture( MTL::Texture* roughnessTexture )848{849return NS::Object::sendMessage< void >( this, _MTLFX_PRIVATE_SEL( setRoughnessTexture_ ), roughnessTexture );850}851852//-------------------------------------------------------------------------------------------------------------------------------------------------------------853854_MTLFX_INLINE MTL::Texture* MTLFX::TemporalDenoisedScalerBase::specularHitDistanceTexture() const855{856return NS::Object::sendMessage< MTL::Texture* >( this, _MTLFX_PRIVATE_SEL( specularHitDistanceTexture ) );857}858859//-------------------------------------------------------------------------------------------------------------------------------------------------------------860861_MTLFX_INLINE void MTLFX::TemporalDenoisedScalerBase::setSpecularHitDistanceTexture( MTL::Texture* specularHitDistanceTexture )862{863return NS::Object::sendMessage< void >( this, _MTLFX_PRIVATE_SEL( setSpecularHitDistanceTexture_ ), specularHitDistanceTexture );864}865866//-------------------------------------------------------------------------------------------------------------------------------------------------------------867868_MTLFX_INLINE MTL::Texture* MTLFX::TemporalDenoisedScalerBase::denoiseStrengthMaskTexture() const869{870return NS::Object::sendMessage< MTL::Texture* >( this, _MTLFX_PRIVATE_SEL( denoiseStrengthMaskTexture ) );871}872873//-------------------------------------------------------------------------------------------------------------------------------------------------------------874875_MTLFX_INLINE void MTLFX::TemporalDenoisedScalerBase::setDenoiseStrengthMaskTexture( MTL::Texture* denoiseStrengthMaskTexture )876{877return NS::Object::sendMessage< void >( this, _MTLFX_PRIVATE_SEL( setDenoiseStrengthMaskTexture_ ), denoiseStrengthMaskTexture );878}879880//-------------------------------------------------------------------------------------------------------------------------------------------------------------881882_MTLFX_INLINE MTL::Texture* MTLFX::TemporalDenoisedScalerBase::transparencyOverlayTexture() const883{884return NS::Object::sendMessage< MTL::Texture* >( this, _MTLFX_PRIVATE_SEL( transparencyOverlayTexture ) );885}886887//-------------------------------------------------------------------------------------------------------------------------------------------------------------888889_MTLFX_INLINE void MTLFX::TemporalDenoisedScalerBase::setTransparencyOverlayTexture( MTL::Texture* transparencyOverlayTexture )890{891return NS::Object::sendMessage< void >( this, _MTLFX_PRIVATE_SEL( setTransparencyOverlayTexture_ ), transparencyOverlayTexture );892}893894//-------------------------------------------------------------------------------------------------------------------------------------------------------------895896_MTLFX_INLINE MTL::Texture* MTLFX::TemporalDenoisedScalerBase::outputTexture() const897{898return NS::Object::sendMessage< MTL::Texture* >( this, _MTLFX_PRIVATE_SEL( outputTexture ) );899}900901//-------------------------------------------------------------------------------------------------------------------------------------------------------------902903_MTLFX_INLINE void MTLFX::TemporalDenoisedScalerBase::setOutputTexture( MTL::Texture* outputTexture )904{905return NS::Object::sendMessage< void >( this, _MTLFX_PRIVATE_SEL( setOutputTexture_ ), outputTexture );906}907908//-------------------------------------------------------------------------------------------------------------------------------------------------------------909910_MTLFX_INLINE MTL::Texture* MTLFX::TemporalDenoisedScalerBase::exposureTexture() const911{912return NS::Object::sendMessage< MTL::Texture* >( this, _MTLFX_PRIVATE_SEL( exposureTexture ) );913}914915//-------------------------------------------------------------------------------------------------------------------------------------------------------------916917_MTLFX_INLINE void MTLFX::TemporalDenoisedScalerBase::setExposureTexture( MTL::Texture* exposureTexture )918{919return NS::Object::sendMessage< void >( this, _MTLFX_PRIVATE_SEL( setExposureTexture_ ), exposureTexture );920}921922//-------------------------------------------------------------------------------------------------------------------------------------------------------------923924_MTLFX_INLINE float MTLFX::TemporalDenoisedScalerBase::preExposure() const925{926return NS::Object::sendMessage< float >( this, _MTLFX_PRIVATE_SEL( preExposure ) );927}928929//-------------------------------------------------------------------------------------------------------------------------------------------------------------930931_MTLFX_INLINE void MTLFX::TemporalDenoisedScalerBase::setPreExposure( float preExposure )932{933return NS::Object::sendMessage< void >( this, _MTLFX_PRIVATE_SEL( setPreExposure_ ), preExposure );934}935936//-------------------------------------------------------------------------------------------------------------------------------------------------------------937938_MTLFX_INLINE MTL::Texture* MTLFX::TemporalDenoisedScalerBase::reactiveMaskTexture() const939{940return NS::Object::sendMessage< MTL::Texture* >( this, _MTLFX_PRIVATE_SEL( reactiveMaskTexture ) );941}942943//-------------------------------------------------------------------------------------------------------------------------------------------------------------944945_MTLFX_INLINE void MTLFX::TemporalDenoisedScalerBase::setReactiveMaskTexture( MTL::Texture* reactiveMaskTexture )946{947return NS::Object::sendMessage< void >( this, _MTLFX_PRIVATE_SEL( setReactiveMaskTexture_ ), reactiveMaskTexture );948}949950//-------------------------------------------------------------------------------------------------------------------------------------------------------------951952_MTLFX_INLINE float MTLFX::TemporalDenoisedScalerBase::jitterOffsetX() const953{954return NS::Object::sendMessage< float >( this, _MTLFX_PRIVATE_SEL( jitterOffsetX ) );955}956957//-------------------------------------------------------------------------------------------------------------------------------------------------------------958959_MTLFX_INLINE void MTLFX::TemporalDenoisedScalerBase::setJitterOffsetX( float jitterOffsetX )960{961return NS::Object::sendMessage< void >( this, _MTLFX_PRIVATE_SEL( setJitterOffsetX_ ), jitterOffsetX );962}963964//-------------------------------------------------------------------------------------------------------------------------------------------------------------965966_MTLFX_INLINE float MTLFX::TemporalDenoisedScalerBase::jitterOffsetY() const967{968return NS::Object::sendMessage< float >( this, _MTLFX_PRIVATE_SEL( jitterOffsetY ) );969}970971//-------------------------------------------------------------------------------------------------------------------------------------------------------------972973_MTLFX_INLINE void MTLFX::TemporalDenoisedScalerBase::setJitterOffsetY( float jitterOffsetY )974{975return NS::Object::sendMessage< void >( this, _MTLFX_PRIVATE_SEL( setJitterOffsetY_ ), jitterOffsetY );976}977978//-------------------------------------------------------------------------------------------------------------------------------------------------------------979980_MTLFX_INLINE float MTLFX::TemporalDenoisedScalerBase::motionVectorScaleX() const981{982return NS::Object::sendMessage< float >( this, _MTLFX_PRIVATE_SEL( motionVectorScaleX ) );983}984985//-------------------------------------------------------------------------------------------------------------------------------------------------------------986987_MTLFX_INLINE void MTLFX::TemporalDenoisedScalerBase::setMotionVectorScaleX( float motionVectorScaleX )988{989return NS::Object::sendMessage< void >( this, _MTLFX_PRIVATE_SEL( setMotionVectorScaleX_ ), motionVectorScaleX );990}991992//-------------------------------------------------------------------------------------------------------------------------------------------------------------993994_MTLFX_INLINE float MTLFX::TemporalDenoisedScalerBase::motionVectorScaleY() const995{996return NS::Object::sendMessage< float >( this, _MTLFX_PRIVATE_SEL( motionVectorScaleY ) );997}998999//-------------------------------------------------------------------------------------------------------------------------------------------------------------10001001_MTLFX_INLINE void MTLFX::TemporalDenoisedScalerBase::setMotionVectorScaleY( float motionVectorScaleY )1002{1003return NS::Object::sendMessage< void >( this, _MTLFX_PRIVATE_SEL( setMotionVectorScaleY_ ), motionVectorScaleY );1004}10051006//-------------------------------------------------------------------------------------------------------------------------------------------------------------10071008_MTLFX_INLINE bool MTLFX::TemporalDenoisedScalerBase::shouldResetHistory() const1009{1010return NS::Object::sendMessage< bool >( this, _MTLFX_PRIVATE_SEL( shouldResetHistory ) );1011}10121013//-------------------------------------------------------------------------------------------------------------------------------------------------------------10141015_MTLFX_INLINE void MTLFX::TemporalDenoisedScalerBase::setShouldResetHistory( bool shouldResetHistory )1016{1017return NS::Object::sendMessage< void >( this, _MTLFX_PRIVATE_SEL( setShouldResetHistory_ ), shouldResetHistory );1018}10191020//-------------------------------------------------------------------------------------------------------------------------------------------------------------10211022_MTLFX_INLINE bool MTLFX::TemporalDenoisedScalerBase::isDepthReversed() const1023{1024return NS::Object::sendMessage< bool >( this, _MTLFX_PRIVATE_SEL( isDepthReversed ) );1025}10261027//-------------------------------------------------------------------------------------------------------------------------------------------------------------10281029_MTLFX_INLINE void MTLFX::TemporalDenoisedScalerBase::setDepthReversed( bool depthReversed )1030{1031return NS::Object::sendMessage< void >( this, _MTLFX_PRIVATE_SEL( setDepthReversed_ ), depthReversed );1032}10331034//-------------------------------------------------------------------------------------------------------------------------------------------------------------10351036_MTLFX_INLINE MTL::PixelFormat MTLFX::TemporalDenoisedScalerBase::colorTextureFormat() const1037{1038return NS::Object::sendMessage< MTL::PixelFormat >( this, _MTLFX_PRIVATE_SEL( colorTextureFormat ) );1039}10401041//-------------------------------------------------------------------------------------------------------------------------------------------------------------10421043_MTLFX_INLINE MTL::PixelFormat MTLFX::TemporalDenoisedScalerBase::depthTextureFormat() const1044{1045return NS::Object::sendMessage< MTL::PixelFormat >( this, _MTLFX_PRIVATE_SEL( depthTextureFormat ) );1046}10471048//-------------------------------------------------------------------------------------------------------------------------------------------------------------10491050_MTLFX_INLINE MTL::PixelFormat MTLFX::TemporalDenoisedScalerBase::motionTextureFormat() const1051{1052return NS::Object::sendMessage< MTL::PixelFormat >( this, _MTLFX_PRIVATE_SEL( motionTextureFormat ) );1053}10541055//-------------------------------------------------------------------------------------------------------------------------------------------------------------10561057_MTLFX_INLINE MTL::PixelFormat MTLFX::TemporalDenoisedScalerBase::diffuseAlbedoTextureFormat() const1058{1059return NS::Object::sendMessage< MTL::PixelFormat >( this, _MTLFX_PRIVATE_SEL( diffuseAlbedoTextureFormat ) );1060}10611062//-------------------------------------------------------------------------------------------------------------------------------------------------------------10631064_MTLFX_INLINE MTL::PixelFormat MTLFX::TemporalDenoisedScalerBase::specularAlbedoTextureFormat() const1065{1066return NS::Object::sendMessage< MTL::PixelFormat >( this, _MTLFX_PRIVATE_SEL( specularAlbedoTextureFormat ) );1067}10681069//-------------------------------------------------------------------------------------------------------------------------------------------------------------10701071_MTLFX_INLINE MTL::PixelFormat MTLFX::TemporalDenoisedScalerBase::normalTextureFormat() const1072{1073return NS::Object::sendMessage< MTL::PixelFormat >( this, _MTLFX_PRIVATE_SEL( normalTextureFormat ) );1074}10751076//-------------------------------------------------------------------------------------------------------------------------------------------------------------10771078_MTLFX_INLINE MTL::PixelFormat MTLFX::TemporalDenoisedScalerBase::roughnessTextureFormat() const1079{1080return NS::Object::sendMessage< MTL::PixelFormat >( this, _MTLFX_PRIVATE_SEL( roughnessTextureFormat ) );1081}10821083//-------------------------------------------------------------------------------------------------------------------------------------------------------------10841085_MTLFX_INLINE MTL::PixelFormat MTLFX::TemporalDenoisedScalerBase::specularHitDistanceTextureFormat() const1086{1087return NS::Object::sendMessage< MTL::PixelFormat >( this, _MTLFX_PRIVATE_SEL( specularHitDistanceTextureFormat ) );1088}10891090//-------------------------------------------------------------------------------------------------------------------------------------------------------------10911092_MTLFX_INLINE MTL::PixelFormat MTLFX::TemporalDenoisedScalerBase::denoiseStrengthMaskTextureFormat() const1093{1094return NS::Object::sendMessage< MTL::PixelFormat >( this, _MTLFX_PRIVATE_SEL( denoiseStrengthMaskTextureFormat ) );1095}10961097//-------------------------------------------------------------------------------------------------------------------------------------------------------------10981099_MTLFX_INLINE MTL::PixelFormat MTLFX::TemporalDenoisedScalerBase::transparencyOverlayTextureFormat() const1100{1101return NS::Object::sendMessage< MTL::PixelFormat >( this, _MTLFX_PRIVATE_SEL( transparencyOverlayTextureFormat ) );1102}11031104//-------------------------------------------------------------------------------------------------------------------------------------------------------------11051106_MTLFX_INLINE MTL::PixelFormat MTLFX::TemporalDenoisedScalerBase::reactiveMaskTextureFormat() const1107{1108return NS::Object::sendMessage< MTL::PixelFormat >( this, _MTLFX_PRIVATE_SEL( reactiveMaskTextureFormat ) );1109}11101111//-------------------------------------------------------------------------------------------------------------------------------------------------------------11121113_MTLFX_INLINE MTL::PixelFormat MTLFX::TemporalDenoisedScalerBase::outputTextureFormat() const1114{1115return NS::Object::sendMessage< MTL::PixelFormat >( this, _MTLFX_PRIVATE_SEL( outputTextureFormat ) );1116}11171118//-------------------------------------------------------------------------------------------------------------------------------------------------------------11191120_MTLFX_INLINE NS::UInteger MTLFX::TemporalDenoisedScalerBase::inputWidth() const1121{1122return NS::Object::sendMessage< NS::UInteger >( this, _MTLFX_PRIVATE_SEL( inputWidth ) );1123}11241125//-------------------------------------------------------------------------------------------------------------------------------------------------------------11261127_MTLFX_INLINE NS::UInteger MTLFX::TemporalDenoisedScalerBase::inputHeight() const1128{1129return NS::Object::sendMessage< NS::UInteger >( this, _MTLFX_PRIVATE_SEL( inputHeight ) );1130}11311132//-------------------------------------------------------------------------------------------------------------------------------------------------------------11331134_MTLFX_INLINE NS::UInteger MTLFX::TemporalDenoisedScalerBase::outputWidth() const1135{1136return NS::Object::sendMessage< NS::UInteger >( this, _MTLFX_PRIVATE_SEL( outputWidth ) );1137}11381139//-------------------------------------------------------------------------------------------------------------------------------------------------------------11401141_MTLFX_INLINE NS::UInteger MTLFX::TemporalDenoisedScalerBase::outputHeight() const1142{1143return NS::Object::sendMessage< NS::UInteger >( this, _MTLFX_PRIVATE_SEL( outputHeight ) );1144}11451146//-------------------------------------------------------------------------------------------------------------------------------------------------------------11471148_MTLFX_INLINE float MTLFX::TemporalDenoisedScalerBase::inputContentMinScale() const1149{1150return NS::Object::sendMessage< float >( this, _MTLFX_PRIVATE_SEL( inputContentMinScale ) );1151}11521153//-------------------------------------------------------------------------------------------------------------------------------------------------------------11541155_MTLFX_INLINE float MTLFX::TemporalDenoisedScalerBase::inputContentMaxScale() const1156{1157return NS::Object::sendMessage< float >( this, _MTLFX_PRIVATE_SEL( inputContentMaxScale ) );1158}11591160//-------------------------------------------------------------------------------------------------------------------------------------------------------------11611162_MTLFX_INLINE simd::float4x4 MTLFX::TemporalDenoisedScalerBase::worldToViewMatrix() const1163{1164return NS::Object::sendMessage< simd::float4x4 >( this, _MTLFX_PRIVATE_SEL( worldToViewMatrix ) );1165}11661167//-------------------------------------------------------------------------------------------------------------------------------------------------------------11681169_MTLFX_INLINE void MTLFX::TemporalDenoisedScalerBase::setWorldToViewMatrix( simd::float4x4 worldToViewMatrix )1170{1171return NS::Object::sendMessage< void >( this, _MTLFX_PRIVATE_SEL( setWorldToViewMatrix_ ), worldToViewMatrix );1172}11731174//-------------------------------------------------------------------------------------------------------------------------------------------------------------11751176_MTLFX_INLINE simd::float4x4 MTLFX::TemporalDenoisedScalerBase::viewToClipMatrix() const1177{1178return NS::Object::sendMessage< simd::float4x4 >( this, _MTLFX_PRIVATE_SEL( viewToClipMatrix ) );1179}11801181//-------------------------------------------------------------------------------------------------------------------------------------------------------------11821183_MTLFX_INLINE void MTLFX::TemporalDenoisedScalerBase::setViewToClipMatrix( simd::float4x4 viewToClipMatrix )1184{1185return NS::Object::sendMessage< void >( this, _MTLFX_PRIVATE_SEL( setViewToClipMatrix_ ), viewToClipMatrix );1186}11871188//-------------------------------------------------------------------------------------------------------------------------------------------------------------11891190_MTLFX_INLINE MTL::Fence* MTLFX::TemporalDenoisedScalerBase::fence() const1191{1192return NS::Object::sendMessage< MTL::Fence* >( this, _MTLFX_PRIVATE_SEL( fence ) );1193}11941195//-------------------------------------------------------------------------------------------------------------------------------------------------------------11961197_MTLFX_INLINE void MTLFX::TemporalDenoisedScalerBase::setFence( MTL::Fence* fence )1198{1199return NS::Object::sendMessage< void >( this, _MTLFX_PRIVATE_SEL( setFence_ ), fence );1200}12011202//-------------------------------------------------------------------------------------------------------------------------------------------------------------12031204_MTLFX_INLINE void MTLFX::TemporalDenoisedScaler::encodeToCommandBuffer( MTL::CommandBuffer* commandBuffer )1205{1206return NS::Object::sendMessage< void >( this, _MTLFX_PRIVATE_SEL( encodeToCommandBuffer_ ), commandBuffer );1207}120812091210