/* Machine generated file, do not modify */
#include <stdlib.h>
#include "HsFFI.h"
#include "HsOpenGL.h"

static HugsAPI5 *hugs = 0;

#ifndef ENABLE_MACRO_INTERFACE
#undef glShadeModel
#endif

static void hugsprim_glShadeModel_18(HugsStackPtr);
static void hugsprim_glShadeModel_18(HugsStackPtr hugs_root)
{
    HsWord32 arg1;
    arg1 = hugs->getWord32();
    glShadeModel(arg1);
    
    hugs->returnIO(hugs_root,0);
}

#ifndef ENABLE_MACRO_INTERFACE
#undef glColorMaterial
#endif

static void hugsprim_glColorMaterial_17(HugsStackPtr);
static void hugsprim_glColorMaterial_17(HugsStackPtr hugs_root)
{
    HsWord32 arg1;
    HsWord32 arg2;
    arg1 = hugs->getWord32();
    arg2 = hugs->getWord32();
    glColorMaterial(arg1, arg2);
    
    hugs->returnIO(hugs_root,0);
}

#ifndef ENABLE_MACRO_INTERFACE
#undef glLightModeli
#endif

static void hugsprim_glLightModeli_16(HugsStackPtr);
static void hugsprim_glLightModeli_16(HugsStackPtr hugs_root)
{
    HsWord32 arg1;
    HsInt32 arg2;
    arg1 = hugs->getWord32();
    arg2 = hugs->getInt32();
    glLightModeli(arg1, arg2);
    
    hugs->returnIO(hugs_root,0);
}

#ifndef ENABLE_MACRO_INTERFACE
#undef glLightModelfv
#endif

static void hugsprim_glLightModelfv_15(HugsStackPtr);
static void hugsprim_glLightModelfv_15(HugsStackPtr hugs_root)
{
    HsWord32 arg1;
    HsPtr arg2;
    arg1 = hugs->getWord32();
    arg2 = hugs->getPtr();
    glLightModelfv(arg1, arg2);
    
    hugs->returnIO(hugs_root,0);
}

#ifndef ENABLE_MACRO_INTERFACE
#undef glGetLightfv
#endif

static void hugsprim_glGetLightfv_14(HugsStackPtr);
static void hugsprim_glGetLightfv_14(HugsStackPtr hugs_root)
{
    HsWord32 arg1;
    HsWord32 arg2;
    HsPtr arg3;
    arg1 = hugs->getWord32();
    arg2 = hugs->getWord32();
    arg3 = hugs->getPtr();
    glGetLightfv(arg1, arg2, arg3);
    
    hugs->returnIO(hugs_root,0);
}

#ifndef ENABLE_MACRO_INTERFACE
#undef glLightfv
#endif

static void hugsprim_glLightfv_13(HugsStackPtr);
static void hugsprim_glLightfv_13(HugsStackPtr hugs_root)
{
    HsWord32 arg1;
    HsWord32 arg2;
    HsPtr arg3;
    arg1 = hugs->getWord32();
    arg2 = hugs->getWord32();
    arg3 = hugs->getPtr();
    glLightfv(arg1, arg2, arg3);
    
    hugs->returnIO(hugs_root,0);
}

#ifndef ENABLE_MACRO_INTERFACE
#undef glGetLightfv
#endif

static void hugsprim_glGetLightfv_12(HugsStackPtr);
static void hugsprim_glGetLightfv_12(HugsStackPtr hugs_root)
{
    HsWord32 arg1;
    HsWord32 arg2;
    HsPtr arg3;
    arg1 = hugs->getWord32();
    arg2 = hugs->getWord32();
    arg3 = hugs->getPtr();
    glGetLightfv(arg1, arg2, arg3);
    
    hugs->returnIO(hugs_root,0);
}

#ifndef ENABLE_MACRO_INTERFACE
#undef glLightfv
#endif

static void hugsprim_glLightfv_11(HugsStackPtr);
static void hugsprim_glLightfv_11(HugsStackPtr hugs_root)
{
    HsWord32 arg1;
    HsWord32 arg2;
    HsPtr arg3;
    arg1 = hugs->getWord32();
    arg2 = hugs->getWord32();
    arg3 = hugs->getPtr();
    glLightfv(arg1, arg2, arg3);
    
    hugs->returnIO(hugs_root,0);
}

#ifndef ENABLE_MACRO_INTERFACE
#undef glGetLightfv
#endif

static void hugsprim_glGetLightfv_10(HugsStackPtr);
static void hugsprim_glGetLightfv_10(HugsStackPtr hugs_root)
{
    HsWord32 arg1;
    HsWord32 arg2;
    HsPtr arg3;
    arg1 = hugs->getWord32();
    arg2 = hugs->getWord32();
    arg3 = hugs->getPtr();
    glGetLightfv(arg1, arg2, arg3);
    
    hugs->returnIO(hugs_root,0);
}

#ifndef ENABLE_MACRO_INTERFACE
#undef glLightfv
#endif

static void hugsprim_glLightfv_9(HugsStackPtr);
static void hugsprim_glLightfv_9(HugsStackPtr hugs_root)
{
    HsWord32 arg1;
    HsWord32 arg2;
    HsPtr arg3;
    arg1 = hugs->getWord32();
    arg2 = hugs->getWord32();
    arg3 = hugs->getPtr();
    glLightfv(arg1, arg2, arg3);
    
    hugs->returnIO(hugs_root,0);
}

#ifndef ENABLE_MACRO_INTERFACE
#undef glLightfv
#endif

static void hugsprim_glLightfv_8(HugsStackPtr);
static void hugsprim_glLightfv_8(HugsStackPtr hugs_root)
{
    HsWord32 arg1;
    HsWord32 arg2;
    HsPtr arg3;
    arg1 = hugs->getWord32();
    arg2 = hugs->getWord32();
    arg3 = hugs->getPtr();
    glLightfv(arg1, arg2, arg3);
    
    hugs->returnIO(hugs_root,0);
}

#ifndef ENABLE_MACRO_INTERFACE
#undef glGetLightfv
#endif

static void hugsprim_glGetLightfv_7(HugsStackPtr);
static void hugsprim_glGetLightfv_7(HugsStackPtr hugs_root)
{
    HsWord32 arg1;
    HsWord32 arg2;
    HsPtr arg3;
    arg1 = hugs->getWord32();
    arg2 = hugs->getWord32();
    arg3 = hugs->getPtr();
    glGetLightfv(arg1, arg2, arg3);
    
    hugs->returnIO(hugs_root,0);
}

#ifndef ENABLE_MACRO_INTERFACE
#undef glMaterialiv
#endif

static void hugsprim_glMaterialiv_6(HugsStackPtr);
static void hugsprim_glMaterialiv_6(HugsStackPtr hugs_root)
{
    HsWord32 arg1;
    HsWord32 arg2;
    HsPtr arg3;
    arg1 = hugs->getWord32();
    arg2 = hugs->getWord32();
    arg3 = hugs->getPtr();
    glMaterialiv(arg1, arg2, arg3);
    
    hugs->returnIO(hugs_root,0);
}

#ifndef ENABLE_MACRO_INTERFACE
#undef glGetMaterialiv
#endif

static void hugsprim_glGetMaterialiv_5(HugsStackPtr);
static void hugsprim_glGetMaterialiv_5(HugsStackPtr hugs_root)
{
    HsWord32 arg1;
    HsWord32 arg2;
    HsPtr arg3;
    arg1 = hugs->getWord32();
    arg2 = hugs->getWord32();
    arg3 = hugs->getPtr();
    glGetMaterialiv(arg1, arg2, arg3);
    
    hugs->returnIO(hugs_root,0);
}

#ifndef ENABLE_MACRO_INTERFACE
#undef glMaterialfv
#endif

static void hugsprim_glMaterialfv_4(HugsStackPtr);
static void hugsprim_glMaterialfv_4(HugsStackPtr hugs_root)
{
    HsWord32 arg1;
    HsWord32 arg2;
    HsPtr arg3;
    arg1 = hugs->getWord32();
    arg2 = hugs->getWord32();
    arg3 = hugs->getPtr();
    glMaterialfv(arg1, arg2, arg3);
    
    hugs->returnIO(hugs_root,0);
}

#ifndef ENABLE_MACRO_INTERFACE
#undef glGetMaterialfv
#endif

static void hugsprim_glGetMaterialfv_3(HugsStackPtr);
static void hugsprim_glGetMaterialfv_3(HugsStackPtr hugs_root)
{
    HsWord32 arg1;
    HsWord32 arg2;
    HsPtr arg3;
    arg1 = hugs->getWord32();
    arg2 = hugs->getWord32();
    arg3 = hugs->getPtr();
    glGetMaterialfv(arg1, arg2, arg3);
    
    hugs->returnIO(hugs_root,0);
}

#ifndef ENABLE_MACRO_INTERFACE
#undef glMaterialfv
#endif

static void hugsprim_glMaterialfv_2(HugsStackPtr);
static void hugsprim_glMaterialfv_2(HugsStackPtr hugs_root)
{
    HsWord32 arg1;
    HsWord32 arg2;
    HsPtr arg3;
    arg1 = hugs->getWord32();
    arg2 = hugs->getWord32();
    arg3 = hugs->getPtr();
    glMaterialfv(arg1, arg2, arg3);
    
    hugs->returnIO(hugs_root,0);
}

#ifndef ENABLE_MACRO_INTERFACE
#undef glGetMaterialfv
#endif

static void hugsprim_glGetMaterialfv_1(HugsStackPtr);
static void hugsprim_glGetMaterialfv_1(HugsStackPtr hugs_root)
{
    HsWord32 arg1;
    HsWord32 arg2;
    HsPtr arg3;
    arg1 = hugs->getWord32();
    arg2 = hugs->getWord32();
    arg3 = hugs->getPtr();
    glGetMaterialfv(arg1, arg2, arg3);
    
    hugs->returnIO(hugs_root,0);
}

#ifndef ENABLE_MACRO_INTERFACE
#undef glFrontFace
#endif

static void hugsprim_glFrontFace_0(HugsStackPtr);
static void hugsprim_glFrontFace_0(HugsStackPtr hugs_root)
{
    HsWord32 arg1;
    arg1 = hugs->getWord32();
    glFrontFace(arg1);
    
    hugs->returnIO(hugs_root,0);
}

static struct hugs_primitive hugs_primTable[] = {
    {"glShadeModel", 2, hugsprim_glShadeModel_18},
    {"glColorMaterial", 3, hugsprim_glColorMaterial_17},
    {"glLightModeli", 3, hugsprim_glLightModeli_16},
    {"glLightModelfv", 3, hugsprim_glLightModelfv_15},
    {"glGetLightfv", 4, hugsprim_glGetLightfv_14},
    {"glLightfv", 4, hugsprim_glLightfv_13},
    {"glGetLightfvn", 4, hugsprim_glGetLightfv_12},
    {"glLightfvn", 4, hugsprim_glLightfv_11},
    {"glGetLightfvv", 4, hugsprim_glGetLightfv_10},
    {"glLightfvv", 4, hugsprim_glLightfv_9},
    {"glLightfvc", 4, hugsprim_glLightfv_8},
    {"glGetLightfvc", 4, hugsprim_glGetLightfv_7},
    {"glMaterialiv", 4, hugsprim_glMaterialiv_6},
    {"glGetMaterialiv", 4, hugsprim_glGetMaterialiv_5},
    {"glMaterialff", 4, hugsprim_glMaterialfv_4},
    {"glGetMaterialfvf", 4, hugsprim_glGetMaterialfv_3},
    {"glMaterialfvc", 4, hugsprim_glMaterialfv_2},
    {"glGetMaterialfvc", 4, hugsprim_glGetMaterialfv_1},
    {"glFrontFace", 2, hugsprim_glFrontFace_0},
};

static void hugs_primControl(int);
static void hugs_primControl(what)
int what; {
}

#ifdef STATIC_LINKAGE
#define initModule initGROGColors
#endif

static struct hugs_primInfo hugs_prims = { hugs_primControl, hugs_primTable, 0 };

#ifdef __cplusplus
extern "C" {
#endif
#ifndef __cplusplus
DLLEXPORT(int)  HugsAPIVersion(void);
#endif
DLLEXPORT(int)  HugsAPIVersion() {return (5);}
DLLEXPORT(void) initModule(HugsAPI5 *);
DLLEXPORT(void) initModule(HugsAPI5 *hugsAPI) {
    hugs = hugsAPI;
    hugs->registerPrims(&hugs_prims);
}
#ifdef __cplusplus
}
#endif

