texplay 0.2.721-i386-mingw32
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 +119 -0
- data/README.markdown +41 -0
- data/Rakefile +66 -0
- data/examples/common.rb +8 -0
- data/examples/example_alpha_blend.rb +31 -0
- data/examples/example_bezier.rb +42 -0
- data/examples/example_color_control.rb +69 -0
- data/examples/example_color_transform.rb +68 -0
- data/examples/example_dup.rb +75 -0
- data/examples/example_each.rb +42 -0
- data/examples/example_effect.rb +35 -0
- data/examples/example_fill.rb +44 -0
- data/examples/example_fill_old.rb +49 -0
- data/examples/example_fluent.rb +31 -0
- data/examples/example_gen_eval.rb +34 -0
- data/examples/example_hash_arguments.rb +47 -0
- data/examples/example_lsystem.rb +61 -0
- data/examples/example_melt.rb +27 -0
- data/examples/example_polyline.rb +43 -0
- data/examples/example_scale.rb +29 -0
- data/examples/example_simple.rb +38 -0
- data/examples/example_splice.rb +27 -0
- data/examples/example_sync.rb +60 -0
- data/examples/example_turtle.rb +40 -0
- data/examples/example_weird.rb +29 -0
- data/examples/media/bird.png +0 -0
- data/examples/media/empty2.png +0 -0
- data/examples/media/gob.png +0 -0
- data/examples/media/gosu.png +0 -0
- data/examples/media/green.png +0 -0
- data/examples/media/logo.png +0 -0
- data/examples/media/maria.png +0 -0
- data/examples/media/rose.bmp +0 -0
- data/examples/media/sand1.png +0 -0
- data/examples/media/sunset.png +0 -0
- data/examples/media/texplay.png +0 -0
- data/lib/1.8/texplay.so +0 -0
- data/lib/1.9/texplay.so +0 -0
- data/lib/texplay/version.rb +3 -0
- data/lib/texplay-contrib.rb +171 -0
- data/lib/texplay.rb +137 -0
- metadata +115 -0
data/lib/texplay.rb
ADDED
@@ -0,0 +1,137 @@
|
|
1
|
+
# (C) John Mair 2009, under the MIT licence
|
2
|
+
|
3
|
+
begin
|
4
|
+
require 'rubygems'
|
5
|
+
rescue LoadError
|
6
|
+
end
|
7
|
+
|
8
|
+
direc = File.dirname(__FILE__)
|
9
|
+
|
10
|
+
# include gosu first
|
11
|
+
require 'rbconfig'
|
12
|
+
require 'gosu'
|
13
|
+
require "#{direc}/texplay/version"
|
14
|
+
|
15
|
+
module TexPlay
|
16
|
+
class << self
|
17
|
+
def on_setup(&block)
|
18
|
+
raise "need a block" if !block
|
19
|
+
|
20
|
+
@__init_procs__ ||= []
|
21
|
+
@__init_procs__.push(block)
|
22
|
+
end
|
23
|
+
|
24
|
+
def setup(receiver)
|
25
|
+
if @__init_procs__ then
|
26
|
+
@__init_procs__.each do |init_proc|
|
27
|
+
receiver.instance_eval(&init_proc)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
def create_blank_image(window, width, height)
|
33
|
+
Gosu::Image.new(window, EmptyImageStub.new(width, height))
|
34
|
+
end
|
35
|
+
|
36
|
+
alias_method :create_image, :create_blank_image
|
37
|
+
end
|
38
|
+
|
39
|
+
module Colors
|
40
|
+
Red = [1, 0, 0, 1]
|
41
|
+
Green = [0, 1, 0, 1]
|
42
|
+
Blue = [0, 0, 1, 1]
|
43
|
+
Black = [0, 0, 0, 1]
|
44
|
+
White = [1, 1, 1, 1]
|
45
|
+
Grey = [0.5, 0.5, 0.5, 1]
|
46
|
+
Alpha = [0, 0, 0, 0]
|
47
|
+
Purple = [1, 0, 1, 1]
|
48
|
+
Yellow = [1, 1, 0, 1]
|
49
|
+
Cyan = [0, 1, 1, 1]
|
50
|
+
Orange = [1, 0.5, 0, 1]
|
51
|
+
Brown = [0.39, 0.26, 0.13, 1]
|
52
|
+
Turquoise = [1, 0.6, 0.8, 1]
|
53
|
+
Tyrian = [0.4, 0.007, 0.235, 1]
|
54
|
+
end
|
55
|
+
include Colors
|
56
|
+
end
|
57
|
+
|
58
|
+
# credit to philomory for this class
|
59
|
+
class EmptyImageStub
|
60
|
+
def initialize(w, h)
|
61
|
+
@w, @h = w, h
|
62
|
+
end
|
63
|
+
|
64
|
+
def to_blob
|
65
|
+
"\0" * @w * @h * 4
|
66
|
+
end
|
67
|
+
|
68
|
+
def rows
|
69
|
+
@h
|
70
|
+
end
|
71
|
+
|
72
|
+
def columns
|
73
|
+
@w
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
# bring in user-defined extensions to TexPlay
|
78
|
+
direc = File.dirname(__FILE__)
|
79
|
+
dlext = Config::CONFIG['DLEXT']
|
80
|
+
begin
|
81
|
+
if RUBY_VERSION && RUBY_VERSION =~ /1.9/
|
82
|
+
require "#{direc}/1.9/texplay.#{dlext}"
|
83
|
+
else
|
84
|
+
require "#{direc}/1.8/texplay.#{dlext}"
|
85
|
+
end
|
86
|
+
rescue LoadError => e
|
87
|
+
require "#{direc}/texplay.#{dlext}"
|
88
|
+
end
|
89
|
+
|
90
|
+
require "#{direc}/texplay-contrib"
|
91
|
+
|
92
|
+
# monkey patching the Gosu::Image class to add image manipulation functionality
|
93
|
+
module Gosu
|
94
|
+
class Image
|
95
|
+
|
96
|
+
# bring in the TexPlay image manipulation methods
|
97
|
+
include TexPlay
|
98
|
+
|
99
|
+
attr_reader :__window__
|
100
|
+
|
101
|
+
class << self
|
102
|
+
alias_method :original_new, :new
|
103
|
+
|
104
|
+
def new(*args, &block)
|
105
|
+
|
106
|
+
# invoke old behaviour
|
107
|
+
obj = original_new(*args, &block)
|
108
|
+
|
109
|
+
# refresh the TexPlay image cache
|
110
|
+
if obj.width <= (TexPlay::TP_MAX_QUAD_SIZE) &&
|
111
|
+
obj.height <= (TexPlay::TP_MAX_QUAD_SIZE) && obj.quad_cached? then
|
112
|
+
|
113
|
+
obj.refresh_cache
|
114
|
+
end
|
115
|
+
|
116
|
+
# run custom setup
|
117
|
+
TexPlay::setup(obj)
|
118
|
+
|
119
|
+
obj.instance_variable_set(:@__window__, args.first)
|
120
|
+
|
121
|
+
# return the new image
|
122
|
+
obj
|
123
|
+
end
|
124
|
+
end
|
125
|
+
end
|
126
|
+
end
|
127
|
+
|
128
|
+
# a bug in ruby 1.8.6 rb_eval_string() means i must define this here (rather than in texplay.c)
|
129
|
+
class Proc
|
130
|
+
def __context__
|
131
|
+
eval('self', self.binding)
|
132
|
+
end
|
133
|
+
end
|
134
|
+
|
135
|
+
|
136
|
+
|
137
|
+
|
metadata
ADDED
@@ -0,0 +1,115 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: texplay
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 0
|
7
|
+
- 2
|
8
|
+
- 721
|
9
|
+
version: 0.2.721
|
10
|
+
platform: i386-mingw32
|
11
|
+
authors:
|
12
|
+
- John Mair (banisterfiend)
|
13
|
+
autorequire:
|
14
|
+
bindir: bin
|
15
|
+
cert_chain: []
|
16
|
+
|
17
|
+
date: 2010-03-13 00:00:00 +13:00
|
18
|
+
default_executable:
|
19
|
+
dependencies:
|
20
|
+
- !ruby/object:Gem::Dependency
|
21
|
+
name: gosu
|
22
|
+
prerelease: false
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
24
|
+
requirements:
|
25
|
+
- - ">="
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
segments:
|
28
|
+
- 0
|
29
|
+
- 7
|
30
|
+
- 14
|
31
|
+
version: 0.7.14
|
32
|
+
type: :runtime
|
33
|
+
version_requirements: *id001
|
34
|
+
description: TexPlay is a light-weight image manipulation framework for Ruby and Gosu
|
35
|
+
email: jrmair@gmail.com
|
36
|
+
executables: []
|
37
|
+
|
38
|
+
extensions: []
|
39
|
+
|
40
|
+
extra_rdoc_files: []
|
41
|
+
|
42
|
+
files:
|
43
|
+
- Rakefile
|
44
|
+
- README.markdown
|
45
|
+
- CHANGELOG
|
46
|
+
- lib/texplay.rb
|
47
|
+
- lib/texplay-contrib.rb
|
48
|
+
- lib/texplay/version.rb
|
49
|
+
- lib/1.8/texplay.so
|
50
|
+
- lib/1.9/texplay.so
|
51
|
+
- examples/common.rb
|
52
|
+
- examples/example_alpha_blend.rb
|
53
|
+
- examples/example_bezier.rb
|
54
|
+
- examples/example_color_control.rb
|
55
|
+
- examples/example_color_transform.rb
|
56
|
+
- examples/example_dup.rb
|
57
|
+
- examples/example_each.rb
|
58
|
+
- examples/example_effect.rb
|
59
|
+
- examples/example_fill.rb
|
60
|
+
- examples/example_fill_old.rb
|
61
|
+
- examples/example_fluent.rb
|
62
|
+
- examples/example_gen_eval.rb
|
63
|
+
- examples/example_hash_arguments.rb
|
64
|
+
- examples/example_lsystem.rb
|
65
|
+
- examples/example_melt.rb
|
66
|
+
- examples/example_polyline.rb
|
67
|
+
- examples/example_scale.rb
|
68
|
+
- examples/example_simple.rb
|
69
|
+
- examples/example_splice.rb
|
70
|
+
- examples/example_sync.rb
|
71
|
+
- examples/example_turtle.rb
|
72
|
+
- examples/example_weird.rb
|
73
|
+
- examples/media/bird.png
|
74
|
+
- examples/media/empty2.png
|
75
|
+
- examples/media/gob.png
|
76
|
+
- examples/media/gosu.png
|
77
|
+
- examples/media/green.png
|
78
|
+
- examples/media/logo.png
|
79
|
+
- examples/media/maria.png
|
80
|
+
- examples/media/rose.bmp
|
81
|
+
- examples/media/sand1.png
|
82
|
+
- examples/media/sunset.png
|
83
|
+
- examples/media/texplay.png
|
84
|
+
has_rdoc: true
|
85
|
+
homepage: http://banisterfiend.wordpress.com/2008/08/23/texplay-an-image-manipulation-tool-for-ruby-and-gosu/
|
86
|
+
licenses: []
|
87
|
+
|
88
|
+
post_install_message:
|
89
|
+
rdoc_options: []
|
90
|
+
|
91
|
+
require_paths:
|
92
|
+
- lib
|
93
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
94
|
+
requirements:
|
95
|
+
- - ">="
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
segments:
|
98
|
+
- 0
|
99
|
+
version: "0"
|
100
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
101
|
+
requirements:
|
102
|
+
- - ">="
|
103
|
+
- !ruby/object:Gem::Version
|
104
|
+
segments:
|
105
|
+
- 0
|
106
|
+
version: "0"
|
107
|
+
requirements: []
|
108
|
+
|
109
|
+
rubyforge_project:
|
110
|
+
rubygems_version: 1.3.6
|
111
|
+
signing_key:
|
112
|
+
specification_version: 3
|
113
|
+
summary: TexPlay is a light-weight image manipulation framework for Ruby and Gosu
|
114
|
+
test_files: []
|
115
|
+
|