texplay 0.2.4 → 0.2.5

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG CHANGED
@@ -1,3 +1,9 @@
1
+ 6/10/09
2
+ version 0.2.5
3
+ * fixed quad_draw flicker bug
4
+ * added splice_and_scale (to texplay-contrib.rb)
5
+ * now using rake-compiler to run build process
6
+
1
7
  15/9/09
2
8
  version 0.2.4
3
9
  * added lsystem
data/README.markdown CHANGED
@@ -5,7 +5,7 @@
5
5
  INSTRUCTIONS
6
6
  ============
7
7
 
8
- **TexPlay version 0.2.4**
8
+ **TexPlay version 0.2.5**
9
9
 
10
10
  Gem installation:
11
11
 
@@ -13,11 +13,11 @@ Gem installation:
13
13
 
14
14
  To compile TexPlay from source, ensure you are in the directory with the Rakefile and type:
15
15
 
16
- + rake
16
+ + rake compile
17
17
 
18
18
  OR
19
19
 
20
- + rake19 (assuming this is the name of your 1.9.1 version of rake)
20
+ + rake19 compile (assuming this is the name of your 1.9.1 version of rake)
21
21
 
22
22
  **NB:** be sure to run the version of rake that corresponds to the ruby version you wish to use! on my system I use rake19 for ruby 1.9.1!
23
23
 
data/Rakefile CHANGED
@@ -1,87 +1,62 @@
1
1
  require 'rake/clean'
2
2
  require 'rake/gempackagetask'
3
+ require 'rake/extensiontask'
3
4
 
4
- TEXPLAY_VERSION = "0.2.4"
5
+ TEXPLAY_VERSION = "0.2.5"
5
6
 
6
7
  $dlext = Config::CONFIG['DLEXT']
7
8
 
8
- CLEAN.include("src/*.#{$dlext}", "src/*.log", "src/*.o", "src/*~", "src/*#*", "src/*.obj", "src/*.def", "src/*.pdb")
9
+ CLEAN.include("ext/**/*.#{$dlext}", "ext/**/*.log", "ext/**/*.o", "ext/**/*~", "ext/**/*#*", "ext/**/*.obj", "ext/**/*.def", "ext/**/*.pdb")
9
10
  CLOBBER.include("**/*.#{$dlext}", "**/*~", "**/*#*", "**/*.log", "**/*.o")
10
11
 
11
- $make_program = if RUBY_PLATFORM =~ /win/
12
- "nmake"
13
- else
14
- "make"
15
- end
16
-
17
- task :default => [:build]
18
-
19
- desc "Build TexPlay"
20
- task :build => :clean do
21
- puts "(2) building Makefile..."
22
- chdir("./src/") do
23
- ruby "extconf.rb"
24
- puts "(3) building ctexplay.#{$dlext}..."
25
- sh "#{$make_program}"
26
- puts "(4) copying ctexplay.#{$dlext} to current directory..."
27
- cp "ctexplay.#{$dlext}", "../lib" , :verbose => true
28
-
29
- if RUBY_PLATFORM =~ /mswin/
30
- if RUBY_VERSION =~ /1.9/
31
- File.rename("../lib/ctexplay.#{$dlext}", "../lib/ctexplay.19.#{$dlext}")
32
- else
33
- File.rename("../lib/ctexplay.#{$dlext}", "../lib/ctexplay.18.#{$dlext}")
34
- end
35
- end
36
- puts "(5) ...done!"
37
- end
38
- end
39
-
40
12
  specification = Gem::Specification.new do |s|
41
13
  s.name = "texplay"
42
14
  s.summary = "TexPlay is a light-weight image manipulation framework for Ruby and Gosu"
43
15
  s.version = TEXPLAY_VERSION
44
- s.date = "2009-09-09"
16
+ s.date = Time.now.strftime '%Y-%m-%d'
45
17
  s.author = "John Mair (banisterfiend)"
46
18
  s.email = 'jrmair@gmail.com'
47
19
  s.description = s.summary
48
20
  s.require_path = 'lib'
49
21
  s.add_dependency("gosu",">=0.7.14")
22
+ s.platform = Gem::Platform::RUBY
23
+ s.extensions = ["ext/texplay/extconf.rb"]
50
24
  s.homepage = "http://banisterfiend.wordpress.com/2008/08/23/texplay-an-image-manipulation-tool-for-ruby-and-gosu/"
51
25
  s.has_rdoc = false
52
26
  s.files = ["Rakefile", "README.markdown", "CHANGELOG",
53
27
  "lib/texplay.rb", "lib/texplay-contrib.rb"] +
54
- FileList["src/*", "examples/*.rb", "examples/media/*"].to_a
28
+ FileList["ext/**/extconf.rb", "ext/**/*.h", "ext/**/*.c", "examples/*.rb",
29
+ "examples/media/*"].to_a
30
+
55
31
 
56
- if RUBY_PLATFORM =~ /mswin/
57
- s.platform = Gem::Platform::CURRENT
58
- s.files += ["lib/ctexplay.18.so", "lib/ctexplay.19.so"]
59
-
60
- else
61
- s.platform = Gem::Platform::RUBY
62
- s.extensions = ["src/extconf.rb"]
63
- end
64
32
  end
33
+
65
34
  Rake::GemPackageTask.new(specification) do |package|
66
35
  package.need_zip = false
67
36
  package.need_tar = false
68
37
  end
69
38
 
70
- SELENE = '/home/john/ruby/projects/selene'
71
- desc "update selene's version of texplay"
72
- task :selene => ["#{SELENE}/lib/texplay.rb", "#{SELENE}/lib/texplay-contrib.rb",
73
- "#{SELENE}/lib/ctexplay.so"] do
74
- puts "...done!"
39
+ Rake::ExtensionTask.new('texplay', specification) do |ext|
40
+ ext.config_script = 'extconf.rb'
41
+ ext.cross_compile = true
42
+ ext.cross_platform = 'i386-mswin32'
75
43
  end
76
44
 
77
- file "#{SELENE}/lib/texplay.rb" => "texplay.rb" do |t|
78
- cp t.prerequisites.first, t.name, :verbose => true
79
- end
45
+ # SELENE = '/home/john/ruby/projects/selene'
46
+ # desc "update selene's version of texplay"
47
+ # task :selene => ["#{SELENE}/lib/texplay.rb", "#{SELENE}/lib/texplay-contrib.rb",
48
+ # "#{SELENE}/lib/ctexplay.so"] do
49
+ # puts "...done!"
50
+ # end
80
51
 
81
- file "#{SELENE}/lib/texplay-contrib.rb" => "texplay-contrib.rb" do |t|
82
- cp t.prerequisites.first, t.name, :verbose => true
83
- end
52
+ # file "#{SELENE}/lib/texplay.rb" => "texplay.rb" do |t|
53
+ # cp t.prerequisites.first, t.name, :verbose => true
54
+ # end
84
55
 
85
- file "#{SELENE}/lib/ctexplay.#{$dlext}" => "ctexplay.#{$dlext}" do |t|
86
- cp t.prerequisites.first, t.name, :verbose => true
87
- end
56
+ # file "#{SELENE}/lib/texplay-contrib.rb" => "texplay-contrib.rb" do |t|
57
+ # cp t.prerequisites.first, t.name, :verbose => true
58
+ # end
59
+
60
+ # file "#{SELENE}/lib/ctexplay.#{$dlext}" => "ctexplay.#{$dlext}" do |t|
61
+ # cp t.prerequisites.first, t.name, :verbose => true
62
+ # end
@@ -15,7 +15,7 @@ class W < Gosu::Window
15
15
 
16
16
  # NOTE: TexPlay also accepts points. a 'point' is any object that responds to 'x' or 'y'
17
17
  # NOTE: current maximum points for a bezier is 13
18
- (0..@img.width + 100).step(50) { |x|
18
+ (0..@img.width + 100).step(40) { |x|
19
19
  p = TexPlay::TPPoint.new
20
20
  p.x = x
21
21
  p.y = @img.height * rand
@@ -0,0 +1,59 @@
1
+ require 'rubygems'
2
+ require 'common'
3
+ require 'gosu'
4
+ require 'texplay'
5
+
6
+
7
+ class W < Gosu::Window
8
+ def initialize
9
+ super(1024, 768, false, 20)
10
+ @img = Gosu::Image.new(self, "#{Common::MEDIA}/logo.png")
11
+ #@img.rect 0,0, @img.width - 1, @img.height - 1
12
+ @img2 = TexPlay::create_blank_image(self, @img.width, @img.height)
13
+ @img2.rect 0,0, 1000, 100, :fill => true
14
+
15
+ TexPlay::create_macro(:blur) do |*options|
16
+ options = options.first ? options.first : {}
17
+
18
+ radius = options[:blur_radius] || 1
19
+
20
+ self.each(options) { |c,x,y|
21
+ total = [0, 0, 0, 0]
22
+ for ky in (-radius..radius)
23
+ for kx in (-radius..radius)
24
+ v = get_pixel(x + kx, y + ky);
25
+ if v
26
+ total[0] += v[0]
27
+ total[1] += v[1]
28
+ total[2] += v[2]
29
+ total[3] += v[3]
30
+ end
31
+ end
32
+ end
33
+
34
+ c[0] = total[0] / (radius * 2 + 1) ** 2
35
+ c[1] = total[1] / (radius * 2 + 1) ** 2
36
+ c[2] = total[2] / (radius * 2 + 1) ** 2
37
+ c[3] = total[3] / (radius * 2 + 1) ** 2
38
+ }
39
+
40
+ self
41
+ end
42
+
43
+ @img.blur :blur_radius => 4, :region => [0, 0, @img.width/2, @img.height]
44
+ end
45
+
46
+ def draw
47
+ x = @img.width * rand
48
+ y = @img.height * rand
49
+
50
+ @img2.draw 100, 50,1
51
+ @img.draw 100, 50,1
52
+ end
53
+
54
+ end
55
+
56
+
57
+ w = W.new
58
+ w.show
59
+
@@ -32,7 +32,30 @@ class W < Gosu::Window
32
32
  puts @bunk.little
33
33
 
34
34
  # add a red line to the copy to identify it
35
- @bunk.line 0, 0, 1024, 1024, :color => :red
35
+ #@bunk.line 0, 0, 1024, 1024, :color => :red
36
+
37
+ @bunk.each(:region =>[200,200,350,350]) { |c,x,y|
38
+
39
+ num_pixels = 0
40
+ total = [0, 0, 0, 0]
41
+ @bunk.circle x, y, 2,
42
+ :color_control => proc { |v|
43
+ if v
44
+ total[0] += v[0]
45
+ total[1] += v[1]
46
+ total[2] += v[2]
47
+ total[3] += v[3]
48
+
49
+ num_pixels += 1
50
+ end
51
+ :none
52
+ }
53
+
54
+ c[0] = total[0] / num_pixels.to_f
55
+ c[1] = total[1] / num_pixels.to_f
56
+ c[2] = total[2] / num_pixels.to_f
57
+ c[3] = total[3] / num_pixels.to_f
58
+ }
36
59
 
37
60
  end
38
61
 
@@ -10,6 +10,14 @@ Dragon = TexPlay::LSystem.new do
10
10
  atom "FX"
11
11
  end
12
12
 
13
+ Koch = TexPlay::LSystem.new do
14
+ rule "F" => "F-F++F-F"
15
+
16
+ angle 60
17
+
18
+ atom "F"
19
+ end
20
+
13
21
  Bush1 = TexPlay::LSystem.new do
14
22
  rule "F" => "F[-F]F[+F][F]"
15
23
 
@@ -39,7 +47,7 @@ class W < Gosu::Window
39
47
  def initialize
40
48
  super(1024, 768, false, 20)
41
49
  @img = TexPlay::create_blank_image(self, 500, 500)
42
- @img.lsystem(0, 250, Bush2, :order => 5, :line_length => 5)
50
+ @img.lsystem(250, 250, Koch, :order => 8, :line_length => 10)
43
51
  end
44
52
 
45
53
  def draw
@@ -0,0 +1,54 @@
1
+ require 'rubygems'
2
+ require 'common'
3
+ require 'gosu'
4
+ require 'texplay'
5
+
6
+
7
+ class W < Gosu::Window
8
+ def initialize
9
+ super(1024, 768, false, 20)
10
+ @img = Gosu::Image.new(self, "#{Common::MEDIA}/logo.png")
11
+ #@img.rect 0,0, @img.width - 1, @img.height - 1
12
+ @img2 = TexPlay::create_blank_image(self, 500, 500)
13
+ #@img2.rect 0,0, 1000, 1000, :fill => true
14
+
15
+ TexPlay::create_macro(:splice_and_scale) do |img, cx, cy, *options|
16
+ options = options.first ? options.first : {}
17
+
18
+ options = {
19
+ :color_control => proc do |c1, c2, x, y|
20
+ factor = options[:factor] || 1
21
+ factor_x = options[:factor_x] || factor
22
+ factor_y = options[:factor_y] || factor
23
+
24
+ x = factor_x * (x - cx) + cx
25
+ y = factor_y * (y - cy) + cy
26
+
27
+ rect x, y, x + factor_x, y + factor_y, :color => c2, :fill => true
28
+ :none
29
+ end
30
+ }.merge!(options)
31
+
32
+ splice img, cx, cy, options
33
+
34
+ self
35
+ end
36
+
37
+
38
+ @img2.splice_and_scale @img, 0, 50, :factor => 0.3, :factor_y => 4
39
+ @img2.splice @img, 0, 200
40
+ end
41
+
42
+ def draw
43
+ x = @img.width * rand
44
+ y = @img.height * rand
45
+
46
+ @img2.draw 100, 100,1
47
+ end
48
+
49
+ end
50
+
51
+
52
+ w = W.new
53
+ w.show
54
+
Binary file
@@ -787,8 +787,8 @@ bezier_do_action(VALUE points, texture_info * tex, VALUE hash_arg, sync sync_mod
787
787
  num_point_pairs = RARRAY_LEN(points) / 2;
788
788
  }
789
789
 
790
- if(num_point_pairs > 13)
791
- rb_raise(rb_eArgError, "too many points for bezier curve. 13 points is current maximum. got %d\n",
790
+ if(num_point_pairs > 17)
791
+ rb_raise(rb_eArgError, "too many points for bezier curve. 17 points is current maximum. got %d\n",
792
792
  num_point_pairs);
793
793
 
794
794
  /* get the first point */
File without changes
File without changes
File without changes
@@ -30,7 +30,7 @@ cache_create_entry(int tname) {
30
30
  if(cache.len >= CACHE_SIZE) { rb_raise(rb_eRuntimeError, "cache is full! increase CACHE_SIZE"); }
31
31
 
32
32
  /* save current texture binding */
33
- glGetIntegerv(GL_TEXTURE_BINDING_2D, &saved_tname);
33
+ /* glGetIntegerv(GL_TEXTURE_BINDING_2D, &saved_tname); */
34
34
 
35
35
  /* opengl initialization code */
36
36
  glEnable(GL_TEXTURE_2D);
@@ -54,7 +54,10 @@ cache_create_entry(int tname) {
54
54
  cache.len++;
55
55
 
56
56
  /* restore saved texture binding */
57
- glBindTexture(GL_TEXTURE_2D, saved_tname);
57
+ /* glBindTexture(GL_TEXTURE_2D, saved_tname); */
58
+
59
+ glDisable(GL_TEXTURE_2D);
60
+
58
61
 
59
62
  return &cache.entry[new_element];
60
63
  }
File without changes
File without changes
@@ -11,11 +11,11 @@ elsif RUBY_PLATFORM =~ /darwin/
11
11
  $CPPFLAGS += " -I/System/Library/Frameworks/GLUT.framework/Headers"
12
12
 
13
13
  # windows
14
- else
14
+ else
15
15
  exit unless have_library("glut32")
16
16
  end
17
17
 
18
18
  # 1.9 compatibility
19
19
  $CPPFLAGS += " -DRUBY_19" if RUBY_VERSION =~ /1.9/
20
20
 
21
- create_makefile('ctexplay')
21
+ create_makefile('texplay')
File without changes
File without changes
File without changes
File without changes
@@ -19,7 +19,7 @@
19
19
  static VALUE m_init_TPPoint(int argc, VALUE * argv, VALUE self);
20
20
 
21
21
  void
22
- Init_ctexplay() {
22
+ Init_texplay() {
23
23
 
24
24
  VALUE jm_Module = rb_define_module("TexPlay");
25
25
  VALUE TPPoint = rb_define_class_under(jm_Module, "TPPoint", rb_cObject);
File without changes
@@ -793,6 +793,8 @@ sync_to_gl(int tex_name, int x_offset, int y_offset, int width, int height, void
793
793
  /* sync subtexture */
794
794
  glTexSubImage2D(GL_TEXTURE_2D, 0, x_offset, y_offset, width, height,
795
795
  GL_RGBA, GL_FLOAT, sub);
796
+
797
+ glDisable(GL_TEXTURE_2D);
796
798
  }
797
799
 
798
800
  void
@@ -948,21 +950,22 @@ fact(int n)
948
950
  unsigned
949
951
  comb(int n, int r)
950
952
  {
951
- double temp = fact(n) / (fact(r) * fact(n - r));
952
- return temp;
953
- /* if(r > (n / 2))
953
+ /* double temp = fact(n) / (fact(r) * fact(n - r)); */
954
+ /* return temp; */
955
+
956
+ /* nCr is symmetrical about n / 2 */
957
+ if(r > (n / 2))
954
958
  r = n - r;
955
959
 
956
960
  return perm(n, r) / fact(r);
957
- */
958
961
  }
959
962
 
960
963
  unsigned
961
964
  perm(int n, int r)
962
965
  {
963
- int val = n;
966
+ int val = 1;
964
967
  int i;
965
- for(i = n - 1; i > (n - r); i--)
968
+ for(i = n; i > (n - r); i--)
966
969
  val *= i;
967
970
 
968
971
  return val;
@@ -971,6 +974,6 @@ perm(int n, int r)
971
974
  double
972
975
  bernstein(int n, int k, float u)
973
976
  {
974
- double temp = comb(n, k) * pow(u, k) * power(1 - u, n - k);
977
+ double temp = comb(n, k) * pow(u, k) * pow(1 - u, n - k);
975
978
  return temp;
976
979
  }
File without changes
@@ -79,47 +79,44 @@ TexPlay::create_macro(:forward) do |dist, *other|
79
79
  }
80
80
  end
81
81
 
82
- ## L-System code
83
-
84
- # monkeypatches to TexPlay class
85
- module TexPlay
86
- class LSystem
87
- def initialize(&block)
88
- @rules = {}
89
-
90
- instance_eval(&block) if block
91
- end
82
+ # L-System code
83
+ # adding LSystem class to TexPlay module
84
+ class TexPlay::LSystem
85
+ def initialize(&block)
86
+ @rules = {}
92
87
 
93
- def rule(new_rule)
94
- @rules.merge!(new_rule)
95
- end
88
+ instance_eval(&block) if block
89
+ end
90
+
91
+ def rule(new_rule)
92
+ @rules.merge!(new_rule)
93
+ end
96
94
 
97
- def atom(new_atom)
98
- @atom = new_atom
99
- end
95
+ def atom(new_atom)
96
+ @atom = new_atom
97
+ end
100
98
 
101
- def angle(new_angle=nil)
102
- return @angle if !new_angle
103
- @angle = new_angle
104
- end
99
+ def angle(new_angle=nil)
100
+ return @angle if !new_angle
101
+ @angle = new_angle
102
+ end
105
103
 
106
- def produce_string(order)
107
- order = order[:order]
108
- string = @atom.dup
109
-
110
- order.times do
111
- i = 0
112
- while(i < string.length)
113
- sub = @rules[string[i, 1]]
114
-
115
- string[i] = sub if sub
116
-
117
- i += sub ? sub.length : 1
118
- end
104
+ def produce_string(order)
105
+ order = order[:order]
106
+ string = @atom.dup
107
+
108
+ order.times do
109
+ i = 0
110
+ while(i < string.length)
111
+ sub = @rules[string[i, 1]]
112
+
113
+ string[i] = sub if sub
114
+
115
+ i += sub ? sub.length : 1
119
116
  end
120
-
121
- string
122
117
  end
118
+
119
+ string
123
120
  end
124
121
  end
125
122
 
@@ -148,3 +145,27 @@ TexPlay::create_macro(:lsystem) do |x, y, system, options|
148
145
  end
149
146
  }
150
147
  end
148
+
149
+ # Scaling
150
+ # uses nearest-neighbour
151
+ TexPlay::create_macro(:splice_and_scale) do |img, cx, cy, *options|
152
+ options = options.first ? options.first : {}
153
+
154
+ options = {
155
+ :color_control => proc do |c1, c2, x, y|
156
+ factor = options[:factor] || 1
157
+ factor_x = options[:factor_x] || factor
158
+ factor_y = options[:factor_y] || factor
159
+
160
+ x = factor_x * (x - cx) + cx
161
+ y = factor_y * (y - cy) + cy
162
+
163
+ rect x, y, x + factor_x, y + factor_y, :color => c2, :fill => true
164
+ :none
165
+ end
166
+ }.merge!(options)
167
+
168
+ splice img, cx, cy, options
169
+
170
+ self
171
+ end
data/lib/texplay.rb CHANGED
@@ -10,7 +10,7 @@ require 'rbconfig'
10
10
  require 'gosu'
11
11
 
12
12
  module TexPlay
13
- TEXPLAY_VERSION = "0.2.4"
13
+ TEXPLAY_VERSION = "0.2.5"
14
14
 
15
15
  def self::on_setup(&block)
16
16
  raise "need a block" if !block
@@ -74,12 +74,12 @@ direc = File.dirname(__FILE__)
74
74
  dlext = Config::CONFIG['DLEXT']
75
75
  begin
76
76
  if RUBY_VERSION && RUBY_VERSION =~ /1.9/
77
- require "#{direc}/ctexplay.19.#{dlext}"
77
+ require "#{direc}/1.9/texplay.#{dlext}"
78
78
  else
79
- require "#{direc}/ctexplay.18.#{dlext}"
79
+ require "#{direc}/1.8/texplay.#{dlext}"
80
80
  end
81
81
  rescue LoadError => e
82
- require "#{direc}/ctexplay.#{dlext}"
82
+ require "#{direc}/texplay.#{dlext}"
83
83
  end
84
84
 
85
85
  require "#{direc}/texplay-contrib"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: texplay
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.4
4
+ version: 0.2.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - John Mair (banisterfiend)
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-09-09 00:00:00 +12:00
12
+ date: 2009-10-05 00:00:00 -04:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -27,7 +27,7 @@ email: jrmair@gmail.com
27
27
  executables: []
28
28
 
29
29
  extensions:
30
- - src/extconf.rb
30
+ - ext/texplay/extconf.rb
31
31
  extra_rdoc_files: []
32
32
 
33
33
  files:
@@ -36,24 +36,22 @@ files:
36
36
  - CHANGELOG
37
37
  - lib/texplay.rb
38
38
  - lib/texplay-contrib.rb
39
- - src/texplay.c
40
- - src/object2module.h
41
- - src/bindings.h
42
- - src/actions.c
43
- - src/object2module.c
44
- - src/utils.h
45
- - src/actions.h
46
- - src/compat.h
47
- - src/Makefile
48
- - src/TAGS
49
- - src/cache.h
50
- - src/utils.c
51
- - src/bindings.c
52
- - src/extconf.rb
53
- - src/texplay.h
54
- - src/gen_eval.h
55
- - src/gen_eval.c
56
- - src/cache.c
39
+ - ext/texplay/extconf.rb
40
+ - ext/texplay/object2module.h
41
+ - ext/texplay/bindings.h
42
+ - ext/texplay/utils.h
43
+ - ext/texplay/actions.h
44
+ - ext/texplay/compat.h
45
+ - ext/texplay/cache.h
46
+ - ext/texplay/texplay.h
47
+ - ext/texplay/gen_eval.h
48
+ - ext/texplay/texplay.c
49
+ - ext/texplay/actions.c
50
+ - ext/texplay/object2module.c
51
+ - ext/texplay/utils.c
52
+ - ext/texplay/bindings.c
53
+ - ext/texplay/gen_eval.c
54
+ - ext/texplay/cache.c
57
55
  - examples/example_dup.rb
58
56
  - examples/example_turtle.rb
59
57
  - examples/example_color_control.rb
@@ -67,6 +65,7 @@ files:
67
65
  - examples/example_bezier.rb
68
66
  - examples/example_simple.rb
69
67
  - examples/example_fill_old.rb
68
+ - examples/example_blur.rb
70
69
  - examples/example_each.rb
71
70
  - examples/example_fluent.rb
72
71
  - examples/example_sync.rb
@@ -74,15 +73,19 @@ files:
74
73
  - examples/example_alpha_blend.rb
75
74
  - examples/example_melt.rb
76
75
  - examples/example_lsystem.rb
76
+ - examples/example_scale.rb
77
77
  - examples/media/sand1.png
78
78
  - examples/media/rose.bmp
79
79
  - examples/media/maria.png
80
80
  - examples/media/sunset.png
81
81
  - examples/media/texplay.png
82
82
  - examples/media/gosu.png
83
+ - examples/media/logo.png
83
84
  - examples/media/empty2.png
84
- has_rdoc: false
85
+ has_rdoc: true
85
86
  homepage: http://banisterfiend.wordpress.com/2008/08/23/texplay-an-image-manipulation-tool-for-ruby-and-gosu/
87
+ licenses: []
88
+
86
89
  post_install_message:
87
90
  rdoc_options: []
88
91
 
@@ -103,9 +106,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
103
106
  requirements: []
104
107
 
105
108
  rubyforge_project:
106
- rubygems_version: 1.3.1
109
+ rubygems_version: 1.3.5
107
110
  signing_key:
108
- specification_version: 2
111
+ specification_version: 3
109
112
  summary: TexPlay is a light-weight image manipulation framework for Ruby and Gosu
110
113
  test_files: []
111
114
 
data/src/Makefile DELETED
@@ -1,181 +0,0 @@
1
-
2
- SHELL = /bin/sh
3
-
4
- #### Start of system configuration section. ####
5
-
6
- srcdir = .
7
- topdir = /usr/local/include/ruby19-1.9.1
8
- hdrdir = /usr/local/include/ruby19-1.9.1
9
- arch_hdrdir = /usr/local/include/ruby19-1.9.1/$(arch)
10
- VPATH = $(srcdir):$(arch_hdrdir)/ruby:$(hdrdir)/ruby
11
- prefix = $(DESTDIR)/usr/local
12
- exec_prefix = $(prefix)
13
- vendorhdrdir = $(rubyhdrdir)/vendor_ruby
14
- sitehdrdir = $(rubyhdrdir)/site_ruby
15
- rubyhdrdir = $(includedir)/$(RUBY_INSTALL_NAME)-$(ruby_version)
16
- vendordir = $(libdir)/$(RUBY_INSTALL_NAME)/vendor_ruby
17
- sitedir = $(libdir)/$(RUBY_INSTALL_NAME)/site_ruby
18
- mandir = $(datarootdir)/man
19
- localedir = $(datarootdir)/locale
20
- libdir = $(exec_prefix)/lib
21
- psdir = $(docdir)
22
- pdfdir = $(docdir)
23
- dvidir = $(docdir)
24
- htmldir = $(docdir)
25
- infodir = $(datarootdir)/info
26
- docdir = $(datarootdir)/doc/$(PACKAGE)
27
- oldincludedir = $(DESTDIR)/usr/include
28
- includedir = $(prefix)/include
29
- localstatedir = $(prefix)/var
30
- sharedstatedir = $(prefix)/com
31
- sysconfdir = $(prefix)/etc
32
- datadir = $(datarootdir)
33
- datarootdir = $(prefix)/share
34
- libexecdir = $(exec_prefix)/libexec
35
- sbindir = $(exec_prefix)/sbin
36
- bindir = $(exec_prefix)/bin
37
- rubylibdir = $(libdir)/$(ruby_install_name)/$(ruby_version)
38
- archdir = $(rubylibdir)/$(arch)
39
- sitelibdir = $(sitedir)/$(ruby_version)
40
- sitearchdir = $(sitelibdir)/$(sitearch)
41
- vendorlibdir = $(vendordir)/$(ruby_version)
42
- vendorarchdir = $(vendorlibdir)/$(sitearch)
43
-
44
- CC = gcc
45
- CXX = g++
46
- LIBRUBY = $(LIBRUBY_A)
47
- LIBRUBY_A = lib$(RUBY_SO_NAME)-static.a
48
- LIBRUBYARG_SHARED = -Wl,-R -Wl,$(libdir) -L$(libdir) -l$(RUBY_SO_NAME)
49
- LIBRUBYARG_STATIC = -Wl,-R -Wl,$(libdir) -L$(libdir) -l$(RUBY_SO_NAME)-static
50
- OUTFLAG = -o
51
- COUTFLAG = -o
52
-
53
- RUBY_EXTCONF_H =
54
- cflags = $(optflags) $(debugflags) $(warnflags)
55
- optflags = -O2
56
- debugflags = -g
57
- warnflags = -Wall -Wno-parentheses
58
- CFLAGS = -fPIC $(cflags)
59
- INCFLAGS = -I. -I$(arch_hdrdir) -I$(hdrdir)/ruby/backward -I$(hdrdir) -I$(srcdir)
60
- DEFS = -D_FILE_OFFSET_BITS=64
61
- CPPFLAGS = $(DEFS) $(cppflags) -DRUBY_19
62
- CXXFLAGS = $(CFLAGS) $(cxxflags)
63
- ldflags = -L. -rdynamic -Wl,-export-dynamic
64
- dldflags =
65
- archflag =
66
- DLDFLAGS = $(ldflags) $(dldflags) $(archflag)
67
- LDSHARED = $(CC) -shared
68
- LDSHAREDXX = $(CXX) -shared
69
- AR = ar
70
- EXEEXT =
71
-
72
- RUBY_INSTALL_NAME = ruby19
73
- RUBY_SO_NAME = ruby19
74
- arch = i686-linux
75
- sitearch = i686-linux
76
- ruby_version = 1.9.1
77
- ruby = /usr/local/bin/ruby19
78
- RUBY = $(ruby)
79
- RM = rm -f
80
- RM_RF = $(RUBY) -run -e rm -- -rf
81
- RMDIRS = $(RUBY) -run -e rmdir -- -p
82
- MAKEDIRS = mkdir -p
83
- INSTALL = /usr/bin/install -c
84
- INSTALL_PROG = $(INSTALL) -m 0755
85
- INSTALL_DATA = $(INSTALL) -m 644
86
- COPY = cp
87
-
88
- #### End of system configuration section. ####
89
-
90
- preload =
91
-
92
- libpath = . $(libdir)
93
- LIBPATH = -L. -L$(libdir) -Wl,-R$(libdir)
94
- DEFFILE =
95
-
96
- CLEANFILES = mkmf.log
97
- DISTCLEANFILES =
98
- DISTCLEANDIRS =
99
-
100
- extout =
101
- extout_prefix =
102
- target_prefix =
103
- LOCAL_LIBS =
104
- LIBS = -lglut -lpthread -lrt -ldl -lcrypt -lm -lc
105
- SRCS = texplay.c actions.c object2module.c utils.c bindings.c gen_eval.c cache.c
106
- OBJS = texplay.o actions.o object2module.o utils.o bindings.o gen_eval.o cache.o
107
- TARGET = ctexplay
108
- DLLIB = $(TARGET).so
109
- EXTSTATIC =
110
- STATIC_LIB =
111
-
112
- BINDIR = $(bindir)
113
- RUBYCOMMONDIR = $(sitedir)$(target_prefix)
114
- RUBYLIBDIR = $(sitelibdir)$(target_prefix)
115
- RUBYARCHDIR = $(sitearchdir)$(target_prefix)
116
- HDRDIR = $(rubyhdrdir)/ruby$(target_prefix)
117
- ARCHHDRDIR = $(rubyhdrdir)/$(arch)/ruby$(target_prefix)
118
-
119
- TARGET_SO = $(DLLIB)
120
- CLEANLIBS = $(TARGET).so
121
- CLEANOBJS = *.o *.bak
122
-
123
- all: $(DLLIB)
124
- static: $(STATIC_LIB)
125
-
126
- clean-rb-default::
127
- clean-rb::
128
- clean-so::
129
- clean: clean-so clean-rb-default clean-rb
130
- @-$(RM) $(CLEANLIBS) $(CLEANOBJS) $(CLEANFILES)
131
-
132
- distclean-rb-default::
133
- distclean-rb::
134
- distclean-so::
135
- distclean: clean distclean-so distclean-rb-default distclean-rb
136
- @-$(RM) Makefile $(RUBY_EXTCONF_H) conftest.* mkmf.log
137
- @-$(RM) core ruby$(EXEEXT) *~ $(DISTCLEANFILES)
138
- @-$(RMDIRS) $(DISTCLEANDIRS)
139
-
140
- realclean: distclean
141
- install: install-so install-rb
142
-
143
- install-so: $(RUBYARCHDIR)
144
- install-so: $(RUBYARCHDIR)/$(DLLIB)
145
- $(RUBYARCHDIR)/$(DLLIB): $(DLLIB)
146
- $(INSTALL_PROG) $(DLLIB) $(RUBYARCHDIR)
147
- install-rb: pre-install-rb install-rb-default
148
- install-rb-default: pre-install-rb-default
149
- pre-install-rb: Makefile
150
- pre-install-rb-default: Makefile
151
- $(RUBYARCHDIR):
152
- $(MAKEDIRS) $@
153
-
154
- site-install: site-install-so site-install-rb
155
- site-install-so: install-so
156
- site-install-rb: install-rb
157
-
158
- .SUFFIXES: .c .m .cc .cxx .cpp .C .o
159
-
160
- .cc.o:
161
- $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -c $<
162
-
163
- .cxx.o:
164
- $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -c $<
165
-
166
- .cpp.o:
167
- $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -c $<
168
-
169
- .C.o:
170
- $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(COUTFLAG)$@ -c $<
171
-
172
- .c.o:
173
- $(CC) $(INCFLAGS) $(CPPFLAGS) $(CFLAGS) $(COUTFLAG)$@ -c $<
174
-
175
- $(DLLIB): $(OBJS) Makefile
176
- @-$(RM) $(@)
177
- $(LDSHARED) -o $@ $(OBJS) $(LIBPATH) $(DLDFLAGS) $(LOCAL_LIBS) $(LIBS)
178
-
179
-
180
-
181
- $(OBJS): $(hdrdir)/ruby.h $(hdrdir)/ruby/defines.h $(arch_hdrdir)/ruby/config.h
data/src/TAGS DELETED
@@ -1,286 +0,0 @@
1
-
2
- actions.c,3564
3
- do_sync(action_struct * cur, texture_info * tex) do_sync34,1286
4
- line_do_action(int x1, int y1, int x2, int y2, texture_info * tex, VALUE hash_arg,line_do_action44,1509
5
- #define SIMPLE_FORMAT SIMPLE_FORMAT126,3531
6
- #define POINT_FORMAT POINT_FORMAT127,3555
7
- polyline_point(VALUE points, int k, int * x, int * y, int format, int draw_offset_x,polyline_point131,3622
8
- polyline_do_action(VALUE points, texture_info * tex, VALUE hash_arg,polyline_do_action154,4324
9
- ngon_do_action(int x, int y, int r, int num_sides, texture_info * tex, VALUE hash_arg,ngon_do_action231,6780
10
- rect_do_action(int x1, int y1, int x2, int y2, texture_info * tex, VALUE hash_arg,rect_do_action275,8056
11
- circle_do_action(int x1, int y1, int r, texture_info * tex, VALUE hash_arg,circle_do_action329,9856
12
- pixel_do_action(int x1, int y1, texture_info * tex, VALUE hash_arg,pixel_do_action403,12271
13
- typedef struct { int x1, x2, y, dy; } LINESEGMENT;x1417,12704
14
- typedef struct { int x1, x2, y, dy; } LINESEGMENT;x2417,12704
15
- typedef struct { int x1, x2, y, dy; } LINESEGMENT;y417,12704
16
- typedef struct { int x1, x2, y, dy; } LINESEGMENT;dy417,12704
17
- typedef struct { int x1, x2, y, dy; } LINESEGMENT;LINESEGMENT417,12704
18
- #define MAXDEPTH MAXDEPTH419,12756
19
- #define PUSH(PUSH421,12780
20
- #define POP(POP425,12997
21
- flood_fill_do_action(int x, int y, texture_info * tex, VALUE hash_arg,flood_fill_do_action429,13142
22
- glow_floodFill( int x, int y, rgba * seed_color, action_struct * cur, texture_info * tex, texture_info * tex2 )glow_floodFill498,15194
23
- glow_fill_do_action(int x, int y, texture_info * tex, VALUE hash_arg,glow_fill_do_action552,17088
24
- #define stackSize stackSize586,18167
25
- int stack[stackSize];stack587,18194
26
- int stackPointer;stackPointer588,18216
27
- pop(int * x, int * y, int h) pop591,18247
28
- push(int x, int y, int h) push608,18559
29
- emptyStack() emptyStack623,18834
30
- scan_fill_do_action(int x, int y, texture_info * tex, VALUE hash_arg,scan_fill_do_action630,18902
31
- bezier_point(VALUE points, float u, float * x, float * y, int n, int format,bezier_point700,21601
32
- bezier_do_action(VALUE points, texture_info * tex, VALUE hash_arg, sync sync_mode,bezier_do_action731,22561
33
- set_color_array(VALUE ary, rgba * color)set_color_array831,25683
34
- each_pixel_do_action(int x1, int y1, int x2, int y2, VALUE proc, texture_info * tex, VALUE hash_arg,each_pixel_do_action840,25963
35
- splice_do_action(int x0, int y0, int cx1, int cy1, int cx2, int cy2, texture_info * splice_tex,splice_do_action869,26797
36
- process_common_hash_args(action_struct * cur, VALUE * hash_arg, sync sync_mode, bool primary)process_common_hash_args940,29218
37
- update_lazy_bounds(action_struct * cur, texture_info * tex)update_lazy_bounds1021,32185
38
- update_bounds(action_struct * cur, int xmin, int ymin, int xmax, int ymax)update_bounds1044,33016
39
- set_local_bounds(action_struct * cur, int xmin, int ymin, int xmax, int ymax, texture_info * tex)set_local_bounds1056,33341
40
- draw_prologue(action_struct * cur, texture_info * tex, int xmin, int ymin, int xmax, int ymax,draw_prologue1072,33773
41
- draw_epilogue(action_struct * cur, texture_info * tex, bool primary)draw_epilogue1089,34284
42
- prepare_color_control(action_struct * cur)prepare_color_control1119,34991
43
- exec_color_control_proc(action_struct * cur, texture_info * tex, int x, int y)exec_color_control_proc1135,35475
44
- prepare_fill_texture(action_struct * payload)prepare_fill_texture1179,37313
45
- set_pixel_color_with_style(action_struct * payload, texture_info * tex, int x, int y)set_pixel_color_with_style1195,37707
46
-
47
- actions.h,45
48
- #define GUARD_ACTIONS_HGUARD_ACTIONS_H2,24
49
-
50
- bindings.c,2070
51
- sync sync_mode = eager_sync;sync_mode31,585
52
- process_x_y_pairs(VALUE image, int num_pairs, VALUE * argv, ...)process_x_y_pairs34,627
53
- M_create_macro(VALUE self, VALUE method_name) M_create_macro78,1755
54
- M_remove_macro(VALUE self, VALUE method_name) M_remove_macro96,2138
55
- M_refresh_cache_all(VALUE self) M_refresh_cache_all107,2385
56
- M_create_blank(VALUE self, VALUE window, VALUE width, VALUE height)M_create_blank116,2500
57
- rb_lazy_bounds_to_image_bounds(VALUE image, image_bounds * bounds)rb_lazy_bounds_to_image_bounds128,2767
58
- parse_sync_mode(VALUE user_sync_mode)parse_sync_mode143,3223
59
- m_paint(int argc, VALUE * argv, VALUE self) m_paint166,3853
60
- m_force_sync(VALUE self, VALUE ary)m_force_sync239,5754
61
- m_dup_image(VALUE self)m_dup_image261,6219
62
- m_clone_image(VALUE self)m_clone_image290,7033
63
- m_user_set_options(VALUE self, VALUE options)m_user_set_options305,7329
64
- m_user_delete_options(VALUE self)m_user_delete_options318,7587
65
- m_get_options(VALUE self)m_get_options329,7723
66
- m_getpixel(int argc, VALUE * argv, VALUE self) m_getpixel338,7882
67
- m_circle(int argc, VALUE * argv, VALUE self) m_circle363,8384
68
- m_ngon(int argc, VALUE * argv, VALUE self)m_ngon392,8958
69
- m_flood_fill(int argc, VALUE * argv, VALUE self)m_flood_fill420,9519
70
- m_line(int argc, VALUE * argv, VALUE self) m_line463,10488
71
- m_rect(int argc, VALUE * argv, VALUE self) m_rect487,10973
72
- m_pixel(int argc, VALUE * argv, VALUE self) m_pixel513,11463
73
- m_bezier(int argc, VALUE * argv, VALUE self)m_bezier537,11925
74
- m_polyline(int argc, VALUE * argv, VALUE self)m_polyline563,12455
75
- m_splice(int argc, VALUE * argv, VALUE self) m_splice591,12982
76
- m_clear(int argc, VALUE * argv, VALUE self) m_clear638,14314
77
- m_offset(int argc, VALUE * argv, VALUE self) m_offset654,14599
78
- m_color(int argc, VALUE * argv, VALUE self) m_color688,15349
79
- m_missing(int argc, VALUE * argv, VALUE self) m_missing718,16182
80
- m_cache_refresh(VALUE self) m_cache_refresh736,16672
81
- m_quad_cached(VALUE self) m_quad_cached751,16895
82
- m_each(int argc, VALUE * argv, VALUE self)m_each777,17450
83
-
84
- bindings.h,47
85
- #define GUARD_BINDINGS_HGUARD_BINDINGS_H2,25
86
-
87
- cache.c,338
88
- static cache_t cache = {0}; cache16,219
89
- cache_create_entry(int tname) {cache_create_entry20,293
90
- find_in_cache(int tname) {find_in_cache59,1556
91
- find_or_create_cache_entry(int tname) {find_or_create_cache_entry73,1908
92
- cache_refresh_all(void) {cache_refresh_all84,2130
93
- cache_refresh_entry(int tname) {cache_refresh_entry109,2794
94
-
95
- cache.h,350
96
- #define GUARD_CACHE_HGUARD_CACHE_H5,71
97
- #define CACHE_SIZE CACHE_SIZE8,108
98
- int tname;tname12,167
99
- int sidelength;sidelength13,182
100
- float * tdata;tdata14,202
101
- } cache_entry;cache_entry15,221
102
- int len;len18,254
103
- cache_entry entry[CACHE_SIZE]; entry19,267
104
- } cache_t;cache_t20,344
105
-
106
- compat.h,241
107
- #define GUARD_COMPAT_HGUARD_COMPAT_H4,102
108
- # define RUBY_19RUBY_1910,218
109
- # define RCLASS_M_TBL(RCLASS_M_TBL15,309
110
- # define RCLASS_SUPER(RCLASS_SUPER16,353
111
- # define RCLASS_IV_TBL(RCLASS_IV_TBL17,397
112
- #define KLASS_OF(KLASS_OF21,534
113
-
114
- gen_eval.c,444
115
- retrieve_hidden_self(VALUE duped_context)retrieve_hidden_self11,247
116
- set_hidden_self(VALUE duped_context, VALUE hidden_self)set_hidden_self25,652
117
- rb_capture(VALUE self) {rb_capture38,1103
118
- redirect_iv_for_object(VALUE obj, VALUE dest)redirect_iv_for_object59,1553
119
- release_iv_for_object(VALUE obj)release_iv_for_object79,2305
120
- rb_gen_eval(int argc, VALUE * argv, VALUE self) {rb_gen_eval93,2658
121
- Init_gen_eval() {Init_gen_eval185,5307
122
-
123
- gen_eval.h,87
124
- #define GUARD_GEN_EVAL_HGUARD_GEN_EVAL_H4,43
125
- #define ADJUST_SELF(ADJUST_SELF14,345
126
-
127
- object2module.c,410
128
- class_alloc(VALUE flags, VALUE klass)class_alloc18,359
129
- j_class_new(VALUE module, VALUE sup)j_class_new34,752
130
- rb_to_module(VALUE self)rb_to_module81,1735
131
- rb_reset_tbls(VALUE self)rb_reset_tbls115,2493
132
- rb_gen_extend(int argc, VALUE * argv, VALUE self)rb_gen_extend124,2738
133
- rb_gen_include(int argc, VALUE * argv, VALUE self)rb_gen_include145,3259
134
- void Init_object2module()Init_object2module163,3696
135
-
136
- object2module.h,57
137
- #define GUARD_OBJECT2MODULE_HGUARD_OBJECT2MODULE_H4,53
138
-
139
- texplay.c,410
140
- Init_ctexplay() {Init_ctexplay29,843
141
- m_init_TPPoint(int argc, VALUE * argv, VALUE self)m_init_TPPoint133,5456
142
- m_init_EmptyImageStub(int argc, VALUE * argv, VALUE self)m_init_EmptyImageStub157,6066
143
- m_EmptyImageStub_columns(VALUE self)m_EmptyImageStub_columns176,6583
144
- m_EmptyImageStub_rows(VALUE self)m_EmptyImageStub_rows182,6672
145
- m_EmptyImageStub_to_blob(VALUE self)m_EmptyImageStub_to_blob188,6758
146
-
147
- texplay.h,2622
148
- #define GUARD_TEXPLAY_HGUARD_TEXPLAY_H8,201
149
- #define OOB_VAL OOB_VAL13,260
150
- #define XMAX_OOB XMAX_OOB14,281
151
- #define YMAX_OOB YMAX_OOB15,306
152
- #define XMIN_OOB XMIN_OOB16,331
153
- #define YMIN_OOB YMIN_OOB17,357
154
- #define PI PI19,384
155
- #define SWAP(SWAP22,426
156
- #define ROUND(ROUND23,485
157
- #define ARY_SIZE(ARY_SIZE24,519
158
- #define SGN(SGN25,562
159
- #define MAX(MAX26,597
160
- #define MIN(MIN27,638
161
- #define ABS(ABS28,680
162
- typedef enum e_bool {e_bool31,732
163
- false, truefalse32,754
164
- false, truetrue32,754
165
- } bool;bool33,770
166
- typedef enum e_color {e_color35,779
167
- red, green, blue, alphared36,802
168
- red, green, blue, alphagreen36,802
169
- red, green, blue, alphablue36,802
170
- red, green, blue, alphaalpha36,802
171
- } color_t;color_t37,830
172
- typedef enum e_sync_mode {e_sync_mode39,842
173
- lazy_sync, eager_sync, no_synclazy_sync40,869
174
- lazy_sync, eager_sync, no_synceager_sync40,869
175
- lazy_sync, eager_sync, no_syncno_sync40,869
176
- } sync;sync41,904
177
- typedef struct s_rgba {s_rgba44,927
178
- float red, green, blue, alpha;red45,951
179
- float red, green, blue, alpha;green45,951
180
- float red, green, blue, alpha;blue45,951
181
- float red, green, blue, alpha;alpha45,951
182
- } rgba;rgba46,986
183
- int width, height; width50,1036
184
- int width, height; height50,1036
185
- float top, left; top51,1063
186
- float top, left; left51,1063
187
- int tname;tname52,1088
188
- float * td_array;td_array53,1103
189
- int yincr, firstpixel;yincr54,1125
190
- int yincr, firstpixel;firstpixel54,1125
191
- int x_offset, y_offset;x_offset55,1152
192
- int x_offset, y_offset;y_offset55,1152
193
- VALUE image;image56,1180
194
- } texture_info;texture_info57,1197
195
- #define IMAGE_BOUNDS(IMAGE_BOUNDS61,1239
196
- int xmin;xmin63,1303
197
- int ymin;ymin64,1317
198
- int xmax;xmax65,1331
199
- int ymax;ymax66,1345
200
- } image_bounds;image_bounds67,1359
201
- typedef struct action_struct {action_struct69,1376
202
- int xmin, ymin, xmax, ymax;xmin70,1407
203
- int xmin, ymin, xmax, ymax;ymin70,1407
204
- int xmin, ymin, xmax, ymax;xmax70,1407
205
- int xmin, ymin, xmax, ymax;ymax70,1407
206
- rgba color;color71,1439
207
- sync sync_mode;sync_mode72,1455
208
- VALUE color_control_proc;color_control_proc75,1504
209
- bool has_color_control_proc;has_color_control_proc76,1534
210
- int color_control_arity;color_control_arity77,1567
211
- texture_info source_tex;source_tex80,1620
212
- bool has_source_texture;has_source_texture81,1649
213
- bool alpha_blend;alpha_blend84,1701
214
- texture_info * tex;tex89,1880
215
- VALUE hash_arg;hash_arg91,1909
216
- } action_struct;action_struct92,1929
217
-
218
- utils.c,4100
219
- static const rgba not_a_color_v = { -1.0, -1.0, -1.0, -1.0 };not_a_color_v36,974
220
- lowercase(char * string) lowercase40,1067
221
- sym2string(VALUE sym) sym2string53,1228
222
- string2sym(char * string) string2sym59,1298
223
- is_a_hash(VALUE try_hash)is_a_hash65,1373
224
- is_an_array(VALUE try_array)is_an_array71,1446
225
- bool is_a_num(VALUE try_num)is_a_num76,1519
226
- get_from_hash(VALUE hash, char * sym) get_from_hash82,1625
227
- set_hash_value(VALUE hash, char * sym, VALUE val)set_hash_value91,1808
228
- delete_from_hash(VALUE hash, char * sym)delete_from_hash101,2016
229
- hash_value_is(VALUE hash, char * sym, VALUE val)hash_value_is111,2295
230
- has_optional_hash_arg(VALUE hash, char * sym) has_optional_hash_arg122,2482
231
- set_array_value(VALUE array, int index, VALUE val)set_array_value134,2710
232
- get_from_array(VALUE array, int index) get_from_array144,2913
233
- init_image_local(VALUE image)init_image_local154,3092
234
- set_image_local(VALUE image, int name, VALUE val)set_image_local173,3553
235
- get_image_local(VALUE image, int name)get_image_local183,3731
236
- convert_image_local_color_to_rgba(VALUE image)convert_image_local_color_to_rgba252,5880
237
- save_rgba_to_image_local_color(VALUE image, rgba color)save_rgba_to_image_local_color266,6319
238
- create_image(VALUE window, int width, int height)create_image283,6877
239
- not_a_color(rgba color1) not_a_color303,7451
240
- is_a_color(rgba color1)is_a_color309,7516
241
- cmp_color(rgba color1, rgba color2) cmp_color315,7583
242
- color_copy(float * source, float * dest) color_copy323,7778
243
- zero_color(float * tex) zero_color330,7908
244
- get_pixel_color_from_chunk(float * chunk, int width, int height, int x, int y)get_pixel_color_from_chunk336,7982
245
- get_pixel_color(texture_info * tex, int x, int y) get_pixel_color357,8429
246
- get_pixel_data(texture_info * tex, int x, int y) get_pixel_data379,9024
247
- set_pixel_color(rgba * pixel_color, texture_info * tex, int x, int y) set_pixel_color388,9204
248
- find_color_from_string(char * try_color) find_color_from_string410,9769
249
- convert_rgba_to_rb_color(rgba * pix)convert_rgba_to_rb_color471,12271
250
- convert_rb_color_to_rgba(VALUE cval)convert_rb_color_to_rgba487,12747
251
- check_mask(VALUE mask) check_mask530,13964
252
- check_image(VALUE image) check_image548,14470
253
- is_gosu_image(VALUE try_image)is_gosu_image555,14634
254
- #define outcode outcode565,14808
255
- const int RIGHT = 8; //1000RIGHT566,14828
256
- const int TOP = 4; //0100TOP567,14857
257
- const int LEFT = 2; //0010LEFT568,14886
258
- const int BOTTOM = 1; //0001BOTTOM569,14915
259
- ComputeOutCode (int x, int y, int xmin, int ymin, int xmax, int ymax)ComputeOutCode574,15083
260
- cohen_sutherland_clip (int * x0, int * y0,int * x1, int * y1, int xmin, int ymin,cohen_sutherland_clip592,15643
261
- constrain_boundaries(int * x0, int * y0, int * x1, int * y1, int width, int height) constrain_boundaries669,18664
262
- bound_by_rect_and_inner(int x, int y, int x0, int y0, int x1, int y1, int inner) bound_by_rect_and_inner692,19249
263
- bound_by_rect(int x, int y, int x0, int y0, int x1, int y1) bound_by_rect701,19577
264
- calc_pixel_offset_for_action(action_struct * cur, texture_info * tex, int x, int y) calc_pixel_offset_for_action708,19783
265
- calc_pixel_offset(texture_info * tex, int x, int y) calc_pixel_offset717,20019
266
- max_quad_size(void)max_quad_size726,20217
267
- check_for_texture_info(VALUE image) check_for_texture_info751,20843
268
- allocate_texture(int width, int height)allocate_texture772,21587
269
- sync_to_gl(int tex_name, int x_offset, int y_offset, int width, int height, void * sub)sync_to_gl787,21894
270
- create_subtexture_and_sync_to_gl(image_bounds * img_bounds, texture_info * tex)create_subtexture_and_sync_to_gl799,22251
271
- get_image_chunk(texture_info * tex, int xmin, int ymin, int xmax, int ymax)get_image_chunk823,23096
272
- get_texture_info(VALUE image, texture_info * tex) get_texture_info852,23802
273
- is_a_point(VALUE try_point)is_a_point897,25165
274
- point_x(VALUE point)point_x907,25380
275
- point_y(VALUE point)point_y913,25461
276
- power(float base, int exp)power920,25598
277
- fact(int n)fact940,25926
278
- comb(int n, int k)comb948,26031
279
- bernstein(int n, int k, float u)bernstein955,26132
280
-
281
- utils.h,201
282
- #define GUARD_UTILS_HGUARD_UTILS_H2,22
283
- #define DRAW_OFFSET DRAW_OFFSET6,102
284
- #define LAZY_BOUNDS LAZY_BOUNDS7,124
285
- #define IMAGE_COLOR IMAGE_COLOR8,146
286
- #define USER_DEFAULTS USER_DEFAULTS9,168