packages feed

HGamer3D-SFML-Binding 0.1.6 → 0.5.0

raw patch · 46 files changed

Files

− C2HS.hs
@@ -1,238 +0,0 @@---  C->Haskell Compiler: Marshalling library
---
---  Copyright (c) [1999...2005] Manuel M T Chakravarty
---
---  Redistribution and use in source and binary forms, with or without
---  modification, are permitted provided that the following conditions are met:
--- 
---  1. Redistributions of source code must retain the above copyright notice,
---     this list of conditions and the following disclaimer. 
---  2. Redistributions in binary form must reproduce the above copyright
---     notice, this list of conditions and the following disclaimer in the
---     documentation and/or other materials provided with the distribution. 
---  3. The name of the author may not be used to endorse or promote products
---     derived from this software without specific prior written permission. 
---
---  THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
---  IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
---  OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
---  NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
---  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
---  TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
---  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
---  LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
---  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
---  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
---
---- Description ---------------------------------------------------------------
---
---  Language: Haskell 98
---
---  This module provides the marshaling routines for Haskell files produced by 
---  C->Haskell for binding to C library interfaces.  It exports all of the
---  low-level FFI (language-independent plus the C-specific parts) together
---  with the C->HS-specific higher-level marshalling routines.
---
-
-module C2HS (
-
-  -- * Re-export the language-independent component of the FFI 
-  module Foreign,
-
-  -- * Re-export the C language component of the FFI
-  module Foreign.C,
-
-  -- * Composite marshalling functions
-  withCStringLenIntConv, peekCStringLenIntConv, withIntConv, withFloatConv,
-  peekIntConv, peekFloatConv, withBool, peekBool, withEnum, peekEnum,
-
-  -- * Conditional results using 'Maybe'
-  nothingIf, nothingIfNull,
-
-  -- * Bit masks
-  combineBitMasks, containsBitMask, extractBitMasks,
-
-  -- * Conversion between C and Haskell types
-  cIntConv, cFloatConv, cToBool, cFromBool, cToEnum, cFromEnum
-) where 
-
-
-import Foreign
-import Foreign.C
-
-import Monad (liftM)
-
-
--- Composite marshalling functions
--- -------------------------------
-
--- Strings with explicit length
---
-withCStringLenIntConv :: Num n => String -> ((CString, n) -> IO a) -> IO a
-withCStringLenIntConv s f    = withCStringLen s $ \(p, n) -> f (p, fromIntegral n)
-
-peekCStringLenIntConv :: Integral n => (CString, n) -> IO String
-peekCStringLenIntConv (s, n) = peekCStringLen (s, fromIntegral n)
-
--- Marshalling of numerals
---
-
-withIntConv   :: (Storable b, Integral a, Integral b) 
-              => a -> (Ptr b -> IO c) -> IO c
-withIntConv    = with . fromIntegral
-
-withFloatConv :: (Storable b, RealFloat a, RealFloat b) 
-              => a -> (Ptr b -> IO c) -> IO c
-withFloatConv  = with . realToFrac
-
-peekIntConv   :: (Storable a, Integral a, Integral b) 
-              => Ptr a -> IO b
-peekIntConv    = liftM fromIntegral . peek
-
-peekFloatConv :: (Storable a, RealFloat a, RealFloat b) 
-              => Ptr a -> IO b
-peekFloatConv  = liftM realToFrac . peek
-
-
--- Everything else below is deprecated.
--- These functions are not used by code generated by c2hs.
-
-{-# DEPRECATED withBool        "The C2HS module will soon stop providing unnecessary\nutility functions. Please use standard FFI library functions instead." #-}
-{-# DEPRECATED peekBool        "The C2HS module will soon stop providing unnecessary\nutility functions. Please use standard FFI library functions instead." #-}
-{-# DEPRECATED withEnum        "The C2HS module will soon stop providing unnecessary\nutility functions. Please use standard FFI library functions instead." #-}
-{-# DEPRECATED peekEnum        "The C2HS module will soon stop providing unnecessary\nutility functions. Please use standard FFI library functions instead." #-}
-{-# DEPRECATED nothingIf       "The C2HS module will soon stop providing unnecessary\nutility functions. Please use standard FFI library functions instead." #-}
-{-# DEPRECATED nothingIfNull   "The C2HS module will soon stop providing unnecessary\nutility functions. Please use standard FFI library functions instead." #-}
-{-# DEPRECATED combineBitMasks "The C2HS module will soon stop providing unnecessary\nutility functions. Please use standard FFI library functions instead." #-}
-{-# DEPRECATED containsBitMask "The C2HS module will soon stop providing unnecessary\nutility functions. Please use standard FFI library functions instead." #-}
-{-# DEPRECATED extractBitMasks "The C2HS module will soon stop providing unnecessary\nutility functions. Please use standard FFI library functions instead." #-}
-{-# DEPRECATED cIntConv        "The C2HS module will soon stop providing unnecessary\nutility functions. Please use standard FFI library functions instead." #-}
-{-# DEPRECATED cFloatConv      "The C2HS module will soon stop providing unnecessary\nutility functions. Please use standard FFI library functions instead." #-}
-{-# DEPRECATED cFromBool       "The C2HS module will soon stop providing unnecessary\nutility functions. Please use standard FFI library functions instead." #-}
-{-# DEPRECATED cToBool         "The C2HS module will soon stop providing unnecessary\nutility functions. Please use standard FFI library functions instead." #-}
-{-# DEPRECATED cToEnum         "The C2HS module will soon stop providing unnecessary\nutility functions. Please use standard FFI library functions instead." #-}
-{-# DEPRECATED cFromEnum       "The C2HS module will soon stop providing unnecessary\nutility functions. Please use standard FFI library functions instead." #-}
-
-
--- Passing Booleans by reference
---
-
-withBool :: (Integral a, Storable a) => Bool -> (Ptr a -> IO b) -> IO b
-withBool  = with . fromBool
-
-peekBool :: (Integral a, Storable a) => Ptr a -> IO Bool
-peekBool  = liftM toBool . peek
-
-
--- Passing enums by reference
---
-
-withEnum :: (Enum a, Integral b, Storable b) => a -> (Ptr b -> IO c) -> IO c
-withEnum  = with . cFromEnum
-
-peekEnum :: (Enum a, Integral b, Storable b) => Ptr b -> IO a
-peekEnum  = liftM cToEnum . peek
-
-
--- Storing of 'Maybe' values
--- -------------------------
-
---TODO: kill off this orphan instance!
-
-instance Storable a => Storable (Maybe a) where
-  sizeOf    _ = sizeOf    (undefined :: Ptr ())
-  alignment _ = alignment (undefined :: Ptr ())
-
-  peek p = do
-             ptr <- peek (castPtr p)
-             if ptr == nullPtr
-               then return Nothing
-               else liftM Just $ peek ptr
-
-  poke p v = do
-               ptr <- case v of
-                        Nothing -> return nullPtr
-                        Just v' -> new v'
-               poke (castPtr p) ptr
-
-
--- Conditional results using 'Maybe'
--- ---------------------------------
-
--- Wrap the result into a 'Maybe' type.
---
--- * the predicate determines when the result is considered to be non-existing,
---   ie, it is represented by `Nothing'
---
--- * the second argument allows to map a result wrapped into `Just' to some
---   other domain
---
-nothingIf       :: (a -> Bool) -> (a -> b) -> a -> Maybe b
-nothingIf p f x  = if p x then Nothing else Just $ f x
-
--- |Instance for special casing null pointers.
---
-nothingIfNull :: (Ptr a -> b) -> Ptr a -> Maybe b
-nothingIfNull  = nothingIf (== nullPtr)
-
-
--- Support for bit masks
--- ---------------------
-
--- Given a list of enumeration values that represent bit masks, combine these
--- masks using bitwise disjunction.
---
-combineBitMasks :: (Enum a, Bits b) => [a] -> b
-combineBitMasks = foldl (.|.) 0 . map (fromIntegral . fromEnum)
-
--- Tests whether the given bit mask is contained in the given bit pattern
--- (i.e., all bits set in the mask are also set in the pattern).
---
-containsBitMask :: (Bits a, Enum b) => a -> b -> Bool
-bits `containsBitMask` bm = let bm' = fromIntegral . fromEnum $ bm
-                            in
-                            bm' .&. bits == bm'
-
--- |Given a bit pattern, yield all bit masks that it contains.
---
--- * This does *not* attempt to compute a minimal set of bit masks that when
---   combined yield the bit pattern, instead all contained bit masks are
---   produced.
---
-extractBitMasks :: (Bits a, Enum b, Bounded b) => a -> [b]
-extractBitMasks bits = 
-  [bm | bm <- [minBound..maxBound], bits `containsBitMask` bm]
-
-
--- Conversion routines
--- -------------------
-
--- |Integral conversion
---
-cIntConv :: (Integral a, Integral b) => a -> b
-cIntConv  = fromIntegral
-
--- |Floating conversion
---
-cFloatConv :: (RealFloat a, RealFloat b) => a -> b
-cFloatConv  = realToFrac
-
--- |Obtain C value from Haskell 'Bool'.
---
-cFromBool :: Num a => Bool -> a
-cFromBool  = fromBool
-
--- |Obtain Haskell 'Bool' from C value.
---
-cToBool :: Num a => a -> Bool
-cToBool  = toBool
-
--- |Convert a C enumeration to Haskell.
---
-cToEnum :: (Integral i, Enum e) => i -> e
-cToEnum  = toEnum . fromIntegral
-
--- |Convert a Haskell enumeration to C.
---
-cFromEnum :: (Enum e, Integral i) => e -> i
-cFromEnum  = fromIntegral . fromEnum
HGamer3D-SFML-Binding.cabal view
@@ -1,39 +1,38 @@ Name:                HGamer3D-SFML-Binding
-Version:             0.1.6
-Synopsis:            Library to enable 3D game development for Haskell - SFML Bindings
+Version:             0.5.0
+Synopsis:            SFML Binding for HGamer3D
 Description:         
-   Library, to enable 3D game development for Haskell,
-   based on bindings to 3D Graphics, Audio and GUI libraries.
-   
-   This is the SFML Bindings module, which provides Audio and
-   Input System (Joystick, Mouse, Keyboard) functionality.
-   
-   Platform: Windows only
-   License: Apache License, Version 2.0
-   Install: see http://www.althainz.de/HGamer3D/Download-and-Installation.html
-   
+   HGamer3D is a game engine for developing 3D games in the programming 
+   language Haskell. This package provides the SFML binding. 
+   HGamer3D-SFML-Binding is available on Windows and Linux. 
+   This binding does not claim to have full coverage of SFML 
+   functionality, but only to support what is needed for the
+   HGamer3D-Audio and HGamer3D-InputSystem packages.
 
 	
 License:             OtherLicense
 License-file:        LICENSE
 Author:              Peter Althainz
-Maintainer:          althainz@googlemail.com
+Maintainer:          althainz@gmail.com
 Build-Type:          Simple
-Cabal-Version:       >=1.2
-Homepage:            http://www.althainz.de/HGamer3D.html
-Category:            Game
-Extra-source-files:  Setup.hs, include/ClassJoystick.h, include/ClassKeyboard.h, include/ClassListener.h, include/ClassMouse.h, include/ClassMouseHG3D.h, include/ClassMusic.h, include/ClassPtr.h, include/ClassSound.h, include/ClassSoundBuffer.h, include/ClassSoundSource.h, include/ClassSoundStream.h, include/EnumJoystickAxis.h, include/EnumKey.h, include/EnumMouseButton.h, include/EnumSoundSourceStatus.h, include/SFMLDllDefines.h, include/StructHG3DClass.h
+Cabal-Version:       >=1.4
+Homepage:            http://www.hgamer3d.org
+Category:            Game Engine, Audio, Graphics
+Extra-source-files:  Setup.hs, include/ClassJoystick.h, include/ClassKeyboard.h, include/ClassListener.h, include/ClassMouse.h, include/ClassMouseHG3D.h, include/ClassMusic.h, include/ClassPtr.h, include/ClassSound.h, include/ClassSoundBuffer.h, include/ClassSoundSource.h, include/ClassSoundStream.h, include/EnumJoystickAxis.h, include/EnumKey.h, include/EnumMouseButton.h, include/EnumSoundSourceStatus.h, include/hg3dstruct.h, include/MouseHG3D.h, include/SFMLDllDefines.h, include/StructHG3DClass.h, include/StructVec3.h, include/vector2fstruct.h, include/vector2istruct.h, include/vector3fstruct.h, include/vector3istruct.h
 
 Library
-  Build-Depends:     base >= 3 && < 5, HGamer3D-Data == 0.1.5
+  Build-Depends:     base >= 3 && < 5, HGamer3D-Data >= 0.5.0
 
-  Exposed-modules:   HGamer3D.Bindings.SFML.ClassPtr, HGamer3D.Bindings.SFML.StructHG3DClass, HGamer3D.Bindings.SFML.Utils, HGamer3D.Bindings.SFML.ClassJoystick, HGamer3D.Bindings.SFML.ClassKeyboard, HGamer3D.Bindings.SFML.ClassListener, HGamer3D.Bindings.SFML.ClassMouse, HGamer3D.Bindings.SFML.ClassMouseHG3D, HGamer3D.Bindings.SFML.ClassMusic, HGamer3D.Bindings.SFML.ClassSound, HGamer3D.Bindings.SFML.ClassSoundBuffer, HGamer3D.Bindings.SFML.ClassSoundSource, HGamer3D.Bindings.SFML.ClassSoundStream, HGamer3D.Bindings.SFML.EnumJoystickAxis, HGamer3D.Bindings.SFML.EnumKey, HGamer3D.Bindings.SFML.EnumMouseButton, HGamer3D.Bindings.SFML.EnumSoundSourceStatus
-  Other-modules:     C2HS 
+  Exposed-modules:   HGamer3D.Bindings.SFML.Utils, HGamer3D.Bindings.SFML.ClassPtr, HGamer3D.Bindings.SFML.StructHG3DClass, HGamer3D.Bindings.SFML.EnumJoystickAxis, HGamer3D.Bindings.SFML.EnumKey, HGamer3D.Bindings.SFML.EnumMouseButton, HGamer3D.Bindings.SFML.EnumSoundSourceStatus, HGamer3D.Bindings.SFML.StructVec3, HGamer3D.Bindings.SFML.ClassJoystick, HGamer3D.Bindings.SFML.ClassKeyboard, HGamer3D.Bindings.SFML.ClassListener, HGamer3D.Bindings.SFML.ClassMouse, HGamer3D.Bindings.SFML.ClassMouseHG3D, HGamer3D.Bindings.SFML.ClassMusic, HGamer3D.Bindings.SFML.ClassSound, HGamer3D.Bindings.SFML.ClassSoundBuffer, HGamer3D.Bindings.SFML.ClassSoundSource, HGamer3D.Bindings.SFML.ClassSoundStream
+  Other-modules:     
 
-  ghc-options:       
+  ghc-options:       -O2
   cc-options:        -Wno-attributes 
   hs-source-dirs:    .
   Include-dirs:      include
   Build-tools:       
-  build-depends:     haskell98
-  extra-libraries:   HGamer3DSFML016
+  build-depends:     
+  if os(windows)
+     extra-libraries:   hg3dsfml050
+  else
+     extra-libraries:   hg3dsfml050,sfml-audio,sfml-system,sfml-window,sfml-network
HGamer3D/Bindings/SFML/ClassJoystick.chs view
@@ -1,82 +1,76 @@-{-# 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, 2012 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.
--- 
-
-
--- ClassJoystick.chs
-
--- 
-
-module HGamer3D.Bindings.SFML.ClassJoystick where
-
-import C2HS
-import Foreign
-import Foreign.Ptr
-import Foreign.C
-import Monad         (liftM, liftM2)
-
-import HGamer3D.Data.HG3DClass
-import HGamer3D.Data.Vector2
-import HGamer3D.Data.Vector3
-import HGamer3D.Data.Vector4
-import HGamer3D.Data.Quaternion
-import HGamer3D.Data.Colour
-import HGamer3D.Data.Angle
-
-{# import HGamer3D.Bindings.SFML.Utils #}
-{# import HGamer3D.Bindings.SFML.ClassPtr #}
-{# import HGamer3D.Bindings.SFML.StructHG3DClass #}
-import HGamer3D.Bindings.SFML.EnumJoystickAxis
-
-#include "ClassJoystick.h"
-{- function isConnected -}
-{#fun sfml_jst_isConnected as isConnected 
-{ fromIntegral `Int' ,
- alloca- `Bool' peekBoolUtil*} -> `()'  #}
-
-{- function getButtonCount -}
-{#fun sfml_jst_getButtonCount as getButtonCount 
-{ fromIntegral `Int' ,
- alloca- `Int' peekIntConv*} -> `()'  #}
-
-{- function hasAxis -}
-{#fun sfml_jst_hasAxis as hasAxis 
-{ fromIntegral `Int' ,
- cIntFromEnum `EnumJoystickAxis' ,
- alloca- `Bool' peekBoolUtil*} -> `()'  #}
-
-{- function isButtonPressed -}
-{#fun sfml_jst_isButtonPressed as isButtonPressed 
-{ fromIntegral `Int' ,
- fromIntegral `Int' ,
- alloca- `Bool' peekBoolUtil*} -> `()'  #}
-
-{- function getAxisPosition -}
-{#fun sfml_jst_getAxisPosition as getAxisPosition 
-{ fromIntegral `Int' ,
- cIntFromEnum `EnumJoystickAxis' ,
- alloca- `Float' peekFloatConv*} -> `()'  #}
-
-{- function update -}
-{#fun sfml_jst_update as update 
-{ } -> `()'  #}
-
+{-# 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.+-- +++-- ClassJoystick.chs++-- ++module HGamer3D.Bindings.SFML.ClassJoystick 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.SFML.Utils #}+{# import HGamer3D.Bindings.SFML.ClassPtr #}+{# import HGamer3D.Bindings.SFML.StructHG3DClass #}+{# import HGamer3D.Bindings.SFML.EnumJoystickAxis #}++#include "ClassJoystick.h"+{- function isConnected -}+{#fun sfml_jst_isConnected as isConnected +{ fromIntegral `Int' ,+ alloca- `Bool' peekBoolUtil*} -> `()'  #}++{- function getButtonCount -}+{#fun sfml_jst_getButtonCount as getButtonCount +{ fromIntegral `Int' ,+ alloca- `Int' peekIntConv*} -> `()'  #}++{- function hasAxis -}+{#fun sfml_jst_hasAxis as hasAxis +{ fromIntegral `Int' ,+ cIntFromEnum `EnumJoystickAxis' ,+ alloca- `Bool' peekBoolUtil*} -> `()'  #}++{- function isButtonPressed -}+{#fun sfml_jst_isButtonPressed as isButtonPressed +{ fromIntegral `Int' ,+ fromIntegral `Int' ,+ alloca- `Bool' peekBoolUtil*} -> `()'  #}++{- function getAxisPosition -}+{#fun sfml_jst_getAxisPosition as getAxisPosition +{ fromIntegral `Int' ,+ cIntFromEnum `EnumJoystickAxis' ,+ alloca- `Float' peekFloatConv*} -> `()'  #}++{- function update -}+{#fun sfml_jst_update as update +{ } -> `()'  #}+
HGamer3D/Bindings/SFML/ClassKeyboard.chs view
@@ -1,55 +1,49 @@-{-# 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, 2012 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.
--- 
-
-
--- ClassKeyboard.chs
-
--- 
-
-module HGamer3D.Bindings.SFML.ClassKeyboard where
-
-import C2HS
-import Foreign
-import Foreign.Ptr
-import Foreign.C
-import Monad         (liftM, liftM2)
-
-import HGamer3D.Data.HG3DClass
-import HGamer3D.Data.Vector2
-import HGamer3D.Data.Vector3
-import HGamer3D.Data.Vector4
-import HGamer3D.Data.Quaternion
-import HGamer3D.Data.Colour
-import HGamer3D.Data.Angle
-
-{# import HGamer3D.Bindings.SFML.Utils #}
-{# import HGamer3D.Bindings.SFML.ClassPtr #}
-{# import HGamer3D.Bindings.SFML.StructHG3DClass #}
-import HGamer3D.Bindings.SFML.EnumKey
-
-#include "ClassKeyboard.h"
-{- function isKeyPressed -}
-{#fun sfml_kbd_isKeyPressed as isKeyPressed 
-{ cIntFromEnum `EnumKey' ,
- alloca- `Bool' peekBoolUtil*} -> `()'  #}
-
+{-# 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.+-- +++-- ClassKeyboard.chs++-- ++module HGamer3D.Bindings.SFML.ClassKeyboard 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.SFML.Utils #}+{# import HGamer3D.Bindings.SFML.ClassPtr #}+{# import HGamer3D.Bindings.SFML.StructHG3DClass #}+{# import HGamer3D.Bindings.SFML.EnumKey #}++#include "ClassKeyboard.h"+{- function isKeyPressed -}+{#fun sfml_kbd_isKeyPressed as isKeyPressed +{ cIntFromEnum `EnumKey' ,+ alloca- `Bool' peekBoolUtil*} -> `()'  #}+
HGamer3D/Bindings/SFML/ClassListener.chs view
@@ -1,69 +1,72 @@-{-# 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, 2012 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.
--- 
-
-
--- ClassListener.chs
-
--- 
-
-module HGamer3D.Bindings.SFML.ClassListener where
-
-import C2HS
-import Foreign
-import Foreign.Ptr
-import Foreign.C
-import Monad         (liftM, liftM2)
-
-import HGamer3D.Data.HG3DClass
-import HGamer3D.Data.Vector2
-import HGamer3D.Data.Vector3
-import HGamer3D.Data.Vector4
-import HGamer3D.Data.Quaternion
-import HGamer3D.Data.Colour
-import HGamer3D.Data.Angle
-
-{# import HGamer3D.Bindings.SFML.Utils #}
-{# import HGamer3D.Bindings.SFML.ClassPtr #}
-{# import HGamer3D.Bindings.SFML.StructHG3DClass #}
-
-#include "ClassListener.h"
-{- function setGlobalVolume -}
-{#fun sfml_lst_setGlobalVolume as setGlobalVolume 
-{ realToFrac `Float' } -> `()'  #}
-
-{- function getGlobalVolume -}
-{#fun sfml_lst_getGlobalVolume as getGlobalVolume 
-{ alloca- `Float' peekFloatConv*} -> `()'  #}
-
-{- function setPosition -}
-{#fun sfml_lst_setPosition as setPosition 
-{ realToFrac `Float' ,
- realToFrac `Float' ,
- realToFrac `Float' } -> `()'  #}
-
-{- function setDirection -}
-{#fun sfml_lst_setDirection as setDirection 
-{ realToFrac `Float' ,
- realToFrac `Float' ,
- realToFrac `Float' } -> `()'  #}
-
+{-# 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.+-- +++-- ClassListener.chs++-- ++module HGamer3D.Bindings.SFML.ClassListener 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.SFML.Utils #}+{# import HGamer3D.Bindings.SFML.ClassPtr #}+{# import HGamer3D.Bindings.SFML.StructHG3DClass #}+{# import HGamer3D.Bindings.SFML.StructVec3 #}++#include "ClassListener.h"+{- function setGlobalVolume -}+{#fun sfml_lst_setGlobalVolume as setGlobalVolume +{ realToFrac `Float' } -> `()'  #}++{- function getGlobalVolume -}+{#fun sfml_lst_getGlobalVolume as getGlobalVolume +{ alloca- `Float' peekFloatConv*} -> `()'  #}++{- function setPosition -}+{#fun sfml_lst_setPosition as setPosition +{ realToFrac `Float' ,+ realToFrac `Float' ,+ realToFrac `Float' } -> `()'  #}++{- function getPosition -}+{#fun sfml_lst_getPosition as getPosition +{ alloca- `Vec3' peekVec3*} -> `()'  #}++{- function setDirection -}+{#fun sfml_lst_setDirection as setDirection +{ realToFrac `Float' ,+ realToFrac `Float' ,+ realToFrac `Float' } -> `()'  #}++{- function getDirection -}+{#fun sfml_lst_getDirection as getDirection +{ alloca- `Vec3' peekVec3*} -> `()'  #}+
HGamer3D/Bindings/SFML/ClassMouse.chs view
@@ -1,55 +1,49 @@-{-# 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, 2012 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.
--- 
-
-
--- ClassMouse.chs
-
--- 
-
-module HGamer3D.Bindings.SFML.ClassMouse where
-
-import C2HS
-import Foreign
-import Foreign.Ptr
-import Foreign.C
-import Monad         (liftM, liftM2)
-
-import HGamer3D.Data.HG3DClass
-import HGamer3D.Data.Vector2
-import HGamer3D.Data.Vector3
-import HGamer3D.Data.Vector4
-import HGamer3D.Data.Quaternion
-import HGamer3D.Data.Colour
-import HGamer3D.Data.Angle
-
-{# import HGamer3D.Bindings.SFML.Utils #}
-{# import HGamer3D.Bindings.SFML.ClassPtr #}
-{# import HGamer3D.Bindings.SFML.StructHG3DClass #}
-import HGamer3D.Bindings.SFML.EnumMouseButton
-
-#include "ClassMouse.h"
-{- function isButtonPressed -}
-{#fun sfml_mse_isButtonPressed as isButtonPressed 
-{ cIntFromEnum `EnumMouseButton' ,
- alloca- `Bool' peekBoolUtil*} -> `()'  #}
-
+{-# 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.+-- +++-- ClassMouse.chs++-- ++module HGamer3D.Bindings.SFML.ClassMouse 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.SFML.Utils #}+{# import HGamer3D.Bindings.SFML.ClassPtr #}+{# import HGamer3D.Bindings.SFML.StructHG3DClass #}+{# import HGamer3D.Bindings.SFML.EnumMouseButton #}++#include "ClassMouse.h"+{- function isButtonPressed -}+{#fun sfml_mse_isButtonPressed as isButtonPressed +{ cIntFromEnum `EnumMouseButton' ,+ alloca- `Bool' peekBoolUtil*} -> `()'  #}+
HGamer3D/Bindings/SFML/ClassMouseHG3D.chs view
@@ -1,54 +1,48 @@-{-# 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, 2012 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.
--- 
-
-
--- ClassMouseHG3D.chs
-
--- 
-
-module HGamer3D.Bindings.SFML.ClassMouseHG3D where
-
-import C2HS
-import Foreign
-import Foreign.Ptr
-import Foreign.C
-import Monad         (liftM, liftM2)
-
-import HGamer3D.Data.HG3DClass
-import HGamer3D.Data.Vector2
-import HGamer3D.Data.Vector3
-import HGamer3D.Data.Vector4
-import HGamer3D.Data.Quaternion
-import HGamer3D.Data.Colour
-import HGamer3D.Data.Angle
-
-{# import HGamer3D.Bindings.SFML.Utils #}
-{# import HGamer3D.Bindings.SFML.ClassPtr #}
-{# import HGamer3D.Bindings.SFML.StructHG3DClass #}
-
-#include "ClassMouseHG3D.h"
-{- function getPosition -}
-{#fun sfml_mshg_getPosition as getPosition 
-{ alloca- `Int' peekIntConv*,
- alloca- `Int' peekIntConv*} -> `()'  #}
-
+{-# 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.+-- +++-- ClassMouseHG3D.chs++-- ++module HGamer3D.Bindings.SFML.ClassMouseHG3D 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.SFML.Utils #}+{# import HGamer3D.Bindings.SFML.ClassPtr #}+{# import HGamer3D.Bindings.SFML.StructHG3DClass #}++#include "ClassMouseHG3D.h"+{- function getPosition -}+{#fun sfml_mshg_getPosition as getPosition +{ alloca- `Int' peekIntConv*,+ alloca- `Int' peekIntConv*} -> `()'  #}+
HGamer3D/Bindings/SFML/ClassMusic.chs view
@@ -1,63 +1,57 @@-{-# 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, 2012 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.
--- 
-
-
--- ClassMusic.chs
-
--- 
-
-module HGamer3D.Bindings.SFML.ClassMusic where
-
-import C2HS
-import Foreign
-import Foreign.Ptr
-import Foreign.C
-import Monad         (liftM, liftM2)
-
-import HGamer3D.Data.HG3DClass
-import HGamer3D.Data.Vector2
-import HGamer3D.Data.Vector3
-import HGamer3D.Data.Vector4
-import HGamer3D.Data.Quaternion
-import HGamer3D.Data.Colour
-import HGamer3D.Data.Angle
-
-{# import HGamer3D.Bindings.SFML.Utils #}
-{# import HGamer3D.Bindings.SFML.ClassPtr #}
-{# import HGamer3D.Bindings.SFML.StructHG3DClass #}
-
-#include "ClassMusic.h"
-{- function Music -}
-{#fun sfml_msc_construct as new 
-{ alloca- `HG3DClass' peek*} -> `()'  #}
-
-{- function ~Music -}
-{#fun sfml_msc_destruct as delete 
-{ withHG3DClass* `HG3DClass' } -> `()'  #}
-
-{- function openFromFile -}
-{#fun sfml_msc_openFromFile as openFromFile 
-{ withHG3DClass* `HG3DClass' ,
- withCString* `String' ,
- alloca- `Bool' peekBoolUtil*} -> `()'  #}
-
+{-# 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.+-- +++-- ClassMusic.chs++-- ++module HGamer3D.Bindings.SFML.ClassMusic 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.SFML.Utils #}+{# import HGamer3D.Bindings.SFML.ClassPtr #}+{# import HGamer3D.Bindings.SFML.StructHG3DClass #}++#include "ClassMusic.h"+{- function Music -}+{#fun sfml_msc_construct as new +{ alloca- `HG3DClass' peek*} -> `()'  #}++{- function ~Music -}+{#fun sfml_msc_destruct as delete +{ withHG3DClass* `HG3DClass' } -> `()'  #}++{- function openFromFile -}+{#fun sfml_msc_openFromFile as openFromFile +{ withHG3DClass* `HG3DClass' ,+ withCString* `String' ,+ alloca- `Bool' peekBoolUtil*} -> `()'  #}+
HGamer3D/Bindings/SFML/ClassPtr.chs view
@@ -1,12 +1,12 @@+{-# LANGUAGE EmptyDataDecls #-}
 {-# 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
+-- 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, 2012 Peter Althainz
+-- (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.
@@ -28,20 +28,16 @@ 
 module HGamer3D.Bindings.SFML.ClassPtr where
 
-import C2HS
 import Foreign
 import Foreign.Ptr
 import Foreign.C
-import Monad         (liftM, liftM2)
 
 import HGamer3D.Data.HG3DClass
-import HGamer3D.Data.Vector2
-import HGamer3D.Data.Vector3
-import HGamer3D.Data.Vector4
-import HGamer3D.Data.Quaternion
+import HGamer3D.Data.Vector
 import HGamer3D.Data.Colour
 import HGamer3D.Data.Angle
 
+{# import HGamer3D.Bindings.SFML.Utils #}
 
 #include "ClassPtr.h"
 {- class ClassMouseHG3D -}
HGamer3D/Bindings/SFML/ClassSound.chs view
@@ -1,88 +1,82 @@-{-# 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, 2012 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.
--- 
-
-
--- ClassSound.chs
-
--- 
-
-module HGamer3D.Bindings.SFML.ClassSound where
-
-import C2HS
-import Foreign
-import Foreign.Ptr
-import Foreign.C
-import Monad         (liftM, liftM2)
-
-import HGamer3D.Data.HG3DClass
-import HGamer3D.Data.Vector2
-import HGamer3D.Data.Vector3
-import HGamer3D.Data.Vector4
-import HGamer3D.Data.Quaternion
-import HGamer3D.Data.Colour
-import HGamer3D.Data.Angle
-
-{# import HGamer3D.Bindings.SFML.Utils #}
-{# import HGamer3D.Bindings.SFML.ClassPtr #}
-{# import HGamer3D.Bindings.SFML.StructHG3DClass #}
-
-#include "ClassSound.h"
-{- function Sound -}
-{#fun sfml_snd_construct as new 
-{ alloca- `HG3DClass' peek*} -> `()'  #}
-
-{- function ~Sound -}
-{#fun sfml_snd_destruct as delete 
-{ withHG3DClass* `HG3DClass' } -> `()'  #}
-
-{- function play -}
-{#fun sfml_snd_play as play 
-{ withHG3DClass* `HG3DClass' } -> `()'  #}
-
-{- function pause -}
-{#fun sfml_snd_pause as pause 
-{ withHG3DClass* `HG3DClass' } -> `()'  #}
-
-{- function stop -}
-{#fun sfml_snd_stop as stop 
-{ withHG3DClass* `HG3DClass' } -> `()'  #}
-
-{- function setBuffer -}
-{#fun sfml_snd_setBuffer as setBuffer 
-{ withHG3DClass* `HG3DClass' ,
- withHG3DClass* `HG3DClass' } -> `()'  #}
-
-{- function setLoop -}
-{#fun sfml_snd_setLoop as setLoop 
-{ withHG3DClass* `HG3DClass' ,
- fromBool `Bool' } -> `()'  #}
-
-{- function getLoop -}
-{#fun sfml_snd_getLoop as getLoop 
-{ withHG3DClass* `HG3DClass' ,
- alloca- `Bool' peekBoolUtil*} -> `()'  #}
-
-{- function resetBuffer -}
-{#fun sfml_snd_resetBuffer as resetBuffer 
-{ withHG3DClass* `HG3DClass' } -> `()'  #}
-
+{-# 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.+-- +++-- ClassSound.chs++-- ++module HGamer3D.Bindings.SFML.ClassSound 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.SFML.Utils #}+{# import HGamer3D.Bindings.SFML.ClassPtr #}+{# import HGamer3D.Bindings.SFML.StructHG3DClass #}++#include "ClassSound.h"+{- function Sound -}+{#fun sfml_snd_construct as new +{ alloca- `HG3DClass' peek*} -> `()'  #}++{- function ~Sound -}+{#fun sfml_snd_destruct as delete +{ withHG3DClass* `HG3DClass' } -> `()'  #}++{- function play -}+{#fun sfml_snd_play as play +{ withHG3DClass* `HG3DClass' } -> `()'  #}++{- function pause -}+{#fun sfml_snd_pause as pause +{ withHG3DClass* `HG3DClass' } -> `()'  #}++{- function stop -}+{#fun sfml_snd_stop as stop +{ withHG3DClass* `HG3DClass' } -> `()'  #}++{- function setBuffer -}+{#fun sfml_snd_setBuffer as setBuffer +{ withHG3DClass* `HG3DClass' ,+ withHG3DClass* `HG3DClass' } -> `()'  #}++{- function setLoop -}+{#fun sfml_snd_setLoop as setLoop +{ withHG3DClass* `HG3DClass' ,+ fromBool `Bool' } -> `()'  #}++{- function getLoop -}+{#fun sfml_snd_getLoop as getLoop +{ withHG3DClass* `HG3DClass' ,+ alloca- `Bool' peekBoolUtil*} -> `()'  #}++{- function resetBuffer -}+{#fun sfml_snd_resetBuffer as resetBuffer +{ withHG3DClass* `HG3DClass' } -> `()'  #}+
HGamer3D/Bindings/SFML/ClassSoundBuffer.chs view
@@ -1,79 +1,73 @@-{-# 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, 2012 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.
--- 
-
-
--- ClassSoundBuffer.chs
-
--- 
-
-module HGamer3D.Bindings.SFML.ClassSoundBuffer where
-
-import C2HS
-import Foreign
-import Foreign.Ptr
-import Foreign.C
-import Monad         (liftM, liftM2)
-
-import HGamer3D.Data.HG3DClass
-import HGamer3D.Data.Vector2
-import HGamer3D.Data.Vector3
-import HGamer3D.Data.Vector4
-import HGamer3D.Data.Quaternion
-import HGamer3D.Data.Colour
-import HGamer3D.Data.Angle
-
-{# import HGamer3D.Bindings.SFML.Utils #}
-{# import HGamer3D.Bindings.SFML.ClassPtr #}
-{# import HGamer3D.Bindings.SFML.StructHG3DClass #}
-
-#include "ClassSoundBuffer.h"
-{- function SoundBuffer -}
-{#fun sfml_snbf_construct as new 
-{ alloca- `HG3DClass' peek*} -> `()'  #}
-
-{- function ~SoundBuffer -}
-{#fun sfml_snbf_destruct as delete 
-{ withHG3DClass* `HG3DClass' } -> `()'  #}
-
-{- function loadFromFile -}
-{#fun sfml_snbf_loadFromFile as loadFromFile 
-{ withHG3DClass* `HG3DClass' ,
- withCString* `String' ,
- alloca- `Bool' peekBoolUtil*} -> `()'  #}
-
-{- function saveToFile -}
-{#fun sfml_snbf_saveToFile as saveToFile 
-{ withHG3DClass* `HG3DClass' ,
- withCString* `String' ,
- alloca- `Bool' peekBoolUtil*} -> `()'  #}
-
-{- function getSampleRate -}
-{#fun sfml_snbf_getSampleRate as getSampleRate 
-{ withHG3DClass* `HG3DClass' ,
- alloca- `Int' peekIntConv*} -> `()'  #}
-
-{- function getChannelCount -}
-{#fun sfml_snbf_getChannelCount as getChannelCount 
-{ withHG3DClass* `HG3DClass' ,
- alloca- `Int' peekIntConv*} -> `()'  #}
-
+{-# 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.+-- +++-- ClassSoundBuffer.chs++-- ++module HGamer3D.Bindings.SFML.ClassSoundBuffer 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.SFML.Utils #}+{# import HGamer3D.Bindings.SFML.ClassPtr #}+{# import HGamer3D.Bindings.SFML.StructHG3DClass #}++#include "ClassSoundBuffer.h"+{- function SoundBuffer -}+{#fun sfml_snbf_construct as new +{ alloca- `HG3DClass' peek*} -> `()'  #}++{- function ~SoundBuffer -}+{#fun sfml_snbf_destruct as delete +{ withHG3DClass* `HG3DClass' } -> `()'  #}++{- function loadFromFile -}+{#fun sfml_snbf_loadFromFile as loadFromFile +{ withHG3DClass* `HG3DClass' ,+ withCString* `String' ,+ alloca- `Bool' peekBoolUtil*} -> `()'  #}++{- function saveToFile -}+{#fun sfml_snbf_saveToFile as saveToFile +{ withHG3DClass* `HG3DClass' ,+ withCString* `String' ,+ alloca- `Bool' peekBoolUtil*} -> `()'  #}++{- function getSampleRate -}+{#fun sfml_snbf_getSampleRate as getSampleRate +{ withHG3DClass* `HG3DClass' ,+ alloca- `Int' peekIntConv*} -> `()'  #}++{- function getChannelCount -}+{#fun sfml_snbf_getChannelCount as getChannelCount +{ withHG3DClass* `HG3DClass' ,+ alloca- `Int' peekIntConv*} -> `()'  #}+
HGamer3D/Bindings/SFML/ClassSoundSource.chs view
@@ -1,110 +1,110 @@-{-# 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, 2012 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.
--- 
-
-
--- ClassSoundSource.chs
-
--- 
-
-module HGamer3D.Bindings.SFML.ClassSoundSource where
-
-import C2HS
-import Foreign
-import Foreign.Ptr
-import Foreign.C
-import Monad         (liftM, liftM2)
-
-import HGamer3D.Data.HG3DClass
-import HGamer3D.Data.Vector2
-import HGamer3D.Data.Vector3
-import HGamer3D.Data.Vector4
-import HGamer3D.Data.Quaternion
-import HGamer3D.Data.Colour
-import HGamer3D.Data.Angle
-
-{# import HGamer3D.Bindings.SFML.Utils #}
-{# import HGamer3D.Bindings.SFML.ClassPtr #}
-{# import HGamer3D.Bindings.SFML.StructHG3DClass #}
-
-#include "ClassSoundSource.h"
-{- function ~SoundSource -}
-{#fun sfml_snsr_destruct as delete 
-{ withHG3DClass* `HG3DClass' } -> `()'  #}
-
-{- function setPitch -}
-{#fun sfml_snsr_setPitch as setPitch 
-{ withHG3DClass* `HG3DClass' ,
- realToFrac `Float' } -> `()'  #}
-
-{- function setVolume -}
-{#fun sfml_snsr_setVolume as setVolume 
-{ withHG3DClass* `HG3DClass' ,
- realToFrac `Float' } -> `()'  #}
-
-{- function setPosition -}
-{#fun sfml_snsr_setPosition as setPosition 
-{ withHG3DClass* `HG3DClass' ,
- realToFrac `Float' ,
- realToFrac `Float' ,
- realToFrac `Float' } -> `()'  #}
-
-{- function setRelativeToListener -}
-{#fun sfml_snsr_setRelativeToListener as setRelativeToListener 
-{ withHG3DClass* `HG3DClass' ,
- fromBool `Bool' } -> `()'  #}
-
-{- function setMinDistance -}
-{#fun sfml_snsr_setMinDistance as setMinDistance 
-{ withHG3DClass* `HG3DClass' ,
- realToFrac `Float' } -> `()'  #}
-
-{- function setAttenuation -}
-{#fun sfml_snsr_setAttenuation as setAttenuation 
-{ withHG3DClass* `HG3DClass' ,
- realToFrac `Float' } -> `()'  #}
-
-{- function getPitch -}
-{#fun sfml_snsr_getPitch as getPitch 
-{ withHG3DClass* `HG3DClass' ,
- alloca- `Float' peekFloatConv*} -> `()'  #}
-
-{- function getVolume -}
-{#fun sfml_snsr_getVolume as getVolume 
-{ withHG3DClass* `HG3DClass' ,
- alloca- `Float' peekFloatConv*} -> `()'  #}
-
-{- function isRelativeToListener -}
-{#fun sfml_snsr_isRelativeToListener as isRelativeToListener 
-{ withHG3DClass* `HG3DClass' ,
- alloca- `Bool' peekBoolUtil*} -> `()'  #}
-
-{- function getMinDistance -}
-{#fun sfml_snsr_getMinDistance as getMinDistance 
-{ withHG3DClass* `HG3DClass' ,
- alloca- `Float' peekFloatConv*} -> `()'  #}
-
-{- function getAttenuation -}
-{#fun sfml_snsr_getAttenuation as getAttenuation 
-{ withHG3DClass* `HG3DClass' ,
- alloca- `Float' peekFloatConv*} -> `()'  #}
-
+{-# 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.+-- +++-- ClassSoundSource.chs++-- ++module HGamer3D.Bindings.SFML.ClassSoundSource 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.SFML.Utils #}+{# import HGamer3D.Bindings.SFML.ClassPtr #}+{# import HGamer3D.Bindings.SFML.StructHG3DClass #}+{# import HGamer3D.Bindings.SFML.StructVec3 #}++#include "ClassSoundSource.h"+{- function ~SoundSource -}+{#fun sfml_snsr_destruct as delete +{ withHG3DClass* `HG3DClass' } -> `()'  #}++{- function setPitch -}+{#fun sfml_snsr_setPitch as setPitch +{ withHG3DClass* `HG3DClass' ,+ realToFrac `Float' } -> `()'  #}++{- function setVolume -}+{#fun sfml_snsr_setVolume as setVolume +{ withHG3DClass* `HG3DClass' ,+ realToFrac `Float' } -> `()'  #}++{- function setPosition -}+{#fun sfml_snsr_setPosition as setPosition +{ withHG3DClass* `HG3DClass' ,+ realToFrac `Float' ,+ realToFrac `Float' ,+ realToFrac `Float' } -> `()'  #}++{- function setRelativeToListener -}+{#fun sfml_snsr_setRelativeToListener as setRelativeToListener +{ withHG3DClass* `HG3DClass' ,+ fromBool `Bool' } -> `()'  #}++{- function setMinDistance -}+{#fun sfml_snsr_setMinDistance as setMinDistance +{ withHG3DClass* `HG3DClass' ,+ realToFrac `Float' } -> `()'  #}++{- function setAttenuation -}+{#fun sfml_snsr_setAttenuation as setAttenuation +{ withHG3DClass* `HG3DClass' ,+ realToFrac `Float' } -> `()'  #}++{- function getPitch -}+{#fun sfml_snsr_getPitch as getPitch +{ withHG3DClass* `HG3DClass' ,+ alloca- `Float' peekFloatConv*} -> `()'  #}++{- function getVolume -}+{#fun sfml_snsr_getVolume as getVolume +{ withHG3DClass* `HG3DClass' ,+ alloca- `Float' peekFloatConv*} -> `()'  #}++{- function getPosition -}+{#fun sfml_snsr_getPosition as getPosition +{ withHG3DClass* `HG3DClass' ,+ alloca- `Vec3' peekVec3*} -> `()'  #}++{- function isRelativeToListener -}+{#fun sfml_snsr_isRelativeToListener as isRelativeToListener +{ withHG3DClass* `HG3DClass' ,+ alloca- `Bool' peekBoolUtil*} -> `()'  #}++{- function getMinDistance -}+{#fun sfml_snsr_getMinDistance as getMinDistance +{ withHG3DClass* `HG3DClass' ,+ alloca- `Float' peekFloatConv*} -> `()'  #}++{- function getAttenuation -}+{#fun sfml_snsr_getAttenuation as getAttenuation +{ withHG3DClass* `HG3DClass' ,+ alloca- `Float' peekFloatConv*} -> `()'  #}+
HGamer3D/Bindings/SFML/ClassSoundStream.chs view
@@ -1,85 +1,79 @@-{-# 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, 2012 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.
--- 
-
-
--- ClassSoundStream.chs
-
--- 
-
-module HGamer3D.Bindings.SFML.ClassSoundStream where
-
-import C2HS
-import Foreign
-import Foreign.Ptr
-import Foreign.C
-import Monad         (liftM, liftM2)
-
-import HGamer3D.Data.HG3DClass
-import HGamer3D.Data.Vector2
-import HGamer3D.Data.Vector3
-import HGamer3D.Data.Vector4
-import HGamer3D.Data.Quaternion
-import HGamer3D.Data.Colour
-import HGamer3D.Data.Angle
-
-{# import HGamer3D.Bindings.SFML.Utils #}
-{# import HGamer3D.Bindings.SFML.ClassPtr #}
-{# import HGamer3D.Bindings.SFML.StructHG3DClass #}
-
-#include "ClassSoundStream.h"
-{- function ~SoundStream -}
-{#fun sfml_snst_destruct as delete 
-{ withHG3DClass* `HG3DClass' } -> `()'  #}
-
-{- function play -}
-{#fun sfml_snst_play as play 
-{ withHG3DClass* `HG3DClass' } -> `()'  #}
-
-{- function pause -}
-{#fun sfml_snst_pause as pause 
-{ withHG3DClass* `HG3DClass' } -> `()'  #}
-
-{- function stop -}
-{#fun sfml_snst_stop as stop 
-{ withHG3DClass* `HG3DClass' } -> `()'  #}
-
-{- function getChannelCount -}
-{#fun sfml_snst_getChannelCount as getChannelCount 
-{ withHG3DClass* `HG3DClass' ,
- alloca- `Int' peekIntConv*} -> `()'  #}
-
-{- function getSampleRate -}
-{#fun sfml_snst_getSampleRate as getSampleRate 
-{ withHG3DClass* `HG3DClass' ,
- alloca- `Int' peekIntConv*} -> `()'  #}
-
-{- function setLoop -}
-{#fun sfml_snst_setLoop as setLoop 
-{ withHG3DClass* `HG3DClass' ,
- fromBool `Bool' } -> `()'  #}
-
-{- function getLoop -}
-{#fun sfml_snst_getLoop as getLoop 
-{ withHG3DClass* `HG3DClass' ,
- alloca- `Bool' peekBoolUtil*} -> `()'  #}
-
+{-# 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.+-- +++-- ClassSoundStream.chs++-- ++module HGamer3D.Bindings.SFML.ClassSoundStream 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.SFML.Utils #}+{# import HGamer3D.Bindings.SFML.ClassPtr #}+{# import HGamer3D.Bindings.SFML.StructHG3DClass #}++#include "ClassSoundStream.h"+{- function ~SoundStream -}+{#fun sfml_snst_destruct as delete +{ withHG3DClass* `HG3DClass' } -> `()'  #}++{- function play -}+{#fun sfml_snst_play as play +{ withHG3DClass* `HG3DClass' } -> `()'  #}++{- function pause -}+{#fun sfml_snst_pause as pause +{ withHG3DClass* `HG3DClass' } -> `()'  #}++{- function stop -}+{#fun sfml_snst_stop as stop +{ withHG3DClass* `HG3DClass' } -> `()'  #}++{- function getChannelCount -}+{#fun sfml_snst_getChannelCount as getChannelCount +{ withHG3DClass* `HG3DClass' ,+ alloca- `Int' peekIntConv*} -> `()'  #}++{- function getSampleRate -}+{#fun sfml_snst_getSampleRate as getSampleRate +{ withHG3DClass* `HG3DClass' ,+ alloca- `Int' peekIntConv*} -> `()'  #}++{- function setLoop -}+{#fun sfml_snst_setLoop as setLoop +{ withHG3DClass* `HG3DClass' ,+ fromBool `Bool' } -> `()'  #}++{- function getLoop -}+{#fun sfml_snst_getLoop as getLoop +{ withHG3DClass* `HG3DClass' ,+ alloca- `Bool' peekBoolUtil*} -> `()'  #}+
HGamer3D/Bindings/SFML/EnumJoystickAxis.chs view
@@ -1,47 +1,41 @@-{-# 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, 2012 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.
--- 
-
-
--- EnumJoystickAxis.chs
-
--- 
-
-module HGamer3D.Bindings.SFML.EnumJoystickAxis where
-
-import C2HS
-import Foreign
-import Foreign.Ptr
-import Foreign.C
-import Monad         (liftM, liftM2)
-
-import HGamer3D.Data.HG3DClass
-import HGamer3D.Data.Vector2
-import HGamer3D.Data.Vector3
-import HGamer3D.Data.Vector4
-import HGamer3D.Data.Quaternion
-import HGamer3D.Data.Colour
-import HGamer3D.Data.Angle
-
-
-#include "EnumJoystickAxis.h"
+{-# 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.+-- +++-- EnumJoystickAxis.chs++-- ++module HGamer3D.Bindings.SFML.EnumJoystickAxis 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+++#include "EnumJoystickAxis.h" {#enum EnumJoystickAxis {} deriving (Eq)#}
HGamer3D/Bindings/SFML/EnumKey.chs view
@@ -1,47 +1,41 @@-{-# 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, 2012 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.
--- 
-
-
--- EnumKey.chs
-
--- 
-
-module HGamer3D.Bindings.SFML.EnumKey where
-
-import C2HS
-import Foreign
-import Foreign.Ptr
-import Foreign.C
-import Monad         (liftM, liftM2)
-
-import HGamer3D.Data.HG3DClass
-import HGamer3D.Data.Vector2
-import HGamer3D.Data.Vector3
-import HGamer3D.Data.Vector4
-import HGamer3D.Data.Quaternion
-import HGamer3D.Data.Colour
-import HGamer3D.Data.Angle
-
-
-#include "EnumKey.h"
+{-# 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.+-- +++-- EnumKey.chs++-- ++module HGamer3D.Bindings.SFML.EnumKey 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+++#include "EnumKey.h" {#enum EnumKey {} deriving (Eq)#}
HGamer3D/Bindings/SFML/EnumMouseButton.chs view
@@ -1,47 +1,41 @@-{-# 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, 2012 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.
--- 
-
-
--- EnumMouseButton.chs
-
--- 
-
-module HGamer3D.Bindings.SFML.EnumMouseButton where
-
-import C2HS
-import Foreign
-import Foreign.Ptr
-import Foreign.C
-import Monad         (liftM, liftM2)
-
-import HGamer3D.Data.HG3DClass
-import HGamer3D.Data.Vector2
-import HGamer3D.Data.Vector3
-import HGamer3D.Data.Vector4
-import HGamer3D.Data.Quaternion
-import HGamer3D.Data.Colour
-import HGamer3D.Data.Angle
-
-
-#include "EnumMouseButton.h"
+{-# 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.+-- +++-- EnumMouseButton.chs++-- ++module HGamer3D.Bindings.SFML.EnumMouseButton 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+++#include "EnumMouseButton.h" {#enum EnumMouseButton {} deriving (Eq)#}
HGamer3D/Bindings/SFML/EnumSoundSourceStatus.chs view
@@ -1,47 +1,41 @@-{-# 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, 2012 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.
--- 
-
-
--- EnumSoundSourceStatus.chs
-
--- 
-
-module HGamer3D.Bindings.SFML.EnumSoundSourceStatus where
-
-import C2HS
-import Foreign
-import Foreign.Ptr
-import Foreign.C
-import Monad         (liftM, liftM2)
-
-import HGamer3D.Data.HG3DClass
-import HGamer3D.Data.Vector2
-import HGamer3D.Data.Vector3
-import HGamer3D.Data.Vector4
-import HGamer3D.Data.Quaternion
-import HGamer3D.Data.Colour
-import HGamer3D.Data.Angle
-
-
-#include "EnumSoundSourceStatus.h"
+{-# 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.+-- +++-- EnumSoundSourceStatus.chs++-- ++module HGamer3D.Bindings.SFML.EnumSoundSourceStatus 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+++#include "EnumSoundSourceStatus.h" {#enum EnumSoundSourceStatus {} deriving (Eq)#}
HGamer3D/Bindings/SFML/StructHG3DClass.chs view
@@ -1,55 +1,52 @@-{-# 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, 2012 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.
--- 
-
-
--- StructHG3DClass.chs
-
--- 
-
-module HGamer3D.Bindings.SFML.StructHG3DClass where
-
-import C2HS
-import Foreign
-import Foreign.Ptr
-import Foreign.C
-import Monad         (liftM, liftM2)
-
-import HGamer3D.Data.HG3DClass
-import HGamer3D.Data.Vector2
-import HGamer3D.Data.Vector3
-import HGamer3D.Data.Vector4
-import HGamer3D.Data.Quaternion
-import HGamer3D.Data.Colour
-import HGamer3D.Data.Angle
-
-
-#include "StructHG3DClass.h"
-
-import Data.Bits
-import HGamer3D.Data.HG3DClass
-
-
-{#pointer *hg3dclass_struct as HG3DClassPtr -> HG3DClass #}
-
-withHG3DClass :: HG3DClass -> (HG3DClassPtr -> IO b) -> IO b
-withHG3DClass = with
+{-# 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.+-- +++-- StructHG3DClass.chs++-- ++module HGamer3D.Bindings.SFML.StructHG3DClass 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+++#include "StructHG3DClass.h"++import Data.Bits+import HGamer3D.Data.HG3DClass++{#pointer *hg3dclass_struct as HG3DClassPtr -> HG3DClass #}++withHG3DClass :: HG3DClass -> (HG3DClassPtr -> IO b) -> IO b+withHG3DClass = with++peekHG3DClass :: HG3DClassPtr -> IO HG3DClass+peekHG3DClass = peek+
+ HGamer3D/Bindings/SFML/StructVec3.chs view
@@ -0,0 +1,72 @@+{-# 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.+-- +++-- StructVec3.chs++-- ++module HGamer3D.Bindings.SFML.StructVec3 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+++#include "StructVec3.h"++import Data.Bits+import HGamer3D.Data.Vector++newtype Vector3f = Vector3f Vec3++instance Storable Vector3f where+  alignment _ = alignment (undefined :: CDouble)+  sizeOf _ = {#sizeof vector3f_struct#}+  peek p = do+	x <- {#get vector3f_struct.x #} p+	y <- {#get vector3f_struct.y #} p+	z <- {#get vector3f_struct.z #} p+	let v = Vector3f (Vec3 (realToFrac x) (realToFrac y) (realToFrac z))+	return v+  poke p (Vector3f (Vec3 x y z)) = do+    {#set vector3f_struct.x #} p (realToFrac x)+    {#set vector3f_struct.y #} p (realToFrac  y)+    {#set vector3f_struct.z #} p (realToFrac  z)+    +type Vector3fPtr = Ptr (Vector3f)++{#pointer *vector3f_struct as Vec3Ptr -> Vec3 #}++withVec3 :: Vec3 -> (Vec3Ptr -> IO b) -> IO b+withVec3 v f = with v' f' where+     v' = Vector3f v+     f' p = f (castPtr p)+peekVec3 p = do+   (Vector3f v3) <- peek ((castPtr p)::Vector3fPtr)+   return v3+
HGamer3D/Bindings/SFML/Utils.chs view
@@ -1,85 +1,132 @@-{-# 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, 2012 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.
--- 
-
-
--- Utils.hs
-
--- Marshalling Utilities
-
-module HGamer3D.Bindings.SFML.Utils where
-
-import C2HS
-import Foreign
-import Foreign.Ptr
-import Foreign.C
-import Monad         (liftM, liftM2)
-
-import HGamer3D.Data.HG3DClass
-import HGamer3D.Data.Vector2
-import HGamer3D.Data.Vector3
-import HGamer3D.Data.Vector4
-import HGamer3D.Data.Quaternion
-import HGamer3D.Data.Colour
-import HGamer3D.Data.Angle
-
-
-#include "StructHG3DClass.h"
--- String Conversion functions
---
-
-withCUString b f = withCWString b (f . castPtr)
-peekCUString = peekCWString . castPtr
-alloc64k = allocaBytes (1024 * 64)
-
--- c2hs replacements of utility functions, to get rid of annoying c2hs
--- deprecated messages
-
--- Passing Enums
-
-cIntFromEnum :: Enum a => a -> CInt
-cIntFromEnum = cIntConv . fromEnum
-
-cIntToEnum :: Enum a => CInt -> a
-cIntToEnum = toEnum . cIntConv
-
-
--- Passing Booleans by reference
---
-
-withBoolUtil :: (Integral a, Storable a) => Bool -> (Ptr a -> IO b) -> IO b
-withBoolUtil  = with . fromBool
-
-peekBoolUtil :: (Integral a, Storable a) => Ptr a -> IO Bool
-peekBoolUtil  = liftM toBool . peek
-
-
--- Passing enums by reference
---
-
-withEnumUtil :: (Enum a, Integral b, Storable b) => a -> (Ptr b -> IO c) -> IO c
-withEnumUtil  = with . cFromEnum
-
-peekEnumUtil :: (Enum a, Integral b, Storable b) => Ptr b -> IO a
-peekEnumUtil  = liftM cToEnum . peek
-
-
+{-# 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.+-- +++-- Utils.hs++-- Marshalling Utilities++module HGamer3D.Bindings.SFML.Utils 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+++#include "StructHG3DClass.h"++import Control.Monad (liftM)++-- Strings with explicit length+--+withCStringLenIntConv :: Num n => String -> ((CString, n) -> IO a) -> IO a+withCStringLenIntConv s f    = withCStringLen s $ \(p, n) -> f (p, fromIntegral n)++peekCStringLenIntConv :: Integral n => (CString, n) -> IO String+peekCStringLenIntConv (s, n) = peekCStringLen (s, fromIntegral n)++-- Marshalling of numerals+--++withIntConv   :: (Storable b, Integral a, Integral b) +              => a -> (Ptr b -> IO c) -> IO c+withIntConv    = with . fromIntegral++withFloatConv :: (Storable b, RealFloat a, RealFloat b) +              => a -> (Ptr b -> IO c) -> IO c+withFloatConv  = with . realToFrac++peekIntConv   :: (Storable a, Integral a, Integral b) +              => Ptr a -> IO b+peekIntConv    = liftM fromIntegral . peek++peekFloatConv :: (Storable a, RealFloat a, RealFloat b) +              => Ptr a -> IO b+peekFloatConv  = liftM realToFrac . peek+++-- String Conversion functions+--++withCUString b f = withCWString b (f . castPtr)+peekCUString = peekCWString . castPtr+alloc64k = allocaBytes (1024 * 64)++-- c2hs replacements of utility functions, to get rid of annoying c2hs+-- deprecated messages++-- Passing Enums++cIntFromEnum :: Enum a => a -> CInt+cIntFromEnum = cIntConv . fromEnum++cIntToEnum :: Enum a => CInt -> a+cIntToEnum = toEnum . cIntConv+++-- Passing Booleans by reference+--++withBoolUtil :: (Integral a, Storable a) => Bool -> (Ptr a -> IO b) -> IO b+withBoolUtil  = with . fromBool++peekBoolUtil :: (Integral a, Storable a) => Ptr a -> IO Bool+peekBoolUtil  = liftM toBool . peek+++-- Passing enums by reference+--++withEnumUtil :: (Enum a, Integral b, Storable b) => a -> (Ptr b -> IO c) -> IO c+withEnumUtil  = with . cFromEnum++peekEnumUtil :: (Enum a, Integral b, Storable b) => Ptr b -> IO a+peekEnumUtil  = liftM cToEnum . peek++-- Conversion routines+-- -------------------++-- |Integral conversion+--+cIntConv :: (Integral a, Integral b) => a -> b+cIntConv  = fromIntegral++-- |Floating conversion+--+cFloatConv :: (RealFloat a, RealFloat b) => a -> b+cFloatConv  = realToFrac++-- |Convert a C enumeration to Haskell.+--+cToEnum :: (Integral i, Enum e) => i -> e+cToEnum  = toEnum . fromIntegral++-- |Convert a Haskell enumeration to C.+--+cFromEnum :: (Enum e, Integral i) => e -> i+cFromEnum  = fromIntegral . fromEnum+
LICENSE view
@@ -1,13 +1,13 @@-(c) 2011, 2012 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.
+(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.
Setup.hs view
@@ -1,22 +1,21 @@--- 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, 2012 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.
--- 
--- Setup.hs
-
-import Distribution.Simple
-main = defaultMain
+-- 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.+-- +-- Setup.hs++import Distribution.Simple+main = defaultMain
include/ClassJoystick.h view
@@ -1,8 +1,7 @@-// 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
+// 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, 2012 Peter Althainz
+// (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.
@@ -22,6 +21,9 @@ // 
 
 #include "wchar.h"
+#ifndef _DEFINED_HG3D_ClassJoystick
+#define _DEFINED_HG3D_ClassJoystick
+
 #include "ClassPtr.h"
 #include "EnumJoystickAxis.h"
 
@@ -44,3 +46,4 @@ // Update the states of all joysticks. 
 void sfml_jst_update();
 
+#endif 
include/ClassKeyboard.h view
@@ -1,8 +1,7 @@-// 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
+// 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, 2012 Peter Althainz
+// (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.
@@ -22,6 +21,9 @@ // 
 
 #include "wchar.h"
+#ifndef _DEFINED_HG3D_ClassKeyboard
+#define _DEFINED_HG3D_ClassKeyboard
+
 #include "ClassPtr.h"
 #include "EnumKey.h"
 
@@ -29,3 +31,4 @@ // Check if a key is pressed. 
 void sfml_kbd_isKeyPressed(enum EnumKey key_c, int * result_c);
 
+#endif 
include/ClassListener.h view
@@ -1,8 +1,7 @@-// 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
+// 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, 2012 Peter Althainz
+// (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.
@@ -22,7 +21,11 @@ // 
 
 #include "wchar.h"
+#ifndef _DEFINED_HG3D_ClassListener
+#define _DEFINED_HG3D_ClassListener
+
 #include "ClassPtr.h"
+#include "StructVec3.h"
 
 
 // Change the global volume of all the sounds and musics. 
@@ -34,6 +37,13 @@ // Set the position of the listener in the scene. 
 void sfml_lst_setPosition(float x_c, float y_c, float z_c);
 
+// Get the current position of the listener in the scene. 
+void sfml_lst_getPosition(struct vector3f_struct * result_c);
+
 // Set the orientation of the listener in the scene. 
 void sfml_lst_setDirection(float x_c, float y_c, float z_c);
 
+// Get the current orientation of the listener in the scene. 
+void sfml_lst_getDirection(struct vector3f_struct * result_c);
+
+#endif 
include/ClassMouse.h view
@@ -1,8 +1,7 @@-// 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
+// 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, 2012 Peter Althainz
+// (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.
@@ -22,6 +21,9 @@ // 
 
 #include "wchar.h"
+#ifndef _DEFINED_HG3D_ClassMouse
+#define _DEFINED_HG3D_ClassMouse
+
 #include "ClassPtr.h"
 #include "EnumMouseButton.h"
 
@@ -29,3 +31,4 @@ // Check if a mouse button is pressed. 
 void sfml_mse_isButtonPressed(enum EnumMouseButton button_c, int * result_c);
 
+#endif 
include/ClassMouseHG3D.h view
@@ -1,8 +1,7 @@-// 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
+// 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, 2012 Peter Althainz
+// (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.
@@ -22,9 +21,13 @@ // 
 
 #include "wchar.h"
+#ifndef _DEFINED_HG3D_ClassMouseHG3D
+#define _DEFINED_HG3D_ClassMouseHG3D
+
 #include "ClassPtr.h"
 
 
 // 
 void sfml_mshg_getPosition(int * x_c, int * y_c);
 
+#endif 
include/ClassMusic.h view
@@ -1,8 +1,7 @@-// 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
+// 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, 2012 Peter Althainz
+// (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.
@@ -22,6 +21,9 @@ // 
 
 #include "wchar.h"
+#ifndef _DEFINED_HG3D_ClassMusic
+#define _DEFINED_HG3D_ClassMusic
+
 #include "ClassPtr.h"
 
 
@@ -34,3 +36,4 @@ // Open a music from an audio file. 
 void sfml_msc_openFromFile(struct hg3dclass_struct * thisclass_c, char * filename_c, int * result_c);
 
+#endif 
include/ClassPtr.h view
@@ -1,8 +1,7 @@-// 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
+// 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, 2012 Peter Althainz
+// (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.
include/ClassSound.h view
@@ -1,8 +1,7 @@-// 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
+// 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, 2012 Peter Althainz
+// (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.
@@ -22,6 +21,9 @@ // 
 
 #include "wchar.h"
+#ifndef _DEFINED_HG3D_ClassSound
+#define _DEFINED_HG3D_ClassSound
+
 #include "ClassPtr.h"
 #include "ClassSoundBuffer.h"
 
@@ -38,7 +40,7 @@ // Pause the sound. 
 void sfml_snd_pause(struct hg3dclass_struct * thisclass_c);
 
-// Stop playing the sound. 
+// stop playing the sound 
 void sfml_snd_stop(struct hg3dclass_struct * thisclass_c);
 
 // Set the source buffer containing the audio data to play. 
@@ -53,3 +55,4 @@ // Reset the internal buffer of the sound. 
 void sfml_snd_resetBuffer(struct hg3dclass_struct * thisclass_c);
 
+#endif 
include/ClassSoundBuffer.h view
@@ -1,8 +1,7 @@-// 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
+// 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, 2012 Peter Althainz
+// (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.
@@ -22,6 +21,9 @@ // 
 
 #include "wchar.h"
+#ifndef _DEFINED_HG3D_ClassSoundBuffer
+#define _DEFINED_HG3D_ClassSoundBuffer
+
 #include "ClassPtr.h"
 
 
@@ -43,3 +45,4 @@ // Get the number of channels used by the sound. 
 void sfml_snbf_getChannelCount(struct hg3dclass_struct * thisclass_c, unsigned int * result_c);
 
+#endif 
include/ClassSoundSource.h view
@@ -1,8 +1,7 @@-// 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
+// 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, 2012 Peter Althainz
+// (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.
@@ -22,7 +21,11 @@ // 
 
 #include "wchar.h"
+#ifndef _DEFINED_HG3D_ClassSoundSource
+#define _DEFINED_HG3D_ClassSoundSource
+
 #include "ClassPtr.h"
+#include "StructVec3.h"
 
 
 // Destructor. 
@@ -52,6 +55,9 @@ // Get the volume of the sound. 
 void sfml_snsr_getVolume(struct hg3dclass_struct * thisclass_c, float * result_c);
 
+// Get the 3D position of the sound in the audio scene. 
+void sfml_snsr_getPosition(struct hg3dclass_struct * thisclass_c, struct vector3f_struct * result_c);
+
 // Tell whether the sound's position is relative to the listener or is absolute. 
 void sfml_snsr_isRelativeToListener(struct hg3dclass_struct * thisclass_c, int * result_c);
 
@@ -61,3 +67,4 @@ // Get the attenuation factor of the sound. 
 void sfml_snsr_getAttenuation(struct hg3dclass_struct * thisclass_c, float * result_c);
 
+#endif 
include/ClassSoundStream.h view
@@ -1,8 +1,7 @@-// 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
+// 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, 2012 Peter Althainz
+// (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.
@@ -22,6 +21,9 @@ // 
 
 #include "wchar.h"
+#ifndef _DEFINED_HG3D_ClassSoundStream
+#define _DEFINED_HG3D_ClassSoundStream
+
 #include "ClassPtr.h"
 
 
@@ -49,3 +51,4 @@ // Tell whether or not the stream is in loop mode. 
 void sfml_snst_getLoop(struct hg3dclass_struct * thisclass_c, int * result_c);
 
+#endif 
include/EnumJoystickAxis.h view
@@ -1,8 +1,7 @@-// 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
+// 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, 2012 Peter Althainz
+// (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.
@@ -22,6 +21,8 @@ // 
 
 #include "wchar.h"
+#ifndef _DEFINED_HG3D_EnumJoystickAxis
+#define _DEFINED_HG3D_EnumJoystickAxis
 
 
 enum EnumJoystickAxis
@@ -35,3 +36,4 @@   JoystickAxisPovX, // The X axis of the point-of-view hat. 
   JoystickAxisPovY // The Y axis of the point-of-view hat. 
 };
+#endif 
include/EnumKey.h view
@@ -1,8 +1,7 @@-// 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
+// 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, 2012 Peter Althainz
+// (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.
@@ -22,11 +21,14 @@ // 
 
 #include "wchar.h"
+#ifndef _DEFINED_HG3D_EnumKey
+#define _DEFINED_HG3D_EnumKey
 
 
 enum EnumKey
 {
-  KeyA, // The A key. 
+  KeyUnknown =  -1, // Unhandled key. 
+  KeyA =  0, // The A key. 
   KeyB, // The B key. 
   KeyC, // The C key. 
   KeyD, // The D key. 
@@ -85,7 +87,7 @@   KeyDash, // The - key. 
   KeySpace, // The Space key. 
   KeyReturn, // The Return key. 
-  KeyBack, // The Backspace key. 
+  KeyBackSpace, // The Backspace key. 
   KeyTab, // The Tabulation key. 
   KeyPageUp, // The Page up key. 
   KeyPageDown, // The Page down key. 
@@ -93,10 +95,10 @@   KeyHome, // The Home key. 
   KeyInsert, // The Insert key. 
   KeyDelete, // The Delete key. 
-  KeyAdd, // 
-  KeySubtract, // 
-  KeyMultiply, // 
-  KeyDivide, // / 
+  KeyAdd, // The + key. 
+  KeySubtract, // The - key. 
+  KeyMultiply, // The * key. 
+  KeyDivide, // The / key. 
   KeyLeft, // Left arrow. 
   KeyRight, // Right arrow. 
   KeyUp, // Up arrow. 
@@ -119,7 +121,7 @@   KeyF6, // The F6 key. 
   KeyF7, // The F7 key. 
   KeyF8, // The F8 key. 
-  KeyF9, // The F8 key. 
+  KeyF9, // The F9 key. 
   KeyF10, // The F10 key. 
   KeyF11, // The F11 key. 
   KeyF12, // The F12 key. 
@@ -127,5 +129,6 @@   KeyF14, // The F14 key. 
   KeyF15, // The F15 key. 
   KeyPause, // The Pause key. 
-  KeyKeyCount // Keep last -- the total number of keyboard keys. 
+  KeyKeyCount // Keep last 
 };
+#endif 
include/EnumMouseButton.h view
@@ -1,8 +1,7 @@-// 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
+// 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, 2012 Peter Althainz
+// (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.
@@ -22,6 +21,8 @@ // 
 
 #include "wchar.h"
+#ifndef _DEFINED_HG3D_EnumMouseButton
+#define _DEFINED_HG3D_EnumMouseButton
 
 
 enum EnumMouseButton
@@ -31,5 +32,6 @@   MouseButtonMiddle, // The middle (wheel) mouse button. 
   MouseButtonXButton1, // The first extra mouse button. 
   MouseButtonXButton2, // The second extra mouse button. 
-  MouseButtonButtonCount // Keep last -- the total number of mouse buttons. 
+  MouseButtonButtonCount // Keep last 
 };
+#endif 
include/EnumSoundSourceStatus.h view
@@ -1,8 +1,7 @@-// 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
+// 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, 2012 Peter Althainz
+// (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.
@@ -22,6 +21,8 @@ // 
 
 #include "wchar.h"
+#ifndef _DEFINED_HG3D_EnumSoundSourceStatus
+#define _DEFINED_HG3D_EnumSoundSourceStatus
 
 
 enum EnumSoundSourceStatus
@@ -30,3 +31,4 @@   SoundSourceStatusPaused, // Sound
   SoundSourceStatusPlaying // Sound
 };
+#endif 
+ include/MouseHG3D.h view
@@ -0,0 +1,18 @@+// MouseHG3D - special mouse class to get a specialized way to obtain+// the mouse coordinates++#include <SFML/System/Vector2.hpp>+#include <SFML/Window/Mouse.hpp>++class MouseHG3D : sf::Mouse {+	+	public:+		static void getPosition(int &x, int &y) {+			sf::Vector2i vi = sf::Vector2i();+			vi = sf::Mouse::getPosition();+			x = vi.x;+			y = vi.y;+		};+	+};+
include/SFMLDllDefines.h view
@@ -1,4 +1,4 @@-// (c) 2011, 2012 Peter Althainz
+// (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.
@@ -16,10 +16,10 @@ 
 // SFMLDllDefines.h
 
-#ifndef _HGamer3DSFML016_DLLDEFINES_H_
-#define _HGamer3DSFML016_DLLDEFINES_H_
+#ifndef _HGamer3DSFML050_DLLDEFINES_H_
+#define _HGamer3DSFML050_DLLDEFINES_H_
 
-/* Cmake will define HGamer3DSFML016_EXPORTS on Windows when it
+/* Cmake will define HGamer3DSFML050_EXPORTS on Windows when it
 configures to build a shared library. If you are going to use
 another build system on windows or create the visual studio
 projects by hand you need to define MyLibrary_EXPORTS when
@@ -29,13 +29,13 @@ // We are using the Visual Studio Compiler and building Shared libraries
 
 #if (defined (_WIN32)) && !(defined (__GNUC__)) 
-  #if defined(HGamer3DSFML016_EXPORTS)
+  #if defined(HGamer3DSFML050_EXPORTS)
     #define  SFML_LIB_EXPORT __declspec(dllexport)
   #else
     #define  SFML_LIB_EXPORT __declspec(dllimport)
-  #endif /* HGamer3DSFML016_EXPORTS */
+  #endif /* HGamer3DSFML050_EXPORTS */
 #else /* defined (_WIN32) */
  #define SFML_LIB_EXPORT
 #endif
 
-#endif /* _HGamer3DSFML016_DLLDEFINES_H_ */
+#endif /* _HGamer3DSFML050_DLLDEFINES_H_ */
include/StructHG3DClass.h view
@@ -1,8 +1,7 @@-// 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
+// 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, 2012 Peter Althainz
+// (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.
+ include/StructVec3.h view
@@ -0,0 +1,35 @@+// 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.
+// 
+
+// StructVec3.h
+
+// 
+
+#include "wchar.h"
+
+
+#ifndef _INC_STRUCT_VECTOR3F
+#define _INC_STRUCT_VECTOR3F
+
+typedef struct vector3f_struct {
+	float x;
+	float y;
+	float z;
+} vector3f_struct;
+
+#endif
+ include/hg3dstruct.h view
@@ -0,0 +1,4 @@+typedef struct hg3dclass_struct {+	void *ptr;+	void *fptr;+} hg3dclass_struct;
+ include/vector2fstruct.h view
@@ -0,0 +1,4 @@+typedef struct vector2f_struct {+	float x;+	float y;+} vector2f_struct;
+ include/vector2istruct.h view
@@ -0,0 +1,4 @@+typedef struct vector2i_struct {+	int x;+	int y;+} vector2i_struct;
+ include/vector3fstruct.h view
@@ -0,0 +1,5 @@+typedef struct vector3f_struct {+	float x;+	float y;+	float z;+} vector3f_struct;
+ include/vector3istruct.h view
@@ -0,0 +1,5 @@+typedef struct vector3i_struct {+	int x;+	int y;+	int z;+} vector3i_struct;