/* -----------------------------------------------------------------;
 * $source   : c:/ $
 * $revision : 1.0 $
 * $author   : root@null.co.za $
 * $date     : 2004/12/18 15:03:00 $
 * $desc     : $
 * $log      : $
 *
 * -----------------------------------------------------------------;
 */

#if !defined(__E_APP__)
#define	     __E_APP__

//------------------------------------------------------------------;
//
//------------------------------------------------------------------;

struct c_app {

   public :

      h_i                 l_hinst;
      h_c                 l_hdc;
      h_w                 l_hwnd;
      h_r                 l_hrc;
      w_r                 l_rect;

      h_w                 l_window;        // window handle.
      bool                l_pause;         // paused?
      bool                l_showfps;       // fps?
      bool                l_wire;          // wireframe?
      bool                l_light;         // lighting?
      bool                l_texture;       // textures?
      bool                l_cull;          // back face culling?

      char*               l_name;
      int                 l_width;
      int                 l_height;
      int                 l_bpp;
      int                 l_full;
      char               *l_images [l_max_data];

                          c_app         ();
      virtual            ~c_app         ();

      int                 m_init        ( h_i );
      h_w                 m_gui         ( int l_x, int l_y, d_w l_style, int l_full, h_i l_hinst );
      int                 m_fullscreen  ( int l_x, int l_y );
      int                 m_pixelformat ( h_c l_hdc, int l_depth );
      void                m_rect        ( void );
      void                m_resize      ( int l_x, int l_y );
      p_w                 m_loop        ( void );
      int                 m_exit        ( void );


      static l_r CALLBACK m_proc        ( h_w l_hwnd, u_i l_msg, p_w l_wparam, p_l l_lparam );

   private :

};


#endif	/* !defined(__E_APP__) */
