public UVAnim CreateUVAnim(RName textureRName, RName matInsRName) { var result = new UVAnim() { TextureRName = textureRName, MaterialInstanceRName = matInsRName, }; return(result); }
public async Task <UVAnim> GetUVAnimCloneAsync(CRenderContext rc, RName name) { var uvAnim = await GetUVAnimAsync(rc, name); if (uvAnim == null) { return(null); } var retVal = new UVAnim(); retVal.CopyFromTemplate(uvAnim); return(retVal); }
public async Task <UVAnim> GetUVAnimAsync(CRenderContext rc, RName name) { if (name == null || name.IsExtension(CEngineDesc.UVAnimExtension) == false) { return(null); } UVAnim result; bool found = false; lock (UVAnims) { if (UVAnims.TryGetValue(name, out result) == false) { result = new UVAnim(); UVAnims.Add(name, result); } else { found = true; } } if (found) { var context = await result.AwaitLoad(); if (context != null && context.Result == null) { return(null); } return(result); } if (false == await result.LoadUVAnimAsync(rc, name)) { return(null); } return(result); }