//private void Start() //{ // renderTexture = new RenderTexture(1920, 1080, 24); //} private void OnPreRender() { if (RecordingLord.IsRecording()) { cam.targetTexture = renderTexture; } }
private void LocateCamera() { if (RecordingLord.IsRecording()) { return; } //FoundCamera = Camera.allCameras.Where(c => c.enabled).OrderByDescending(c => c.depth).First(); FoundCamera = Camera.allCameras.Where(c => c.enabled && ((c.cullingMask & LayerMask.NameToLayer("UI")) != 0)).OrderByDescending(c => c.depth).First(); }
private void OnPostRender() { if (RecordingLord.IsRecording()) { cam.targetTexture = null; if (RecordingLord.MainSatellite == this) { if (SystemInfo.graphicsDeviceID != 0) { Graphics.Blit(renderTexture, null as RenderTexture); } RecordingLord.RenderedFrame(renderTexture); } } }
// TODO: Make whether the game time is paused a mutable bool. Perhaps even whether the recording is paused. (Do the same for the corresponding UnPauseMutator) // Another potential issue with this is if the author 'nests' pause/unpause nodes; currently that won't work properly public override IEnumerator ReceivePayload(VisualPayload payload) { if (RecordingLord.IsRecording()) { RecordingLord.PauseRecording(); Time.timeScale = 0.0f; //Debug.Log("PauseMutator: Pausing recording at frame " + Time.frameCount); } var iterator = Router.TransmitAll(payload); while (iterator.MoveNext()) { yield return(null); } }
private void Update() { if (InputFieldComponent.isFocused) { return; } if (RecordingLord.IsRecording()) { return; } InputFieldComponent.text = Camera.main.orthographic ? Camera.main.orthographicSize.ToString() : Camera.main.fieldOfView.ToString(); OrthoButtonComponent.interactable = !Camera.main.orthographic; PerspectiveButtonComponent.interactable = Camera.main.orthographic; }
void Update() { if (RecordingLord.IsRecording()) { return; } var deactivatedNodesDiscovered = 0; while (nodesToUpdate.Count > 0 && nodesGenerating.Count < OnscreenNodesToGenerateConcurrently) { var node = nodesToUpdate.Dequeue(); if (!node.RectTransform) { continue; } if (!node.IsVisible) { nodesToUpdate.Enqueue(node); deactivatedNodesDiscovered++; if (deactivatedNodesDiscovered > nodesToUpdate.Count) { break; } continue; } node.UpdateQueuedControllableGeneration(); nodesGenerating.Enqueue(node); deactivatedNodesDiscovered = 0; } while (nodesToUpdate.Count > 0 && nodesGenerating.Count < OffscreenNodesToGenerateConcurrently) { var node = nodesToUpdate.Dequeue(); if (!node.RectTransform) { continue; } node.UpdateQueuedControllableGeneration(); nodesGenerating.Enqueue(node); } if (ChainView.Instance.Dragging || ChainView.Instance.Zooming) { return; } mbbUpdate(); }
public bool Execute() { var videoCodecSet = false; //var videoCodecIndex = -1; if (SetVideoCodecOption.IsPresent) { var name = (string)SetVideoCodecOption.Arguments[0].Value; if (RecordingLord.CheckCodec(name)) { videoCodecSet = true; RecordingLord.Vcodec = name; } else { Debug.Log("Error: No match found for video codec \"" + name + "\""); return(false); } } if (SetVideoCodecFromCmdLineArgOption.IsPresent) { var videoCodecString = CommandLineArgs.GetArgumentValue((string)SetVideoCodecFromCmdLineArgOption.Arguments[0].Value); if (string.IsNullOrEmpty(videoCodecString)) { // Commenting this out to help avoid confusion //Debug.Log("Error: Cannot set video codec because that command line argument was not found or had no value"); return(true); // Don't report this as an error } if (RecordingLord.CheckCodec(videoCodecString)) { videoCodecSet = true; RecordingLord.Vcodec = videoCodecString; } else { Debug.Log("Error: No match found for video codec \"" + videoCodecString + "\""); return(false); } } if (videoCodecSet) { Debug.Log("Video codec index set to " + RecordingLord.Vcodec); } var frameRateSet = false; var frameRate = 30; if (FrameRateOption.IsPresent) { frameRate = (int)FrameRateOption.Arguments[0].Value; frameRateSet = true; } if (FrameRateFromCmdLineArgOption.IsPresent) { var frameRateString = CommandLineArgs.GetArgumentValue((string)FrameRateFromCmdLineArgOption.Arguments[0].Value); if (string.IsNullOrEmpty(frameRateString)) { //Debug.Log("Error: Cannot set frame rate because that command line argument was not found or had no value"); return(false); } object value = null; if (!frameRateString.StringToValueOfType(typeof(int), ref value, true)) { return(false); } frameRate = (int)value; frameRateSet = true; } if (frameRateSet) { RecordingLord.FrameRate = frameRate; Debug.Log("Movie frame rate set to " + RecordingLord.FrameRate); } var jqualitySet = false; var jquality = 100; if (JpegQualityOption.IsPresent) { jquality = (int)JpegQualityOption.Arguments[0].Value; jqualitySet = true; } if (JpegQualityFromCmdLineArgOption.IsPresent) { var jqualityString = CommandLineArgs.GetArgumentValue((string)JpegQualityFromCmdLineArgOption.Arguments[0].Value); if (string.IsNullOrEmpty(jqualityString)) { //Debug.Log("Error: Cannot set frame rate because that command line argument was not found or had no value"); return(false); } object value = null; if (!jqualityString.StringToValueOfType(typeof(int), ref value, true)) { return(false); } jquality = (int)value; jqualitySet = true; } if (jqualitySet) { RecordingLord.JpegQuality = jquality; Debug.Log("Movie JPEG quality set to " + RecordingLord.JpegQuality); } if (StartOption.IsPresent) { if (!RecordingLord.IsRecording()) { // We start recording in a job, which happens as a coroutine. This fixes (11/10/2015) an issue where videos // were black for several seconds at the beginning, which I think was related to choreography-triggered // video recording that were also being started in jobs. var filename = (string)StartOption.Arguments[0].Value; JobManager.Instance.StartJob(StartRecordingMovie(filename), jobName: "RecordMovieFromDevCmd"); } else { Debug.Log("Error: Movie already being captured"); return(false); } } if (StopOption.IsPresent) { if (RecordingLord.IsRecording()) { RecordingLord.StopRecording(); Debug.Log("Frames captured: " + RecordingLord.FrameTotal + "; total duration " + RecordingLord.Duration + " seconds"); } else { Debug.Log("Error: No movie being captured"); return(false); } } if (PauseOption.IsPresent) { if (!RecordingLord.IsRecording()) { Debug.Log("Error: No movie being captured"); return(false); } if (RecordingLord.IsPaused()) { Debug.Log("Warning: Pause request made but movie recording is already paused"); return(true); } RecordingLord.PauseRecording(); Debug.Log("Movie recording paused; duration so far is " + RecordingLord.Duration + " seconds"); } if (ResumeOption.IsPresent) { if (!RecordingLord.IsRecording()) { Debug.Log("Error: No movie being captured"); return(false); } if (!RecordingLord.IsPaused()) { Debug.Log("Warning: Resume request made but movie recording is not paused"); return(true); } RecordingLord.ResumeRecording(); Debug.Log("Movie recording resumed"); } return(true); }