rgss 0.0.1

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.
Files changed (64) hide show
  1. checksums.yaml +7 -0
  2. data/.clang-format +6 -0
  3. data/.gitignore +167 -0
  4. data/.yardopts +6 -0
  5. data/CHANGELOG.md +4 -0
  6. data/Gemfile +4 -0
  7. data/LICENSE.txt +21 -0
  8. data/Rakefile +9 -0
  9. data/ext/rgss/cglm-v0.7.9.tar.gz +0 -0
  10. data/ext/rgss/color.c +599 -0
  11. data/ext/rgss/entity.c +373 -0
  12. data/ext/rgss/extconf.rb +53 -0
  13. data/ext/rgss/font.c +135 -0
  14. data/ext/rgss/game.c +469 -0
  15. data/ext/rgss/game.h +99 -0
  16. data/ext/rgss/gl.c +3217 -0
  17. data/ext/rgss/glad.c +1140 -0
  18. data/ext/rgss/glad.h +2129 -0
  19. data/ext/rgss/glfw.c +1453 -0
  20. data/ext/rgss/graphics.c +324 -0
  21. data/ext/rgss/image.c +274 -0
  22. data/ext/rgss/input.c +745 -0
  23. data/ext/rgss/khrplatform.h +290 -0
  24. data/ext/rgss/mat4.c +279 -0
  25. data/ext/rgss/pax_global_header +1 -0
  26. data/ext/rgss/point.c +253 -0
  27. data/ext/rgss/rect.c +449 -0
  28. data/ext/rgss/rgss.c +56 -0
  29. data/ext/rgss/rgss.h +241 -0
  30. data/ext/rgss/stb_image.h +7762 -0
  31. data/ext/rgss/stb_image_write.h +1690 -0
  32. data/ext/rgss/stb_rect_pack.h +628 -0
  33. data/ext/rgss/stb_truetype.h +5011 -0
  34. data/ext/rgss/utf8.h +1652 -0
  35. data/ext/rgss/uthash.h +1133 -0
  36. data/ext/rgss/vec.c +114 -0
  37. data/ext/rgss/vec.h +192 -0
  38. data/ext/rgss/vec2.c +489 -0
  39. data/ext/rgss/vec3.c +751 -0
  40. data/ext/rgss/vec4.c +681 -0
  41. data/lib/rgss.rb +140 -0
  42. data/lib/rgss/batch.rb +57 -0
  43. data/lib/rgss/blend.rb +47 -0
  44. data/lib/rgss/game_object.rb +28 -0
  45. data/lib/rgss/plane.rb +95 -0
  46. data/lib/rgss/renderable.rb +158 -0
  47. data/lib/rgss/rgss.so +0 -0
  48. data/lib/rgss/shader.rb +94 -0
  49. data/lib/rgss/shaders/sprite-frag.glsl +40 -0
  50. data/lib/rgss/shaders/sprite-vert.glsl +17 -0
  51. data/lib/rgss/sprite.rb +139 -0
  52. data/lib/rgss/stubs/color.rb +318 -0
  53. data/lib/rgss/stubs/gl.rb +1999 -0
  54. data/lib/rgss/stubs/glfw.rb +626 -0
  55. data/lib/rgss/stubs/rect.rb +324 -0
  56. data/lib/rgss/stubs/rpg.rb +267 -0
  57. data/lib/rgss/stubs/tone.rb +65 -0
  58. data/lib/rgss/texture.rb +132 -0
  59. data/lib/rgss/tilemap.rb +116 -0
  60. data/lib/rgss/version.rb +3 -0
  61. data/lib/rgss/viewport.rb +67 -0
  62. data/rgss.gemspec +44 -0
  63. data/test.png +0 -0
  64. metadata +178 -0
Binary file
@@ -0,0 +1,94 @@
1
+
2
+ module RGSS
3
+
4
+ class Shader < GameObject
5
+
6
+ PROJECTION_BINDING = 0
7
+
8
+ extend GL
9
+ include GL
10
+
11
+ def initialize(vertex, fragment, geometry = nil)
12
+ super(glCreateProgram)
13
+
14
+ raise(ArgumentError, 'vertex source cannot be nil') unless vertex
15
+ raise(ArgumentError, 'fragment source cannot be nil') unless fragment
16
+
17
+ v = compile(GL_VERTEX_SHADER, vertex)
18
+ f = compile(GL_FRAGMENT_SHADER, fragment)
19
+ g = geometry ? compile(GL_GEOMETRY_SHADER, geometry) : 0
20
+
21
+ glAttachShader(self.id, v)
22
+ glAttachShader(self.id, f)
23
+ glAttachShader(self.id, g) if g > 0
24
+
25
+ glLinkProgram(self.id)
26
+
27
+ [v, f, g].each do |shader|
28
+ next if shader.zero?
29
+ glDetachShader(self.id, shader)
30
+ glDeleteShader(shader)
31
+ end
32
+
33
+ buffer = "\0" * SIZEOF_INT
34
+ glGetProgramiv(self.id, GL_LINK_STATUS, buffer)
35
+
36
+ return if buffer.unpack1('i') == GL_TRUE
37
+
38
+ glGetProgramiv(self.id, GL_INFO_LOG_LENGTH, buffer)
39
+ length = buffer.unpack1('i')
40
+ message = "\0" * length
41
+
42
+ glGetProgramInfoLog(self.id, lengh, buffer, message)
43
+ raise(RuntimeError, "failed to link shader program: #{message}")
44
+
45
+ index = glGetUniformBlockIndex(self.id, 'ortho')
46
+ glUniformBlockBinding(@id, index, 0) if index >= 0
47
+
48
+ p index
49
+
50
+ if block_given?
51
+ yield self
52
+ dispose
53
+ end
54
+ end
55
+
56
+ def dispose
57
+ glDeleteProgram(self.id) if self.id.nonzero?
58
+ super
59
+ end
60
+
61
+ def valid?
62
+ self.id.nonzero? && glIsProgram(self.id)
63
+ end
64
+
65
+ def locate(uniform)
66
+ return uniform ? glGetUniformLocation(self.id, uniform) : -1
67
+ end
68
+
69
+ def use
70
+ glUseProgram(@id)
71
+ end
72
+
73
+ protected
74
+
75
+ def compile(type, source)
76
+
77
+ id = glCreateShader(type)
78
+ glShaderSource(id, source)
79
+ glCompileShader(id)
80
+
81
+ buffer = "\0" * SIZEOF_INT
82
+ glGetShaderiv(id, GL_COMPILE_STATUS, buffer)
83
+ return id if buffer.unpack1('i') == GL_TRUE
84
+
85
+ glGetShaderiv(id, GL_INFO_LOG_LENGTH, buffer)
86
+ length = buffer.unpack1('i')
87
+ message = "\0" * length
88
+
89
+ glGetShaderInfoLog(id, length, buffer, message)
90
+ raise(SyntaxError, "failed to compile shader: #{message}")
91
+ end
92
+ end
93
+
94
+ end
@@ -0,0 +1,40 @@
1
+ #version 330 core
2
+
3
+ in vec2 uv;
4
+ out vec4 result;
5
+
6
+ uniform sampler2D image;
7
+ uniform vec4 color;
8
+ uniform vec4 tone;
9
+ uniform vec4 flash;
10
+ uniform float opacity = 1.0;
11
+ uniform float hue;
12
+
13
+ const vec3 k = vec3(0.57735, 0.57735, 0.57735);
14
+
15
+ void main() {
16
+
17
+ // Get the fragment from bound texture
18
+ result = texture(image, uv);
19
+
20
+ // Applu hue shift
21
+ float angle = cos(radians(hue));
22
+ vec3 rgb = vec3(result.rgb * angle + cross(k, result.rgb) * sin(radians(hue)) + k * dot(k, result.rgb) * (1.0 - angle));
23
+ result = vec4(rgb, result.a);
24
+
25
+ // Apply color blending
26
+ result = vec4(mix(result.rgb, color.rgb, color.a), result.a);
27
+
28
+ // Apply tone blending
29
+ float avg = (result.r + result.g + result.b) / 3.0;
30
+ result.r = result.r - ((result.r - avg) * tone.a);
31
+ result.g = result.g - ((result.g - avg) * tone.a);
32
+ result.b = result.b - ((result.b - avg) * tone.a);
33
+ result = vec4(clamp(result.rgb + tone.rgb, 0.0, 1.0), result.a);
34
+
35
+ // Flash effect color blending
36
+ result = vec4(mix(result.rgb, flash.rgb, flash.a), result.a);
37
+
38
+ // Apply opacity
39
+ result *= opacity;
40
+ }
@@ -0,0 +1,17 @@
1
+ #version 330 core
2
+
3
+ in layout(location = 0) vec4 vertex;
4
+
5
+ out vec2 uv;
6
+
7
+ layout (std140) uniform ortho
8
+ {
9
+ mat4 projection;
10
+ };
11
+
12
+ uniform mat4 model;
13
+
14
+ void main() {
15
+ uv = vertex.zw;
16
+ gl_Position = projection * model * vec4(vertex.xy, 0.0, 1.0);
17
+ }
@@ -0,0 +1,139 @@
1
+
2
+ module RGSS
3
+
4
+ class Sprite < Renderable
5
+
6
+ FLIP_NONE = 0x00
7
+ FLIP_X = 0x01
8
+ FLIP_Y = 0x02
9
+ FLIP_BOTH = FLIP_X | FLIP_Y
10
+
11
+ attr_reader :texture
12
+ attr_accessor :flip
13
+
14
+ def initialize(*args, **opts)
15
+ super(opts[:viewport]&.batch || Graphics.batch)
16
+ vertex_setup
17
+ @flip = FLIP_NONE
18
+ self.texture = nil
19
+ self.src_rect = Rect.empty
20
+ end
21
+
22
+ def texture=(value)
23
+ @texture = value
24
+ self.src_rect = @texture ? @texture.rect : Rect.empty
25
+ value
26
+ end
27
+
28
+ def flip=(value)
29
+ @flip = value || FLIP_NONE
30
+ update_vertices
31
+ value
32
+ end
33
+
34
+ def src_rect=(rect)
35
+ @src_rect = rect || Rect.empty
36
+ self.size = rect.size
37
+ update_vertices
38
+ rect
39
+ end
40
+
41
+ def render(alpha)
42
+ return unless @texture && @visible && @opacity > 0.0
43
+ super(alpha)
44
+ @texture.bind
45
+ glBindVertexArray(@vao)
46
+ glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_BYTE, nil)
47
+ glBindVertexArray(GL_NONE)
48
+ end
49
+
50
+
51
+ def update_vertices
52
+ return unless @texture
53
+
54
+ l = @src_rect.x / @texture.width.to_f
55
+ t = @src_rect.y / @texture.height.to_f
56
+ r = l + @src_rect.width / @texture.width.to_f
57
+ b = t + @src_rect.height / @texture.height.to_f
58
+
59
+ if (@flip & FLIP_X).nonzero?
60
+ l, r = r, l
61
+ end
62
+ if (@flip & FLIP_Y).nonzero?
63
+ t, b = b, t
64
+ end
65
+ vertices =
66
+ [
67
+ 0.0, 1.0, l, b, # Bottom-Left
68
+ 1.0, 0.0, r, t, # Top-Right
69
+ 0.0, 0.0, l, t, # Top-Left
70
+ 1.0, 1.0, r, b, # Bottom-Right
71
+ ].pack('f*')
72
+ glBindBuffer(GL_ARRAY_BUFFER, @vbo)
73
+ glBufferSubData(GL_ARRAY_BUFFER, 0, vertices.size, vertices)
74
+ glBindBuffer(GL_ARRAY_BUFFER, 0)
75
+ end
76
+ end
77
+
78
+
79
+ class SpriteAtlas < Sprite
80
+
81
+ attr_reader :region
82
+ attr_reader :columns
83
+ attr_reader :rows
84
+
85
+ attr_reader :cx
86
+ attr_reader :cy
87
+
88
+ def initialize(*args, **opts)
89
+ @region = opts[:region]
90
+ @columns = opts[:columns] || 0
91
+ @rows = opts[:rows] || 0
92
+ super
93
+
94
+ @cx = 0
95
+ @cy = 0
96
+ update_src_rect
97
+ end
98
+
99
+ def cx=(cell_x)
100
+ @cx = @columns.zero? ? 0 : cell_x % @columns
101
+ update_src_rect
102
+ cell_x
103
+ end
104
+
105
+ def cy=(cell_y)
106
+ @cy = @rows.zero? ? 0 : cell_y % @rows
107
+ update_src_rect
108
+ cell_y
109
+ end
110
+
111
+ def region=(value)
112
+ @region = value
113
+ update_src_rect
114
+ value
115
+ end
116
+
117
+ def select(cell_x, cell_y)
118
+ @cx = @columns.zero? ? 0 : cell_x % @columns
119
+ @cy = @rows.zero? ? 0 : cell_y % @rows
120
+ update_src_rect
121
+ end
122
+
123
+ private
124
+
125
+ def update_src_rect
126
+ return unless @texture
127
+
128
+ @region ||= @texture.rect
129
+ @cw = @columns.zero? ? 0 : @region.width / @columns
130
+ @ch = @rows.zero? ? 0 : @region.height / @rows
131
+
132
+ cell_x = (@cx * @cw) + @region.x
133
+ cell_y = (@cy * @ch) + @region.y
134
+
135
+ self.src_rect = Rect.new(cell_x, cell_y, @cw, @ch)
136
+ end
137
+ end
138
+
139
+ end
@@ -0,0 +1,318 @@
1
+ module RGSS
2
+ ##
3
+ # A structure for describing a color, in RGB, HSL, and HSV/HSB color-spaces, though RGBA is the internal format. All
4
+ # components are normalized floating point values in the range of `0.0` and `1.0`. Internally this class is
5
+ # represented as a typical 4 component vector, with 32-bit floating point values. Ruby uses a 64-bit `double` for
6
+ # floating point numbers, which have a higher precision (about 13 digits) compared to a 32-bit `float` (about 7
7
+ # digits), so bear this in mind and do not rely on any precision or accuracy of values beyond 6-7 digits, they should
8
+ # be ignored beyond that point.
9
+ #
10
+ # @note All out of range values are automatically clamped to their respective limits.
11
+ #
12
+ # @note All relevant methods implemented in `Object` (i.e. `#dup`, `#clone`, Marshalling, equality) have also been
13
+ # properly implemented/overridden, but have been omitted from the documentation for brevity.
14
+ class Color
15
+
16
+ ##
17
+ # The value of the red color component.
18
+ # @return [Float] a normalized value between `0.0` amd `1.0`.
19
+ attr_reader :r
20
+
21
+ ##
22
+ # The value of the green color component.
23
+ # @return [Float] a normalized value between `0.0` amd `1.0`.
24
+ attr_reader :g
25
+
26
+ ##
27
+ # The value of the blue color component.
28
+ # @return [Float] a normalized value between `0.0` amd `1.0`.
29
+ attr_reader :b
30
+
31
+ ##
32
+ # The value of the alpha color component.
33
+ # @return [Float] a normalized value between `0.0` amd `1.0`.
34
+ attr_reader :a
35
+
36
+ ##
37
+ # Creates a new instance of the {Color} class.
38
+ # @param red [Float] the red component, a normalized value between `0.0` and `1.0`.
39
+ # @param green [Float] the green component, a normalized value between `0.0` and `1.0`.
40
+ # @param blue [Float] the blue component, a normalized value between `0.0` and `1.0`.
41
+ # @param alpha [Float] the alpha component, a normalized value between `0.0` and `1.0`.
42
+ def initialize(red, green, blue, alpha = 1.0)
43
+ end
44
+
45
+ ##
46
+ # Creates an array instance that represents this object.
47
+ # @return [Array(Float, Float, Float, Float)] The newly created Array.
48
+ # @example
49
+ # Color::BLUE_VIOLET.to_a
50
+ # #=> []
51
+ def to_a
52
+ end
53
+ BLUE_VIOLET = Color.new(0.54118, 0.16863, 0.88627, 1.00000)
54
+ ##
55
+ # Creates a hash instance that represents this object.
56
+ # @return [Hash{Symbol => Float}] The newly created Hash.
57
+ # @example
58
+ # Color::BLUE_VIOLET.to_h
59
+ # #=> { :red => 0.54118, :green => 0.16863, :blue => 0.88627, :alpha => 1.0 }
60
+ def to_h
61
+ end
62
+
63
+ ##
64
+ # Creates a new {Color} by inverting the values of the this instance, producing the "negative" of the color.
65
+ # @param alpha [Boolean] `true` to invert the alpha component, otherwise `false` to maintain the same alpha.
66
+ # @return [Color] the resulting {Color} instance.
67
+ #
68
+ # @example
69
+ # magenta = Color.new(1.00000, 0.00000, 1.00000, 1.00000)
70
+ # #=> <1.0, 0.0, 1.0, 1.0>
71
+ # negative = magenta.inverse
72
+ # #> <0.0, 1.0, 0.0, 1.0>
73
+ def inverse(alpha = false)
74
+ end
75
+
76
+ ##
77
+ # Creates a new {Color} by linearly scaling the components of this instance by the specified value.
78
+ # @param scalar [Float] A scalar value to alter this value by.
79
+ # @return [Color] the resulting {Color} instance.
80
+ #
81
+ # @example
82
+ # white = Color.new(1.0, 1.0, 1.0, 1.0)
83
+ # #=> <1.0, 1.0, 1.0, 1.0>
84
+ # mid_gray = white * 0.5
85
+ # #=> <0.5, 0.5, 0.5, 0.5>
86
+ def *(scalar)
87
+ end
88
+
89
+ ##
90
+ # The hue component of the color from the HSL and HSB/HSV color-spaces.
91
+ # @return [Float] the hue of the color, in the range of `0.0` to `360.0`.
92
+ def hue
93
+ end
94
+
95
+ ##
96
+ # The saturation component of the color from the HSL and HSB/HSV color-spaces.
97
+ # @return [Float] the hue of the color, in the range of `0.0` to `1.0`.
98
+ def saturation
99
+ end
100
+
101
+ ##
102
+ # The lightness component of the color from the HSL color-space.
103
+ # @return [Float] the lightness of the color, in the range of `0.0` to `1.0`.
104
+ def lightness
105
+ end
106
+
107
+ ##
108
+ # The brightness/value component of the color from the HSB/HSV color-space.
109
+ # @return [Float] the brightness of the color, in the range of `0.0` to `1.0`.
110
+ def brightness
111
+ end
112
+
113
+ ##
114
+ # The values of the color in the HSL color-space.
115
+ # @return [Array(Float, Float, Float)] the HSL components.
116
+ # @note It is more efficient to retrieve all at values at once than each component individually.
117
+ def hsl
118
+ end
119
+
120
+ ##
121
+ # The values of the color in the HSB/HSV color-space.
122
+ # @return [Array(Float, Float, Float)] the HSB/HSV components.
123
+ # @note It is more efficient to retrieve all at values at once than each component individually.
124
+ def hsv
125
+ end
126
+
127
+ alias_method :red, :r
128
+ alias_method :green, :g
129
+ alias_method :blue, :b
130
+ alias_method :alpha, :a
131
+ alias_method :multiply, :*
132
+ alias_method :value, :brightness
133
+ alias_method :hsb, :hsv
134
+
135
+ ##
136
+ # Linearly interpolates two colors using the given the weight to produce a mixture of each.
137
+ # @param color1 [Color] the base color to mix from.
138
+ # @param color2 [Color] the target color to mix to.
139
+ # @param weight [Float] the scaling factor of the second color to apply, where `0.0` means none, and *color1* will
140
+ # be returned, `1.0` means fully *color2*, and values in between are a weighted mixture.
141
+ # @return [Color] the resulting {Color} instance.
142
+ def self.mix(color1, color2, weight)
143
+ end
144
+
145
+ ##
146
+ # Creates a new {Color} using from the HSL color-space.
147
+ # @param hue [Float] the hue component in the range of `0.0` and `360.0`.
148
+ # @param saturation [Float] the saturation component in the range of `0.0` and `1.0`.
149
+ # @param lightness [Float] the lightness component in the range of `0.0` and `1.0`.
150
+ # @param alpha [Float] the alpha component of the color in the range of `0.0` and `1.0`.
151
+ # @return [Color] the newly created {Color}.
152
+ def self.from_hsl(hue, saturation, lightness, alpha = 1.0)
153
+ end
154
+
155
+ ##
156
+ # Creates a new {Color} using from the HSB/HSL color-space.
157
+ # @param hue [Float] the hue component in the range of `0.0` and `360.0`.
158
+ # @param saturation [Float] the saturation component in the range of `0.0` and `1.0`.
159
+ # @param brightness [Float] the brightness/value component in the range of `0.0` and `1.0`.
160
+ # @param alpha [Float] the alpha component of the color in the range of `0.0` and `1.0`.
161
+ # @return [Color] the newly created {Color}.
162
+ def self.from_hsb(hue, saturation, brightness, alpha = 1.0)
163
+ end
164
+
165
+ ##
166
+ # Creates a new {Color} using from the HSB/HSL color-space.
167
+ # @param hue [Float] the hue component in the range of `0.0` and `360.0`.
168
+ # @param saturation [Float] the saturation component in the range of `0.0` and `1.0`.
169
+ # @param value [Float] the brightness/value component in the range of `0.0` and `1.0`.
170
+ # @param alpha [Float] the alpha component of the color in the range of `0.0` and `1.0`.
171
+ # @return [Color] the newly created {Color}.
172
+ def self.from_hsv(hue, saturation, value, alpha = 1.0)
173
+ end
174
+
175
+ NONE = Color.new(0.00000, 0.00000, 0.00000, 0.00000)
176
+ TRANSPARENT = Color.new(1.00000, 1.00000, 1.00000, 0.00000)
177
+ ALICE_BLUE = Color.new(0.94118, 0.97255, 1.00000, 1.00000)
178
+ ANTIQUE_WHITE = Color.new(0.98039, 0.92157, 0.84314, 1.00000)
179
+ AQUA = Color.new(0.00000, 1.00000, 1.00000, 1.00000)
180
+ AQUAMARINE = Color.new(0.49804, 1.00000, 0.83137, 1.00000)
181
+ AZURE = Color.new(0.94118, 1.00000, 1.00000, 1.00000)
182
+ BEIGE = Color.new(0.96078, 0.96078, 0.86275, 1.00000)
183
+ BISQUE = Color.new(1.00000, 0.89412, 0.76863, 1.00000)
184
+ BLACK = Color.new(0.00000, 0.00000, 0.00000, 1.00000)
185
+ BLANCHED_ALMOND = Color.new(1.00000, 0.92157, 0.80392, 1.00000)
186
+ BLUE = Color.new(0.00000, 0.00000, 1.00000, 1.00000)
187
+ BLUE_VIOLET = Color.new(0.54118, 0.16863, 0.88627, 1.00000)
188
+ BROWN = Color.new(0.64706, 0.16471, 0.16471, 1.00000)
189
+ BURLY_WOOD = Color.new(0.87059, 0.72157, 0.52941, 1.00000)
190
+ CADET_BLUE = Color.new(0.37255, 0.61961, 0.62745, 1.00000)
191
+ CHARTREUSE = Color.new(0.49804, 1.00000, 0.00000, 1.00000)
192
+ CHOCOLATE = Color.new(0.82353, 0.41176, 0.11765, 1.00000)
193
+ CORAL = Color.new(1.00000, 0.49804, 0.31373, 1.00000)
194
+ CORNFLOWER_BLUE = Color.new(0.39216, 0.58431, 0.92941, 1.00000)
195
+ CORNSILK = Color.new(1.00000, 0.97255, 0.86275, 1.00000)
196
+ CRIMSON = Color.new(0.86275, 0.07843, 0.23529, 1.00000)
197
+ CYAN = Color.new(0.00000, 1.00000, 1.00000, 1.00000)
198
+ DARK_BLUE = Color.new(0.00000, 0.00000, 0.54510, 1.00000)
199
+ DARK_CYAN = Color.new(0.00000, 0.54510, 0.54510, 1.00000)
200
+ DARK_GOLDENROD = Color.new(0.72157, 0.52549, 0.04314, 1.00000)
201
+ DARK_GRAY = Color.new(0.66275, 0.66275, 0.66275, 1.00000)
202
+ DARK_GREEN = Color.new(0.00000, 0.39216, 0.00000, 1.00000)
203
+ DARK_KHAKI = Color.new(0.74118, 0.71765, 0.41961, 1.00000)
204
+ DARK_MAGENTA = Color.new(0.54510, 0.00000, 0.54510, 1.00000)
205
+ DARK_OLIVE_GREEN = Color.new(0.33333, 0.41961, 0.18431, 1.00000)
206
+ DARK_ORANGE = Color.new(1.00000, 0.54902, 0.00000, 1.00000)
207
+ DARK_ORCHID = Color.new(0.60000, 0.19608, 0.80000, 1.00000)
208
+ DARK_RED = Color.new(0.54510, 0.00000, 0.00000, 1.00000)
209
+ DARK_SALMON = Color.new(0.91373, 0.58824, 0.47843, 1.00000)
210
+ DARK_SEA_GREEN = Color.new(0.56078, 0.73725, 0.54510, 1.00000)
211
+ DARK_SLATE_BLUE = Color.new(0.28235, 0.23922, 0.54510, 1.00000)
212
+ DARK_SLATE_GRAY = Color.new(0.18431, 0.30980, 0.30980, 1.00000)
213
+ DARK_TURQUOISE = Color.new(0.00000, 0.80784, 0.81961, 1.00000)
214
+ DARK_VIOLET = Color.new(0.58039, 0.00000, 0.82745, 1.00000)
215
+ DEEP_PINK = Color.new(1.00000, 0.07843, 0.57647, 1.00000)
216
+ DEEP_SKY_BLUE = Color.new(0.00000, 0.74902, 1.00000, 1.00000)
217
+ DIM_GRAY = Color.new(0.41176, 0.41176, 0.41176, 1.00000)
218
+ DODGER_BLUE = Color.new(0.11765, 0.56471, 1.00000, 1.00000)
219
+ FIREBRICK = Color.new(0.69804, 0.13333, 0.13333, 1.00000)
220
+ FLORAL_WHITE = Color.new(1.00000, 0.98039, 0.94118, 1.00000)
221
+ FOREST_GREEN = Color.new(0.13333, 0.54510, 0.13333, 1.00000)
222
+ FUCHSIA = Color.new(1.00000, 0.00000, 1.00000, 1.00000)
223
+ GAINSBORO = Color.new(0.86275, 0.86275, 0.86275, 1.00000)
224
+ GHOST_WHITE = Color.new(0.97255, 0.97255, 1.00000, 1.00000)
225
+ GOLD = Color.new(1.00000, 0.84314, 0.00000, 1.00000)
226
+ GOLDENROD = Color.new(0.85490, 0.64706, 0.12549, 1.00000)
227
+ GRAY = Color.new(0.50196, 0.50196, 0.50196, 1.00000)
228
+ GREEN = Color.new(0.00000, 0.50196, 0.00000, 1.00000)
229
+ GREEN_YELLOW = Color.new(0.67843, 1.00000, 0.18431, 1.00000)
230
+ HONEYDEW = Color.new(0.94118, 1.00000, 0.94118, 1.00000)
231
+ HOT_PINK = Color.new(1.00000, 0.41176, 0.70588, 1.00000)
232
+ INDIAN_RED = Color.new(0.80392, 0.36078, 0.36078, 1.00000)
233
+ INDIGO = Color.new(0.29412, 0.00000, 0.50980, 1.00000)
234
+ IVORY = Color.new(1.00000, 1.00000, 0.94118, 1.00000)
235
+ KHAKI = Color.new(0.94118, 0.90196, 0.54902, 1.00000)
236
+ LAVENDER = Color.new(0.90196, 0.90196, 0.98039, 1.00000)
237
+ LAVENDER_BLUSH = Color.new(1.00000, 0.94118, 0.96078, 1.00000)
238
+ LAWN_GREEN = Color.new(0.48627, 0.98824, 0.00000, 1.00000)
239
+ LEMON_CHIFFON = Color.new(1.00000, 0.98039, 0.80392, 1.00000)
240
+ LIGHT_BLUE = Color.new(0.67843, 0.84706, 0.90196, 1.00000)
241
+ LIGHT_CORAL = Color.new(0.94118, 0.50196, 0.50196, 1.00000)
242
+ LIGHT_CYAN = Color.new(0.87843, 1.00000, 1.00000, 1.00000)
243
+ LIGHT_GOLDENROD_YELLOW = Color.new(0.98039, 0.98039, 0.82353, 1.00000)
244
+ LIGHT_GRAY = Color.new(0.82745, 0.82745, 0.82745, 1.00000)
245
+ LIGHT_GREEN = Color.new(0.56471, 0.93333, 0.56471, 1.00000)
246
+ LIGHT_PINK = Color.new(1.00000, 0.71373, 0.75686, 1.00000)
247
+ LIGHT_SALMON = Color.new(1.00000, 0.62745, 0.47843, 1.00000)
248
+ LIGHT_SEA_GREEN = Color.new(0.12549, 0.69804, 0.66667, 1.00000)
249
+ LIGHT_SKY_BLUE = Color.new(0.52941, 0.80784, 0.98039, 1.00000)
250
+ LIGHT_SLATE_GRAY = Color.new(0.46667, 0.53333, 0.60000, 1.00000)
251
+ LIGHT_STEEL_BLUE = Color.new(0.69020, 0.76863, 0.87059, 1.00000)
252
+ LIGHT_YELLOW = Color.new(1.00000, 1.00000, 0.87843, 1.00000)
253
+ LIME = Color.new(0.00000, 1.00000, 0.00000, 1.00000)
254
+ LIME_GREEN = Color.new(0.19608, 0.80392, 0.19608, 1.00000)
255
+ LINEN = Color.new(0.98039, 0.94118, 0.90196, 1.00000)
256
+ MAGENTA = Color.new(1.00000, 0.00000, 1.00000, 1.00000)
257
+ MAROON = Color.new(0.50196, 0.00000, 0.00000, 1.00000)
258
+ MEDIUM_AQUAMARINE = Color.new(0.40000, 0.80392, 0.66667, 1.00000)
259
+ MEDIUM_BLUE = Color.new(0.00000, 0.00000, 0.80392, 1.00000)
260
+ MEDIUM_ORCHID = Color.new(0.72941, 0.33333, 0.82745, 1.00000)
261
+ MEDIUM_PURPLE = Color.new(0.57647, 0.43922, 0.85882, 1.00000)
262
+ MEDIUM_SEA_GREEN = Color.new(0.23529, 0.70196, 0.44314, 1.00000)
263
+ MEDIUM_SLATE_BLUE = Color.new(0.48235, 0.40784, 0.93333, 1.00000)
264
+ MEDIUM_SPRING_GREEN = Color.new(0.00000, 0.98039, 0.60392, 1.00000)
265
+ MEDIUM_TURQUOISE = Color.new(0.28235, 0.81961, 0.80000, 1.00000)
266
+ MEDIUM_VIOLET_RED = Color.new(0.78039, 0.08235, 0.52157, 1.00000)
267
+ MIDNIGHT_BLUE = Color.new(0.09804, 0.09804, 0.43922, 1.00000)
268
+ MINT_CREAM = Color.new(0.96078, 1.00000, 0.98039, 1.00000)
269
+ MISTY_ROSE = Color.new(1.00000, 0.89412, 0.88235, 1.00000)
270
+ MOCCASIN = Color.new(1.00000, 0.89412, 0.70980, 1.00000)
271
+ NAVAJO_WHITE = Color.new(1.00000, 0.87059, 0.67843, 1.00000)
272
+ NAVY = Color.new(0.00000, 0.00000, 0.50196, 1.00000)
273
+ OLD_LACE = Color.new(0.99216, 0.96078, 0.90196, 1.00000)
274
+ OLIVE = Color.new(0.50196, 0.50196, 0.00000, 1.00000)
275
+ OLIVE_DRAB = Color.new(0.41961, 0.55686, 0.13725, 1.00000)
276
+ ORANGE = Color.new(1.00000, 0.64706, 0.00000, 1.00000)
277
+ ORANGE_RED = Color.new(1.00000, 0.27059, 0.00000, 1.00000)
278
+ ORCHID = Color.new(0.85490, 0.43922, 0.83922, 1.00000)
279
+ PALE_GOLDENROD = Color.new(0.93333, 0.90980, 0.66667, 1.00000)
280
+ PALE_GREEN = Color.new(0.59608, 0.98431, 0.59608, 1.00000)
281
+ PALE_TURQUOISE = Color.new(0.68627, 0.93333, 0.93333, 1.00000)
282
+ PALE_VIOLET_RED = Color.new(0.85882, 0.43922, 0.57647, 1.00000)
283
+ PAPAYA_WHIP = Color.new(1.00000, 0.93725, 0.83529, 1.00000)
284
+ PEACH_PUFF = Color.new(1.00000, 0.85490, 0.72549, 1.00000)
285
+ PERU = Color.new(0.80392, 0.52157, 0.24706, 1.00000)
286
+ PINK = Color.new(1.00000, 0.75294, 0.79608, 1.00000)
287
+ PLUM = Color.new(0.86667, 0.62745, 0.86667, 1.00000)
288
+ POWDER_BLUE = Color.new(0.69020, 0.87843, 0.90196, 1.00000)
289
+ PURPLE = Color.new(0.50196, 0.00000, 0.50196, 1.00000)
290
+ RED = Color.new(1.00000, 0.00000, 0.00000, 1.00000)
291
+ ROSY_BROWN = Color.new(0.73725, 0.56078, 0.56078, 1.00000)
292
+ ROYAL_BLUE = Color.new(0.25490, 0.41176, 0.88235, 1.00000)
293
+ SADDLE_BROWN = Color.new(0.54510, 0.27059, 0.07451, 1.00000)
294
+ SALMON = Color.new(0.98039, 0.50196, 0.44706, 1.00000)
295
+ SANDY_BROWN = Color.new(0.95686, 0.64314, 0.37647, 1.00000)
296
+ SEA_GREEN = Color.new(0.18039, 0.54510, 0.34118, 1.00000)
297
+ SEA_SHELL = Color.new(1.00000, 0.96078, 0.93333, 1.00000)
298
+ SIENNA = Color.new(0.62745, 0.32157, 0.17647, 1.00000)
299
+ SILVER = Color.new(0.75294, 0.75294, 0.75294, 1.00000)
300
+ SKY_BLUE = Color.new(0.52941, 0.80784, 0.92157, 1.00000)
301
+ SLATE_BLUE = Color.new(0.41569, 0.35294, 0.80392, 1.00000)
302
+ SLATE_GRAY = Color.new(0.43922, 0.50196, 0.56471, 1.00000)
303
+ SNOW = Color.new(1.00000, 0.98039, 0.98039, 1.00000)
304
+ SPRING_GREEN = Color.new(0.00000, 1.00000, 0.49804, 1.00000)
305
+ STEEL_BLUE = Color.new(0.27451, 0.50980, 0.70588, 1.00000)
306
+ TAN = Color.new(0.82353, 0.70588, 0.54902, 1.00000)
307
+ TEAL = Color.new(0.00000, 0.50196, 0.50196, 1.00000)
308
+ THISTLE = Color.new(0.84706, 0.74902, 0.84706, 1.00000)
309
+ TOMATO = Color.new(1.00000, 0.38824, 0.27843, 1.00000)
310
+ TURQUOISE = Color.new(0.25098, 0.87843, 0.81569, 1.00000)
311
+ VIOLET = Color.new(0.93333, 0.50980, 0.93333, 1.00000)
312
+ WHEAT = Color.new(0.96078, 0.87059, 0.70196, 1.00000)
313
+ WHITE = Color.new(1.00000, 1.00000, 1.00000, 1.00000)
314
+ WHITE_SMOKE = Color.new(0.96078, 0.96078, 0.96078, 1.00000)
315
+ YELLOW = Color.new(1.00000, 1.00000, 0.00000, 1.00000)
316
+ YELLOW_GREEN = Color.new(0.60392, 0.80392, 0.19608, 1.00000)
317
+ end
318
+ end