rgss 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
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