// include file for GLUT drawing code
#ifndef DRAW_H
#define DRAW_H

#include <string>

// called for every screen draw
extern "C" void draw();
enum DrawStyle {
    DRAW_TEAPOT, 
    DRAW_SPHERE,
    DRAW_DONUT,
    DRAW_PLANE,
    NUM_DRAW
};
extern DrawStyle drawStyle;

// update vertex and fragment shader
void setVSname(std::string filename);
void setFSname(std::string filename);
extern "C" void updateShaders();

// update or reset frame counters
//  -1 = use current increments
//   0 = stop all
// 1/2 = dec/inc red increment
// 3/4 = dec/inc green increment
// 5/6 = dec/inc blue increment
// 7/8 = dec/inc alpha increment
void updateFrame(int m);

// change target frame rate
// adds a sleep in the draw call to meet target
void adjustFrameRate(int d);

#endif
