public void Render(ref Matrix4 projection, ShaderProgram program) { this.SetupShaderProgram(program, ref projection); this.Flush(); GL.BindVertexArray(this.vba); this.context.BindVertexBuffer(this.vertexBuffer); GL.DrawArrays(BeginMode.Points, 0, this.elementCount); this.elementCount = 0; }
public void Render(ref Matrix4 projection, ShaderProgram program) { this.SetupShaderProgram(program, ref projection); this.Flush(); GL.BindVertexArray(this.vba); this.context.BindIndexBuffer(indexBuffer); this.context.BindVertexBuffer(this.vertexBuffer); this.context.DrawElements(BeginMode.Triangles, this.elementCount * 6, DrawElementsType.UnsignedInt, 0); this.elementCount = 0; }
protected override void Load(EntityGUI.GUIFactory factory) { this.particleProgram = this.Resourses.LoadAsset<ShaderProgram>("Sin.effect"); this.Panel.BackgroundColor = Color.Gray; this.Panel.MouseDown += new EventHandler<EntityGUI.MouseButtonEventArgs>(Panel_MouseDown); this.Panel.MouseMove +=new EventHandler<EntityGUI.MouseMoveEventArgs>(Panel_MouseMove); particleAtlas = this.Resourses.LoadAsset<TextureAtlas>("Atlases\\Particles.atlas"); this.systems = new ParticleSystem[10]; this.emiters = new Emiter2D[10]; this.Panel_MouseDown(null, null); }
private void SetupShaderProgram(ShaderProgram program, ref Matrix4 projection) { this.context.UseShaderProgram(program); program.SetUniform("projection_matrix", ref projection); int posIndex = program.GetAttributeLocation("in_position"); int coloIndex = program.GetAttributeLocation("in_tint"); GL.BindVertexArray(this.vba); this.context.BindVertexBuffer(this.vertexBuffer); this.context.EnableVertexAttribArray(posIndex); this.context.EnableVertexAttribArray(coloIndex); this.context.VertexAttribPointer(posIndex, 2, VertexAttribPointerType.Float, true, this.vertecies[0].SizeInBytes, 0); this.context.VertexAttribPointer(coloIndex, 4, VertexAttribPointerType.UnsignedByte, true, this.vertecies[0].SizeInBytes, Vector2.SizeInBytes); GL.BindVertexArray(0); }