mirror of
https://github.com/beefytech/Beef.git
synced 2025-06-08 03:28:20 +02:00
DirectInput support
This commit is contained in:
parent
b9f84d328e
commit
98c35f4a87
6 changed files with 64 additions and 1 deletions
|
@ -40,6 +40,13 @@ class BFSysBitmap
|
|||
public:
|
||||
};
|
||||
|
||||
class BFInputDevice
|
||||
{
|
||||
public:
|
||||
virtual ~BFInputDevice() {}
|
||||
virtual String GetState() = 0;
|
||||
};
|
||||
|
||||
class BFApp
|
||||
{
|
||||
public:
|
||||
|
@ -99,6 +106,9 @@ public:
|
|||
virtual void SetClipboardData(const StringImpl& format, const void* ptr, int size, bool resetClipboard) = 0;
|
||||
virtual void RehupMouse() {}
|
||||
|
||||
virtual String EnumerateInputDevices() { return ""; }
|
||||
virtual BFInputDevice* CreateInputDevice(const StringImpl& guid) { return NULL; }
|
||||
|
||||
virtual BFSysBitmap* LoadSysBitmap(const wchar_t* fileName) = 0;
|
||||
|
||||
virtual FileStream* OpenBinaryFile(const StringImpl& fileName);
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
#include "img/BFIData.h"
|
||||
#include "util/Vector.h"
|
||||
#include "util/PerfTimer.h"
|
||||
#include "util/TLSingleton.h"
|
||||
|
||||
#include "util/AllocDebug.h"
|
||||
|
||||
|
@ -22,7 +23,7 @@ USING_NS_BF;
|
|||
|
||||
#pragma warning(disable:4996)
|
||||
|
||||
|
||||
static String gTempString;
|
||||
static UTF16String gTempUTF16String;
|
||||
int gPixelsDrawn = 0;
|
||||
|
||||
|
@ -260,6 +261,17 @@ BF_EXPORT void BF_CALLTYPE BFApp_RehupMouse()
|
|||
|
||||
}
|
||||
|
||||
BF_EXPORT const char* BF_CALLTYPE BFApp_EnumerateInputDevices()
|
||||
{
|
||||
gTempString = gBFApp->EnumerateInputDevices();
|
||||
return gTempString.c_str();
|
||||
}
|
||||
|
||||
BF_EXPORT BFInputDevice* BFApp_CreateInputDevice(const char* guid)
|
||||
{
|
||||
return gBFApp->CreateInputDevice(guid);
|
||||
}
|
||||
|
||||
BF_EXPORT BFSoundManager* BF_CALLTYPE BFApp_GetSoundManager()
|
||||
{
|
||||
return gBFApp->GetSoundManager();
|
||||
|
@ -725,6 +737,17 @@ BF_EXPORT ShaderParam* BF_CALLTYPE Gfx_GetShaderParam(Shader* shader, const char
|
|||
return shader->GetShaderParam(shaderName);
|
||||
}
|
||||
|
||||
BF_EXPORT void BF_CALLTYPE BFInput_Destroy(BFInputDevice* inputDevice)
|
||||
{
|
||||
delete inputDevice;
|
||||
}
|
||||
|
||||
BF_EXPORT const char* BF_CALLTYPE BFInput_GetState(BFInputDevice* inputDevice)
|
||||
{
|
||||
gTempString = inputDevice->GetState();
|
||||
return gTempString.c_str();
|
||||
}
|
||||
|
||||
BF_EXPORT int BF_CALLTYPE BF_TickCount()
|
||||
{
|
||||
return (int) BFTickCount();
|
||||
|
|
|
@ -489,6 +489,7 @@ copy /y "$(OutDir)$(TargetName).lib" "$(SolutionDir)\BeefLibs\Beefy2D\dist\"</Co
|
|||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="platform\win\CrashCatcher.cpp" />
|
||||
<ClCompile Include="platform\win\DInputManager.cpp" />
|
||||
<ClCompile Include="platform\win\DSoundInstance.cpp" />
|
||||
<ClCompile Include="platform\win\DSoundManager.cpp" />
|
||||
<ClCompile Include="platform\win\WinBFApp.cpp">
|
||||
|
@ -1996,6 +1997,7 @@ copy /y "$(OutDir)$(TargetName).lib" "$(SolutionDir)\BeefLibs\Beefy2D\dist\"</Co
|
|||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClInclude>
|
||||
<ClInclude Include="platform\win\CrashCatcher.h" />
|
||||
<ClInclude Include="platform\win\DInputManager.h" />
|
||||
<ClInclude Include="platform\win\DSoundInstance.h" />
|
||||
<ClInclude Include="platform\win\DSoundManager.h" />
|
||||
<ClInclude Include="platform\win\PlatformApp.h" />
|
||||
|
|
|
@ -701,6 +701,9 @@
|
|||
<ClCompile Include="HeadlessApp.cpp">
|
||||
<Filter>src</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="platform\win\DInputManager.cpp">
|
||||
<Filter>src\platform\win</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="Common.h">
|
||||
|
@ -1063,6 +1066,9 @@
|
|||
<ClInclude Include="util\BinaryHeap.h">
|
||||
<Filter>src\util</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="platform\win\DInputManager.h">
|
||||
<Filter>src\platform\win</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<CustomBuild Include="third_party\libffi\i686-pc-cygwin\src\x86\win32.asm">
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
#include <signal.h>
|
||||
#include "../../util/BeefPerf.h"
|
||||
#include "DSoundManager.h"
|
||||
#include "DInputManager.h"
|
||||
|
||||
#include <dwmapi.h>
|
||||
#pragma comment(lib, "dwmapi.lib")
|
||||
|
@ -1137,12 +1138,14 @@ WinBFApp::WinBFApp()
|
|||
mDataDir = mInstallDir;
|
||||
mInMsgProc = false;
|
||||
mDSoundManager = NULL;
|
||||
mDInputManager = NULL;
|
||||
}
|
||||
|
||||
WinBFApp::~WinBFApp()
|
||||
{
|
||||
delete mRenderDevice;
|
||||
delete mDSoundManager;
|
||||
delete mDInputManager;
|
||||
}
|
||||
|
||||
void WinBFApp::Init()
|
||||
|
@ -1269,6 +1272,20 @@ void WinBFApp::RehupMouse()
|
|||
}
|
||||
}
|
||||
|
||||
String WinBFApp::EnumerateInputDevices()
|
||||
{
|
||||
if (mDInputManager == NULL)
|
||||
mDInputManager = new DInputManager();
|
||||
return mDInputManager->EnumerateDevices();
|
||||
}
|
||||
|
||||
BFInputDevice* WinBFApp::CreateInputDevice(const StringImpl& guid)
|
||||
{
|
||||
if (mDInputManager == NULL)
|
||||
mDInputManager = new DInputManager();
|
||||
return mDInputManager->CreateInputDevice(guid);
|
||||
}
|
||||
|
||||
void WinBFWindow::SetMinimumSize(int minWidth, int minHeight, bool clientSized)
|
||||
{
|
||||
if (clientSized)
|
||||
|
|
|
@ -10,6 +10,7 @@ NS_BF_BEGIN;
|
|||
|
||||
class RenderDevice;
|
||||
class DSoundManager;
|
||||
class DInputManager;
|
||||
|
||||
typedef Dictionary<void*, HGLOBAL> PtrToHGlobalMap;
|
||||
typedef Dictionary<String, uint32> StringToUIntMap;
|
||||
|
@ -90,6 +91,7 @@ public:
|
|||
bool mInMsgProc;
|
||||
StringToUIntMap mClipboardFormatMap;
|
||||
DSoundManager* mDSoundManager;
|
||||
DInputManager* mDInputManager;
|
||||
|
||||
protected:
|
||||
virtual void Draw() override;
|
||||
|
@ -115,6 +117,9 @@ public:
|
|||
virtual void SetClipboardData(const StringImpl& format, const void* ptr, int size, bool resetClipboard) override;
|
||||
virtual void RehupMouse() override;
|
||||
|
||||
virtual String EnumerateInputDevices() override;
|
||||
virtual BFInputDevice* CreateInputDevice(const StringImpl& guid) override;
|
||||
|
||||
virtual BFSysBitmap* LoadSysBitmap(const WCHAR* fileName) override;
|
||||
|
||||
virtual BFSoundManager* GetSoundManager() override;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue