#region --- License ---
/* Copyright (c) 2006, 2007 Stefanos Apostolopoulos
* See license.txt for license info
*/
#endregion
using System;
using System.Collections.Generic;
using System.Text;
namespace OpenTK.OpenGL
{
///
/// Provides methods to create and render a display list.
///
public class DisplayList : IDisposable
{
#region --- Private variables ---
private int id = -1;
#endregion
#region --- Constructors ---
///
/// Allocates a new DisplayList.
///
public DisplayList()
{
Id = GL.GenLists(1);
}
#endregion
#region --- Public properties ---
///
/// Gets the display list number.
///
public int Id
{
get { return id; }
private set { id = value; }
}
#endregion
#region --- Public methods ---
///
/// Starts recording elements into the display list.
///
public void Begin()
{
GL.NewList(Id, GL.Enums.ListMode.COMPILE);
}
///
/// Starts recording elements into the display list.
///
/// Sets if the list is to be compiled or compiled and executed immediately.
public void Begin(GL.Enums.ListMode listMode)
{
GL.NewList(Id, listMode);
}
///
/// Stops recording elements into the display list.
///
public void End()
{
GL.EndList();
}
///
/// Renders the display list elements.
///
public void Render()
{
GL.CallList(Id);
}
#region IDisposable Members
public void Dispose()
{
if (Id > 0)
GL.DeleteLists(Id, 1);
Id = -1;
}
#endregion
#endregion
}
}