using System; using System.Collections.Generic; using FlaxEngine; namespace Game { /// /// CameraRender Script. /// public class CameraRender : Script { public Camera camera; private PostProcessEffect fidelityFx; public override void OnStart() { // Here you can add code that needs to be called when script is created, just before the first game update MainRenderTask.Instance.Render += InstanceOnRender; MainRenderTask.Instance.PostRender += OnPostRender; foreach (PostProcessEffect fx in SceneRenderTask.GlobalCustomPostFx) { if (fx.TypeName == "FidelityFX.FSRPostFx") fidelityFx = fx; Debug.Log("fx: " + fx.TypeName); } MainRenderTask.Instance.RenderingPercentage = 1f; } private void InstanceOnRender(RenderTask renderTask, GPUContext gpuContext) { //gpuContext.Clear(); var outputView = MainRenderTask.Instance.OutputView; var viewport = camera.Viewport; MainRenderTask.Instance.View.CopyFrom(camera, ref viewport); //MainRenderTask.Instance.View.CopyFrom(Camera.MainCamera); } private void OnPostRender(GPUContext gpuContext, ref RenderContext renderContext) { //var viewport = MainRenderTask.Instance.Viewport; //var viewport2 = camera.Viewport; MainRenderTask.Instance.View.CopyFrom(Camera.MainCamera); } /// public override void OnEnable() { // Here you can add code that needs to be called when script is enabled (eg. register for events) } /// public override void OnDisable() { MainRenderTask.Instance.Render -= InstanceOnRender; MainRenderTask.Instance.PostRender -= OnPostRender; // Here you can add code that needs to be called when script is disabled (eg. unregister from events) } /// public override void OnUpdate() { if (Input.GetKeyDown(KeyboardKeys.F8)) { fidelityFx.Enabled = !fidelityFx.Enabled; Cabrito.Console.Print("FXR: " + fidelityFx.Enabled.ToString()); } // Here you can add code that needs to be called every frame } } }