#pragma once

namespace gui {

	/**
	 * Indended buffer usage. Used as a hint to the graphics driver.
	 */
	enum BufferUsage {
		// This buffer will be mostly static. It is created once and then rarely modified.
		STORM_NAME(bufferStatic, static),
		// This buffer will be updated dynamically. Some coherent range of vertices may be updated
		// once every few frames or so.
		STORM_NAME(bufferDynamic, dynamic),
		// This buffer will be essentially replaced very frequently.
		STORM_NAME(bufferReplace, replaced),
	};


	/**
	 * What primitives should be drawn?
	 */
	enum DrawPrimitive {
		// Draw stand-alone triangles.
		STORM_NAME(drawTriangles, triangles),
		// Draw a triangle strip.
		STORM_NAME(drawTriangleStrip, triangleStrip),
		// Draw individual lines.
		STORM_NAME(drawLines, lines),
		// Draw a line strip.
		STORM_NAME(drawLineStrip, lineStrip),
		// Draw individual points.
		STORM_NAME(drawPoints, points),
	};

}
