/// <summary> /// Load a shader asset from an already existing *Shader* object. /// </summary> /// <param name="existingShader">Existing *Shader* object</param> /// <returns>Load status</returns> public RB.AssetStatus Load(Shader existingShader) { Unload(); InternalSetErrorStatus(RB.AssetStatus.Invalid, RB.Result.Undefined); if (existingShader == null) { InternalSetErrorStatus(RB.AssetStatus.Failed, RB.Result.BadParam); return(status); } RetroBlitInternal.RBRenderer.RetroBlitShader newShader = new RetroBlitInternal.RBRenderer.RetroBlitShader(existingShader); shader = newShader; progress = 1; InternalSetErrorStatus(RB.AssetStatus.Ready, RB.Result.Success); return(status); }
private void ResetInternalState() { shader = null; }
/// <summary> /// Schedule a shader to be unloaded on main thread /// </summary> /// <param name="asset">Shader</param> public void ShaderUnloadMainThread(RetroBlitInternal.RBRenderer.RetroBlitShader asset) { mMainThreadUnloader.materials.Add(asset); }