Example #1
0
        public UVAnim CreateUVAnim(RName textureRName, RName matInsRName)
        {
            var result = new UVAnim()
            {
                TextureRName          = textureRName,
                MaterialInstanceRName = matInsRName,
            };

            return(result);
        }
Example #2
0
        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);
        }
Example #3
0
        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);
        }