public void StopViewer() { if (isViewerShown) { EffectRenderer.ResetEffect(); IsPlaying = false; IsPaused = false; current = Core.StartFrame; } }
public bool LoadEffectFunc() { StopViewer(); EffectRenderer.SetEffect(null); EffectRenderer.ResetEffect(); Export(); IsChanged = false; return(true); }
/// <summary> /// reload an effect including resources /// </summary> public unsafe void Reload(bool isResourceReloaded) { if (isResourceReloaded) { effectFactory.ReloadAllResources(); } EffectRenderer.SetEffect(null); EffectRenderer.ResetEffect(); Export(); EffectRenderer.RandomSeed = random_seed; EffectRenderer.PlayEffect(); StepEffectFrame((int)Current); }
unsafe void PlayNew() { EffectRenderer.ResetEffect(); if (IsChanged) { EffectRenderer.SetEffect(null); EffectRenderer.ResetEffect(); Export(); IsChanged = false; } RenewRandomSeed(); EffectRenderer.PlayEffect(); IsPlaying = true; if (Core.StartFrame > 0) { StepEffectFrame(Core.StartFrame); } current = Core.StartFrame; }
unsafe void MoveFrame(float new_frame) { // Same frame if (current == new_frame) { return; } if (new_frame < Core.StartFrame) { new_frame = Core.StartFrame; } if (new_frame > Core.EndFrame) { new_frame = Core.EndFrame; } if (isViewerShown) { if (!IsPlaying) { PlayNew(); PauseAndResumeViewer(); } if (IsPaused) { if ((int)current == (int)new_frame) { } else if ((int)current > (int)new_frame) { EffectRenderer.ResetEffect(); EffectRenderer.RandomSeed = random_seed; EffectRenderer.PlayEffect(); StepEffectFrame((int)new_frame); } else { StepEffectFrame((int)new_frame - (int)current); } } else { if ((int)current == (int)new_frame) { } else if ((int)current > (int)new_frame) { EffectRenderer.ResetEffect(); RenewRandomSeed(); EffectRenderer.PlayEffect(); StepEffectFrame((int)new_frame); } else { StepEffectFrame((int)new_frame - (int)current); } } current = new_frame; } }