namespace Quik.CommandMachine
{
    /// 
    /// Enumeration of built-in Quik commands.
    /// 
    public enum Command
    {
        #region Control Commands
        /// 
        /// Invoke a function directly.
        /// 
        Invoke,
        /// 
        /// Begin conditional rendering segment.
        /// 
        ConditionalBegin,
        /// 
        /// End conditional rendering segment.
        /// 
        ConditionalEnd,
        PushViewport,
        IntersectViewport,
        StoreViewport,
        PopViewport,
        PushZ,
        IncrementZ,
        AddZ,
        StoreZ,
        DecrementZ,
        PopZ,
        PushMatrix,
        StoreIdentityMatrix,
        StoreMatrix,
        PopMatrix,
        PushStyle,
        StoreStyle,
        PopStyle,
        #endregion
        #region Draw Commands
        Line,
        Bezier,
        Rectangle,
        Ellipse,
        Triangle,
        Polygon,
        Image,
        #endregion
        /// 
        /// Start index for custom commands.
        /// 
        CustomCommandBase = 1024,
    }
}