rays 0.1.2 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
data/src/cocoa/bitmap.mm CHANGED
@@ -14,6 +14,9 @@ namespace Rays
14
14
  static CGBitmapInfo
15
15
  make_bitmapinfo (const ColorSpace& cs)
16
16
  {
17
+ // Q: What color spaces does CGBitmapContextCreate support?
18
+ // http://developer.apple.com/library/mac/#qa/qa1037/_index.html
19
+
17
20
  CGBitmapInfo info = 0;
18
21
 
19
22
  if (cs.is_alpha_first())
data/src/colorspace.cpp CHANGED
@@ -48,7 +48,7 @@ namespace Rays
48
48
  8, 8, 8, 8, 8, 8, 8, 8, 8, 8, // RGB(A), BGR(A)
49
49
  32, 32, 32, 32, 32, 32, // RGB(A), BGR(A) float
50
50
  };
51
- if (type_ < 0 || COLORSPACE_LAST <= type_) return BPPS[UNKNOWN];
51
+ if (type_ < 0 || COLORSPACE_LAST <= type_) return BPPS[COLORSPACE_UNKNOWN];
52
52
  return BPPS[type_];
53
53
  }
54
54
 
@@ -70,7 +70,7 @@ namespace Rays
70
70
  96, 128, 128, // RGB(A) float
71
71
  96, 128, 128, // BGR(A) float
72
72
  };
73
- if (type_ < 0 || COLORSPACE_LAST <= type_) return BPPS[UNKNOWN];
73
+ if (type_ < 0 || COLORSPACE_LAST <= type_) return BPPS[COLORSPACE_UNKNOWN];
74
74
  return BPPS[type_];
75
75
  }
76
76
 
data/src/exception.cpp ADDED
@@ -0,0 +1,49 @@
1
+ #include "rays/exception.h"
2
+
3
+
4
+ #define VA_STRING(format, result) \
5
+ String result; \
6
+ do \
7
+ { \
8
+ if (format) \
9
+ { \
10
+ va_list args; \
11
+ va_start(args, format); \
12
+ result = Xot::stringf(format, args); \
13
+ va_end(args); \
14
+ } \
15
+ } \
16
+ while (false)
17
+
18
+
19
+ namespace Rays
20
+ {
21
+
22
+
23
+ RaysException::RaysException (const char* format, ...)
24
+ : Super("")
25
+ {
26
+ VA_STRING(format, s);
27
+ text = s;
28
+ }
29
+
30
+ RaysException::~RaysException () throw()
31
+ {
32
+ }
33
+
34
+ const char*
35
+ RaysException::what () const throw()
36
+ {
37
+ return text.c_str();
38
+ }
39
+
40
+
41
+ void
42
+ error (const char* format, ...)
43
+ {
44
+ VA_STRING(format, s);
45
+ throw RaysException(s.c_str());
46
+ }
47
+
48
+
49
+ }// Rays
data/src/painter.cpp CHANGED
@@ -52,12 +52,12 @@ namespace Rays
52
52
 
53
53
  coord right () const
54
54
  {
55
- return x + width - 1;
55
+ return x + width;
56
56
  }
57
57
 
58
58
  coord bottom () const
59
59
  {
60
- return y + height - 1;
60
+ return y + height;
61
61
  }
62
62
 
63
63
  void set (coord x, coord y, coord width, coord height)
@@ -237,7 +237,7 @@ namespace Rays
237
237
  no_clip();
238
238
  clear();
239
239
 
240
- return push();
240
+ return push_matrix();
241
241
  }
242
242
 
243
243
  bool
@@ -245,7 +245,7 @@ namespace Rays
245
245
  {
246
246
  if (!self->painting) return false;
247
247
 
248
- pop();
248
+ pop_matrix();
249
249
 
250
250
  self->painting = false;
251
251
 
@@ -256,14 +256,14 @@ namespace Rays
256
256
  }
257
257
 
258
258
  bool
259
- Painter::push ()
259
+ Painter::push_matrix ()
260
260
  {
261
261
  glPushMatrix();
262
262
  return true;
263
263
  }
264
264
 
265
265
  bool
266
- Painter::pop ()
266
+ Painter::pop_matrix ()
267
267
  {
268
268
  glPopMatrix();
269
269
  return true;
data/src/texture.cpp CHANGED
@@ -1,7 +1,6 @@
1
1
  #include "rays/texture.h"
2
2
 
3
3
 
4
- #include <boost/scoped_array.hpp>
5
4
  #include <rays/bitmap.h>
6
5
 
7
6
 
@@ -195,11 +194,14 @@ namespace Rays
195
194
  if (src_offset >= (src_Bpp / src_Bpc))
196
195
  return false;
197
196
 
198
- for (int y = 0; y < dest->height(); ++y)
197
+ int width = std::min(src.width(), dest->width());
198
+ int height = std::min(src.height(), dest->height());
199
+
200
+ for (int y = 0; y < height; ++y)
199
201
  {
200
202
  const uchar* s = src. at<uchar>(0, y) + src_offset * src_Bpc;
201
203
  uchar* d = dest->at<uchar>(0, y);
202
- copy_pixels(src_Bpp, dest->width(), d, dest_Bpp, s, src_Bpp);
204
+ copy_pixels(src_Bpp, width, d, dest_Bpp, s, src_Bpp);
203
205
  }
204
206
 
205
207
  return true;
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: rays
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.1.2
5
+ version: 0.1.3
6
6
  platform: ruby
7
7
  authors:
8
8
  - snori
@@ -10,10 +10,10 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-08-29 00:00:00 Z
13
+ date: 2011-09-19 00:00:00 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
- name: rucy
16
+ name: xot
17
17
  prerelease: false
18
18
  requirement: &id001 !ruby/object:Gem::Requirement
19
19
  none: false
@@ -24,7 +24,7 @@ dependencies:
24
24
  type: :runtime
25
25
  version_requirements: *id001
26
26
  - !ruby/object:Gem::Dependency
27
- name: rake
27
+ name: rucy
28
28
  prerelease: false
29
29
  requirement: &id002 !ruby/object:Gem::Requirement
30
30
  none: false
@@ -32,10 +32,10 @@ dependencies:
32
32
  - - ">="
33
33
  - !ruby/object:Gem::Version
34
34
  version: "0"
35
- type: :development
35
+ type: :runtime
36
36
  version_requirements: *id002
37
37
  - !ruby/object:Gem::Dependency
38
- name: gemcutter
38
+ name: rake
39
39
  prerelease: false
40
40
  requirement: &id003 !ruby/object:Gem::Requirement
41
41
  none: false
@@ -45,6 +45,17 @@ dependencies:
45
45
  version: "0"
46
46
  type: :development
47
47
  version_requirements: *id003
48
+ - !ruby/object:Gem::Dependency
49
+ name: gemcutter
50
+ prerelease: false
51
+ requirement: &id004 !ruby/object:Gem::Requirement
52
+ none: false
53
+ requirements:
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ version: "0"
57
+ type: :development
58
+ version_requirements: *id004
48
59
  description: This library helps you to develop graphics application with OpenGL.
49
60
  email: snori@xord.org
50
61
  executables: []
@@ -53,19 +64,21 @@ extensions:
53
64
  - Rakefile
54
65
  extra_rdoc_files:
55
66
  - README
67
+ - .doc/ext/rays/bitmap.cpp
68
+ - .doc/ext/rays/font.cpp
69
+ - .doc/ext/rays/image.cpp
70
+ - .doc/ext/rays/native.cpp
71
+ - .doc/ext/rays/painter.cpp
72
+ - .doc/ext/rays/rays.cpp
73
+ - .doc/ext/rays/texture.cpp
56
74
  files:
57
- - ChangeLog
58
75
  - README
76
+ - ChangeLog
59
77
  - Rakefile
60
- - support.rb
61
78
  - rays.gemspec
62
79
  - VERSION
63
- - task/ext.rake
64
- - task/gem.rake
65
- - task/git.rake
66
- - task/lib.rake
67
80
  - ext/rays/extconf.rb
68
- - ext/rays/rays.h
81
+ - ext/rays/defs.h
69
82
  - ext/rays/bitmap.cpp
70
83
  - ext/rays/font.cpp
71
84
  - ext/rays/image.cpp
@@ -76,6 +89,7 @@ files:
76
89
  - include/rays/bitmap.h
77
90
  - include/rays/colorspace.h
78
91
  - include/rays/defs.h
92
+ - include/rays/exception.h
79
93
  - include/rays/font.h
80
94
  - include/rays/helpers.h
81
95
  - include/rays/image.h
@@ -102,6 +116,7 @@ files:
102
116
  - src/cocoa/helpers.h
103
117
  - src/win32/gdi.h
104
118
  - src/colorspace.cpp
119
+ - src/exception.cpp
105
120
  - src/helpers.cpp
106
121
  - src/image.cpp
107
122
  - src/painter.cpp
@@ -119,6 +134,13 @@ files:
119
134
  - test/test_painter.rb
120
135
  - test/test_rays.rb
121
136
  - test/test_texture.rb
137
+ - .doc/ext/rays/bitmap.cpp
138
+ - .doc/ext/rays/font.cpp
139
+ - .doc/ext/rays/image.cpp
140
+ - .doc/ext/rays/native.cpp
141
+ - .doc/ext/rays/painter.cpp
142
+ - .doc/ext/rays/rays.cpp
143
+ - .doc/ext/rays/texture.cpp
122
144
  homepage: http://github.com/xord/rays
123
145
  licenses: []
124
146
 
data/support.rb DELETED
@@ -1,54 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
-
3
-
4
- require 'erb'
5
- require 'pp'
6
-
7
-
8
- def glob (*patterns)
9
- paths = []
10
- patterns.each do |pattern|
11
- paths.concat Dir.glob(pattern)
12
- end
13
- paths
14
- end
15
-
16
- def erb (str)
17
- ERB.new(str, nil, "%").result binding
18
- end
19
-
20
- def compile (path, out)
21
- open(path) do |input|
22
- open(out, "w") do |output|
23
- output.write erb(input.read)
24
- end
25
- end
26
- #rescue
27
- end
28
-
29
- def convertions (paths, convs)
30
- raise "empty conversion." if convs.empty?
31
- paths = paths.map do |path|
32
- convpath = path
33
- convs.each do |from, to|
34
- convpath = convpath.sub(/#{from.gsub('.', '\.')}$/, to)
35
- end
36
- [path, convpath]
37
- end
38
- Hash[*paths.flatten]
39
- end
40
-
41
- alias sh_original sh
42
-
43
- def sh (*args)
44
- sh_original *args
45
- #rescue
46
- end
47
-
48
- def win32? ()
49
- RUBY_PLATFORM =~ /mswin|ming|cygwin/
50
- end
51
-
52
- def cocoa? ()
53
- RUBY_PLATFORM =~ /darwin/
54
- end
data/task/ext.rake DELETED
@@ -1,41 +0,0 @@
1
- # -*- mode: ruby; coding: utf-8 -*-
2
-
3
-
4
- require 'rucy/module'
5
-
6
-
7
- namespace :ext do
8
-
9
- dir = "#{EXTDIR}/#{NAME}"
10
- name = "#{NAME}/native"
11
- outname = "#{name}.#{EXTEXT}"
12
- out = File.join EXTDIR, outname
13
-
14
- extconf = File.join dir, "extconf.rb"
15
- makefile = File.join dir, "Makefile"
16
- depend = File.join dir, "depend"
17
-
18
- cpps = Dir.glob("#{dir}/**/*.cpp")
19
-
20
- task :build => makefile do
21
- sh %( cd #{dir} && #{MAKE} )
22
- end
23
-
24
- task :clean do
25
- sh %( cd #{dir} && #{MAKE} clean ) if File.exist? makefile
26
- sh %( rm -f #{makefile} #{depend} )
27
- end
28
-
29
- file makefile => [extconf, depend] do
30
- sh %( cd #{dir} && #{RUBY} #{File.basename extconf} )
31
- end
32
-
33
- file depend => ["lib:build"] + cpps do
34
- incdirs = INCDIRS + Rucy.include_dirs
35
- incdirs = incdirs.map{|s| " -I#{s}"}.join
36
- srcs = cpps.map{|cpp| File.basename cpp}.join ' '
37
- dep = File.basename depend
38
- sh %( cd #{dir} && #{CC} -M #{CFLAGS} #{incdirs} #{srcs} > #{dep} )
39
- end
40
-
41
- end# :ext
data/task/gem.rake DELETED
@@ -1,33 +0,0 @@
1
- # -*- mode: ruby; coding: utf-8 -*-
2
-
3
-
4
- namespace :gem do
5
-
6
- name = NAME
7
-
8
- gemspec = "#{name}.gemspec"
9
- gem = "#{name}-#{MODULE.version}.gem"
10
-
11
- task :build => gem
12
-
13
- task :install => gem do
14
- sh %( #{GEM} install #{gem} )
15
- end
16
-
17
- task :uninstall do
18
- sh %( #{GEM} uninstall #{name} )
19
- end
20
-
21
- task :clean do
22
- sh %( rm -f #{gem} )
23
- end
24
-
25
- task :upload => gem do
26
- sh %( #{GEM} push #{gem} )
27
- end
28
-
29
- file gem => "lib:build" do
30
- sh %( #{GEM} build #{gemspec} )
31
- end
32
-
33
- end# :gem
data/task/git.rake DELETED
@@ -1,22 +0,0 @@
1
- # -*- mode: ruby; coding: utf-8 -*-
2
-
3
-
4
- namespace :git do
5
-
6
- task :status do
7
- sh %( #{GIT} status )
8
- end
9
-
10
- task :diff do
11
- sh %( #{GIT} diff | cat )
12
- end
13
-
14
- task :push do
15
- sh %( #{GIT} push )
16
- end
17
-
18
- task :pull do
19
- sh %( #{GIT} pull )
20
- end
21
-
22
- end# :git
data/task/lib.rake DELETED
@@ -1,54 +0,0 @@
1
- # -*- mode: ruby; coding: utf-8 -*-
2
-
3
-
4
- require 'rake/loaders/makefile'
5
-
6
-
7
- namespace :lib do
8
-
9
- name = NAME
10
- outname = "lib#{name}.a"
11
- out = File.join LIBDIR, outname
12
-
13
- headers = glob("include/**/*.h")
14
- srcs = glob("src/**/*.cpp")
15
- srcs += glob("src/**/*.mm") if cocoa?
16
- srcs = srcs.reject {|s| s =~ %r(/win32/)} unless win32?
17
- srcs = srcs.reject {|s| s =~ %r(/cocoa/)} unless cocoa?
18
-
19
- depend = 'depend.mf'
20
- objs = convertions srcs, {".cpp" => ".o", ".mm" => ".o"}
21
- tmps = objs.values + [depend]
22
-
23
- cflags = CFLAGS.dup
24
- cflags << INCDIRS.map{|s| " -I#{s}"}.join
25
-
26
- task :build => out
27
-
28
- task :compile => objs.values
29
-
30
- task :clean do
31
- sh %( rm -rf #{tmps.join " "} #{out} )
32
- end
33
-
34
- file out => objs.values do
35
- sh %( #{AR} #{ARFLAGS} #{out} #{objs.values.join " "} )
36
- end
37
-
38
- file depend do
39
- sh %( #{CC} -M #{cflags} #{srcs.join ' '} > #{depend} )
40
- input = open(depend) {|f| f.read}
41
- open(depend, 'w') do |output|
42
- output << input.gsub(/\w+\.o/, SRCDIR + '/\0')
43
- end
44
- end
45
-
46
- import depend if File.exist? depend
47
-
48
- objs.each do |(src, obj)|
49
- file obj => [depend, src] do
50
- sh %( #{CC} -c #{cflags} -o #{obj} #{src} )
51
- end
52
- end
53
-
54
- end# :lib