Exemplo n.º 1
0
        /// <summary>
        /// Renders a given particle list.  The particles takes on the color given in the parameter.
        /// </summary>
        /// <param name="particles"></param>
        private static void RenderParticles(Particles particles)
        {
            List<float[]> streams = particles.RenderParticles();
            byte[] color = particles.Color;

            GL.LoadIdentity();

            foreach (float[] stream in streams)
            {
                float particleSize = stream[5];
                GL.Color4(color[0] / 255, color[0] / 255, color[0] / 255, stream[4]);
                GL.BindTexture(TextureTarget.Texture2D, explosionTex);

                GL.Begin(PrimitiveType.Quads);
                GL.TexCoord2(0, 0);
                GL.Vertex2(stream[0] - particleSize, stream[1] + particleSize);

                GL.TexCoord2(1, 0);
                GL.Vertex2(stream[0] + particleSize, stream[1] + particleSize);

                GL.TexCoord2(1, 1);
                GL.Vertex2(stream[0] + particleSize, stream[1] - particleSize);

                GL.TexCoord2(0, 1);
                GL.Vertex2(stream[0] - particleSize, stream[1] - particleSize);
                GL.End();

                GL.BindTexture(TextureTarget.Texture2D, 0);

            }
        }