ruby-processing 2.4.2 → 2.4.3
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/CHANGELOG +5 -0
- data/CONTRIBUTING.md +2 -0
- data/README.md +5 -5
- data/lib/ruby-processing/runners/base.rb +2 -0
- data/lib/ruby-processing/runners/watch.rb +3 -4
- data/lib/ruby-processing/version.rb +1 -1
- data/library/vecmath/lib/arcball.rb +64 -0
- data/library/vecmath/lib/quaternion.rb +62 -0
- data/library/vecmath/lib/vec.rb +216 -0
- data/library/vecmath/vecmath.rb +37 -323
- data/samples/Rakefile +19 -0
- data/samples/contributed/Rakefile +30 -0
- data/samples/contributed/bezier_playground.rb +14 -6
- data/samples/contributed/drawolver.rb +17 -38
- data/samples/contributed/full_screen.rb +2 -2
- data/samples/contributed/quadraticvertex.rb +10 -2
- data/samples/processing_app/library/vecmath/Rakefile +30 -0
- data/samples/processing_app/library/vecmath/library/flock/flock.rb +4 -4
- data/samples/processing_app/library/vecmath/retained_menger.rb +96 -96
- data/samples/processing_app/topics/advanced_data/Rakefile +30 -0
- data/samples/processing_app/topics/cellular_automata/library/ca/ca.rb +3 -3
- data/samples/processing_app/topics/lsystems/Rakefile +30 -0
- data/samples/processing_app/topics/motion/Rakefile +30 -0
- data/samples/processing_app/topics/shaders/Rakefile +30 -0
- data/samples/processing_app/topics/shaders/data/FishEye.glsl +59 -0
- data/vendors/Rakefile +2 -2
- metadata +14 -4
- data/samples/processing_app/topics/shaders/dome_projection.rb +0 -143
@@ -7,7 +7,7 @@ class CA
|
|
7
7
|
def initialize(rules = [])
|
8
8
|
@width = $app.width
|
9
9
|
@height = $app.height
|
10
|
-
if rules.
|
10
|
+
if !rules.empty?
|
11
11
|
@rules = rules
|
12
12
|
else
|
13
13
|
randomize
|
@@ -23,7 +23,7 @@ class CA
|
|
23
23
|
|
24
24
|
# Return a random ruleset
|
25
25
|
def randomize
|
26
|
-
@rules = Array.new(8) {
|
26
|
+
@rules = Array.new(8) {rand(0 .. 1)}
|
27
27
|
end
|
28
28
|
|
29
29
|
# Reset to generation 0
|
@@ -86,6 +86,6 @@ class CA
|
|
86
86
|
|
87
87
|
# The CA is done if it reaches the bottom of the screen
|
88
88
|
def finished?
|
89
|
-
|
89
|
+
generation > (height/SCL)
|
90
90
|
end
|
91
91
|
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# Simple demo Rakefile to autorun samples in current directory
|
2
|
+
# adjust path to rp5 executable, and or opts as required
|
3
|
+
|
4
|
+
SAMPLES_DIR="./"
|
5
|
+
|
6
|
+
desc 'run demo'
|
7
|
+
task :default => [:demo]
|
8
|
+
|
9
|
+
desc 'demo'
|
10
|
+
task :demo do
|
11
|
+
samples_list.shuffle.each{|sample| run_sample sample}
|
12
|
+
end
|
13
|
+
|
14
|
+
def samples_list
|
15
|
+
files = []
|
16
|
+
Dir.chdir(SAMPLES_DIR)
|
17
|
+
Dir.glob("*.rb").each do |file|
|
18
|
+
files << File.join(SAMPLES_DIR, file)
|
19
|
+
end
|
20
|
+
return files
|
21
|
+
end
|
22
|
+
|
23
|
+
def run_sample(sample_name)
|
24
|
+
puts "Running #{sample_name}...quit to run next sample"
|
25
|
+
open("|rp5 run #{sample_name}", "r") do |io|
|
26
|
+
while l = io.gets
|
27
|
+
puts(l.chop)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# Simple demo Rakefile to autorun samples in current directory
|
2
|
+
# adjust path to rp5 executable, and or opts as required
|
3
|
+
|
4
|
+
SAMPLES_DIR="./"
|
5
|
+
|
6
|
+
desc 'run demo'
|
7
|
+
task :default => [:demo]
|
8
|
+
|
9
|
+
desc 'demo'
|
10
|
+
task :demo do
|
11
|
+
samples_list.shuffle.each{|sample| run_sample sample}
|
12
|
+
end
|
13
|
+
|
14
|
+
def samples_list
|
15
|
+
files = []
|
16
|
+
Dir.chdir(SAMPLES_DIR)
|
17
|
+
Dir.glob("*.rb").each do |file|
|
18
|
+
files << File.join(SAMPLES_DIR, file)
|
19
|
+
end
|
20
|
+
return files
|
21
|
+
end
|
22
|
+
|
23
|
+
def run_sample(sample_name)
|
24
|
+
puts "Running #{sample_name}...quit to run next sample"
|
25
|
+
open("|rp5 run #{sample_name}", "r") do |io|
|
26
|
+
while l = io.gets
|
27
|
+
puts(l.chop)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# Simple demo Rakefile to autorun samples in current directory
|
2
|
+
# adjust path to rp5 executable, and or opts as required
|
3
|
+
|
4
|
+
SAMPLES_DIR="./"
|
5
|
+
|
6
|
+
desc 'run demo'
|
7
|
+
task :default => [:demo]
|
8
|
+
|
9
|
+
desc 'demo'
|
10
|
+
task :demo do
|
11
|
+
samples_list.shuffle.each{|sample| run_sample sample}
|
12
|
+
end
|
13
|
+
|
14
|
+
def samples_list
|
15
|
+
files = []
|
16
|
+
Dir.chdir(SAMPLES_DIR)
|
17
|
+
Dir.glob("*.rb").each do |file|
|
18
|
+
files << File.join(SAMPLES_DIR, file)
|
19
|
+
end
|
20
|
+
return files
|
21
|
+
end
|
22
|
+
|
23
|
+
def run_sample(sample_name)
|
24
|
+
puts "Running #{sample_name}...quit to run next sample"
|
25
|
+
open("|rp5 --nojruby run #{sample_name}", "r") do |io|
|
26
|
+
while l = io.gets
|
27
|
+
puts(l.chop)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,59 @@
|
|
1
|
+
// Inspired by the "Angular Fisheye à la Bourke" sketch from
|
2
|
+
// Jonathan Cremieux, as shown in the OpenProcessing website:
|
3
|
+
// http://openprocessing.org/visuals/?visualID=12140
|
4
|
+
// Using the inverse transform of the angular fisheye as
|
5
|
+
// explained in Paul Bourke's website:
|
6
|
+
// http://paulbourke.net/miscellaneous/domefisheye/fisheye/
|
7
|
+
|
8
|
+
#ifdef GL_ES
|
9
|
+
precision mediump float;
|
10
|
+
precision mediump int;
|
11
|
+
#endif
|
12
|
+
|
13
|
+
#define PROCESSING_TEXTURE_SHADER
|
14
|
+
|
15
|
+
uniform sampler2D texture;
|
16
|
+
uniform mat4 texMatrix;
|
17
|
+
|
18
|
+
varying vec4 vertColor;
|
19
|
+
varying vec4 vertTexCoord;
|
20
|
+
|
21
|
+
uniform float aperture;
|
22
|
+
|
23
|
+
const float PI = 3.1415926535;
|
24
|
+
|
25
|
+
void main(void) {
|
26
|
+
float apertureHalf = 0.5 * aperture * (PI / 180.0);
|
27
|
+
|
28
|
+
// This factor ajusts the coordinates in the case that
|
29
|
+
// the aperture angle is less than 180 degrees, in which
|
30
|
+
// case the area displayed is not the entire half-sphere.
|
31
|
+
float maxFactor = sin(apertureHalf);
|
32
|
+
|
33
|
+
// The st factor takes into account the situation when non-pot
|
34
|
+
// textures are not supported, so that the maximum texture
|
35
|
+
// coordinate to cover the entire image might not be 1.
|
36
|
+
vec2 stFactor = vec2(1.0 / abs(texMatrix[0][0]), 1.0 / abs(texMatrix[1][1]));
|
37
|
+
vec2 pos = (2.0 * vertTexCoord.st * stFactor - 1.0);
|
38
|
+
|
39
|
+
float l = length(pos);
|
40
|
+
if (l > 1.0) {
|
41
|
+
gl_FragColor = vec4(0, 0, 0, 1);
|
42
|
+
} else {
|
43
|
+
float x = maxFactor * pos.x;
|
44
|
+
float y = maxFactor * pos.y;
|
45
|
+
|
46
|
+
float n = length(vec2(x, y));
|
47
|
+
|
48
|
+
float z = sqrt(1.0 - n * n);
|
49
|
+
|
50
|
+
float r = atan(n, z) / PI;
|
51
|
+
|
52
|
+
float phi = atan(y, x);
|
53
|
+
|
54
|
+
float u = r * cos(phi) + 0.5;
|
55
|
+
float v = r * sin(phi) + 0.5;
|
56
|
+
|
57
|
+
gl_FragColor = texture2D(texture, vec2(u, v) / stFactor) * vertColor;
|
58
|
+
}
|
59
|
+
}
|
data/vendors/Rakefile
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
require 'rake/clean'
|
2
2
|
|
3
|
-
JRUBY_VERSION = "1.7.
|
3
|
+
JRUBY_VERSION = "1.7.11"
|
4
4
|
|
5
5
|
CLOBBER.include("jruby-complete-#{JRUBY_VERSION}.jar")
|
6
6
|
|
@@ -12,7 +12,7 @@ task :download => ["jruby-complete-#{JRUBY_VERSION}.jar"]
|
|
12
12
|
|
13
13
|
file "jruby-complete-#{JRUBY_VERSION}.jar" do
|
14
14
|
sh "wget http://jruby.org.s3.amazonaws.com/downloads/#{JRUBY_VERSION}/jruby-complete-#{JRUBY_VERSION}.jar"
|
15
|
-
check_sha1("jruby-complete-#{JRUBY_VERSION}.jar", "
|
15
|
+
check_sha1("jruby-complete-#{JRUBY_VERSION}.jar", "cf627710faa842c9ea9f1e9955866703c653c5d9")
|
16
16
|
end
|
17
17
|
|
18
18
|
directory "../lib/ruby"
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-processing
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.4.
|
4
|
+
version: 2.4.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jeremy Ashkenas
|
@@ -18,7 +18,7 @@ authors:
|
|
18
18
|
autorequire:
|
19
19
|
bindir: bin
|
20
20
|
cert_chain: []
|
21
|
-
date: 2014-
|
21
|
+
date: 2014-02-25 00:00:00.000000000 Z
|
22
22
|
dependencies:
|
23
23
|
- !ruby/object:Gem::Dependency
|
24
24
|
name: bundler
|
@@ -123,8 +123,13 @@ files:
|
|
123
123
|
- library/boids/boids.rb
|
124
124
|
- library/control_panel/control_panel.rb
|
125
125
|
- library/file_chooser/file_chooser.rb
|
126
|
+
- library/vecmath/lib/arcball.rb
|
127
|
+
- library/vecmath/lib/quaternion.rb
|
128
|
+
- library/vecmath/lib/vec.rb
|
126
129
|
- library/vecmath/vecmath.rb
|
127
130
|
- ruby-processing.gemspec
|
131
|
+
- samples/Rakefile
|
132
|
+
- samples/contributed/Rakefile
|
128
133
|
- samples/contributed/animator.rb
|
129
134
|
- samples/contributed/bezier_playground.rb
|
130
135
|
- samples/contributed/circle_collision.rb
|
@@ -400,6 +405,7 @@ files:
|
|
400
405
|
- samples/processing_app/library/pdf/many_pdfs.rb
|
401
406
|
- samples/processing_app/library/pdf/one_frame.rb
|
402
407
|
- samples/processing_app/library/vecmath/README.txt
|
408
|
+
- samples/processing_app/library/vecmath/Rakefile
|
403
409
|
- samples/processing_app/library/vecmath/acceleration_with_vectors.rb
|
404
410
|
- samples/processing_app/library/vecmath/bouncing_ball.rb
|
405
411
|
- samples/processing_app/library/vecmath/circle_collision.rb
|
@@ -425,6 +431,7 @@ files:
|
|
425
431
|
- samples/processing_app/library/vecmath/vector_math.rb
|
426
432
|
- samples/processing_app/library/vecmath/wiggle_pshape.rb
|
427
433
|
- samples/processing_app/topics/advanced_data/README
|
434
|
+
- samples/processing_app/topics/advanced_data/Rakefile
|
428
435
|
- samples/processing_app/topics/advanced_data/counting_words.rb
|
429
436
|
- samples/processing_app/topics/advanced_data/data/Georgia.ttf
|
430
437
|
- samples/processing_app/topics/advanced_data/data/Merriweather-Light.ttf
|
@@ -735,6 +742,7 @@ files:
|
|
735
742
|
- samples/processing_app/topics/image_processing/linear_image.rb
|
736
743
|
- samples/processing_app/topics/image_processing/pixel_array.rb
|
737
744
|
- samples/processing_app/topics/image_processing/zoom.rb
|
745
|
+
- samples/processing_app/topics/lsystems/Rakefile
|
738
746
|
- samples/processing_app/topics/lsystems/chequer.rb
|
739
747
|
- samples/processing_app/topics/lsystems/csplant.rb
|
740
748
|
- samples/processing_app/topics/lsystems/cstest.rb
|
@@ -753,6 +761,7 @@ files:
|
|
753
761
|
- samples/processing_app/topics/lsystems/snake_kolam.rb
|
754
762
|
- samples/processing_app/topics/lsystems/stochastic_test.rb
|
755
763
|
- samples/processing_app/topics/lsystems/three_d_tree.rb
|
764
|
+
- samples/processing_app/topics/motion/Rakefile
|
756
765
|
- samples/processing_app/topics/motion/bounce.rb
|
757
766
|
- samples/processing_app/topics/motion/bouncy_bubbles.rb
|
758
767
|
- samples/processing_app/topics/motion/brownian.rb
|
@@ -768,9 +777,11 @@ files:
|
|
768
777
|
- samples/processing_app/topics/motion/reflection1.rb
|
769
778
|
- samples/processing_app/topics/motion/reflection2.rb
|
770
779
|
- samples/processing_app/topics/shaders/README
|
780
|
+
- samples/processing_app/topics/shaders/Rakefile
|
771
781
|
- samples/processing_app/topics/shaders/blur_filter.rb
|
772
782
|
- samples/processing_app/topics/shaders/bw_shader.rb
|
773
783
|
- samples/processing_app/topics/shaders/conway.rb
|
784
|
+
- samples/processing_app/topics/shaders/data/FishEye.glsl
|
774
785
|
- samples/processing_app/topics/shaders/data/GlossyFrag.glsl
|
775
786
|
- samples/processing_app/topics/shaders/data/GlossyVert.glsl
|
776
787
|
- samples/processing_app/topics/shaders/data/Texture01.jpg
|
@@ -796,7 +807,6 @@ files:
|
|
796
807
|
- samples/processing_app/topics/shaders/data/sep_blur.glsl
|
797
808
|
- samples/processing_app/topics/shaders/data/tex1.jpg
|
798
809
|
- samples/processing_app/topics/shaders/deform.rb
|
799
|
-
- samples/processing_app/topics/shaders/dome_projection.rb
|
800
810
|
- samples/processing_app/topics/shaders/edge_detect.rb
|
801
811
|
- samples/processing_app/topics/shaders/glossy_fish_eye.rb
|
802
812
|
- samples/processing_app/topics/shaders/glsl_heightmap_noise.rb
|
@@ -853,7 +863,7 @@ requirements:
|
|
853
863
|
- java runtime >= 1.6+
|
854
864
|
- processing = 2.0.3+
|
855
865
|
rubyforge_project:
|
856
|
-
rubygems_version: 2.
|
866
|
+
rubygems_version: 2.2.0
|
857
867
|
signing_key:
|
858
868
|
specification_version: 4
|
859
869
|
summary: Code as Art, Art as Code. Processing and Ruby are meant for each other.
|
@@ -1,143 +0,0 @@
|
|
1
|
-
#
|
2
|
-
# DomeProjection
|
3
|
-
#
|
4
|
-
# This sketch uses use environmental mapping to render the output
|
5
|
-
# on a full spherical dome.
|
6
|
-
#
|
7
|
-
# Based on the FullDome_template code from Christopher Warnow:
|
8
|
-
# https://github.com/mphasize/FullDome
|
9
|
-
#
|
10
|
-
#
|
11
|
-
|
12
|
-
attr_reader :fbo, :cube_map_shader, :dome_sphere, :env_map_texture_id
|
13
|
-
|
14
|
-
ENV_MAP_SIZE = 1024
|
15
|
-
|
16
|
-
def setup
|
17
|
-
size(640, 640, P3D)
|
18
|
-
init_cube_map
|
19
|
-
end
|
20
|
-
|
21
|
-
def draw
|
22
|
-
background(0)
|
23
|
-
draw_cube_map
|
24
|
-
end
|
25
|
-
|
26
|
-
def draw_scene
|
27
|
-
background(0)
|
28
|
-
stroke(255, 0, 0)
|
29
|
-
stroke_weight(2)
|
30
|
-
|
31
|
-
(-width ... 2 * width).step(50) do |i|
|
32
|
-
line(i, -height, -100, i, 2 * height, -100)
|
33
|
-
end
|
34
|
-
(-height ... 2 * height).step(50) do |i|
|
35
|
-
line(-width, i, -100, 2 * width, i, -100)
|
36
|
-
end
|
37
|
-
|
38
|
-
lights
|
39
|
-
no_stroke
|
40
|
-
translate(mouse_x, mouse_y, 200)
|
41
|
-
rotate_x(frame_count * 0.01)
|
42
|
-
rotate_y(frame_count * 0.01)
|
43
|
-
box(100)
|
44
|
-
end
|
45
|
-
|
46
|
-
java_import "java.nio.IntBuffer"
|
47
|
-
|
48
|
-
def init_cube_map
|
49
|
-
sphere_detail(50)
|
50
|
-
@dome_sphere = create_shape(SPHERE, height/2.0)
|
51
|
-
dome_sphere.rotate_x(HALF_PI)
|
52
|
-
dome_sphere.set_stroke(false)
|
53
|
-
|
54
|
-
pgl = beginPGL
|
55
|
-
|
56
|
-
@env_map_texture_id = IntBuffer.allocate(1)
|
57
|
-
pgl.gen_textures(1, env_map_texture_id)
|
58
|
-
pgl.bind_texture(PGL::TEXTURE_CUBE_MAP, env_map_texture_id.get(0))
|
59
|
-
pgl.texParameteri(PGL::TEXTURE_CUBE_MAP, PGL::TEXTURE_WRAP_S, PGL::CLAMP_TO_EDGE)
|
60
|
-
pgl.texParameteri(PGL::TEXTURE_CUBE_MAP, PGL::TEXTURE_WRAP_T, PGL::CLAMP_TO_EDGE)
|
61
|
-
pgl.texParameteri(PGL::TEXTURE_CUBE_MAP, PGL::TEXTURE_WRAP_R, PGL::CLAMP_TO_EDGE)
|
62
|
-
pgl.texParameteri(PGL::TEXTURE_CUBE_MAP, PGL::TEXTURE_MIN_FILTER, PGL::NEAREST)
|
63
|
-
pgl.texParameteri(PGL::TEXTURE_CUBE_MAP, PGL::TEXTURE_MAG_FILTER, PGL::NEAREST)
|
64
|
-
(PGL::TEXTURE_CUBE_MAP_POSITIVE_X ... PGL::TEXTURE_CUBE_MAP_POSITIVE_X + 6).each do |i|
|
65
|
-
pgl.texImage2D(i, 0, PGL::RGBA8, ENV_MAP_SIZE, ENV_MAP_SIZE, 0, PGL::RGBA, PGL::UNSIGNED_BYTE, nil)
|
66
|
-
end
|
67
|
-
|
68
|
-
# Init fbo, rbo
|
69
|
-
@fbo = IntBuffer.allocate(1)
|
70
|
-
rbo = IntBuffer.allocate(1)
|
71
|
-
pgl.genFramebuffers(1, fbo)
|
72
|
-
pgl.bindFramebuffer(PGL::FRAMEBUFFER, fbo.get(0))
|
73
|
-
pgl.framebufferTexture2D(PGL::FRAMEBUFFER, PGL::COLOR_ATTACHMENT0, PGL::TEXTURE_CUBE_MAP_POSITIVE_X, env_map_texture_id.get(0), 0)
|
74
|
-
|
75
|
-
pgl.genRenderbuffers(1, rbo)
|
76
|
-
pgl.bindRenderbuffer(PGL::RENDERBUFFER, rbo.get(0))
|
77
|
-
pgl.renderbufferStorage(PGL::RENDERBUFFER, PGL::DEPTH_COMPONENT24, ENV_MAP_SIZE, ENV_MAP_SIZE)
|
78
|
-
|
79
|
-
# Attach depth buffer to FBO
|
80
|
-
pgl.framebufferRenderbuffer(PGL::FRAMEBUFFER, PGL::DEPTH_ATTACHMENT, PGL::RENDERBUFFER, rbo.get(0))
|
81
|
-
|
82
|
-
pgl.enable(PGL::TEXTURE_CUBE_MAP)
|
83
|
-
pgl.active_texture(PGL::TEXTURE1)
|
84
|
-
pgl.bind_texture(PGL::TEXTURE_CUBE_MAP, env_map_texture_id.get(0))
|
85
|
-
|
86
|
-
endPGL
|
87
|
-
|
88
|
-
# Load cubemap shader.
|
89
|
-
@cube_map_shader = load_shader("cubemapfrag.glsl", "cubemapvert.glsl")
|
90
|
-
cube_map_shader.set("cubemap", 1)
|
91
|
-
end
|
92
|
-
|
93
|
-
def draw_cube_map
|
94
|
-
regenerateEnvMap
|
95
|
-
drawDomeMaster
|
96
|
-
end
|
97
|
-
|
98
|
-
def drawDomeMaster
|
99
|
-
ortho
|
100
|
-
reset_matrix
|
101
|
-
shader(cube_map_shader)
|
102
|
-
shape(dome_sphere)
|
103
|
-
reset_shader
|
104
|
-
end
|
105
|
-
|
106
|
-
# Called to regenerate the envmap
|
107
|
-
def regenerateEnvMap
|
108
|
-
pgl = beginPGL
|
109
|
-
|
110
|
-
# bind fbo
|
111
|
-
pgl.bindFramebuffer(PGL::FRAMEBUFFER, fbo.get(0))
|
112
|
-
|
113
|
-
# generate 6 views from origin(0, 0, 0)
|
114
|
-
pgl.viewport(0, 0, ENV_MAP_SIZE, ENV_MAP_SIZE)
|
115
|
-
perspective(90.0 * DEG_TO_RAD, 1.0, 1.0, 1025.0)
|
116
|
-
(PGL::TEXTURE_CUBE_MAP_POSITIVE_X ... PGL::TEXTURE_CUBE_MAP_NEGATIVE_Z).each do |face|
|
117
|
-
reset_matrix
|
118
|
-
case face
|
119
|
-
when PGL::TEXTURE_CUBE_MAP_POSITIVE_X
|
120
|
-
camera(0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, -1.0, 0.0)
|
121
|
-
when PGL::TEXTURE_CUBE_MAP_NEGATIVE_X
|
122
|
-
camera(0.0, 0.0, 0.0, -1.0, 0.0, 0.0, 0.0, -1.0, 0.0)
|
123
|
-
when PGL::TEXTURE_CUBE_MAP_POSITIVE_Y
|
124
|
-
camera(0.0, 0.0, 0.0, 0.0, -1.0, 0.0, 0.0, 0.0, -1.0)
|
125
|
-
when PGL::TEXTURE_CUBE_MAP_NEGATIVE_Y
|
126
|
-
camera(0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0)
|
127
|
-
when PGL::TEXTURE_CUBE_MAP_POSITIVE_Z
|
128
|
-
camera(0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, -1.0, 0.0)
|
129
|
-
end
|
130
|
-
|
131
|
-
scale(-1, 1, -1)
|
132
|
-
translate(-width * 0.5, -height * 0.5, -500)
|
133
|
-
pgl.framebufferTexture2D(PGL::FRAMEBUFFER, PGL::COLOR_ATTACHMENT0, face, env_map_texture_id.get(0), 0)
|
134
|
-
draw_scene# Draw objects in the scene
|
135
|
-
flush# Make sure that the geometry in the scene is pushed to the GPU
|
136
|
-
no_lights # Disabling lights to avoid adding many times
|
137
|
-
pgl.framebufferTexture2D(PGL::FRAMEBUFFER, PGL::COLOR_ATTACHMENT0, face, 0, 0)
|
138
|
-
end
|
139
|
-
|
140
|
-
endPGL
|
141
|
-
end
|
142
|
-
|
143
|
-
|