packages feed

HGamer3D-Ogre-Binding-0.5.0: 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.hgamer3d.org .
-- 

-- (c) 2011-2014 Peter Althainz
-- 
-- 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 #}
{# import HGamer3D.Bindings.Ogre.ClassPtr #}
{# import HGamer3D.Bindings.Ogre.StructHG3DClass #}
{# import HGamer3D.Bindings.Ogre.StructColour #}
{# import HGamer3D.Bindings.Ogre.EnumGpuProgramType #}

#include "ClassRenderSystem.h"
{- function ~RenderSystem -}
{#fun ogre_rds_destruct as delete 
{ withHG3DClass* `HG3DClass' } -> `()'  #}

{- function getName -}
{#fun ogre_rds_getName as getName 
{ withHG3DClass* `HG3DClass' ,
 alloc64k- `String' peekCString*} -> `()'  #}

{- function setConfigOption -}
{#fun ogre_rds_setConfigOption as setConfigOption 
{ withHG3DClass* `HG3DClass' ,
 withCString* `String' ,
 withCString* `String' } -> `()'  #}

{- function validateConfigOptions -}
{#fun ogre_rds_validateConfigOptions as validateConfigOptions 
{ withHG3DClass* `HG3DClass' ,
 alloc64k- `String' peekCString*} -> `()'  #}

{- function reinitialise -}
{#fun ogre_rds_reinitialise as reinitialise 
{ withHG3DClass* `HG3DClass' } -> `()'  #}

{- function shutdown -}
{#fun ogre_rds_shutdown as shutdown 
{ withHG3DClass* `HG3DClass' } -> `()'  #}

{- function setAmbientLight -}
{#fun ogre_rds_setAmbientLight as setAmbientLight 
{ withHG3DClass* `HG3DClass' ,
 realToFrac `Float' ,
 realToFrac `Float' ,
 realToFrac `Float' } -> `()'  #}

{- function setLightingEnabled -}
{#fun ogre_rds_setLightingEnabled as setLightingEnabled 
{ withHG3DClass* `HG3DClass' ,
 fromBool `Bool' } -> `()'  #}

{- function setWBufferEnabled -}
{#fun ogre_rds_setWBufferEnabled as setWBufferEnabled 
{ withHG3DClass* `HG3DClass' ,
 fromBool `Bool' } -> `()'  #}

{- function getWBufferEnabled -}
{#fun ogre_rds_getWBufferEnabled as getWBufferEnabled 
{ withHG3DClass* `HG3DClass' ,
 alloca- `Bool' peekBoolUtil*} -> `()'  #}

{- function createMultiRenderTarget -}
{#fun ogre_rds_createMultiRenderTarget as createMultiRenderTarget 
{ withHG3DClass* `HG3DClass' ,
 withCString* `String' ,
 alloca- `HG3DClass' peek*} -> `()'  #}

{- function destroyRenderWindow -}
{#fun ogre_rds_destroyRenderWindow as destroyRenderWindow 
{ withHG3DClass* `HG3DClass' ,
 withCString* `String' } -> `()'  #}

{- function destroyRenderTexture -}
{#fun ogre_rds_destroyRenderTexture as destroyRenderTexture 
{ withHG3DClass* `HG3DClass' ,
 withCString* `String' } -> `()'  #}

{- function destroyRenderTarget -}
{#fun ogre_rds_destroyRenderTarget as destroyRenderTarget 
{ withHG3DClass* `HG3DClass' ,
 withCString* `String' } -> `()'  #}

{- function attachRenderTarget -}
{#fun ogre_rds_attachRenderTarget as attachRenderTarget 
{ withHG3DClass* `HG3DClass' ,
 withHG3DClass* `HG3DClass' } -> `()'  #}

{- function getRenderTarget -}
{#fun ogre_rds_getRenderTarget as getRenderTarget 
{ withHG3DClass* `HG3DClass' ,
 withCString* `String' ,
 alloca- `HG3DClass' peek*} -> `()'  #}

{- function detachRenderTarget -}
{#fun ogre_rds_detachRenderTarget as detachRenderTarget 
{ withHG3DClass* `HG3DClass' ,
 withCString* `String' ,
 alloca- `HG3DClass' peek*} -> `()'  #}

{- function getErrorDescription -}
{#fun ogre_rds_getErrorDescription as getErrorDescription 
{ withHG3DClass* `HG3DClass' ,
 fromIntegral `Int' ,
 alloc64k- `String' peekCString*} -> `()'  #}

{- function setWaitForVerticalBlank -}
{#fun ogre_rds_setWaitForVerticalBlank as setWaitForVerticalBlank 
{ withHG3DClass* `HG3DClass' ,
 fromBool `Bool' } -> `()'  #}

{- function getWaitForVerticalBlank -}
{#fun ogre_rds_getWaitForVerticalBlank as getWaitForVerticalBlank 
{ withHG3DClass* `HG3DClass' ,
 alloca- `Bool' peekBoolUtil*} -> `()'  #}

{- function getGlobalNumberOfInstances -}
{#fun ogre_rds_getGlobalNumberOfInstances as getGlobalNumberOfInstances 
{ withHG3DClass* `HG3DClass' ,
 alloca- `Int' peekIntConv*} -> `()'  #}

{- function setGlobalNumberOfInstances -}
{#fun ogre_rds_setGlobalNumberOfInstances as setGlobalNumberOfInstances 
{ withHG3DClass* `HG3DClass' ,
 fromIntegral `Int' } -> `()'  #}

{- function setFixedPipelineEnabled -}
{#fun ogre_rds_setFixedPipelineEnabled as setFixedPipelineEnabled 
{ withHG3DClass* `HG3DClass' ,
 fromBool `Bool' } -> `()'  #}

{- function getFixedPipelineEnabled -}
{#fun ogre_rds_getFixedPipelineEnabled as getFixedPipelineEnabled 
{ withHG3DClass* `HG3DClass' ,
 alloca- `Bool' peekBoolUtil*} -> `()'  #}

{- function setDepthBufferFor -}
{#fun ogre_rds_setDepthBufferFor as setDepthBufferFor 
{ withHG3DClass* `HG3DClass' ,
 withHG3DClass* `HG3DClass' } -> `()'  #}

{- function areFixedFunctionLightsInViewSpace -}
{#fun ogre_rds_areFixedFunctionLightsInViewSpace as areFixedFunctionLightsInViewSpace 
{ withHG3DClass* `HG3DClass' ,
 alloca- `Bool' peekBoolUtil*} -> `()'  #}

{- function convertColourValue -}
{#fun ogre_rds_convertColourValue as convertColourValue 
{ withHG3DClass* `HG3DClass' ,
 withColour* `Colour' ,
 alloca- `Int' peekIntConv*} -> `()'  #}

{- function setStencilCheckEnabled -}
{#fun ogre_rds_setStencilCheckEnabled as setStencilCheckEnabled 
{ withHG3DClass* `HG3DClass' ,
 fromBool `Bool' } -> `()'  #}

{- function setNormaliseNormals -}
{#fun ogre_rds_setNormaliseNormals as setNormaliseNormals 
{ withHG3DClass* `HG3DClass' ,
 fromBool `Bool' } -> `()'  #}

{- function bindGpuProgramPassIterationParameters -}
{#fun ogre_rds_bindGpuProgramPassIterationParameters as bindGpuProgramPassIterationParameters 
{ withHG3DClass* `HG3DClass' ,
 cIntFromEnum `EnumGpuProgramType' } -> `()'  #}

{- function unbindGpuProgram -}
{#fun ogre_rds_unbindGpuProgram as unbindGpuProgram 
{ withHG3DClass* `HG3DClass' ,
 cIntFromEnum `EnumGpuProgramType' } -> `()'  #}

{- function isGpuProgramBound -}
{#fun ogre_rds_isGpuProgramBound as isGpuProgramBound 
{ withHG3DClass* `HG3DClass' ,
 cIntFromEnum `EnumGpuProgramType' ,
 alloca- `Bool' peekBoolUtil*} -> `()'  #}

{- function addClipPlane2 -}
{#fun ogre_rds_addClipPlane2 as addClipPlane2 
{ withHG3DClass* `HG3DClass' ,
 realToFrac `Float' ,
 realToFrac `Float' ,
 realToFrac `Float' ,
 realToFrac `Float' } -> `()'  #}

{- function resetClipPlanes -}
{#fun ogre_rds_resetClipPlanes as resetClipPlanes 
{ withHG3DClass* `HG3DClass' } -> `()'  #}

{- function setInvertVertexWinding -}
{#fun ogre_rds_setInvertVertexWinding as setInvertVertexWinding 
{ withHG3DClass* `HG3DClass' ,
 fromBool `Bool' } -> `()'  #}

{- function getInvertVertexWinding -}
{#fun ogre_rds_getInvertVertexWinding as getInvertVertexWinding 
{ withHG3DClass* `HG3DClass' ,
 alloca- `Bool' peekBoolUtil*} -> `()'  #}

{- function setScissorTest -}
{#fun ogre_rds_setScissorTest as setScissorTest 
{ withHG3DClass* `HG3DClass' ,
 fromBool `Bool' ,
 fromIntegral `Int' ,
 fromIntegral `Int' ,
 fromIntegral `Int' ,
 fromIntegral `Int' } -> `()'  #}

{- function clearFrameBuffer -}
{#fun ogre_rds_clearFrameBuffer as clearFrameBuffer 
{ withHG3DClass* `HG3DClass' ,
 fromIntegral `Int' ,
 withColour* `Colour' ,
 realToFrac `Float' ,
 fromIntegral `Int' } -> `()'  #}

{- function getHorizontalTexelOffset -}
{#fun ogre_rds_getHorizontalTexelOffset as getHorizontalTexelOffset 
{ withHG3DClass* `HG3DClass' ,
 alloca- `Float' peekFloatConv*} -> `()'  #}

{- function getVerticalTexelOffset -}
{#fun ogre_rds_getVerticalTexelOffset as getVerticalTexelOffset 
{ withHG3DClass* `HG3DClass' ,
 alloca- `Float' peekFloatConv*} -> `()'  #}

{- function getMinimumDepthInputValue -}
{#fun ogre_rds_getMinimumDepthInputValue as getMinimumDepthInputValue 
{ withHG3DClass* `HG3DClass' ,
 alloca- `Float' peekFloatConv*} -> `()'  #}

{- function getMaximumDepthInputValue -}
{#fun ogre_rds_getMaximumDepthInputValue as getMaximumDepthInputValue 
{ withHG3DClass* `HG3DClass' ,
 alloca- `Float' peekFloatConv*} -> `()'  #}

{- function setCurrentPassIterationCount -}
{#fun ogre_rds_setCurrentPassIterationCount as setCurrentPassIterationCount 
{ withHG3DClass* `HG3DClass' ,
 fromIntegral `Int' } -> `()'  #}

{- function setDeriveDepthBias -}
{#fun ogre_rds_setDeriveDepthBias as setDeriveDepthBias 
{ withHG3DClass* `HG3DClass' ,
 fromBool `Bool' ,
 realToFrac `Float' ,
 realToFrac `Float' ,
 realToFrac `Float' } -> `()'  #}

{- function preExtraThreadsStarted -}
{#fun ogre_rds_preExtraThreadsStarted as preExtraThreadsStarted 
{ withHG3DClass* `HG3DClass' } -> `()'  #}

{- function postExtraThreadsStarted -}
{#fun ogre_rds_postExtraThreadsStarted as postExtraThreadsStarted 
{ withHG3DClass* `HG3DClass' } -> `()'  #}

{- function registerThread -}
{#fun ogre_rds_registerThread as registerThread 
{ withHG3DClass* `HG3DClass' } -> `()'  #}

{- function unregisterThread -}
{#fun ogre_rds_unregisterThread as unregisterThread 
{ withHG3DClass* `HG3DClass' } -> `()'  #}

{- function getDisplayMonitorCount -}
{#fun ogre_rds_getDisplayMonitorCount as getDisplayMonitorCount 
{ withHG3DClass* `HG3DClass' ,
 alloca- `Int' peekIntConv*} -> `()'  #}

{- function beginProfileEvent -}
{#fun ogre_rds_beginProfileEvent as beginProfileEvent 
{ withHG3DClass* `HG3DClass' ,
 withCString* `String' } -> `()'  #}

{- function endProfileEvent -}
{#fun ogre_rds_endProfileEvent as endProfileEvent 
{ withHG3DClass* `HG3DClass' } -> `()'  #}

{- function markProfileEvent -}
{#fun ogre_rds_markProfileEvent as markProfileEvent 
{ withHG3DClass* `HG3DClass' ,
 withCString* `String' } -> `()'  #}