/* Universidade Federal Fluminense
 * Programa de Pós-Graduação em Computação
 *
 * Tópicos Avançados em Computação Visual e Interfaces II (Técnicas Avançadas de Rendering)
 * Professor: Leandro Augusto Frata Fernandes
 *
 * Version: 2012.05.05-001
 */

#ifndef _BASIC_IO_HEADER_
#define _BASIC_IO_HEADER_

// Include the Standard Template Library (STL).
#ifdef _MSC_VER
	#include <windows.h>
#endif
 
// Include the OpenGL Library (GL).
#include <GL/GL.h>

// A simple image file loader.
void* loadImageFromFile(const char* filename, GLsizei& width, GLsizei& height, GLenum& format, GLenum& type);

// A simple ASCII file loader.
char* loadShaderFromFile(const char* filename);

// A simple image file writer.
void writeImageToFile(const char* filename, const GLsizei width, const GLsizei height, const GLubyte components, const GLenum format, const GLenum type, const GLvoid* pixels);

#endif // _BASIC_IO_HEADER_
