gosu 1.0.0.pre1 → 1.1.0
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 +4 -4
- data/ext/gosu/extconf.rb +4 -24
- data/include/Gosu/Buttons.hpp +18 -17
- data/include/Gosu/Font.hpp +1 -1
- data/include/Gosu/Fwd.hpp +0 -5
- data/include/Gosu/Input.hpp +13 -40
- data/include/Gosu/Utility.hpp +14 -3
- data/include/Gosu/Version.hpp +3 -3
- data/include/Gosu/Window.hpp +25 -21
- data/lib/OpenAL32.dll +0 -0
- data/lib/gosu/patches.rb +0 -14
- data/lib/gosu/preview.rb +1 -3
- data/lib/gosu/swig_patches.rb +11 -10
- data/lib64/OpenAL32.dll +0 -0
- data/rdoc/gosu.rb +20 -6
- data/src/AudioFile.hpp +3 -0
- data/src/Input.cpp +28 -38
- data/src/Resolution.cpp +8 -8
- data/src/RubyGosu.cxx +646 -91
- data/src/RubyGosu.h +1 -1
- data/src/TrueTypeFontWin.cpp +3 -3
- data/src/Window.cpp +60 -31
- data/src/WindowUIKit.cpp +21 -9
- metadata +5 -31
- data/include/Gosu/AutoLink.hpp +0 -14
- data/include/Gosu/Channel.h +0 -25
- data/include/Gosu/Color.h +0 -38
- data/include/Gosu/Font.h +0 -36
- data/include/Gosu/Gosu.h +0 -82
- data/include/Gosu/Image.h +0 -54
- data/include/Gosu/Sample.h +0 -19
- data/include/Gosu/Song.h +0 -24
- data/include/Gosu/TextInput.h +0 -30
- data/include/Gosu/Window.h +0 -63
- data/lib/gosu/zen.rb +0 -89
- data/lib/libmpg123.dll +0 -0
- data/lib/libsndfile.dll +0 -0
- data/lib64/libmpg123.dll +0 -0
- data/lib64/libsndfile.dll +0 -0
- data/src/ChannelWrapper.cpp +0 -50
- data/src/ColorWrapper.cpp +0 -126
- data/src/Constants.cpp +0 -334
- data/src/FontWrapper.cpp +0 -74
- data/src/GosuWrapper.cpp +0 -251
- data/src/ImageWrapper.cpp +0 -168
- data/src/MPEGFile.hpp +0 -90
- data/src/SampleWrapper.cpp +0 -30
- data/src/SongWrapper.cpp +0 -52
- data/src/TextInputWrapper.cpp +0 -101
- data/src/WindowWrapper.cpp +0 -317
data/src/RubyGosu.h
CHANGED
@@ -28,7 +28,7 @@ public:
|
|
28
28
|
class SwigDirector_Window : public Gosu::Window, public Swig::Director {
|
29
29
|
|
30
30
|
public:
|
31
|
-
SwigDirector_Window(VALUE self,
|
31
|
+
SwigDirector_Window(VALUE self,int width,int height,unsigned int window_flags=Gosu::WF_WINDOWED,double update_interval=16.666666);
|
32
32
|
virtual ~SwigDirector_Window();
|
33
33
|
virtual void show();
|
34
34
|
virtual bool tick();
|
data/src/TrueTypeFontWin.cpp
CHANGED
@@ -32,9 +32,9 @@ const unsigned char* Gosu::ttf_data_by_name(const string& font_name, unsigned fo
|
|
32
32
|
LOGFONT logfont = {
|
33
33
|
0, 0, 0, 0,
|
34
34
|
(font_flags & Gosu::FF_BOLD) ? FW_BOLD : FW_NORMAL,
|
35
|
-
(font_flags & Gosu::FF_ITALIC) ? TRUE : FALSE,
|
36
|
-
(font_flags & Gosu::FF_UNDERLINE) ? TRUE : FALSE,
|
37
|
-
|
35
|
+
static_cast<BYTE>((font_flags & Gosu::FF_ITALIC) ? TRUE : FALSE),
|
36
|
+
static_cast<BYTE>((font_flags & Gosu::FF_UNDERLINE) ? TRUE : FALSE),
|
37
|
+
0 /* no strikethrough */,
|
38
38
|
ANSI_CHARSET, OUT_OUTLINE_PRECIS, CLIP_DEFAULT_PRECIS, ANTIALIASED_QUALITY,
|
39
39
|
DEFAULT_PITCH
|
40
40
|
};
|
data/src/Window.cpp
CHANGED
@@ -1,6 +1,10 @@
|
|
1
1
|
#include <Gosu/Platform.hpp>
|
2
2
|
#if !defined(GOSU_IS_IPHONE)
|
3
3
|
|
4
|
+
#if defined(GOSU_IS_WIN)
|
5
|
+
#include <windows.h>
|
6
|
+
#endif
|
7
|
+
|
4
8
|
#include <Gosu/Gosu.hpp>
|
5
9
|
#include "GraphicsImpl.hpp"
|
6
10
|
#include <SDL.h>
|
@@ -30,11 +34,7 @@ namespace Gosu
|
|
30
34
|
throw_sdl_error("Could not initialize SDL Video");
|
31
35
|
}
|
32
36
|
|
33
|
-
Uint32 flags = SDL_WINDOW_OPENGL | SDL_WINDOW_HIDDEN;
|
34
|
-
|
35
|
-
#if SDL_VERSION_ATLEAST(2, 0, 1)
|
36
|
-
flags |= SDL_WINDOW_ALLOW_HIGHDPI;
|
37
|
-
#endif
|
37
|
+
Uint32 flags = SDL_WINDOW_OPENGL | SDL_WINDOW_HIDDEN | SDL_WINDOW_ALLOW_HIGHDPI;
|
38
38
|
|
39
39
|
window =
|
40
40
|
SDL_CreateWindow("", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 64, 64, flags);
|
@@ -87,13 +87,11 @@ struct Gosu::Window::Impl
|
|
87
87
|
unique_ptr<Input> input;
|
88
88
|
};
|
89
89
|
|
90
|
-
Gosu::Window::Window(
|
91
|
-
bool resizable)
|
90
|
+
Gosu::Window::Window(int width, int height, unsigned window_flags, double update_interval)
|
92
91
|
: pimpl(new Impl)
|
93
92
|
{
|
94
|
-
|
95
|
-
|
96
|
-
#endif
|
93
|
+
set_borderless(window_flags & WF_BORDERLESS);
|
94
|
+
set_resizable(window_flags & WF_RESIZABLE);
|
97
95
|
|
98
96
|
// Even in fullscreen mode, temporarily show the window in windowed mode to centre it.
|
99
97
|
// This ensures that the window will be centered correctly when exiting fullscreen mode.
|
@@ -103,12 +101,11 @@ Gosu::Window::Window(unsigned width, unsigned height, bool fullscreen, double up
|
|
103
101
|
SDL_SetWindowPosition(shared_window(), SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED);
|
104
102
|
|
105
103
|
// Really enable fullscreen if desired.
|
106
|
-
resize(width, height,
|
104
|
+
resize(width, height, (window_flags & WF_FULLSCREEN));
|
107
105
|
|
108
106
|
SDL_GL_SetSwapInterval(1);
|
109
107
|
|
110
108
|
pimpl->update_interval = update_interval;
|
111
|
-
pimpl->resizable = resizable;
|
112
109
|
|
113
110
|
input().on_button_down = [this](Button button) { button_down(button); };
|
114
111
|
input().on_button_up = [this](Button button) { button_up(button); };
|
@@ -121,12 +118,12 @@ Gosu::Window::~Window()
|
|
121
118
|
SDL_HideWindow(shared_window());
|
122
119
|
}
|
123
120
|
|
124
|
-
|
121
|
+
int Gosu::Window::width() const
|
125
122
|
{
|
126
123
|
return graphics().width();
|
127
124
|
}
|
128
125
|
|
129
|
-
|
126
|
+
int Gosu::Window::height() const
|
130
127
|
{
|
131
128
|
return graphics().height();
|
132
129
|
}
|
@@ -136,12 +133,7 @@ bool Gosu::Window::fullscreen() const
|
|
136
133
|
return pimpl->fullscreen;
|
137
134
|
}
|
138
135
|
|
139
|
-
|
140
|
-
{
|
141
|
-
return pimpl->resizable;
|
142
|
-
}
|
143
|
-
|
144
|
-
void Gosu::Window::resize(unsigned width, unsigned height, bool fullscreen)
|
136
|
+
void Gosu::Window::resize(int width, int height, bool fullscreen)
|
145
137
|
{
|
146
138
|
pimpl->fullscreen = fullscreen;
|
147
139
|
|
@@ -175,8 +167,8 @@ void Gosu::Window::resize(unsigned width, unsigned height, bool fullscreen)
|
|
175
167
|
}
|
176
168
|
}
|
177
169
|
else {
|
178
|
-
|
179
|
-
|
170
|
+
int max_width = Gosu::available_width(this);
|
171
|
+
int max_height = Gosu::available_height(this);
|
180
172
|
|
181
173
|
if (resizable()) {
|
182
174
|
// If the window is resizable, limit its size, without preserving the aspect ratio.
|
@@ -196,9 +188,7 @@ void Gosu::Window::resize(unsigned width, unsigned height, bool fullscreen)
|
|
196
188
|
SDL_SetWindowSize(shared_window(), actual_width, actual_height);
|
197
189
|
}
|
198
190
|
|
199
|
-
#if SDL_VERSION_ATLEAST(2, 0, 1)
|
200
191
|
SDL_GL_GetDrawableSize(shared_window(), &actual_width, &actual_height);
|
201
|
-
#endif
|
202
192
|
|
203
193
|
ensure_current_context();
|
204
194
|
|
@@ -217,6 +207,27 @@ void Gosu::Window::resize(unsigned width, unsigned height, bool fullscreen)
|
|
217
207
|
black_bar_width, black_bar_height);
|
218
208
|
}
|
219
209
|
|
210
|
+
bool Gosu::Window::resizable() const
|
211
|
+
{
|
212
|
+
return pimpl->resizable;
|
213
|
+
}
|
214
|
+
|
215
|
+
void Gosu::Window::set_resizable(bool resizable)
|
216
|
+
{
|
217
|
+
pimpl->resizable = resizable;
|
218
|
+
SDL_SetWindowResizable(shared_window(), resizable ? SDL_TRUE : SDL_FALSE);
|
219
|
+
}
|
220
|
+
|
221
|
+
bool Gosu::Window::borderless() const
|
222
|
+
{
|
223
|
+
return SDL_GetWindowFlags(shared_window()) & SDL_WINDOW_BORDERLESS;
|
224
|
+
}
|
225
|
+
|
226
|
+
void Gosu::Window::set_borderless(bool borderless)
|
227
|
+
{
|
228
|
+
SDL_SetWindowBordered(shared_window(), borderless ? SDL_FALSE : SDL_TRUE);
|
229
|
+
}
|
230
|
+
|
220
231
|
double Gosu::Window::update_interval() const
|
221
232
|
{
|
222
233
|
return pimpl->update_interval;
|
@@ -242,16 +253,34 @@ void Gosu::Window::show()
|
|
242
253
|
{
|
243
254
|
unsigned long time_before_tick = milliseconds();
|
244
255
|
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
256
|
+
#ifdef GOSU_IS_WIN
|
257
|
+
// Try to convince Windows to only run this thread on the first core, to avoid timing glitches.
|
258
|
+
// (If we ever run into a situation where the first core is not available, we should start to
|
259
|
+
// use GetProcessAffinityMask to retrieve the allowed cores as a bitmask.)
|
260
|
+
DWORD_PTR previous_affinity = SetThreadAffinityMask(GetCurrentThread(), 1);
|
261
|
+
#endif
|
262
|
+
|
263
|
+
try {
|
264
|
+
while (tick()) {
|
265
|
+
// Sleep to keep this loop from eating 100% CPU.
|
266
|
+
unsigned long tick_time = milliseconds() - time_before_tick;
|
267
|
+
if (tick_time < update_interval()) {
|
268
|
+
sleep(update_interval() - tick_time);
|
269
|
+
}
|
251
270
|
|
252
|
-
|
271
|
+
time_before_tick = milliseconds();
|
272
|
+
}
|
273
|
+
} catch (...) {
|
274
|
+
#ifdef GOSU_IS_WIN
|
275
|
+
if (previous_affinity) SetThreadAffinityMask(GetCurrentThread(), previous_affinity);
|
276
|
+
#endif
|
277
|
+
throw;
|
253
278
|
}
|
254
279
|
|
280
|
+
#ifdef GOSU_IS_WIN
|
281
|
+
if (previous_affinity) SetThreadAffinityMask(GetCurrentThread(), previous_affinity);
|
282
|
+
#endif
|
283
|
+
|
255
284
|
pimpl->state = Impl::CLOSED;
|
256
285
|
}
|
257
286
|
|
data/src/WindowUIKit.cpp
CHANGED
@@ -17,8 +17,7 @@ struct Gosu::Window::Impl
|
|
17
17
|
string caption;
|
18
18
|
};
|
19
19
|
|
20
|
-
Gosu::Window::Window(
|
21
|
-
bool resizable)
|
20
|
+
Gosu::Window::Window(int width, int height, unsigned window_flags, double update_interval)
|
22
21
|
: pimpl(new Impl)
|
23
22
|
{
|
24
23
|
pimpl->window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
|
@@ -50,12 +49,12 @@ Gosu::Window::~Window()
|
|
50
49
|
{
|
51
50
|
}
|
52
51
|
|
53
|
-
|
52
|
+
int Gosu::Window::width() const
|
54
53
|
{
|
55
54
|
return graphics().width();
|
56
55
|
}
|
57
56
|
|
58
|
-
|
57
|
+
int Gosu::Window::height() const
|
59
58
|
{
|
60
59
|
return graphics().height();
|
61
60
|
}
|
@@ -70,7 +69,20 @@ bool Gosu::Window::resizable() const
|
|
70
69
|
return false;
|
71
70
|
}
|
72
71
|
|
73
|
-
void Gosu::Window::
|
72
|
+
void Gosu::Window::set_resizable(bool resizable)
|
73
|
+
{
|
74
|
+
}
|
75
|
+
|
76
|
+
bool Gosu::Window::borderless() const
|
77
|
+
{
|
78
|
+
return true;
|
79
|
+
}
|
80
|
+
|
81
|
+
void Gosu::Window::set_borderless(bool borderless)
|
82
|
+
{
|
83
|
+
}
|
84
|
+
|
85
|
+
void Gosu::Window::resize(int width, int height, bool fullscreen)
|
74
86
|
{
|
75
87
|
throw logic_error("Cannot resize windows on iOS");
|
76
88
|
}
|
@@ -138,24 +150,24 @@ void* Gosu::Window::uikit_window() const
|
|
138
150
|
return (__bridge void*) pimpl->window;
|
139
151
|
}
|
140
152
|
|
141
|
-
|
153
|
+
int Gosu::screen_width(Window*)
|
142
154
|
{
|
143
155
|
return available_width() * [UIScreen mainScreen].scale;
|
144
156
|
}
|
145
157
|
|
146
|
-
|
158
|
+
int Gosu::screen_height(Window*)
|
147
159
|
{
|
148
160
|
return available_height() * [UIScreen mainScreen].scale;
|
149
161
|
}
|
150
162
|
|
151
|
-
|
163
|
+
int Gosu::available_width(Window*)
|
152
164
|
{
|
153
165
|
static CGSize screen_size = [UIScreen mainScreen].bounds.size;
|
154
166
|
static CGFloat width = MAX(screen_size.width, screen_size.height);
|
155
167
|
return width;
|
156
168
|
}
|
157
169
|
|
158
|
-
|
170
|
+
int Gosu::available_height(Window*)
|
159
171
|
{
|
160
172
|
static CGSize screen_size = [UIScreen mainScreen].bounds.size;
|
161
173
|
static CGFloat height = MIN(screen_size.width, screen_size.height);
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gosu
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Julian Raschke
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-01-20 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: |2
|
14
14
|
2D game development library.
|
@@ -186,37 +186,27 @@ files:
|
|
186
186
|
- dependencies/utf8proc/utf8proc_data.h
|
187
187
|
- ext/gosu/extconf.rb
|
188
188
|
- include/Gosu/Audio.hpp
|
189
|
-
- include/Gosu/AutoLink.hpp
|
190
189
|
- include/Gosu/Bitmap.hpp
|
191
190
|
- include/Gosu/Buttons.hpp
|
192
|
-
- include/Gosu/Channel.h
|
193
|
-
- include/Gosu/Color.h
|
194
191
|
- include/Gosu/Color.hpp
|
195
192
|
- include/Gosu/Directories.hpp
|
196
|
-
- include/Gosu/Font.h
|
197
193
|
- include/Gosu/Font.hpp
|
198
194
|
- include/Gosu/Fwd.hpp
|
199
|
-
- include/Gosu/Gosu.h
|
200
195
|
- include/Gosu/Gosu.hpp
|
201
196
|
- include/Gosu/Graphics.hpp
|
202
197
|
- include/Gosu/GraphicsBase.hpp
|
203
198
|
- include/Gosu/IO.hpp
|
204
|
-
- include/Gosu/Image.h
|
205
199
|
- include/Gosu/Image.hpp
|
206
200
|
- include/Gosu/ImageData.hpp
|
207
201
|
- include/Gosu/Input.hpp
|
208
202
|
- include/Gosu/Inspection.hpp
|
209
203
|
- include/Gosu/Math.hpp
|
210
204
|
- include/Gosu/Platform.hpp
|
211
|
-
- include/Gosu/Sample.h
|
212
|
-
- include/Gosu/Song.h
|
213
205
|
- include/Gosu/Text.hpp
|
214
|
-
- include/Gosu/TextInput.h
|
215
206
|
- include/Gosu/TextInput.hpp
|
216
207
|
- include/Gosu/Timing.hpp
|
217
208
|
- include/Gosu/Utility.hpp
|
218
209
|
- include/Gosu/Version.hpp
|
219
|
-
- include/Gosu/Window.h
|
220
210
|
- include/Gosu/Window.hpp
|
221
211
|
- lib/OpenAL32.dll
|
222
212
|
- lib/SDL2.dll
|
@@ -226,13 +216,8 @@ files:
|
|
226
216
|
- lib/gosu/preview.rb
|
227
217
|
- lib/gosu/run.rb
|
228
218
|
- lib/gosu/swig_patches.rb
|
229
|
-
- lib/gosu/zen.rb
|
230
|
-
- lib/libmpg123.dll
|
231
|
-
- lib/libsndfile.dll
|
232
219
|
- lib64/OpenAL32.dll
|
233
220
|
- lib64/SDL2.dll
|
234
|
-
- lib64/libmpg123.dll
|
235
|
-
- lib64/libsndfile.dll
|
236
221
|
- rdoc/gosu.rb
|
237
222
|
- src/Audio.cpp
|
238
223
|
- src/AudioFile.hpp
|
@@ -245,11 +230,8 @@ files:
|
|
245
230
|
- src/BlockAllocator.cpp
|
246
231
|
- src/BlockAllocator.hpp
|
247
232
|
- src/Channel.cpp
|
248
|
-
- src/ChannelWrapper.cpp
|
249
233
|
- src/ClipRectStack.hpp
|
250
234
|
- src/Color.cpp
|
251
|
-
- src/ColorWrapper.cpp
|
252
|
-
- src/Constants.cpp
|
253
235
|
- src/DirectoriesApple.cpp
|
254
236
|
- src/DirectoriesUnix.cpp
|
255
237
|
- src/DirectoriesWin.cpp
|
@@ -259,25 +241,21 @@ files:
|
|
259
241
|
- src/FileUnix.cpp
|
260
242
|
- src/FileWin.cpp
|
261
243
|
- src/Font.cpp
|
262
|
-
- src/FontWrapper.cpp
|
263
244
|
- src/GosuGLView.cpp
|
264
245
|
- src/GosuGLView.hpp
|
265
246
|
- src/GosuViewController.cpp
|
266
247
|
- src/GosuViewController.hpp
|
267
|
-
- src/GosuWrapper.cpp
|
268
248
|
- src/Graphics.cpp
|
269
249
|
- src/GraphicsImpl.hpp
|
270
250
|
- src/IO.cpp
|
271
251
|
- src/Iconv.hpp
|
272
252
|
- src/Image.cpp
|
273
|
-
- src/ImageWrapper.cpp
|
274
253
|
- src/Input.cpp
|
275
254
|
- src/InputUIKit.cpp
|
276
255
|
- src/Inspection.cpp
|
277
256
|
- src/LargeImageData.cpp
|
278
257
|
- src/LargeImageData.hpp
|
279
258
|
- src/Log.hpp
|
280
|
-
- src/MPEGFile.hpp
|
281
259
|
- src/Macro.cpp
|
282
260
|
- src/Macro.hpp
|
283
261
|
- src/MarkupParser.cpp
|
@@ -289,15 +267,12 @@ files:
|
|
289
267
|
- src/Resolution.cpp
|
290
268
|
- src/RubyGosu.cxx
|
291
269
|
- src/RubyGosu.h
|
292
|
-
- src/SampleWrapper.cpp
|
293
|
-
- src/SongWrapper.cpp
|
294
270
|
- src/TexChunk.cpp
|
295
271
|
- src/TexChunk.hpp
|
296
272
|
- src/Text.cpp
|
297
273
|
- src/TextBuilder.cpp
|
298
274
|
- src/TextBuilder.hpp
|
299
275
|
- src/TextInput.cpp
|
300
|
-
- src/TextInputWrapper.cpp
|
301
276
|
- src/Texture.cpp
|
302
277
|
- src/Texture.hpp
|
303
278
|
- src/TimingApple.cpp
|
@@ -318,7 +293,6 @@ files:
|
|
318
293
|
- src/WinUtility.hpp
|
319
294
|
- src/Window.cpp
|
320
295
|
- src/WindowUIKit.cpp
|
321
|
-
- src/WindowWrapper.cpp
|
322
296
|
homepage: https://www.libgosu.org/
|
323
297
|
licenses:
|
324
298
|
- MIT
|
@@ -335,12 +309,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
335
309
|
requirements:
|
336
310
|
- - ">="
|
337
311
|
- !ruby/object:Gem::Version
|
338
|
-
version:
|
312
|
+
version: 2.5.0
|
339
313
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
340
314
|
requirements:
|
341
|
-
- - "
|
315
|
+
- - ">="
|
342
316
|
- !ruby/object:Gem::Version
|
343
|
-
version:
|
317
|
+
version: '0'
|
344
318
|
requirements: []
|
345
319
|
rubygems_version: 3.2.3
|
346
320
|
signing_key:
|
data/include/Gosu/AutoLink.hpp
DELETED
@@ -1,14 +0,0 @@
|
|
1
|
-
//! \file AutoLink.hpp
|
2
|
-
//! Contains pragmas that make MSVC link against all the necessary libraries
|
3
|
-
//! automatically.
|
4
|
-
|
5
|
-
#ifdef _MSC_VER
|
6
|
-
#pragma once
|
7
|
-
|
8
|
-
#ifdef NDEBUG
|
9
|
-
#pragma comment(lib, "Gosu.lib")
|
10
|
-
#else
|
11
|
-
#pragma comment(lib, "GosuDebug.lib")
|
12
|
-
#endif
|
13
|
-
|
14
|
-
#endif
|
data/include/Gosu/Channel.h
DELETED
@@ -1,25 +0,0 @@
|
|
1
|
-
#pragma once
|
2
|
-
|
3
|
-
#ifdef __cplusplus
|
4
|
-
extern "C" {
|
5
|
-
#endif
|
6
|
-
|
7
|
-
typedef struct Gosu_Channel Gosu_Channel;
|
8
|
-
|
9
|
-
Gosu_Channel* Gosu_Channel_create(Gosu_Channel* channel);
|
10
|
-
void Gosu_Channel_destroy(Gosu_Channel* channel);
|
11
|
-
|
12
|
-
void Gosu_Channel_play(Gosu_Channel *channel);
|
13
|
-
bool Gosu_Channel_playing(Gosu_Channel *channel);
|
14
|
-
void Gosu_Channel_pause(Gosu_Channel *channel);
|
15
|
-
bool Gosu_Channel_paused(Gosu_Channel *channel);
|
16
|
-
void Gosu_Channel_resume(Gosu_Channel *channel);
|
17
|
-
void Gosu_Channel_stop(Gosu_Channel *channel);
|
18
|
-
|
19
|
-
void Gosu_Channel_set_volume(Gosu_Channel *channel, double volume);
|
20
|
-
void Gosu_Channel_set_speed(Gosu_Channel *channel, double speed);
|
21
|
-
void Gosu_Channel_set_pan(Gosu_Channel *channel, double pan);
|
22
|
-
|
23
|
-
#ifdef __cplusplus
|
24
|
-
}
|
25
|
-
#endif
|