Пример #1
0
        /// <summary>
        /// Dispose resources
        /// </summary>
        public void Dispose()
        {
            if (Mesh != null)
            {
                Mesh.Dispose();
            }
            Mesh = null;

            if (SpecularMap != null)
            {
                SpecularMap.Dispose();
            }
            SpecularMap = null;

            if (HeightMap != null)
            {
                HeightMap.Dispose();
            }
            HeightMap = null;

            if (BumpMap != null)
            {
                BumpMap.Dispose();
            }
            BumpMap = null;

            if (DiffuseMap != null)
            {
                DiffuseMap.Dispose();
            }
            DiffuseMap = null;
        }
Пример #2
0
        private static void OnTimer(ref double delta, UInt32 Id)
        {
            quadInput.Update();


            quadRender.BeginRender();
            quadRender.Clear(0);

            camera.Enable();
            quadRender.RenderToGBuffer(true, quadGBuffer);
            quadRender.SetBlendMode(TQuadBlendMode.qbmNone);
            texture.Draw(new Vec2f());
            quadRender.RenderToGBuffer(false, quadGBuffer);
            camera.Disable();

            IQuadTexture DiffuseMap;

            quadGBuffer.GetDiffuseMap(out DiffuseMap);
            DiffuseMap.Draw(new Vec2f(), 0xFF080808);

            t += delta;
            Particle prt;

            if (t > 1.0)
            {
                t = 0.0f;
                Random rand = new Random();
                prt        = new Particle();
                prt.radius = rand.Next(50, 250);
                prt.X      = rand.Next(800);
                prt.Y      = -100;
                prt.Z      = rand.Next(5, 35);
                prt.color  = (uint)(rand.NextDouble() * 0xFFFFFF) + 0xFF000000;
                mList.Add(prt);
            }

            quadRender.SetBlendMode(TQuadBlendMode.qbmSrcAlphaAdd);

            for (int i = mList.Count - 1; i >= 0; i--)
            {
                prt      = mList[i];
                prt.Y   += (float)delta * 100.0f;
                mList[i] = prt;

                quadGBuffer.DrawLight(new Vec2f(prt.X, prt.Y), prt.Z, prt.radius, prt.color);

                camera.Enable();
                quadRender.Rectangle(new Vec2f(prt.X - 2, prt.Y - 2), new Vec2f(prt.X + 2, prt.Y + 2), prt.color);
                camera.Disable();

                quadRender.FlushBuffer();
                if (prt.Y > 1000)
                {
                    mList.RemoveAt(i);
                }
            }

            quadRender.EndRender();
        }
Пример #3
0
 public override void Initialize()
 {
     Contract.Requires <InvalidOperationException>(DiffuseMapKey != null);
     DiffuseMap = Content.Load <Texture>(DiffuseMapKey);
     if (!DiffuseMap.IsInited)
     {
         DiffuseMap.Initialize();
     }
     TextureMap.Add(TextureReference.Diffuse.ToString(), DiffuseMap);
 }
Пример #4
0
 public void Dispose()
 {
     if (DiffuseMap != null)
     {
         DiffuseMap.Dispose();
     }
     if (Program != null)
     {
         Program.DisposeChildren = true;
         Program.Dispose();
     }
 }
Пример #5
0
        public void Dispose()
        {
            if (DiffuseMap != null)
            {
                DiffuseMap.Dispose();
            }
//            if (Program != null)
//            {
//                Program.DisposeChildren = true;
//                Program.Dispose();
//            }
        }
Пример #6
0
 public override int GetHashCode()
 {
     unchecked
     {
         var hashCode = (Name != null ? Name.GetHashCode() : 0);
         hashCode = (hashCode * 397) ^ (DiffuseMap != null ? DiffuseMap.GetHashCode() : 0);
         hashCode = (hashCode * 397) ^ (NormalMap != null ? NormalMap.GetHashCode() : 0);
         hashCode = (hashCode * 397) ^ (SpecularMap != null ? SpecularMap.GetHashCode() : 0);
         hashCode = (hashCode * 397) ^ Color.GetHashCode();
         return(hashCode);
     }
 }
        private bool disposedValue = false; // To detect redundant calls

        protected virtual void Dispose(bool disposing)
        {
            if (!disposedValue)
            {
                if (disposing)
                {
                    // TODO: dispose managed state (managed objects).
                }

                if (DiffuseMap != null)
                {
                    DiffuseMap.Dispose();
                }

                if (NormalMap != null)
                {
                    NormalMap.Dispose();
                }

                if (DiffuseAlphaMap != null)
                {
                    DiffuseAlphaMap.Dispose();
                }

                if (ColorTable != null)
                {
                    ColorTable.Dispose();
                }

                if (MaskMap != null)
                {
                    MaskMap.Dispose();
                }

                if (SpecularMap != null)
                {
                    SpecularMap.Dispose();
                }

                // TODO: free unmanaged resources (unmanaged objects) and override a finalizer below.
                // TODO: set large fields to null.

                disposedValue = true;
            }
        }
 public void Accept(ShaderGeneratorContext context)
 {
     DiffuseMap.Accept(context);
 }
Пример #9
0
 private void DestroyRenderTargets()
 {
     DiffuseMap?.Dispose();
     Lightmap?.Dispose();
 }
Пример #10
0
 public void Visit(MaterialGeneratorContext context)
 {
     DiffuseMap.Visit(context);
 }