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
@@ -0,0 +1,65 @@
1
+ module RGSS
2
+ ##
3
+ # A structure for altering the "balance" of colors and/or applying a grayscale effect. While it may appear similar to
4
+ # color, it is not. It represents an **alteration** to a color, not the color itself. 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
+ # For the RGB components, it adjusts the output color by simply adding/subtracting on a component-wise basis, where a
11
+ # value of `0.0` has no effect, `-1.0` completely removes the component, and `1.0` is full output. The grayscale
12
+ # component is calculated independently, and is a linear scaling factor on how strong the effect will be, where `0.0`
13
+ # is no effect, and `1.0` is fully "shades of gray", with no color.
14
+ #
15
+ # @note All out of range values are automatically clamped to their respective limits.
16
+ #
17
+ # @note Unlike RGSS Maker games, the grayscale has no negative performance effect to use, as the exact same
18
+ # calculations are performed in the fragment shader with each draw, regardless of its value. Whether you use a value
19
+ # of `0.0` or `1.0`, it will have absolutely no effect on FPS or resource usage.
20
+ #
21
+ # @note All relevant methods implemented in `Object` (i.e. `#dup`, `#clone`, Marshalling, equality) have also been
22
+ # properly implemented/overridden, but have been omitted from the documentation for brevity.
23
+ class Tone
24
+
25
+ ##
26
+ # The value of the red color component.
27
+ # @return [Float] a normalized value between `-1.0` amd `1.0`.
28
+ attr_reader :r
29
+
30
+ ##
31
+ # The value of the green color component.
32
+ # @return [Float] a normalized value between `-1.0` amd `1.0`.
33
+ attr_reader :g
34
+
35
+ ##
36
+ # The value of the blue color component.
37
+ # @return [Float] a normalized value between `-1.0` amd `1.0`.
38
+ attr_reader :b
39
+
40
+ ##
41
+ # The amount of grayscale that will be applied, where `0.0` is none, and `1.0` is fully gray (i.e. "black & white").
42
+ # @return [Float] a normalized value between `0.0` and `1.0`.
43
+ attr_reader :gray
44
+
45
+ ##
46
+ # Creates a new instance of the {Tone} class.
47
+ #
48
+ # @param red [Float] the value of the red color component, a normalized value between `-1.0` and `1.0`.
49
+ # @param green [Float] the value of the green color component, a normalized value between `-1.0` and `1.0`.
50
+ # @param blue [Float] the value of the blue color component, a normalized value between `-1.0` and `1.0`.
51
+ # @param gray [Float] the value of the grayscale factor to apply, a normalized value between `0.0` and `1.0`.
52
+ def initialize(red, green, blue, gray = 0.0)
53
+ end
54
+
55
+ alias_method :red, :r
56
+ alias_method :green, :g
57
+ alias_method :blue, :b
58
+ alias_method :grey, :gray
59
+
60
+ ##
61
+ # A full grayscale {Tone} instance.
62
+ GRAY = Tone.new(0.0, 0.0, 0.0, 1.0)
63
+
64
+ end
65
+ end
@@ -0,0 +1,132 @@
1
+
2
+ module RGSS
3
+
4
+ class Texture < GameObject
5
+
6
+ attr_reader :width
7
+ attr_reader :height
8
+
9
+ include GL
10
+
11
+ def initialize(*args, **opts)
12
+ super(glGenTexture)
13
+
14
+ image = nil
15
+ case args.size
16
+ when 1
17
+ source = args.first
18
+ image = source.is_a?(String) ? Image.new(source) : source
19
+ raise(TypeError, "#{source} is not a String or Image") unless image.is_a?(Image)
20
+ when 2
21
+ image = Image.new(*args, **opts)
22
+ else
23
+ raise(ArgumentError, "wrong number of arguments (given #{args.size}, expected 1, 2)")
24
+ end
25
+
26
+ glActiveTexture(GL_TEXTURE0);
27
+ glBindTexture(GL_TEXTURE_2D, self.id);
28
+
29
+ glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, image.width, image.height, 0, GL_RGBA, GL_UNSIGNED_BYTE, image.address);
30
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
31
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
32
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
33
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
34
+
35
+ @width = image.width
36
+ @height = image.height
37
+ image.dispose
38
+ @fbo = 0
39
+ end
40
+
41
+ def size
42
+ Size.new(@width, @height)
43
+ end
44
+
45
+ def rect
46
+ Rect.new(0, 0, @width, @height)
47
+ end
48
+
49
+ def bind(target = 0)
50
+ glActiveTexture(GL_TEXTURE0 + target)
51
+ glBindTexture(GL_TEXTURE_2D, self.id);
52
+ end
53
+
54
+ def target(area = nil)
55
+ raise(LocalJumpError, "block required") unless block_given?
56
+
57
+ area ||= Rect.new(0, 0, @width, @height)
58
+
59
+ Graphics.project(area.x, area.y, area.width, area.height) do
60
+
61
+ bind_framebuffer
62
+ glViewport(area.x, area.y, area.width, area.height)
63
+ glScissor(area.x, area.y, area.width, area.height)
64
+ yield
65
+ end
66
+
67
+ Graphics.restore
68
+ self
69
+ end
70
+
71
+ def blit(src, src_rect, dst_rect, opacity = 1.0)
72
+ raise(ArgumentError, "source Texture cannot be nil") unless src
73
+
74
+
75
+ end
76
+
77
+ def clear
78
+ target do
79
+ glClearColor(nil)
80
+ glClear(GL_COLOR_BUFFER_BIT)
81
+ end
82
+ end
83
+
84
+ def fill_rect(rect, color)
85
+ target(rect) do
86
+ glClearColor(color)
87
+ glClear(GL_COLOR_BUFFER_BIT)
88
+ end
89
+ end
90
+
91
+ def to_image
92
+ pixels = "\0" * @width * @height * 4
93
+ bind_framebuffer { glReadPixels(0, 0, @width, @height, GL_RGBA, GL_UNSIGNED_BYTE, pixels) }
94
+ Image.new(@width, @height, pixels)
95
+ end
96
+
97
+ def valid?
98
+ self.id.nonzero? && glIsTexture(self.id)
99
+ end
100
+
101
+ def dispose
102
+ if @fbo && @fbo.nonzero?
103
+ glDeleteFramebuffer(@fbo)
104
+ @fbo = nil
105
+ end
106
+ glDeleteTexture(self.id)
107
+ super
108
+ end
109
+
110
+ protected
111
+
112
+ def bind_framebuffer
113
+ if @fbo.zero?
114
+ @fbo = glGenFramebuffer
115
+ glBindFramebuffer(GL_FRAMEBUFFER, @fbo);
116
+ glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, self.id, 0);
117
+ else
118
+ glBindFramebuffer(GL_FRAMEBUFFER, @fbo);
119
+ end
120
+
121
+ if block_given?
122
+ yield
123
+ glBindFramebuffer(GL_FRAMEBUFFER, GL_NONE)
124
+ end
125
+
126
+ end
127
+
128
+ def undbind_framebuffer
129
+ glBindFramebuffer(GL_FRAMEBUFFER, GL_NONE)
130
+ end
131
+ end
132
+ end
@@ -0,0 +1,116 @@
1
+ require 'ox'
2
+
3
+ module RGSS
4
+
5
+ module TMX
6
+
7
+ class MapObject
8
+
9
+ attr_reader :properties
10
+
11
+ def initialize(node)
12
+
13
+ end
14
+
15
+ protected
16
+
17
+ def parse_color(value)
18
+ return Color::NONE unless value
19
+ c = value.sub(/^#/, '').scan(/../).map { |a| a.to_i(16) / 255.0 }
20
+ Color.new(c[1], c[2], c[3], c[0])
21
+ end
22
+ end
23
+
24
+
25
+ class Map < MapObject
26
+
27
+ def self.parse(xml)
28
+
29
+ end
30
+
31
+ def self.load(path)
32
+ opts = Ox.default_options
33
+ opts[:symbolize_keys] = true
34
+ doc = Ox.load_file(path, opts)
35
+ new(doc.root)
36
+ end
37
+
38
+ attr_reader :version
39
+ attr_reader :orientation
40
+ attr_reader :render_order
41
+ attr_reader :width
42
+ attr_reader :height
43
+ attr_reader :tile_width
44
+ attr_reader :tile_width
45
+ attr_reader :side_length
46
+ attr_reader :stagger_axis
47
+ attr_reader :back_color
48
+
49
+ def initialize(node)
50
+ super(node)
51
+
52
+ @version = node[:version]
53
+ @orientation = node[:orientation].to_sym
54
+ @render_order = node[:renderorder].sub('-', '').to_sym
55
+ @width = node[:width].to_i
56
+ @height = node[:height].to_i
57
+ @tile_width = node[:tilewidth].to_i
58
+ @tile_height = node[:tileheight].to_i
59
+ @side_length = node[:hexsidelength].to_i
60
+ @stagger_axis = node[:staggeraxis].to_i
61
+ @infinite = !!node[:infinite]
62
+ @back_color = parse_color(node[:backgroundcolor])
63
+
64
+ @tilesets = node.locate('./tileset').map { |child| Tileset.new(child) }
65
+ @layers = []
66
+ end
67
+
68
+ def infinite?
69
+ @infinite
70
+ end
71
+
72
+ def size
73
+ Size.new(@width, @height)
74
+ end
75
+
76
+ def tile_size
77
+ Size.new(@tile_width, @tile_height)
78
+ end
79
+
80
+ def pixel_width
81
+ @width * @tile_width
82
+ end
83
+
84
+ def pixel_height
85
+ @height * @tile_height
86
+ end
87
+
88
+
89
+
90
+ private_class_method :new
91
+
92
+ end
93
+
94
+ class Tileset < MapObject
95
+
96
+ def self.parse(xml)
97
+
98
+ end
99
+
100
+ def self.load(path)
101
+
102
+ end
103
+
104
+ def initialize(node)
105
+ super(node)
106
+
107
+ end
108
+ end
109
+
110
+ end
111
+ end
112
+
113
+ map = RGSS::TMX::Map.load('/home/eric/Desktop/tiled-master/examples/rpg/island.tmx')
114
+ p map.version
115
+ p map.orientation
116
+ p map.render_order
@@ -0,0 +1,3 @@
1
+ module RGSS
2
+ VERSION = '0.0.1'.freeze
3
+ end
@@ -0,0 +1,67 @@
1
+
2
+ module RGSS
3
+
4
+ class Viewport < Renderable
5
+
6
+ # include GL
7
+
8
+ attr_reader :batch
9
+ attr_accessor :back_color
10
+
11
+ def initialize(*args)
12
+ super(Graphics.batch)
13
+
14
+ @batch = Batch.new
15
+ rect = Rect.new(*args)
16
+ @ortho = Mat4.ortho(0, rect.width, 0.0, rect.height, -1.0, 1.0)
17
+
18
+ self.location = rect.location
19
+ self.size = rect.size
20
+
21
+ @texture = Texture.new(self.width, self.height)
22
+ @framebuffer = glGenFramebuffer
23
+ glBindFramebuffer(GL_FRAMEBUFFER, @framebuffer);
24
+ glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, @texture.id, 0)
25
+ glBindFramebuffer(GL_FRAMEBUFFER, GL_NONE)
26
+
27
+ vertices =
28
+ [
29
+ 0.0, 1.0, 0.0, 1.0, # Bottom-Left
30
+ 1.0, 0.0, 1.0, 0.0, # Top-Right
31
+ 0.0, 0.0, 0.0, 0.0, # Top-Left
32
+ 1.0, 1.0, 1.0, 1.0, # Bottom-Right
33
+ ].pack('f*')
34
+ vertex_setup(vertices, nil, GL_STATIC_DRAW)
35
+ @back_color = nil
36
+ end
37
+
38
+
39
+ def render(delta)
40
+ return unless @visible && @opacity > 0.0
41
+
42
+ glBindFramebuffer(GL_FRAMEBUFFER, @framebuffer)
43
+ glClearColor(@back_color)
44
+ glClear(GL_COLOR_BUFFER_BIT)
45
+ glViewport(0, 0, self.width, self.height)
46
+
47
+
48
+ Graphics.project(@ortho) do
49
+ @batch.each { |obj| obj.render(delta) }
50
+ end
51
+ Graphics.restore
52
+
53
+ super(delta)
54
+ @texture.bind
55
+ glBindVertexArray(@vao)
56
+ glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_BYTE, nil)
57
+ glBindVertexArray(GL_NONE)
58
+ end
59
+
60
+ def dispose
61
+ super
62
+ glDeleteFramebuffer(@framebuffer)
63
+ glDeleteTexture(@texture)
64
+ end
65
+
66
+ end
67
+ end
@@ -0,0 +1,44 @@
1
+ require_relative 'lib/rgss/version'
2
+
3
+ Gem::Specification.new do |spec|
4
+ spec.name = 'rgss'
5
+ spec.version = RGSS::VERSION
6
+ spec.authors = ['Eric Freed']
7
+ spec.email = ['efreed09@gmail.com']
8
+
9
+ spec.summary = %q{High-performance Ruby game framework strongly influenced by the RPG Maker series by Enterbrain.}
10
+ spec.description = %q{
11
+ IN ACTIVE DEVELOPMENT.
12
+ High-performance Ruby game framework strongly influenced by the RPG Maker series by Enterbrain. The library contains
13
+ multiple levels of abstraction, leveraging the power of modern OpenGL (C bindings built-in) and shaders, but building
14
+ upon these low-level abstractions to create the user-friendly components that are to be expected in a 2D game framework,
15
+ including sprites, textures, fonts, colors, etc. Those experienced with low-level graphics APIs have all the tools at their
16
+ fingertips already built-in (OpenGL, GLFW, OpenAL, sound/font/image decoding, etc) and ready to build their own engine from,
17
+ while those who have no interest in such can get started right away with powerful higher-level abstractions. While the
18
+ library's API surface similar in many ways to RPG Maker XP/VX/VXA, bear in mind that it is merely incluenced by those,
19
+ and liberal design changes have been taken to not limit the API or add restriction.
20
+ }
21
+ spec.homepage = 'https://github.com/ForeverZer0/rgss'
22
+ spec.license = 'MIT'
23
+ spec.required_ruby_version = Gem::Requirement.new('>= 2.3.0')
24
+
25
+ spec.metadata['homepage_uri'] = spec.homepage
26
+ spec.metadata['source_code_uri'] = 'https://github.com/ForeverZer0/rgss'
27
+ spec.metadata['changelog_uri'] = 'https://github.com/ForeverZer0/rgss/CHANGELOG.md'
28
+
29
+ spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
30
+ `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
31
+ end
32
+
33
+ spec.metadata['msys2_mingw_dependencies'] = 'glfw openal sndfile'
34
+
35
+ spec.bindir = 'bin'
36
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
37
+ spec.require_paths = ['lib']
38
+
39
+ spec.add_development_dependency 'rake', '~> 13.0'
40
+ spec.add_development_dependency 'rake-compiler', '~> 1.1'
41
+ spec.add_development_dependency 'yard', '~> 0.9'
42
+
43
+ spec.add_runtime_dependency 'ox', '~> 2.14'
44
+ end
Binary file
metadata ADDED
@@ -0,0 +1,178 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rgss
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Eric Freed
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2021-01-15 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rake
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '13.0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '13.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake-compiler
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '1.1'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '1.1'
41
+ - !ruby/object:Gem::Dependency
42
+ name: yard
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '0.9'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '0.9'
55
+ - !ruby/object:Gem::Dependency
56
+ name: ox
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '2.14'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '2.14'
69
+ description: "\n IN ACTIVE DEVELOPMENT.\n High-performance Ruby game framework
70
+ strongly influenced by the RPG Maker series by Enterbrain. The library contains\n
71
+ \ multiple levels of abstraction, leveraging the power of modern OpenGL (C bindings
72
+ built-in) and shaders, but building\n upon these low-level abstractions to
73
+ create the user-friendly components that are to be expected in a 2D game framework,
74
+ \n including sprites, textures, fonts, colors, etc. Those experienced with
75
+ low-level graphics APIs have all the tools at their\n fingertips already built-in
76
+ (OpenGL, GLFW, OpenAL, sound/font/image decoding, etc) and ready to build their
77
+ own engine from, \n while those who have no interest in such can get started
78
+ right away with powerful higher-level abstractions. While the \n library's
79
+ API surface similar in many ways to RPG Maker XP/VX/VXA, bear in mind that it is
80
+ merely incluenced by those,\n and liberal design changes have been taken to
81
+ not limit the API or add restriction.\n "
82
+ email:
83
+ - efreed09@gmail.com
84
+ executables: []
85
+ extensions: []
86
+ extra_rdoc_files: []
87
+ files:
88
+ - ".clang-format"
89
+ - ".gitignore"
90
+ - ".yardopts"
91
+ - CHANGELOG.md
92
+ - Gemfile
93
+ - LICENSE.txt
94
+ - Rakefile
95
+ - ext/rgss/cglm-v0.7.9.tar.gz
96
+ - ext/rgss/color.c
97
+ - ext/rgss/entity.c
98
+ - ext/rgss/extconf.rb
99
+ - ext/rgss/font.c
100
+ - ext/rgss/game.c
101
+ - ext/rgss/game.h
102
+ - ext/rgss/gl.c
103
+ - ext/rgss/glad.c
104
+ - ext/rgss/glad.h
105
+ - ext/rgss/glfw.c
106
+ - ext/rgss/graphics.c
107
+ - ext/rgss/image.c
108
+ - ext/rgss/input.c
109
+ - ext/rgss/khrplatform.h
110
+ - ext/rgss/mat4.c
111
+ - ext/rgss/pax_global_header
112
+ - ext/rgss/point.c
113
+ - ext/rgss/rect.c
114
+ - ext/rgss/rgss.c
115
+ - ext/rgss/rgss.h
116
+ - ext/rgss/stb_image.h
117
+ - ext/rgss/stb_image_write.h
118
+ - ext/rgss/stb_rect_pack.h
119
+ - ext/rgss/stb_truetype.h
120
+ - ext/rgss/utf8.h
121
+ - ext/rgss/uthash.h
122
+ - ext/rgss/vec.c
123
+ - ext/rgss/vec.h
124
+ - ext/rgss/vec2.c
125
+ - ext/rgss/vec3.c
126
+ - ext/rgss/vec4.c
127
+ - lib/rgss.rb
128
+ - lib/rgss/batch.rb
129
+ - lib/rgss/blend.rb
130
+ - lib/rgss/game_object.rb
131
+ - lib/rgss/plane.rb
132
+ - lib/rgss/renderable.rb
133
+ - lib/rgss/rgss.so
134
+ - lib/rgss/shader.rb
135
+ - lib/rgss/shaders/sprite-frag.glsl
136
+ - lib/rgss/shaders/sprite-vert.glsl
137
+ - lib/rgss/sprite.rb
138
+ - lib/rgss/stubs/color.rb
139
+ - lib/rgss/stubs/gl.rb
140
+ - lib/rgss/stubs/glfw.rb
141
+ - lib/rgss/stubs/rect.rb
142
+ - lib/rgss/stubs/rpg.rb
143
+ - lib/rgss/stubs/tone.rb
144
+ - lib/rgss/texture.rb
145
+ - lib/rgss/tilemap.rb
146
+ - lib/rgss/version.rb
147
+ - lib/rgss/viewport.rb
148
+ - rgss.gemspec
149
+ - test.png
150
+ homepage: https://github.com/ForeverZer0/rgss
151
+ licenses:
152
+ - MIT
153
+ metadata:
154
+ homepage_uri: https://github.com/ForeverZer0/rgss
155
+ source_code_uri: https://github.com/ForeverZer0/rgss
156
+ changelog_uri: https://github.com/ForeverZer0/rgss/CHANGELOG.md
157
+ msys2_mingw_dependencies: glfw openal sndfile
158
+ post_install_message:
159
+ rdoc_options: []
160
+ require_paths:
161
+ - lib
162
+ required_ruby_version: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - ">="
165
+ - !ruby/object:Gem::Version
166
+ version: 2.3.0
167
+ required_rubygems_version: !ruby/object:Gem::Requirement
168
+ requirements:
169
+ - - ">="
170
+ - !ruby/object:Gem::Version
171
+ version: '0'
172
+ requirements: []
173
+ rubygems_version: 3.1.4
174
+ signing_key:
175
+ specification_version: 4
176
+ summary: High-performance Ruby game framework strongly influenced by the RPG Maker
177
+ series by Enterbrain.
178
+ test_files: []