gosu 0.7.46 → 0.7.47.1
Sign up to get free protection for your applications and to get access to all the features.
- 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;
|