f0ab104f070bc7f569404826fea1828ed985638cvboxsync#ifndef _GLX_context_h_
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#define _GLX_context_h_
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync/*
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * SGI FREE SOFTWARE LICENSE B (Version 2.0, Sept. 18, 2008)
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * Copyright (C) 1991-2000 Silicon Graphics, Inc. All Rights Reserved.
f0ab104f070bc7f569404826fea1828ed985638cvboxsync *
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * Permission is hereby granted, free of charge, to any person obtaining a
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * copy of this software and associated documentation files (the "Software"),
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * to deal in the Software without restriction, including without limitation
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * the rights to use, copy, modify, merge, publish, distribute, sublicense,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * and/or sell copies of the Software, and to permit persons to whom the
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * Software is furnished to do so, subject to the following conditions:
f0ab104f070bc7f569404826fea1828ed985638cvboxsync *
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * The above copyright notice including the dates of first publication and
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * either this permission notice or a reference to
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * http://oss.sgi.com/projects/FreeB/
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * shall be included in all copies or substantial portions of the Software.
f0ab104f070bc7f569404826fea1828ed985638cvboxsync *
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * SILICON GRAPHICS, INC. BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * SOFTWARE.
f0ab104f070bc7f569404826fea1828ed985638cvboxsync *
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * Except as contained in this notice, the name of Silicon Graphics, Inc.
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * shall not be used in advertising or otherwise to promote the sale, use or
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * other dealings in this Software without prior written authorization from
f0ab104f070bc7f569404826fea1828ed985638cvboxsync * Silicon Graphics, Inc.
f0ab104f070bc7f569404826fea1828ed985638cvboxsync */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsynctypedef struct __GLXcontextRec __GLXcontext;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#include "GL/internal/glcore.h"
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsyncstruct __GLXcontextRec {
f0ab104f070bc7f569404826fea1828ed985638cvboxsync /*
f0ab104f070bc7f569404826fea1828ed985638cvboxsync ** list of context structs
f0ab104f070bc7f569404826fea1828ed985638cvboxsync */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync struct __GLXcontextRec *last;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync struct __GLXcontextRec *next;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync /*
f0ab104f070bc7f569404826fea1828ed985638cvboxsync ** Pointer to screen info data for this context. This is set
f0ab104f070bc7f569404826fea1828ed985638cvboxsync ** when the context is created.
f0ab104f070bc7f569404826fea1828ed985638cvboxsync */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync ScreenPtr pScreen;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync __GLXscreenInfo *pGlxScreen;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync /*
f0ab104f070bc7f569404826fea1828ed985638cvboxsync ** This context is created with respect to this visual.
f0ab104f070bc7f569404826fea1828ed985638cvboxsync */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync VisualRec *pVisual;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync __GLXvisualConfig *pGlxVisual;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync __GLXFBConfig *pFBConfig;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync /*
f0ab104f070bc7f569404826fea1828ed985638cvboxsync ** The XID of this context.
f0ab104f070bc7f569404826fea1828ed985638cvboxsync */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync XID id;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync XID *real_ids;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync /*
f0ab104f070bc7f569404826fea1828ed985638cvboxsync ** The XID of the shareList context.
f0ab104f070bc7f569404826fea1828ed985638cvboxsync */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync XID share_id;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync /*
f0ab104f070bc7f569404826fea1828ed985638cvboxsync ** Visual id.
f0ab104f070bc7f569404826fea1828ed985638cvboxsync */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync VisualID vid;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync VisualID *real_vids;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync /*
f0ab104f070bc7f569404826fea1828ed985638cvboxsync ** screen number.
f0ab104f070bc7f569404826fea1828ed985638cvboxsync */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync GLint screen;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync /*
f0ab104f070bc7f569404826fea1828ed985638cvboxsync ** Whether this context's ID still exists.
f0ab104f070bc7f569404826fea1828ed985638cvboxsync */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync GLboolean idExists;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync /*
f0ab104f070bc7f569404826fea1828ed985638cvboxsync ** Whether this context is current for some client.
f0ab104f070bc7f569404826fea1828ed985638cvboxsync */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync GLboolean isCurrent;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync /*
f0ab104f070bc7f569404826fea1828ed985638cvboxsync ** Buffers for feedback and selection.
f0ab104f070bc7f569404826fea1828ed985638cvboxsync */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync GLfloat *feedbackBuf;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync GLint feedbackBufSize; /* number of elements allocated */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync GLuint *selectBuf;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync GLint selectBufSize; /* number of elements allocated */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync /*
f0ab104f070bc7f569404826fea1828ed985638cvboxsync ** Set only if current drawable is a glx pixmap.
f0ab104f070bc7f569404826fea1828ed985638cvboxsync */
f0ab104f070bc7f569404826fea1828ed985638cvboxsync __GLXpixmap *pGlxPixmap;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync __GLXpixmap *pGlxReadPixmap;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync __glXWindow *pGlxWindow;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync __glXWindow *pGlxReadWindow;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync __glXPbuffer *pGlxPbuffer;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync __glXPbuffer *pGlxReadPbuffer;
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync};
f0ab104f070bc7f569404826fea1828ed985638cvboxsync
f0ab104f070bc7f569404826fea1828ed985638cvboxsync#endif /* !__GLX_context_h__ */