/* -------------------------- setup function ------------------------------
LOG
    GEM - Graphics Environment for Multimedia

    Copyright (c) 1997-1998 Mark Danks. mdanks@cybermed.ucsd.edu
    For information on usage and redistribution, and for a DISCLAIMER OF ALL
    WARRANTIES, see the file, "GEM.LICENSE.TERMS" in this distribution.

-----------------------------------------------------------------*/

#include "GemMan.h"

#ifdef _LANGUAGE_C_PLUS_PLUS
extern "C" {
#endif

void gemwin_setup();
void gemhead_setup();
void camera_setup();
void render_trigger_setup();

void alpha_setup();
void color_setup();
void colorRGB_setup();
void depth_setup();
void rotate_setup();
void scale_setup();
void scaleXYZ_setup();
void separator_setup();
void translate_setup();
void translateXYZ_setup();

void circle_setup();
void colorSquare_setup();
void cone_setup();
void cube_setup();
void curve_setup();
void model_setup();
void multimodel_setup();
void polygon_setup();
void sphere_setup();
void square_setup();
void text2d_setup();
void text3d_setup();
void textoutline_setup();
void triangle_setup();

void world_light_setup();
void light_setup();

void pix_image_setup();
void pix_multiimage_setup();
void pix_draw_setup();
void pix_texture_setup();
void pix_resize_setup();
void pix_snap_setup();
void pix_buf_setup();
void pix_zoom_setup();

void pix_2grey_setup();
void pix_add_setup();
void pix_alpha_setup();
void pix_bitmask_setup();
void pix_clearblock_setup();
void pix_coloralpha_setup();
void pix_colormatrix_setup();
void pix_composite_setup();
void pix_convolve_setup();
void pix_coordinate_setup();
void pix_flip_setup();
void pix_gain_setup();
void pix_invert_setup();
void pix_mask_setup();
void pix_multiply_setup();
void pix_subtract_setup();
void pix_threshold_setup();

void imageVert_setup();

void pix_video_setup();
void pix_indycam_setup();

#ifdef _WINDOWS
__declspec(dllexport) extern void Gem_setup();
#endif

void Gem_setup()
{
    // startup GEM
    GemMan::initGem();

    // Controls
    gemwin_setup();
    gemhead_setup();
    camera_setup();
    render_trigger_setup();

    // Manipulators
    alpha_setup();
    color_setup();
    colorRGB_setup();
    depth_setup();
    rotate_setup();
    scale_setup();
    scaleXYZ_setup();
    separator_setup();
    translate_setup();
    translateXYZ_setup();

    // Geos
    circle_setup();
    colorSquare_setup();
    cone_setup();
    cube_setup();
    curve_setup();
    model_setup();
    multimodel_setup();
    polygon_setup();
    sphere_setup();
    square_setup();
    text2d_setup();
    text3d_setup();
    textoutline_setup();
	triangle_setup();

    // Non-geos
    world_light_setup();
    light_setup();

    // Pixes
    ////////
    //  Pix-Geos
    pix_image_setup();
    pix_multiimage_setup();
    pix_draw_setup();
    pix_texture_setup();
    pix_snap_setup();

    // Pix-controls
    pix_resize_setup();
    pix_buf_setup();
    pix_zoom_setup();

    // Pix-manips
    pix_2grey_setup();
    pix_add_setup();
    pix_alpha_setup();
    pix_bitmask_setup();
    pix_clearblock_setup();
	pix_coloralpha_setup();
    pix_colormatrix_setup();
    pix_convolve_setup();
    pix_composite_setup();
    pix_coordinate_setup();
    pix_flip_setup();
    pix_gain_setup();
    pix_invert_setup();
    pix_mask_setup();
	pix_multiply_setup();
    pix_subtract_setup();
    pix_threshold_setup();
	        
    imageVert_setup();

    // Sgi-specific
#ifdef __sgi
    pix_video_setup();
    pix_indycam_setup();
#endif

    // WinNT-specific
#ifdef _WINDOWS
    pix_video_setup();
#endif
}

#ifdef _LANGUAGE_C_PLUS_PLUS
}
#endif
