dxopal 1.2.0 → 1.3.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -6,7 +6,7 @@
6
6
  <title>
7
7
  Top Level Namespace
8
8
 
9
- &mdash; Documentation by YARD 0.9.12
9
+ &mdash; Documentation by YARD 0.9.16
10
10
 
11
11
  </title>
12
12
 
@@ -100,9 +100,9 @@
100
100
  </div>
101
101
 
102
102
  <div id="footer">
103
- Generated on Wed May 16 19:58:23 2018 by
103
+ Generated on Sat Sep 29 15:56:47 2018 by
104
104
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
105
- 0.9.12 (ruby-2.4.2).
105
+ 0.9.16 (ruby-2.5.1).
106
106
  </div>
107
107
 
108
108
  </div>
@@ -23,12 +23,6 @@ Gem::Specification.new do |spec|
23
23
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
24
24
  spec.require_paths = ["lib"]
25
25
 
26
- spec.add_runtime_dependency "opal", "~> 0.11.0"
27
26
  spec.add_runtime_dependency "thor", "~> 0.19.1"
28
27
  spec.add_runtime_dependency "rack", "~> 2.0"
29
- spec.add_development_dependency "bundler", "~> 1.14"
30
- spec.add_development_dependency "rake", "~> 10.0"
31
- spec.add_development_dependency "yard", "~> 0.9.12"
32
- spec.add_development_dependency "puma", "~> 3.11.2"
33
- spec.add_development_dependency "opal-sprockets", "~> 0.4.1"
34
28
  end
@@ -15,17 +15,6 @@ require 'dxopal/version'
15
15
  # without even install Ruby)
16
16
  require 'opal-parser'
17
17
 
18
- # Patch to opal-parser
19
- def require_remote(url)
20
- %x{
21
- var r = new XMLHttpRequest();
22
- r.overrideMimeType("text/plain"); // Patch for Firefox + file://
23
- r.open("GET", url, false);
24
- r.send('');
25
- }
26
- eval `r.responseText`
27
- end
28
-
29
18
  # These opal stdlibs will be embedded in dxopal.js.
30
19
  require 'singleton'
31
20
  require 'delegate'
@@ -35,6 +24,9 @@ require 'promise'
35
24
  require 'set'
36
25
  require 'time'
37
26
 
27
+ # Patches
28
+ require 'dxopal/patches/require_remote'
29
+
38
30
  module DXOpal
39
31
  include DXOpal::Constants::Colors
40
32
  include DXOpal::Input::KeyCodes
@@ -70,13 +70,18 @@ module DXOpal
70
70
  draw_ex(x, y, image, angle: angle, center_x: center_x, center_y: center_y)
71
71
  end
72
72
 
73
+ BLEND_TYPES = {
74
+ alpha: "source-over", # A over B (Default)
75
+ add: "lighter" # A + B
76
+ }
77
+
73
78
  def draw_ex(x, y, image, options={})
74
79
  scale_x = options[:scale_x] || 1
75
80
  scale_y = options[:scale_y] || 1
76
81
  center_x = options[:center_x] || image.width/2
77
82
  center_y = options[:center_y] || image.height/2
78
- # TODO: alpha
79
- # TODO: blend
83
+ alpha = options[:alpha] || 255
84
+ blend = options[:blend] || :alpha
80
85
  angle = options[:angle] || 0
81
86
 
82
87
  cx = x + center_x
@@ -85,7 +90,11 @@ module DXOpal
85
90
  #{@ctx}.translate(cx, cy);
86
91
  #{@ctx}.rotate(angle * Math.PI / 180.0);
87
92
  #{@ctx}.scale(scale_x, scale_y);
93
+ #{@ctx}.save();
94
+ #{@ctx}.globalAlpha = alpha / 255;
95
+ #{@ctx}.globalCompositeOperation = #{BLEND_TYPES[blend]};
88
96
  #{@ctx}.drawImage(#{image.canvas}, x-cx, y-cy);
97
+ #{@ctx}.restore();
89
98
  #{@ctx}.setTransform(1, 0, 0, 1, 0, 0); // reset
90
99
  }
91
100
  return self
@@ -0,0 +1,10 @@
1
+ require 'opal-parser'
2
+ def require_remote(url)
3
+ %x{
4
+ var r = new XMLHttpRequest();
5
+ r.overrideMimeType("text/plain"); // https://github.com/yhara/dxopal/issues/12
6
+ r.open("GET", url, false);
7
+ r.send('');
8
+ }
9
+ eval `r.responseText`
10
+ end
@@ -53,6 +53,11 @@ module DXOpal
53
53
  attr_accessor :scale_x, :scale_y
54
54
  # Set rotation center (default: center of `image`)
55
55
  attr_accessor :center_x, :center_y
56
+ # Set alpha (0~255, default: nil)
57
+ attr_accessor :alpha
58
+ # Set blend type (Any of :alpha(default), :add)
59
+ # (:none, :add2 and :sub are not implemented yet; Pull request is welcome)
60
+ attr_accessor :blend
56
61
 
57
62
  attr_reader :x, :y
58
63
 
@@ -88,6 +93,7 @@ module DXOpal
88
93
 
89
94
  Window.draw_ex(@x, @y, @image,
90
95
  scale_x: @scale_x, scale_y: @scale_y,
96
+ alpha: @alpha, blend: @blend,
91
97
  angle: @angle, center_x: @center_x, center_y: @center_y)
92
98
  end
93
99
  end
@@ -1,3 +1,3 @@
1
1
  module DXOpal
2
- VERSION = "1.2.0"
2
+ VERSION = "1.3.0"
3
3
  end
metadata CHANGED
@@ -1,29 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dxopal
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yutaka HARA
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-05-16 00:00:00.000000000 Z
11
+ date: 2018-09-29 00:00:00.000000000 Z
12
12
  dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: opal
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - "~>"
18
- - !ruby/object:Gem::Version
19
- version: 0.11.0
20
- type: :runtime
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - "~>"
25
- - !ruby/object:Gem::Version
26
- version: 0.11.0
27
13
  - !ruby/object:Gem::Dependency
28
14
  name: thor
29
15
  requirement: !ruby/object:Gem::Requirement
@@ -52,76 +38,6 @@ dependencies:
52
38
  - - "~>"
53
39
  - !ruby/object:Gem::Version
54
40
  version: '2.0'
55
- - !ruby/object:Gem::Dependency
56
- name: bundler
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: '1.14'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - "~>"
67
- - !ruby/object:Gem::Version
68
- version: '1.14'
69
- - !ruby/object:Gem::Dependency
70
- name: rake
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - "~>"
74
- - !ruby/object:Gem::Version
75
- version: '10.0'
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - "~>"
81
- - !ruby/object:Gem::Version
82
- version: '10.0'
83
- - !ruby/object:Gem::Dependency
84
- name: yard
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - "~>"
88
- - !ruby/object:Gem::Version
89
- version: 0.9.12
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - "~>"
95
- - !ruby/object:Gem::Version
96
- version: 0.9.12
97
- - !ruby/object:Gem::Dependency
98
- name: puma
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - "~>"
102
- - !ruby/object:Gem::Version
103
- version: 3.11.2
104
- type: :development
105
- prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - "~>"
109
- - !ruby/object:Gem::Version
110
- version: 3.11.2
111
- - !ruby/object:Gem::Dependency
112
- name: opal-sprockets
113
- requirement: !ruby/object:Gem::Requirement
114
- requirements:
115
- - - "~>"
116
- - !ruby/object:Gem::Version
117
- version: 0.4.1
118
- type: :development
119
- prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- requirements:
122
- - - "~>"
123
- - !ruby/object:Gem::Version
124
- version: 0.4.1
125
41
  description:
126
42
  email:
127
43
  - yutaka.hara+github@gmail.com
@@ -180,6 +96,7 @@ files:
180
96
  - opal/dxopal/image.rb
181
97
  - opal/dxopal/input.rb
182
98
  - opal/dxopal/input/key_codes.rb
99
+ - opal/dxopal/patches/require_remote.rb
183
100
  - opal/dxopal/remote_resource.rb
184
101
  - opal/dxopal/sound.rb
185
102
  - opal/dxopal/sound_effect.rb