packages feed

HGamer3D-SFML-Binding 0.3.1 → 0.3.2

raw patch · 25 files changed

+889/−44 lines, 25 files

Files

HGamer3D-SFML-Binding.cabal view
@@ -1,5 +1,5 @@ Name:                HGamer3D-SFML-Binding
-Version:             0.3.1
+Version:             0.3.2
 Synopsis:            SFML Binding for HGamer3D
 Description:         
    HGamer3D is a game engine for developing 3D games in the programming @@ -18,7 +18,7 @@ Cabal-Version:       >=1.4
 Homepage:            http://www.hgamer3d.org
 Category:            Game Engine, Audio, Graphics
-Extra-source-files:  Setup.hs, include/vector2istruct.h, include/vector2fstruct.h, include/MouseHG3D.h, include/vector3istruct.h, include/hg3dstruct.h, include/vector3fstruct.h
+Extra-source-files:  Setup.hs, include/EnumMouseButton.h, include/StructHG3DClass.h, include/ClassMusic.h, include/ClassSoundStream.h, include/StructVec3.h, include/ClassSound.h, include/ClassSoundBuffer.h, include/EnumKey.h, include/ClassListener.h, include/ClassMouseHG3D.h, include/EnumJoystickAxis.h, include/ClassKeyboard.h, include/ClassSoundSource.h, include/ClassJoystick.h, include/SFMLDllDefines.h, include/ClassMouse.h, include/ClassPtr.h, include/EnumSoundSourceStatus.h
 
 Library
   Build-Depends:     base >= 3 && < 5, HGamer3D-Data >= 0.3.0
@@ -33,6 +33,6 @@   Build-tools:       
   build-depends:     
   if os(windows)
-     extra-libraries:   hg3dsfml031
+     extra-libraries:   hg3dsfml032
   else
-     extra-libraries:   hg3dsfml031,sfml-audio,sfml-system,sfml-window,sfml-network
+     extra-libraries:   hg3dsfml032,sfml-audio,sfml-system,sfml-window,sfml-network
+ include/ClassJoystick.h view
@@ -0,0 +1,49 @@+// 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.h
+
+// +
+#include "wchar.h"
+#ifndef _DEFINED_HG3D_ClassJoystick+#define _DEFINED_HG3D_ClassJoystick++#include "ClassPtr.h"+#include "EnumJoystickAxis.h"+
+
+// Check if a joystick is connected. +void sfml_jst_isConnected(unsigned int joystick_c, int * result_c);++// Return the number of buttons supported by a joystick. +void sfml_jst_getButtonCount(unsigned int joystick_c, unsigned int * result_c);++// Check if a joystick supports a given axis. +void sfml_jst_hasAxis(unsigned int joystick_c, enum EnumJoystickAxis axis_c, int * result_c);++// Check if a joystick button is pressed. +void sfml_jst_isButtonPressed(unsigned int joystick_c, unsigned int button_c, int * result_c);++// Get the current position of a joystick axis. +void sfml_jst_getAxisPosition(unsigned int joystick_c, enum EnumJoystickAxis axis_c, float * result_c);++// Update the states of all joysticks. +void sfml_jst_update();++#endif 
+ include/ClassKeyboard.h view
@@ -0,0 +1,34 @@+// 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.h
+
+// +
+#include "wchar.h"
+#ifndef _DEFINED_HG3D_ClassKeyboard+#define _DEFINED_HG3D_ClassKeyboard++#include "ClassPtr.h"+#include "EnumKey.h"+
+
+// Check if a key is pressed. +void sfml_kbd_isKeyPressed(enum EnumKey key_c, int * result_c);++#endif 
+ include/ClassListener.h view
@@ -0,0 +1,49 @@+// 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.h
+
+// +
+#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. +void sfml_lst_setGlobalVolume(float volume_c);++// Get the current value of the global volume. +void sfml_lst_getGlobalVolume(float * result_c);++// 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
@@ -0,0 +1,34 @@+// 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.h
+
+// +
+#include "wchar.h"
+#ifndef _DEFINED_HG3D_ClassMouse+#define _DEFINED_HG3D_ClassMouse++#include "ClassPtr.h"+#include "EnumMouseButton.h"+
+
+// Check if a mouse button is pressed. +void sfml_mse_isButtonPressed(enum EnumMouseButton button_c, int * result_c);++#endif 
+ include/ClassMouseHG3D.h view
@@ -0,0 +1,33 @@+// 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.h
+
+// +
+#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
@@ -0,0 +1,39 @@+// 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.h
+
+// +
+#include "wchar.h"
+#ifndef _DEFINED_HG3D_ClassMusic+#define _DEFINED_HG3D_ClassMusic++#include "ClassPtr.h"+
+
+// Default constructor. +void sfml_msc_construct(struct hg3dclass_struct * result_c);++// Destructor. +void sfml_msc_destruct(struct hg3dclass_struct * thisclass_c);++// 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
@@ -0,0 +1,68 @@+// 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.
+// +
+// ClassPtr.h
+
+// Here are the methods defined, which do the class pointer+// marshalling and the casting of subclasses to higher classes+
+#include "wchar.h"
+
+
+#ifndef CLASSPTR_INCLUDE_H+#define CLASSPTR_INCLUDE_H++typedef struct hg3dclass_struct {+	void *ptr;+	void *fptr;+} hg3dclass_struct;++void *getHG3DClassPtr(hg3dclass_struct inSt, const char* className);+++typedef void ClassMouseHG3D; +hg3dclass_struct getHG3DClass_MouseHG3D(void *ptrIn);++typedef void ClassJoystick; +hg3dclass_struct getHG3DClass_Joystick(void *ptrIn);++typedef void ClassKeyboard; +hg3dclass_struct getHG3DClass_Keyboard(void *ptrIn);++typedef void ClassListener; +hg3dclass_struct getHG3DClass_Listener(void *ptrIn);++typedef void ClassMouse; +hg3dclass_struct getHG3DClass_Mouse(void *ptrIn);++typedef void ClassMusic; +hg3dclass_struct getHG3DClass_Music(void *ptrIn);++typedef void ClassSound; +hg3dclass_struct getHG3DClass_Sound(void *ptrIn);++typedef void ClassSoundBuffer; +hg3dclass_struct getHG3DClass_SoundBuffer(void *ptrIn);++typedef void ClassSoundSource; +hg3dclass_struct getHG3DClass_SoundSource(void *ptrIn);++typedef void ClassSoundStream; +hg3dclass_struct getHG3DClass_SoundStream(void *ptrIn);++#endif
+ include/ClassSound.h view
@@ -0,0 +1,58 @@+// 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.h
+
+// +
+#include "wchar.h"
+#ifndef _DEFINED_HG3D_ClassSound+#define _DEFINED_HG3D_ClassSound++#include "ClassPtr.h"+#include "ClassSoundBuffer.h"+
+
+// Default constructor. +void sfml_snd_construct(struct hg3dclass_struct * result_c);++// Destructor. +void sfml_snd_destruct(struct hg3dclass_struct * thisclass_c);++// Start or resume playing the sound. +void sfml_snd_play(struct hg3dclass_struct * thisclass_c);++// Pause the sound. +void sfml_snd_pause(struct hg3dclass_struct * thisclass_c);++// stop playing the sound +void sfml_snd_stop(struct hg3dclass_struct * thisclass_c);++// Set the source buffer containing the audio data to play. +void sfml_snd_setBuffer(struct hg3dclass_struct * thisclass_c, struct hg3dclass_struct * buffer_c);++// Set whether or not the sound should loop after reaching the end. +void sfml_snd_setLoop(struct hg3dclass_struct * thisclass_c, int loop_c);++// Tell whether or not the sound is in loop mode. +void sfml_snd_getLoop(struct hg3dclass_struct * thisclass_c, int * result_c);++// Reset the internal buffer of the sound. +void sfml_snd_resetBuffer(struct hg3dclass_struct * thisclass_c);++#endif 
+ include/ClassSoundBuffer.h view
@@ -0,0 +1,48 @@+// 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.h
+
+// +
+#include "wchar.h"
+#ifndef _DEFINED_HG3D_ClassSoundBuffer+#define _DEFINED_HG3D_ClassSoundBuffer++#include "ClassPtr.h"+
+
+// Default constructor. +void sfml_snbf_construct(struct hg3dclass_struct * result_c);++// Destructor. +void sfml_snbf_destruct(struct hg3dclass_struct * thisclass_c);++// Load the sound buffer from a file. +void sfml_snbf_loadFromFile(struct hg3dclass_struct * thisclass_c, char * filename_c, int * result_c);++// Save the sound buffer to an audio file. +void sfml_snbf_saveToFile(struct hg3dclass_struct * thisclass_c, char * filename_c, int * result_c);++// Get the sample rate of the sound. +void sfml_snbf_getSampleRate(struct hg3dclass_struct * thisclass_c, unsigned int * result_c);++// 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
@@ -0,0 +1,70 @@+// 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.h
+
+// +
+#include "wchar.h"
+#ifndef _DEFINED_HG3D_ClassSoundSource+#define _DEFINED_HG3D_ClassSoundSource++#include "ClassPtr.h"+#include "StructVec3.h"+
+
+// Destructor. +void sfml_snsr_destruct(struct hg3dclass_struct * thisclass_c);++// Set the pitch of the sound. +void sfml_snsr_setPitch(struct hg3dclass_struct * thisclass_c, float pitch_c);++// Set the volume of the sound. +void sfml_snsr_setVolume(struct hg3dclass_struct * thisclass_c, float volume_c);++// Set the 3D position of the sound in the audio scene. +void sfml_snsr_setPosition(struct hg3dclass_struct * thisclass_c, float x_c, float y_c, float z_c);++// Make the sound's position relative to the listener or absolute. +void sfml_snsr_setRelativeToListener(struct hg3dclass_struct * thisclass_c, int relative_c);++// Set the minimum distance of the sound. +void sfml_snsr_setMinDistance(struct hg3dclass_struct * thisclass_c, float distance_c);++// Set the attenuation factor of the sound. +void sfml_snsr_setAttenuation(struct hg3dclass_struct * thisclass_c, float attenuation_c);++// Get the pitch of the sound. +void sfml_snsr_getPitch(struct hg3dclass_struct * thisclass_c, float * result_c);++// 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);++// Get the minimum distance of the sound. +void sfml_snsr_getMinDistance(struct hg3dclass_struct * thisclass_c, float * result_c);++// Get the attenuation factor of the sound. +void sfml_snsr_getAttenuation(struct hg3dclass_struct * thisclass_c, float * result_c);++#endif 
+ include/ClassSoundStream.h view
@@ -0,0 +1,54 @@+// 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.h
+
+// +
+#include "wchar.h"
+#ifndef _DEFINED_HG3D_ClassSoundStream+#define _DEFINED_HG3D_ClassSoundStream++#include "ClassPtr.h"+
+
+// Destructor. +void sfml_snst_destruct(struct hg3dclass_struct * thisclass_c);++// Start or resume playing the audio stream. +void sfml_snst_play(struct hg3dclass_struct * thisclass_c);++// Pause the audio stream. +void sfml_snst_pause(struct hg3dclass_struct * thisclass_c);++// Stop playing the audio stream. +void sfml_snst_stop(struct hg3dclass_struct * thisclass_c);++// Return the number of channels of the stream. +void sfml_snst_getChannelCount(struct hg3dclass_struct * thisclass_c, unsigned int * result_c);++// Get the stream sample rate of the stream. +void sfml_snst_getSampleRate(struct hg3dclass_struct * thisclass_c, unsigned int * result_c);++// Set whether or not the stream should loop after reaching the end. +void sfml_snst_setLoop(struct hg3dclass_struct * thisclass_c, int loop_c);++// 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
@@ -0,0 +1,39 @@+// 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.h
+
+// +
+#include "wchar.h"
+#ifndef _DEFINED_HG3D_EnumJoystickAxis+#define _DEFINED_HG3D_EnumJoystickAxis+
+
+enum EnumJoystickAxis+{+  JoystickAxisX, // The X axis. +  JoystickAxisY, // The Y axis. +  JoystickAxisZ, // The Z axis. +  JoystickAxisR, // The R axis. +  JoystickAxisU, // The U axis. +  JoystickAxisV, // The V axis. +  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
@@ -0,0 +1,134 @@+// 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.h
+
+// +
+#include "wchar.h"
+#ifndef _DEFINED_HG3D_EnumKey+#define _DEFINED_HG3D_EnumKey+
+
+enum EnumKey+{+  KeyUnknown =  -1, // Unhandled key. +  KeyA =  0, // The A key. +  KeyB, // The B key. +  KeyC, // The C key. +  KeyD, // The D key. +  KeyE, // The E key. +  KeyF, // The F key. +  KeyG, // The G key. +  KeyH, // The H key. +  KeyI, // The I key. +  KeyJ, // The J key. +  KeyK, // The K key. +  KeyL, // The L key. +  KeyM, // The M key. +  KeyN, // The N key. +  KeyO, // The O key. +  KeyP, // The P key. +  KeyQ, // The Q key. +  KeyR, // The R key. +  KeyS, // The S key. +  KeyT, // The T key. +  KeyU, // The U key. +  KeyV, // The V key. +  KeyW, // The W key. +  KeyX, // The X key. +  KeyY, // The Y key. +  KeyZ, // The Z key. +  KeyNum0, // The 0 key. +  KeyNum1, // The 1 key. +  KeyNum2, // The 2 key. +  KeyNum3, // The 3 key. +  KeyNum4, // The 4 key. +  KeyNum5, // The 5 key. +  KeyNum6, // The 6 key. +  KeyNum7, // The 7 key. +  KeyNum8, // The 8 key. +  KeyNum9, // The 9 key. +  KeyEscape, // The Escape key. +  KeyLControl, // The left Control key. +  KeyLShift, // The left Shift key. +  KeyLAlt, // The left Alt key. +  KeyLSystem, // The left OS specific key: window (Windows and Linux), apple (MacOS X), ... +  KeyRControl, // The right Control key. +  KeyRShift, // The right Shift key. +  KeyRAlt, // The right Alt key. +  KeyRSystem, // The right OS specific key: window (Windows and Linux), apple (MacOS X), ... +  KeyMenu, // The Menu key. +  KeyLBracket, // The [ key. +  KeyRBracket, // The ] key. +  KeySemiColon, // The ; key. +  KeyComma, // The , key. +  KeyPeriod, // The . key. +  KeyQuote, // The ' key. +  KeySlash, // The / key. +  KeyBackSlash, // The \ key. +  KeyTilde, // The ~ key. +  KeyEqual, // The = key. +  KeyDash, // The - key. +  KeySpace, // The Space key. +  KeyReturn, // The Return key. +  KeyBackSpace, // The Backspace key. +  KeyTab, // The Tabulation key. +  KeyPageUp, // The Page up key. +  KeyPageDown, // The Page down key. +  KeyEnd, // The End key. +  KeyHome, // The Home key. +  KeyInsert, // The Insert key. +  KeyDelete, // The Delete key. +  KeyAdd, // The + key. +  KeySubtract, // The - key. +  KeyMultiply, // The * key. +  KeyDivide, // The / key. +  KeyLeft, // Left arrow. +  KeyRight, // Right arrow. +  KeyUp, // Up arrow. +  KeyDown, // Down arrow. +  KeyNumpad0, // The numpad 0 key. +  KeyNumpad1, // The numpad 1 key. +  KeyNumpad2, // The numpad 2 key. +  KeyNumpad3, // The numpad 3 key. +  KeyNumpad4, // The numpad 4 key. +  KeyNumpad5, // The numpad 5 key. +  KeyNumpad6, // The numpad 6 key. +  KeyNumpad7, // The numpad 7 key. +  KeyNumpad8, // The numpad 8 key. +  KeyNumpad9, // The numpad 9 key. +  KeyF1, // The F1 key. +  KeyF2, // The F2 key. +  KeyF3, // The F3 key. +  KeyF4, // The F4 key. +  KeyF5, // The F5 key. +  KeyF6, // The F6 key. +  KeyF7, // The F7 key. +  KeyF8, // The F8 key. +  KeyF9, // The F9 key. +  KeyF10, // The F10 key. +  KeyF11, // The F11 key. +  KeyF12, // The F12 key. +  KeyF13, // The F13 key. +  KeyF14, // The F14 key. +  KeyF15, // The F15 key. +  KeyPause, // The Pause key. +  KeyKeyCount // Keep last +};+#endif 
+ include/EnumMouseButton.h view
@@ -0,0 +1,37 @@+// 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.h
+
+// +
+#include "wchar.h"
+#ifndef _DEFINED_HG3D_EnumMouseButton+#define _DEFINED_HG3D_EnumMouseButton+
+
+enum EnumMouseButton+{+  MouseButtonLeft, // The left mouse button. +  MouseButtonRight, // The right mouse button. +  MouseButtonMiddle, // The middle (wheel) mouse button. +  MouseButtonXButton1, // The first extra mouse button. +  MouseButtonXButton2, // The second extra mouse button. +  MouseButtonButtonCount // Keep last +};+#endif 
+ include/EnumSoundSourceStatus.h view
@@ -0,0 +1,34 @@+// 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.h
+
+// +
+#include "wchar.h"
+#ifndef _DEFINED_HG3D_EnumSoundSourceStatus+#define _DEFINED_HG3D_EnumSoundSourceStatus+
+
+enum EnumSoundSourceStatus+{+  SoundSourceStatusStopped, // Sound+  SoundSourceStatusPaused, // Sound+  SoundSourceStatusPlaying // Sound+};+#endif 
− include/MouseHG3D.h
@@ -1,18 +0,0 @@-// 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
@@ -0,0 +1,41 @@+// (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.
+// +
+
+// SFMLDllDefines.h
+
+#ifndef _HGamer3DSFML032_DLLDEFINES_H_
+#define _HGamer3DSFML032_DLLDEFINES_H_
+
+/* Cmake will define HGamer3DSFML032_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
+building a DLL on windows.
+*/
+
+// We are using the Visual Studio Compiler and building Shared libraries
+
+#if (defined (_WIN32)) && !(defined (__GNUC__)) 
+  #if defined(HGamer3DSFML032_EXPORTS)
+    #define  SFML_LIB_EXPORT __declspec(dllexport)
+  #else
+    #define  SFML_LIB_EXPORT __declspec(dllimport)
+  #endif /* HGamer3DSFML032_EXPORTS */
+#else /* defined (_WIN32) */
+ #define SFML_LIB_EXPORT
+#endif
+
+#endif /* _HGamer3DSFML032_DLLDEFINES_H_ */
+ include/StructHG3DClass.h view
@@ -0,0 +1,29 @@+// 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.h
+
+// +
+#include "wchar.h"
+
+
+typedef struct hg3dclass_struct {+	void *ptr;+	void *fptr;+} hg3dclass_struct;
+ 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
@@ -1,4 +0,0 @@-typedef struct hg3dclass_struct {-	void *ptr;-	void *fptr;-} hg3dclass_struct;
− include/vector2fstruct.h
@@ -1,4 +0,0 @@-typedef struct vector2f_struct {
-	float x;
-	float y;
-} vector2f_struct;
− include/vector2istruct.h
@@ -1,4 +0,0 @@-typedef struct vector2i_struct {
-	int x;
-	int y;
-} vector2i_struct;
− include/vector3fstruct.h
@@ -1,5 +0,0 @@-typedef struct vector3f_struct {
-	float x;
-	float y;
-	float z;
-} vector3f_struct;
− include/vector3istruct.h
@@ -1,5 +0,0 @@-typedef struct vector3i_struct {
-	int x;
-	int y;
-	int z;
-} vector3i_struct;