texplay 0.2.940 → 0.2.950

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG CHANGED
@@ -1,3 +1,8 @@
1
+ 10/6/10
2
+ version 0.2.950
3
+ * fixed bug in apply_drawing_mode, wasn't using blended_pixel as source_pixel
4
+ * hex literal colors now accepted, e.g 0xffff0000 (red)
5
+
1
6
  9/6/10
2
7
  version 0.2.940
3
8
  * hopefully fixed :trace behaviour. Should now return nil for color when
data/README.markdown CHANGED
@@ -5,7 +5,7 @@
5
5
  INSTRUCTIONS
6
6
  ============
7
7
 
8
- **TexPlay version 0.2.940**
8
+ **TexPlay version 0.2.950**
9
9
 
10
10
  [Read The Documentation](http://banisterfiend.wordpress.com/2008/08/23/texplay-an-image-manipulation-tool-for-ruby-and-gosu/)
11
11
 
@@ -0,0 +1,33 @@
1
+ require 'rubygems'
2
+ require 'common'
3
+ require 'gosu'
4
+ require 'texplay'
5
+
6
+
7
+
8
+ # TEST_CASE 1 shows 2 pieces of text, but the background is black, even with :chroma_key. TEST_CASE 2 shows nothing.
9
+ # However, if you remove the :chroma_key's, you see a black background (and no text) in TEST_CASE 2, so there, :chroma_key appears to work.
10
+
11
+ class Wnd < Gosu::Window
12
+ def initialize
13
+ super(500, 200, false)
14
+ self.caption = "Splice Issues"
15
+
16
+ @chrome = TexPlay::create_blank_image(self, 200, 200)
17
+ @sunset = Gosu::Image.new(self, "#{Common::MEDIA}/sand1.png")
18
+
19
+
20
+ @long_text = Gosu::Image.from_text(self, "This is a long piece of text..", Gosu::default_font_name, 60)
21
+ @chrome.splice @long_text, 0, 0
22
+
23
+ @chrome.rect 0,0, @chrome.width, @chrome.height, :texture => @sunset, :fill => true, :mode => :multiply
24
+
25
+ end
26
+
27
+ def draw
28
+ @chrome.draw(0,0,1)
29
+ end
30
+ end
31
+
32
+ Wnd.new.show
33
+
@@ -11,9 +11,9 @@ class W < Gosu::Window
11
11
  @gosu = Gosu::Image.new(self, "#{Common::MEDIA}/gosu.png")
12
12
 
13
13
  # put a border on the image
14
- @img.rect 0,0, @img.width - 1, @img.height - 1, :color => Gosu::Color::CYAN
14
+ @img.rect 0,0, @img.width - 1, @img.height - 1, :color => 0xffff00ff, :fill => true
15
15
 
16
- # perform some simple drawing actions
16
+ # perform some e drawing actions
17
17
  @img.line 0,0, @img.width - 1, @img.height - 1, :color => Gosu::Color::AQUA
18
18
  @img.circle 400, 100, 40, :fill => true, :color => [rand, rand, rand, 1]
19
19
  @img.rect 200, 300, 300, 400, :fill => true, :color => :red, :source_ignore => [:green],
@@ -19,7 +19,7 @@ static void prepare_color_control(action_struct * cur);
19
19
  static void prepare_color_select(action_struct * cur);
20
20
  static rgba apply_lerp(action_struct * payload, texture_info * tex, int x, int y);
21
21
  static rgba apply_alpha_blend(action_struct * payload, texture_info * tex, int x, int y, rgba blended_pixel);
22
- static rgba apply_drawing_mode(action_struct * payload, texture_info * tex, int x, int y);
22
+ static rgba apply_drawing_mode(action_struct * payload, texture_info * tex, int x, int y, rgba blended_pixel);
23
23
 
24
24
  static rgba apply_color_control_transform(action_struct * payload, texture_info * tex, int x, int y);
25
25
  static rgba exec_color_control_proc(action_struct * cur, texture_info * tex, int x, int y, rgba blended_pixel);
@@ -230,7 +230,7 @@ set_pixel_color_with_style(action_struct * payload, texture_info * tex, int x, i
230
230
 
231
231
  /* drawing modes */
232
232
  if(payload->pen.has_drawing_mode) {
233
- blended_pixel = apply_drawing_mode(payload, tex, x, y);
233
+ blended_pixel = apply_drawing_mode(payload, tex, x, y, blended_pixel);
234
234
  }
235
235
 
236
236
  /* TO DO: refactor into its own helper function
@@ -817,11 +817,10 @@ mode_colorburn_channel(float b, float s)
817
817
  }
818
818
 
819
819
  static rgba
820
- apply_drawing_mode(action_struct * payload, texture_info * tex, int x, int y)
820
+ apply_drawing_mode(action_struct * payload, texture_info * tex, int x, int y, rgba source_pixel)
821
821
  {
822
822
  rgba finished_pixel;
823
823
 
824
- rgba source_pixel = payload->color;
825
824
  rgba dest_pixel = get_pixel_color(tex, x, y);
826
825
 
827
826
  rgba_char dest_pixel_char = color_float_to_int_format(dest_pixel);
data/ext/texplay/utils.c CHANGED
@@ -276,8 +276,6 @@ save_rgba_to_image_local_color(VALUE image, rgba color)
276
276
  return ilc;
277
277
  }
278
278
 
279
-
280
-
281
279
  bool
282
280
  not_a_color(rgba color1)
283
281
  {
@@ -427,14 +425,7 @@ convert_rgba_to_gosu_color(rgba * pix)
427
425
  {
428
426
  if (not_a_color(*pix)) return Qnil;
429
427
 
430
- VALUE gosu_color_class = 0;
431
-
432
- if (gosu_color_class == 0) {
433
- VALUE gosu_class = rb_const_get(rb_cObject, rb_intern("Gosu"));
434
- gosu_color_class = rb_const_get(gosu_class, rb_intern("Color"));
435
- }
436
-
437
- VALUE gosu_color = rb_funcall(gosu_color_class, rb_intern("new"), 0);
428
+ VALUE gosu_color = rb_funcall(gosu_color_class(), rb_intern("new"), 0);
438
429
 
439
430
  rb_funcall(gosu_color, rb_intern("red="), 1, INT2FIX(pix->red * 255));
440
431
  rb_funcall(gosu_color, rb_intern("green="), 1, INT2FIX(pix->green * 255));
@@ -444,7 +435,18 @@ convert_rgba_to_gosu_color(rgba * pix)
444
435
  return gosu_color;
445
436
  }
446
437
 
438
+ VALUE
439
+ gosu_color_class()
440
+ {
441
+ VALUE gcolor_class = 0;
447
442
 
443
+ if (gcolor_class == 0) {
444
+ VALUE gosu_class = rb_const_get(rb_cObject, rb_intern("Gosu"));
445
+ gcolor_class = rb_const_get(gosu_class, rb_intern("Color"));
446
+ }
447
+
448
+ return gcolor_class;
449
+ }
448
450
 
449
451
  /* convert Ruby color to C color */
450
452
  rgba
@@ -474,6 +476,12 @@ convert_rb_color_to_rgba(VALUE cval)
474
476
  my_color.alpha = 1;
475
477
 
476
478
  break;
479
+ case T_FIXNUM:
480
+ case T_BIGNUM:
481
+ return convert_gosu_to_rgba_color(rb_funcall(gosu_color_class(),
482
+ rb_intern("new"), 1, cval));
483
+ break;
484
+
477
485
  default:
478
486
  rb_raise(rb_eArgError, "unsupported argument type for color. Got type 0x%x\n", TYPE(cval) );
479
487
  }
data/ext/texplay/utils.h CHANGED
@@ -23,6 +23,7 @@ bool not_a_color(rgba color1);
23
23
  bool is_a_color(rgba color1);
24
24
  VALUE convert_rgba_to_rb_color(rgba * pix);
25
25
  rgba convert_rb_color_to_rgba(VALUE cval);
26
+ VALUE gosu_color_class();
26
27
  bool is_gosu_color(VALUE try_color);
27
28
  bool is_rb_raw_color(VALUE cval);
28
29
  bool not_rb_raw_color(VALUE cval);
@@ -1,3 +1,3 @@
1
1
  module TexPlay
2
- VERSION = "0.2.940"
2
+ VERSION = "0.2.950"
3
3
  end
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 2
8
- - 940
9
- version: 0.2.940
8
+ - 950
9
+ version: 0.2.950
10
10
  platform: ruby
11
11
  authors:
12
12
  - John Mair (banisterfiend)
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-06-09 00:00:00 +02:00
17
+ date: 2010-06-10 00:00:00 +02:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
@@ -78,6 +78,7 @@ files:
78
78
  - examples/example_fill.rb
79
79
  - examples/example_fill_old.rb
80
80
  - examples/example_fluent.rb
81
+ - examples/example_font.rb
81
82
  - examples/example_gen_eval.rb
82
83
  - examples/example_hash_arguments.rb
83
84
  - examples/example_ippa.rb