/*
 * THIS FILE IS AUTOMATICALLY GENERATED BY gen_scrn_dispatch.pl
 * DO NOT EDIT!!
 */
#ifndef __glxlibglvnd_dispatchindex_h__
#define __glxlibglvnd_dispatchindex_h__

typedef enum __GLXdispatchIndex {
    DI_BindSwapBarrierSGIX,
    DI_BindTexImageEXT,
    // ChooseFBConfig implemented by libglvnd
    DI_ChooseFBConfigSGIX,
    // ChooseVisual implemented by libglvnd
    // CopyContext implemented by libglvnd
    DI_CopySubBufferMESA,
    // CreateContext implemented by libglvnd
    DI_CreateContextAttribsARB,
    DI_CreateContextWithConfigSGIX,
    DI_CreateGLXPbufferSGIX,
    // CreateGLXPixmap implemented by libglvnd
    DI_CreateGLXPixmapMESA,
    DI_CreateGLXPixmapWithConfigSGIX,
    // CreateNewContext implemented by libglvnd
    // CreatePbuffer implemented by libglvnd
    // CreatePixmap implemented by libglvnd
    // CreateWindow implemented by libglvnd
    // DestroyContext implemented by libglvnd
    DI_DestroyGLXPbufferSGIX,
    // DestroyGLXPixmap implemented by libglvnd
    // DestroyPbuffer implemented by libglvnd
    // DestroyPixmap implemented by libglvnd
    // DestroyWindow implemented by libglvnd
    // FreeContextEXT implemented by libglvnd
    // GetClientString implemented by libglvnd
    // GetConfig implemented by libglvnd
    DI_GetContextIDEXT,
    // GetCurrentContext implemented by libglvnd
    // GetCurrentDisplay implemented by libglvnd
    DI_GetCurrentDisplayEXT,
    // GetCurrentDrawable implemented by libglvnd
    // GetCurrentReadDrawable implemented by libglvnd
    DI_GetDriverConfig,
    // GetFBConfigAttrib implemented by libglvnd
    DI_GetFBConfigAttribSGIX,
    DI_GetFBConfigFromVisualSGIX,
    // GetFBConfigs implemented by libglvnd
    DI_GetMscRateOML,
    // GetProcAddress implemented by libglvnd
    // GetProcAddressARB implemented by libglvnd
    DI_GetScreenDriver,
    // GetSelectedEvent implemented by libglvnd
    DI_GetSelectedEventSGIX,
    DI_GetSwapIntervalMESA,
    DI_GetSyncValuesOML,
    DI_GetVideoSyncSGI,
    // GetVisualFromFBConfig implemented by libglvnd
    DI_GetVisualFromFBConfigSGIX,
    // ImportContextEXT implemented by libglvnd
    // IsDirect implemented by libglvnd
    DI_JoinSwapGroupSGIX,
    // MakeContextCurrent implemented by libglvnd
    // MakeCurrent implemented by libglvnd
    // QueryContext implemented by libglvnd
    DI_QueryContextInfoEXT,
    DI_QueryCurrentRendererIntegerMESA,
    DI_QueryCurrentRendererStringMESA,
    // QueryDrawable implemented by libglvnd
    // QueryExtension implemented by libglvnd
    // QueryExtensionsString implemented by libglvnd
    DI_QueryGLXPbufferSGIX,
    DI_QueryMaxSwapBarriersSGIX,
    DI_QueryRendererIntegerMESA,
    DI_QueryRendererStringMESA,
    // QueryServerString implemented by libglvnd
    // QueryVersion implemented by libglvnd
    DI_ReleaseBuffersMESA,
    DI_ReleaseTexImageEXT,
    // SelectEvent implemented by libglvnd
    DI_SelectEventSGIX,
    // SwapBuffers implemented by libglvnd
    DI_SwapBuffersMscOML,
    DI_SwapIntervalMESA,
    DI_SwapIntervalSGI,
    // UseXFont implemented by libglvnd
    DI_WaitForMscOML,
    DI_WaitForSbcOML,
    // WaitGL implemented by libglvnd
    DI_WaitVideoSyncSGI,
    // WaitX implemented by libglvnd
    DI_LAST_INDEX
} __GLXdispatchIndex;

#endif // __glxlibglvnd_dispatchindex_h__
