using System; using System.Runtime.InteropServices; namespace X.Rendering.Feature { public static class RenderingPlugin { #if (PLATFORM_IOS || PLATFORM_TVOS || PLATFORM_BRATWURST || PLATFORM_SWITCH) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("GfxPluginNativeRender")] #endif public static extern void SetTimeFromUnity(float t); #if (PLATFORM_IOS || PLATFORM_TVOS || PLATFORM_BRATWURST || PLATFORM_SWITCH) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("GfxPluginNativeRender")] #endif public static extern IntPtr GetRenderEventAndDataFunc(); #if (PLATFORM_IOS || PLATFORM_TVOS || PLATFORM_BRATWURST || PLATFORM_SWITCH) && !UNITY_EDITOR [DllImport("__Internal")] #else [DllImport("GfxPluginNativeRender")] #endif private static extern bool GetFeatureSupport(int feature); //#if (PLATFORM_IOS || PLATFORM_TVOS || PLATFORM_BRATWURST || PLATFORM_SWITCH) && !UNITY_EDITOR // [DllImport("__Internal")] //#else // [DllImport("GfxPluginNativeRender")] //#endif // public static extern bool DoFGExtrapolation(IntPtr src, IntPtr data, IntPtr dst); public enum NativeRenderingEvent { EnableVRS = 1, DisableVRS, DoFGExtrapolation, } public enum VRSPluginShadingRate { X1_PER_PIXEL, X1_PER_2X1_PIXELS, X1_PER_1X2_PIXELS, X1_PER_2X2_PIXELS, X1_PER_4X2_PIXELS, X1_PER_2X4_PIXELS, X1_PER_4X4_PIXELS, }; public enum GraphicsFeature { VRS_DRAW = 0, VRS_PRIMITIVE, VRS_ATTACHMENT, HW_SPATIAL_SR, HW_AISR, HW_ADAPTIVE_VRS, HW_FG_INTERPOLATE, HW_FG_EXTRAPOLATION, METAL_FX_SPATIAL_SR, METAL_FX_TEMPORAL_SR, VIVO_TEMPORAL_SR, QCOM_AFME, MAX_CNT }; public static bool GetFeatureSupport(GraphicsFeature feature) { return GetFeatureSupport((int)feature); } } }