Add proper compile time define for enabling usage of direct input joystick support (enabled by default)
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@3720 dfc29bdd-3216-0410-991c-e03cc46cb475master
parent
909ae75ff1
commit
0a18c65e90
|
@ -11,7 +11,7 @@
|
|||
#define IRRLICHT_VERSION_REVISION 0
|
||||
// This flag will be defined only in SVN, the official release code will have
|
||||
// it undefined
|
||||
#define IRRLICHT_VERSION_SVN -beta
|
||||
#define IRRLICHT_VERSION_SVN -alpha
|
||||
#define IRRLICHT_SDK_VERSION "1.8.0-alpha"
|
||||
|
||||
#include <stdio.h> // TODO: Although included elsewhere this is required at least for mingw
|
||||
|
@ -112,6 +112,14 @@
|
|||
#undef _IRR_COMPILE_WITH_JOYSTICK_EVENTS_
|
||||
#endif
|
||||
|
||||
//! Define _IRR_COMPILE_WITH_DIRECTINPUT_JOYSTICK_ if you want to use DirectInput for joystick handling.
|
||||
/** This only applies to Windows devices, currently only supported under Win32 device.
|
||||
If not defined, Windows Multimedia library is used, which offers also broad support for joystick devices. */
|
||||
#define _IRR_COMPILE_WITH_DIRECTINPUT_JOYSTICK_
|
||||
#ifdef NO_IRR_COMPILE_WITH_DIRECTINPUT_JOYSTICK_
|
||||
#undef _IRR_COMPILE_WITH_DIRECTINPUT_JOYSTICK_
|
||||
#endif
|
||||
|
||||
|
||||
//! Maximum number of texture an SMaterial can have, up to 8 are supported by Irrlicht.
|
||||
#define _IRR_MATERIAL_MAX_TEXTURES_ 4
|
||||
|
|
|
@ -17,9 +17,8 @@
|
|||
#include "dimension2d.h"
|
||||
#include "IGUISpriteBank.h"
|
||||
#include <winuser.h>
|
||||
#define USE_DIRECTINPUT
|
||||
#if defined(_IRR_COMPILE_WITH_JOYSTICK_EVENTS_)
|
||||
#ifdef USE_DIRECTINPUT
|
||||
#ifdef _IRR_COMPILE_WITH_DIRECTINPUT_JOYSTICK_
|
||||
#define DIRECTINPUT_VERSION 0x0800
|
||||
#include <dinput.h>
|
||||
#ifdef _MSC_VER
|
||||
|
@ -60,14 +59,14 @@ struct SJoystickWin32Control
|
|||
{
|
||||
CIrrDeviceWin32* Device;
|
||||
|
||||
#if defined(_IRR_COMPILE_WITH_JOYSTICK_EVENTS_) && defined(USE_DIRECTINPUT)
|
||||
#if defined(_IRR_COMPILE_WITH_JOYSTICK_EVENTS_) && defined(_IRR_COMPILE_WITH_DIRECTINPUT_JOYSTICK_)
|
||||
IDirectInput8* DirectInputDevice;
|
||||
#endif
|
||||
#if defined(_IRR_COMPILE_WITH_JOYSTICK_EVENTS_)
|
||||
struct JoystickInfo
|
||||
{
|
||||
u32 Index;
|
||||
#ifdef USE_DIRECTINPUT
|
||||
#ifdef _IRR_COMPILE_WITH_DIRECTINPUT_JOYSTICK_
|
||||
core::stringc Name;
|
||||
GUID guid;
|
||||
LPDIRECTINPUTDEVICE8 lpdijoy;
|
||||
|
@ -82,7 +81,7 @@ struct SJoystickWin32Control
|
|||
|
||||
SJoystickWin32Control(CIrrDeviceWin32* dev) : Device(dev)
|
||||
{
|
||||
#if defined(_IRR_COMPILE_WITH_JOYSTICK_EVENTS_) && defined(USE_DIRECTINPUT)
|
||||
#if defined(_IRR_COMPILE_WITH_JOYSTICK_EVENTS_) && defined(_IRR_COMPILE_WITH_DIRECTINPUT_JOYSTICK_)
|
||||
DirectInputDevice=0;
|
||||
if (DI_OK != (DirectInput8Create(GetModuleHandle(NULL), DIRECTINPUT_VERSION, IID_IDirectInput8, (void**)&DirectInputDevice, NULL)))
|
||||
{
|
||||
|
@ -93,7 +92,7 @@ struct SJoystickWin32Control
|
|||
}
|
||||
~SJoystickWin32Control()
|
||||
{
|
||||
#if defined(_IRR_COMPILE_WITH_JOYSTICK_EVENTS_) && defined(USE_DIRECTINPUT)
|
||||
#if defined(_IRR_COMPILE_WITH_JOYSTICK_EVENTS_) && defined(_IRR_COMPILE_WITH_DIRECTINPUT_JOYSTICK_)
|
||||
for(u32 joystick = 0; joystick < ActiveJoysticks.size(); ++joystick)
|
||||
{
|
||||
LPDIRECTINPUTDEVICE8 dev = ActiveJoysticks[joystick].lpdijoy;
|
||||
|
@ -109,7 +108,7 @@ struct SJoystickWin32Control
|
|||
#endif
|
||||
}
|
||||
|
||||
#if defined(_IRR_COMPILE_WITH_JOYSTICK_EVENTS_) && defined(USE_DIRECTINPUT)
|
||||
#if defined(_IRR_COMPILE_WITH_JOYSTICK_EVENTS_) && defined(_IRR_COMPILE_WITH_DIRECTINPUT_JOYSTICK_)
|
||||
static BOOL CALLBACK EnumJoysticks(LPCDIDEVICEINSTANCE lpddi, LPVOID cp)
|
||||
{
|
||||
SJoystickWin32Control* p=(SJoystickWin32Control*)cp;
|
||||
|
@ -191,7 +190,7 @@ struct SJoystickWin32Control
|
|||
void pollJoysticks()
|
||||
{
|
||||
#if defined _IRR_COMPILE_WITH_JOYSTICK_EVENTS_
|
||||
#ifdef USE_DIRECTINPUT
|
||||
#ifdef _IRR_COMPILE_WITH_DIRECTINPUT_JOYSTICK_
|
||||
if(0 == ActiveJoysticks.size())
|
||||
return;
|
||||
|
||||
|
@ -363,7 +362,7 @@ void pollJoysticks()
|
|||
bool activateJoysticks(core::array<SJoystickInfo> & joystickInfo)
|
||||
{
|
||||
#if defined _IRR_COMPILE_WITH_JOYSTICK_EVENTS_
|
||||
#ifdef USE_DIRECTINPUT
|
||||
#ifdef _IRR_COMPILE_WITH_DIRECTINPUT_JOYSTICK_
|
||||
if (!DirectInputDevice || (DirectInputDevice->EnumDevices(DI8DEVCLASS_GAMECTRL, SJoystickWin32Control::EnumJoysticks, this, DIEDFL_ATTACHEDONLY )))
|
||||
{
|
||||
os::Printer::log("Could not enum DirectInput8 controllers", ELL_WARNING);
|
||||
|
|
Loading…
Reference in New Issue