31734da27b3f913bfb1da241a2e2571f33ab4629Mark de Reeper#ifdef HAVE_DIX_CONFIG_H
31734da27b3f913bfb1da241a2e2571f33ab4629Mark de Reeper#include <dix-config.h>
31734da27b3f913bfb1da241a2e2571f33ab4629Mark de Reeper#endif
31734da27b3f913bfb1da241a2e2571f33ab4629Mark de Reeper
31734da27b3f913bfb1da241a2e2571f33ab4629Mark de Reeper#include <X11/Xwindows.h>
31734da27b3f913bfb1da241a2e2571f33ab4629Mark de Reeper#include <GL/gl.h>
31734da27b3f913bfb1da241a2e2571f33ab4629Mark de Reeper#include <GL/glext.h>
31734da27b3f913bfb1da241a2e2571f33ab4629Mark de Reeper
31734da27b3f913bfb1da241a2e2571f33ab4629Mark de Reeper#include <glxserver.h>
31734da27b3f913bfb1da241a2e2571f33ab4629Mark de Reeper#include <glxext.h>
31734da27b3f913bfb1da241a2e2571f33ab4629Mark de Reeper
31734da27b3f913bfb1da241a2e2571f33ab4629Mark de Reeper#include <windowstr.h>
31734da27b3f913bfb1da241a2e2571f33ab4629Mark de Reeper#include <resource.h>
31734da27b3f913bfb1da241a2e2571f33ab4629Mark de Reeper#include <GL/glxint.h>
31734da27b3f913bfb1da241a2e2571f33ab4629Mark de Reeper#include <GL/glxtokens.h>
31734da27b3f913bfb1da241a2e2571f33ab4629Mark de Reeper#include <scrnintstr.h>
31734da27b3f913bfb1da241a2e2571f33ab4629Mark de Reeper#include <glxserver.h>
31734da27b3f913bfb1da241a2e2571f33ab4629Mark de Reeper#include <glxscreens.h>
31734da27b3f913bfb1da241a2e2571f33ab4629Mark de Reeper#include <glxdrawable.h>
31734da27b3f913bfb1da241a2e2571f33ab4629Mark de Reeper#include <glxcontext.h>
31734da27b3f913bfb1da241a2e2571f33ab4629Mark de Reeper#include <glxext.h>
31734da27b3f913bfb1da241a2e2571f33ab4629Mark de Reeper#include <glxutil.h>
31734da27b3f913bfb1da241a2e2571f33ab4629Mark de Reeper#include <glxscreens.h>
31734da27b3f913bfb1da241a2e2571f33ab4629Mark de Reeper#include <GL/internal/glcore.h>
31734da27b3f913bfb1da241a2e2571f33ab4629Mark de Reeper#include <stdlib.h>
31734da27b3f913bfb1da241a2e2571f33ab4629Mark de Reeper
31734da27b3f913bfb1da241a2e2571f33ab4629Mark de Reeper
31734da27b3f913bfb1da241a2e2571f33ab4629Mark de Reepertypedef struct {
31734da27b3f913bfb1da241a2e2571f33ab4629Mark de Reeper unsigned enableDebug : 1;
31734da27b3f913bfb1da241a2e2571f33ab4629Mark de Reeper unsigned enableTrace : 1;
31734da27b3f913bfb1da241a2e2571f33ab4629Mark de Reeper unsigned dumpPFD : 1;
31734da27b3f913bfb1da241a2e2571f33ab4629Mark de Reeper unsigned dumpHWND : 1;
31734da27b3f913bfb1da241a2e2571f33ab4629Mark de Reeper unsigned dumpDC : 1;
31734da27b3f913bfb1da241a2e2571f33ab4629Mark de Reeper} glWinDebugSettingsRec, *glWinDebugSettingsPtr;
31734da27b3f913bfb1da241a2e2571f33ab4629Mark de Reeperextern glWinDebugSettingsRec glWinDebugSettings;
31734da27b3f913bfb1da241a2e2571f33ab4629Mark de Reeper
31734da27b3f913bfb1da241a2e2571f33ab4629Mark de Reepertypedef struct {
int num_vis;
__GLcontextModes *modes;
void **priv;
/* wrapped screen functions */
RealizeWindowProcPtr RealizeWindow;
UnrealizeWindowProcPtr UnrealizeWindow;
CopyWindowProcPtr CopyWindow;
} glWinScreenRec;
extern glWinScreenRec glWinScreens[MAXSCREENS];
#define glWinGetScreenPriv(pScreen) &glWinScreens[pScreen->myNum]
#define glWinScreenPriv(pScreen) glWinScreenRec *pScreenPriv = glWinGetScreenPriv(pScreen);
#if 1
#define GLWIN_TRACE() if (glWinDebugSettings.enableTrace) ErrorF("%s:%d: Trace\n", __FUNCTION__, __LINE__ )
#define GLWIN_TRACE_MSG(msg, args...) if (glWinDebugSettings.enableTrace) ErrorF("%s:%d: " msg, __FUNCTION__, __LINE__, ##args )
#define GLWIN_DEBUG_MSG(msg, args...) if (glWinDebugSettings.enableDebug) ErrorF("%s:%d: " msg, __FUNCTION__, __LINE__, ##args )
#define GLWIN_DEBUG_MSG2(msg, args...) if (glWinDebugSettings.enableDebug) ErrorF(msg, ##args )
#else
#define GLWIN_TRACE()
#define GLWIN_TRACE_MSG(a, ...)
#define GLWIN_DEBUG_MSG(a, ...)
#define GLWIN_DEBUG_MSG2(a, ...)
#endif