-- GENERATED by C->Haskell Compiler, version 0.16.3 Crystal Seed, 24 Jan 2009 (Haskell)
-- Edit the ORIGNAL .chs file instead!


{-# LINE 1 ".\\HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs" #-}{-# LANGUAGE ForeignFunctionInterface #-}
{-# LANGUAGE TypeSynonymInstances #-}

-- This source file is part of HGamer3D
-- (A project to enable 3D game development in Haskell)
-- For the latest info, see http://www.althainz.de/HGamer3D.html
-- 

-- (c) 2011-2013 Peter Althainz
-- 
-- The files are part of HGamer3D (www.hgamer3d.org)
-- 
-- Licensed under the Apache License, Version 2.0 (the "License");
-- you may not use this file except in compliance with the License.
-- You may obtain a copy of the License at
-- 
--     http://www.apache.org/licenses/LICENSE-2.0
-- 
-- Unless required by applicable law or agreed to in writing, software
-- distributed under the License is distributed on an "AS IS" BASIS,
-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-- See the License for the specific language governing permissions and
-- limitations under the License.
-- 


-- ClassRenderSystem.chs

-- 

module HGamer3D.Bindings.Ogre.ClassRenderSystem where

import Foreign
import Foreign.Ptr
import Foreign.C

import HGamer3D.Data.HG3DClass
import HGamer3D.Data.Vector
import HGamer3D.Data.Colour
import HGamer3D.Data.Angle

import HGamer3D.Bindings.Ogre.Utils
{-# LINE 42 ".\\HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs" #-}
import HGamer3D.Bindings.Ogre.ClassPtr
{-# LINE 43 ".\\HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs" #-}
import HGamer3D.Bindings.Ogre.StructHG3DClass
{-# LINE 44 ".\\HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs" #-}
import HGamer3D.Bindings.Ogre.StructColour
{-# LINE 45 ".\\HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs" #-}
import HGamer3D.Bindings.Ogre.EnumGpuProgramType
{-# LINE 46 ".\\HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs" #-}

{- function ~RenderSystem -}
delete :: HG3DClass -> IO ()
delete a1 =
  withHG3DClass a1 $ \a1' -> 
  delete'_ a1' >>= \res ->
  return ()
{-# LINE 51 ".\\HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs" #-}

{- function getName -}
getName :: HG3DClass -> IO (String)
getName a1 =
  withHG3DClass a1 $ \a1' -> 
  alloc64k $ \a2' -> 
  getName'_ a1' a2' >>= \res ->
  peekCString  a2'>>= \a2'' -> 
  return (a2'')
{-# LINE 56 ".\\HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs" #-}

{- function setConfigOption -}
setConfigOption :: HG3DClass -> String -> String -> IO ()
setConfigOption a1 a2 a3 =
  withHG3DClass a1 $ \a1' -> 
  withCString a2 $ \a2' -> 
  withCString a3 $ \a3' -> 
  setConfigOption'_ a1' a2' a3' >>= \res ->
  return ()
{-# LINE 62 ".\\HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs" #-}

{- function validateConfigOptions -}
validateConfigOptions :: HG3DClass -> IO (String)
validateConfigOptions a1 =
  withHG3DClass a1 $ \a1' -> 
  alloc64k $ \a2' -> 
  validateConfigOptions'_ a1' a2' >>= \res ->
  peekCString  a2'>>= \a2'' -> 
  return (a2'')
{-# LINE 67 ".\\HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs" #-}

{- function reinitialise -}
reinitialise :: HG3DClass -> IO ()
reinitialise a1 =
  withHG3DClass a1 $ \a1' -> 
  reinitialise'_ a1' >>= \res ->
  return ()
{-# LINE 71 ".\\HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs" #-}

{- function shutdown -}
shutdown :: HG3DClass -> IO ()
shutdown a1 =
  withHG3DClass a1 $ \a1' -> 
  shutdown'_ a1' >>= \res ->
  return ()
{-# LINE 75 ".\\HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs" #-}

{- function setAmbientLight -}
setAmbientLight :: HG3DClass -> Float -> Float -> Float -> IO ()
setAmbientLight a1 a2 a3 a4 =
  withHG3DClass a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  let {a3' = realToFrac a3} in 
  let {a4' = realToFrac a4} in 
  setAmbientLight'_ a1' a2' a3' a4' >>= \res ->
  return ()
{-# LINE 82 ".\\HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs" #-}

{- function setLightingEnabled -}
setLightingEnabled :: HG3DClass -> Bool -> IO ()
setLightingEnabled a1 a2 =
  withHG3DClass a1 $ \a1' -> 
  let {a2' = fromBool a2} in 
  setLightingEnabled'_ a1' a2' >>= \res ->
  return ()
{-# LINE 87 ".\\HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs" #-}

{- function setWBufferEnabled -}
setWBufferEnabled :: HG3DClass -> Bool -> IO ()
setWBufferEnabled a1 a2 =
  withHG3DClass a1 $ \a1' -> 
  let {a2' = fromBool a2} in 
  setWBufferEnabled'_ a1' a2' >>= \res ->
  return ()
{-# LINE 92 ".\\HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs" #-}

{- function getWBufferEnabled -}
getWBufferEnabled :: HG3DClass -> IO (Bool)
getWBufferEnabled a1 =
  withHG3DClass a1 $ \a1' -> 
  alloca $ \a2' -> 
  getWBufferEnabled'_ a1' a2' >>= \res ->
  peekBoolUtil  a2'>>= \a2'' -> 
  return (a2'')
{-# LINE 97 ".\\HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs" #-}

{- function createMultiRenderTarget -}
createMultiRenderTarget :: HG3DClass -> String -> IO (HG3DClass)
createMultiRenderTarget a1 a2 =
  withHG3DClass a1 $ \a1' -> 
  withCString a2 $ \a2' -> 
  alloca $ \a3' -> 
  createMultiRenderTarget'_ a1' a2' a3' >>= \res ->
  peek  a3'>>= \a3'' -> 
  return (a3'')
{-# LINE 103 ".\\HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs" #-}

{- function destroyRenderWindow -}
destroyRenderWindow :: HG3DClass -> String -> IO ()
destroyRenderWindow a1 a2 =
  withHG3DClass a1 $ \a1' -> 
  withCString a2 $ \a2' -> 
  destroyRenderWindow'_ a1' a2' >>= \res ->
  return ()
{-# LINE 108 ".\\HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs" #-}

{- function destroyRenderTexture -}
destroyRenderTexture :: HG3DClass -> String -> IO ()
destroyRenderTexture a1 a2 =
  withHG3DClass a1 $ \a1' -> 
  withCString a2 $ \a2' -> 
  destroyRenderTexture'_ a1' a2' >>= \res ->
  return ()
{-# LINE 113 ".\\HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs" #-}

{- function destroyRenderTarget -}
destroyRenderTarget :: HG3DClass -> String -> IO ()
destroyRenderTarget a1 a2 =
  withHG3DClass a1 $ \a1' -> 
  withCString a2 $ \a2' -> 
  destroyRenderTarget'_ a1' a2' >>= \res ->
  return ()
{-# LINE 118 ".\\HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs" #-}

{- function attachRenderTarget -}
attachRenderTarget :: HG3DClass -> HG3DClass -> IO ()
attachRenderTarget a1 a2 =
  withHG3DClass a1 $ \a1' -> 
  withHG3DClass a2 $ \a2' -> 
  attachRenderTarget'_ a1' a2' >>= \res ->
  return ()
{-# LINE 123 ".\\HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs" #-}

{- function getRenderTarget -}
getRenderTarget :: HG3DClass -> String -> IO (HG3DClass)
getRenderTarget a1 a2 =
  withHG3DClass a1 $ \a1' -> 
  withCString a2 $ \a2' -> 
  alloca $ \a3' -> 
  getRenderTarget'_ a1' a2' a3' >>= \res ->
  peek  a3'>>= \a3'' -> 
  return (a3'')
{-# LINE 129 ".\\HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs" #-}

{- function detachRenderTarget -}
detachRenderTarget :: HG3DClass -> String -> IO (HG3DClass)
detachRenderTarget a1 a2 =
  withHG3DClass a1 $ \a1' -> 
  withCString a2 $ \a2' -> 
  alloca $ \a3' -> 
  detachRenderTarget'_ a1' a2' a3' >>= \res ->
  peek  a3'>>= \a3'' -> 
  return (a3'')
{-# LINE 135 ".\\HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs" #-}

{- function getErrorDescription -}
getErrorDescription :: HG3DClass -> Int -> IO (String)
getErrorDescription a1 a2 =
  withHG3DClass a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  alloc64k $ \a3' -> 
  getErrorDescription'_ a1' a2' a3' >>= \res ->
  peekCString  a3'>>= \a3'' -> 
  return (a3'')
{-# LINE 141 ".\\HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs" #-}

{- function setWaitForVerticalBlank -}
setWaitForVerticalBlank :: HG3DClass -> Bool -> IO ()
setWaitForVerticalBlank a1 a2 =
  withHG3DClass a1 $ \a1' -> 
  let {a2' = fromBool a2} in 
  setWaitForVerticalBlank'_ a1' a2' >>= \res ->
  return ()
{-# LINE 146 ".\\HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs" #-}

{- function getWaitForVerticalBlank -}
getWaitForVerticalBlank :: HG3DClass -> IO (Bool)
getWaitForVerticalBlank a1 =
  withHG3DClass a1 $ \a1' -> 
  alloca $ \a2' -> 
  getWaitForVerticalBlank'_ a1' a2' >>= \res ->
  peekBoolUtil  a2'>>= \a2'' -> 
  return (a2'')
{-# LINE 151 ".\\HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs" #-}

{- function getGlobalNumberOfInstances -}
getGlobalNumberOfInstances :: HG3DClass -> IO (Int)
getGlobalNumberOfInstances a1 =
  withHG3DClass a1 $ \a1' -> 
  alloca $ \a2' -> 
  getGlobalNumberOfInstances'_ a1' a2' >>= \res ->
  peekIntConv  a2'>>= \a2'' -> 
  return (a2'')
{-# LINE 156 ".\\HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs" #-}

{- function setGlobalNumberOfInstances -}
setGlobalNumberOfInstances :: HG3DClass -> Int -> IO ()
setGlobalNumberOfInstances a1 a2 =
  withHG3DClass a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  setGlobalNumberOfInstances'_ a1' a2' >>= \res ->
  return ()
{-# LINE 161 ".\\HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs" #-}

{- function setFixedPipelineEnabled -}
setFixedPipelineEnabled :: HG3DClass -> Bool -> IO ()
setFixedPipelineEnabled a1 a2 =
  withHG3DClass a1 $ \a1' -> 
  let {a2' = fromBool a2} in 
  setFixedPipelineEnabled'_ a1' a2' >>= \res ->
  return ()
{-# LINE 166 ".\\HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs" #-}

{- function getFixedPipelineEnabled -}
getFixedPipelineEnabled :: HG3DClass -> IO (Bool)
getFixedPipelineEnabled a1 =
  withHG3DClass a1 $ \a1' -> 
  alloca $ \a2' -> 
  getFixedPipelineEnabled'_ a1' a2' >>= \res ->
  peekBoolUtil  a2'>>= \a2'' -> 
  return (a2'')
{-# LINE 171 ".\\HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs" #-}

{- function setDepthBufferFor -}
setDepthBufferFor :: HG3DClass -> HG3DClass -> IO ()
setDepthBufferFor a1 a2 =
  withHG3DClass a1 $ \a1' -> 
  withHG3DClass a2 $ \a2' -> 
  setDepthBufferFor'_ a1' a2' >>= \res ->
  return ()
{-# LINE 176 ".\\HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs" #-}

{- function areFixedFunctionLightsInViewSpace -}
areFixedFunctionLightsInViewSpace :: HG3DClass -> IO (Bool)
areFixedFunctionLightsInViewSpace a1 =
  withHG3DClass a1 $ \a1' -> 
  alloca $ \a2' -> 
  areFixedFunctionLightsInViewSpace'_ a1' a2' >>= \res ->
  peekBoolUtil  a2'>>= \a2'' -> 
  return (a2'')
{-# LINE 181 ".\\HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs" #-}

{- function convertColourValue -}
convertColourValue :: HG3DClass -> Colour -> IO (Int)
convertColourValue a1 a2 =
  withHG3DClass a1 $ \a1' -> 
  withColour a2 $ \a2' -> 
  alloca $ \a3' -> 
  convertColourValue'_ a1' a2' a3' >>= \res ->
  peekIntConv  a3'>>= \a3'' -> 
  return (a3'')
{-# LINE 187 ".\\HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs" #-}

{- function setStencilCheckEnabled -}
setStencilCheckEnabled :: HG3DClass -> Bool -> IO ()
setStencilCheckEnabled a1 a2 =
  withHG3DClass a1 $ \a1' -> 
  let {a2' = fromBool a2} in 
  setStencilCheckEnabled'_ a1' a2' >>= \res ->
  return ()
{-# LINE 192 ".\\HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs" #-}

{- function setNormaliseNormals -}
setNormaliseNormals :: HG3DClass -> Bool -> IO ()
setNormaliseNormals a1 a2 =
  withHG3DClass a1 $ \a1' -> 
  let {a2' = fromBool a2} in 
  setNormaliseNormals'_ a1' a2' >>= \res ->
  return ()
{-# LINE 197 ".\\HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs" #-}

{- function bindGpuProgramPassIterationParameters -}
bindGpuProgramPassIterationParameters :: HG3DClass -> EnumGpuProgramType -> IO ()
bindGpuProgramPassIterationParameters a1 a2 =
  withHG3DClass a1 $ \a1' -> 
  let {a2' = cIntFromEnum a2} in 
  bindGpuProgramPassIterationParameters'_ a1' a2' >>= \res ->
  return ()
{-# LINE 202 ".\\HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs" #-}

{- function unbindGpuProgram -}
unbindGpuProgram :: HG3DClass -> EnumGpuProgramType -> IO ()
unbindGpuProgram a1 a2 =
  withHG3DClass a1 $ \a1' -> 
  let {a2' = cIntFromEnum a2} in 
  unbindGpuProgram'_ a1' a2' >>= \res ->
  return ()
{-# LINE 207 ".\\HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs" #-}

{- function isGpuProgramBound -}
isGpuProgramBound :: HG3DClass -> EnumGpuProgramType -> IO (Bool)
isGpuProgramBound a1 a2 =
  withHG3DClass a1 $ \a1' -> 
  let {a2' = cIntFromEnum a2} in 
  alloca $ \a3' -> 
  isGpuProgramBound'_ a1' a2' a3' >>= \res ->
  peekBoolUtil  a3'>>= \a3'' -> 
  return (a3'')
{-# LINE 213 ".\\HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs" #-}

{- function addClipPlane2 -}
addClipPlane2 :: HG3DClass -> Float -> Float -> Float -> Float -> IO ()
addClipPlane2 a1 a2 a3 a4 a5 =
  withHG3DClass a1 $ \a1' -> 
  let {a2' = realToFrac a2} in 
  let {a3' = realToFrac a3} in 
  let {a4' = realToFrac a4} in 
  let {a5' = realToFrac a5} in 
  addClipPlane2'_ a1' a2' a3' a4' a5' >>= \res ->
  return ()
{-# LINE 221 ".\\HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs" #-}

{- function resetClipPlanes -}
resetClipPlanes :: HG3DClass -> IO ()
resetClipPlanes a1 =
  withHG3DClass a1 $ \a1' -> 
  resetClipPlanes'_ a1' >>= \res ->
  return ()
{-# LINE 225 ".\\HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs" #-}

{- function setInvertVertexWinding -}
setInvertVertexWinding :: HG3DClass -> Bool -> IO ()
setInvertVertexWinding a1 a2 =
  withHG3DClass a1 $ \a1' -> 
  let {a2' = fromBool a2} in 
  setInvertVertexWinding'_ a1' a2' >>= \res ->
  return ()
{-# LINE 230 ".\\HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs" #-}

{- function getInvertVertexWinding -}
getInvertVertexWinding :: HG3DClass -> IO (Bool)
getInvertVertexWinding a1 =
  withHG3DClass a1 $ \a1' -> 
  alloca $ \a2' -> 
  getInvertVertexWinding'_ a1' a2' >>= \res ->
  peekBoolUtil  a2'>>= \a2'' -> 
  return (a2'')
{-# LINE 235 ".\\HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs" #-}

{- function setScissorTest -}
setScissorTest :: HG3DClass -> Bool -> Int -> Int -> Int -> Int -> IO ()
setScissorTest a1 a2 a3 a4 a5 a6 =
  withHG3DClass a1 $ \a1' -> 
  let {a2' = fromBool a2} in 
  let {a3' = fromIntegral a3} in 
  let {a4' = fromIntegral a4} in 
  let {a5' = fromIntegral a5} in 
  let {a6' = fromIntegral a6} in 
  setScissorTest'_ a1' a2' a3' a4' a5' a6' >>= \res ->
  return ()
{-# LINE 244 ".\\HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs" #-}

{- function clearFrameBuffer -}
clearFrameBuffer :: HG3DClass -> Int -> Colour -> Float -> Int -> IO ()
clearFrameBuffer a1 a2 a3 a4 a5 =
  withHG3DClass a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  withColour a3 $ \a3' -> 
  let {a4' = realToFrac a4} in 
  let {a5' = fromIntegral a5} in 
  clearFrameBuffer'_ a1' a2' a3' a4' a5' >>= \res ->
  return ()
{-# LINE 252 ".\\HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs" #-}

{- function getHorizontalTexelOffset -}
getHorizontalTexelOffset :: HG3DClass -> IO (Float)
getHorizontalTexelOffset a1 =
  withHG3DClass a1 $ \a1' -> 
  alloca $ \a2' -> 
  getHorizontalTexelOffset'_ a1' a2' >>= \res ->
  peekFloatConv  a2'>>= \a2'' -> 
  return (a2'')
{-# LINE 257 ".\\HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs" #-}

{- function getVerticalTexelOffset -}
getVerticalTexelOffset :: HG3DClass -> IO (Float)
getVerticalTexelOffset a1 =
  withHG3DClass a1 $ \a1' -> 
  alloca $ \a2' -> 
  getVerticalTexelOffset'_ a1' a2' >>= \res ->
  peekFloatConv  a2'>>= \a2'' -> 
  return (a2'')
{-# LINE 262 ".\\HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs" #-}

{- function getMinimumDepthInputValue -}
getMinimumDepthInputValue :: HG3DClass -> IO (Float)
getMinimumDepthInputValue a1 =
  withHG3DClass a1 $ \a1' -> 
  alloca $ \a2' -> 
  getMinimumDepthInputValue'_ a1' a2' >>= \res ->
  peekFloatConv  a2'>>= \a2'' -> 
  return (a2'')
{-# LINE 267 ".\\HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs" #-}

{- function getMaximumDepthInputValue -}
getMaximumDepthInputValue :: HG3DClass -> IO (Float)
getMaximumDepthInputValue a1 =
  withHG3DClass a1 $ \a1' -> 
  alloca $ \a2' -> 
  getMaximumDepthInputValue'_ a1' a2' >>= \res ->
  peekFloatConv  a2'>>= \a2'' -> 
  return (a2'')
{-# LINE 272 ".\\HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs" #-}

{- function setCurrentPassIterationCount -}
setCurrentPassIterationCount :: HG3DClass -> Int -> IO ()
setCurrentPassIterationCount a1 a2 =
  withHG3DClass a1 $ \a1' -> 
  let {a2' = fromIntegral a2} in 
  setCurrentPassIterationCount'_ a1' a2' >>= \res ->
  return ()
{-# LINE 277 ".\\HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs" #-}

{- function setDeriveDepthBias -}
setDeriveDepthBias :: HG3DClass -> Bool -> Float -> Float -> Float -> IO ()
setDeriveDepthBias a1 a2 a3 a4 a5 =
  withHG3DClass a1 $ \a1' -> 
  let {a2' = fromBool a2} in 
  let {a3' = realToFrac a3} in 
  let {a4' = realToFrac a4} in 
  let {a5' = realToFrac a5} in 
  setDeriveDepthBias'_ a1' a2' a3' a4' a5' >>= \res ->
  return ()
{-# LINE 285 ".\\HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs" #-}

{- function preExtraThreadsStarted -}
preExtraThreadsStarted :: HG3DClass -> IO ()
preExtraThreadsStarted a1 =
  withHG3DClass a1 $ \a1' -> 
  preExtraThreadsStarted'_ a1' >>= \res ->
  return ()
{-# LINE 289 ".\\HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs" #-}

{- function postExtraThreadsStarted -}
postExtraThreadsStarted :: HG3DClass -> IO ()
postExtraThreadsStarted a1 =
  withHG3DClass a1 $ \a1' -> 
  postExtraThreadsStarted'_ a1' >>= \res ->
  return ()
{-# LINE 293 ".\\HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs" #-}

{- function registerThread -}
registerThread :: HG3DClass -> IO ()
registerThread a1 =
  withHG3DClass a1 $ \a1' -> 
  registerThread'_ a1' >>= \res ->
  return ()
{-# LINE 297 ".\\HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs" #-}

{- function unregisterThread -}
unregisterThread :: HG3DClass -> IO ()
unregisterThread a1 =
  withHG3DClass a1 $ \a1' -> 
  unregisterThread'_ a1' >>= \res ->
  return ()
{-# LINE 301 ".\\HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs" #-}

{- function getDisplayMonitorCount -}
getDisplayMonitorCount :: HG3DClass -> IO (Int)
getDisplayMonitorCount a1 =
  withHG3DClass a1 $ \a1' -> 
  alloca $ \a2' -> 
  getDisplayMonitorCount'_ a1' a2' >>= \res ->
  peekIntConv  a2'>>= \a2'' -> 
  return (a2'')
{-# LINE 306 ".\\HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs" #-}

{- function beginProfileEvent -}
beginProfileEvent :: HG3DClass -> String -> IO ()
beginProfileEvent a1 a2 =
  withHG3DClass a1 $ \a1' -> 
  withCString a2 $ \a2' -> 
  beginProfileEvent'_ a1' a2' >>= \res ->
  return ()
{-# LINE 311 ".\\HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs" #-}

{- function endProfileEvent -}
endProfileEvent :: HG3DClass -> IO ()
endProfileEvent a1 =
  withHG3DClass a1 $ \a1' -> 
  endProfileEvent'_ a1' >>= \res ->
  return ()
{-# LINE 315 ".\\HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs" #-}

{- function markProfileEvent -}
markProfileEvent :: HG3DClass -> String -> IO ()
markProfileEvent a1 a2 =
  withHG3DClass a1 $ \a1' -> 
  withCString a2 $ \a2' -> 
  markProfileEvent'_ a1' a2' >>= \res ->
  return ()
{-# LINE 320 ".\\HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs" #-}


foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs.h ogre_rds_destruct"
  delete'_ :: ((HG3DClassPtr) -> (IO ()))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs.h ogre_rds_getName"
  getName'_ :: ((HG3DClassPtr) -> ((Ptr CChar) -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs.h ogre_rds_setConfigOption"
  setConfigOption'_ :: ((HG3DClassPtr) -> ((Ptr CChar) -> ((Ptr CChar) -> (IO ()))))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs.h ogre_rds_validateConfigOptions"
  validateConfigOptions'_ :: ((HG3DClassPtr) -> ((Ptr CChar) -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs.h ogre_rds_reinitialise"
  reinitialise'_ :: ((HG3DClassPtr) -> (IO ()))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs.h ogre_rds_shutdown"
  shutdown'_ :: ((HG3DClassPtr) -> (IO ()))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs.h ogre_rds_setAmbientLight"
  setAmbientLight'_ :: ((HG3DClassPtr) -> (CFloat -> (CFloat -> (CFloat -> (IO ())))))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs.h ogre_rds_setLightingEnabled"
  setLightingEnabled'_ :: ((HG3DClassPtr) -> (CInt -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs.h ogre_rds_setWBufferEnabled"
  setWBufferEnabled'_ :: ((HG3DClassPtr) -> (CInt -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs.h ogre_rds_getWBufferEnabled"
  getWBufferEnabled'_ :: ((HG3DClassPtr) -> ((Ptr CInt) -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs.h ogre_rds_createMultiRenderTarget"
  createMultiRenderTarget'_ :: ((HG3DClassPtr) -> ((Ptr CChar) -> ((HG3DClassPtr) -> (IO ()))))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs.h ogre_rds_destroyRenderWindow"
  destroyRenderWindow'_ :: ((HG3DClassPtr) -> ((Ptr CChar) -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs.h ogre_rds_destroyRenderTexture"
  destroyRenderTexture'_ :: ((HG3DClassPtr) -> ((Ptr CChar) -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs.h ogre_rds_destroyRenderTarget"
  destroyRenderTarget'_ :: ((HG3DClassPtr) -> ((Ptr CChar) -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs.h ogre_rds_attachRenderTarget"
  attachRenderTarget'_ :: ((HG3DClassPtr) -> ((HG3DClassPtr) -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs.h ogre_rds_getRenderTarget"
  getRenderTarget'_ :: ((HG3DClassPtr) -> ((Ptr CChar) -> ((HG3DClassPtr) -> (IO ()))))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs.h ogre_rds_detachRenderTarget"
  detachRenderTarget'_ :: ((HG3DClassPtr) -> ((Ptr CChar) -> ((HG3DClassPtr) -> (IO ()))))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs.h ogre_rds_getErrorDescription"
  getErrorDescription'_ :: ((HG3DClassPtr) -> (CInt -> ((Ptr CChar) -> (IO ()))))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs.h ogre_rds_setWaitForVerticalBlank"
  setWaitForVerticalBlank'_ :: ((HG3DClassPtr) -> (CInt -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs.h ogre_rds_getWaitForVerticalBlank"
  getWaitForVerticalBlank'_ :: ((HG3DClassPtr) -> ((Ptr CInt) -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs.h ogre_rds_getGlobalNumberOfInstances"
  getGlobalNumberOfInstances'_ :: ((HG3DClassPtr) -> ((Ptr CInt) -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs.h ogre_rds_setGlobalNumberOfInstances"
  setGlobalNumberOfInstances'_ :: ((HG3DClassPtr) -> (CInt -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs.h ogre_rds_setFixedPipelineEnabled"
  setFixedPipelineEnabled'_ :: ((HG3DClassPtr) -> (CInt -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs.h ogre_rds_getFixedPipelineEnabled"
  getFixedPipelineEnabled'_ :: ((HG3DClassPtr) -> ((Ptr CInt) -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs.h ogre_rds_setDepthBufferFor"
  setDepthBufferFor'_ :: ((HG3DClassPtr) -> ((HG3DClassPtr) -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs.h ogre_rds_areFixedFunctionLightsInViewSpace"
  areFixedFunctionLightsInViewSpace'_ :: ((HG3DClassPtr) -> ((Ptr CInt) -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs.h ogre_rds_convertColourValue"
  convertColourValue'_ :: ((HG3DClassPtr) -> ((ColourPtr) -> ((Ptr CUInt) -> (IO ()))))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs.h ogre_rds_setStencilCheckEnabled"
  setStencilCheckEnabled'_ :: ((HG3DClassPtr) -> (CInt -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs.h ogre_rds_setNormaliseNormals"
  setNormaliseNormals'_ :: ((HG3DClassPtr) -> (CInt -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs.h ogre_rds_bindGpuProgramPassIterationParameters"
  bindGpuProgramPassIterationParameters'_ :: ((HG3DClassPtr) -> (CInt -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs.h ogre_rds_unbindGpuProgram"
  unbindGpuProgram'_ :: ((HG3DClassPtr) -> (CInt -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs.h ogre_rds_isGpuProgramBound"
  isGpuProgramBound'_ :: ((HG3DClassPtr) -> (CInt -> ((Ptr CInt) -> (IO ()))))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs.h ogre_rds_addClipPlane2"
  addClipPlane2'_ :: ((HG3DClassPtr) -> (CFloat -> (CFloat -> (CFloat -> (CFloat -> (IO ()))))))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs.h ogre_rds_resetClipPlanes"
  resetClipPlanes'_ :: ((HG3DClassPtr) -> (IO ()))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs.h ogre_rds_setInvertVertexWinding"
  setInvertVertexWinding'_ :: ((HG3DClassPtr) -> (CInt -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs.h ogre_rds_getInvertVertexWinding"
  getInvertVertexWinding'_ :: ((HG3DClassPtr) -> ((Ptr CInt) -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs.h ogre_rds_setScissorTest"
  setScissorTest'_ :: ((HG3DClassPtr) -> (CInt -> (CInt -> (CInt -> (CInt -> (CInt -> (IO ())))))))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs.h ogre_rds_clearFrameBuffer"
  clearFrameBuffer'_ :: ((HG3DClassPtr) -> (CUInt -> ((ColourPtr) -> (CFloat -> (CUShort -> (IO ()))))))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs.h ogre_rds_getHorizontalTexelOffset"
  getHorizontalTexelOffset'_ :: ((HG3DClassPtr) -> ((Ptr CFloat) -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs.h ogre_rds_getVerticalTexelOffset"
  getVerticalTexelOffset'_ :: ((HG3DClassPtr) -> ((Ptr CFloat) -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs.h ogre_rds_getMinimumDepthInputValue"
  getMinimumDepthInputValue'_ :: ((HG3DClassPtr) -> ((Ptr CFloat) -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs.h ogre_rds_getMaximumDepthInputValue"
  getMaximumDepthInputValue'_ :: ((HG3DClassPtr) -> ((Ptr CFloat) -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs.h ogre_rds_setCurrentPassIterationCount"
  setCurrentPassIterationCount'_ :: ((HG3DClassPtr) -> (CInt -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs.h ogre_rds_setDeriveDepthBias"
  setDeriveDepthBias'_ :: ((HG3DClassPtr) -> (CInt -> (CFloat -> (CFloat -> (CFloat -> (IO ()))))))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs.h ogre_rds_preExtraThreadsStarted"
  preExtraThreadsStarted'_ :: ((HG3DClassPtr) -> (IO ()))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs.h ogre_rds_postExtraThreadsStarted"
  postExtraThreadsStarted'_ :: ((HG3DClassPtr) -> (IO ()))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs.h ogre_rds_registerThread"
  registerThread'_ :: ((HG3DClassPtr) -> (IO ()))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs.h ogre_rds_unregisterThread"
  unregisterThread'_ :: ((HG3DClassPtr) -> (IO ()))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs.h ogre_rds_getDisplayMonitorCount"
  getDisplayMonitorCount'_ :: ((HG3DClassPtr) -> ((Ptr CUInt) -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs.h ogre_rds_beginProfileEvent"
  beginProfileEvent'_ :: ((HG3DClassPtr) -> ((Ptr CChar) -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs.h ogre_rds_endProfileEvent"
  endProfileEvent'_ :: ((HG3DClassPtr) -> (IO ()))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassRenderSystem.chs.h ogre_rds_markProfileEvent"
  markProfileEvent'_ :: ((HG3DClassPtr) -> ((Ptr CChar) -> (IO ())))