{-# LANGUAGE MultiParamTypeClasses #-}
module Graphics.XHB.Requests.Internal.Instances.Glx () where
import Graphics.XHB.Gen.Glx
import Graphics.XHB.Requests.Internal.Classes
import Prelude (fmap)
import Data.Bifunctor (second)
import Graphics.XHB (getReply)

instance Request Render where
        requestIO (MkRender a b) conn = render conn a b

instance Request RenderLarge where
        requestIO req conn = renderLarge conn req

instance Request CreateContext where
        requestIO req conn = createContext conn req

instance Request DestroyContext where
        requestIO (MkDestroyContext a) conn = destroyContext conn a

instance RequestWithReply MakeCurrent MakeCurrentReply where
        requestWithReplyIO req conn
          = fmap (fmap (second MkMakeCurrentReply))
              (fmap getReply (makeCurrent conn req))

instance RequestWithReply IsDirect IsDirectReply where
        requestWithReplyIO (MkIsDirect a) conn
          = fmap (fmap (second MkIsDirectReply))
              (fmap getReply (isDirect conn a))

instance RequestWithReply QueryVersion QueryVersionReply where
        requestWithReplyIO (MkQueryVersion a b) conn
          = fmap getReply (queryVersion conn a b)

instance Request WaitGL where
        requestIO (MkWaitGL a) conn = waitGL conn a

instance Request WaitX where
        requestIO (MkWaitX a) conn = waitX conn a

instance Request CopyContext where
        requestIO req conn = copyContext conn req

instance Request SwapBuffers where
        requestIO (MkSwapBuffers a b) conn = swapBuffers conn a b

instance Request UseXFont where
        requestIO req conn = useXFont conn req

instance Request CreateGLXPixmap where
        requestIO req conn = createGLXPixmap conn req

instance RequestWithReply GetVisualConfigs GetVisualConfigsReply
         where
        requestWithReplyIO (MkGetVisualConfigs a) conn
          = fmap getReply (getVisualConfigs conn a)

instance Request DestroyGLXPixmap where
        requestIO (MkDestroyGLXPixmap a) conn = destroyGLXPixmap conn a

instance Request VendorPrivate where
        requestIO req conn = vendorPrivate conn req

instance RequestWithReply VendorPrivateWithReply
         VendorPrivateWithReplyReply where
        requestWithReplyIO req conn
          = fmap getReply (vendorPrivateWithReply conn req)

instance RequestWithReply QueryExtensionsString
         QueryExtensionsStringReply where
        requestWithReplyIO (MkQueryExtensionsString a) conn
          = fmap (fmap (second MkQueryExtensionsStringReply))
              (fmap getReply (queryExtensionsString conn a))

instance RequestWithReply QueryServerString QueryServerStringReply
         where
        requestWithReplyIO (MkQueryServerString a b) conn
          = fmap getReply (queryServerString conn a b)

instance Request ClientInfo where
        requestIO req conn = clientInfo conn req

instance RequestWithReply GetFBConfigs GetFBConfigsReply where
        requestWithReplyIO (MkGetFBConfigs a) conn
          = fmap getReply (getFBConfigs conn a)

instance Request CreatePixmap where
        requestIO req conn = createPixmap conn req

instance Request DestroyPixmap where
        requestIO (MkDestroyPixmap a) conn = destroyPixmap conn a

instance Request CreateNewContext where
        requestIO req conn = createNewContext conn req

instance RequestWithReply QueryContext QueryContextReply where
        requestWithReplyIO (MkQueryContext a) conn
          = fmap getReply (queryContext conn a)

instance RequestWithReply MakeContextCurrent
         MakeContextCurrentReply where
        requestWithReplyIO req conn
          = fmap (fmap (second MkMakeContextCurrentReply))
              (fmap getReply (makeContextCurrent conn req))

instance Request CreatePbuffer where
        requestIO req conn = createPbuffer conn req

instance Request DestroyPbuffer where
        requestIO (MkDestroyPbuffer a) conn = destroyPbuffer conn a

instance RequestWithReply GetDrawableAttributes
         GetDrawableAttributesReply where
        requestWithReplyIO (MkGetDrawableAttributes a) conn
          = fmap getReply (getDrawableAttributes conn a)

instance Request ChangeDrawableAttributes where
        requestIO req conn = changeDrawableAttributes conn req

instance Request CreateWindow where
        requestIO req conn = createWindow conn req

instance Request DeleteWindow where
        requestIO (MkDeleteWindow a) conn = deleteWindow conn a

instance Request NewList where
        requestIO req conn = newList conn req

instance Request EndList where
        requestIO (MkEndList a) conn = endList conn a

instance Request DeleteLists where
        requestIO req conn = deleteLists conn req

instance RequestWithReply GenLists GenListsReply where
        requestWithReplyIO (MkGenLists a b) conn
          = fmap (fmap (second MkGenListsReply))
              (fmap getReply (genLists conn a b))

instance Request FeedbackBuffer where
        requestIO req conn = feedbackBuffer conn req

instance Request SelectBuffer where
        requestIO (MkSelectBuffer a b) conn = selectBuffer conn a b

instance RequestWithReply RenderMode RenderModeReply where
        requestWithReplyIO (MkRenderMode a b) conn
          = fmap getReply (renderMode conn a b)

instance RequestWithReply Finish FinishReply where
        requestWithReplyIO (MkFinish a) conn
          = fmap getReply (finish conn a)

instance Request PixelStoref where
        requestIO req conn = pixelStoref conn req

instance Request PixelStorei where
        requestIO req conn = pixelStorei conn req

instance RequestWithReply ReadPixels ReadPixelsReply where
        requestWithReplyIO req conn
          = fmap (fmap (second MkReadPixelsReply))
              (fmap getReply (readPixels conn req))

instance RequestWithReply GetBooleanv GetBooleanvReply where
        requestWithReplyIO (MkGetBooleanv a b) conn
          = fmap getReply (getBooleanv conn a b)

instance RequestWithReply GetClipPlane GetClipPlaneReply where
        requestWithReplyIO (MkGetClipPlane a b) conn
          = fmap (fmap (second MkGetClipPlaneReply))
              (fmap getReply (getClipPlane conn a b))

instance RequestWithReply GetDoublev GetDoublevReply where
        requestWithReplyIO (MkGetDoublev a b) conn
          = fmap getReply (getDoublev conn a b)

instance RequestWithReply GetError GetErrorReply where
        requestWithReplyIO (MkGetError a) conn
          = fmap (fmap (second MkGetErrorReply))
              (fmap getReply (getError conn a))

instance RequestWithReply GetFloatv GetFloatvReply where
        requestWithReplyIO (MkGetFloatv a b) conn
          = fmap getReply (getFloatv conn a b)

instance RequestWithReply GetIntegerv GetIntegervReply where
        requestWithReplyIO (MkGetIntegerv a b) conn
          = fmap getReply (getIntegerv conn a b)

instance RequestWithReply GetLightfv GetLightfvReply where
        requestWithReplyIO req conn = fmap getReply (getLightfv conn req)

instance RequestWithReply GetLightiv GetLightivReply where
        requestWithReplyIO req conn = fmap getReply (getLightiv conn req)

instance RequestWithReply GetMapdv GetMapdvReply where
        requestWithReplyIO req conn = fmap getReply (getMapdv conn req)

instance RequestWithReply GetMapfv GetMapfvReply where
        requestWithReplyIO req conn = fmap getReply (getMapfv conn req)

instance RequestWithReply GetMapiv GetMapivReply where
        requestWithReplyIO req conn = fmap getReply (getMapiv conn req)

instance RequestWithReply GetMaterialfv GetMaterialfvReply where
        requestWithReplyIO req conn
          = fmap getReply (getMaterialfv conn req)

instance RequestWithReply GetMaterialiv GetMaterialivReply where
        requestWithReplyIO req conn
          = fmap getReply (getMaterialiv conn req)

instance RequestWithReply GetPixelMapfv GetPixelMapfvReply where
        requestWithReplyIO (MkGetPixelMapfv a b) conn
          = fmap getReply (getPixelMapfv conn a b)

instance RequestWithReply GetPixelMapuiv GetPixelMapuivReply where
        requestWithReplyIO (MkGetPixelMapuiv a b) conn
          = fmap getReply (getPixelMapuiv conn a b)

instance RequestWithReply GetPixelMapusv GetPixelMapusvReply where
        requestWithReplyIO (MkGetPixelMapusv a b) conn
          = fmap getReply (getPixelMapusv conn a b)

instance RequestWithReply GetPolygonStipple GetPolygonStippleReply
         where
        requestWithReplyIO (MkGetPolygonStipple a b) conn
          = fmap (fmap (second MkGetPolygonStippleReply))
              (fmap getReply (getPolygonStipple conn a b))

instance RequestWithReply GetString GetStringReply where
        requestWithReplyIO (MkGetString a b) conn
          = fmap getReply (getString conn a b)

instance RequestWithReply GetTexEnvfv GetTexEnvfvReply where
        requestWithReplyIO req conn = fmap getReply (getTexEnvfv conn req)

instance RequestWithReply GetTexEnviv GetTexEnvivReply where
        requestWithReplyIO req conn = fmap getReply (getTexEnviv conn req)

instance RequestWithReply GetTexGendv GetTexGendvReply where
        requestWithReplyIO req conn = fmap getReply (getTexGendv conn req)

instance RequestWithReply GetTexGenfv GetTexGenfvReply where
        requestWithReplyIO req conn = fmap getReply (getTexGenfv conn req)

instance RequestWithReply GetTexGeniv GetTexGenivReply where
        requestWithReplyIO req conn = fmap getReply (getTexGeniv conn req)

instance RequestWithReply GetTexImage GetTexImageReply where
        requestWithReplyIO req conn = fmap getReply (getTexImage conn req)

instance RequestWithReply GetTexParameterfv GetTexParameterfvReply
         where
        requestWithReplyIO req conn
          = fmap getReply (getTexParameterfv conn req)

instance RequestWithReply GetTexParameteriv GetTexParameterivReply
         where
        requestWithReplyIO req conn
          = fmap getReply (getTexParameteriv conn req)

instance RequestWithReply GetTexLevelParameterfv
         GetTexLevelParameterfvReply where
        requestWithReplyIO req conn
          = fmap getReply (getTexLevelParameterfv conn req)

instance RequestWithReply GetTexLevelParameteriv
         GetTexLevelParameterivReply where
        requestWithReplyIO req conn
          = fmap getReply (getTexLevelParameteriv conn req)

instance RequestWithReply IsList IsListReply where
        requestWithReplyIO (MkIsList a b) conn
          = fmap (fmap (second MkIsListReply))
              (fmap getReply (isList conn a b))

instance Request Flush where
        requestIO (MkFlush a) conn = flush conn a

instance RequestWithReply AreTexturesResident
         AreTexturesResidentReply where
        requestWithReplyIO req conn
          = fmap getReply (areTexturesResident conn req)

instance Request DeleteTextures where
        requestIO req conn = deleteTextures conn req

instance RequestWithReply GenTextures GenTexturesReply where
        requestWithReplyIO (MkGenTextures a b) conn
          = fmap (fmap (second MkGenTexturesReply))
              (fmap getReply (genTextures conn a b))

instance RequestWithReply IsTexture IsTextureReply where
        requestWithReplyIO (MkIsTexture a b) conn
          = fmap (fmap (second MkIsTextureReply))
              (fmap getReply (isTexture conn a b))

instance RequestWithReply GetColorTable GetColorTableReply where
        requestWithReplyIO req conn
          = fmap getReply (getColorTable conn req)

instance RequestWithReply GetColorTableParameterfv
         GetColorTableParameterfvReply where
        requestWithReplyIO req conn
          = fmap getReply (getColorTableParameterfv conn req)

instance RequestWithReply GetColorTableParameteriv
         GetColorTableParameterivReply where
        requestWithReplyIO req conn
          = fmap getReply (getColorTableParameteriv conn req)

instance RequestWithReply GetConvolutionFilter
         GetConvolutionFilterReply where
        requestWithReplyIO req conn
          = fmap getReply (getConvolutionFilter conn req)

instance RequestWithReply GetConvolutionParameterfv
         GetConvolutionParameterfvReply where
        requestWithReplyIO req conn
          = fmap getReply (getConvolutionParameterfv conn req)

instance RequestWithReply GetConvolutionParameteriv
         GetConvolutionParameterivReply where
        requestWithReplyIO req conn
          = fmap getReply (getConvolutionParameteriv conn req)

instance RequestWithReply GetSeparableFilter
         GetSeparableFilterReply where
        requestWithReplyIO req conn
          = fmap getReply (getSeparableFilter conn req)

instance RequestWithReply GetHistogram GetHistogramReply where
        requestWithReplyIO req conn = fmap getReply (getHistogram conn req)

instance RequestWithReply GetHistogramParameterfv
         GetHistogramParameterfvReply where
        requestWithReplyIO req conn
          = fmap getReply (getHistogramParameterfv conn req)

instance RequestWithReply GetHistogramParameteriv
         GetHistogramParameterivReply where
        requestWithReplyIO req conn
          = fmap getReply (getHistogramParameteriv conn req)

instance RequestWithReply GetMinmax GetMinmaxReply where
        requestWithReplyIO req conn
          = fmap (fmap (second MkGetMinmaxReply))
              (fmap getReply (getMinmax conn req))

instance RequestWithReply GetMinmaxParameterfv
         GetMinmaxParameterfvReply where
        requestWithReplyIO req conn
          = fmap getReply (getMinmaxParameterfv conn req)

instance RequestWithReply GetMinmaxParameteriv
         GetMinmaxParameterivReply where
        requestWithReplyIO req conn
          = fmap getReply (getMinmaxParameteriv conn req)

instance RequestWithReply GetCompressedTexImageARB
         GetCompressedTexImageARBReply where
        requestWithReplyIO req conn
          = fmap getReply (getCompressedTexImageARB conn req)

instance Request DeleteQueriesARB where
        requestIO req conn = deleteQueriesARB conn req

instance RequestWithReply GenQueriesARB GenQueriesARBReply where
        requestWithReplyIO (MkGenQueriesARB a b) conn
          = fmap (fmap (second MkGenQueriesARBReply))
              (fmap getReply (genQueriesARB conn a b))

instance RequestWithReply IsQueryARB IsQueryARBReply where
        requestWithReplyIO (MkIsQueryARB a b) conn
          = fmap (fmap (second MkIsQueryARBReply))
              (fmap getReply (isQueryARB conn a b))

instance RequestWithReply GetQueryivARB GetQueryivARBReply where
        requestWithReplyIO req conn
          = fmap getReply (getQueryivARB conn req)

instance RequestWithReply GetQueryObjectivARB
         GetQueryObjectivARBReply where
        requestWithReplyIO req conn
          = fmap getReply (getQueryObjectivARB conn req)

instance RequestWithReply GetQueryObjectuivARB
         GetQueryObjectuivARBReply where
        requestWithReplyIO req conn
          = fmap getReply (getQueryObjectuivARB conn req)