HGamer3D-SFML-Binding 0.1.6 → 0.5.0
raw patch · 46 files changed
Files
- C2HS.hs +0/−238
- HGamer3D-SFML-Binding.cabal +22/−23
- HGamer3D/Bindings/SFML/ClassJoystick.chs +76/−82
- HGamer3D/Bindings/SFML/ClassKeyboard.chs +49/−55
- HGamer3D/Bindings/SFML/ClassListener.chs +72/−69
- HGamer3D/Bindings/SFML/ClassMouse.chs +49/−55
- HGamer3D/Bindings/SFML/ClassMouseHG3D.chs +48/−54
- HGamer3D/Bindings/SFML/ClassMusic.chs +57/−63
- HGamer3D/Bindings/SFML/ClassPtr.chs +6/−10
- HGamer3D/Bindings/SFML/ClassSound.chs +82/−88
- HGamer3D/Bindings/SFML/ClassSoundBuffer.chs +73/−79
- HGamer3D/Bindings/SFML/ClassSoundSource.chs +110/−110
- HGamer3D/Bindings/SFML/ClassSoundStream.chs +79/−85
- HGamer3D/Bindings/SFML/EnumJoystickAxis.chs +40/−46
- HGamer3D/Bindings/SFML/EnumKey.chs +40/−46
- HGamer3D/Bindings/SFML/EnumMouseButton.chs +40/−46
- HGamer3D/Bindings/SFML/EnumSoundSourceStatus.chs +40/−46
- HGamer3D/Bindings/SFML/StructHG3DClass.chs +52/−55
- HGamer3D/Bindings/SFML/StructVec3.chs +72/−0
- HGamer3D/Bindings/SFML/Utils.chs +132/−85
- LICENSE +13/−13
- Setup.hs +21/−22
- include/ClassJoystick.h +7/−4
- include/ClassKeyboard.h +7/−4
- include/ClassListener.h +14/−4
- include/ClassMouse.h +7/−4
- include/ClassMouseHG3D.h +7/−4
- include/ClassMusic.h +7/−4
- include/ClassPtr.h +3/−4
- include/ClassSound.h +8/−5
- include/ClassSoundBuffer.h +7/−4
- include/ClassSoundSource.h +11/−4
- include/ClassSoundStream.h +7/−4
- include/EnumJoystickAxis.h +6/−4
- include/EnumKey.h +15/−12
- include/EnumMouseButton.h +7/−5
- include/EnumSoundSourceStatus.h +6/−4
- include/MouseHG3D.h +18/−0
- include/SFMLDllDefines.h +7/−7
- include/StructHG3DClass.h +3/−4
- include/StructVec3.h +35/−0
- include/hg3dstruct.h +4/−0
- include/vector2fstruct.h +4/−0
- include/vector2istruct.h +4/−0
- include/vector3fstruct.h +5/−0
- include/vector3istruct.h +5/−0
− 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;