-- 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\\ClassResource.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.
-- 


-- ClassResource.chs

-- 

module HGamer3D.Bindings.Ogre.ClassResource 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\\ClassResource.chs" #-}
import HGamer3D.Bindings.Ogre.ClassPtr
{-# LINE 43 ".\\HGamer3D\\Bindings\\Ogre\\ClassResource.chs" #-}
import HGamer3D.Bindings.Ogre.StructHG3DClass
{-# LINE 44 ".\\HGamer3D\\Bindings\\Ogre\\ClassResource.chs" #-}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassResource.chs.h ogre_rsrc_prepare"
  prepare'_ :: ((HG3DClassPtr) -> (CInt -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassResource.chs.h ogre_rsrc_load"
  load'_ :: ((HG3DClassPtr) -> (CInt -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassResource.chs.h ogre_rsrc_reload"
  reload'_ :: ((HG3DClassPtr) -> (IO ()))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassResource.chs.h ogre_rsrc_isReloadable"
  isReloadable'_ :: ((HG3DClassPtr) -> ((Ptr CInt) -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassResource.chs.h ogre_rsrc_isManuallyLoaded"
  isManuallyLoaded'_ :: ((HG3DClassPtr) -> ((Ptr CInt) -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassResource.chs.h ogre_rsrc_unload"
  unload'_ :: ((HG3DClassPtr) -> (IO ()))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassResource.chs.h ogre_rsrc_getSize"
  getSize'_ :: ((HG3DClassPtr) -> ((Ptr CInt) -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassResource.chs.h ogre_rsrc_touch"
  touch'_ :: ((HG3DClassPtr) -> (IO ()))

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

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassResource.chs.h ogre_rsrc_isPrepared"
  isPrepared'_ :: ((HG3DClassPtr) -> ((Ptr CInt) -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassResource.chs.h ogre_rsrc_isLoaded"
  isLoaded'_ :: ((HG3DClassPtr) -> ((Ptr CInt) -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassResource.chs.h ogre_rsrc_isLoading"
  isLoading'_ :: ((HG3DClassPtr) -> ((Ptr CInt) -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassResource.chs.h ogre_rsrc_isBackgroundLoaded"
  isBackgroundLoaded'_ :: ((HG3DClassPtr) -> ((Ptr CInt) -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassResource.chs.h ogre_rsrc_setBackgroundLoaded"
  setBackgroundLoaded'_ :: ((HG3DClassPtr) -> (CInt -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassResource.chs.h ogre_rsrc_escalateLoading"
  escalateLoading'_ :: ((HG3DClassPtr) -> (IO ()))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassResource.chs.h ogre_rsrc_getGroup"
  getGroup'_ :: ((HG3DClassPtr) -> ((Ptr CChar) -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassResource.chs.h ogre_rsrc_changeGroupOwnership"
  changeGroupOwnership'_ :: ((HG3DClassPtr) -> ((Ptr CChar) -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassResource.chs.h ogre_rsrc_getCreator"
  getCreator'_ :: ((HG3DClassPtr) -> ((HG3DClassPtr) -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassResource.chs.h ogre_rsrc_getOrigin"
  getOrigin'_ :: ((HG3DClassPtr) -> ((Ptr CChar) -> (IO ())))

foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassResource.chs.h ogre_rsrc_getStateCount"
  getStateCount'_ :: ((HG3DClassPtr) -> ((Ptr CInt) -> (IO ())))