rays 0.1.6 → 0.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.doc/ext/rays/bitmap.cpp +70 -233
- data/.doc/ext/rays/bounds.cpp +339 -57
- data/.doc/ext/rays/color.cpp +58 -48
- data/.doc/ext/rays/color_space.cpp +174 -0
- data/.doc/ext/rays/font.cpp +31 -53
- data/.doc/ext/rays/image.cpp +64 -67
- data/.doc/ext/rays/matrix.cpp +22 -50
- data/.doc/ext/rays/native.cpp +9 -2
- data/.doc/ext/rays/painter.cpp +276 -259
- data/.doc/ext/rays/point.cpp +186 -52
- data/.doc/ext/rays/rays.cpp +25 -20
- data/.doc/ext/rays/shader.cpp +61 -0
- data/.doc/ext/rays/texture.cpp +47 -59
- data/{README → README.md} +0 -0
- data/Rakefile +6 -5
- data/VERSION +1 -1
- data/ext/rays/bitmap.cpp +88 -248
- data/ext/rays/bounds.cpp +437 -141
- data/ext/rays/color.cpp +79 -69
- data/ext/rays/color_space.cpp +185 -0
- data/ext/rays/extconf.rb +14 -63
- data/ext/rays/font.cpp +44 -65
- data/ext/rays/image.cpp +82 -81
- data/ext/rays/matrix.cpp +32 -60
- data/ext/rays/native.cpp +9 -2
- data/ext/rays/painter.cpp +345 -321
- data/ext/rays/point.cpp +212 -69
- data/ext/rays/rays.cpp +29 -23
- data/ext/rays/shader.cpp +63 -0
- data/ext/rays/texture.cpp +64 -74
- data/include/rays/bitmap.h +21 -12
- data/include/rays/bounds.h +67 -9
- data/include/rays/color.h +23 -7
- data/include/rays/{colorspace.h → color_space.h} +6 -3
- data/include/rays/exception.h +17 -11
- data/include/rays/font.h +4 -3
- data/include/rays/image.h +11 -6
- data/include/rays/matrix.h +15 -12
- data/include/rays/opengl.h +54 -1
- data/include/rays/painter.h +98 -108
- data/include/rays/point.h +45 -5
- data/include/rays/rays.h +2 -2
- data/include/rays/ruby/bitmap.h +2 -16
- data/include/rays/ruby/bounds.h +4 -16
- data/include/rays/ruby/color.h +3 -16
- data/include/rays/ruby/color_space.h +27 -0
- data/include/rays/ruby/font.h +2 -16
- data/include/rays/ruby/image.h +2 -16
- data/include/rays/ruby/matrix.h +2 -16
- data/include/rays/ruby/painter.h +2 -16
- data/include/rays/ruby/point.h +3 -16
- data/include/rays/ruby/shader.h +27 -0
- data/include/rays/ruby/texture.h +2 -16
- data/include/rays/ruby.h +1 -0
- data/include/rays/shader.h +48 -0
- data/include/rays/texture.h +13 -2
- data/include/rays.h +2 -1
- data/lib/rays/bitmap.rb +20 -11
- data/lib/rays/bounds.rb +29 -68
- data/lib/rays/color.rb +39 -0
- data/lib/rays/color_space.rb +33 -0
- data/lib/rays/font.rb +29 -0
- data/lib/rays/image.rb +22 -0
- data/lib/rays/module.rb +11 -7
- data/lib/rays/painter.rb +103 -40
- data/lib/rays/point.rb +19 -36
- data/lib/rays/shader.rb +13 -0
- data/lib/rays/texture.rb +9 -0
- data/lib/rays.rb +4 -0
- data/rays.gemspec +3 -4
- data/src/bounds.cpp +272 -63
- data/src/color.cpp +168 -21
- data/src/{colorspace.cpp → color_space.cpp} +38 -1
- data/src/exception.cpp +24 -15
- data/src/frame_buffer.cpp +275 -0
- data/src/frame_buffer.h +79 -0
- data/src/image.cpp +80 -36
- data/src/ios/bitmap.mm +340 -0
- data/src/ios/font.mm +206 -0
- data/src/{cocoa → ios}/helper.h +2 -2
- data/src/{cocoa → ios}/helper.mm +0 -0
- data/src/ios/opengl.mm +21 -0
- data/src/ios/program.cpp +122 -0
- data/src/{cocoa → ios}/rays.mm +8 -7
- data/src/matrix.cpp +10 -22
- data/src/opengl.cpp +64 -0
- data/src/{cocoa → osx}/bitmap.mm +121 -70
- data/src/{cocoa → osx}/font.mm +32 -24
- data/src/osx/helper.h +26 -0
- data/src/osx/helper.mm +25 -0
- data/src/osx/opengl.mm +103 -0
- data/src/osx/rays.mm +43 -0
- data/src/painter.cpp +596 -422
- data/src/point.cpp +154 -11
- data/src/program.cpp +513 -0
- data/src/program.h +73 -0
- data/src/render_buffer.cpp +120 -0
- data/src/render_buffer.h +47 -0
- data/src/shader.cpp +117 -0
- data/src/texture.cpp +104 -134
- data/test/helper.rb +10 -3
- data/test/test_bitmap.rb +18 -0
- data/test/test_bounds.rb +81 -35
- data/test/test_color.rb +29 -2
- data/test/test_image.rb +63 -0
- data/test/test_painter.rb +120 -0
- data/test/test_point.rb +30 -9
- data/test/test_shader.rb +37 -0
- data/test/test_texture.rb +18 -0
- metadata +75 -58
- data/.gitignore +0 -14
- data/ChangeLog +0 -8
data/include/rays/ruby/point.h
CHANGED
@@ -6,6 +6,8 @@
|
|
6
6
|
|
7
7
|
#include <rucy/rucy.h>
|
8
8
|
#include <rucy/class.h>
|
9
|
+
#include <rucy/extension.h>
|
10
|
+
#include <rucy/exception.h>
|
9
11
|
#include <rays/point.h>
|
10
12
|
|
11
13
|
|
@@ -20,22 +22,7 @@ namespace Rays
|
|
20
22
|
}// Rays
|
21
23
|
|
22
24
|
|
23
|
-
|
24
|
-
{
|
25
|
-
|
26
|
-
|
27
|
-
Value value (const Rays::Point& obj);
|
28
|
-
|
29
|
-
Value value (const Rays::Point* obj);
|
30
|
-
|
31
|
-
template <> inline Rays::Point*
|
32
|
-
value_to<Rays::Point*> (Value val, bool)
|
33
|
-
{
|
34
|
-
return get_type_ptr<Rays::Point>(val, Rays::point_class());
|
35
|
-
}
|
36
|
-
|
37
|
-
|
38
|
-
}// Rucy
|
25
|
+
RUCY_DECLARE_VALUE_FROM_TO(Rays::Point)
|
39
26
|
|
40
27
|
|
41
28
|
#endif//EOH
|
@@ -0,0 +1,27 @@
|
|
1
|
+
// -*- c++ -*-
|
2
|
+
#pragma once
|
3
|
+
#ifndef __RAYS_RUBY_SHADER_H__
|
4
|
+
#define __RAYS_RUBY_SHADER_H__
|
5
|
+
|
6
|
+
|
7
|
+
#include <rucy/rucy.h>
|
8
|
+
#include <rucy/class.h>
|
9
|
+
#include <rucy/extension.h>
|
10
|
+
#include <rays/shader.h>
|
11
|
+
|
12
|
+
|
13
|
+
namespace Rays
|
14
|
+
{
|
15
|
+
|
16
|
+
|
17
|
+
Rucy::Class shader_class ();
|
18
|
+
// class Rays::Shader
|
19
|
+
|
20
|
+
|
21
|
+
}// Rays
|
22
|
+
|
23
|
+
|
24
|
+
RUCY_DECLARE_VALUE_FROM_TO(Rays::Shader)
|
25
|
+
|
26
|
+
|
27
|
+
#endif//EOH
|
data/include/rays/ruby/texture.h
CHANGED
@@ -6,6 +6,7 @@
|
|
6
6
|
|
7
7
|
#include <rucy/rucy.h>
|
8
8
|
#include <rucy/class.h>
|
9
|
+
#include <rucy/extension.h>
|
9
10
|
#include <rays/texture.h>
|
10
11
|
|
11
12
|
|
@@ -20,22 +21,7 @@ namespace Rays
|
|
20
21
|
}// Rays
|
21
22
|
|
22
23
|
|
23
|
-
|
24
|
-
{
|
25
|
-
|
26
|
-
|
27
|
-
Value value (const Rays::Texture& obj);
|
28
|
-
|
29
|
-
Value value (const Rays::Texture* obj);
|
30
|
-
|
31
|
-
template <> inline Rays::Texture*
|
32
|
-
value_to<Rays::Texture*> (Value val, bool)
|
33
|
-
{
|
34
|
-
return get_type_ptr<Rays::Texture>(val, Rays::texture_class());
|
35
|
-
}
|
36
|
-
|
37
|
-
|
38
|
-
}// Rucy
|
24
|
+
RUCY_DECLARE_VALUE_FROM_TO(Rays::Texture)
|
39
25
|
|
40
26
|
|
41
27
|
#endif//EOH
|
data/include/rays/ruby.h
CHANGED
@@ -0,0 +1,48 @@
|
|
1
|
+
// -*- c++ -*-
|
2
|
+
#pragma once
|
3
|
+
#ifndef __RAYS_SHADER_H__
|
4
|
+
#define __RAYS_SHADER_H__
|
5
|
+
|
6
|
+
|
7
|
+
#include <xot/pimpl.h>
|
8
|
+
#include "rays/opengl.h"
|
9
|
+
|
10
|
+
|
11
|
+
namespace Rays
|
12
|
+
{
|
13
|
+
|
14
|
+
|
15
|
+
class Shader
|
16
|
+
{
|
17
|
+
|
18
|
+
typedef Shader This;
|
19
|
+
|
20
|
+
public:
|
21
|
+
|
22
|
+
Shader ();
|
23
|
+
|
24
|
+
Shader (const char* source);
|
25
|
+
|
26
|
+
~Shader ();
|
27
|
+
|
28
|
+
GLuint id () const;
|
29
|
+
|
30
|
+
bool operator == (const Shader& rhs) const;
|
31
|
+
|
32
|
+
bool operator != (const Shader& rhs) const;
|
33
|
+
|
34
|
+
operator bool () const;
|
35
|
+
|
36
|
+
bool operator ! () const;
|
37
|
+
|
38
|
+
struct Data;
|
39
|
+
|
40
|
+
Xot::PImpl<Data, true> self;
|
41
|
+
|
42
|
+
};// Shader
|
43
|
+
|
44
|
+
|
45
|
+
}// Rays
|
46
|
+
|
47
|
+
|
48
|
+
#endif//EOH
|
data/include/rays/texture.h
CHANGED
@@ -6,6 +6,7 @@
|
|
6
6
|
|
7
7
|
#include <xot/pimpl.h>
|
8
8
|
#include <rays/defs.h>
|
9
|
+
#include <rays/color_space.h>
|
9
10
|
#include <rays/opengl.h>
|
10
11
|
|
11
12
|
|
@@ -23,7 +24,11 @@ namespace Rays
|
|
23
24
|
|
24
25
|
Texture ();
|
25
26
|
|
26
|
-
Texture (
|
27
|
+
Texture (
|
28
|
+
int width, int height, const ColorSpace& cs = RGBA,
|
29
|
+
bool alpha_only = false);
|
30
|
+
|
31
|
+
Texture (const Bitmap& bitmap, bool alpha_only = false);
|
27
32
|
|
28
33
|
~Texture ();
|
29
34
|
|
@@ -33,6 +38,10 @@ namespace Rays
|
|
33
38
|
|
34
39
|
int height () const;
|
35
40
|
|
41
|
+
const ColorSpace& color_space () const;
|
42
|
+
|
43
|
+
bool alpha_only () const;
|
44
|
+
|
36
45
|
float s (float x) const;
|
37
46
|
|
38
47
|
float t (float y) const;
|
@@ -41,7 +50,9 @@ namespace Rays
|
|
41
50
|
|
42
51
|
float t_max () const;
|
43
52
|
|
44
|
-
|
53
|
+
bool dirty () const;
|
54
|
+
|
55
|
+
void set_dirty (bool b = true);
|
45
56
|
|
46
57
|
operator bool () const;
|
47
58
|
|
data/include/rays.h
CHANGED
@@ -8,11 +8,12 @@
|
|
8
8
|
#include <rays/rays.h>
|
9
9
|
#include <rays/exception.h>
|
10
10
|
#include <rays/point.h>
|
11
|
-
#include <rays/
|
11
|
+
#include <rays/color_space.h>
|
12
12
|
#include <rays/bitmap.h>
|
13
13
|
#include <rays/texture.h>
|
14
14
|
#include <rays/image.h>
|
15
15
|
#include <rays/font.h>
|
16
|
+
#include <rays/shader.h>
|
16
17
|
#include <rays/painter.h>
|
17
18
|
#include <rays/opengl.h>
|
18
19
|
|
data/lib/rays/bitmap.rb
CHANGED
@@ -2,6 +2,7 @@
|
|
2
2
|
|
3
3
|
|
4
4
|
require 'rays/ext'
|
5
|
+
require 'rays/color_space'
|
5
6
|
|
6
7
|
|
7
8
|
module Rays
|
@@ -11,26 +12,34 @@ module Rays
|
|
11
12
|
|
12
13
|
include Enumerable
|
13
14
|
|
14
|
-
def initialize (width, height,
|
15
|
-
|
16
|
-
when :GRAY then GRAY
|
17
|
-
when :RGB then RGB
|
18
|
-
when :RGBA then RGBA
|
19
|
-
else colorspace
|
20
|
-
end
|
21
|
-
setup width, height, colorspace
|
15
|
+
def initialize (width, height, color_space = :RGBA)
|
16
|
+
setup width, height, ColorSpace.get_color_space(color_space)
|
22
17
|
end
|
23
18
|
|
24
19
|
def each ()
|
25
20
|
height.times do |y|
|
26
21
|
width.times do |x|
|
27
|
-
yield x, y,
|
22
|
+
yield self[x, y], x, y
|
28
23
|
end
|
29
24
|
end
|
30
25
|
end
|
31
26
|
|
32
|
-
def
|
33
|
-
|
27
|
+
def bounds ()
|
28
|
+
Bounds.new 0, 0, width, height
|
29
|
+
end
|
30
|
+
|
31
|
+
def to_a ()
|
32
|
+
map {|o| o}
|
33
|
+
end
|
34
|
+
|
35
|
+
def []= (x, y, *args)
|
36
|
+
args.flatten!
|
37
|
+
case args[0]
|
38
|
+
when Color
|
39
|
+
set_at x, y, args[0]
|
40
|
+
when Numeric
|
41
|
+
set_at x, y, *args
|
42
|
+
end
|
34
43
|
end
|
35
44
|
|
36
45
|
end# Bitmap
|
data/lib/rays/bounds.rb
CHANGED
@@ -21,79 +21,60 @@ module Rays
|
|
21
21
|
alias d depth
|
22
22
|
alias d= depth=
|
23
23
|
|
24
|
+
def position= (*args)
|
25
|
+
set_position *Point.from(*args).to_a(3)
|
26
|
+
end
|
27
|
+
|
24
28
|
alias pos position
|
25
29
|
alias pos= position=
|
26
30
|
|
27
|
-
def
|
28
|
-
|
29
|
-
when 1 then self.x = self.y = args[0]
|
30
|
-
when 2 then self.x, self.y = args
|
31
|
-
when 3 then self.x, self.y, self.z = args
|
32
|
-
else raise ArgumentError
|
33
|
-
end
|
34
|
-
self
|
31
|
+
def size= (*args)
|
32
|
+
set_size *Point.from(*args).to_a(3)
|
35
33
|
end
|
36
34
|
|
37
|
-
def
|
38
|
-
|
35
|
+
def center= (*args)
|
36
|
+
set_center *Point.from(*args).to_a(3)
|
39
37
|
end
|
40
38
|
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
39
|
+
alias left_top position
|
40
|
+
def right_top () position.move_by w - 1, 0 end
|
41
|
+
def left_bottom () position.move_by 0, h - 1 end
|
42
|
+
def right_bottom () (position + size).move_by! -1, -1 end
|
43
|
+
|
44
|
+
def left_top= (*args) p = Point.from *args; self.left, self.top = p.x, p.y; left_top end
|
45
|
+
def right_top= (*args) p = Point.from *args; self.right, self.top = p.x, p.y; right_top end
|
46
|
+
def left_bottom= (*args) p = Point.from *args; self.left, self.bottom = p.x, p.y; left_bottom end
|
47
|
+
def right_bottom= (*args) p = Point.from *args; self.right, self.bottom = p.x, p.y; right_bottom end
|
48
|
+
|
49
|
+
alias lt left_top
|
50
|
+
alias lt= left_top=
|
51
|
+
alias rt right_top
|
52
|
+
alias rt= right_top=
|
53
|
+
alias lb left_bottom
|
54
|
+
alias lb= left_bottom=
|
55
|
+
alias rb right_bottom
|
56
|
+
alias rb= right_bottom=
|
57
|
+
|
58
|
+
def move_to (*args)
|
59
|
+
dup.move_to! *args
|
49
60
|
end
|
50
61
|
|
51
62
|
def move_by (*args)
|
52
63
|
dup.move_by! *args
|
53
64
|
end
|
54
65
|
|
55
|
-
def resize_to! (*args)
|
56
|
-
case args.size
|
57
|
-
when 1 then self.w = self.h = args[0]
|
58
|
-
when 2 then self.w, self.h = args
|
59
|
-
when 3 then self.w, self.h, self.d = args
|
60
|
-
else raise ArgumentError
|
61
|
-
end
|
62
|
-
self
|
63
|
-
end
|
64
|
-
|
65
66
|
def resize_to (*args)
|
66
67
|
dup.resize_to! *args
|
67
68
|
end
|
68
69
|
|
69
|
-
def resize_by! (*args)
|
70
|
-
case args.size
|
71
|
-
when 1 then self.w += args[0]; self.h += args[0]
|
72
|
-
when 2 then self.w += args[0]; self.h += args[1]
|
73
|
-
when 3 then self.w += args[0]; self.h += args[1]; self.d += args[2]
|
74
|
-
else raise ArgumentError
|
75
|
-
end
|
76
|
-
self
|
77
|
-
end
|
78
|
-
|
79
70
|
def resize_by (*args)
|
80
71
|
dup.resize_by! *args
|
81
72
|
end
|
82
73
|
|
83
|
-
def inset_by! (*args)
|
84
|
-
move_by! *args
|
85
|
-
resize_by! *args.map {|n| -n * 2}
|
86
|
-
self
|
87
|
-
end
|
88
|
-
|
89
74
|
def inset_by (*args)
|
90
75
|
dup.inset_by! *args
|
91
76
|
end
|
92
77
|
|
93
|
-
def center ()
|
94
|
-
Point.new (x + w / 2).round, (y + h / 2).round
|
95
|
-
end
|
96
|
-
|
97
78
|
def to_a (dimension = 2)
|
98
79
|
case dimension
|
99
80
|
when 1 then [x, w]
|
@@ -103,22 +84,6 @@ module Rays
|
|
103
84
|
end
|
104
85
|
end
|
105
86
|
|
106
|
-
def [] (index)
|
107
|
-
case index
|
108
|
-
when 0 then Point.new(left, top, back)
|
109
|
-
when 1 then Point.new(right, bottom, front)
|
110
|
-
else raise IndexError
|
111
|
-
end
|
112
|
-
end
|
113
|
-
|
114
|
-
def []= (index, point)
|
115
|
-
case index
|
116
|
-
when 0 then self.left, self.top, self.back = point.to_a(3)
|
117
|
-
when 1 then self.right, self.bottom, self.front = point.to_a(3)
|
118
|
-
else raise IndexError
|
119
|
-
end
|
120
|
-
end
|
121
|
-
|
122
87
|
def <=> (o)
|
123
88
|
ret = x <=> o.x; return ret if ret != 0
|
124
89
|
ret = y <=> o.y; return ret if ret != 0
|
@@ -128,10 +93,6 @@ module Rays
|
|
128
93
|
d <=> o.d
|
129
94
|
end
|
130
95
|
|
131
|
-
def inspect ()
|
132
|
-
"#<Rays::Bounds x=#{x}, y=#{y}, z=#{z}, width=#{w}, height=#{h}, depth=#{d}>"
|
133
|
-
end
|
134
|
-
|
135
96
|
end# Bounds
|
136
97
|
|
137
98
|
|
data/lib/rays/color.rb
CHANGED
@@ -11,6 +11,29 @@ module Rays
|
|
11
11
|
|
12
12
|
include Comparable
|
13
13
|
|
14
|
+
def self.parse (str)
|
15
|
+
Color.new str
|
16
|
+
end
|
17
|
+
|
18
|
+
def initialize (*args)
|
19
|
+
arg0 = args[0]
|
20
|
+
args = parse arg0 if arg0 && arg0.kind_of?(String)
|
21
|
+
setup *args
|
22
|
+
end
|
23
|
+
|
24
|
+
def opaque? ()
|
25
|
+
alpha >= 1
|
26
|
+
end
|
27
|
+
|
28
|
+
def transparent? ()
|
29
|
+
alpha <= 0
|
30
|
+
end
|
31
|
+
|
32
|
+
def translucent? ()
|
33
|
+
a = alpha
|
34
|
+
0 < a && a < 1
|
35
|
+
end
|
36
|
+
|
14
37
|
def to_a ()
|
15
38
|
[red, green, blue, alpha]
|
16
39
|
end
|
@@ -42,10 +65,26 @@ module Rays
|
|
42
65
|
alpha <=> o.alpha
|
43
66
|
end
|
44
67
|
|
68
|
+
def eql? (o)
|
69
|
+
self == o
|
70
|
+
end
|
71
|
+
|
45
72
|
def inspect ()
|
46
73
|
"#<Rays::Color r=#{red}, g=#{green}, b=#{blue}, a=#{alpha}>"
|
47
74
|
end
|
48
75
|
|
76
|
+
private
|
77
|
+
|
78
|
+
def parse (str)
|
79
|
+
case str
|
80
|
+
when /^\s*##{'([\da-fA-F]{1})' * 4}?\s*$/
|
81
|
+
[$1, $2, $3, $4 || 'f' ].map {|s| s.to_i(16) / 15.0}
|
82
|
+
when /^\s*##{'([\da-fA-F]{2})' * 4}?\s*$/
|
83
|
+
[$1, $2, $3, $4 || 'ff'].map {|s| s.to_i(16) / 255.0}
|
84
|
+
else raise ArgumentError, "can not parse '#{str}'."
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
49
88
|
end# Color
|
50
89
|
|
51
90
|
|
@@ -0,0 +1,33 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
|
3
|
+
|
4
|
+
require 'rays/ext'
|
5
|
+
|
6
|
+
|
7
|
+
module Rays
|
8
|
+
|
9
|
+
|
10
|
+
class ColorSpace
|
11
|
+
|
12
|
+
def initialize (type = :RGBA, premultiplied = true)
|
13
|
+
setup self.class.get_type(type), premultiplied
|
14
|
+
end
|
15
|
+
|
16
|
+
def self.get_type (obj)
|
17
|
+
case obj
|
18
|
+
when Integer then obj
|
19
|
+
when String, Symbol then const_get obj
|
20
|
+
else raise ArgumentError, "can not convert '#{obj}' to ColorSpace type."
|
21
|
+
end
|
22
|
+
rescue NameError
|
23
|
+
raise "ColoeSpace::#{obj} is not found."
|
24
|
+
end
|
25
|
+
|
26
|
+
def self.get_color_space (obj)
|
27
|
+
(ColorSpace === obj) ? obj : (ColorSpace.new get_type(obj))
|
28
|
+
end
|
29
|
+
|
30
|
+
end# ColorSpace
|
31
|
+
|
32
|
+
|
33
|
+
end# Rays
|
data/lib/rays/font.rb
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
|
3
|
+
|
4
|
+
require 'rays/ext'
|
5
|
+
|
6
|
+
|
7
|
+
module Rays
|
8
|
+
|
9
|
+
|
10
|
+
class Font
|
11
|
+
|
12
|
+
include Comparable
|
13
|
+
|
14
|
+
alias w width
|
15
|
+
alias h height
|
16
|
+
|
17
|
+
def <=> (o)
|
18
|
+
ret = name <=> o.name; return ret if ret != 0
|
19
|
+
size <=> o.size
|
20
|
+
end
|
21
|
+
|
22
|
+
def inspect ()
|
23
|
+
"#<Rays::Font name=#{name}, size=#{size}>"
|
24
|
+
end
|
25
|
+
|
26
|
+
end# Font
|
27
|
+
|
28
|
+
|
29
|
+
end# Rays
|
data/lib/rays/image.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
2
|
|
3
3
|
|
4
|
+
require 'forwardable'
|
4
5
|
require 'rays/ext'
|
5
6
|
|
6
7
|
|
@@ -9,6 +10,27 @@ module Rays
|
|
9
10
|
|
10
11
|
class Image
|
11
12
|
|
13
|
+
extend Forwardable
|
14
|
+
|
15
|
+
def_delegators :bitmap, :draw_string, :[], :[]=
|
16
|
+
|
17
|
+
def paint (&block)
|
18
|
+
painter.begin self, &block
|
19
|
+
self
|
20
|
+
end
|
21
|
+
|
22
|
+
def size ()
|
23
|
+
return width, height
|
24
|
+
end
|
25
|
+
|
26
|
+
def bounds ()
|
27
|
+
Bounds.new 0, 0, *size
|
28
|
+
end
|
29
|
+
|
30
|
+
def self.load (path, alpha_only = false)
|
31
|
+
load_image path, alpha_only
|
32
|
+
end
|
33
|
+
|
12
34
|
end# Image
|
13
35
|
|
14
36
|
|
data/lib/rays/module.rb
CHANGED
@@ -4,7 +4,11 @@
|
|
4
4
|
module Rays
|
5
5
|
|
6
6
|
|
7
|
-
|
7
|
+
module Module
|
8
|
+
|
9
|
+
def name ()
|
10
|
+
super.split('::')[-2]
|
11
|
+
end
|
8
12
|
|
9
13
|
def version ()
|
10
14
|
open(root_dir 'VERSION') {|f| f.readline.chomp}
|
@@ -14,12 +18,12 @@ module Rays
|
|
14
18
|
File.expand_path "../../../#{path}", __FILE__
|
15
19
|
end
|
16
20
|
|
17
|
-
def
|
18
|
-
|
21
|
+
def include_dir ()
|
22
|
+
root_dir 'include'
|
19
23
|
end
|
20
24
|
|
21
|
-
def
|
22
|
-
|
25
|
+
def lib_dir ()
|
26
|
+
root_dir 'lib'
|
23
27
|
end
|
24
28
|
|
25
29
|
def task_dir ()
|
@@ -37,9 +41,9 @@ module Rays
|
|
37
41
|
end
|
38
42
|
end
|
39
43
|
|
40
|
-
self
|
44
|
+
extend self
|
41
45
|
|
42
|
-
end#
|
46
|
+
end# Module
|
43
47
|
|
44
48
|
|
45
49
|
end# Rays
|