/*
 * $Id: Awindow.h 3.00 1998/09/21 19:17:47 NielsF Exp NielsF $
 */

/*
 * (c) Copyright 1993, Silicon Graphics, Inc.
 * ALL RIGHTS RESERVED
 * Permission to use, copy, modify, and distribute this software for
 * any purpose and without fee is hereby granted, provided that the above
 * copyright notice appear in all copies and that both the copyright notice
 * and this permission notice appear in supporting documentation, and that
 * the name of Silicon Graphics, Inc. not be used in advertising
 * or publicity pertaining to distribution of the software without specific,
 * written prior permission.
 *
 * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "AS-IS"
 * AND WITHOUT WARRANTY OF ANY KIND, EXPRESS, IMPLIED OR OTHERWISE,
 * INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY OR
 * FITNESS FOR A PARTICULAR PURPOSE.  IN NO EVENT SHALL SILICON
 * GRAPHICS, INC.  BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
 * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
 * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
 * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
 * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC.  HAS BEEN
 * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
 * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
 * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
 *
 * OpenGL(TM) is a trademark of Silicon Graphics, Inc.
 */

#include <GL/gl.h>
#include <GL/gltk.h>
#include <GL/amigamesa.h>

extern struct ExecBase *SysBase;
extern struct Library *DOSBase;
extern struct Library *GfxBase;
extern struct Library *IntuitionBase;
extern struct Library *LayersBase;

#define	LayerWidth(l)		(l->bounds.MaxX - l->bounds.MinX + 1)
#define	LayerHeight(l)		(l->bounds.MaxY - l->bounds.MinY + 1)
#define	InnerWidth(w)		(w->Width - w->BorderLeft - w->BorderRight)
#define	InnerHeight(w)		(w->Height - w->BorderTop - w->BorderBottom)

#define	USE_CLIP_LAYER

struct tkWindow {
  GLshort left, top, width, height;
  GLenum type, dmPolicy;
  GLint ID;

  amigaMesaContext context;
  struct Screen *screen;
  struct Window *window;
  struct RastPort *rport;
#ifdef USE_CLIP_LAYER
  struct Region *clipreg;
#endif
};
