#include <stdlib.h>
#include <GL/glut.h>
#include <proto/exec.h>
#include "sysinc.h"

struct Library *__glut_base = 0;
struct GlutIFace *__glut_current_context = 0;


void __glut_init(void) __attribute__((constructor));
void __glut_term(void) __attribute__((destructor));

void __glut_init(void)
{
	__glut_base = IExec->OpenLibrary("mglut.library", 0);
	if (!__glut_base)
		exit(0);
	
	__glut_current_context = (struct GlutIFace *)
				IExec->GetInterface(__glut_base, "main", 1, NULL);
	if (!__glut_current_context)
		exit(0);

}

void __glut_term(void)
{
	if (__glut_current_context)
	{
		__glut_current_context->GLUTExit();
		__glut_current_context = 0;
	}
	
	if (__glut_base)
	{
		IExec->CloseLibrary(__glut_base);
		__glut_base = 0;
	}
}
