MGL(Win32)
読み取り中…
検索中…
一致する文字列を見つけられません
mgl_gamepad_delegate_directinput.h
[詳解]
1// SPDX-License-Identifier: Zlib
2/* ------------------------------------------------------------------------- */
9/* ------------------------------------------------------------------------- */
10
11#ifndef INCGUARD_MGL_GAMEPAD_DELEGATE_DIRECTINPUT_H_1617271837
12#define INCGUARD_MGL_GAMEPAD_DELEGATE_DIRECTINPUT_H_1617271837
13
14#include <mgl/mgl_environment.h>
15#if defined(MGL_GAMEPAD_DELEGATE_ENABLE_DIRECTINPUT)
16
18#define DIRECTINPUT_VERSION 0x0800
19#include <dinput.h>
20#include <vector>
21#include <atlbase.h>
22
25#include <mgl/event/mgl_event.h>
26
27namespace MGL::Input
28{
31{
32public:
34
35 bool Initialize() noexcept override;
36 void UpdateState() noexcept override;
37
38private:
39 bool AddDevice(const DIDEVICEINSTANCE *deviceInstance) noexcept;
40 void ApplyState(PadState *state, const DIJOYSTATE2 &diState) noexcept;
41
42 static void OnEventDeviceArrival(void *callbackArg, void *notifyArg) noexcept;
43 static void OnEventDeviceRemove(void *callbackArg, void *notifyArg) noexcept;
44
45 CComPtr<IDirectInput8> _dinput;
46
47 struct DirectInputGamepad
48 {
49 PadState *state;
50 CComPtr<IDirectInputDevice8> device;
51 GUID guid;
52 };
53
54 std::vector<DirectInputGamepad> _padArray;
55 Event::Handle _eventDeviceArrival;
56 Event::Handle _eventDeviceRemove;
57};
58} // namespace MGL::Input
59
60#endif // MGL_GAMEPAD_DELEGATE_ENABLE_DIRECTINPUT
61#endif // INCGUARD_MGL_GAMEPAD_DELEGATE_DIRECTINPUT_H_1617271837
62
63// vim: et ts=4 sw=4 sts=4
イベントハンドルクラス
Definition mgl_event_handle.h:21
DirectInput用デリゲート
Definition mgl_gamepad_delegate_directinput.h:31
bool Initialize() noexcept override
初期化処理
Definition mgl_gamepad_delegate_directinput.cc:47
void UpdateState() noexcept override
更新処理
Definition mgl_gamepad_delegate_directinput.cc:87
DirectInputGamepadDelegate(GamepadServer &server) noexcept
コンストラクタ
Definition mgl_gamepad_delegate_directinput.cc:30
ゲームパッド用デリゲート基底クラス
Definition mgl_gamepad_delegate.h:20
ゲームパッドサーバ
Definition mgl_gamepad_server.h:37
ゲームパッドステートクラス
Definition mgl_gamepad_state.h:26
MGL 環境定義
MGL イベント
MGL ゲームパッド用デリゲート基底クラス
MGL ゲームパッドステート