# enum glw::DataUsage

## Overview

Hint to the GL implementation as to how a buffer object’s data store will be accessed. More…

    #include <ArrayObject.h>

    enum DataUsage {
        stream_draw  = uint32_t(gl::GLenum::GL_STREAM_DRAW),
        stream_read  = uint32_t(gl::GLenum::GL_STREAM_READ),
        stream_copy  = uint32_t(gl::GLenum::GL_STREAM_COPY),
        static_draw  = uint32_t(gl::GLenum::GL_STATIC_DRAW),
        static_read  = uint32_t(gl::GLenum::GL_STATIC_READ),
        static_copy  = uint32_t(gl::GLenum::GL_STATIC_COPY),
        dynamic_draw = uint32_t(gl::GLenum::GL_DYNAMIC_DRAW),
        dynamic_read = uint32_t(gl::GLenum::GL_DYNAMIC_READ),
        dynamic_copy = uint32_t(gl::GLenum::GL_DYNAMIC_COPY),
    };

## Detailed Documentation

Hint to the GL implementation as to how a buffer object’s data store will be accessed.

The frequency of access may be one of these: STREAM - The data store contents will be modified once and used at most a few times. STATIC - The data store contents will be modified once and used many times. DYNAMIC - The data store contents will be modified repeatedly and used many times.

The nature of access may be one of these: DRAW - The data store contents are modified by the application, and used as the source for GL drawing and image specification commands. READ - The data store contents are modified by reading data from the GL, and used to return that data when queried by the application. COPY - The data store contents are modified by reading data from the GL, and used as the source for GL drawing and image specification commands.