Bicameral Engine
GPU-resident engine for a magic-research open-world game
Loading...
Searching...
No Matches
input.h
Go to the documentation of this file.
1
// input.h — 窓に届いた入力のイベント(OS に依存しない形。T-0015)。
2
//
3
// データの流れ: platform/window.cpp の WndProc が溜める → フレームのループが TakeInputEvents() で受け取り、
4
// render/debug_view_controller がカメラ・表示の切り替え・つつき(コマンド)に振り分ける。
5
// 位置はクライアント領域の物理ピクセル。キーは Windows の仮想キーコード(VK_* と 'A' などの大文字)。
6
#pragma once
7
8
#include <cstdint>
9
10
namespace
bicameral
{
11
12
enum class
PointerButton
: uint8_t {
Left
,
Right
,
Middle
};
13
14
enum class
InputKind
: uint8_t {
15
ButtonDown
,
// button を押した(x, y)
16
ButtonUp
,
// button を離した(x, y)
17
PointerMove
,
// ポインタが動いた(x, y)
18
Wheel
,
// ホイール(wheelSteps: 奥へ 1 刻み = +1。高分解能のホイールは端数を溜めて 1 刻みごとに出す)
19
KeyDown
,
// キーを押した(key。押しっぱなしの繰り返しも来る)
20
};
21
22
struct
InputEvent
{
23
InputKind
kind
=
InputKind::PointerMove
;
24
25
// --- ポインタ ---
26
PointerButton
button
=
PointerButton::Left
;
27
int32_t
x
= 0;
// 窓の中の位置(画素)
28
int32_t
y
= 0;
29
int32_t
wheelSteps
= 0;
30
31
// --- キー ---
32
uint32_t
key
= 0;
33
bool
shift
=
false
;
// Shift を押しながら
34
};
35
36
}
// namespace bicameral
bicameral
Definition
aliases.h:12
bicameral::PointerButton
PointerButton
Definition
input.h:12
bicameral::PointerButton::Right
@ Right
Definition
input.h:12
bicameral::PointerButton::Left
@ Left
Definition
input.h:12
bicameral::PointerButton::Middle
@ Middle
Definition
input.h:12
bicameral::InputKind
InputKind
Definition
input.h:14
bicameral::InputKind::Wheel
@ Wheel
Definition
input.h:18
bicameral::InputKind::KeyDown
@ KeyDown
Definition
input.h:19
bicameral::InputKind::ButtonDown
@ ButtonDown
Definition
input.h:15
bicameral::InputKind::PointerMove
@ PointerMove
Definition
input.h:17
bicameral::InputKind::ButtonUp
@ ButtonUp
Definition
input.h:16
bicameral::InputEvent
Definition
input.h:22
bicameral::InputEvent::shift
bool shift
Definition
input.h:33
bicameral::InputEvent::kind
InputKind kind
Definition
input.h:23
bicameral::InputEvent::x
int32_t x
Definition
input.h:27
bicameral::InputEvent::y
int32_t y
Definition
input.h:28
bicameral::InputEvent::wheelSteps
int32_t wheelSteps
Definition
input.h:29
bicameral::InputEvent::button
PointerButton button
Definition
input.h:26
bicameral::InputEvent::key
uint32_t key
Definition
input.h:32
engine
src
platform
input.h
Generated by
1.15.0