/*
   CMSC 427 - Term Project Candidate
   ---------------------------------

   Beth Weinstein - bweinste@wam.umd.edu
   Ben Stewart - stewartb@wam.umd.edu
   Nawfel Tricha - Topaz@endorproductions.com

   Minimal OpenGL project using Microsoft Visual C++.
   This project is a premilinary candidate for the term 
   project required by CMSC 427.

   ABSTRACT:
      In this project, we will develop several fast 
      rendering and collision routines which would 
      require C/C++ speed and accuracy and then 
      implement a VisualJ++ interface.

   MODULE:
      Main rendering module header.
*/
#ifndef RENDERGL_H
#define RENDERGL_H

/*
 NT:
 Handle to drawing context used by our main application
 window. This global variable is declared in MinimalGL.cpp
 and is used externally here so that we can control the
 main window from our OpenGL functions:
*/
   extern HDC m_hDC;

/*
 NT:
 The following bit masks are defined for the different 
 features we could use for rendering. These values are
 ORed in r_mode to specify whether the current rendering
 is wireframed, shadowed, textured, etc.
 All rendering globals are prefixed with 'r_'
*/

// Rendering mode:
   int r_mode;
// Reserved:
   int r_gravity;
// Reserved:
   int r_color_run;
// Rendering effect:
   int r_effect;
// Skin list [Library]:
   skin_list_t *g_skins[G_MAX_SKINS];
// Part List [Library]:
   part_t g_parts[G_MAX_PARTS];
// Model List [Library]:
   model_list_t *g_models[G_MAX_MODELS];
// CMD2 List [Library]:
   CMD2_list_t *g_CMD2s[G_MAX_CMD2S];
// Edict list [Library]:
   edict_t g_edicts[G_MAX_EDICTS];
// Transparent Edict list [Library]:
   edict_t g_tedicts[G_MAX_EDICTS];
// Engine variables:
   engine_t eng;
// Camera variables:
   camera_t cam;
// Last part used:
   part_t *last_part;
// Last texture used:
   unsigned int last_texture = NOT_FOUND;
// DSP spectrum:
   dsp_t dsp;

#endif