#include using namespace metal; template struct tint_array { const constant T& operator[](size_t i) const constant { return elements[i]; } device T& operator[](size_t i) device { return elements[i]; } const device T& operator[](size_t i) const device { return elements[i]; } thread T& operator[](size_t i) thread { return elements[i]; } const thread T& operator[](size_t i) const thread { return elements[i]; } threadgroup T& operator[](size_t i) threadgroup { return elements[i]; } const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; } T elements[N]; }; struct tint_packed_vec3_f32_array_element { packed_float3 elements; }; struct GammaTransferParams { float G; float A; float B; float C; float D; float E; float F; uint padding; }; struct ExternalTextureParams_tint_packed_vec3 { uint numPlanes; uint doYuvToRgbConversionOnly; float3x4 yuvToRgbConversionMatrix; GammaTransferParams gammaDecodeParams; GammaTransferParams gammaEncodeParams; tint_array gamutConversionMatrix; float3x2 coordTransformationMatrix; }; struct ExternalTextureParams { uint numPlanes; uint doYuvToRgbConversionOnly; float3x4 yuvToRgbConversionMatrix; GammaTransferParams gammaDecodeParams; GammaTransferParams gammaEncodeParams; float3x3 gamutConversionMatrix; float3x2 coordTransformationMatrix; }; void textureDimensions_cdc6c9(texture2d tint_symbol_1, device uint2* const tint_symbol_2) { uint2 res = uint2(tint_symbol_1.get_width(), tint_symbol_1.get_height()); *(tint_symbol_2) = res; } struct tint_symbol { float4 value [[position]]; }; float4 vertex_main_inner(texture2d tint_symbol_3, device uint2* const tint_symbol_4) { textureDimensions_cdc6c9(tint_symbol_3, tint_symbol_4); return float4(0.0f); } vertex tint_symbol vertex_main(texture2d tint_symbol_5 [[texture(0)]], device uint2* tint_symbol_6 [[buffer(0)]]) { float4 const inner_result = vertex_main_inner(tint_symbol_5, tint_symbol_6); tint_symbol wrapper_result = {}; wrapper_result.value = inner_result; return wrapper_result; } fragment void fragment_main(texture2d tint_symbol_7 [[texture(0)]], device uint2* tint_symbol_8 [[buffer(0)]]) { textureDimensions_cdc6c9(tint_symbol_7, tint_symbol_8); return; } kernel void compute_main(texture2d tint_symbol_9 [[texture(0)]], device uint2* tint_symbol_10 [[buffer(0)]]) { textureDimensions_cdc6c9(tint_symbol_9, tint_symbol_10); return; }