gosu 0.7.46 → 0.7.47.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/Gosu/Buttons.hpp +126 -90
- data/Gosu/Graphics.hpp +4 -0
- data/Gosu/Input.hpp +2 -9
- data/Gosu/Version.hpp +2 -2
- data/GosuImpl/Audio/ALChannelManagement.hpp +1 -1
- data/GosuImpl/Graphics/Text.cpp +1 -1
- data/GosuImpl/InputMac.mm +40 -42
- data/GosuImpl/InputWin.cpp +17 -12
- data/GosuImpl/InputX.cpp +19 -4
- data/GosuImpl/RubyGosu.swg +3 -2
- data/GosuImpl/RubyGosu_wrap.cxx +46 -29
- data/GosuImpl/TextInputMac.mm +1 -1
- data/GosuImpl/TextInputX.cpp +11 -9
- data/GosuImpl/Utility.cpp +0 -5
- data/GosuImpl/WindowMac.mm +8 -1
- data/lib/gosu/patches.rb +4 -1
- data/linux/extconf.rb +7 -1
- metadata +6 -22
- data/Gosu/ButtonsMac.hpp +0 -227
- data/GosuImpl/RubyGosu_SWIG_TYPE_PATCH.patch +0 -11
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA512:
|
|
3
|
+
metadata.gz: 46f962dcbee435df36c0b90f2c9a7f0eb0697affd20202a9b3f0b74438cef81715a549d4f40922ee0fc6f54472d80a43dbb220610092b17bb16b79674f93d657
|
|
4
|
+
data.tar.gz: 65c994b275f5c0c3cbb131f5c9071ffa51f62a63123efa78cc945b90c5a4305135e77776caf29a63e822909bff6048b2ec333db5c68ff5f032be69395e0cb9c8
|
|
5
|
+
SHA1:
|
|
6
|
+
metadata.gz: 5717d9bb26797d0752706336725a51bb7d1569a0
|
|
7
|
+
data.tar.gz: 1ace5dbeaf66ffa54ae91e4767edf113d84035a3
|
data/Gosu/Buttons.hpp
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
|
-
#ifndef
|
|
2
|
-
#define
|
|
1
|
+
#ifndef GOSU_BUTTONS_HPP
|
|
2
|
+
#define GOSU_BUTTONS_HPP
|
|
3
|
+
|
|
4
|
+
#include <Gosu/Platform.hpp>
|
|
5
|
+
|
|
6
|
+
#ifdef GOSU_IS_MAC
|
|
7
|
+
#define GOSU_SCANCODE(mac, windows_or_linux) mac
|
|
8
|
+
#define GOSU_SPECIAL_SCANCODE(mac, windows, linux) mac
|
|
9
|
+
#else
|
|
10
|
+
#define GOSU_SCANCODE(mac, linux_or_windows) linux_or_windows
|
|
11
|
+
#ifdef GOSU_IS_WIN
|
|
12
|
+
#define GOSU_SPECIAL_SCANCODE(mac, windows, linux) windows
|
|
13
|
+
#else
|
|
14
|
+
#define GOSU_SPECIAL_SCANCODE(mac, windows, linux) linux
|
|
15
|
+
#endif
|
|
16
|
+
#endif
|
|
3
17
|
|
|
4
18
|
namespace Gosu
|
|
5
19
|
{
|
|
@@ -8,93 +22,104 @@ namespace Gosu
|
|
|
8
22
|
//! mouse buttons and mouse wheel (ms*) and gamepad buttons (gp*).
|
|
9
23
|
enum ButtonName
|
|
10
24
|
{
|
|
11
|
-
kbRangeBegin
|
|
12
|
-
kbEscape = 0x01,
|
|
13
|
-
kbF1 = 0x3b,
|
|
14
|
-
kbF2 = 0x3c,
|
|
15
|
-
kbF3 = 0x3d,
|
|
16
|
-
kbF4 = 0x3e,
|
|
17
|
-
kbF5 = 0x3f,
|
|
18
|
-
kbF6 = 0x40,
|
|
19
|
-
kbF7 = 0x41,
|
|
20
|
-
kbF8 = 0x42,
|
|
21
|
-
kbF9 = 0x43,
|
|
22
|
-
kbF10 = 0x44,
|
|
23
|
-
kbF11 = 0x57,
|
|
24
|
-
kbF12 = 0x58,
|
|
25
|
-
kb0 = 0x0b,
|
|
26
|
-
kb1 = 0x02,
|
|
27
|
-
kb2 = 0x03,
|
|
28
|
-
kb3 = 0x04,
|
|
29
|
-
kb4 = 0x05,
|
|
30
|
-
kb5 = 0x06,
|
|
31
|
-
kb6 = 0x07,
|
|
32
|
-
kb7 = 0x08,
|
|
33
|
-
kb8 = 0x09,
|
|
34
|
-
kb9 = 0x0a,
|
|
35
|
-
kbTab = 0x0f,
|
|
36
|
-
kbReturn = 0x1c,
|
|
37
|
-
kbSpace = 0x39,
|
|
38
|
-
kbLeftShift = 0x2a,
|
|
39
|
-
kbRightShift = 0x36,
|
|
40
|
-
kbLeftControl = 0x1d,
|
|
41
|
-
kbRightControl = 0x9d,
|
|
42
|
-
kbLeftAlt = 0x38,
|
|
43
|
-
kbRightAlt = 0xb8,
|
|
44
|
-
kbLeftMeta = 0xdb,
|
|
45
|
-
kbRightMeta = 0xdc,
|
|
46
|
-
kbBackspace = 0x0e,
|
|
47
|
-
kbLeft = 0xcb,
|
|
48
|
-
kbRight = 0xcd,
|
|
49
|
-
kbUp = 0xc8,
|
|
50
|
-
kbDown = 0xd0,
|
|
51
|
-
kbHome = 0xc7,
|
|
52
|
-
kbEnd = 0xcf,
|
|
53
|
-
kbInsert = 0xd2,
|
|
54
|
-
kbDelete = 0xd3,
|
|
55
|
-
kbPageUp = 0xc9,
|
|
56
|
-
kbPageDown = 0xd1,
|
|
57
|
-
kbEnter = 0x9c,
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
25
|
+
kbRangeBegin,
|
|
26
|
+
kbEscape = GOSU_SCANCODE(0x35, 0x01),
|
|
27
|
+
kbF1 = GOSU_SCANCODE(0x7a, 0x3b),
|
|
28
|
+
kbF2 = GOSU_SCANCODE(0x78, 0x3c),
|
|
29
|
+
kbF3 = GOSU_SCANCODE(0x63, 0x3d),
|
|
30
|
+
kbF4 = GOSU_SCANCODE(0x76, 0x3e),
|
|
31
|
+
kbF5 = GOSU_SCANCODE(0x60, 0x3f),
|
|
32
|
+
kbF6 = GOSU_SCANCODE(0x61, 0x40),
|
|
33
|
+
kbF7 = GOSU_SCANCODE(0x62, 0x41),
|
|
34
|
+
kbF8 = GOSU_SCANCODE(0x64, 0x42),
|
|
35
|
+
kbF9 = GOSU_SCANCODE(0x65, 0x43),
|
|
36
|
+
kbF10 = GOSU_SCANCODE(0x6d, 0x44),
|
|
37
|
+
kbF11 = GOSU_SCANCODE(0x67, 0x57),
|
|
38
|
+
kbF12 = GOSU_SCANCODE(0x6f, 0x58),
|
|
39
|
+
kb0 = GOSU_SCANCODE(0x1d, 0x0b),
|
|
40
|
+
kb1 = GOSU_SCANCODE(0x12, 0x02),
|
|
41
|
+
kb2 = GOSU_SCANCODE(0x13, 0x03),
|
|
42
|
+
kb3 = GOSU_SCANCODE(0x14, 0x04),
|
|
43
|
+
kb4 = GOSU_SCANCODE(0x15, 0x05),
|
|
44
|
+
kb5 = GOSU_SCANCODE(0x17, 0x06),
|
|
45
|
+
kb6 = GOSU_SCANCODE(0x16, 0x07),
|
|
46
|
+
kb7 = GOSU_SCANCODE(0x1a, 0x08),
|
|
47
|
+
kb8 = GOSU_SCANCODE(0x1c, 0x09),
|
|
48
|
+
kb9 = GOSU_SCANCODE(0x19, 0x0a),
|
|
49
|
+
kbTab = GOSU_SCANCODE(0x30, 0x0f),
|
|
50
|
+
kbReturn = GOSU_SCANCODE(0x24, 0x1c),
|
|
51
|
+
kbSpace = GOSU_SCANCODE(0x31, 0x39),
|
|
52
|
+
kbLeftShift = GOSU_SCANCODE(0x38, 0x2a),
|
|
53
|
+
kbRightShift = GOSU_SCANCODE(0x3c, 0x36),
|
|
54
|
+
kbLeftControl = GOSU_SCANCODE(0x3b, 0x1d),
|
|
55
|
+
kbRightControl = GOSU_SPECIAL_SCANCODE(0x3e, 0x9d, 0x61),
|
|
56
|
+
kbLeftAlt = GOSU_SCANCODE(0x3a, 0x38),
|
|
57
|
+
kbRightAlt = GOSU_SPECIAL_SCANCODE(0x3d, 0xb8, 0x64),
|
|
58
|
+
kbLeftMeta = GOSU_SPECIAL_SCANCODE(0x37, 0xdb, 0x7d),
|
|
59
|
+
kbRightMeta = GOSU_SPECIAL_SCANCODE(0x36, 0xdc, 0x7e),
|
|
60
|
+
kbBackspace = GOSU_SCANCODE(0x33, 0x0e),
|
|
61
|
+
kbLeft = GOSU_SPECIAL_SCANCODE(0x7b, 0xcb, 0x69),
|
|
62
|
+
kbRight = GOSU_SPECIAL_SCANCODE(0x7c, 0xcd, 0x6a),
|
|
63
|
+
kbUp = GOSU_SPECIAL_SCANCODE(0x7e, 0xc8, 0x67),
|
|
64
|
+
kbDown = GOSU_SPECIAL_SCANCODE(0x7d, 0xd0, 0x6c),
|
|
65
|
+
kbHome = GOSU_SPECIAL_SCANCODE(0x73, 0xc7, 0x66),
|
|
66
|
+
kbEnd = GOSU_SPECIAL_SCANCODE(0x77, 0xcf, 0x6b),
|
|
67
|
+
kbInsert = GOSU_SPECIAL_SCANCODE(0x72, 0xd2, 0x6e),
|
|
68
|
+
kbDelete = GOSU_SPECIAL_SCANCODE(0x75, 0xd3, 0x6f),
|
|
69
|
+
kbPageUp = GOSU_SPECIAL_SCANCODE(0x74, 0xc9, 0x68),
|
|
70
|
+
kbPageDown = GOSU_SPECIAL_SCANCODE(0x79, 0xd1, 0x6d),
|
|
71
|
+
kbEnter = GOSU_SPECIAL_SCANCODE(0x4c, 0x9c, 0x60),
|
|
72
|
+
kbBacktick = GOSU_SCANCODE(0x32, 0x29),
|
|
73
|
+
kbMinus = GOSU_SCANCODE(0x1b, 0x0c),
|
|
74
|
+
kbEqual = GOSU_SCANCODE(0x18, 0x0d),
|
|
75
|
+
kbBracketLeft = GOSU_SCANCODE(0x21, 0x1a),
|
|
76
|
+
kbBracketRight = GOSU_SCANCODE(0x1e, 0x1b),
|
|
77
|
+
kbBackslash = GOSU_SCANCODE(0x2a, 0x2b),
|
|
78
|
+
kbSemicolon = GOSU_SCANCODE(0x29, 0x27),
|
|
79
|
+
kbApostrophe = GOSU_SCANCODE(0x27, 0x28),
|
|
80
|
+
kbComma = GOSU_SCANCODE(0x2b, 0x33),
|
|
81
|
+
kbPeriod = GOSU_SCANCODE(0x2f, 0x34),
|
|
82
|
+
kbSlash = GOSU_SCANCODE(0x2c, 0x35),
|
|
83
|
+
kbA = GOSU_SCANCODE(0x00, 0x1e),
|
|
84
|
+
kbB = GOSU_SCANCODE(0x0b, 0x30),
|
|
85
|
+
kbC = GOSU_SCANCODE(0x08, 0x2e),
|
|
86
|
+
kbD = GOSU_SCANCODE(0x02, 0x20),
|
|
87
|
+
kbE = GOSU_SCANCODE(0x0e, 0x12),
|
|
88
|
+
kbF = GOSU_SCANCODE(0x03, 0x21),
|
|
89
|
+
kbG = GOSU_SCANCODE(0x05, 0x22),
|
|
90
|
+
kbH = GOSU_SCANCODE(0x04, 0x23),
|
|
91
|
+
kbI = GOSU_SCANCODE(0x22, 0x17),
|
|
92
|
+
kbJ = GOSU_SCANCODE(0x26, 0x24),
|
|
93
|
+
kbK = GOSU_SCANCODE(0x28, 0x25),
|
|
94
|
+
kbL = GOSU_SCANCODE(0x25, 0x26),
|
|
95
|
+
kbM = GOSU_SCANCODE(0x2e, 0x32),
|
|
96
|
+
kbN = GOSU_SCANCODE(0x2d, 0x31),
|
|
97
|
+
kbO = GOSU_SCANCODE(0x1f, 0x18),
|
|
98
|
+
kbP = GOSU_SCANCODE(0x23, 0x19),
|
|
99
|
+
kbQ = GOSU_SCANCODE(0x0c, 0x10),
|
|
100
|
+
kbR = GOSU_SCANCODE(0x0f, 0x13),
|
|
101
|
+
kbS = GOSU_SCANCODE(0x01, 0x1f),
|
|
102
|
+
kbT = GOSU_SCANCODE(0x11, 0x14),
|
|
103
|
+
kbU = GOSU_SCANCODE(0x20, 0x16),
|
|
104
|
+
kbV = GOSU_SCANCODE(0x09, 0x2f),
|
|
105
|
+
kbW = GOSU_SCANCODE(0x0d, 0x11),
|
|
106
|
+
kbX = GOSU_SCANCODE(0x07, 0x2d),
|
|
107
|
+
kbY = GOSU_SCANCODE(0x10, 0x15),
|
|
108
|
+
kbZ = GOSU_SCANCODE(0x06, 0x2c),
|
|
109
|
+
kbNumpad0 = GOSU_SCANCODE(0x52, 0x52),
|
|
110
|
+
kbNumpad1 = GOSU_SCANCODE(0x53, 0x4f),
|
|
111
|
+
kbNumpad2 = GOSU_SCANCODE(0x54, 0x50),
|
|
112
|
+
kbNumpad3 = GOSU_SCANCODE(0x55, 0x51),
|
|
113
|
+
kbNumpad4 = GOSU_SCANCODE(0x56, 0x4b),
|
|
114
|
+
kbNumpad5 = GOSU_SCANCODE(0x57, 0x4c),
|
|
115
|
+
kbNumpad6 = GOSU_SCANCODE(0x58, 0x4d),
|
|
116
|
+
kbNumpad7 = GOSU_SCANCODE(0x59, 0x47),
|
|
117
|
+
kbNumpad8 = GOSU_SCANCODE(0x5b, 0x48),
|
|
118
|
+
kbNumpad9 = GOSU_SCANCODE(0x5c, 0x49),
|
|
119
|
+
kbNumpadAdd = GOSU_SCANCODE(0x45, 0x4e),
|
|
120
|
+
kbNumpadSubtract = GOSU_SCANCODE(0x4e, 0x4a),
|
|
121
|
+
kbNumpadMultiply = GOSU_SCANCODE(0x43, 0x37),
|
|
122
|
+
kbNumpadDivide = GOSU_SCANCODE(0x4b, 0xb5),
|
|
98
123
|
kbRangeEnd = 0xff,
|
|
99
124
|
|
|
100
125
|
msRangeBegin,
|
|
@@ -103,7 +128,15 @@ namespace Gosu
|
|
|
103
128
|
msMiddle,
|
|
104
129
|
msWheelUp,
|
|
105
130
|
msWheelDown,
|
|
106
|
-
|
|
131
|
+
msOther0,
|
|
132
|
+
msOther1,
|
|
133
|
+
msOther2,
|
|
134
|
+
msOther3,
|
|
135
|
+
msOther4,
|
|
136
|
+
msOther5,
|
|
137
|
+
msOther6,
|
|
138
|
+
msOther7,
|
|
139
|
+
msRangeEnd = 0x110,
|
|
107
140
|
|
|
108
141
|
gpRangeBegin,
|
|
109
142
|
gpLeft = gpRangeBegin,
|
|
@@ -224,4 +257,7 @@ namespace Gosu
|
|
|
224
257
|
};
|
|
225
258
|
}
|
|
226
259
|
|
|
260
|
+
#undef GOSU_SCANCODE
|
|
261
|
+
#undef GOSU_SPECIAL_SCANCODE
|
|
262
|
+
|
|
227
263
|
#endif
|
data/Gosu/Graphics.hpp
CHANGED
|
@@ -24,6 +24,10 @@ namespace Gosu
|
|
|
24
24
|
unsigned const MAX_TEXTURE_SIZE = 1024;
|
|
25
25
|
|
|
26
26
|
#ifdef GOSU_IS_MAC
|
|
27
|
+
// TODO: Without this gigantic hack, Gosu crashes in the "scale" function,
|
|
28
|
+
// but _only_ when used from Ruby 1.9. It is unclear what might cause this -
|
|
29
|
+
// maybe a compiler bug that tries to use SSE functions with the wrong
|
|
30
|
+
// alignment. Adding __attribute__((aligned(16))) does not help, though.
|
|
27
31
|
struct Transform
|
|
28
32
|
{
|
|
29
33
|
double value[16];
|
data/Gosu/Input.hpp
CHANGED
|
@@ -6,28 +6,21 @@
|
|
|
6
6
|
|
|
7
7
|
#include <Gosu/Fwd.hpp>
|
|
8
8
|
#include <Gosu/Platform.hpp>
|
|
9
|
+
#include <Gosu/Buttons.hpp>
|
|
10
|
+
#include <Gosu/TR1.hpp>
|
|
9
11
|
|
|
10
12
|
#ifdef GOSU_IS_WIN
|
|
11
|
-
#include <Gosu/Buttons.hpp>
|
|
12
13
|
#ifndef NOMINMAX
|
|
13
14
|
#define NOMINMAX
|
|
14
15
|
#endif
|
|
15
16
|
#include <windows.h>
|
|
16
17
|
#endif
|
|
17
18
|
|
|
18
|
-
#ifdef GOSU_IS_MAC
|
|
19
|
-
#include <Gosu/ButtonsMac.hpp>
|
|
20
|
-
#endif
|
|
21
|
-
|
|
22
19
|
#ifdef GOSU_IS_X
|
|
23
|
-
#include <Gosu/Buttons.hpp>
|
|
24
20
|
#include <X11/Xlib.h>
|
|
25
21
|
#include <X11/Xutil.h>
|
|
26
22
|
#endif
|
|
27
23
|
|
|
28
|
-
#include <Gosu/Platform.hpp>
|
|
29
|
-
#include <Gosu/Fwd.hpp>
|
|
30
|
-
#include <Gosu/TR1.hpp>
|
|
31
24
|
#include <vector>
|
|
32
25
|
|
|
33
26
|
namespace Gosu
|
data/Gosu/Version.hpp
CHANGED
data/GosuImpl/Graphics/Text.cpp
CHANGED
|
@@ -379,7 +379,7 @@ void Gosu::registerEntity(const wstring& name, const Gosu::Bitmap& replacement)
|
|
|
379
379
|
|
|
380
380
|
bool Gosu::isEntity(const wstring& name)
|
|
381
381
|
{
|
|
382
|
-
return entities[name];
|
|
382
|
+
return entities[name].get();
|
|
383
383
|
}
|
|
384
384
|
|
|
385
385
|
const Gosu::Bitmap& Gosu::entityBitmap(const wstring& name)
|
data/GosuImpl/InputMac.mm
CHANGED
|
@@ -63,6 +63,7 @@ namespace {
|
|
|
63
63
|
char buf[256];
|
|
64
64
|
CFStringRef str =
|
|
65
65
|
(CFStringRef)CFDictionaryGetValue(dict, key);
|
|
66
|
+
// TODO - make sure that this uses UTF8!
|
|
66
67
|
checkTrue(str && CFStringGetCString(str, buf, sizeof buf, CFStringGetSystemEncoding()),
|
|
67
68
|
what);
|
|
68
69
|
return buf;
|
|
@@ -114,9 +115,9 @@ namespace {
|
|
|
114
115
|
"a min value");
|
|
115
116
|
SInt32 max = getDictSInt32(dict, CFSTR(kIOHIDElementMaxKey),
|
|
116
117
|
"a max value");
|
|
117
|
-
if ((max - min) ==
|
|
118
|
+
if ((max - min) + 1 == 4)
|
|
118
119
|
kind = fourWay;
|
|
119
|
-
else if ((max - min) ==
|
|
120
|
+
else if ((max - min) + 1 == 8)
|
|
120
121
|
kind = eightWay;
|
|
121
122
|
else
|
|
122
123
|
kind = unknown;
|
|
@@ -160,10 +161,9 @@ namespace {
|
|
|
160
161
|
for (unsigned i = 0; i < self.devices.size(); ++i)
|
|
161
162
|
if (self.devices[i].interface.get() == refcon)
|
|
162
163
|
{
|
|
163
|
-
self.devices
|
|
164
|
+
self.devices[i] = Device();
|
|
164
165
|
return;
|
|
165
166
|
}
|
|
166
|
-
assert(false);
|
|
167
167
|
}
|
|
168
168
|
|
|
169
169
|
bool isDeviceInteresting(CFMutableDictionaryRef properties)
|
|
@@ -316,32 +316,27 @@ namespace {
|
|
|
316
316
|
}
|
|
317
317
|
}
|
|
318
318
|
|
|
319
|
-
unsigned countDevices() const
|
|
320
|
-
{
|
|
321
|
-
return devices.size();
|
|
322
|
-
}
|
|
323
|
-
|
|
324
|
-
const Device& getDevice(unsigned i) const
|
|
325
|
-
{
|
|
326
|
-
return devices.at(i);
|
|
327
|
-
}
|
|
328
|
-
|
|
329
319
|
std::tr1::array<bool, gpNum> poll()
|
|
330
320
|
{
|
|
331
321
|
std::tr1::array<bool, gpNum> result = { false };
|
|
332
322
|
|
|
333
323
|
IOHIDEventStruct event;
|
|
334
|
-
for (int dev = 0; dev < devices.size(); ++dev)
|
|
324
|
+
for (int dev = 0; dev < devices.size() && dev < numGamepads; ++dev)
|
|
335
325
|
{
|
|
336
|
-
|
|
326
|
+
if (! devices[dev].interface)
|
|
327
|
+
// Device has been disconnected.
|
|
328
|
+
continue;
|
|
337
329
|
|
|
330
|
+
int rangeOffset = (dev + 1) * gpNumPerGamepad - gpRangeBegin;
|
|
331
|
+
|
|
338
332
|
// Axis
|
|
339
333
|
for (int ax = 0; ax < devices[dev].axis.size(); ++ax)
|
|
340
334
|
{
|
|
341
|
-
|
|
335
|
+
if ((*devices[dev].interface)->getElementValue(
|
|
342
336
|
devices[dev].interface.get(),
|
|
343
|
-
devices[dev].axis[ax].cookie, &event))
|
|
344
|
-
|
|
337
|
+
devices[dev].axis[ax].cookie, &event) != kIOReturnSuccess)
|
|
338
|
+
break;
|
|
339
|
+
|
|
345
340
|
Axis& a = devices[dev].axis[ax];
|
|
346
341
|
if (event.value < (3 * a.min + 1 * a.max) / 4.0)
|
|
347
342
|
{
|
|
@@ -360,20 +355,20 @@ namespace {
|
|
|
360
355
|
// Hats (merge into axis)
|
|
361
356
|
for (int hat = 0; hat < devices[dev].hats.size(); ++hat)
|
|
362
357
|
{
|
|
363
|
-
|
|
358
|
+
if ((*devices[dev].interface)->getElementValue(
|
|
364
359
|
devices[dev].interface.get(),
|
|
365
|
-
devices[dev].hats[hat].cookie, &event))
|
|
366
|
-
|
|
360
|
+
devices[dev].hats[hat].cookie, &event) != kIOReturnSuccess)
|
|
361
|
+
break;
|
|
362
|
+
|
|
367
363
|
// In case device does not start at 0 as expected.
|
|
368
364
|
event.value -= devices[dev].hats[hat].min;
|
|
369
|
-
|
|
365
|
+
|
|
370
366
|
// Treat all hats as being 8-way.
|
|
371
367
|
if (devices[dev].hats[hat].kind == Hat::fourWay)
|
|
372
368
|
event.value *= 2;
|
|
373
369
|
|
|
374
370
|
switch (event.value)
|
|
375
371
|
{
|
|
376
|
-
// Must...resist...doing...crappy...fallthrough...magic...
|
|
377
372
|
case 0:
|
|
378
373
|
result[gpUp + rangeOffset] = true;
|
|
379
374
|
break;
|
|
@@ -408,19 +403,18 @@ namespace {
|
|
|
408
403
|
// Buttons
|
|
409
404
|
for (int btn = 0; btn < devices[dev].buttons.size() && btn < 16; ++btn)
|
|
410
405
|
{
|
|
411
|
-
|
|
406
|
+
if ((*devices[dev].interface)->getElementValue(
|
|
412
407
|
devices[dev].interface.get(),
|
|
413
|
-
devices[dev].buttons[btn].cookie, &event))
|
|
414
|
-
|
|
408
|
+
devices[dev].buttons[btn].cookie, &event) != kIOReturnSuccess)
|
|
409
|
+
break;
|
|
410
|
+
|
|
415
411
|
if (event.value >= 1)
|
|
416
412
|
result[gpButton0 + btn + rangeOffset] = true;
|
|
417
413
|
}
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
result[index] = result[index] || result[index + dev * gpNumPerGamepad];
|
|
423
|
-
}
|
|
414
|
+
|
|
415
|
+
// Merge these results into the area for "all gamepads OR'ed together"
|
|
416
|
+
for (int index = 0; index < gpNumPerGamepad; ++index)
|
|
417
|
+
result[index] = (result[index] || result[index + (dev + 1) * gpNumPerGamepad]);
|
|
424
418
|
}
|
|
425
419
|
|
|
426
420
|
return result;
|
|
@@ -428,12 +422,6 @@ namespace {
|
|
|
428
422
|
};
|
|
429
423
|
}
|
|
430
424
|
|
|
431
|
-
// Needed for char translation.
|
|
432
|
-
namespace Gosu
|
|
433
|
-
{
|
|
434
|
-
std::wstring macRomanToWstring(const std::string& s);
|
|
435
|
-
}
|
|
436
|
-
|
|
437
425
|
namespace {
|
|
438
426
|
const unsigned numScancodes = 128;
|
|
439
427
|
|
|
@@ -590,6 +578,16 @@ bool Gosu::Input::feedNSEvent(void* event)
|
|
|
590
578
|
case NSRightMouseUp:
|
|
591
579
|
pimpl->enqueue(msRight, false);
|
|
592
580
|
return true;
|
|
581
|
+
case NSOtherMouseDown:
|
|
582
|
+
if ([ev buttonNumber] >= 10)
|
|
583
|
+
return false;
|
|
584
|
+
pimpl->enqueue(msOther0 + [ev buttonNumber] - 2, true);
|
|
585
|
+
return true;
|
|
586
|
+
case NSOtherMouseUp:
|
|
587
|
+
if ([ev buttonNumber] >= 10)
|
|
588
|
+
return false;
|
|
589
|
+
pimpl->enqueue(msOther0 + [ev buttonNumber] - 2, false);
|
|
590
|
+
return true;
|
|
593
591
|
case NSScrollWheel:
|
|
594
592
|
if ([ev deltaY] > 0)
|
|
595
593
|
{
|
|
@@ -607,7 +605,7 @@ bool Gosu::Input::feedNSEvent(void* event)
|
|
|
607
605
|
}
|
|
608
606
|
|
|
609
607
|
// Handle other keys.
|
|
610
|
-
if (type == NSKeyDown || type == NSKeyUp)
|
|
608
|
+
if ((type == NSKeyDown || type == NSKeyUp) && [ev keyCode] <= kbRangeEnd)
|
|
611
609
|
{
|
|
612
610
|
pimpl->enqueue([ev keyCode], type == NSKeyDown);
|
|
613
611
|
return true;
|
|
@@ -637,7 +635,7 @@ bool Gosu::Input::down(Gosu::Button btn) const
|
|
|
637
635
|
if (btn == noButton || btn.id() >= numButtons)
|
|
638
636
|
return false;
|
|
639
637
|
|
|
640
|
-
return buttonStates
|
|
638
|
+
return buttonStates[btn.id()];
|
|
641
639
|
}
|
|
642
640
|
|
|
643
641
|
double Gosu::Input::mouseX() const
|
|
@@ -700,7 +698,7 @@ void Gosu::Input::update()
|
|
|
700
698
|
for (unsigned i = 0; i < pimpl->queue.size(); ++i)
|
|
701
699
|
{
|
|
702
700
|
Impl::WaitingButton& wb = pimpl->queue[i];
|
|
703
|
-
buttonStates
|
|
701
|
+
buttonStates[wb.btn.id()] = wb.down;
|
|
704
702
|
if (wb.down && onButtonDown)
|
|
705
703
|
onButtonDown(wb.btn);
|
|
706
704
|
else if (!wb.down && onButtonUp)
|
data/GosuImpl/InputWin.cpp
CHANGED
|
@@ -201,15 +201,13 @@ struct Gosu::Input::Impl
|
|
|
201
201
|
case DIERR_INPUTLOST:
|
|
202
202
|
{
|
|
203
203
|
// Cannot fetch new events: Release all buttons.
|
|
204
|
-
for (unsigned id = msRangeBegin; id
|
|
204
|
+
for (unsigned id = msRangeBegin; id <= msRangeEnd; ++id)
|
|
205
205
|
setButton(id, false, collectEvents);
|
|
206
206
|
mouse->Acquire();
|
|
207
207
|
break;
|
|
208
208
|
}
|
|
209
209
|
}
|
|
210
210
|
|
|
211
|
-
keyboard:
|
|
212
|
-
|
|
213
211
|
inOut = inputBufferSize;
|
|
214
212
|
hr = keyboard->GetDeviceData(sizeof data[0], data, &inOut, 0);
|
|
215
213
|
switch (hr)
|
|
@@ -225,7 +223,7 @@ struct Gosu::Input::Impl
|
|
|
225
223
|
case DIERR_NOTACQUIRED:
|
|
226
224
|
case DIERR_INPUTLOST:
|
|
227
225
|
{
|
|
228
|
-
for (unsigned id = kbRangeBegin; id
|
|
226
|
+
for (unsigned id = kbRangeBegin; id <= kbRangeEnd; ++id)
|
|
229
227
|
setButton(id, false, collectEvents);
|
|
230
228
|
keyboard->Acquire();
|
|
231
229
|
break;
|
|
@@ -233,10 +231,12 @@ struct Gosu::Input::Impl
|
|
|
233
231
|
}
|
|
234
232
|
|
|
235
233
|
std::tr1::array<bool, gpNum> gpBuffer = { false };
|
|
236
|
-
for (unsigned gp = 0; gp < gamepads.size(); ++gp)
|
|
234
|
+
for (unsigned gp = 0; gp < gamepads.size() && gp < numGamepads; ++gp)
|
|
237
235
|
{
|
|
238
236
|
gamepads[gp]->Poll();
|
|
239
237
|
|
|
238
|
+
int rangeOffset = (gp + 1) * gpNumPerGamepad - gpRangeBegin;
|
|
239
|
+
|
|
240
240
|
DIJOYSTATE joy;
|
|
241
241
|
hr = gamepads[gp]->GetDeviceState(sizeof joy, &joy);
|
|
242
242
|
switch (hr)
|
|
@@ -244,18 +244,18 @@ struct Gosu::Input::Impl
|
|
|
244
244
|
case DI_OK:
|
|
245
245
|
{
|
|
246
246
|
if (joy.lX < -stickThreshold)
|
|
247
|
-
gpBuffer[gpLeft
|
|
247
|
+
gpBuffer[gpLeft + rangeOffset] = true;
|
|
248
248
|
else if (joy.lX > stickThreshold)
|
|
249
|
-
gpBuffer[gpRight
|
|
249
|
+
gpBuffer[gpRight + rangeOffset] = true;
|
|
250
250
|
|
|
251
251
|
if (joy.lY < -stickThreshold)
|
|
252
|
-
gpBuffer[gpUp
|
|
252
|
+
gpBuffer[gpUp + rangeOffset] = true;
|
|
253
253
|
else if (joy.lY > stickThreshold)
|
|
254
|
-
gpBuffer[gpDown
|
|
254
|
+
gpBuffer[gpDown + rangeOffset] = true;
|
|
255
255
|
|
|
256
|
-
for (unsigned id = gpButton0; id
|
|
256
|
+
for (unsigned id = gpButton0; id <= gpButton15; ++id)
|
|
257
257
|
if (joy.rgbButtons[id - gpButton0])
|
|
258
|
-
gpBuffer[id
|
|
258
|
+
gpBuffer[id + rangeOffset] = true;
|
|
259
259
|
|
|
260
260
|
break;
|
|
261
261
|
}
|
|
@@ -268,8 +268,13 @@ struct Gosu::Input::Impl
|
|
|
268
268
|
break;
|
|
269
269
|
}
|
|
270
270
|
}
|
|
271
|
+
|
|
272
|
+
// Merge these results into the area for "all gamepads OR'ed together"
|
|
273
|
+
for (int index = 0; index < gpNumPerGamepad; ++index)
|
|
274
|
+
gpBuffer[index] = (gpBuffer[index] || gpBuffer[index + (gp + 1) * gpNumPerGamepad]);
|
|
271
275
|
}
|
|
272
|
-
|
|
276
|
+
|
|
277
|
+
for (unsigned id = gpRangeBegin; id <= gpRangeEnd; ++id)
|
|
273
278
|
setButton(id, gpBuffer[id - gpRangeBegin], collectEvents);
|
|
274
279
|
}
|
|
275
280
|
};
|
data/GosuImpl/InputX.cpp
CHANGED
|
@@ -169,14 +169,19 @@ void Gosu::Input::update()
|
|
|
169
169
|
case Button3: id = msRight; break;
|
|
170
170
|
case Button4: id = msWheelUp; break;
|
|
171
171
|
case Button5: id = msWheelDown; break;
|
|
172
|
+
case 6: id = msOther0; break;
|
|
173
|
+
case 7: id = msOther1; break;
|
|
174
|
+
case 8: id = msOther2; break;
|
|
175
|
+
case 9: id = msOther3; break;
|
|
176
|
+
case 10: id = msOther4; break;
|
|
177
|
+
case 11: id = msOther5; break;
|
|
178
|
+
case 12: id = msOther6; break;
|
|
179
|
+
case 13: id = msOther7; break;
|
|
172
180
|
default: continue;
|
|
173
181
|
}
|
|
174
182
|
pimpl->keyMap[id] = true;
|
|
175
|
-
// TODO: Here, above, below, who came up with that cast? Uh :)
|
|
176
183
|
if (onButtonDown)
|
|
177
184
|
onButtonDown(Button(id));
|
|
178
|
-
if (onButtonUp and id == msWheelUp or id == msWheelDown)
|
|
179
|
-
onButtonUp(Button(id));
|
|
180
185
|
}
|
|
181
186
|
else if (event.type == ButtonRelease)
|
|
182
187
|
{
|
|
@@ -186,11 +191,21 @@ void Gosu::Input::update()
|
|
|
186
191
|
case Button1: id = msLeft; break;
|
|
187
192
|
case Button2: id = msMiddle; break;
|
|
188
193
|
case Button3: id = msRight; break;
|
|
194
|
+
case Button4: id = msWheelUp; break;
|
|
195
|
+
case Button5: id = msWheelDown; break;
|
|
196
|
+
case 6: id = msOther0; break;
|
|
197
|
+
case 7: id = msOther1; break;
|
|
198
|
+
case 8: id = msOther2; break;
|
|
199
|
+
case 9: id = msOther3; break;
|
|
200
|
+
case 10: id = msOther4; break;
|
|
201
|
+
case 11: id = msOther5; break;
|
|
202
|
+
case 12: id = msOther6; break;
|
|
203
|
+
case 13: id = msOther7; break;
|
|
189
204
|
default: continue;
|
|
190
205
|
}
|
|
191
206
|
pimpl->keyMap[id] = false;
|
|
192
207
|
if (onButtonUp)
|
|
193
|
-
onButtonUp(
|
|
208
|
+
onButtonUp(Button(id));
|
|
194
209
|
}
|
|
195
210
|
else if (event.type == MotionNotify)
|
|
196
211
|
{
|
data/GosuImpl/RubyGosu.swg
CHANGED
|
@@ -618,7 +618,6 @@ namespace Gosu {
|
|
|
618
618
|
// Input and Window:
|
|
619
619
|
|
|
620
620
|
// Button ID constants
|
|
621
|
-
// Does not matter that it's the Mac file, %include only analyses symbols to export, not their values.
|
|
622
621
|
%ignore Gosu::kbRangeBegin;
|
|
623
622
|
%ignore Gosu::kbRangeEnd;
|
|
624
623
|
%ignore Gosu::msRangeBegin;
|
|
@@ -628,9 +627,11 @@ namespace Gosu {
|
|
|
628
627
|
%ignore Gosu::kbNum;
|
|
629
628
|
%ignore Gosu::msNum;
|
|
630
629
|
%ignore Gosu::gpNum;
|
|
630
|
+
%ignore Gosu::gpNumPerGamepad;
|
|
631
631
|
%ignore Gosu::numButtons;
|
|
632
|
+
%ignore Gosu::numGamepads;
|
|
632
633
|
%ignore Gosu::noButton;
|
|
633
|
-
%include "../Gosu/
|
|
634
|
+
%include "../Gosu/Buttons.hpp"
|
|
634
635
|
%init %{
|
|
635
636
|
GosusDarkSide::oncePerTick = GosusDarkSide::yieldToOtherRubyThreads;
|
|
636
637
|
// While we are at it, to some healthy srand() - otherwise unavailable to Ruby people
|
data/GosuImpl/RubyGosu_wrap.cxx
CHANGED
|
@@ -11245,8 +11245,8 @@ SWIGEXPORT void Init_gosu(void) {
|
|
|
11245
11245
|
SWIG_RubyInitializeTrackings();
|
|
11246
11246
|
rb_define_const(mGosu, "MAJOR_VERSION", SWIG_From_int(static_cast< int >(0)));
|
|
11247
11247
|
rb_define_const(mGosu, "MINOR_VERSION", SWIG_From_int(static_cast< int >(7)));
|
|
11248
|
-
rb_define_const(mGosu, "POINT_VERSION", SWIG_From_int(static_cast< int >(
|
|
11249
|
-
rb_define_const(mGosu, "VERSION", SWIG_FromCharPtr("0.7.
|
|
11248
|
+
rb_define_const(mGosu, "POINT_VERSION", SWIG_From_int(static_cast< int >(47)));
|
|
11249
|
+
rb_define_const(mGosu, "VERSION", SWIG_FromCharPtr("0.7.47"));
|
|
11250
11250
|
rb_define_module_function(mGosu, "milliseconds", VALUEFUNC(_wrap_milliseconds), -1);
|
|
11251
11251
|
rb_define_module_function(mGosu, "random", VALUEFUNC(_wrap_random), -1);
|
|
11252
11252
|
rb_define_module_function(mGosu, "degrees_to_radians", VALUEFUNC(_wrap_degrees_to_radians), -1);
|
|
@@ -11430,6 +11430,7 @@ SWIGEXPORT void Init_gosu(void) {
|
|
|
11430
11430
|
rb_define_const(mGosu, "KbF10", SWIG_From_int(static_cast< int >(Gosu::kbF10)));
|
|
11431
11431
|
rb_define_const(mGosu, "KbF11", SWIG_From_int(static_cast< int >(Gosu::kbF11)));
|
|
11432
11432
|
rb_define_const(mGosu, "KbF12", SWIG_From_int(static_cast< int >(Gosu::kbF12)));
|
|
11433
|
+
rb_define_const(mGosu, "Kb0", SWIG_From_int(static_cast< int >(Gosu::kb0)));
|
|
11433
11434
|
rb_define_const(mGosu, "Kb1", SWIG_From_int(static_cast< int >(Gosu::kb1)));
|
|
11434
11435
|
rb_define_const(mGosu, "Kb2", SWIG_From_int(static_cast< int >(Gosu::kb2)));
|
|
11435
11436
|
rb_define_const(mGosu, "Kb3", SWIG_From_int(static_cast< int >(Gosu::kb3)));
|
|
@@ -11439,7 +11440,40 @@ SWIGEXPORT void Init_gosu(void) {
|
|
|
11439
11440
|
rb_define_const(mGosu, "Kb7", SWIG_From_int(static_cast< int >(Gosu::kb7)));
|
|
11440
11441
|
rb_define_const(mGosu, "Kb8", SWIG_From_int(static_cast< int >(Gosu::kb8)));
|
|
11441
11442
|
rb_define_const(mGosu, "Kb9", SWIG_From_int(static_cast< int >(Gosu::kb9)));
|
|
11442
|
-
rb_define_const(mGosu, "
|
|
11443
|
+
rb_define_const(mGosu, "KbTab", SWIG_From_int(static_cast< int >(Gosu::kbTab)));
|
|
11444
|
+
rb_define_const(mGosu, "KbReturn", SWIG_From_int(static_cast< int >(Gosu::kbReturn)));
|
|
11445
|
+
rb_define_const(mGosu, "KbSpace", SWIG_From_int(static_cast< int >(Gosu::kbSpace)));
|
|
11446
|
+
rb_define_const(mGosu, "KbLeftShift", SWIG_From_int(static_cast< int >(Gosu::kbLeftShift)));
|
|
11447
|
+
rb_define_const(mGosu, "KbRightShift", SWIG_From_int(static_cast< int >(Gosu::kbRightShift)));
|
|
11448
|
+
rb_define_const(mGosu, "KbLeftControl", SWIG_From_int(static_cast< int >(Gosu::kbLeftControl)));
|
|
11449
|
+
rb_define_const(mGosu, "KbRightControl", SWIG_From_int(static_cast< int >(Gosu::kbRightControl)));
|
|
11450
|
+
rb_define_const(mGosu, "KbLeftAlt", SWIG_From_int(static_cast< int >(Gosu::kbLeftAlt)));
|
|
11451
|
+
rb_define_const(mGosu, "KbRightAlt", SWIG_From_int(static_cast< int >(Gosu::kbRightAlt)));
|
|
11452
|
+
rb_define_const(mGosu, "KbLeftMeta", SWIG_From_int(static_cast< int >(Gosu::kbLeftMeta)));
|
|
11453
|
+
rb_define_const(mGosu, "KbRightMeta", SWIG_From_int(static_cast< int >(Gosu::kbRightMeta)));
|
|
11454
|
+
rb_define_const(mGosu, "KbBackspace", SWIG_From_int(static_cast< int >(Gosu::kbBackspace)));
|
|
11455
|
+
rb_define_const(mGosu, "KbLeft", SWIG_From_int(static_cast< int >(Gosu::kbLeft)));
|
|
11456
|
+
rb_define_const(mGosu, "KbRight", SWIG_From_int(static_cast< int >(Gosu::kbRight)));
|
|
11457
|
+
rb_define_const(mGosu, "KbUp", SWIG_From_int(static_cast< int >(Gosu::kbUp)));
|
|
11458
|
+
rb_define_const(mGosu, "KbDown", SWIG_From_int(static_cast< int >(Gosu::kbDown)));
|
|
11459
|
+
rb_define_const(mGosu, "KbHome", SWIG_From_int(static_cast< int >(Gosu::kbHome)));
|
|
11460
|
+
rb_define_const(mGosu, "KbEnd", SWIG_From_int(static_cast< int >(Gosu::kbEnd)));
|
|
11461
|
+
rb_define_const(mGosu, "KbInsert", SWIG_From_int(static_cast< int >(Gosu::kbInsert)));
|
|
11462
|
+
rb_define_const(mGosu, "KbDelete", SWIG_From_int(static_cast< int >(Gosu::kbDelete)));
|
|
11463
|
+
rb_define_const(mGosu, "KbPageUp", SWIG_From_int(static_cast< int >(Gosu::kbPageUp)));
|
|
11464
|
+
rb_define_const(mGosu, "KbPageDown", SWIG_From_int(static_cast< int >(Gosu::kbPageDown)));
|
|
11465
|
+
rb_define_const(mGosu, "KbEnter", SWIG_From_int(static_cast< int >(Gosu::kbEnter)));
|
|
11466
|
+
rb_define_const(mGosu, "KbBacktick", SWIG_From_int(static_cast< int >(Gosu::kbBacktick)));
|
|
11467
|
+
rb_define_const(mGosu, "KbMinus", SWIG_From_int(static_cast< int >(Gosu::kbMinus)));
|
|
11468
|
+
rb_define_const(mGosu, "KbEqual", SWIG_From_int(static_cast< int >(Gosu::kbEqual)));
|
|
11469
|
+
rb_define_const(mGosu, "KbBracketLeft", SWIG_From_int(static_cast< int >(Gosu::kbBracketLeft)));
|
|
11470
|
+
rb_define_const(mGosu, "KbBracketRight", SWIG_From_int(static_cast< int >(Gosu::kbBracketRight)));
|
|
11471
|
+
rb_define_const(mGosu, "KbBackslash", SWIG_From_int(static_cast< int >(Gosu::kbBackslash)));
|
|
11472
|
+
rb_define_const(mGosu, "KbSemicolon", SWIG_From_int(static_cast< int >(Gosu::kbSemicolon)));
|
|
11473
|
+
rb_define_const(mGosu, "KbApostrophe", SWIG_From_int(static_cast< int >(Gosu::kbApostrophe)));
|
|
11474
|
+
rb_define_const(mGosu, "KbComma", SWIG_From_int(static_cast< int >(Gosu::kbComma)));
|
|
11475
|
+
rb_define_const(mGosu, "KbPeriod", SWIG_From_int(static_cast< int >(Gosu::kbPeriod)));
|
|
11476
|
+
rb_define_const(mGosu, "KbSlash", SWIG_From_int(static_cast< int >(Gosu::kbSlash)));
|
|
11443
11477
|
rb_define_const(mGosu, "KbA", SWIG_From_int(static_cast< int >(Gosu::kbA)));
|
|
11444
11478
|
rb_define_const(mGosu, "KbB", SWIG_From_int(static_cast< int >(Gosu::kbB)));
|
|
11445
11479
|
rb_define_const(mGosu, "KbC", SWIG_From_int(static_cast< int >(Gosu::kbC)));
|
|
@@ -11466,29 +11500,7 @@ SWIGEXPORT void Init_gosu(void) {
|
|
|
11466
11500
|
rb_define_const(mGosu, "KbX", SWIG_From_int(static_cast< int >(Gosu::kbX)));
|
|
11467
11501
|
rb_define_const(mGosu, "KbY", SWIG_From_int(static_cast< int >(Gosu::kbY)));
|
|
11468
11502
|
rb_define_const(mGosu, "KbZ", SWIG_From_int(static_cast< int >(Gosu::kbZ)));
|
|
11469
|
-
rb_define_const(mGosu, "
|
|
11470
|
-
rb_define_const(mGosu, "KbReturn", SWIG_From_int(static_cast< int >(Gosu::kbReturn)));
|
|
11471
|
-
rb_define_const(mGosu, "KbSpace", SWIG_From_int(static_cast< int >(Gosu::kbSpace)));
|
|
11472
|
-
rb_define_const(mGosu, "KbLeftShift", SWIG_From_int(static_cast< int >(Gosu::kbLeftShift)));
|
|
11473
|
-
rb_define_const(mGosu, "KbRightShift", SWIG_From_int(static_cast< int >(Gosu::kbRightShift)));
|
|
11474
|
-
rb_define_const(mGosu, "KbLeftControl", SWIG_From_int(static_cast< int >(Gosu::kbLeftControl)));
|
|
11475
|
-
rb_define_const(mGosu, "KbRightControl", SWIG_From_int(static_cast< int >(Gosu::kbRightControl)));
|
|
11476
|
-
rb_define_const(mGosu, "KbLeftAlt", SWIG_From_int(static_cast< int >(Gosu::kbLeftAlt)));
|
|
11477
|
-
rb_define_const(mGosu, "KbRightAlt", SWIG_From_int(static_cast< int >(Gosu::kbRightAlt)));
|
|
11478
|
-
rb_define_const(mGosu, "KbLeftMeta", SWIG_From_int(static_cast< int >(Gosu::kbLeftMeta)));
|
|
11479
|
-
rb_define_const(mGosu, "KbRightMeta", SWIG_From_int(static_cast< int >(Gosu::kbRightMeta)));
|
|
11480
|
-
rb_define_const(mGosu, "KbBackspace", SWIG_From_int(static_cast< int >(Gosu::kbBackspace)));
|
|
11481
|
-
rb_define_const(mGosu, "KbLeft", SWIG_From_int(static_cast< int >(Gosu::kbLeft)));
|
|
11482
|
-
rb_define_const(mGosu, "KbRight", SWIG_From_int(static_cast< int >(Gosu::kbRight)));
|
|
11483
|
-
rb_define_const(mGosu, "KbUp", SWIG_From_int(static_cast< int >(Gosu::kbUp)));
|
|
11484
|
-
rb_define_const(mGosu, "KbDown", SWIG_From_int(static_cast< int >(Gosu::kbDown)));
|
|
11485
|
-
rb_define_const(mGosu, "KbHome", SWIG_From_int(static_cast< int >(Gosu::kbHome)));
|
|
11486
|
-
rb_define_const(mGosu, "KbEnd", SWIG_From_int(static_cast< int >(Gosu::kbEnd)));
|
|
11487
|
-
rb_define_const(mGosu, "KbInsert", SWIG_From_int(static_cast< int >(Gosu::kbInsert)));
|
|
11488
|
-
rb_define_const(mGosu, "KbDelete", SWIG_From_int(static_cast< int >(Gosu::kbDelete)));
|
|
11489
|
-
rb_define_const(mGosu, "KbPageUp", SWIG_From_int(static_cast< int >(Gosu::kbPageUp)));
|
|
11490
|
-
rb_define_const(mGosu, "KbPageDown", SWIG_From_int(static_cast< int >(Gosu::kbPageDown)));
|
|
11491
|
-
rb_define_const(mGosu, "KbEnter", SWIG_From_int(static_cast< int >(Gosu::kbEnter)));
|
|
11503
|
+
rb_define_const(mGosu, "KbNumpad0", SWIG_From_int(static_cast< int >(Gosu::kbNumpad0)));
|
|
11492
11504
|
rb_define_const(mGosu, "KbNumpad1", SWIG_From_int(static_cast< int >(Gosu::kbNumpad1)));
|
|
11493
11505
|
rb_define_const(mGosu, "KbNumpad2", SWIG_From_int(static_cast< int >(Gosu::kbNumpad2)));
|
|
11494
11506
|
rb_define_const(mGosu, "KbNumpad3", SWIG_From_int(static_cast< int >(Gosu::kbNumpad3)));
|
|
@@ -11498,7 +11510,6 @@ SWIGEXPORT void Init_gosu(void) {
|
|
|
11498
11510
|
rb_define_const(mGosu, "KbNumpad7", SWIG_From_int(static_cast< int >(Gosu::kbNumpad7)));
|
|
11499
11511
|
rb_define_const(mGosu, "KbNumpad8", SWIG_From_int(static_cast< int >(Gosu::kbNumpad8)));
|
|
11500
11512
|
rb_define_const(mGosu, "KbNumpad9", SWIG_From_int(static_cast< int >(Gosu::kbNumpad9)));
|
|
11501
|
-
rb_define_const(mGosu, "KbNumpad0", SWIG_From_int(static_cast< int >(Gosu::kbNumpad0)));
|
|
11502
11513
|
rb_define_const(mGosu, "KbNumpadAdd", SWIG_From_int(static_cast< int >(Gosu::kbNumpadAdd)));
|
|
11503
11514
|
rb_define_const(mGosu, "KbNumpadSubtract", SWIG_From_int(static_cast< int >(Gosu::kbNumpadSubtract)));
|
|
11504
11515
|
rb_define_const(mGosu, "KbNumpadMultiply", SWIG_From_int(static_cast< int >(Gosu::kbNumpadMultiply)));
|
|
@@ -11508,6 +11519,14 @@ SWIGEXPORT void Init_gosu(void) {
|
|
|
11508
11519
|
rb_define_const(mGosu, "MsMiddle", SWIG_From_int(static_cast< int >(Gosu::msMiddle)));
|
|
11509
11520
|
rb_define_const(mGosu, "MsWheelUp", SWIG_From_int(static_cast< int >(Gosu::msWheelUp)));
|
|
11510
11521
|
rb_define_const(mGosu, "MsWheelDown", SWIG_From_int(static_cast< int >(Gosu::msWheelDown)));
|
|
11522
|
+
rb_define_const(mGosu, "MsOther0", SWIG_From_int(static_cast< int >(Gosu::msOther0)));
|
|
11523
|
+
rb_define_const(mGosu, "MsOther1", SWIG_From_int(static_cast< int >(Gosu::msOther1)));
|
|
11524
|
+
rb_define_const(mGosu, "MsOther2", SWIG_From_int(static_cast< int >(Gosu::msOther2)));
|
|
11525
|
+
rb_define_const(mGosu, "MsOther3", SWIG_From_int(static_cast< int >(Gosu::msOther3)));
|
|
11526
|
+
rb_define_const(mGosu, "MsOther4", SWIG_From_int(static_cast< int >(Gosu::msOther4)));
|
|
11527
|
+
rb_define_const(mGosu, "MsOther5", SWIG_From_int(static_cast< int >(Gosu::msOther5)));
|
|
11528
|
+
rb_define_const(mGosu, "MsOther6", SWIG_From_int(static_cast< int >(Gosu::msOther6)));
|
|
11529
|
+
rb_define_const(mGosu, "MsOther7", SWIG_From_int(static_cast< int >(Gosu::msOther7)));
|
|
11511
11530
|
rb_define_const(mGosu, "GpLeft", SWIG_From_int(static_cast< int >(Gosu::gpLeft)));
|
|
11512
11531
|
rb_define_const(mGosu, "GpRight", SWIG_From_int(static_cast< int >(Gosu::gpRight)));
|
|
11513
11532
|
rb_define_const(mGosu, "GpUp", SWIG_From_int(static_cast< int >(Gosu::gpUp)));
|
|
@@ -11608,8 +11627,6 @@ SWIGEXPORT void Init_gosu(void) {
|
|
|
11608
11627
|
rb_define_const(mGosu, "Gp3Button13", SWIG_From_int(static_cast< int >(Gosu::gp3Button13)));
|
|
11609
11628
|
rb_define_const(mGosu, "Gp3Button14", SWIG_From_int(static_cast< int >(Gosu::gp3Button14)));
|
|
11610
11629
|
rb_define_const(mGosu, "Gp3Button15", SWIG_From_int(static_cast< int >(Gosu::gp3Button15)));
|
|
11611
|
-
rb_define_const(mGosu, "NumGamepads", SWIG_From_int(static_cast< int >(Gosu::numGamepads)));
|
|
11612
|
-
rb_define_const(mGosu, "GpNumPerGamepad", SWIG_From_int(static_cast< int >(Gosu::gpNumPerGamepad)));
|
|
11613
11630
|
|
|
11614
11631
|
GosusDarkSide::oncePerTick = GosusDarkSide::yieldToOtherRubyThreads;
|
|
11615
11632
|
// While we are at it, to some healthy srand() - otherwise unavailable to Ruby people
|
data/GosuImpl/TextInputMac.mm
CHANGED
data/GosuImpl/TextInputX.cpp
CHANGED
|
@@ -66,7 +66,7 @@ bool Gosu::TextInput::feedXEvent(void* display, void* event)
|
|
|
66
66
|
|
|
67
67
|
KeySym lower, upper;
|
|
68
68
|
int keysyms_per_keycode_return;
|
|
69
|
-
KeySym keysym =
|
|
69
|
+
KeySym keysym = *XGetKeyboardMapping((Display*)display, ev->xkey.keycode, 1, &keysyms_per_keycode_return);
|
|
70
70
|
XConvertCase(keysym, &lower, &upper);
|
|
71
71
|
|
|
72
72
|
wchar_t ch = static_cast<wchar_t>(shiftDown ? upper : lower);
|
|
@@ -90,8 +90,10 @@ bool Gosu::TextInput::feedXEvent(void* display, void* event)
|
|
|
90
90
|
return true;
|
|
91
91
|
}
|
|
92
92
|
|
|
93
|
+
Button btn(ev->xkey.keycode-8);
|
|
94
|
+
|
|
93
95
|
// Char left
|
|
94
|
-
if (
|
|
96
|
+
if (btn == kbLeft && !ctrlDown)
|
|
95
97
|
{
|
|
96
98
|
if (CARET_POS > 0)
|
|
97
99
|
CARET_POS -= 1;
|
|
@@ -103,7 +105,7 @@ bool Gosu::TextInput::feedXEvent(void* display, void* event)
|
|
|
103
105
|
}
|
|
104
106
|
|
|
105
107
|
// Char right
|
|
106
|
-
if (
|
|
108
|
+
if (btn == kbRight && !ctrlDown)
|
|
107
109
|
{
|
|
108
110
|
if (CARET_POS < pimpl->text.length())
|
|
109
111
|
CARET_POS += 1;
|
|
@@ -115,7 +117,7 @@ bool Gosu::TextInput::feedXEvent(void* display, void* event)
|
|
|
115
117
|
}
|
|
116
118
|
|
|
117
119
|
// Home
|
|
118
|
-
if (
|
|
120
|
+
if (btn == kbHome)
|
|
119
121
|
{
|
|
120
122
|
CARET_POS = 0;
|
|
121
123
|
|
|
@@ -126,7 +128,7 @@ bool Gosu::TextInput::feedXEvent(void* display, void* event)
|
|
|
126
128
|
}
|
|
127
129
|
|
|
128
130
|
// End
|
|
129
|
-
if (
|
|
131
|
+
if (btn == kbEnd)
|
|
130
132
|
{
|
|
131
133
|
CARET_POS = pimpl->text.length();
|
|
132
134
|
|
|
@@ -137,7 +139,7 @@ bool Gosu::TextInput::feedXEvent(void* display, void* event)
|
|
|
137
139
|
}
|
|
138
140
|
|
|
139
141
|
// Word left
|
|
140
|
-
if (
|
|
142
|
+
if (btn == kbLeft && ctrlDown)
|
|
141
143
|
{
|
|
142
144
|
if (CARET_POS == pimpl->text.length())
|
|
143
145
|
--CARET_POS;
|
|
@@ -155,7 +157,7 @@ bool Gosu::TextInput::feedXEvent(void* display, void* event)
|
|
|
155
157
|
}
|
|
156
158
|
|
|
157
159
|
// Word right
|
|
158
|
-
if (
|
|
160
|
+
if (btn == kbRight && ctrlDown)
|
|
159
161
|
{
|
|
160
162
|
while (CARET_POS < pimpl->text.length() && iswspace(pimpl->text.at(CARET_POS)))
|
|
161
163
|
++CARET_POS;
|
|
@@ -170,7 +172,7 @@ bool Gosu::TextInput::feedXEvent(void* display, void* event)
|
|
|
170
172
|
}
|
|
171
173
|
|
|
172
174
|
// Delete existant selection
|
|
173
|
-
if (
|
|
175
|
+
if (btn == kbBackspace)
|
|
174
176
|
{
|
|
175
177
|
if (SEL_START != CARET_POS)
|
|
176
178
|
{
|
|
@@ -191,7 +193,7 @@ bool Gosu::TextInput::feedXEvent(void* display, void* event)
|
|
|
191
193
|
}
|
|
192
194
|
|
|
193
195
|
// Delete existant selection
|
|
194
|
-
if (
|
|
196
|
+
if (btn == kbDelete)
|
|
195
197
|
{
|
|
196
198
|
if (SEL_START != CARET_POS)
|
|
197
199
|
{
|
data/GosuImpl/Utility.cpp
CHANGED
|
@@ -40,15 +40,10 @@ string Gosu::wstringToUTF8(const std::wstring& ws)
|
|
|
40
40
|
// from this file.
|
|
41
41
|
|
|
42
42
|
namespace {
|
|
43
|
-
extern const char MACROMAN[] = "MacRoman";
|
|
44
43
|
extern const char UCS_2_INTERNAL[] = "UCS-2-INTERNAL";
|
|
45
44
|
}
|
|
46
45
|
|
|
47
46
|
namespace Gosu {
|
|
48
|
-
wstring macRomanToWstring(const string& s)
|
|
49
|
-
{
|
|
50
|
-
return iconvert<wstring, UCS_4_INTERNAL, MACROMAN>(s);
|
|
51
|
-
}
|
|
52
47
|
vector<unsigned short> wstringToUniChars(const wstring& ws)
|
|
53
48
|
{
|
|
54
49
|
return iconvert<vector<unsigned short>, UCS_2_INTERNAL, UCS_4_INTERNAL>(ws);
|
data/GosuImpl/WindowMac.mm
CHANGED
|
@@ -81,6 +81,8 @@ namespace Gosu
|
|
|
81
81
|
case NSLeftMouseUp:
|
|
82
82
|
case NSRightMouseDown:
|
|
83
83
|
case NSRightMouseUp:
|
|
84
|
+
case NSOtherMouseDown:
|
|
85
|
+
case NSOtherMouseUp:
|
|
84
86
|
case NSScrollWheel:
|
|
85
87
|
case NSKeyUp:
|
|
86
88
|
case NSKeyDown:
|
|
@@ -108,7 +110,10 @@ namespace
|
|
|
108
110
|
|
|
109
111
|
typedef void (*WindowProc)(Gosu::Window&);
|
|
110
112
|
|
|
111
|
-
@interface GosuForwarder : NSObject
|
|
113
|
+
@interface GosuForwarder : NSObject
|
|
114
|
+
#ifdef __LP64__
|
|
115
|
+
<NSWindowDelegate>
|
|
116
|
+
#endif
|
|
112
117
|
{
|
|
113
118
|
Gosu::Window* win;
|
|
114
119
|
WindowProc pr;
|
|
@@ -164,6 +169,8 @@ OVERRIDE_METHOD(mouseDown);
|
|
|
164
169
|
OVERRIDE_METHOD(mouseUp);
|
|
165
170
|
OVERRIDE_METHOD(rightMouseDown);
|
|
166
171
|
OVERRIDE_METHOD(rightMouseUp);
|
|
172
|
+
OVERRIDE_METHOD(otherMouseDown);
|
|
173
|
+
OVERRIDE_METHOD(otherMouseUp);
|
|
167
174
|
OVERRIDE_METHOD(scrollWheel);
|
|
168
175
|
@end
|
|
169
176
|
|
data/lib/gosu/patches.rb
CHANGED
|
@@ -75,4 +75,7 @@ class Gosu::Window
|
|
|
75
75
|
end
|
|
76
76
|
|
|
77
77
|
# Release OpenAL resources during Ruby's shutdown, not Gosu's.
|
|
78
|
-
at_exit
|
|
78
|
+
at_exit do
|
|
79
|
+
Gosu::Song.current_song.stop if Gosu::Song.current_song
|
|
80
|
+
Gosu::_release_all_openal_resources
|
|
81
|
+
end
|
data/linux/extconf.rb
CHANGED
|
@@ -82,7 +82,13 @@ if `uname`.chomp == 'Darwin' then
|
|
|
82
82
|
$INCFLAGS << " -I../dependencies/libvorbis/lib"
|
|
83
83
|
# To make everything work with the Objective C runtime
|
|
84
84
|
$CFLAGS << " -x objective-c -fobjc-gc -DNDEBUG"
|
|
85
|
-
|
|
85
|
+
# Compile all C++ files as Objective C++ on OS X since mkmf does not support .mm
|
|
86
|
+
# files.
|
|
87
|
+
# Also undefine two debug flags that cause exceptions to randomly crash
|
|
88
|
+
# otherwise; see:
|
|
89
|
+
# https://trac.macports.org/ticket/27237#comment:21
|
|
90
|
+
# http://newartisans.com/2009/10/a-c-gotcha-on-snow-leopard/#comment-893
|
|
91
|
+
CONFIG['CXXFLAGS'] = "#{CONFIG['CXXFLAGS']} -x objective-c++ -U_GLIBCXX_DEBUG -U_GLIBCXX_DEBUG_PEDANTIC"
|
|
86
92
|
$LDFLAGS << " -L/usr/X11/lib -liconv"
|
|
87
93
|
%w(AudioToolbox IOKit OpenAL OpenGL AppKit ApplicationServices Foundation Carbon).each do |f|
|
|
88
94
|
$LDFLAGS << " -framework #{f}"
|
metadata
CHANGED
|
@@ -1,13 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: gosu
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
|
|
5
|
-
prerelease:
|
|
6
|
-
segments:
|
|
7
|
-
- 0
|
|
8
|
-
- 7
|
|
9
|
-
- 46
|
|
10
|
-
version: 0.7.46
|
|
4
|
+
version: 0.7.47.1
|
|
11
5
|
platform: ruby
|
|
12
6
|
authors:
|
|
13
7
|
- Julian Raschke
|
|
@@ -15,7 +9,7 @@ autorequire:
|
|
|
15
9
|
bindir: bin
|
|
16
10
|
cert_chain: []
|
|
17
11
|
|
|
18
|
-
date: 2013-
|
|
12
|
+
date: 2013-04-01 00:00:00 Z
|
|
19
13
|
dependencies: []
|
|
20
14
|
|
|
21
15
|
description: " 2D game development library.\n\n Gosu features easy to use and game-friendly interfaces to 2D graphics\n and text (accelerated by 3D hardware), sound samples and music as well as\n keyboard, mouse and gamepad/joystick input.\n\n Also includes demos for integration with RMagick, Chipmunk and OpenGL.\n"
|
|
@@ -35,7 +29,6 @@ files:
|
|
|
35
29
|
- Gosu/AutoLink.hpp
|
|
36
30
|
- Gosu/Bitmap.hpp
|
|
37
31
|
- Gosu/Buttons.hpp
|
|
38
|
-
- Gosu/ButtonsMac.hpp
|
|
39
32
|
- Gosu/Color.hpp
|
|
40
33
|
- Gosu/Directories.hpp
|
|
41
34
|
- Gosu/Font.hpp
|
|
@@ -160,7 +153,6 @@ files:
|
|
|
160
153
|
- GosuImpl/RubyGosuStub.mm
|
|
161
154
|
- GosuImpl/RubyGosu_SWIG_GC_PATCH.patch
|
|
162
155
|
- GosuImpl/RubyGosu_SWIG_RENAME_PATCH.patch
|
|
163
|
-
- GosuImpl/RubyGosu_SWIG_TYPE_PATCH.patch
|
|
164
156
|
- GosuImpl/RubyGosu_wrap.cxx
|
|
165
157
|
- GosuImpl/RubyGosu_wrap.h
|
|
166
158
|
- GosuImpl/Sockets/CommSocket.cpp
|
|
@@ -269,6 +261,8 @@ files:
|
|
|
269
261
|
homepage: http://www.libgosu.org/
|
|
270
262
|
licenses: []
|
|
271
263
|
|
|
264
|
+
metadata: {}
|
|
265
|
+
|
|
272
266
|
post_install_message:
|
|
273
267
|
rdoc_options:
|
|
274
268
|
- README.txt
|
|
@@ -285,31 +279,21 @@ rdoc_options:
|
|
|
285
279
|
require_paths:
|
|
286
280
|
- lib
|
|
287
281
|
required_ruby_version: !ruby/object:Gem::Requirement
|
|
288
|
-
none: false
|
|
289
282
|
requirements:
|
|
290
283
|
- - ">="
|
|
291
284
|
- !ruby/object:Gem::Version
|
|
292
|
-
hash: 51
|
|
293
|
-
segments:
|
|
294
|
-
- 1
|
|
295
|
-
- 8
|
|
296
|
-
- 2
|
|
297
285
|
version: 1.8.2
|
|
298
286
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
299
|
-
none: false
|
|
300
287
|
requirements:
|
|
301
288
|
- - ">="
|
|
302
289
|
- !ruby/object:Gem::Version
|
|
303
|
-
hash: 3
|
|
304
|
-
segments:
|
|
305
|
-
- 0
|
|
306
290
|
version: "0"
|
|
307
291
|
requirements:
|
|
308
292
|
- See https://github.com/jlnr/gosu/wiki/Getting-Started-on-Linux
|
|
309
293
|
rubyforge_project:
|
|
310
|
-
rubygems_version:
|
|
294
|
+
rubygems_version: 2.0.3
|
|
311
295
|
signing_key:
|
|
312
|
-
specification_version:
|
|
296
|
+
specification_version: 4
|
|
313
297
|
summary: 2D game development library.
|
|
314
298
|
test_files: []
|
|
315
299
|
|
data/Gosu/ButtonsMac.hpp
DELETED
|
@@ -1,227 +0,0 @@
|
|
|
1
|
-
#ifndef GOSU_BUTTONSMAC_HPP
|
|
2
|
-
#define GOSU_BUTTONSMAC_HPP
|
|
3
|
-
|
|
4
|
-
namespace Gosu
|
|
5
|
-
{
|
|
6
|
-
//! List of button ids that can be used with Gosu::Input.
|
|
7
|
-
//! This enumeration contains ids for keyboard keys (kb*),
|
|
8
|
-
//! mouse buttons and mouse wheel (ms*) and gamepad buttons (gp*).
|
|
9
|
-
enum ButtonName
|
|
10
|
-
{
|
|
11
|
-
kbRangeBegin = 0x00,
|
|
12
|
-
kbEscape = 0x35,
|
|
13
|
-
kbF1 = 0x7a,
|
|
14
|
-
kbF2 = 0x78,
|
|
15
|
-
kbF3 = 0x63,
|
|
16
|
-
kbF4 = 0x76,
|
|
17
|
-
kbF5 = 0x60,
|
|
18
|
-
kbF6 = 0x61,
|
|
19
|
-
kbF7 = 0x62,
|
|
20
|
-
kbF8 = 0x64,
|
|
21
|
-
kbF9 = 0x65,
|
|
22
|
-
kbF10 = 0x6d,
|
|
23
|
-
kbF11 = 0x67,
|
|
24
|
-
kbF12 = 0x6f,
|
|
25
|
-
kb1 = 0x12,
|
|
26
|
-
kb2 = 0x13,
|
|
27
|
-
kb3 = 0x14,
|
|
28
|
-
kb4 = 0x15,
|
|
29
|
-
kb5 = 0x17,
|
|
30
|
-
kb6 = 0x16,
|
|
31
|
-
kb7 = 0x1a,
|
|
32
|
-
kb8 = 0x1c,
|
|
33
|
-
kb9 = 0x19,
|
|
34
|
-
kb0 = 0x1d,
|
|
35
|
-
kbA = 0x00,
|
|
36
|
-
kbB = 0x0b,
|
|
37
|
-
kbC = 0x08,
|
|
38
|
-
kbD = 0x02,
|
|
39
|
-
kbE = 0x0e,
|
|
40
|
-
kbF = 0x03,
|
|
41
|
-
kbG = 0x05,
|
|
42
|
-
kbH = 0x04,
|
|
43
|
-
kbI = 0x22,
|
|
44
|
-
kbJ = 0x26,
|
|
45
|
-
kbK = 0x28,
|
|
46
|
-
kbL = 0x25,
|
|
47
|
-
kbM = 0x2e,
|
|
48
|
-
kbN = 0x2d,
|
|
49
|
-
kbO = 0x1f,
|
|
50
|
-
kbP = 0x23,
|
|
51
|
-
kbQ = 0x0c,
|
|
52
|
-
kbR = 0x0f,
|
|
53
|
-
kbS = 0x01,
|
|
54
|
-
kbT = 0x11,
|
|
55
|
-
kbU = 0x20,
|
|
56
|
-
kbV = 0x09,
|
|
57
|
-
kbW = 0x0d,
|
|
58
|
-
kbX = 0x07,
|
|
59
|
-
kbY = 0x10,
|
|
60
|
-
kbZ = 0x06,
|
|
61
|
-
kbTab = 0x30,
|
|
62
|
-
kbReturn = 0x24,
|
|
63
|
-
kbSpace = 0x31,
|
|
64
|
-
kbLeftShift = 0x38,
|
|
65
|
-
kbRightShift = 0x3c,
|
|
66
|
-
kbLeftControl = 0x3b,
|
|
67
|
-
kbRightControl = 0x3e,
|
|
68
|
-
kbLeftAlt = 0x3a,
|
|
69
|
-
kbRightAlt = 0x3d,
|
|
70
|
-
kbLeftMeta = 0x37,
|
|
71
|
-
kbRightMeta = 0x36,
|
|
72
|
-
kbBackspace = 0x33,
|
|
73
|
-
kbLeft = 0x7b,
|
|
74
|
-
kbRight = 0x7c,
|
|
75
|
-
kbUp = 0x7e,
|
|
76
|
-
kbDown = 0x7d,
|
|
77
|
-
kbHome = 0x73,
|
|
78
|
-
kbEnd = 0x77,
|
|
79
|
-
kbInsert = 0x72,
|
|
80
|
-
kbDelete = 0x75,
|
|
81
|
-
kbPageUp = 0x74,
|
|
82
|
-
kbPageDown = 0x79,
|
|
83
|
-
kbEnter = 0x4c,
|
|
84
|
-
kbNumpad1 = 0x53,
|
|
85
|
-
kbNumpad2 = 0x54,
|
|
86
|
-
kbNumpad3 = 0x55,
|
|
87
|
-
kbNumpad4 = 0x56,
|
|
88
|
-
kbNumpad5 = 0x57,
|
|
89
|
-
kbNumpad6 = 0x58,
|
|
90
|
-
kbNumpad7 = 0x59,
|
|
91
|
-
kbNumpad8 = 0x5b,
|
|
92
|
-
kbNumpad9 = 0x5c,
|
|
93
|
-
kbNumpad0 = 0x52,
|
|
94
|
-
kbNumpadAdd = 0x45,
|
|
95
|
-
kbNumpadSubtract = 0x4e,
|
|
96
|
-
kbNumpadMultiply = 0x43,
|
|
97
|
-
kbNumpadDivide = 0x4b,
|
|
98
|
-
kbRangeEnd = 0xffff,
|
|
99
|
-
|
|
100
|
-
msRangeBegin,
|
|
101
|
-
msLeft = msRangeBegin,
|
|
102
|
-
msRight,
|
|
103
|
-
msMiddle,
|
|
104
|
-
msWheelUp,
|
|
105
|
-
msWheelDown,
|
|
106
|
-
msRangeEnd,
|
|
107
|
-
|
|
108
|
-
gpRangeBegin,
|
|
109
|
-
gpLeft = gpRangeBegin,
|
|
110
|
-
gpRight,
|
|
111
|
-
gpUp,
|
|
112
|
-
gpDown,
|
|
113
|
-
gpButton0,
|
|
114
|
-
gpButton1,
|
|
115
|
-
gpButton2,
|
|
116
|
-
gpButton3,
|
|
117
|
-
gpButton4,
|
|
118
|
-
gpButton5,
|
|
119
|
-
gpButton6,
|
|
120
|
-
gpButton7,
|
|
121
|
-
gpButton8,
|
|
122
|
-
gpButton9,
|
|
123
|
-
gpButton10,
|
|
124
|
-
gpButton11,
|
|
125
|
-
gpButton12,
|
|
126
|
-
gpButton13,
|
|
127
|
-
gpButton14,
|
|
128
|
-
gpButton15,
|
|
129
|
-
|
|
130
|
-
gp0Left,
|
|
131
|
-
gp0Right,
|
|
132
|
-
gp0Up,
|
|
133
|
-
gp0Down,
|
|
134
|
-
gp0Button0,
|
|
135
|
-
gp0Button1,
|
|
136
|
-
gp0Button2,
|
|
137
|
-
gp0Button3,
|
|
138
|
-
gp0Button4,
|
|
139
|
-
gp0Button5,
|
|
140
|
-
gp0Button6,
|
|
141
|
-
gp0Button7,
|
|
142
|
-
gp0Button8,
|
|
143
|
-
gp0Button9,
|
|
144
|
-
gp0Button10,
|
|
145
|
-
gp0Button11,
|
|
146
|
-
gp0Button12,
|
|
147
|
-
gp0Button13,
|
|
148
|
-
gp0Button14,
|
|
149
|
-
gp0Button15,
|
|
150
|
-
|
|
151
|
-
gp1Left,
|
|
152
|
-
gp1Right,
|
|
153
|
-
gp1Up,
|
|
154
|
-
gp1Down,
|
|
155
|
-
gp1Button0,
|
|
156
|
-
gp1Button1,
|
|
157
|
-
gp1Button2,
|
|
158
|
-
gp1Button3,
|
|
159
|
-
gp1Button4,
|
|
160
|
-
gp1Button5,
|
|
161
|
-
gp1Button6,
|
|
162
|
-
gp1Button7,
|
|
163
|
-
gp1Button8,
|
|
164
|
-
gp1Button9,
|
|
165
|
-
gp1Button10,
|
|
166
|
-
gp1Button11,
|
|
167
|
-
gp1Button12,
|
|
168
|
-
gp1Button13,
|
|
169
|
-
gp1Button14,
|
|
170
|
-
gp1Button15,
|
|
171
|
-
|
|
172
|
-
gp2Left,
|
|
173
|
-
gp2Right,
|
|
174
|
-
gp2Up,
|
|
175
|
-
gp2Down,
|
|
176
|
-
gp2Button0,
|
|
177
|
-
gp2Button1,
|
|
178
|
-
gp2Button2,
|
|
179
|
-
gp2Button3,
|
|
180
|
-
gp2Button4,
|
|
181
|
-
gp2Button5,
|
|
182
|
-
gp2Button6,
|
|
183
|
-
gp2Button7,
|
|
184
|
-
gp2Button8,
|
|
185
|
-
gp2Button9,
|
|
186
|
-
gp2Button10,
|
|
187
|
-
gp2Button11,
|
|
188
|
-
gp2Button12,
|
|
189
|
-
gp2Button13,
|
|
190
|
-
gp2Button14,
|
|
191
|
-
gp2Button15,
|
|
192
|
-
|
|
193
|
-
gp3Left,
|
|
194
|
-
gp3Right,
|
|
195
|
-
gp3Up,
|
|
196
|
-
gp3Down,
|
|
197
|
-
gp3Button0,
|
|
198
|
-
gp3Button1,
|
|
199
|
-
gp3Button2,
|
|
200
|
-
gp3Button3,
|
|
201
|
-
gp3Button4,
|
|
202
|
-
gp3Button5,
|
|
203
|
-
gp3Button6,
|
|
204
|
-
gp3Button7,
|
|
205
|
-
gp3Button8,
|
|
206
|
-
gp3Button9,
|
|
207
|
-
gp3Button10,
|
|
208
|
-
gp3Button11,
|
|
209
|
-
gp3Button12,
|
|
210
|
-
gp3Button13,
|
|
211
|
-
gp3Button14,
|
|
212
|
-
gp3Button15,
|
|
213
|
-
|
|
214
|
-
gpRangeEnd = gp3Button15,
|
|
215
|
-
|
|
216
|
-
numButtons = gpRangeEnd + 1,
|
|
217
|
-
numGamepads = 4,
|
|
218
|
-
noButton = 0xffffffff,
|
|
219
|
-
|
|
220
|
-
kbNum = kbRangeEnd - kbRangeBegin + 1,
|
|
221
|
-
msNum = msRangeEnd - msRangeBegin + 1,
|
|
222
|
-
gpNum = gpRangeEnd - gpRangeBegin + 1,
|
|
223
|
-
gpNumPerGamepad = gpNum / (numGamepads + 1),
|
|
224
|
-
};
|
|
225
|
-
}
|
|
226
|
-
|
|
227
|
-
#endif
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
--- GosuImpl/RubyGosu_wrap.cxx 2011-04-06 14:42:00.000000000 +0800
|
|
2
|
-
+++ GosuImpl/RubyGosu_wrap_.cxx 2011-04-06 14:49:55.000000000 +0800
|
|
3
|
-
@@ -1514,7 +1514,7 @@
|
|
4
|
-
downcast methods. */
|
|
5
|
-
if (obj != Qnil) {
|
|
6
|
-
VALUE value = rb_iv_get(obj, "@__swigtype__");
|
|
7
|
-
- char* type_name = RSTRING_PTR(value);
|
|
8
|
-
+ const char* type_name = RSTRING_PTR(value);
|
|
9
|
-
|
|
10
|
-
if (strcmp(type->name, type_name) == 0) {
|
|
11
|
-
return obj;
|