texplay 0.2.4 → 0.2.5

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.
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