mittsu-opengl 0.5.1 → 0.5.2
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.
- checksums.yaml +4 -4
- data/.github/workflows/build-workflow.yml +7 -4
- data/.gitignore +3 -0
- data/Gemfile +0 -2
- data/README.md +8 -0
- data/lib/mittsu/generic_lib.rb +2 -2
- data/lib/mittsu/glfw/debug.rb +28 -0
- data/lib/mittsu/glfw/lib.rb +11 -12
- data/lib/mittsu/glfw/window.rb +2 -0
- data/lib/mittsu/opengl/renderer.rb +2 -2
- data/lib/mittsu/opengl/version.rb +1 -1
- data/lib/mittsu/opengl_implementation/core/geometry.rb +1 -1
- metadata +4 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e62e95a332b6331b5f61233675726f151f1e213adf6de2e7b2c644ab9a067e9a
|
4
|
+
data.tar.gz: 647bc7862a275d145e9eff671a990bb6198a38564f17733451c6408846a58c58
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 889ed8f51df14f9a3d237882ce45e70e83e4fec5dd3e7af8a141580ed1c11123cf6e8bd686aa6b5b3ba6d195818aef352339884b0f643e84198076c47162bcf8
|
7
|
+
data.tar.gz: dccf5113e0f36c4829500d4884ac408690b72574af6d5c6a0efc9eb2c3b4f9e4c3e07edd42bd68cf3a5209286e16a2e0027c3527a3c4ce114d10b990d489f4ff
|
@@ -9,11 +9,12 @@ on:
|
|
9
9
|
|
10
10
|
jobs:
|
11
11
|
linux:
|
12
|
+
continue-on-error: ${{ matrix.ruby == 'head' }}
|
12
13
|
name: Linux
|
13
14
|
runs-on: ubuntu-latest
|
14
15
|
strategy:
|
15
16
|
matrix:
|
16
|
-
ruby: ['2.6', '2.7', '3.0', '3.1', '3.2', '3.3', 'head
|
17
|
+
ruby: ['2.6', '2.7', '3.0', '3.1', '3.2', '3.3', '3.4', head]
|
17
18
|
steps:
|
18
19
|
- uses: actions/checkout@v4
|
19
20
|
- uses: awalsh128/cache-apt-pkgs-action@v1
|
@@ -25,7 +26,7 @@ jobs:
|
|
25
26
|
bundler-cache: true
|
26
27
|
- name: Test & publish code coverage
|
27
28
|
uses: paambaati/codeclimate-action@v9.0.0
|
28
|
-
if: github.event_name == 'push'
|
29
|
+
if: github.event_name == 'push' && matrix.ruby == '3.4'
|
29
30
|
env:
|
30
31
|
CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }}
|
31
32
|
with:
|
@@ -35,11 +36,12 @@ jobs:
|
|
35
36
|
run: bundle exec rake test
|
36
37
|
|
37
38
|
macos:
|
39
|
+
continue-on-error: ${{ matrix.ruby == 'head' || matrix.ruby == 'jruby-head' || matrix.ruby == 'truffleruby-head' }}
|
38
40
|
name: macOS
|
39
41
|
runs-on: macos-latest
|
40
42
|
strategy:
|
41
43
|
matrix:
|
42
|
-
ruby: ['2.6', '2.7', '3.0', '3.1', '3.2', '3.3', 'head
|
44
|
+
ruby: ['2.6', '2.7', '3.0', '3.1', '3.2', '3.3', '3.4', head, jruby, jruby-head, truffleruby, truffleruby-head]
|
43
45
|
steps:
|
44
46
|
- uses: actions/checkout@v4
|
45
47
|
- run: brew install glfw
|
@@ -50,13 +52,14 @@ jobs:
|
|
50
52
|
- run: bundle exec rake test
|
51
53
|
|
52
54
|
windows:
|
55
|
+
continue-on-error: ${{ matrix.ruby == 'head' }}
|
53
56
|
name: Windows
|
54
57
|
runs-on: windows-latest
|
55
58
|
env:
|
56
59
|
MITTSU_LIBGLFW_PATH: c:\projects\mittsu\glfw-3.3.1.bin.WIN32\lib-mingw
|
57
60
|
strategy:
|
58
61
|
matrix:
|
59
|
-
ruby: ['2.6', '2.7', '3.0', '3.1', '3.2', '3.3', 'head
|
62
|
+
ruby: ['2.6', '2.7', '3.0', '3.1', '3.2', '3.3', '3.4', head]
|
60
63
|
steps:
|
61
64
|
- uses: actions/checkout@v4
|
62
65
|
- run: .\install-glfw.ps1
|
data/.gitignore
CHANGED
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -184,6 +184,14 @@ end
|
|
184
184
|
|
185
185
|
If you just want to see what Mittsu can do and how to do it, take a peek inside the `examples` folder.
|
186
186
|
|
187
|
+
### JRuby
|
188
|
+
|
189
|
+
JRuby support is still a work in progress. This is mainly due to subtle behavioural differences in Fiddle.
|
190
|
+
|
191
|
+
On macOS JRuby must be started with the `-J-XstartOnFirstThread` argument for GLFW to work. This is necessary because most GLFW functions must be called on the main thread and the Cocoa API requires that thread to be the first thread in the process. GLFW windows and the GLFW event loop are incompatible with other window toolkits (such as AWT/Swing or JavaFX).
|
192
|
+
|
193
|
+
(Otherwise you have to extract and use the custom `libglfw_async.dylib` from [LWJGL3](https://www.lwjgl.org))
|
194
|
+
|
187
195
|
## Contributing
|
188
196
|
|
189
197
|
1. Fork it ( https://github.com/danini-the-panini/mittsu-opengl/fork )
|
data/lib/mittsu/generic_lib.rb
CHANGED
@@ -4,7 +4,7 @@ require 'open3'
|
|
4
4
|
module Mittsu
|
5
5
|
module GenericLib
|
6
6
|
def discover
|
7
|
-
case GL.get_platform
|
7
|
+
case ::GL.get_platform
|
8
8
|
when :OPENGL_PLATFORM_WINDOWS
|
9
9
|
self::Windows.new
|
10
10
|
when :OPENGL_PLATFORM_MACOSX
|
@@ -12,7 +12,7 @@ module Mittsu
|
|
12
12
|
when :OPENGL_PLATFORM_LINUX
|
13
13
|
self::Linux.new
|
14
14
|
else
|
15
|
-
warn "WARNING: Unsupported platform: #{GL.get_platform}"
|
15
|
+
warn "WARNING: Unsupported platform: #{::GL.get_platform}"
|
16
16
|
Base.new
|
17
17
|
end
|
18
18
|
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
require 'glfw'
|
2
|
+
|
3
|
+
OriginalGLFW = ::GLFW
|
4
|
+
|
5
|
+
module GLFWDebug
|
6
|
+
|
7
|
+
OriginalGLFW.constants.each do |c|
|
8
|
+
const_set c, OriginalGLFW.const_get(c)
|
9
|
+
end
|
10
|
+
|
11
|
+
class << self
|
12
|
+
def load_lib(*args)
|
13
|
+
OriginalGLFW.load_lib(*args)
|
14
|
+
end
|
15
|
+
|
16
|
+
def method_missing(m, *args, **kwargs, &block)
|
17
|
+
argstr = args.map { |s| s.inspect[0..20] }
|
18
|
+
kwargstr = kwargs.map { |k, v| "#{k}: #{v.inspect[0..20]}" }
|
19
|
+
print "GLFW.#{m}(#{[*argstr, *kwargstr].join(', ')})"
|
20
|
+
r = OriginalGLFW.send(m, *args, **kwargs, &block)
|
21
|
+
ret = r ? '' : " => #{r}"
|
22
|
+
puts "#{ret} (#{caller[0]})"
|
23
|
+
r
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
GLFW = GLFWDebug
|
data/lib/mittsu/glfw/lib.rb
CHANGED
@@ -4,19 +4,19 @@ module Mittsu
|
|
4
4
|
module GLFW
|
5
5
|
module Lib
|
6
6
|
extend GenericLib
|
7
|
-
|
7
|
+
|
8
8
|
class Linux < GenericLib::Linux
|
9
9
|
def initialize(loader = Linux)
|
10
10
|
@loader = loader
|
11
11
|
end
|
12
|
-
|
12
|
+
|
13
13
|
class << self
|
14
14
|
def lib_paths
|
15
15
|
Dir.glob('/usr/lib*/**/libglfw*.so*')
|
16
16
|
rescue
|
17
17
|
[]
|
18
18
|
end
|
19
|
-
|
19
|
+
|
20
20
|
def ldconfig
|
21
21
|
out, stderr, _status = Open3.capture3("ldconfig -p | grep 'libglfw3\\?\\.so'")
|
22
22
|
puts stderr if DEBUG
|
@@ -26,29 +26,28 @@ module Mittsu
|
|
26
26
|
end
|
27
27
|
end
|
28
28
|
end
|
29
|
-
|
29
|
+
|
30
30
|
class Windows < GenericLib::Base
|
31
31
|
def path
|
32
32
|
'glfw3.dll'
|
33
33
|
end
|
34
34
|
end
|
35
|
-
|
35
|
+
|
36
36
|
class MacOS < GenericLib::Base
|
37
|
-
SEARCH_GLOBS = ['/usr/local/
|
38
|
-
'/
|
39
|
-
|
40
|
-
|
37
|
+
SEARCH_GLOBS = ['/usr/local/Cellar/glfw/**',
|
38
|
+
'/opt/homebrew/Cellar/glfw/**']
|
39
|
+
|
41
40
|
def path
|
42
41
|
@_path ||= find_match&.to_s
|
43
42
|
end
|
44
|
-
|
43
|
+
|
45
44
|
private
|
46
|
-
|
45
|
+
|
47
46
|
def find_match
|
48
47
|
SEARCH_GLOBS.each do |glob|
|
49
48
|
matches = Dir.glob("#{glob}/libglfw*.dylib")
|
50
49
|
next if matches.empty?
|
51
|
-
|
50
|
+
|
52
51
|
return matches.find { |m| m.end_with?('libglfw3.dylib') || m.end_with?('libglfw.3.dylib') } || matches.first
|
53
52
|
end
|
54
53
|
end
|
data/lib/mittsu/glfw/window.rb
CHANGED
@@ -8,7 +8,7 @@ opengl_lib = Mittsu::OpenGL::Lib.discover
|
|
8
8
|
GL.load_lib(ENV["MITTSU_LIBGL_PATH"] || opengl_lib.path, Mittsu.debug?)
|
9
9
|
|
10
10
|
require 'mittsu/glfw/window'
|
11
|
-
require 'mittsu/opengl/gl_debug' if
|
11
|
+
require 'mittsu/opengl/gl_debug' if Mittsu.debug?
|
12
12
|
require 'mittsu/opengl/implementation'
|
13
13
|
require 'mittsu/opengl/gl_extensions'
|
14
14
|
require 'mittsu/opengl/helper'
|
@@ -35,7 +35,7 @@ module Mittsu
|
|
35
35
|
attr_reader :logarithmic_depth_buffer, :programs, :light_renderer, :proj_screen_matrix
|
36
36
|
|
37
37
|
def initialize(parameters = {})
|
38
|
-
puts "Mittsu OpenGL Renderer #{VERSION}"
|
38
|
+
puts "Mittsu OpenGL Renderer #{OpenGL::VERSION} (Mittsu #{Mittsu::VERSION})"
|
39
39
|
|
40
40
|
fetch_parameters(parameters)
|
41
41
|
|
@@ -296,7 +296,7 @@ module Mittsu
|
|
296
296
|
group_hash = "#{hash_map[material_index][:hash]}_#{hash_map[material_index][:counter]}"
|
297
297
|
|
298
298
|
if !groups.include? group_hash
|
299
|
-
group =
|
299
|
+
group = OpenGL::GeometryGroup.new(material_index, num_morph_targets, num_morph_normals, @renderer)
|
300
300
|
|
301
301
|
groups[group_hash] = group
|
302
302
|
groups_list << group
|
metadata
CHANGED
@@ -1,14 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mittsu-opengl
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Danielle Smith
|
8
|
-
autorequire:
|
9
8
|
bindir: bin
|
10
9
|
cert_chain: []
|
11
|
-
date:
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
12
11
|
dependencies:
|
13
12
|
- !ruby/object:Gem::Dependency
|
14
13
|
name: opengl-bindings2
|
@@ -156,6 +155,7 @@ files:
|
|
156
155
|
- bin/setup
|
157
156
|
- install-glfw.ps1
|
158
157
|
- lib/mittsu/generic_lib.rb
|
158
|
+
- lib/mittsu/glfw/debug.rb
|
159
159
|
- lib/mittsu/glfw/lib.rb
|
160
160
|
- lib/mittsu/glfw/window.rb
|
161
161
|
- lib/mittsu/opengl.rb
|
@@ -291,7 +291,6 @@ licenses:
|
|
291
291
|
- MIT
|
292
292
|
metadata:
|
293
293
|
bug_tracker: https://github.com/danini-the-panini/mittsu/issues
|
294
|
-
post_install_message:
|
295
294
|
rdoc_options: []
|
296
295
|
require_paths:
|
297
296
|
- lib
|
@@ -307,8 +306,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
307
306
|
version: '0'
|
308
307
|
requirements:
|
309
308
|
- OpenGL 3.3+ capable hardware and drivers
|
310
|
-
rubygems_version: 3.
|
311
|
-
signing_key:
|
309
|
+
rubygems_version: 3.6.7
|
312
310
|
specification_version: 4
|
313
311
|
summary: OpenGL renderer for Mittsu
|
314
312
|
test_files: []
|