Example #1
0
    /// <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);
    }
Example #2
0
 private void ResetInternalState()
 {
     shader = null;
 }
Example #3
0
 /// <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);
 }