rays 0.1.6 → 0.1.7
Sign up to get free protection for your applications and to get access to all the features.
- 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
|