@class BackwardDmShader, NSMutableData; @protocol MTLSamplerState, MTLLibrary, MTLTexture, MTLBuffer, MTLDeviceSPI; @interface HDRBackwardDisplayManagement : NSObject { unsigned long long _frameIndex; id _device; id _defaultLibrary; BackwardDmShader *_BKDM_ARGB_Linear; BackwardDmShader *_BKDM_3Plane_2Pixel_PTV[12]; BackwardDmShader *_BKDM_3Plane_1Pixel_PTV[12]; BackwardDmShader *_BKDM_3Plane_2Pixel_UIBlending_PTV[12]; BackwardDmShader *_BKDM_3Plane_1Pixel_UIBlending_PTV[12]; BackwardDmShader *_BKDM_3Plane_2Pixel_Linear[12]; BackwardDmShader *_BKDM_3Plane_1Pixel_Linear[12]; BackwardDmShader *_BKDM_3Plane_1Pixel_Gamma[12]; BackwardDmShader *_BKDM_3Plane_1Pixel_Gamma_Scaled[12]; BackwardDmShader *_BKDM_3Plane_1Pixel_Gamma_Scaled_Inverse_HLGOOTF[12]; BackwardDmShader *_BKDM_3Plane_1Pixel_Gamma_Scaled_Inverse_YScale[12]; BackwardDmShader *_BKDM_3Plane_1Pixel_Video_Scaled[12]; BackwardDmShader *_BKDM_3Plane_1Pixel_Video_Scaled_Inverse_HLGOOTF[12]; BackwardDmShader *_BKDM_3Plane_1Pixel_Video_Scaled_Inverse_YScale[12]; BackwardDmShader *_BKDM_3Plane_1Pixel_Video_HDR10; BackwardDmShader *_BKDM_3Plane_2Pixel_Video_HDR10; BackwardDmShader *_BKDM_3Plane_2Pixel_Gamma_Scaled[12]; BackwardDmShader *_BKDM_3Plane_2Pixel_Video_Scaled[12]; BackwardDmShader *_BKDM_SDRUIOnly_ShaderDegamma[12]; BackwardDmShader *_BKDM_SDRUIOnly[12]; BackwardDmShader *_BKDM_SDRVideoOnly[12]; BackwardDmShader *_BKDM_SDRVideoUIBlending[12]; BackwardDmShader *_BKDM_SDRUIBlending[12]; BackwardDmShader *_colorfill1[12]; BackwardDmShader *_colorfill2[12]; BackwardDmShader *_fillUI1ForHDR[12]; BackwardDmShader *_fillUI1SDR24[12]; BackwardDmShader *_fillUI2ForHDR[12]; BackwardDmShader *_metadataKernel; BackwardDmShader *_metadataKernel2Pixel; id _inputSampler; id _pq2LTable; id _l2PQTable; id _inverseScalingFactorTableTexture; id _inverseScalingFactorTableTextures[3]; NSMutableData *_inverseScalingTable; id _sdrScalingFactorTableTexture; id _yuvScalingFactorTableTexture; id _yuvScalingFactorTableTextures[3]; unsigned int _indexOfyuvScalingFactorTableTexture; NSMutableData *_sdrScalingTable; NSMutableData *_yuvScalingTable; float _cached_target_white; float _cached_target_black; float _cached_source_white; float _cached_source_black; BOOL _cached_scaling_factor; float _prev_SlopeScaled; float _prev_c1; float _prev_c2; float _prev_c3; id _uniformBuffer; id _uniformBuffers[3]; id _vertsBuffer; id _vertsBuf; id _vertsBufs[3]; int _num_Blend_Rects[3]; int _num_Video_Rects[3]; int _num_UI_Rects[3]; int _num_ColorFill_Rects[3]; struct { struct { unsigned int x; unsigned int y; } origin; struct { unsigned int width; unsigned int height; } size; } _cachedFullRegion; struct { struct { unsigned int x; unsigned int y; } origin; struct { unsigned int width; unsigned int height; } size; } _cachedVideoDstRegion[3]; struct { struct { unsigned int x; unsigned int y; } origin; struct { unsigned int width; unsigned int height; } size; } _cachedVideoSrcRegion[3]; struct { struct { unsigned int x; unsigned int y; } origin; struct { unsigned int width; unsigned int height; } size; } _cachedUIDstRegion[3]; struct { struct { unsigned int x; unsigned int y; } origin; struct { unsigned int width; unsigned int height; } size; } _cachedUISrcRegion[3]; unsigned int _cached_videoInputFormat; unsigned int _cached_uiInputFormat; id _metadataVertexBuffer; int _metadataSpanCount[5]; int _width; int _height; int _targetWidth; int _targetHeight; id _metadataTexture[5]; id _metadataTextures[3][5]; id _inputTexture[3]; id _outputTexture; id _outputTextureMetadata; id _intermediateTexture; id _uiTexture; long long _callerApiVersion; float _uiEDRFactor; float _inputScaleFactor; unsigned int _displayMaxBrightnessInNits; unsigned int _displayMaxBrightnessInNitsForSDR; float _displayMinBrightnessInNits; BOOL _hasDisplayBrightnessFromEDID; unsigned int _displayType; unsigned int _outputPackingColorFormat; unsigned int _inverseScalingTableIndex; BOOL _useAccessibilityMatrix; struct { float parameter[3][3]; } _cachedHDRMatrix; float _709toPanelPrimaryMatrix[9]; } - (void)initWithDevice:(id)a0; - (void).cxx_destruct; - (void)createKernels; - (long long)encodeToCommandBuffer:(id)a0 video:(struct __IOSurface { } *)a1 videoSrcRegion:(struct { struct { unsigned int x0; unsigned int x1; } x0; struct { unsigned int x0; unsigned int x1; } x1; })a2 videoDstRegion:(struct { struct { unsigned int x0; unsigned int x1; } x0; struct { unsigned int x0; unsigned int x1; } x1; })a3 ui:(struct __IOSurface { } *)a4 uiSrcRegion:(struct { struct { unsigned int x0; unsigned int x1; } x0; struct { unsigned int x0; unsigned int x1; } x1; })a5 uiDstRegion:(struct { struct { unsigned int x0; unsigned int x1; } x0; struct { unsigned int x0; unsigned int x1; } x1; })a6 backgroundColor:(struct { double x0; double x1; double x2; double x3; } *)a7 output:(struct __IOSurface { } *)a8 frameProperties:(id)a9; - (id)initWithDevice:(id)a0 displayProperties:(id)a1; - (long long)setAccessibilityMatrix:(struct { float x0[3][3]; } *)a0; - (void)setupMetal; - (long long)EncodeToCommandBuffer:(id)a0 inputSurface:(struct __IOSurface { } *)a1 uiSurface:(struct __IOSurface { } *)a2 outputSurface:(struct __IOSurface { } *)a3 frameProperties:(id)a4; - (void)createInverseScalingFactorTable; - (void)createPQ2LTable; - (void)generateMetaAndConfig:(id)a0 inputSurface:(struct __IOSurface { } *)a1 outputSurface:(struct __IOSurface { } *)a2 payLoad:(struct **)a3 dmCfg:(struct **)a4; - (void)createL2PQTable; - (void)setupMetadataTextureWithOutput:(struct __IOSurface { } *)a0; - (int)adjustMetaData:(struct { unsigned char x0; unsigned char x1; unsigned char x2; unsigned char x3; unsigned char x4; unsigned char x5; unsigned char x6; unsigned char x7; unsigned char x8; unsigned char x9; unsigned char x10; unsigned char x11; unsigned char x12; unsigned char x13; unsigned char x14; unsigned char x15; unsigned char x16; unsigned char x17; unsigned char x18; unsigned char x19; unsigned char x20; unsigned char x21; unsigned char x22; unsigned char x23; unsigned char x24; unsigned char x25; unsigned char x26; unsigned char x27; unsigned char x28; unsigned char x29; unsigned char x30; unsigned char x31; unsigned char x32; unsigned char x33; unsigned char x34; unsigned char x35; unsigned char x36; unsigned char x37; unsigned char x38; unsigned char x39; unsigned char x40; unsigned char x41; unsigned char x42; unsigned char x43; unsigned char x44; unsigned char x45; unsigned char x46; unsigned char x47; unsigned char x48; unsigned char x49; unsigned char x50; unsigned char x51; unsigned char x52; unsigned char x53; unsigned char x54; unsigned char x55; unsigned char x56; unsigned char x57; unsigned char x58; unsigned char x59; unsigned char x60; unsigned char x61; unsigned char x62; unsigned char x63; unsigned char x64; unsigned char x65; unsigned char x66; unsigned char x67; unsigned char x68; unsigned char x69; unsigned char x70; struct { unsigned char x0; unsigned char x1; unsigned char x2; unsigned char x3; unsigned char x4; unsigned char x5; unsigned char x6; unsigned char x7; unsigned char x8; unsigned char x9; unsigned char x10; } x71; unsigned char x72[525]; } *)a0 HDRUIBlending:(BOOL)a1 hasLetterbox:(BOOL)a2; - (float)adjustUiScaleForDoViToHDR10Conversion:(float)a0; - (void)attatchInfoFrame:(struct { float x0; float x1; float x2; float x3; float x4[9]; float x5[9]; float x6[9]; float x7[9]; float x8[9]; float x9[3]; float x10[3]; float x11; unsigned int x12; unsigned int x13; unsigned int x14; float x15; unsigned int x16; float x17; struct { unsigned short x0; unsigned short x1; unsigned short x2; unsigned short x3; unsigned short x4; unsigned short x5; unsigned short x6; unsigned short x7; unsigned int x8; unsigned int x9; } x18; struct { unsigned short x0; unsigned short x1; } x19; unsigned int x20; unsigned char x21 : 1; BOOL x22; int x23; } *)a0 toOutputSurface:(struct __IOSurface { } *)a1; - (void)createBuffers; - (void)createMetadataTexture; - (void)createMetadataVertexBuffer; - (id)createRenderCommandEncoderWithCommandBuffer:(id)a0 texture:(id)a1 widthScale:(unsigned int)a2 loadAction:(unsigned long long)a3; - (void)createSDRScalingFactorTable; - (void)createSamplers; - (id)createShaderWithVertexName:(id)a0 fragmentName:(id)a1 colorFormat:(unsigned long long)a2 useCustomMatrix:(BOOL)a3 p3CSC:(BOOL)a4 applyYGamma:(BOOL)a5; - (void)createYUVScalingFactorTable; - (void)drawMetaWithEncoder:(id)a0 widthScale:(int)a1 dmPayLoadLength:(int)a2; - (long long)encodeToCommandBuffer:(id)a0 inputSurface:(struct __IOSurface { } *)a1 outputSurface:(struct __IOSurface { } *)a2 frameProperties:(id)a3; - (long long)encodeToCommandBuffer:(id)a0 video:(struct __IOSurface { } *)a1 ui:(struct __IOSurface { } *)a2 output:(struct __IOSurface { } *)a3 frameProperties:(id)a4; - (long long)encodeToCommandBuffer:(id)a0 video:(struct __IOSurface { } *)a1 videoSrcRegion:(struct { struct { unsigned int x0; unsigned int x1; } x0; struct { unsigned int x0; unsigned int x1; } x1; })a2 videoDstRegion:(struct { struct { unsigned int x0; unsigned int x1; } x0; struct { unsigned int x0; unsigned int x1; } x1; })a3 ui:(struct __IOSurface { } *)a4 output:(struct __IOSurface { } *)a5 frameProperties:(id)a6; - (void)fillInverseScalingFactorTableFromDMConfig:(struct { float x0; float x1; float x2; float x3; float x4[9]; float x5[9]; float x6[9]; float x7[9]; float x8[9]; float x9[3]; float x10[3]; float x11; unsigned int x12; unsigned int x13; unsigned int x14; float x15; unsigned int x16; float x17; struct { unsigned short x0; unsigned short x1; unsigned short x2; unsigned short x3; unsigned short x4; unsigned short x5; unsigned short x6; unsigned short x7; unsigned int x8; unsigned int x9; } x18; struct { unsigned short x0; unsigned short x1; } x19; unsigned int x20; unsigned char x21 : 1; BOOL x22; int x23; } *)a0; - (void)fillScalingTable_SDR2HDR:(struct { float x0; float x1; float x2; float x3; float x4[9]; float x5[9]; float x6[9]; float x7[9]; float x8[9]; float x9[3]; float x10[3]; float x11; unsigned int x12; unsigned int x13; unsigned int x14; float x15; unsigned int x16; float x17; struct { unsigned short x0; unsigned short x1; unsigned short x2; unsigned short x3; unsigned short x4; unsigned short x5; unsigned short x6; unsigned short x7; unsigned int x8; unsigned int x9; } x18; struct { unsigned short x0; unsigned short x1; } x19; unsigned int x20; unsigned char x21 : 1; BOOL x22; int x23; } *)a0 target_White:(float)a1 target_Black:(float)a2; - (void)fillScalingTable_YUVTM:(struct { float x0; float x1; float x2; float x3; float x4[9]; float x5[9]; float x6[9]; float x7[9]; float x8[9]; float x9[3]; float x10[3]; float x11; unsigned int x12; unsigned int x13; unsigned int x14; float x15; unsigned int x16; float x17; struct { unsigned short x0; unsigned short x1; unsigned short x2; unsigned short x3; unsigned short x4; unsigned short x5; unsigned short x6; unsigned short x7; unsigned int x8; unsigned int x9; } x18; struct { unsigned short x0; unsigned short x1; } x19; unsigned int x20; unsigned char x21 : 1; BOOL x22; int x23; } *)a0 targetwhite:(float)a1 targetblack:(float)a2 satBoost:(float)a3 scalingFactor:(BOOL)a4 sdrOnly:(BOOL)a5; - (unsigned int)getPackagingColorFormatFromDictionary:(id)a0 withDefaultValue:(unsigned int)a1; - (unsigned long long)getPixelFormatFromSurface:(struct __IOSurface { } *)a0 DeGamma:(BOOL)a1 forceUseOnePlane:(BOOL)a2 default:(unsigned long long)a3; - (id)getRenderPipelineStateForShader:(id)a0; - (int)getTVIndex:(BOOL)a0; - (void)handleMetaInsertion:(BOOL)a0 encoder:(id)a1 widthScale:(int)a2 payloadLength:(unsigned int)a3; - (void)initDisplayAttributes:(id)a0; - (BOOL)inputIsSDRVideoFormat:(struct __IOSurface { } *)a0; - (BOOL)inputIsVideoOnly:(struct __IOSurface { } *)a0 inputUI:(struct __IOSurface { } *)a1; - (void)packetizeMetadata:(struct { unsigned char x0; unsigned char x1; unsigned char x2; unsigned char x3; unsigned char x4; unsigned char x5; unsigned char x6; unsigned char x7; unsigned char x8; unsigned char x9; unsigned char x10; unsigned char x11; unsigned char x12; unsigned char x13; unsigned char x14; unsigned char x15; unsigned char x16; unsigned char x17; unsigned char x18; unsigned char x19; unsigned char x20; unsigned char x21; unsigned char x22; unsigned char x23; unsigned char x24; unsigned char x25; unsigned char x26; unsigned char x27; unsigned char x28; unsigned char x29; unsigned char x30; unsigned char x31; unsigned char x32; unsigned char x33; unsigned char x34; unsigned char x35; unsigned char x36; unsigned char x37; unsigned char x38; unsigned char x39; unsigned char x40; unsigned char x41; unsigned char x42; unsigned char x43; unsigned char x44; unsigned char x45; unsigned char x46; unsigned char x47; unsigned char x48; unsigned char x49; unsigned char x50; unsigned char x51; unsigned char x52; unsigned char x53; unsigned char x54; unsigned char x55; unsigned char x56; unsigned char x57; unsigned char x58; unsigned char x59; unsigned char x60; unsigned char x61; unsigned char x62; unsigned char x63; unsigned char x64; unsigned char x65; unsigned char x66; unsigned char x67; unsigned char x68; unsigned char x69; unsigned char x70; struct { unsigned char x0; unsigned char x1; unsigned char x2; unsigned char x3; unsigned char x4; unsigned char x5; unsigned char x6; unsigned char x7; unsigned char x8; unsigned char x9; unsigned char x10; } x71; unsigned char x72[525]; } *)a0 length:(int)a1 into:(int)a2 onSurface:(struct __IOSurface { } *)a3; - (int)pixelNumPerThreadFullScreen:(BOOL)a0 videoInput:(struct __IOSurface { } *)a1 UI:(struct __IOSurface { } *)a2 Output:(struct __IOSurface { } *)a3 widthScaling:(BOOL)a4; - (void)setupTexturesWithInput:(struct __IOSurface { } *)a0 VideoSRGB:(BOOL)a1 UI:(struct __IOSurface { } *)a2 UISRGB:(BOOL)a3 Output:(struct __IOSurface { } *)a4 PixelPerThread:(int)a5 ptvMode:(BOOL)a6; - (BOOL)updateConfigFromMetadata:(struct { float x0; float x1; float x2; float x3; float x4[9]; float x5[9]; float x6[9]; float x7[9]; float x8[9]; float x9[3]; float x10[3]; float x11; unsigned int x12; unsigned int x13; unsigned int x14; float x15; unsigned int x16; float x17; struct { unsigned short x0; unsigned short x1; unsigned short x2; unsigned short x3; unsigned short x4; unsigned short x5; unsigned short x6; unsigned short x7; unsigned int x8; unsigned int x9; } x18; struct { unsigned short x0; unsigned short x1; } x19; unsigned int x20; unsigned char x21 : 1; BOOL x22; int x23; } *)a0 uiScaleFactor:(float)a1 width:(int)a2 background:(struct { double x0; double x1; double x2; double x3; } *)a3 hdrVideoOnly:(BOOL)a4 hdr10TV:(BOOL)a5 sdrOnly:(BOOL)a6; - (void)updateUniformUIScaleForVideo:(BOOL)a0 forTV:(BOOL)a1 videoPeakBrightnessInNits:(int)a2 uiHWDegamma:(BOOL)a3 dovi50toHDR10TVMode:(unsigned int)a4; - (void)updateVertices:(struct { struct { unsigned int x0; unsigned int x1; } x0; struct { unsigned int x0; unsigned int x1; } x1; })a0 videoInput:(struct __IOSurface { } *)a1 videoDstRegion:(struct { struct { unsigned int x0; unsigned int x1; } x0; struct { unsigned int x0; unsigned int x1; } x1; })a2 videoSrcRegion:(struct { struct { unsigned int x0; unsigned int x1; } x0; struct { unsigned int x0; unsigned int x1; } x1; })a3 uiInput:(struct __IOSurface { } *)a4 uiDstRegion:(struct { struct { unsigned int x0; unsigned int x1; } x0; struct { unsigned int x0; unsigned int x1; } x1; })a5 uiSrcRegion:(struct { struct { unsigned int x0; unsigned int x1; } x0; struct { unsigned int x0; unsigned int x1; } x1; })a6 dstWidth:(int)a7 dstHeight:(int)a8 videoSrcWidth:(int)a9 videoSrcHeight:(int)a10 index:(int)a11 scale:(int)a12; @end