Path: blob/master/thirdparty/metal-cpp/MetalFX/MTLFXFrameInterpolator.hpp
21224 views
//-------------------------------------------------------------------------------------------------------------------------------------------------------------1//2// MetalFX/MTLFXFrameInterpolator.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//-------------------------------------------------------------------------------------------------------------------------------------------------------------3132namespace MTL4FX33{34class TemporalScaler;35class TemporalDenoisedScaler;36class FrameInterpolator;37}3839namespace MTLFX40{41class FrameInterpolatorDescriptor : public NS::Copying< FrameInterpolatorDescriptor >42{43public:44static FrameInterpolatorDescriptor* alloc();45FrameInterpolatorDescriptor* init();4647MTL::PixelFormat colorTextureFormat() const;48void setColorTextureFormat(MTL::PixelFormat colorTextureFormat);4950MTL::PixelFormat outputTextureFormat() const;51void setOutputTextureFormat(MTL::PixelFormat outputTextureFormat);5253MTL::PixelFormat depthTextureFormat() const;54void setDepthTextureFormat(MTL::PixelFormat depthTextureFormat);5556MTL::PixelFormat motionTextureFormat() const;57void setMotionTextureFormat(MTL::PixelFormat motionTextureFormat);5859MTL::PixelFormat uiTextureFormat() const;60void setUITextureFormat(MTL::PixelFormat uiTextureFormat);6162MTLFX::FrameInterpolatableScaler* scaler() const;63void setScaler(MTLFX::FrameInterpolatableScaler* scaler);6465NS::UInteger inputWidth() const;66void setInputWidth( NS::UInteger inputWidth );6768NS::UInteger inputHeight() const;69void setInputHeight( NS::UInteger inputHeight );7071NS::UInteger outputWidth() const;72void setOutputWidth( NS::UInteger outputWidth );7374NS::UInteger outputHeight() const;75void setOutputHeight( NS::UInteger outputHeight );7677class FrameInterpolator* newFrameInterpolator( const MTL::Device* pDevice) const;78MTL4FX::FrameInterpolator* newFrameInterpolator( const MTL::Device* pDevice, const MTL4::Compiler* pCompiler) const;7980static bool supportsMetal4FX(MTL::Device* device);81static bool supportsDevice(MTL::Device* device);82};8384class FrameInterpolatorBase : public NS::Referencing<FrameInterpolatorBase>85{86public:87MTL::TextureUsage colorTextureUsage() const;88MTL::TextureUsage outputTextureUsage() const;89MTL::TextureUsage depthTextureUsage() const;90MTL::TextureUsage motionTextureUsage() const;91MTL::TextureUsage uiTextureUsage() const;9293MTL::PixelFormat colorTextureFormat() const;94MTL::PixelFormat depthTextureFormat() const;95MTL::PixelFormat motionTextureFormat() const;96MTL::PixelFormat outputTextureFormat() const;9798NS::UInteger inputWidth() const;99NS::UInteger inputHeight() const;100NS::UInteger outputWidth() const;101NS::UInteger outputHeight() const;102MTL::PixelFormat uiTextureFormat() const;103104MTL::Texture* colorTexture() const;105void setColorTexture(MTL::Texture* colorTexture);106107MTL::Texture* prevColorTexture() const;108void setPrevColorTexture(MTL::Texture* prevColorTexture);109110MTL::Texture* depthTexture() const;111void setDepthTexture(MTL::Texture* depthTexture);112113MTL::Texture* motionTexture() const;114void setMotionTexture(MTL::Texture* motionTexture);115116float motionVectorScaleX() const;117void setMotionVectorScaleX(float scaleX);118119float motionVectorScaleY() const;120void setMotionVectorScaleY(float scaleY);121122float deltaTime() const;123void setDeltaTime( float deltaTime );124125float nearPlane() const;126void setNearPlane( float nearPlane );127128float farPlane() const;129void setFarPlane( float farPlane );130131float fieldOfView() const;132void setFieldOfView( float fieldOfView );133134float aspectRatio() const;135void setAspectRatio( float aspectRatio );136137MTL::Texture* uiTexture() const;138void setUITexture(MTL::Texture* uiTexture);139140float jitterOffsetX() const;141void setJitterOffsetX( float jitterOffsetX );142143float jitterOffsetY() const;144void setJitterOffsetY( float jitterOffsetY );145146bool isUITextureComposited() const;147void setIsUITextureComposited( bool uiTextureComposited );148149bool shouldResetHistory() const;150void setShouldResetHistory( bool shouldResetHistory );151152MTL::Texture* outputTexture() const;153void setOutputTexture( MTL::Texture* outputTexture );154155MTL::Fence* fence() const;156void setFence( MTL::Fence* fence );157158bool isDepthReversed() const;159void setDepthReversed( bool depthReversed );160};161162class FrameInterpolator : public NS::Referencing<FrameInterpolator, FrameInterpolatorBase>163{164public:165void encodeToCommandBuffer(MTL::CommandBuffer* commandBuffer);166};167168}169170//-------------------------------------------------------------------------------------------------------------------------------------------------------------171172_MTLFX_INLINE MTLFX::FrameInterpolatorDescriptor* MTLFX::FrameInterpolatorDescriptor::alloc()173{174return NS::Object::alloc< FrameInterpolatorDescriptor >( _MTLFX_PRIVATE_CLS( MTLFXFrameInterpolatorDescriptor ) );175}176177//-------------------------------------------------------------------------------------------------------------------------------------------------------------178179_MTLFX_INLINE MTLFX::FrameInterpolatorDescriptor* MTLFX::FrameInterpolatorDescriptor::init()180{181return NS::Object::init< FrameInterpolatorDescriptor >();182}183184//-------------------------------------------------------------------------------------------------------------------------------------------------------------185186_MTLFX_INLINE MTL::PixelFormat MTLFX::FrameInterpolatorDescriptor::colorTextureFormat() const187{188return NS::Object::sendMessage< MTL::PixelFormat >( this, _MTLFX_PRIVATE_SEL( colorTextureFormat ) );189}190191//-------------------------------------------------------------------------------------------------------------------------------------------------------------192193_MTLFX_INLINE void MTLFX::FrameInterpolatorDescriptor::setColorTextureFormat( MTL::PixelFormat colorTextureFormat )194{195return NS::Object::sendMessage< void >( this, _MTLFX_PRIVATE_SEL( setColorTextureFormat_ ), colorTextureFormat );196}197198//-------------------------------------------------------------------------------------------------------------------------------------------------------------199200_MTLFX_INLINE MTL::PixelFormat MTLFX::FrameInterpolatorDescriptor::outputTextureFormat() const201{202return NS::Object::sendMessage< MTL::PixelFormat >( this, _MTLFX_PRIVATE_SEL( outputTextureFormat ) );203}204205//-------------------------------------------------------------------------------------------------------------------------------------------------------------206207_MTLFX_INLINE void MTLFX::FrameInterpolatorDescriptor::setOutputTextureFormat( MTL::PixelFormat outputTextureFormat )208{209return NS::Object::sendMessage< void >( this, _MTLFX_PRIVATE_SEL( setOutputTextureFormat_ ), outputTextureFormat );210}211212//-------------------------------------------------------------------------------------------------------------------------------------------------------------213214_MTLFX_INLINE MTL::PixelFormat MTLFX::FrameInterpolatorDescriptor::depthTextureFormat() const215{216return NS::Object::sendMessage< MTL::PixelFormat >( this, _MTLFX_PRIVATE_SEL( depthTextureFormat ) );217}218219//-------------------------------------------------------------------------------------------------------------------------------------------------------------220221_MTLFX_INLINE void MTLFX::FrameInterpolatorDescriptor::setDepthTextureFormat( MTL::PixelFormat depthTextureFormat )222{223return NS::Object::sendMessage< void >( this, _MTLFX_PRIVATE_SEL( setDepthTextureFormat_ ), depthTextureFormat );224}225226//-------------------------------------------------------------------------------------------------------------------------------------------------------------227228_MTLFX_INLINE MTL::PixelFormat MTLFX::FrameInterpolatorDescriptor::motionTextureFormat() const229{230return NS::Object::sendMessage< MTL::PixelFormat >( this, _MTLFX_PRIVATE_SEL( motionTextureFormat ) );231}232233//-------------------------------------------------------------------------------------------------------------------------------------------------------------234235_MTLFX_INLINE void MTLFX::FrameInterpolatorDescriptor::setMotionTextureFormat( MTL::PixelFormat motionTextureFormat )236{237return NS::Object::sendMessage< void >( this, _MTLFX_PRIVATE_SEL( setMotionTextureFormat_ ), motionTextureFormat );238}239240//-------------------------------------------------------------------------------------------------------------------------------------------------------------241242_MTLFX_INLINE MTL::PixelFormat MTLFX::FrameInterpolatorDescriptor::uiTextureFormat() const243{244return NS::Object::sendMessage< MTL::PixelFormat >( this, _MTLFX_PRIVATE_SEL( uiTextureFormat ) );245}246247//-------------------------------------------------------------------------------------------------------------------------------------------------------------248249_MTLFX_INLINE void MTLFX::FrameInterpolatorDescriptor::setUITextureFormat( MTL::PixelFormat uiTextureFormat )250{251return NS::Object::sendMessage< void >( this, _MTLFX_PRIVATE_SEL( setUITextureFormat_ ), uiTextureFormat );252}253254//-------------------------------------------------------------------------------------------------------------------------------------------------------------255256_MTLFX_INLINE MTLFX::FrameInterpolatableScaler* MTLFX::FrameInterpolatorDescriptor::scaler() const257{258return NS::Object::sendMessage< MTLFX::FrameInterpolatableScaler* >( this, _MTLFX_PRIVATE_SEL( scaler ) );259}260261_MTLFX_INLINE void MTLFX::FrameInterpolatorDescriptor::setScaler(MTLFX::FrameInterpolatableScaler* scaler)262{263NS::Object::sendMessage< void >(this, _MTLFX_PRIVATE_SEL( setScaler_ ), scaler );264}265266//-------------------------------------------------------------------------------------------------------------------------------------------------------------267268_MTLFX_INLINE NS::UInteger MTLFX::FrameInterpolatorDescriptor::inputWidth() const269{270return NS::Object::sendMessage< NS::UInteger >( this, _MTLFX_PRIVATE_SEL( inputWidth ) );271}272273//-------------------------------------------------------------------------------------------------------------------------------------------------------------274275_MTLFX_INLINE void MTLFX::FrameInterpolatorDescriptor::setInputWidth( NS::UInteger inputWidth )276{277NS::Object::sendMessage< void >( this, _MTLFX_PRIVATE_SEL( setInputWidth_ ), inputWidth );278}279280//-------------------------------------------------------------------------------------------------------------------------------------------------------------281282_MTLFX_INLINE NS::UInteger MTLFX::FrameInterpolatorDescriptor::inputHeight() const283{284return NS::Object::sendMessage< NS::UInteger >( this, _MTLFX_PRIVATE_SEL( inputHeight ) );285}286287//-------------------------------------------------------------------------------------------------------------------------------------------------------------288289_MTLFX_INLINE void MTLFX::FrameInterpolatorDescriptor::setInputHeight( NS::UInteger inputHeight )290{291NS::Object::sendMessage< void >( this, _MTLFX_PRIVATE_SEL( setInputHeight_ ), inputHeight );292}293294//-------------------------------------------------------------------------------------------------------------------------------------------------------------295296_MTLFX_INLINE NS::UInteger MTLFX::FrameInterpolatorDescriptor::outputWidth() const297{298return NS::Object::sendMessage< NS::UInteger >( this, _MTLFX_PRIVATE_SEL( outputWidth ) );299}300301//-------------------------------------------------------------------------------------------------------------------------------------------------------------302303_MTLFX_INLINE void MTLFX::FrameInterpolatorDescriptor::setOutputWidth( NS::UInteger outputWidth )304{305NS::Object::sendMessage< void >( this, _MTLFX_PRIVATE_SEL( setOutputWidth_ ), outputWidth );306}307308//-------------------------------------------------------------------------------------------------------------------------------------------------------------309310_MTLFX_INLINE NS::UInteger MTLFX::FrameInterpolatorDescriptor::outputHeight() const311{312return NS::Object::sendMessage< NS::UInteger >( this, _MTLFX_PRIVATE_SEL( outputHeight ) );313}314315//-------------------------------------------------------------------------------------------------------------------------------------------------------------316317_MTLFX_INLINE void MTLFX::FrameInterpolatorDescriptor::setOutputHeight( NS::UInteger outputHeight )318{319NS::Object::sendMessage< void >( this, _MTLFX_PRIVATE_SEL( setOutputHeight_ ), outputHeight );320}321322//-------------------------------------------------------------------------------------------------------------------------------------------------------------323324_MTLFX_INLINE MTLFX::FrameInterpolator* MTLFX::FrameInterpolatorDescriptor::newFrameInterpolator( const MTL::Device* device ) const325{326return NS::Object::sendMessage< MTLFX::FrameInterpolator* >( this, _MTLFX_PRIVATE_SEL( newFrameInterpolatorWithDevice_ ), device );327}328329//-------------------------------------------------------------------------------------------------------------------------------------------------------------330331_MTLFX_INLINE MTL4FX::FrameInterpolator* MTLFX::FrameInterpolatorDescriptor::newFrameInterpolator( const MTL::Device* device, const MTL4::Compiler* compiler ) const332{333return NS::Object::sendMessage< MTL4FX::FrameInterpolator* >( this, _MTLFX_PRIVATE_SEL( newFrameInterpolatorWithDevice_compiler_ ), device, compiler );334}335336//-------------------------------------------------------------------------------------------------------------------------------------------------------------337338_MTLFX_INLINE bool MTLFX::FrameInterpolatorDescriptor::supportsMetal4FX(MTL::Device* device)339{340return NS::Object::sendMessageSafe< bool >( _MTLFX_PRIVATE_CLS(MTLFXFrameInterpolatorDescriptor), _MTLFX_PRIVATE_SEL( supportsMetal4FX_ ), device );341}342343//-------------------------------------------------------------------------------------------------------------------------------------------------------------344345_MTLFX_INLINE bool MTLFX::FrameInterpolatorDescriptor::supportsDevice(MTL::Device* device)346{347return NS::Object::sendMessageSafe< bool >( _MTLFX_PRIVATE_CLS(MTLFXFrameInterpolatorDescriptor), _MTLFX_PRIVATE_SEL( supportsDevice_ ), device );348}349350351//-------------------------------------------------------------------------------------------------------------------------------------------------------------352353_MTLFX_INLINE MTL::TextureUsage MTLFX::FrameInterpolatorBase::colorTextureUsage() const354{355return NS::Object::sendMessage< MTL::TextureUsage >( this, _MTLFX_PRIVATE_SEL( colorTextureUsage ) );356}357358//-------------------------------------------------------------------------------------------------------------------------------------------------------------359360_MTLFX_INLINE MTL::TextureUsage MTLFX::FrameInterpolatorBase::outputTextureUsage() const361{362return NS::Object::sendMessage< MTL::TextureUsage >( this, _MTLFX_PRIVATE_SEL( outputTextureUsage ) );363}364365//-------------------------------------------------------------------------------------------------------------------------------------------------------------366367_MTLFX_INLINE MTL::TextureUsage MTLFX::FrameInterpolatorBase::depthTextureUsage() const368{369return NS::Object::sendMessage< MTL::TextureUsage >( this, _MTLFX_PRIVATE_SEL( depthTextureUsage ) );370}371372//-------------------------------------------------------------------------------------------------------------------------------------------------------------373374_MTLFX_INLINE MTL::TextureUsage MTLFX::FrameInterpolatorBase::motionTextureUsage() const375{376return NS::Object::sendMessage< MTL::TextureUsage >( this, _MTLFX_PRIVATE_SEL( motionTextureUsage ) );377}378379//-------------------------------------------------------------------------------------------------------------------------------------------------------------380381_MTLFX_INLINE MTL::TextureUsage MTLFX::FrameInterpolatorBase::uiTextureUsage() const382{383return NS::Object::sendMessage< MTL::TextureUsage >( this, _MTLFX_PRIVATE_SEL( uiTextureUsage ) );384}385386//-------------------------------------------------------------------------------------------------------------------------------------------------------------387388_MTLFX_INLINE MTL::PixelFormat MTLFX::FrameInterpolatorBase::colorTextureFormat() const389{390return NS::Object::sendMessage< MTL::PixelFormat >( this, _MTLFX_PRIVATE_SEL( colorTextureFormat ) );391}392393//-------------------------------------------------------------------------------------------------------------------------------------------------------------394395_MTLFX_INLINE MTL::PixelFormat MTLFX::FrameInterpolatorBase::depthTextureFormat() const396{397return NS::Object::sendMessage< MTL::PixelFormat >( this, _MTLFX_PRIVATE_SEL( depthTextureFormat ) );398}399400//-------------------------------------------------------------------------------------------------------------------------------------------------------------401402_MTLFX_INLINE MTL::PixelFormat MTLFX::FrameInterpolatorBase::motionTextureFormat() const403{404return NS::Object::sendMessage< MTL::PixelFormat >( this, _MTLFX_PRIVATE_SEL( motionTextureFormat ) );405}406407//-------------------------------------------------------------------------------------------------------------------------------------------------------------408409_MTLFX_INLINE MTL::PixelFormat MTLFX::FrameInterpolatorBase::outputTextureFormat() const410{411return NS::Object::sendMessage< MTL::PixelFormat >( this, _MTLFX_PRIVATE_SEL( outputTextureFormat ) );412}413414//-------------------------------------------------------------------------------------------------------------------------------------------------------------415416_MTLFX_INLINE NS::UInteger MTLFX::FrameInterpolatorBase::inputWidth() const417{418return NS::Object::sendMessage< NS::UInteger >( this, _MTLFX_PRIVATE_SEL( inputWidth ) );419}420421//-------------------------------------------------------------------------------------------------------------------------------------------------------------422423_MTLFX_INLINE NS::UInteger MTLFX::FrameInterpolatorBase::inputHeight() const424{425return NS::Object::sendMessage< NS::UInteger >( this, _MTLFX_PRIVATE_SEL( inputHeight ) );426}427428//-------------------------------------------------------------------------------------------------------------------------------------------------------------429430_MTLFX_INLINE NS::UInteger MTLFX::FrameInterpolatorBase::outputWidth() const431{432return NS::Object::sendMessage< NS::UInteger >( this, _MTLFX_PRIVATE_SEL( outputWidth ) );433}434435//-------------------------------------------------------------------------------------------------------------------------------------------------------------436437_MTLFX_INLINE NS::UInteger MTLFX::FrameInterpolatorBase::outputHeight() const438{439return NS::Object::sendMessage< NS::UInteger >( this, _MTLFX_PRIVATE_SEL( outputHeight ) );440}441442//-------------------------------------------------------------------------------------------------------------------------------------------------------------443444_MTLFX_INLINE MTL::PixelFormat MTLFX::FrameInterpolatorBase::uiTextureFormat() const445{446return NS::Object::sendMessage< MTL::PixelFormat >( this, _MTLFX_PRIVATE_SEL( uiTextureFormat ) );447}448449//-------------------------------------------------------------------------------------------------------------------------------------------------------------450451_MTLFX_INLINE MTL::Texture* MTLFX::FrameInterpolatorBase::colorTexture() const452{453return NS::Object::sendMessage< MTL::Texture* >( this, _MTLFX_PRIVATE_SEL( colorTexture ) );454}455456//-------------------------------------------------------------------------------------------------------------------------------------------------------------457458_MTLFX_INLINE void MTLFX::FrameInterpolatorBase::setColorTexture(MTL::Texture* colorTexture)459{460return NS::Object::sendMessage< void >( this, _MTLFX_PRIVATE_SEL( setColorTexture_ ), colorTexture );461}462463//-------------------------------------------------------------------------------------------------------------------------------------------------------------464465_MTLFX_INLINE MTL::Texture* MTLFX::FrameInterpolatorBase::prevColorTexture() const466{467return NS::Object::sendMessage< MTL::Texture* >( this, _MTLFX_PRIVATE_SEL( prevColorTexture ) );468}469470//-------------------------------------------------------------------------------------------------------------------------------------------------------------471472_MTLFX_INLINE void MTLFX::FrameInterpolatorBase::setPrevColorTexture(MTL::Texture* prevColorTexture)473{474return NS::Object::sendMessage< void >( this, _MTLFX_PRIVATE_SEL( setPrevColorTexture_ ), prevColorTexture );475}476477//-------------------------------------------------------------------------------------------------------------------------------------------------------------478479_MTLFX_INLINE MTL::Texture* MTLFX::FrameInterpolatorBase::depthTexture() const480{481return NS::Object::sendMessage< MTL::Texture* >( this, _MTLFX_PRIVATE_SEL( depthTexture ) );482}483484//-------------------------------------------------------------------------------------------------------------------------------------------------------------485486_MTLFX_INLINE void MTLFX::FrameInterpolatorBase::setDepthTexture(MTL::Texture* depthTexture)487{488return NS::Object::sendMessage< void >( this, _MTLFX_PRIVATE_SEL( setDepthTexture_ ), depthTexture );489}490491//-------------------------------------------------------------------------------------------------------------------------------------------------------------492493_MTLFX_INLINE MTL::Texture* MTLFX::FrameInterpolatorBase::motionTexture() const494{495return NS::Object::sendMessage< MTL::Texture* >( this, _MTLFX_PRIVATE_SEL( motionTexture ) );496}497498//-------------------------------------------------------------------------------------------------------------------------------------------------------------499500_MTLFX_INLINE void MTLFX::FrameInterpolatorBase::setMotionTexture(MTL::Texture* motionTexture)501{502return NS::Object::sendMessage< void >( this, _MTLFX_PRIVATE_SEL( setMotionTexture_ ), motionTexture );503}504505//-------------------------------------------------------------------------------------------------------------------------------------------------------------506507_MTLFX_INLINE float MTLFX::FrameInterpolatorBase::motionVectorScaleX() const508{509return NS::Object::sendMessage< float >( this, _MTLFX_PRIVATE_SEL( motionVectorScaleX ) );510}511512//-------------------------------------------------------------------------------------------------------------------------------------------------------------513514_MTLFX_INLINE void MTLFX::FrameInterpolatorBase::setMotionVectorScaleX(float scaleX)515{516return NS::Object::sendMessage< void >( this, _MTLFX_PRIVATE_SEL( setMotionVectorScaleX_ ), scaleX );517}518519//-------------------------------------------------------------------------------------------------------------------------------------------------------------520521_MTLFX_INLINE float MTLFX::FrameInterpolatorBase::motionVectorScaleY() const522{523return NS::Object::sendMessage< float >( this, _MTLFX_PRIVATE_SEL( motionVectorScaleY ) );524}525526//-------------------------------------------------------------------------------------------------------------------------------------------------------------527528_MTLFX_INLINE void MTLFX::FrameInterpolatorBase::setMotionVectorScaleY(float scaleY)529{530return NS::Object::sendMessage< void >( this, _MTLFX_PRIVATE_SEL( setMotionVectorScaleY_ ), scaleY );531}532533//-------------------------------------------------------------------------------------------------------------------------------------------------------------534535_MTLFX_INLINE float MTLFX::FrameInterpolatorBase::deltaTime() const536{537return NS::Object::sendMessage< float >( this, _MTLFX_PRIVATE_SEL( deltaTime ) );538}539540//-------------------------------------------------------------------------------------------------------------------------------------------------------------541542_MTLFX_INLINE void MTLFX::FrameInterpolatorBase::setDeltaTime( float deltaTime )543{544return NS::Object::sendMessage< void >( this, _MTLFX_PRIVATE_SEL( setDeltaTime_ ), deltaTime );545}546547//-------------------------------------------------------------------------------------------------------------------------------------------------------------548549_MTLFX_INLINE float MTLFX::FrameInterpolatorBase::nearPlane() const550{551return NS::Object::sendMessage< float >( this, _MTLFX_PRIVATE_SEL( nearPlane ) );552}553554//-------------------------------------------------------------------------------------------------------------------------------------------------------------555556_MTLFX_INLINE void MTLFX::FrameInterpolatorBase::setNearPlane( float nearPlane )557{558NS::Object::sendMessage< void >( this, _MTLFX_PRIVATE_SEL( setNearPlane_ ), nearPlane );559}560561//-------------------------------------------------------------------------------------------------------------------------------------------------------------562563_MTLFX_INLINE float MTLFX::FrameInterpolatorBase::farPlane() const564{565return NS::Object::sendMessage< float >( this, _MTLFX_PRIVATE_SEL( farPlane ) );566}567568//-------------------------------------------------------------------------------------------------------------------------------------------------------------569570_MTLFX_INLINE void MTLFX::FrameInterpolatorBase::setFarPlane( float farPlane )571{572NS::Object::sendMessage< void >( this, _MTLFX_PRIVATE_SEL( setFarPlane_ ), farPlane );573}574575//-------------------------------------------------------------------------------------------------------------------------------------------------------------576577_MTLFX_INLINE float MTLFX::FrameInterpolatorBase::fieldOfView() const578{579return NS::Object::sendMessage< float >( this, _MTLFX_PRIVATE_SEL( fieldOfView ) );580}581582//-------------------------------------------------------------------------------------------------------------------------------------------------------------583584_MTLFX_INLINE void MTLFX::FrameInterpolatorBase::setFieldOfView( float fieldOfView )585{586NS::Object::sendMessage< void >( this, _MTLFX_PRIVATE_SEL( setFieldOfView_ ), fieldOfView );587}588589//-------------------------------------------------------------------------------------------------------------------------------------------------------------590591_MTLFX_INLINE float MTLFX::FrameInterpolatorBase::aspectRatio() const592{593return NS::Object::sendMessage< float >( this, _MTLFX_PRIVATE_SEL( aspectRatio ) );594}595596//-------------------------------------------------------------------------------------------------------------------------------------------------------------597598_MTLFX_INLINE void MTLFX::FrameInterpolatorBase::setAspectRatio( float aspectRatio )599{600NS::Object::sendMessage< void >( this, _MTLFX_PRIVATE_SEL( setAspectRatio_ ), aspectRatio );601}602603//-------------------------------------------------------------------------------------------------------------------------------------------------------------604605_MTLFX_INLINE MTL::Texture* MTLFX::FrameInterpolatorBase::uiTexture() const606{607return NS::Object::sendMessage< MTL::Texture* >( this, _MTLFX_PRIVATE_SEL( uiTexture ) );608}609610//-------------------------------------------------------------------------------------------------------------------------------------------------------------611612_MTLFX_INLINE void MTLFX::FrameInterpolatorBase::setUITexture(MTL::Texture* uiTexture)613{614return NS::Object::sendMessage< void >( this, _MTLFX_PRIVATE_SEL( setUITexture_ ), uiTexture );615}616617//-------------------------------------------------------------------------------------------------------------------------------------------------------------618619_MTLFX_INLINE float MTLFX::FrameInterpolatorBase::jitterOffsetX() const620{621return NS::Object::sendMessage< float >( this, _MTLFX_PRIVATE_SEL( jitterOffsetX ) );622}623624//-------------------------------------------------------------------------------------------------------------------------------------------------------------625626_MTLFX_INLINE void MTLFX::FrameInterpolatorBase::setJitterOffsetX( float jitterOffsetX )627{628NS::Object::sendMessage< void >( this, _MTLFX_PRIVATE_SEL( setJitterOffsetX_ ), jitterOffsetX );629}630631//-------------------------------------------------------------------------------------------------------------------------------------------------------------632633_MTLFX_INLINE float MTLFX::FrameInterpolatorBase::jitterOffsetY() const634{635return NS::Object::sendMessage< float >( this, _MTLFX_PRIVATE_SEL( jitterOffsetY ) );636}637638//-------------------------------------------------------------------------------------------------------------------------------------------------------------639640_MTLFX_INLINE void MTLFX::FrameInterpolatorBase::setJitterOffsetY( float jitterOffsetY )641{642NS::Object::sendMessage< void >( this, _MTLFX_PRIVATE_SEL( setJitterOffsetY_ ), jitterOffsetY );643}644645//-------------------------------------------------------------------------------------------------------------------------------------------------------------646647_MTLFX_INLINE bool MTLFX::FrameInterpolatorBase::isUITextureComposited() const648{649return NS::Object::sendMessage< bool >( this, _MTLFX_PRIVATE_SEL( isUITextureComposited ) );650}651652_MTLFX_INLINE void MTLFX::FrameInterpolatorBase::setIsUITextureComposited( bool uiTextureComposited )653{654NS::Object::sendMessage< void >( this, _MTLFX_PRIVATE_SEL( setIsUITextureComposited_ ), uiTextureComposited );655}656657//-------------------------------------------------------------------------------------------------------------------------------------------------------------658659_MTLFX_INLINE bool MTLFX::FrameInterpolatorBase::shouldResetHistory() const660{661return NS::Object::sendMessage< bool >( this, _MTLFX_PRIVATE_SEL( shouldResetHistory ) );662}663664//-------------------------------------------------------------------------------------------------------------------------------------------------------------665666_MTLFX_INLINE void MTLFX::FrameInterpolatorBase::setShouldResetHistory(bool shouldResetHistory)667{668return NS::Object::sendMessage< void >( this, _MTLFX_PRIVATE_SEL( setShouldResetHistory_ ), shouldResetHistory );669}670671//-------------------------------------------------------------------------------------------------------------------------------------------------------------672673_MTLFX_INLINE MTL::Texture* MTLFX::FrameInterpolatorBase::outputTexture() const674{675return NS::Object::sendMessage< MTL::Texture* >( this, _MTLFX_PRIVATE_SEL( outputTexture ) );676}677678//-------------------------------------------------------------------------------------------------------------------------------------------------------------679680_MTLFX_INLINE void MTLFX::FrameInterpolatorBase::setOutputTexture(MTL::Texture* outputTexture)681{682return NS::Object::sendMessage< void >( this, _MTLFX_PRIVATE_SEL( setOutputTexture_ ), outputTexture );683}684685//-------------------------------------------------------------------------------------------------------------------------------------------------------------686687_MTLFX_INLINE MTL::Fence* MTLFX::FrameInterpolatorBase::fence() const688{689return NS::Object::sendMessage< MTL::Fence* >( this, _MTLFX_PRIVATE_SEL( fence ) );690}691692//-------------------------------------------------------------------------------------------------------------------------------------------------------------693694_MTLFX_INLINE void MTLFX::FrameInterpolatorBase::setFence(MTL::Fence* fence)695{696return NS::Object::sendMessage< void >( this, _MTLFX_PRIVATE_SEL( setFence_ ), fence );697}698699//-------------------------------------------------------------------------------------------------------------------------------------------------------------700701_MTLFX_INLINE bool MTLFX::FrameInterpolatorBase::isDepthReversed() const702{703return NS::Object::sendMessage< bool >( this, _MTLFX_PRIVATE_SEL( isDepthReversed ) );704}705706//-------------------------------------------------------------------------------------------------------------------------------------------------------------707708_MTLFX_INLINE void MTLFX::FrameInterpolatorBase::setDepthReversed(bool depthReversed)709{710return NS::Object::sendMessage< void >( this, _MTLFX_PRIVATE_SEL( setDepthReversed_ ), depthReversed );711}712713//-------------------------------------------------------------------------------------------------------------------------------------------------------------714715_MTLFX_INLINE void MTLFX::FrameInterpolator::encodeToCommandBuffer(MTL::CommandBuffer* commandBuffer)716{717return NS::Object::sendMessage< void >( this, _MTLFX_PRIVATE_SEL( encodeToCommandBuffer_ ), commandBuffer );718}719720721