hybridgroup-ruby-sdl-ffi 0.4.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/ChangeLog.txt +2460 -0
- data/NEWS.rdoc +77 -0
- data/README.rdoc +84 -0
- data/lib/ruby-sdl-ffi/gfx/blitfunc.rb +56 -0
- data/lib/ruby-sdl-ffi/gfx/framerate.rb +51 -0
- data/lib/ruby-sdl-ffi/gfx/imagefilter.rb +176 -0
- data/lib/ruby-sdl-ffi/gfx/primitives.rb +251 -0
- data/lib/ruby-sdl-ffi/gfx/rotozoom.rb +108 -0
- data/lib/ruby-sdl-ffi/gfx.rb +56 -0
- data/lib/ruby-sdl-ffi/image.rb +90 -0
- data/lib/ruby-sdl-ffi/mixer.rb +215 -0
- data/lib/ruby-sdl-ffi/sdl/audio.rb +139 -0
- data/lib/ruby-sdl-ffi/sdl/cdrom.rb +87 -0
- data/lib/ruby-sdl-ffi/sdl/core.rb +129 -0
- data/lib/ruby-sdl-ffi/sdl/event.rb +375 -0
- data/lib/ruby-sdl-ffi/sdl/joystick.rb +73 -0
- data/lib/ruby-sdl-ffi/sdl/keyboard.rb +76 -0
- data/lib/ruby-sdl-ffi/sdl/keysyms.rb +282 -0
- data/lib/ruby-sdl-ffi/sdl/mac.rb +443 -0
- data/lib/ruby-sdl-ffi/sdl/mouse.rb +106 -0
- data/lib/ruby-sdl-ffi/sdl/mutex.rb +57 -0
- data/lib/ruby-sdl-ffi/sdl/rwops.rb +137 -0
- data/lib/ruby-sdl-ffi/sdl/timer.rb +47 -0
- data/lib/ruby-sdl-ffi/sdl/video.rb +513 -0
- data/lib/ruby-sdl-ffi/sdl.rb +81 -0
- data/lib/ruby-sdl-ffi/ttf.rb +257 -0
- data/lib/ruby-sdl-ffi.rb +56 -0
- metadata +95 -0
data/NEWS.rdoc
ADDED
@@ -0,0 +1,77 @@
|
|
1
|
+
= NEWS
|
2
|
+
|
3
|
+
== Ruby-SDL-FFI 0.4
|
4
|
+
|
5
|
+
* Fixed the display window not gaining focus on Mac OS X 10.6.
|
6
|
+
Thanks to Bart Leusink for fixing this.
|
7
|
+
|
8
|
+
* Added SDL::SaveBMP and SDL::LoadBMP methods. These were convenience
|
9
|
+
macros defined in the SDL headers. They have been reimplemented as
|
10
|
+
Ruby methods by Bart Leusink.
|
11
|
+
|
12
|
+
|
13
|
+
|
14
|
+
== Ruby-SDL-FFI 0.3
|
15
|
+
|
16
|
+
* Ruby-SDL-FFI can now work on Mac OS X without the need for a special
|
17
|
+
interpreter (i.e. rsdl). If this causes issues for you, you can
|
18
|
+
disable it by setting the RUBYSDLFFI_NOCOCOA environment variable to
|
19
|
+
"true".
|
20
|
+
|
21
|
+
* Added the SDL::set_app_name() method. This sets the application name
|
22
|
+
in a platform-appropriate way, or does nothing if the platform is
|
23
|
+
not supported. On Mac OS X, it changes the text in the menu bar.
|
24
|
+
Support for other platforms may be added in the future.
|
25
|
+
|
26
|
+
* Ruby-SDL-FFI now reads the RUBYSDLFFI_PATH environment variable for
|
27
|
+
additional library load paths. It should be a colon-separated
|
28
|
+
(Linux/Mac) or semicolon-separated (Windows) list of directories to
|
29
|
+
search for libraries.
|
30
|
+
|
31
|
+
* The SDL::Palette class is now Enumerable. You can iterate over it
|
32
|
+
with #each, #collect, etc. You can also read a specific index using
|
33
|
+
#at (but not #[], which is reserved for struct access).
|
34
|
+
|
35
|
+
* SDL.GL_GetAttribute() now returns an integer, like it should.
|
36
|
+
Before, it would return an FFI::Buffer.
|
37
|
+
|
38
|
+
* SDL.GetKeyRepeat() is now easier to use. It returns an Array of two
|
39
|
+
integers: [delay, interval]. Before, you had to pass two output
|
40
|
+
buffers, then extract the integers afterwards.
|
41
|
+
|
42
|
+
* Fixed a NoMethodError in SDL.WaitEvent().
|
43
|
+
|
44
|
+
* Ruby-SDL-FFI now uses FFI::Buffer instead of FFI::MemoryPointer in
|
45
|
+
many places. This should give a slight performance boost on JRuby,
|
46
|
+
and potentially other platforms.
|
47
|
+
|
48
|
+
|
49
|
+
|
50
|
+
== Ruby-SDL-FFI 0.2
|
51
|
+
|
52
|
+
* The values of SDL::AUDIO_U16SYS and SDL::AUDIO_S16SYS are now
|
53
|
+
correct on both big-endian and little-endian systems.
|
54
|
+
|
55
|
+
* SDL::Gfx::arcRGBA is now considered optional (as it should have been
|
56
|
+
in version 0.1). Loading will continue even if it is not available,
|
57
|
+
such as when using older versions of SDL_gfx.
|
58
|
+
|
59
|
+
* The minimum supported version of SDL_gfx is now 2.0.13. It was
|
60
|
+
2.0.17 before.
|
61
|
+
|
62
|
+
* SDL::Gfx::rotozoomSurfaceXY and SDL::Gfx::rotozoomSurfaceSizeXY are
|
63
|
+
no longer considered optional, because they are available in all
|
64
|
+
supported versions of SDL_gfx (2.0.13 and higher).
|
65
|
+
|
66
|
+
|
67
|
+
|
68
|
+
== Ruby-SDL-FFI 0.1
|
69
|
+
|
70
|
+
* Initial release of Ruby-SDL-FFI. Bindings are provided for these
|
71
|
+
libraries (older versions may work, but haven't been tested):
|
72
|
+
|
73
|
+
* SDL >= 1.2.13
|
74
|
+
* SDL_gfx >= 2.0.17
|
75
|
+
* SDL_image >= 1.2.7
|
76
|
+
* SDL_mixer >= 1.2.8
|
77
|
+
* SDL_ttf >= 2.0.9
|
data/README.rdoc
ADDED
@@ -0,0 +1,84 @@
|
|
1
|
+
|
2
|
+
= Ruby-SDL-FFI
|
3
|
+
|
4
|
+
Version:: 0.4
|
5
|
+
Date:: 2011-03-06
|
6
|
+
|
7
|
+
Homepage:: http://github.com/rubygame/ruby-sdl-ffi/
|
8
|
+
Author:: John Croisant <jacius@gmail.com>
|
9
|
+
Copyright:: 2009-2011 John Croisant
|
10
|
+
|
11
|
+
|
12
|
+
== Description
|
13
|
+
|
14
|
+
Ruby-SDL-FFI is a low-level binding to SDL [1] and related
|
15
|
+
libraries using Ruby-FFI [2] or compatible FFI APIs, such as
|
16
|
+
JRuby's. It provides very basic access to SDL from Ruby [3]
|
17
|
+
without the need for a compiled C wrapper. It aims to be
|
18
|
+
platform and Ruby implementation independent.
|
19
|
+
|
20
|
+
Ruby-SDL-FFI does not attempt to provide any high-level
|
21
|
+
functionality, only to mirror the standard SDL interface.
|
22
|
+
For higher-level functionality, you should use other
|
23
|
+
libraries (Rubygame [4], Gosu [5], etc.).
|
24
|
+
|
25
|
+
1. SDL: http://www.libsdl.org/
|
26
|
+
2. Ruby-FFI: http://github.com/ffi/ffi
|
27
|
+
3. Ruby: http://www.ruby-lang.org/en/
|
28
|
+
4. Rubygame: http://rubygame.org/
|
29
|
+
5. Gosu: http://www.libgosu.org/
|
30
|
+
|
31
|
+
|
32
|
+
== Caveats
|
33
|
+
|
34
|
+
Ruby-SDL-FFI is still in EARLY DEVELOPMENT STAGES. That means:
|
35
|
+
|
36
|
+
* It may not work correctly (or at all).
|
37
|
+
* It may not be complete.
|
38
|
+
* It may change drastically with no advanced notice.
|
39
|
+
|
40
|
+
As such, this library is currently FOR THE ADVENTUROUS ONLY.
|
41
|
+
If you are not willing to continuously update your code to
|
42
|
+
match the new API, then you should wait until Ruby-SDL-FFI is
|
43
|
+
more mature and stable (i.e. version 1.0+).
|
44
|
+
|
45
|
+
|
46
|
+
== Requirements
|
47
|
+
|
48
|
+
* SDL >= 1.2.13
|
49
|
+
* Nice-FFI >= 0.2.0
|
50
|
+
|
51
|
+
Optional:
|
52
|
+
|
53
|
+
* SDL_image >= 1.2.7
|
54
|
+
* SDL_gfx >= 2.0.13
|
55
|
+
* SDL_mixer >= 1.2.8
|
56
|
+
* SDL_ttf >= 2.0.9
|
57
|
+
|
58
|
+
Ruby-SDL-FFI may work with older versions, but hasn't been tried on them.
|
59
|
+
|
60
|
+
|
61
|
+
== License
|
62
|
+
|
63
|
+
Ruby-SDL-FFI is licensed under the following terms (the "MIT License"):
|
64
|
+
|
65
|
+
Copyright (c) 2009-2011 John Croisant
|
66
|
+
|
67
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
68
|
+
a copy of this software and associated documentation files (the
|
69
|
+
"Software"), to deal in the Software without restriction, including
|
70
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
71
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
72
|
+
permit persons to whom the Software is furnished to do so, subject to
|
73
|
+
the following conditions:
|
74
|
+
|
75
|
+
The above copyright notice and this permission notice shall be
|
76
|
+
included in all copies or substantial portions of the Software.
|
77
|
+
|
78
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
79
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
80
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
81
|
+
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
82
|
+
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
83
|
+
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
84
|
+
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
@@ -0,0 +1,56 @@
|
|
1
|
+
#--
|
2
|
+
#
|
3
|
+
# This file is one part of:
|
4
|
+
#
|
5
|
+
# Ruby-SDL-FFI - Ruby-FFI bindings to SDL
|
6
|
+
#
|
7
|
+
# Copyright (c) 2009 John Croisant
|
8
|
+
#
|
9
|
+
# Permission is hereby granted, free of charge, to any person obtaining
|
10
|
+
# a copy of this software and associated documentation files (the
|
11
|
+
# "Software"), to deal in the Software without restriction, including
|
12
|
+
# without limitation the rights to use, copy, modify, merge, publish,
|
13
|
+
# distribute, sublicense, and/or sell copies of the Software, and to
|
14
|
+
# permit persons to whom the Software is furnished to do so, subject to
|
15
|
+
# the following conditions:
|
16
|
+
#
|
17
|
+
# The above copyright notice and this permission notice shall be
|
18
|
+
# included in all copies or substantial portions of the Software.
|
19
|
+
#
|
20
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
21
|
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
22
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
23
|
+
# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
24
|
+
# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
25
|
+
# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
26
|
+
# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
27
|
+
#
|
28
|
+
#++
|
29
|
+
|
30
|
+
|
31
|
+
module SDL
|
32
|
+
module Gfx
|
33
|
+
|
34
|
+
optfunc :BlitRGBA, "SDL_gfxBlitRGBA",
|
35
|
+
[ :pointer, :pointer, :pointer, :pointer ], :int
|
36
|
+
|
37
|
+
optfunc :SetAlpha, "SDL_gfxSetAlpha", [ :pointer, :uint8 ], :int
|
38
|
+
|
39
|
+
|
40
|
+
class BlitInfo < NiceFFI::Struct
|
41
|
+
layout( :s_pixels, :pointer,
|
42
|
+
:s_width, :int,
|
43
|
+
:s_height, :int,
|
44
|
+
:s_skip, :int,
|
45
|
+
:d_pixels, :pointer,
|
46
|
+
:d_width, :int,
|
47
|
+
:d_height, :int,
|
48
|
+
:d_skip, :int,
|
49
|
+
:aux_data, :pointer,
|
50
|
+
:src, SDL::PixelFormat.typed_pointer,
|
51
|
+
:table, :pointer,
|
52
|
+
:dst, SDL::PixelFormat.typed_pointer )
|
53
|
+
end
|
54
|
+
|
55
|
+
end
|
56
|
+
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
#--
|
2
|
+
#
|
3
|
+
# This file is one part of:
|
4
|
+
#
|
5
|
+
# Ruby-SDL-FFI - Ruby-FFI bindings to SDL
|
6
|
+
#
|
7
|
+
# Copyright (c) 2009 John Croisant
|
8
|
+
#
|
9
|
+
# Permission is hereby granted, free of charge, to any person obtaining
|
10
|
+
# a copy of this software and associated documentation files (the
|
11
|
+
# "Software"), to deal in the Software without restriction, including
|
12
|
+
# without limitation the rights to use, copy, modify, merge, publish,
|
13
|
+
# distribute, sublicense, and/or sell copies of the Software, and to
|
14
|
+
# permit persons to whom the Software is furnished to do so, subject to
|
15
|
+
# the following conditions:
|
16
|
+
#
|
17
|
+
# The above copyright notice and this permission notice shall be
|
18
|
+
# included in all copies or substantial portions of the Software.
|
19
|
+
#
|
20
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
21
|
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
22
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
23
|
+
# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
24
|
+
# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
25
|
+
# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
26
|
+
# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
27
|
+
#
|
28
|
+
#++
|
29
|
+
|
30
|
+
|
31
|
+
module SDL
|
32
|
+
module Gfx
|
33
|
+
|
34
|
+
FPS_UPPER_LIMIT = 200
|
35
|
+
FPS_LOWER_LIMIT = 1
|
36
|
+
FPS_DEFAULT = 30
|
37
|
+
|
38
|
+
class FPSmanager < NiceFFI::Struct
|
39
|
+
layout( :framecount, :uint32,
|
40
|
+
:rateticks, :float,
|
41
|
+
:lastticks, :uint32,
|
42
|
+
:rate, :uint32 )
|
43
|
+
end
|
44
|
+
|
45
|
+
sdl_func :initFramerate, [ :pointer ], :void
|
46
|
+
sdl_func :setFramerate, [ :pointer, :int ], :int
|
47
|
+
sdl_func :getFramerate, [ :pointer ], :int
|
48
|
+
sdl_func :framerateDelay, [ :pointer ], :void
|
49
|
+
|
50
|
+
end
|
51
|
+
end
|
@@ -0,0 +1,176 @@
|
|
1
|
+
#--
|
2
|
+
#
|
3
|
+
# This file is one part of:
|
4
|
+
#
|
5
|
+
# Ruby-SDL-FFI - Ruby-FFI bindings to SDL
|
6
|
+
#
|
7
|
+
# Copyright (c) 2009 John Croisant
|
8
|
+
#
|
9
|
+
# Permission is hereby granted, free of charge, to any person obtaining
|
10
|
+
# a copy of this software and associated documentation files (the
|
11
|
+
# "Software"), to deal in the Software without restriction, including
|
12
|
+
# without limitation the rights to use, copy, modify, merge, publish,
|
13
|
+
# distribute, sublicense, and/or sell copies of the Software, and to
|
14
|
+
# permit persons to whom the Software is furnished to do so, subject to
|
15
|
+
# the following conditions:
|
16
|
+
#
|
17
|
+
# The above copyright notice and this permission notice shall be
|
18
|
+
# included in all copies or substantial portions of the Software.
|
19
|
+
#
|
20
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
21
|
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
22
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
23
|
+
# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
24
|
+
# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
25
|
+
# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
26
|
+
# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
27
|
+
#
|
28
|
+
#++
|
29
|
+
|
30
|
+
|
31
|
+
module SDL
|
32
|
+
module Gfx
|
33
|
+
|
34
|
+
sdl_func :imageFilterMMXdetect, [ ], :int
|
35
|
+
sdl_func :imageFilterMMXoff, [ ], :void
|
36
|
+
sdl_func :imageFilterMMXon, [ ], :void
|
37
|
+
|
38
|
+
|
39
|
+
sdl_func :imageFilterAdd,
|
40
|
+
[ :pointer, :pointer, :pointer, :int ], :int
|
41
|
+
|
42
|
+
sdl_func :imageFilterMean,
|
43
|
+
[ :pointer, :pointer, :pointer, :int ], :int
|
44
|
+
|
45
|
+
sdl_func :imageFilterSub,
|
46
|
+
[ :pointer, :pointer, :pointer, :int ], :int
|
47
|
+
|
48
|
+
sdl_func :imageFilterAbsDiff,
|
49
|
+
[ :pointer, :pointer, :pointer, :int ], :int
|
50
|
+
|
51
|
+
sdl_func :imageFilterMult,
|
52
|
+
[ :pointer, :pointer, :pointer, :int ], :int
|
53
|
+
|
54
|
+
sdl_func :imageFilterMultNor,
|
55
|
+
[ :pointer, :pointer, :pointer, :int ], :int
|
56
|
+
|
57
|
+
sdl_func :imageFilterMultDivby2,
|
58
|
+
[ :pointer, :pointer, :pointer, :int ], :int
|
59
|
+
|
60
|
+
sdl_func :imageFilterMultDivby4,
|
61
|
+
[ :pointer, :pointer, :pointer, :int ], :int
|
62
|
+
|
63
|
+
sdl_func :imageFilterBitAnd,
|
64
|
+
[ :pointer, :pointer, :pointer, :int ], :int
|
65
|
+
|
66
|
+
sdl_func :imageFilterBitOr,
|
67
|
+
[ :pointer, :pointer, :pointer, :int ], :int
|
68
|
+
|
69
|
+
sdl_func :imageFilterDiv,
|
70
|
+
[ :pointer, :pointer, :pointer, :int ], :int
|
71
|
+
|
72
|
+
sdl_func :imageFilterBitNegation,
|
73
|
+
[ :pointer, :pointer, :int ], :int
|
74
|
+
|
75
|
+
|
76
|
+
|
77
|
+
sdl_func :imageFilterAddByte,
|
78
|
+
[ :pointer, :pointer, :int, :uchar ], :int
|
79
|
+
|
80
|
+
sdl_func :imageFilterAddUint,
|
81
|
+
[ :pointer, :pointer, :int, :uint ], :int
|
82
|
+
|
83
|
+
sdl_func :imageFilterAddByteToHalf,
|
84
|
+
[ :pointer, :pointer, :int, :uchar ], :int
|
85
|
+
|
86
|
+
|
87
|
+
sdl_func :imageFilterSubByte,
|
88
|
+
[ :pointer, :pointer, :int, :uchar ], :int
|
89
|
+
|
90
|
+
sdl_func :imageFilterSubUint,
|
91
|
+
[ :pointer, :pointer, :int, :uint ], :int
|
92
|
+
|
93
|
+
|
94
|
+
|
95
|
+
sdl_func :imageFilterShiftRight,
|
96
|
+
[ :pointer, :pointer, :int, :uchar ], :int
|
97
|
+
|
98
|
+
sdl_func :imageFilterShiftRightUint,
|
99
|
+
[ :pointer, :pointer, :int, :uchar ], :int
|
100
|
+
|
101
|
+
|
102
|
+
|
103
|
+
sdl_func :imageFilterMultByByte,
|
104
|
+
[ :pointer, :pointer, :int, :uchar ], :int
|
105
|
+
|
106
|
+
sdl_func :imageFilterShiftRightAndMultByByte,
|
107
|
+
[ :pointer, :pointer, :int, :uchar, :uchar ], :int
|
108
|
+
|
109
|
+
|
110
|
+
|
111
|
+
sdl_func :imageFilterShiftLeftByte,
|
112
|
+
[ :pointer, :pointer, :int, :uchar ], :int
|
113
|
+
|
114
|
+
sdl_func :imageFilterShiftLeftUint,
|
115
|
+
[ :pointer, :pointer, :int, :uchar ], :int
|
116
|
+
|
117
|
+
sdl_func :imageFilterShiftLeft,
|
118
|
+
[ :pointer, :pointer, :int, :uchar ], :int
|
119
|
+
|
120
|
+
|
121
|
+
|
122
|
+
sdl_func :imageFilterBinarizeUsingThreshold,
|
123
|
+
[ :pointer, :pointer, :int, :uchar ], :int
|
124
|
+
|
125
|
+
|
126
|
+
sdl_func :imageFilterClipToRange,
|
127
|
+
[ :pointer, :pointer, :int, :uchar, :uchar ], :int
|
128
|
+
|
129
|
+
|
130
|
+
sdl_func :imageFilterNormalizeLinear,
|
131
|
+
[ :pointer, :pointer, :int, :int, :int, :int, :int ], :int
|
132
|
+
|
133
|
+
|
134
|
+
|
135
|
+
sdl_func :imageFilterConvolveKernel3x3Divide,
|
136
|
+
[ :pointer, :pointer, :int, :int, :pointer, :uchar ], :int
|
137
|
+
|
138
|
+
sdl_func :imageFilterConvolveKernel5x5Divide,
|
139
|
+
[ :pointer, :pointer, :int, :int, :pointer, :uchar ], :int
|
140
|
+
|
141
|
+
sdl_func :imageFilterConvolveKernel7x7Divide,
|
142
|
+
[ :pointer, :pointer, :int, :int, :pointer, :uchar ], :int
|
143
|
+
|
144
|
+
sdl_func :imageFilterConvolveKernel9x9Divide,
|
145
|
+
[ :pointer, :pointer, :int, :int, :pointer, :uchar ], :int
|
146
|
+
|
147
|
+
|
148
|
+
|
149
|
+
sdl_func :imageFilterConvolveKernel3x3ShiftRight,
|
150
|
+
[ :pointer, :pointer, :int, :int, :pointer, :uchar ], :int
|
151
|
+
|
152
|
+
sdl_func :imageFilterConvolveKernel5x5ShiftRight,
|
153
|
+
[ :pointer, :pointer, :int, :int, :pointer, :uchar ], :int
|
154
|
+
|
155
|
+
sdl_func :imageFilterConvolveKernel7x7ShiftRight,
|
156
|
+
[ :pointer, :pointer, :int, :int, :pointer, :uchar ], :int
|
157
|
+
|
158
|
+
sdl_func :imageFilterConvolveKernel9x9ShiftRight,
|
159
|
+
[ :pointer, :pointer, :int, :int, :pointer, :uchar ], :int
|
160
|
+
|
161
|
+
|
162
|
+
|
163
|
+
sdl_func :imageFilterSobelX,
|
164
|
+
[ :pointer, :pointer, :int, :int ], :int
|
165
|
+
|
166
|
+
sdl_func :imageFilterSobelXShiftRight,
|
167
|
+
[ :pointer, :pointer, :int, :int, :uchar ], :int
|
168
|
+
|
169
|
+
|
170
|
+
|
171
|
+
sdl_func :imageFilterAlignStack, [ ], :void
|
172
|
+
sdl_func :imageFilterRestoreStack, [ ], :void
|
173
|
+
|
174
|
+
|
175
|
+
end
|
176
|
+
end
|
@@ -0,0 +1,251 @@
|
|
1
|
+
#--
|
2
|
+
#
|
3
|
+
# This file is one part of:
|
4
|
+
#
|
5
|
+
# Ruby-SDL-FFI - Ruby-FFI bindings to SDL
|
6
|
+
#
|
7
|
+
# Copyright (c) 2009 John Croisant
|
8
|
+
#
|
9
|
+
# Permission is hereby granted, free of charge, to any person obtaining
|
10
|
+
# a copy of this software and associated documentation files (the
|
11
|
+
# "Software"), to deal in the Software without restriction, including
|
12
|
+
# without limitation the rights to use, copy, modify, merge, publish,
|
13
|
+
# distribute, sublicense, and/or sell copies of the Software, and to
|
14
|
+
# permit persons to whom the Software is furnished to do so, subject to
|
15
|
+
# the following conditions:
|
16
|
+
#
|
17
|
+
# The above copyright notice and this permission notice shall be
|
18
|
+
# included in all copies or substantial portions of the Software.
|
19
|
+
#
|
20
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
21
|
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
22
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
23
|
+
# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
24
|
+
# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
25
|
+
# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
26
|
+
# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
27
|
+
#
|
28
|
+
#++
|
29
|
+
|
30
|
+
|
31
|
+
module SDL
|
32
|
+
module Gfx
|
33
|
+
|
34
|
+
M_PI = 3.141592654
|
35
|
+
|
36
|
+
|
37
|
+
func :pixelColor, [ :pointer, :int16, :int16, :uint32 ], :int
|
38
|
+
|
39
|
+
func :pixelRGBA,
|
40
|
+
[ :pointer, :int16, :int16, :uint8, :uint8, :uint8, :uint8 ], :int
|
41
|
+
|
42
|
+
|
43
|
+
|
44
|
+
func :hlineColor, [ :pointer, :int16, :int16, :int16, :uint32 ], :int
|
45
|
+
|
46
|
+
func :hlineRGBA,
|
47
|
+
[ :pointer, :int16, :int16, :int16,
|
48
|
+
:uint8, :uint8, :uint8, :uint8 ], :int
|
49
|
+
|
50
|
+
func :vlineColor, [ :pointer, :int16, :int16, :int16, :uint32 ], :int
|
51
|
+
|
52
|
+
func :vlineRGBA,
|
53
|
+
[ :pointer, :int16, :int16, :int16,
|
54
|
+
:uint8, :uint8, :uint8, :uint8 ], :int
|
55
|
+
|
56
|
+
|
57
|
+
|
58
|
+
func :rectangleColor,
|
59
|
+
[ :pointer, :int16, :int16, :int16, :int16, :uint32 ], :int
|
60
|
+
|
61
|
+
func :rectangleRGBA,
|
62
|
+
[ :pointer, :int16, :int16,
|
63
|
+
:int16, :int16, :uint8, :uint8, :uint8, :uint8 ], :int
|
64
|
+
|
65
|
+
func :boxColor,
|
66
|
+
[ :pointer, :int16, :int16, :int16, :int16, :uint32 ], :int
|
67
|
+
|
68
|
+
func :boxRGBA,
|
69
|
+
[ :pointer, :int16, :int16, :int16,
|
70
|
+
:int16, :uint8, :uint8, :uint8, :uint8 ], :int
|
71
|
+
|
72
|
+
|
73
|
+
|
74
|
+
func :lineColor,
|
75
|
+
[ :pointer, :int16, :int16, :int16, :int16, :uint32 ], :int
|
76
|
+
|
77
|
+
func :lineRGBA,
|
78
|
+
[ :pointer, :int16, :int16, :int16, :int16,
|
79
|
+
:uint8, :uint8, :uint8, :uint8 ], :int
|
80
|
+
|
81
|
+
func :aalineColor,
|
82
|
+
[ :pointer, :int16, :int16, :int16, :int16, :uint32 ], :int
|
83
|
+
|
84
|
+
func :aalineRGBA,
|
85
|
+
[ :pointer, :int16, :int16, :int16, :int16,
|
86
|
+
:uint8, :uint8, :uint8, :uint8 ], :int
|
87
|
+
|
88
|
+
|
89
|
+
|
90
|
+
func :circleColor,
|
91
|
+
[ :pointer, :int16, :int16, :int16, :uint32 ], :int
|
92
|
+
|
93
|
+
func :circleRGBA,
|
94
|
+
[ :pointer, :int16, :int16, :int16,
|
95
|
+
:uint8, :uint8, :uint8, :uint8 ], :int
|
96
|
+
|
97
|
+
func :aacircleColor,
|
98
|
+
[ :pointer, :int16, :int16, :int16, :uint32 ], :int
|
99
|
+
|
100
|
+
func :aacircleRGBA,
|
101
|
+
[ :pointer, :int16, :int16, :int16,
|
102
|
+
:uint8, :uint8, :uint8, :uint8 ], :int
|
103
|
+
|
104
|
+
func :filledCircleColor,
|
105
|
+
[ :pointer, :int16, :int16, :int16, :uint32 ], :int
|
106
|
+
|
107
|
+
func :filledCircleRGBA,
|
108
|
+
[ :pointer, :int16, :int16, :int16,
|
109
|
+
:uint8, :uint8, :uint8, :uint8 ], :int
|
110
|
+
|
111
|
+
|
112
|
+
|
113
|
+
optfunc :arcColor,
|
114
|
+
[ :pointer, :int16, :int16, :int16,
|
115
|
+
:int16, :int16, :uint32 ], :int
|
116
|
+
|
117
|
+
optfunc :arcRGBA,
|
118
|
+
[ :pointer, :int16, :int16, :int16, :int16, :int16,
|
119
|
+
:uint8, :uint8, :uint8, :uint8 ], :int
|
120
|
+
|
121
|
+
|
122
|
+
|
123
|
+
func :ellipseColor,
|
124
|
+
[ :pointer, :int16, :int16, :int16, :int16, :uint32 ], :int
|
125
|
+
|
126
|
+
func :ellipseRGBA,
|
127
|
+
[ :pointer, :int16, :int16, :int16, :int16,
|
128
|
+
:uint8, :uint8, :uint8, :uint8 ], :int
|
129
|
+
|
130
|
+
func :aaellipseColor,
|
131
|
+
[ :pointer, :int16, :int16, :int16, :int16, :uint32 ], :int
|
132
|
+
|
133
|
+
func :aaellipseRGBA,
|
134
|
+
[ :pointer, :int16, :int16, :int16, :int16,
|
135
|
+
:uint8, :uint8, :uint8, :uint8 ], :int
|
136
|
+
|
137
|
+
func :filledEllipseColor,
|
138
|
+
[ :pointer, :int16, :int16, :int16, :int16, :uint32 ], :int
|
139
|
+
|
140
|
+
func :filledEllipseRGBA,
|
141
|
+
[ :pointer, :int16, :int16, :int16, :int16,
|
142
|
+
:uint8, :uint8, :uint8, :uint8 ], :int
|
143
|
+
|
144
|
+
|
145
|
+
|
146
|
+
func :pieColor,
|
147
|
+
[ :pointer, :int16, :int16, :int16, :int16, :int16, :uint32 ], :int
|
148
|
+
|
149
|
+
func :pieRGBA,
|
150
|
+
[ :pointer, :int16, :int16, :int16, :int16, :int16,
|
151
|
+
:uint8, :uint8, :uint8, :uint8 ], :int
|
152
|
+
|
153
|
+
func :filledPieColor,
|
154
|
+
[ :pointer, :int16, :int16, :int16, :int16, :int16, :uint32 ], :int
|
155
|
+
|
156
|
+
func :filledPieRGBA,
|
157
|
+
[ :pointer, :int16, :int16, :int16, :int16, :int16,
|
158
|
+
:uint8, :uint8, :uint8, :uint8 ], :int
|
159
|
+
|
160
|
+
|
161
|
+
|
162
|
+
func :trigonColor,
|
163
|
+
[ :pointer, :int16, :int16, :int16, :int16,
|
164
|
+
:int16, :int16, :uint32 ], :int
|
165
|
+
|
166
|
+
func :trigonRGBA,
|
167
|
+
[ :pointer, :int16, :int16, :int16, :int16, :int16,
|
168
|
+
:int16, :uint8, :uint8, :uint8, :uint8 ], :int
|
169
|
+
|
170
|
+
func :aatrigonColor,
|
171
|
+
[ :pointer, :int16, :int16, :int16, :int16,
|
172
|
+
:int16, :int16, :uint32 ], :int
|
173
|
+
|
174
|
+
func :aatrigonRGBA,
|
175
|
+
[ :pointer, :int16, :int16, :int16, :int16, :int16,
|
176
|
+
:int16, :uint8, :uint8, :uint8, :uint8 ], :int
|
177
|
+
|
178
|
+
func :filledTrigonColor,
|
179
|
+
[ :pointer, :int16, :int16, :int16, :int16,
|
180
|
+
:int16, :int16, :uint32 ], :int
|
181
|
+
|
182
|
+
func :filledTrigonRGBA,
|
183
|
+
[ :pointer, :int16, :int16, :int16, :int16, :int16,
|
184
|
+
:int16, :uint8, :uint8, :uint8, :uint8 ], :int
|
185
|
+
|
186
|
+
|
187
|
+
|
188
|
+
func :polygonColor, [ :pointer, :pointer, :pointer, :int, :uint32 ], :int
|
189
|
+
|
190
|
+
func :polygonRGBA,
|
191
|
+
[ :pointer, :pointer, :pointer, :int,
|
192
|
+
:uint8, :uint8, :uint8, :uint8 ], :int
|
193
|
+
|
194
|
+
func :aapolygonColor,
|
195
|
+
[ :pointer, :pointer, :pointer, :int, :uint32 ], :int
|
196
|
+
|
197
|
+
func :aapolygonRGBA,
|
198
|
+
[ :pointer, :pointer, :pointer, :int,
|
199
|
+
:uint8, :uint8, :uint8, :uint8 ], :int
|
200
|
+
|
201
|
+
func :filledPolygonColor,
|
202
|
+
[ :pointer, :pointer, :pointer, :int, :uint32 ], :int
|
203
|
+
|
204
|
+
func :filledPolygonRGBA,
|
205
|
+
[ :pointer, :pointer, :pointer, :int,
|
206
|
+
:uint8, :uint8, :uint8, :uint8 ], :int
|
207
|
+
|
208
|
+
optfunc :texturedPolygon,
|
209
|
+
[ :pointer, :pointer, :pointer,
|
210
|
+
:int, :pointer, :int, :int ], :int
|
211
|
+
|
212
|
+
|
213
|
+
optfunc :filledPolygonColorMT,
|
214
|
+
[ :pointer, :pointer, :pointer,
|
215
|
+
:int, :uint32, :pointer, :pointer ], :int
|
216
|
+
|
217
|
+
optfunc :filledPolygonRGBAMT,
|
218
|
+
[ :pointer, :pointer, :pointer, :int, :uint8,
|
219
|
+
:uint8, :uint8, :uint8, :pointer, :pointer ], :int
|
220
|
+
|
221
|
+
optfunc :texturedPolygonMT,
|
222
|
+
[ :pointer, :pointer, :pointer, :int,
|
223
|
+
:pointer, :int, :int, :pointer, :pointer ], :int
|
224
|
+
|
225
|
+
|
226
|
+
|
227
|
+
func :bezierColor,
|
228
|
+
[ :pointer, :pointer, :pointer, :int, :int, :uint32 ], :int
|
229
|
+
|
230
|
+
func :bezierRGBA,
|
231
|
+
[ :pointer, :pointer, :pointer, :int, :int,
|
232
|
+
:uint8, :uint8, :uint8, :uint8 ], :int
|
233
|
+
|
234
|
+
|
235
|
+
|
236
|
+
func :characterColor, [ :pointer, :int16, :int16, :char, :uint32 ], :int
|
237
|
+
|
238
|
+
func :characterRGBA,
|
239
|
+
[ :pointer, :int16, :int16, :char,
|
240
|
+
:uint8, :uint8, :uint8, :uint8 ], :int
|
241
|
+
|
242
|
+
func :stringColor, [ :pointer, :int16, :int16, :string, :uint32 ], :int
|
243
|
+
|
244
|
+
func :stringRGBA,
|
245
|
+
[ :pointer, :int16, :int16, :string,
|
246
|
+
:uint8, :uint8, :uint8, :uint8 ], :int
|
247
|
+
|
248
|
+
func :gfxPrimitivesSetFont, [ :pointer, :int, :int ], :void
|
249
|
+
|
250
|
+
end
|
251
|
+
end
|