ray 0.1.1 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (167) hide show
  1. data/README.md +9 -6
  2. data/Rakefile +1 -5
  3. data/ext/audio.c +25 -19
  4. data/ext/audio_source.c +67 -39
  5. data/ext/color.c +19 -19
  6. data/ext/drawable.c +190 -31
  7. data/ext/extconf.rb +16 -14
  8. data/ext/gl.c +310 -30
  9. data/ext/gl_buffer.c +223 -2
  10. data/ext/gl_index_buffer.c +11 -0
  11. data/ext/gl_int_array.c +24 -22
  12. data/ext/gl_vertex.c +84 -49
  13. data/ext/image.c +115 -51
  14. data/ext/image_target.c +58 -10
  15. data/ext/input.c +73 -6
  16. data/ext/mo.c +583 -0
  17. data/ext/mo.h +189 -0
  18. data/ext/music.c +9 -8
  19. data/ext/pixel_bus.c +349 -0
  20. data/ext/polygon.c +68 -45
  21. data/ext/ray.c +1 -0
  22. data/ext/ray.h +19 -1
  23. data/ext/rect.c +9 -47
  24. data/ext/say.h +1 -2
  25. data/ext/say_all.h +6 -0
  26. data/ext/say_audio.h +3 -0
  27. data/ext/say_audio_context.c +1 -4
  28. data/ext/say_basic_type.c +24 -0
  29. data/ext/say_basic_type.h +4 -0
  30. data/ext/say_buffer.c +217 -88
  31. data/ext/say_buffer.h +20 -5
  32. data/ext/say_buffer_renderer.c +10 -7
  33. data/ext/say_buffer_renderer.h +1 -1
  34. data/ext/say_buffer_slice.c +70 -76
  35. data/ext/say_context.c +109 -22
  36. data/ext/say_context.h +14 -0
  37. data/ext/say_drawable.c +113 -25
  38. data/ext/say_drawable.h +23 -2
  39. data/ext/say_error.c +7 -2
  40. data/ext/say_font.c +30 -27
  41. data/ext/say_font.h +3 -6
  42. data/ext/say_get_proc.c +35 -0
  43. data/ext/say_image.c +102 -27
  44. data/ext/say_image.h +11 -4
  45. data/ext/say_image_target.c +88 -34
  46. data/ext/say_image_target.h +3 -2
  47. data/ext/say_index_buffer.c +31 -19
  48. data/ext/say_index_buffer.h +4 -2
  49. data/ext/say_index_buffer_slice.c +78 -70
  50. data/ext/say_music.c +4 -2
  51. data/ext/say_osx.h +3 -2
  52. data/ext/say_osx_context.h +37 -4
  53. data/ext/say_osx_window.h +32 -37
  54. data/ext/say_pixel_bus.c +163 -0
  55. data/ext/say_pixel_bus.h +44 -0
  56. data/ext/say_polygon.c +2 -2
  57. data/ext/say_shader.c +66 -62
  58. data/ext/say_shader.h +2 -0
  59. data/ext/say_sprite.c +1 -2
  60. data/ext/say_target.c +14 -23
  61. data/ext/say_target.h +3 -1
  62. data/ext/say_text.c +45 -7
  63. data/ext/say_text.h +12 -3
  64. data/ext/say_thread.c +13 -6
  65. data/ext/say_thread.h +1 -1
  66. data/ext/say_thread_variable.c +5 -5
  67. data/ext/say_vertex_type.c +79 -41
  68. data/ext/say_vertex_type.h +6 -2
  69. data/ext/say_view.c +10 -31
  70. data/ext/say_view.h +1 -5
  71. data/ext/say_win.h +2 -2
  72. data/ext/say_win_context.h +49 -11
  73. data/ext/say_win_window.h +30 -27
  74. data/ext/say_window.c +3 -3
  75. data/ext/say_x11.h +3 -1
  76. data/ext/say_x11_context.h +64 -10
  77. data/ext/say_x11_window.h +22 -17
  78. data/ext/shader.c +9 -0
  79. data/ext/sprite.c +7 -1
  80. data/ext/target.c +80 -28
  81. data/ext/text.c +43 -1
  82. data/ext/view.c +53 -1
  83. data/ext/window.c +4 -0
  84. data/lib/ray/animation_list.rb +17 -2
  85. data/lib/ray/audio_source.rb +11 -0
  86. data/lib/ray/color.rb +14 -0
  87. data/lib/ray/drawable.rb +23 -0
  88. data/lib/ray/dsl/event.rb +1 -9
  89. data/lib/ray/dsl/event_runner.rb +3 -4
  90. data/lib/ray/dsl/matcher.rb +20 -1
  91. data/lib/ray/effect.rb +116 -0
  92. data/lib/ray/effect/black_and_white.rb +38 -0
  93. data/lib/ray/effect/color_inversion.rb +16 -0
  94. data/lib/ray/effect/generator.rb +145 -0
  95. data/lib/ray/effect/grayscale.rb +32 -0
  96. data/lib/ray/game.rb +25 -5
  97. data/lib/ray/gl/vertex.rb +105 -26
  98. data/lib/ray/helper.rb +5 -0
  99. data/lib/ray/image.rb +54 -13
  100. data/lib/ray/image_target.rb +7 -0
  101. data/lib/ray/matrix.rb +26 -0
  102. data/lib/ray/music.rb +4 -0
  103. data/lib/ray/pixel_bus.rb +22 -0
  104. data/lib/ray/polygon.rb +17 -0
  105. data/lib/ray/pp.rb +28 -0
  106. data/lib/ray/ray.rb +7 -1
  107. data/lib/ray/rect.rb +7 -13
  108. data/lib/ray/scene.rb +24 -5
  109. data/lib/ray/scene_list.rb +9 -0
  110. data/lib/ray/shader.rb +11 -2
  111. data/lib/ray/sound.rb +4 -0
  112. data/lib/ray/sprite.rb +23 -62
  113. data/lib/ray/target.rb +25 -0
  114. data/lib/ray/text.rb +10 -0
  115. data/lib/ray/turtle.rb +9 -3
  116. data/lib/ray/vector.rb +18 -0
  117. data/lib/ray/vertex.rb +6 -0
  118. data/lib/ray/view.rb +22 -0
  119. data/samples/animation/sprite_motion.rb +0 -60
  120. data/samples/audio/{spacial.rb → spatial.rb} +1 -1
  121. data/samples/buffer/buffer.rb +1 -0
  122. data/samples/buffer/index_buffer.rb +2 -0
  123. data/samples/cptn_ruby/cptn_ruby.rb +6 -7
  124. data/samples/effects/effect.rb +39 -0
  125. data/samples/effects/grayscale.rb +27 -0
  126. data/samples/opengl/image.rb +7 -5
  127. data/samples/opengl/instancing.rb +159 -0
  128. data/samples/opengl/instancing.rbc +3231 -0
  129. data/samples/opengl/obj_loader.rb +9 -8
  130. data/samples/opengl/shader.rb +1 -3
  131. data/samples/shaders/geometry.rb +108 -38
  132. data/samples/shaders/geometry.rbc +2074 -0
  133. data/samples/shaders/shape.rb +2 -2
  134. data/samples/starfighter/starfighter.rb +5 -5
  135. data/samples/window/get_pixel.rb +1 -1
  136. data/test/animation_list_test.rb +18 -4
  137. data/test/drawable_test.rb +70 -1
  138. data/test/effect_generator_test.rb +63 -0
  139. data/test/effect_test.rb +61 -0
  140. data/test/game_test.rb +18 -0
  141. data/test/gl_buffer_test.rb +43 -1
  142. data/test/gl_index_buffer_test.rb +5 -0
  143. data/test/gl_vertex_test.rb +28 -1
  144. data/test/image_test.rb +5 -5
  145. data/test/input_test.rb +49 -0
  146. data/test/pixel_bus_test.rb +28 -0
  147. data/test/rect_test.rb +4 -0
  148. data/{samples/_media → test/res}/Beep.wav +0 -0
  149. data/samples/_media/CptnRuby Gem.png b/data/test/res/CptnRuby → Gem.png +0 -0
  150. data/samples/_media/CptnRuby Map.txt b/data/test/res/CptnRuby → Map.txt +0 -0
  151. data/samples/_media/CptnRuby Tileset.png b/data/test/res/CptnRuby → Tileset.png +0 -0
  152. data/{samples/_media → test/res}/CptnRuby.png +0 -0
  153. data/{samples/_media → test/res}/Space.png +0 -0
  154. data/{samples/_media → test/res}/Star.png +0 -0
  155. data/{samples/_media → test/res}/Starfighter.png +0 -0
  156. data/test/res/cube.obj +28 -0
  157. data/test/res/light3d.c +2 -2
  158. data/test/res/stone.png +0 -0
  159. data/test/scene_test.rb +3 -0
  160. data/test/sprite_test.rb +10 -0
  161. data/test/text_test.rb +31 -2
  162. data/test/view_test.rb +13 -1
  163. metadata +38 -17
  164. data/ext/say_array.c +0 -124
  165. data/ext/say_array.h +0 -34
  166. data/ext/say_table.c +0 -86
  167. data/ext/say_table.h +0 -24
@@ -0,0 +1,27 @@
1
+ $:.unshift File.expand_path(File.dirname(__FILE__) + "/../../lib")
2
+ $:.unshift File.expand_path(File.dirname(__FILE__) + "/../../ext")
3
+
4
+ def path_of(res)
5
+ File.expand_path(File.dirname(__FILE__) + "/../../test/res/#{res}")
6
+ end
7
+
8
+ require 'ray'
9
+
10
+ Ray.game "grayscale" do
11
+ register { add_hook :quit, method(:exit!) }
12
+
13
+ scene :shader do
14
+ @obj = sprite path_of("sprite.png")
15
+
16
+ effect_generator do |gen|
17
+ gen << grayscale
18
+ gen.build window.shader
19
+ end
20
+
21
+ render do |win|
22
+ win.draw @obj
23
+ end
24
+ end
25
+
26
+ scenes << :shader
27
+ end
@@ -14,17 +14,19 @@ class CustomSprite < Ray::Drawable
14
14
  end
15
15
 
16
16
  def fill_vertices
17
+ rect = @img.tex_rect [0, 0, @img.w, @img.h]
18
+
17
19
  [
18
- Ray::Vertex.new([0, 0], Ray::Color.white, [0, 0]),
19
- Ray::Vertex.new([@img.w, 0], Ray::Color.white, [1, 0]),
20
- Ray::Vertex.new([@img.w, @img.h], Ray::Color.white, [1, 1]),
21
- Ray::Vertex.new([0, @img.h], Ray::Color.white, [0, 1]),
20
+ Ray::Vertex.new([0, 0], Ray::Color.white, rect.top_left),
21
+ Ray::Vertex.new([@img.w, 0], Ray::Color.white, rect.top_right),
22
+ Ray::Vertex.new([0, @img.h], Ray::Color.white, rect.bottom_left),
23
+ Ray::Vertex.new([@img.w, @img.h], Ray::Color.white, rect.bottom_right),
22
24
  ]
23
25
  end
24
26
 
25
27
  def render(first, index)
26
28
  @img.bind
27
- Ray::GL.draw_arrays :triangle_fan, first, 4
29
+ Ray::GL.draw_arrays :triangle_strip, first, 4
28
30
  end
29
31
  end
30
32
 
@@ -0,0 +1,159 @@
1
+ $:.unshift File.expand_path(File.dirname(__FILE__) + "/../../lib")
2
+ $:.unshift File.expand_path(File.dirname(__FILE__) + "/../../ext")
3
+
4
+ require 'ray'
5
+
6
+ Ray::GL.core_profile = true
7
+ Ray::GL.major_version = 3
8
+ Ray::GL.minor_version = 2
9
+
10
+ def path_of(res)
11
+ File.expand_path(res, File.join(File.dirname(__FILE__), '../../test/res'))
12
+ end
13
+
14
+ class Model < Ray::Drawable
15
+ include Ray::GL
16
+
17
+ InstanceSqrt = 120
18
+ InstanceCount = InstanceSqrt ** 2
19
+
20
+ Vertex = Ray::GL::Vertex.make [
21
+ [:pos, "in_Position", :vector3],
22
+
23
+ [:col, "in_Color", :color, true],
24
+ [:translation, "in_Translation", :vector3, true],
25
+ ]
26
+
27
+ def initialize(filename)
28
+ super()
29
+
30
+ @buffer = Ray::GL::Buffer.new :static, Vertex
31
+
32
+ @buffer.resize_instance InstanceCount
33
+
34
+ n = x = 0.0
35
+ (0...InstanceSqrt).each do
36
+ z = 0
37
+ (0...InstanceSqrt).each do
38
+ translation = [(x + rand * 2 - 1) * 10, 0, -10 * (z + 1)]
39
+ @buffer.set_instance(n, Vertex::Instance.new(Ray::Color.new(rand(256),
40
+ rand(256),
41
+ rand(256)),
42
+ translation))
43
+ n += 1
44
+
45
+ z += rand * 2
46
+ end
47
+
48
+ x += rand * 2
49
+ end
50
+
51
+ @buffer.update_instance
52
+
53
+ @buffer.resize 12 * 3
54
+
55
+ index = -1
56
+
57
+ positions = []
58
+
59
+ open(filename) do |io|
60
+ io.each_line do |line|
61
+ next if line[0] == "#" or line !~ /\S/
62
+
63
+ word, *args = line.split(" ")
64
+
65
+ case word
66
+ when "v" then positions << Ray::Vector3[*args.map(&:to_f)]
67
+ when "f" then
68
+ args.each do |arg|
69
+ pos, normal = arg.split("//").map { |s| s.to_i - 1 }
70
+ @buffer[index += 1] = Vertex.new(positions[pos])
71
+ end
72
+ end
73
+ end
74
+ end
75
+
76
+ @buffer.update
77
+
78
+ self.matrix_proc = proc do
79
+ c = Math.cos(@n / 100.0)
80
+ s = Math.sin(@n / 100.0)
81
+ Ray::Matrix.looking_at([200 + 50 * c, 100 * s, -50],
82
+ [500, 20, -500],
83
+ [0, -1, 0]).scale([4, 4, 4])
84
+ end
85
+ end
86
+
87
+ def move(n)
88
+ @n = n
89
+ matrix_changed!
90
+ end
91
+
92
+ def render(first, index)
93
+ @buffer.bind
94
+ draw_arrays_instanced :triangles, first, @buffer.size, InstanceCount
95
+ end
96
+ end
97
+
98
+ Ray.game "*Many* cubes!" do
99
+ register { add_hook :quit, method(:exit!) }
100
+
101
+ scene :teapot do
102
+ @model = Model.new path_of("cube.obj")
103
+
104
+ vertex_shader = <<-code
105
+ #version 150
106
+
107
+ in vec3 in_Position;
108
+ in vec3 in_Translation;
109
+ in vec4 in_Color;
110
+
111
+ uniform mat4 in_ModelView;
112
+ uniform mat4 in_Projection;
113
+
114
+ out vec4 var_Color;
115
+
116
+ void main() {
117
+ mat4 transform = in_ModelView *
118
+ mat4(1, 0, 0, in_Translation.x,
119
+ 0, 1, 0, in_Translation.y,
120
+ 0, 0, 1, in_Translation.z,
121
+ 0, 0, 0, 1);
122
+ mat4 mvp = transform * in_Projection;
123
+ gl_Position = vec4(in_Position, 1) * mvp;
124
+
125
+ var_Color = in_Color;
126
+ }
127
+ code
128
+
129
+ frag_shader = <<-code
130
+ #version 150
131
+
132
+ in vec4 var_Color;
133
+ out vec4 out_FragColor;
134
+
135
+ void main() {
136
+ out_FragColor = var_Color;
137
+ }
138
+ code
139
+
140
+ window.shader.apply_vertex Model::Vertex
141
+ window.shader.compile(:vertex => StringIO.new(vertex_shader),
142
+ :frag => StringIO.new(frag_shader))
143
+
144
+ window.view = Ray::View.new Ray::Matrix.perspective(120, 480.fdiv(640), 1,
145
+ 1000)
146
+
147
+ n = 0.0
148
+ always do
149
+ @model.move(n += 1)
150
+ end
151
+
152
+ render do |win|
153
+ win.draw @model
154
+ end
155
+ end
156
+
157
+ scenes << :teapot
158
+ end
159
+
@@ -0,0 +1,3231 @@
1
+ !RBIX
2
+ 11985915524486876935
3
+ x
4
+ M
5
+ 1
6
+ n
7
+ n
8
+ x
9
+ 10
10
+ __script__
11
+ i
12
+ 177
13
+ 99
14
+ 43
15
+ 0
16
+ 7
17
+ 1
18
+ 49
19
+ 2
20
+ 1
21
+ 45
22
+ 3
23
+ 4
24
+ 45
25
+ 3
26
+ 5
27
+ 65
28
+ 49
29
+ 6
30
+ 0
31
+ 49
32
+ 7
33
+ 1
34
+ 7
35
+ 8
36
+ 64
37
+ 81
38
+ 9
39
+ 49
40
+ 10
41
+ 1
42
+ 49
43
+ 11
44
+ 1
45
+ 15
46
+ 99
47
+ 43
48
+ 0
49
+ 7
50
+ 1
51
+ 49
52
+ 2
53
+ 1
54
+ 45
55
+ 3
56
+ 12
57
+ 45
58
+ 3
59
+ 13
60
+ 65
61
+ 49
62
+ 6
63
+ 0
64
+ 49
65
+ 7
66
+ 1
67
+ 7
68
+ 14
69
+ 64
70
+ 81
71
+ 9
72
+ 49
73
+ 10
74
+ 1
75
+ 49
76
+ 11
77
+ 1
78
+ 15
79
+ 5
80
+ 7
81
+ 15
82
+ 64
83
+ 47
84
+ 49
85
+ 16
86
+ 1
87
+ 15
88
+ 45
89
+ 17
90
+ 18
91
+ 43
92
+ 19
93
+ 2
94
+ 13
95
+ 18
96
+ 2
97
+ 49
98
+ 20
99
+ 1
100
+ 15
101
+ 15
102
+ 45
103
+ 17
104
+ 21
105
+ 43
106
+ 19
107
+ 4
108
+ 3
109
+ 13
110
+ 18
111
+ 2
112
+ 49
113
+ 22
114
+ 1
115
+ 15
116
+ 15
117
+ 45
118
+ 17
119
+ 23
120
+ 43
121
+ 19
122
+ 80
123
+ 13
124
+ 18
125
+ 2
126
+ 49
127
+ 24
128
+ 1
129
+ 15
130
+ 15
131
+ 99
132
+ 7
133
+ 25
134
+ 7
135
+ 26
136
+ 65
137
+ 67
138
+ 49
139
+ 27
140
+ 0
141
+ 49
142
+ 28
143
+ 4
144
+ 15
145
+ 99
146
+ 7
147
+ 29
148
+ 45
149
+ 17
150
+ 30
151
+ 43
152
+ 31
153
+ 65
154
+ 49
155
+ 32
156
+ 3
157
+ 13
158
+ 99
159
+ 12
160
+ 7
161
+ 33
162
+ 12
163
+ 7
164
+ 34
165
+ 12
166
+ 65
167
+ 12
168
+ 49
169
+ 35
170
+ 4
171
+ 15
172
+ 49
173
+ 33
174
+ 0
175
+ 15
176
+ 45
177
+ 17
178
+ 36
179
+ 7
180
+ 37
181
+ 64
182
+ 56
183
+ 38
184
+ 50
185
+ 39
186
+ 1
187
+ 15
188
+ 2
189
+ 11
190
+ I
191
+ 6
192
+ I
193
+ 0
194
+ I
195
+ 0
196
+ I
197
+ 0
198
+ n
199
+ p
200
+ 40
201
+ x
202
+ 7
203
+ Globals
204
+ x
205
+ 2
206
+ $:
207
+ x
208
+ 2
209
+ []
210
+ x
211
+ 4
212
+ File
213
+ n
214
+ n
215
+ x
216
+ 11
217
+ active_path
218
+ x
219
+ 7
220
+ dirname
221
+ s
222
+ 10
223
+ /../../lib
224
+ x
225
+ 1
226
+ +
227
+ x
228
+ 11
229
+ expand_path
230
+ x
231
+ 7
232
+ unshift
233
+ n
234
+ n
235
+ s
236
+ 10
237
+ /../../ext
238
+ s
239
+ 3
240
+ ray
241
+ x
242
+ 7
243
+ require
244
+ x
245
+ 3
246
+ Ray
247
+ n
248
+ x
249
+ 2
250
+ GL
251
+ x
252
+ 13
253
+ core_profile=
254
+ n
255
+ x
256
+ 14
257
+ major_version=
258
+ n
259
+ x
260
+ 14
261
+ minor_version=
262
+ x
263
+ 7
264
+ path_of
265
+ M
266
+ 1
267
+ n
268
+ n
269
+ x
270
+ 7
271
+ path_of
272
+ i
273
+ 28
274
+ 45
275
+ 0
276
+ 1
277
+ 20
278
+ 0
279
+ 45
280
+ 0
281
+ 2
282
+ 45
283
+ 0
284
+ 3
285
+ 65
286
+ 49
287
+ 4
288
+ 0
289
+ 49
290
+ 5
291
+ 1
292
+ 7
293
+ 6
294
+ 64
295
+ 49
296
+ 7
297
+ 2
298
+ 49
299
+ 8
300
+ 2
301
+ 11
302
+ I
303
+ 6
304
+ I
305
+ 1
306
+ I
307
+ 1
308
+ I
309
+ 1
310
+ n
311
+ p
312
+ 9
313
+ x
314
+ 4
315
+ File
316
+ n
317
+ n
318
+ n
319
+ x
320
+ 11
321
+ active_path
322
+ x
323
+ 7
324
+ dirname
325
+ s
326
+ 14
327
+ ../../test/res
328
+ x
329
+ 4
330
+ join
331
+ x
332
+ 11
333
+ expand_path
334
+ p
335
+ 5
336
+ I
337
+ -1
338
+ I
339
+ a
340
+ I
341
+ 0
342
+ I
343
+ b
344
+ I
345
+ 1c
346
+ x
347
+ 50
348
+ /home/kilian/code/ray/samples/opengl/instancing.rb
349
+ p
350
+ 1
351
+ x
352
+ 3
353
+ res
354
+ x
355
+ 17
356
+ method_visibility
357
+ x
358
+ 15
359
+ add_defn_method
360
+ x
361
+ 5
362
+ Model
363
+ n
364
+ x
365
+ 8
366
+ Drawable
367
+ x
368
+ 10
369
+ open_class
370
+ x
371
+ 14
372
+ __class_init__
373
+ M
374
+ 1
375
+ n
376
+ n
377
+ x
378
+ 5
379
+ Model
380
+ i
381
+ 126
382
+ 5
383
+ 66
384
+ 5
385
+ 45
386
+ 0
387
+ 1
388
+ 43
389
+ 2
390
+ 47
391
+ 49
392
+ 3
393
+ 1
394
+ 15
395
+ 65
396
+ 7
397
+ 4
398
+ 4
399
+ 120
400
+ 49
401
+ 5
402
+ 2
403
+ 15
404
+ 65
405
+ 7
406
+ 6
407
+ 45
408
+ 4
409
+ 7
410
+ 80
411
+ 49
412
+ 8
413
+ 1
414
+ 49
415
+ 5
416
+ 2
417
+ 15
418
+ 65
419
+ 7
420
+ 9
421
+ 45
422
+ 0
423
+ 10
424
+ 43
425
+ 2
426
+ 43
427
+ 9
428
+ 7
429
+ 11
430
+ 7
431
+ 12
432
+ 64
433
+ 7
434
+ 13
435
+ 35
436
+ 3
437
+ 7
438
+ 14
439
+ 7
440
+ 15
441
+ 64
442
+ 7
443
+ 16
444
+ 2
445
+ 35
446
+ 4
447
+ 7
448
+ 17
449
+ 7
450
+ 18
451
+ 64
452
+ 7
453
+ 13
454
+ 2
455
+ 35
456
+ 4
457
+ 35
458
+ 3
459
+ 49
460
+ 19
461
+ 1
462
+ 49
463
+ 5
464
+ 2
465
+ 15
466
+ 99
467
+ 7
468
+ 20
469
+ 7
470
+ 21
471
+ 65
472
+ 67
473
+ 49
474
+ 22
475
+ 0
476
+ 49
477
+ 23
478
+ 4
479
+ 15
480
+ 99
481
+ 7
482
+ 24
483
+ 7
484
+ 25
485
+ 65
486
+ 67
487
+ 49
488
+ 22
489
+ 0
490
+ 49
491
+ 23
492
+ 4
493
+ 15
494
+ 99
495
+ 7
496
+ 26
497
+ 7
498
+ 27
499
+ 65
500
+ 67
501
+ 49
502
+ 22
503
+ 0
504
+ 49
505
+ 23
506
+ 4
507
+ 11
508
+ I
509
+ 9
510
+ I
511
+ 0
512
+ I
513
+ 0
514
+ I
515
+ 0
516
+ n
517
+ p
518
+ 28
519
+ x
520
+ 3
521
+ Ray
522
+ n
523
+ x
524
+ 2
525
+ GL
526
+ x
527
+ 7
528
+ include
529
+ x
530
+ 12
531
+ InstanceSqrt
532
+ x
533
+ 9
534
+ const_set
535
+ x
536
+ 13
537
+ InstanceCount
538
+ n
539
+ x
540
+ 2
541
+ **
542
+ x
543
+ 6
544
+ Vertex
545
+ n
546
+ x
547
+ 3
548
+ pos
549
+ s
550
+ 11
551
+ in_Position
552
+ x
553
+ 7
554
+ vector3
555
+ x
556
+ 3
557
+ col
558
+ s
559
+ 8
560
+ in_Color
561
+ x
562
+ 5
563
+ color
564
+ x
565
+ 11
566
+ translation
567
+ s
568
+ 14
569
+ in_Translation
570
+ x
571
+ 4
572
+ make
573
+ x
574
+ 10
575
+ initialize
576
+ M
577
+ 1
578
+ n
579
+ n
580
+ x
581
+ 10
582
+ initialize
583
+ i
584
+ 140
585
+ 54
586
+ 52
587
+ 0
588
+ 0
589
+ 15
590
+ 45
591
+ 1
592
+ 2
593
+ 43
594
+ 3
595
+ 43
596
+ 4
597
+ 13
598
+ 71
599
+ 5
600
+ 47
601
+ 9
602
+ 35
603
+ 47
604
+ 49
605
+ 6
606
+ 0
607
+ 13
608
+ 7
609
+ 7
610
+ 45
611
+ 8
612
+ 9
613
+ 47
614
+ 49
615
+ 0
616
+ 2
617
+ 15
618
+ 8
619
+ 43
620
+ 7
621
+ 7
622
+ 45
623
+ 8
624
+ 10
625
+ 49
626
+ 5
627
+ 2
628
+ 38
629
+ 11
630
+ 15
631
+ 39
632
+ 11
633
+ 45
634
+ 12
635
+ 13
636
+ 49
637
+ 14
638
+ 1
639
+ 15
640
+ 7
641
+ 15
642
+ 19
643
+ 2
644
+ 19
645
+ 1
646
+ 15
647
+ 44
648
+ 43
649
+ 16
650
+ 78
651
+ 45
652
+ 17
653
+ 18
654
+ 2
655
+ 49
656
+ 5
657
+ 3
658
+ 56
659
+ 19
660
+ 50
661
+ 20
662
+ 0
663
+ 15
664
+ 39
665
+ 11
666
+ 49
667
+ 21
668
+ 0
669
+ 15
670
+ 39
671
+ 11
672
+ 4
673
+ 12
674
+ 4
675
+ 3
676
+ 49
677
+ 22
678
+ 1
679
+ 49
680
+ 23
681
+ 1
682
+ 15
683
+ 77
684
+ 19
685
+ 3
686
+ 15
687
+ 35
688
+ 0
689
+ 19
690
+ 4
691
+ 15
692
+ 5
693
+ 20
694
+ 0
695
+ 56
696
+ 24
697
+ 47
698
+ 50
699
+ 25
700
+ 1
701
+ 15
702
+ 39
703
+ 11
704
+ 49
705
+ 26
706
+ 0
707
+ 15
708
+ 5
709
+ 5
710
+ 56
711
+ 27
712
+ 47
713
+ 50
714
+ 28
715
+ 0
716
+ 13
717
+ 18
718
+ 2
719
+ 47
720
+ 49
721
+ 29
722
+ 1
723
+ 15
724
+ 11
725
+ I
726
+ 9
727
+ I
728
+ 5
729
+ I
730
+ 1
731
+ I
732
+ 1
733
+ n
734
+ p
735
+ 30
736
+ x
737
+ 10
738
+ initialize
739
+ x
740
+ 3
741
+ Ray
742
+ n
743
+ x
744
+ 2
745
+ GL
746
+ x
747
+ 6
748
+ Buffer
749
+ x
750
+ 3
751
+ new
752
+ x
753
+ 8
754
+ allocate
755
+ x
756
+ 6
757
+ static
758
+ x
759
+ 6
760
+ Vertex
761
+ n
762
+ n
763
+ x
764
+ 7
765
+ @buffer
766
+ x
767
+ 13
768
+ InstanceCount
769
+ n
770
+ x
771
+ 15
772
+ resize_instance
773
+ d
774
+ +0.000000000000000000000000000000000000000000000000000000 0
775
+ x
776
+ 5
777
+ Range
778
+ x
779
+ 12
780
+ InstanceSqrt
781
+ n
782
+ M
783
+ 1
784
+ p
785
+ 2
786
+ x
787
+ 9
788
+ for_block
789
+ t
790
+ n
791
+ x
792
+ 10
793
+ initialize
794
+ i
795
+ 37
796
+ 78
797
+ 19
798
+ 0
799
+ 15
800
+ 44
801
+ 43
802
+ 0
803
+ 78
804
+ 45
805
+ 1
806
+ 2
807
+ 2
808
+ 49
809
+ 3
810
+ 3
811
+ 56
812
+ 4
813
+ 50
814
+ 5
815
+ 0
816
+ 15
817
+ 21
818
+ 1
819
+ 2
820
+ 5
821
+ 48
822
+ 6
823
+ 80
824
+ 49
825
+ 7
826
+ 1
827
+ 81
828
+ 8
829
+ 22
830
+ 1
831
+ 2
832
+ 11
833
+ I
834
+ 6
835
+ I
836
+ 1
837
+ I
838
+ 0
839
+ I
840
+ 0
841
+ I
842
+ -2
843
+ p
844
+ 9
845
+ x
846
+ 5
847
+ Range
848
+ x
849
+ 12
850
+ InstanceSqrt
851
+ n
852
+ x
853
+ 3
854
+ new
855
+ M
856
+ 1
857
+ p
858
+ 2
859
+ x
860
+ 9
861
+ for_block
862
+ t
863
+ n
864
+ x
865
+ 10
866
+ initialize
867
+ i
868
+ 238
869
+ 21
870
+ 2
871
+ 2
872
+ 5
873
+ 48
874
+ 0
875
+ 80
876
+ 49
877
+ 1
878
+ 1
879
+ 81
880
+ 2
881
+ 79
882
+ 82
883
+ 3
884
+ 4
885
+ 10
886
+ 49
887
+ 1
888
+ 1
889
+ 78
890
+ 7
891
+ 4
892
+ 21
893
+ 1
894
+ 0
895
+ 79
896
+ 81
897
+ 2
898
+ 49
899
+ 1
900
+ 1
901
+ 35
902
+ 3
903
+ 19
904
+ 0
905
+ 15
906
+ 39
907
+ 5
908
+ 21
909
+ 2
910
+ 1
911
+ 45
912
+ 6
913
+ 7
914
+ 43
915
+ 8
916
+ 13
917
+ 71
918
+ 9
919
+ 47
920
+ 9
921
+ 135
922
+ 47
923
+ 49
924
+ 10
925
+ 0
926
+ 13
927
+ 45
928
+ 11
929
+ 12
930
+ 43
931
+ 13
932
+ 13
933
+ 71
934
+ 9
935
+ 47
936
+ 9
937
+ 102
938
+ 47
939
+ 49
940
+ 10
941
+ 0
942
+ 13
943
+ 5
944
+ 7
945
+ 14
946
+ 47
947
+ 49
948
+ 0
949
+ 1
950
+ 5
951
+ 7
952
+ 14
953
+ 47
954
+ 49
955
+ 0
956
+ 1
957
+ 5
958
+ 7
959
+ 14
960
+ 47
961
+ 49
962
+ 0
963
+ 1
964
+ 47
965
+ 49
966
+ 15
967
+ 3
968
+ 15
969
+ 8
970
+ 126
971
+ 5
972
+ 7
973
+ 14
974
+ 47
975
+ 49
976
+ 0
977
+ 1
978
+ 5
979
+ 7
980
+ 14
981
+ 47
982
+ 49
983
+ 0
984
+ 1
985
+ 5
986
+ 7
987
+ 14
988
+ 47
989
+ 49
990
+ 0
991
+ 1
992
+ 49
993
+ 9
994
+ 3
995
+ 20
996
+ 0
997
+ 47
998
+ 49
999
+ 15
1000
+ 2
1001
+ 15
1002
+ 8
1003
+ 208
1004
+ 45
1005
+ 11
1006
+ 16
1007
+ 43
1008
+ 13
1009
+ 13
1010
+ 71
1011
+ 9
1012
+ 47
1013
+ 9
1014
+ 179
1015
+ 47
1016
+ 49
1017
+ 10
1018
+ 0
1019
+ 13
1020
+ 5
1021
+ 7
1022
+ 14
1023
+ 47
1024
+ 49
1025
+ 0
1026
+ 1
1027
+ 5
1028
+ 7
1029
+ 14
1030
+ 47
1031
+ 49
1032
+ 0
1033
+ 1
1034
+ 5
1035
+ 7
1036
+ 14
1037
+ 47
1038
+ 49
1039
+ 0
1040
+ 1
1041
+ 47
1042
+ 49
1043
+ 15
1044
+ 3
1045
+ 15
1046
+ 8
1047
+ 203
1048
+ 5
1049
+ 7
1050
+ 14
1051
+ 47
1052
+ 49
1053
+ 0
1054
+ 1
1055
+ 5
1056
+ 7
1057
+ 14
1058
+ 47
1059
+ 49
1060
+ 0
1061
+ 1
1062
+ 5
1063
+ 7
1064
+ 14
1065
+ 47
1066
+ 49
1067
+ 0
1068
+ 1
1069
+ 49
1070
+ 9
1071
+ 3
1072
+ 20
1073
+ 0
1074
+ 49
1075
+ 9
1076
+ 2
1077
+ 49
1078
+ 17
1079
+ 2
1080
+ 15
1081
+ 21
1082
+ 2
1083
+ 1
1084
+ 79
1085
+ 81
1086
+ 2
1087
+ 22
1088
+ 2
1089
+ 1
1090
+ 15
1091
+ 21
1092
+ 1
1093
+ 0
1094
+ 5
1095
+ 48
1096
+ 0
1097
+ 80
1098
+ 49
1099
+ 1
1100
+ 1
1101
+ 81
1102
+ 2
1103
+ 22
1104
+ 1
1105
+ 0
1106
+ 11
1107
+ I
1108
+ c
1109
+ I
1110
+ 1
1111
+ I
1112
+ 0
1113
+ I
1114
+ 0
1115
+ I
1116
+ -2
1117
+ p
1118
+ 18
1119
+ x
1120
+ 4
1121
+ rand
1122
+ x
1123
+ 1
1124
+ *
1125
+ x
1126
+ 1
1127
+ +
1128
+ x
1129
+ 1
1130
+ -
1131
+ I
1132
+ -a
1133
+ x
1134
+ 7
1135
+ @buffer
1136
+ x
1137
+ 6
1138
+ Vertex
1139
+ n
1140
+ x
1141
+ 8
1142
+ Instance
1143
+ x
1144
+ 3
1145
+ new
1146
+ x
1147
+ 8
1148
+ allocate
1149
+ x
1150
+ 3
1151
+ Ray
1152
+ n
1153
+ x
1154
+ 5
1155
+ Color
1156
+ I
1157
+ 100
1158
+ x
1159
+ 10
1160
+ initialize
1161
+ n
1162
+ x
1163
+ 12
1164
+ set_instance
1165
+ p
1166
+ 37
1167
+ I
1168
+ 0
1169
+ I
1170
+ 26
1171
+ I
1172
+ 25
1173
+ I
1174
+ 27
1175
+ I
1176
+ 51
1177
+ I
1178
+ 28
1179
+ I
1180
+ 58
1181
+ I
1182
+ 29
1183
+ I
1184
+ 66
1185
+ I
1186
+ 27
1187
+ I
1188
+ 6d
1189
+ I
1190
+ 28
1191
+ I
1192
+ 74
1193
+ I
1194
+ 29
1195
+ I
1196
+ 7e
1197
+ I
1198
+ 2a
1199
+ I
1200
+ 87
1201
+ I
1202
+ 27
1203
+ I
1204
+ 9e
1205
+ I
1206
+ 28
1207
+ I
1208
+ a5
1209
+ I
1210
+ 29
1211
+ I
1212
+ b3
1213
+ I
1214
+ 27
1215
+ I
1216
+ ba
1217
+ I
1218
+ 28
1219
+ I
1220
+ c1
1221
+ I
1222
+ 29
1223
+ I
1224
+ cb
1225
+ I
1226
+ 2a
1227
+ I
1228
+ d0
1229
+ I
1230
+ 27
1231
+ I
1232
+ d4
1233
+ I
1234
+ 2b
1235
+ I
1236
+ de
1237
+ I
1238
+ 2d
1239
+ I
1240
+ ee
1241
+ x
1242
+ 50
1243
+ /home/kilian/code/ray/samples/opengl/instancing.rb
1244
+ p
1245
+ 1
1246
+ x
1247
+ 11
1248
+ translation
1249
+ x
1250
+ 4
1251
+ each
1252
+ x
1253
+ 4
1254
+ rand
1255
+ x
1256
+ 1
1257
+ *
1258
+ x
1259
+ 1
1260
+ +
1261
+ p
1262
+ 7
1263
+ I
1264
+ 0
1265
+ I
1266
+ 24
1267
+ I
1268
+ 4
1269
+ I
1270
+ 25
1271
+ I
1272
+ 15
1273
+ I
1274
+ 30
1275
+ I
1276
+ 25
1277
+ x
1278
+ 50
1279
+ /home/kilian/code/ray/samples/opengl/instancing.rb
1280
+ p
1281
+ 1
1282
+ x
1283
+ 1
1284
+ z
1285
+ x
1286
+ 4
1287
+ each
1288
+ x
1289
+ 15
1290
+ update_instance
1291
+ x
1292
+ 1
1293
+ *
1294
+ x
1295
+ 6
1296
+ resize
1297
+ M
1298
+ 1
1299
+ p
1300
+ 2
1301
+ x
1302
+ 9
1303
+ for_block
1304
+ t
1305
+ n
1306
+ x
1307
+ 10
1308
+ initialize
1309
+ i
1310
+ 12
1311
+ 57
1312
+ 19
1313
+ 0
1314
+ 15
1315
+ 20
1316
+ 0
1317
+ 56
1318
+ 0
1319
+ 50
1320
+ 1
1321
+ 0
1322
+ 11
1323
+ I
1324
+ 4
1325
+ I
1326
+ 1
1327
+ I
1328
+ 1
1329
+ I
1330
+ 1
1331
+ n
1332
+ p
1333
+ 2
1334
+ M
1335
+ 1
1336
+ p
1337
+ 2
1338
+ x
1339
+ 9
1340
+ for_block
1341
+ t
1342
+ n
1343
+ x
1344
+ 10
1345
+ initialize
1346
+ i
1347
+ 147
1348
+ 57
1349
+ 19
1350
+ 0
1351
+ 15
1352
+ 20
1353
+ 0
1354
+ 78
1355
+ 49
1356
+ 0
1357
+ 1
1358
+ 7
1359
+ 1
1360
+ 64
1361
+ 83
1362
+ 2
1363
+ 13
1364
+ 10
1365
+ 48
1366
+ 15
1367
+ 20
1368
+ 0
1369
+ 7
1370
+ 3
1371
+ 13
1372
+ 70
1373
+ 9
1374
+ 39
1375
+ 15
1376
+ 44
1377
+ 43
1378
+ 4
1379
+ 7
1380
+ 5
1381
+ 78
1382
+ 49
1383
+ 6
1384
+ 2
1385
+ 6
1386
+ 3
1387
+ 49
1388
+ 7
1389
+ 1
1390
+ 10
1391
+ 47
1392
+ 2
1393
+ 8
1394
+ 48
1395
+ 3
1396
+ 9
1397
+ 54
1398
+ 1
1399
+ 11
1400
+ 8
1401
+ 55
1402
+ 1
1403
+ 15
1404
+ 20
1405
+ 0
1406
+ 7
1407
+ 8
1408
+ 64
1409
+ 49
1410
+ 9
1411
+ 1
1412
+ 97
1413
+ 37
1414
+ 19
1415
+ 1
1416
+ 15
1417
+ 36
1418
+ 19
1419
+ 2
1420
+ 15
1421
+ 2
1422
+ 15
1423
+ 20
1424
+ 1
1425
+ 13
1426
+ 7
1427
+ 10
1428
+ 64
1429
+ 12
1430
+ 49
1431
+ 11
1432
+ 1
1433
+ 9
1434
+ 124
1435
+ 15
1436
+ 21
1437
+ 2
1438
+ 4
1439
+ 45
1440
+ 12
1441
+ 13
1442
+ 43
1443
+ 14
1444
+ 20
1445
+ 2
1446
+ 7
1447
+ 15
1448
+ 13
1449
+ 70
1450
+ 10
1451
+ 111
1452
+ 44
1453
+ 43
1454
+ 16
1455
+ 12
1456
+ 49
1457
+ 17
1458
+ 1
1459
+ 50
1460
+ 18
1461
+ 0
1462
+ 36
1463
+ 1
1464
+ 51
1465
+ 0
1466
+ 0
1467
+ 49
1468
+ 19
1469
+ 1
1470
+ 8
1471
+ 146
1472
+ 13
1473
+ 7
1474
+ 20
1475
+ 64
1476
+ 12
1477
+ 49
1478
+ 11
1479
+ 1
1480
+ 9
1481
+ 144
1482
+ 15
1483
+ 20
1484
+ 2
1485
+ 56
1486
+ 21
1487
+ 50
1488
+ 22
1489
+ 0
1490
+ 8
1491
+ 146
1492
+ 15
1493
+ 1
1494
+ 11
1495
+ I
1496
+ 9
1497
+ I
1498
+ 3
1499
+ I
1500
+ 1
1501
+ I
1502
+ 1
1503
+ n
1504
+ p
1505
+ 23
1506
+ x
1507
+ 2
1508
+ []
1509
+ s
1510
+ 1
1511
+ #
1512
+ x
1513
+ 2
1514
+ ==
1515
+ n
1516
+ x
1517
+ 6
1518
+ Regexp
1519
+ s
1520
+ 2
1521
+ \S
1522
+ x
1523
+ 3
1524
+ new
1525
+ x
1526
+ 2
1527
+ =~
1528
+ s
1529
+ 1
1530
+
1531
+ x
1532
+ 5
1533
+ split
1534
+ s
1535
+ 1
1536
+ v
1537
+ x
1538
+ 3
1539
+ ===
1540
+ x
1541
+ 3
1542
+ Ray
1543
+ n
1544
+ x
1545
+ 7
1546
+ Vector3
1547
+ x
1548
+ 4
1549
+ to_f
1550
+ x
1551
+ 4
1552
+ Proc
1553
+ x
1554
+ 14
1555
+ __from_block__
1556
+ x
1557
+ 3
1558
+ map
1559
+ x
1560
+ 2
1561
+ <<
1562
+ s
1563
+ 1
1564
+ f
1565
+ M
1566
+ 1
1567
+ p
1568
+ 2
1569
+ x
1570
+ 9
1571
+ for_block
1572
+ t
1573
+ n
1574
+ x
1575
+ 10
1576
+ initialize
1577
+ i
1578
+ 88
1579
+ 57
1580
+ 19
1581
+ 0
1582
+ 15
1583
+ 20
1584
+ 0
1585
+ 7
1586
+ 0
1587
+ 64
1588
+ 49
1589
+ 1
1590
+ 1
1591
+ 56
1592
+ 2
1593
+ 50
1594
+ 3
1595
+ 0
1596
+ 97
1597
+ 37
1598
+ 19
1599
+ 1
1600
+ 15
1601
+ 37
1602
+ 19
1603
+ 2
1604
+ 15
1605
+ 15
1606
+ 2
1607
+ 15
1608
+ 39
1609
+ 4
1610
+ 21
1611
+ 3
1612
+ 3
1613
+ 79
1614
+ 81
1615
+ 5
1616
+ 22
1617
+ 3
1618
+ 3
1619
+ 45
1620
+ 6
1621
+ 7
1622
+ 13
1623
+ 71
1624
+ 8
1625
+ 47
1626
+ 9
1627
+ 69
1628
+ 47
1629
+ 49
1630
+ 9
1631
+ 0
1632
+ 13
1633
+ 21
1634
+ 3
1635
+ 4
1636
+ 20
1637
+ 1
1638
+ 49
1639
+ 10
1640
+ 1
1641
+ 47
1642
+ 49
1643
+ 11
1644
+ 1
1645
+ 15
1646
+ 8
1647
+ 80
1648
+ 21
1649
+ 3
1650
+ 4
1651
+ 20
1652
+ 1
1653
+ 49
1654
+ 10
1655
+ 1
1656
+ 49
1657
+ 8
1658
+ 1
1659
+ 13
1660
+ 18
1661
+ 3
1662
+ 49
1663
+ 12
1664
+ 2
1665
+ 15
1666
+ 11
1667
+ I
1668
+ a
1669
+ I
1670
+ 3
1671
+ I
1672
+ 1
1673
+ I
1674
+ 1
1675
+ n
1676
+ p
1677
+ 13
1678
+ s
1679
+ 2
1680
+ //
1681
+ x
1682
+ 5
1683
+ split
1684
+ M
1685
+ 1
1686
+ p
1687
+ 2
1688
+ x
1689
+ 9
1690
+ for_block
1691
+ t
1692
+ n
1693
+ x
1694
+ 10
1695
+ initialize
1696
+ i
1697
+ 13
1698
+ 57
1699
+ 19
1700
+ 0
1701
+ 15
1702
+ 20
1703
+ 0
1704
+ 49
1705
+ 0
1706
+ 0
1707
+ 79
1708
+ 82
1709
+ 1
1710
+ 11
1711
+ I
1712
+ 4
1713
+ I
1714
+ 1
1715
+ I
1716
+ 1
1717
+ I
1718
+ 1
1719
+ n
1720
+ p
1721
+ 2
1722
+ x
1723
+ 4
1724
+ to_i
1725
+ x
1726
+ 1
1727
+ -
1728
+ p
1729
+ 3
1730
+ I
1731
+ 0
1732
+ I
1733
+ 45
1734
+ I
1735
+ d
1736
+ x
1737
+ 50
1738
+ /home/kilian/code/ray/samples/opengl/instancing.rb
1739
+ p
1740
+ 1
1741
+ x
1742
+ 1
1743
+ s
1744
+ x
1745
+ 3
1746
+ map
1747
+ x
1748
+ 7
1749
+ @buffer
1750
+ x
1751
+ 1
1752
+ +
1753
+ x
1754
+ 6
1755
+ Vertex
1756
+ n
1757
+ x
1758
+ 3
1759
+ new
1760
+ x
1761
+ 8
1762
+ allocate
1763
+ x
1764
+ 2
1765
+ []
1766
+ x
1767
+ 10
1768
+ initialize
1769
+ x
1770
+ 3
1771
+ []=
1772
+ p
1773
+ 7
1774
+ I
1775
+ 0
1776
+ I
1777
+ 44
1778
+ I
1779
+ 4
1780
+ I
1781
+ 45
1782
+ I
1783
+ 1d
1784
+ I
1785
+ 46
1786
+ I
1787
+ 58
1788
+ x
1789
+ 50
1790
+ /home/kilian/code/ray/samples/opengl/instancing.rb
1791
+ p
1792
+ 3
1793
+ x
1794
+ 3
1795
+ arg
1796
+ x
1797
+ 3
1798
+ pos
1799
+ x
1800
+ 6
1801
+ normal
1802
+ x
1803
+ 4
1804
+ each
1805
+ p
1806
+ 21
1807
+ I
1808
+ 0
1809
+ I
1810
+ 3c
1811
+ I
1812
+ 4
1813
+ I
1814
+ 3d
1815
+ I
1816
+ 37
1817
+ I
1818
+ 0
1819
+ I
1820
+ 38
1821
+ I
1822
+ 3f
1823
+ I
1824
+ 4b
1825
+ I
1826
+ 41
1827
+ I
1828
+ 4d
1829
+ I
1830
+ 42
1831
+ I
1832
+ 7c
1833
+ I
1834
+ 43
1835
+ I
1836
+ 87
1837
+ I
1838
+ 44
1839
+ I
1840
+ 91
1841
+ I
1842
+ 41
1843
+ I
1844
+ 92
1845
+ I
1846
+ 0
1847
+ I
1848
+ 93
1849
+ x
1850
+ 50
1851
+ /home/kilian/code/ray/samples/opengl/instancing.rb
1852
+ p
1853
+ 3
1854
+ x
1855
+ 4
1856
+ line
1857
+ x
1858
+ 4
1859
+ word
1860
+ x
1861
+ 4
1862
+ args
1863
+ x
1864
+ 9
1865
+ each_line
1866
+ p
1867
+ 5
1868
+ I
1869
+ 0
1870
+ I
1871
+ 3b
1872
+ I
1873
+ 4
1874
+ I
1875
+ 3c
1876
+ I
1877
+ c
1878
+ x
1879
+ 50
1880
+ /home/kilian/code/ray/samples/opengl/instancing.rb
1881
+ p
1882
+ 1
1883
+ x
1884
+ 2
1885
+ io
1886
+ x
1887
+ 4
1888
+ open
1889
+ x
1890
+ 6
1891
+ update
1892
+ M
1893
+ 1
1894
+ p
1895
+ 2
1896
+ x
1897
+ 9
1898
+ for_block
1899
+ t
1900
+ n
1901
+ x
1902
+ 10
1903
+ initialize
1904
+ i
1905
+ 87
1906
+ 45
1907
+ 0
1908
+ 1
1909
+ 39
1910
+ 2
1911
+ 7
1912
+ 3
1913
+ 49
1914
+ 4
1915
+ 1
1916
+ 49
1917
+ 5
1918
+ 1
1919
+ 19
1920
+ 0
1921
+ 15
1922
+ 45
1923
+ 0
1924
+ 6
1925
+ 39
1926
+ 2
1927
+ 7
1928
+ 7
1929
+ 49
1930
+ 4
1931
+ 1
1932
+ 49
1933
+ 8
1934
+ 1
1935
+ 19
1936
+ 1
1937
+ 15
1938
+ 45
1939
+ 9
1940
+ 10
1941
+ 43
1942
+ 11
1943
+ 4
1944
+ 200
1945
+ 4
1946
+ 50
1947
+ 20
1948
+ 0
1949
+ 49
1950
+ 12
1951
+ 1
1952
+ 81
1953
+ 13
1954
+ 4
1955
+ 100
1956
+ 20
1957
+ 1
1958
+ 49
1959
+ 12
1960
+ 1
1961
+ 7
1962
+ 14
1963
+ 35
1964
+ 3
1965
+ 7
1966
+ 15
1967
+ 4
1968
+ 20
1969
+ 7
1970
+ 16
1971
+ 35
1972
+ 3
1973
+ 78
1974
+ 77
1975
+ 78
1976
+ 35
1977
+ 3
1978
+ 49
1979
+ 17
1980
+ 3
1981
+ 4
1982
+ 4
1983
+ 4
1984
+ 4
1985
+ 4
1986
+ 4
1987
+ 35
1988
+ 3
1989
+ 49
1990
+ 18
1991
+ 1
1992
+ 11
1993
+ I
1994
+ 9
1995
+ I
1996
+ 2
1997
+ I
1998
+ 0
1999
+ I
2000
+ 0
2001
+ I
2002
+ -2
2003
+ p
2004
+ 19
2005
+ x
2006
+ 4
2007
+ Math
2008
+ n
2009
+ x
2010
+ 2
2011
+ @n
2012
+ d
2013
+ +0.781250000000000000000000000000000000000000000000000000 7
2014
+ x
2015
+ 1
2016
+ /
2017
+ x
2018
+ 3
2019
+ cos
2020
+ n
2021
+ d
2022
+ +0.781250000000000000000000000000000000000000000000000000 7
2023
+ x
2024
+ 3
2025
+ sin
2026
+ x
2027
+ 3
2028
+ Ray
2029
+ n
2030
+ x
2031
+ 6
2032
+ Matrix
2033
+ x
2034
+ 1
2035
+ *
2036
+ x
2037
+ 1
2038
+ +
2039
+ I
2040
+ -32
2041
+ I
2042
+ 1f4
2043
+ I
2044
+ -1f4
2045
+ x
2046
+ 10
2047
+ looking_at
2048
+ x
2049
+ 5
2050
+ scale
2051
+ p
2052
+ 17
2053
+ I
2054
+ 0
2055
+ I
2056
+ 4f
2057
+ I
2058
+ 10
2059
+ I
2060
+ 50
2061
+ I
2062
+ 20
2063
+ I
2064
+ 51
2065
+ I
2066
+ 3b
2067
+ I
2068
+ 52
2069
+ I
2070
+ 43
2071
+ I
2072
+ 53
2073
+ I
2074
+ 48
2075
+ I
2076
+ 51
2077
+ I
2078
+ 4b
2079
+ I
2080
+ 53
2081
+ I
2082
+ 53
2083
+ I
2084
+ 51
2085
+ I
2086
+ 57
2087
+ x
2088
+ 50
2089
+ /home/kilian/code/ray/samples/opengl/instancing.rb
2090
+ p
2091
+ 2
2092
+ x
2093
+ 1
2094
+ c
2095
+ x
2096
+ 1
2097
+ s
2098
+ x
2099
+ 4
2100
+ proc
2101
+ x
2102
+ 12
2103
+ matrix_proc=
2104
+ p
2105
+ 29
2106
+ I
2107
+ -1
2108
+ I
2109
+ 1b
2110
+ I
2111
+ 0
2112
+ I
2113
+ 1c
2114
+ I
2115
+ 5
2116
+ I
2117
+ 1e
2118
+ I
2119
+ 2e
2120
+ I
2121
+ 20
2122
+ I
2123
+ 37
2124
+ I
2125
+ 22
2126
+ I
2127
+ 3e
2128
+ I
2129
+ 23
2130
+ I
2131
+ 4f
2132
+ I
2133
+ 33
2134
+ I
2135
+ 55
2136
+ I
2137
+ 35
2138
+ I
2139
+ 62
2140
+ I
2141
+ 37
2142
+ I
2143
+ 66
2144
+ I
2145
+ 39
2146
+ I
2147
+ 6b
2148
+ I
2149
+ 3b
2150
+ I
2151
+ 75
2152
+ I
2153
+ 4c
2154
+ I
2155
+ 7b
2156
+ I
2157
+ 9f
2158
+ I
2159
+ 7c
2160
+ I
2161
+ 4e
2162
+ I
2163
+ 8c
2164
+ x
2165
+ 50
2166
+ /home/kilian/code/ray/samples/opengl/instancing.rb
2167
+ p
2168
+ 5
2169
+ x
2170
+ 8
2171
+ filename
2172
+ x
2173
+ 1
2174
+ n
2175
+ x
2176
+ 1
2177
+ x
2178
+ x
2179
+ 5
2180
+ index
2181
+ x
2182
+ 9
2183
+ positions
2184
+ x
2185
+ 17
2186
+ method_visibility
2187
+ x
2188
+ 15
2189
+ add_defn_method
2190
+ x
2191
+ 4
2192
+ move
2193
+ M
2194
+ 1
2195
+ n
2196
+ n
2197
+ x
2198
+ 4
2199
+ move
2200
+ i
2201
+ 11
2202
+ 20
2203
+ 0
2204
+ 38
2205
+ 0
2206
+ 15
2207
+ 5
2208
+ 47
2209
+ 49
2210
+ 1
2211
+ 0
2212
+ 11
2213
+ I
2214
+ 2
2215
+ I
2216
+ 1
2217
+ I
2218
+ 1
2219
+ I
2220
+ 1
2221
+ n
2222
+ p
2223
+ 2
2224
+ x
2225
+ 2
2226
+ @n
2227
+ x
2228
+ 15
2229
+ matrix_changed!
2230
+ p
2231
+ 7
2232
+ I
2233
+ -1
2234
+ I
2235
+ 57
2236
+ I
2237
+ 0
2238
+ I
2239
+ 58
2240
+ I
2241
+ 5
2242
+ I
2243
+ 59
2244
+ I
2245
+ b
2246
+ x
2247
+ 50
2248
+ /home/kilian/code/ray/samples/opengl/instancing.rb
2249
+ p
2250
+ 1
2251
+ x
2252
+ 1
2253
+ n
2254
+ x
2255
+ 6
2256
+ render
2257
+ M
2258
+ 1
2259
+ n
2260
+ n
2261
+ x
2262
+ 6
2263
+ render
2264
+ i
2265
+ 24
2266
+ 39
2267
+ 0
2268
+ 49
2269
+ 1
2270
+ 0
2271
+ 15
2272
+ 5
2273
+ 7
2274
+ 2
2275
+ 20
2276
+ 0
2277
+ 39
2278
+ 0
2279
+ 49
2280
+ 3
2281
+ 0
2282
+ 45
2283
+ 4
2284
+ 5
2285
+ 47
2286
+ 49
2287
+ 6
2288
+ 4
2289
+ 11
2290
+ I
2291
+ 7
2292
+ I
2293
+ 2
2294
+ I
2295
+ 2
2296
+ I
2297
+ 2
2298
+ n
2299
+ p
2300
+ 7
2301
+ x
2302
+ 7
2303
+ @buffer
2304
+ x
2305
+ 4
2306
+ bind
2307
+ x
2308
+ 9
2309
+ triangles
2310
+ x
2311
+ 4
2312
+ size
2313
+ x
2314
+ 13
2315
+ InstanceCount
2316
+ n
2317
+ x
2318
+ 21
2319
+ draw_arrays_instanced
2320
+ p
2321
+ 7
2322
+ I
2323
+ -1
2324
+ I
2325
+ 5c
2326
+ I
2327
+ 0
2328
+ I
2329
+ 5d
2330
+ I
2331
+ 6
2332
+ I
2333
+ 5e
2334
+ I
2335
+ 18
2336
+ x
2337
+ 50
2338
+ /home/kilian/code/ray/samples/opengl/instancing.rb
2339
+ p
2340
+ 2
2341
+ x
2342
+ 5
2343
+ first
2344
+ x
2345
+ 5
2346
+ index
2347
+ p
2348
+ 23
2349
+ I
2350
+ 2
2351
+ I
2352
+ f
2353
+ I
2354
+ d
2355
+ I
2356
+ 11
2357
+ I
2358
+ 16
2359
+ I
2360
+ 12
2361
+ I
2362
+ 24
2363
+ I
2364
+ 14
2365
+ I
2366
+ 2e
2367
+ I
2368
+ 15
2369
+ I
2370
+ 37
2371
+ I
2372
+ 17
2373
+ I
2374
+ 41
2375
+ I
2376
+ 18
2377
+ I
2378
+ 4d
2379
+ I
2380
+ 14
2381
+ I
2382
+ 54
2383
+ I
2384
+ 1b
2385
+ I
2386
+ 62
2387
+ I
2388
+ 57
2389
+ I
2390
+ 70
2391
+ I
2392
+ 5c
2393
+ I
2394
+ 7e
2395
+ x
2396
+ 50
2397
+ /home/kilian/code/ray/samples/opengl/instancing.rb
2398
+ p
2399
+ 0
2400
+ x
2401
+ 13
2402
+ attach_method
2403
+ n
2404
+ s
2405
+ 13
2406
+ *Many* cubes!
2407
+ M
2408
+ 1
2409
+ p
2410
+ 2
2411
+ x
2412
+ 9
2413
+ for_block
2414
+ t
2415
+ n
2416
+ x
2417
+ 9
2418
+ __block__
2419
+ i
2420
+ 27
2421
+ 5
2422
+ 56
2423
+ 0
2424
+ 47
2425
+ 50
2426
+ 1
2427
+ 0
2428
+ 15
2429
+ 5
2430
+ 7
2431
+ 2
2432
+ 56
2433
+ 3
2434
+ 47
2435
+ 50
2436
+ 4
2437
+ 1
2438
+ 15
2439
+ 5
2440
+ 48
2441
+ 5
2442
+ 7
2443
+ 2
2444
+ 49
2445
+ 6
2446
+ 1
2447
+ 11
2448
+ I
2449
+ 4
2450
+ I
2451
+ 0
2452
+ I
2453
+ 0
2454
+ I
2455
+ 0
2456
+ I
2457
+ -2
2458
+ p
2459
+ 7
2460
+ M
2461
+ 1
2462
+ p
2463
+ 2
2464
+ x
2465
+ 9
2466
+ for_block
2467
+ t
2468
+ n
2469
+ x
2470
+ 9
2471
+ __block__
2472
+ i
2473
+ 15
2474
+ 5
2475
+ 7
2476
+ 0
2477
+ 5
2478
+ 7
2479
+ 1
2480
+ 47
2481
+ 49
2482
+ 2
2483
+ 1
2484
+ 47
2485
+ 49
2486
+ 3
2487
+ 2
2488
+ 11
2489
+ I
2490
+ 5
2491
+ I
2492
+ 0
2493
+ I
2494
+ 0
2495
+ I
2496
+ 0
2497
+ I
2498
+ -2
2499
+ p
2500
+ 4
2501
+ x
2502
+ 4
2503
+ quit
2504
+ x
2505
+ 5
2506
+ exit!
2507
+ x
2508
+ 6
2509
+ method
2510
+ x
2511
+ 8
2512
+ add_hook
2513
+ p
2514
+ 3
2515
+ I
2516
+ 0
2517
+ I
2518
+ 63
2519
+ I
2520
+ f
2521
+ x
2522
+ 50
2523
+ /home/kilian/code/ray/samples/opengl/instancing.rb
2524
+ p
2525
+ 0
2526
+ x
2527
+ 8
2528
+ register
2529
+ x
2530
+ 6
2531
+ teapot
2532
+ M
2533
+ 1
2534
+ p
2535
+ 2
2536
+ x
2537
+ 9
2538
+ for_block
2539
+ t
2540
+ n
2541
+ x
2542
+ 9
2543
+ __block__
2544
+ i
2545
+ 255
2546
+ 45
2547
+ 0
2548
+ 1
2549
+ 13
2550
+ 71
2551
+ 2
2552
+ 47
2553
+ 9
2554
+ 29
2555
+ 47
2556
+ 49
2557
+ 3
2558
+ 0
2559
+ 13
2560
+ 5
2561
+ 7
2562
+ 4
2563
+ 64
2564
+ 47
2565
+ 49
2566
+ 5
2567
+ 1
2568
+ 47
2569
+ 49
2570
+ 6
2571
+ 1
2572
+ 15
2573
+ 8
2574
+ 40
2575
+ 5
2576
+ 7
2577
+ 4
2578
+ 64
2579
+ 47
2580
+ 49
2581
+ 5
2582
+ 1
2583
+ 49
2584
+ 2
2585
+ 1
2586
+ 38
2587
+ 7
2588
+ 15
2589
+ 7
2590
+ 8
2591
+ 64
2592
+ 19
2593
+ 0
2594
+ 15
2595
+ 7
2596
+ 9
2597
+ 64
2598
+ 19
2599
+ 1
2600
+ 15
2601
+ 5
2602
+ 48
2603
+ 10
2604
+ 49
2605
+ 11
2606
+ 0
2607
+ 45
2608
+ 0
2609
+ 12
2610
+ 43
2611
+ 13
2612
+ 49
2613
+ 14
2614
+ 1
2615
+ 15
2616
+ 5
2617
+ 48
2618
+ 10
2619
+ 49
2620
+ 11
2621
+ 0
2622
+ 44
2623
+ 43
2624
+ 15
2625
+ 80
2626
+ 49
2627
+ 16
2628
+ 1
2629
+ 13
2630
+ 7
2631
+ 17
2632
+ 45
2633
+ 18
2634
+ 19
2635
+ 13
2636
+ 71
2637
+ 2
2638
+ 47
2639
+ 9
2640
+ 109
2641
+ 47
2642
+ 49
2643
+ 3
2644
+ 0
2645
+ 13
2646
+ 20
2647
+ 0
2648
+ 47
2649
+ 49
2650
+ 6
2651
+ 1
2652
+ 15
2653
+ 8
2654
+ 114
2655
+ 20
2656
+ 0
2657
+ 49
2658
+ 2
2659
+ 1
2660
+ 49
2661
+ 20
2662
+ 2
2663
+ 15
2664
+ 13
2665
+ 7
2666
+ 21
2667
+ 45
2668
+ 18
2669
+ 22
2670
+ 13
2671
+ 71
2672
+ 2
2673
+ 47
2674
+ 9
2675
+ 144
2676
+ 47
2677
+ 49
2678
+ 3
2679
+ 0
2680
+ 13
2681
+ 20
2682
+ 1
2683
+ 47
2684
+ 49
2685
+ 6
2686
+ 1
2687
+ 15
2688
+ 8
2689
+ 149
2690
+ 20
2691
+ 1
2692
+ 49
2693
+ 2
2694
+ 1
2695
+ 49
2696
+ 20
2697
+ 2
2698
+ 15
2699
+ 49
2700
+ 23
2701
+ 1
2702
+ 15
2703
+ 5
2704
+ 48
2705
+ 10
2706
+ 45
2707
+ 24
2708
+ 25
2709
+ 43
2710
+ 26
2711
+ 13
2712
+ 71
2713
+ 2
2714
+ 47
2715
+ 9
2716
+ 203
2717
+ 47
2718
+ 49
2719
+ 3
2720
+ 0
2721
+ 13
2722
+ 45
2723
+ 24
2724
+ 27
2725
+ 43
2726
+ 28
2727
+ 4
2728
+ 120
2729
+ 7
2730
+ 29
2731
+ 7
2732
+ 30
2733
+ 49
2734
+ 31
2735
+ 1
2736
+ 79
2737
+ 7
2738
+ 32
2739
+ 49
2740
+ 33
2741
+ 4
2742
+ 47
2743
+ 49
2744
+ 6
2745
+ 1
2746
+ 15
2747
+ 8
2748
+ 226
2749
+ 45
2750
+ 24
2751
+ 34
2752
+ 43
2753
+ 28
2754
+ 4
2755
+ 120
2756
+ 7
2757
+ 29
2758
+ 7
2759
+ 30
2760
+ 49
2761
+ 31
2762
+ 1
2763
+ 79
2764
+ 7
2765
+ 32
2766
+ 49
2767
+ 33
2768
+ 4
2769
+ 49
2770
+ 2
2771
+ 1
2772
+ 13
2773
+ 18
2774
+ 2
2775
+ 49
2776
+ 35
2777
+ 1
2778
+ 15
2779
+ 15
2780
+ 7
2781
+ 36
2782
+ 19
2783
+ 2
2784
+ 15
2785
+ 5
2786
+ 56
2787
+ 37
2788
+ 47
2789
+ 50
2790
+ 38
2791
+ 0
2792
+ 15
2793
+ 5
2794
+ 56
2795
+ 39
2796
+ 47
2797
+ 50
2798
+ 40
2799
+ 0
2800
+ 11
2801
+ I
2802
+ c
2803
+ I
2804
+ 3
2805
+ I
2806
+ 0
2807
+ I
2808
+ 0
2809
+ I
2810
+ -2
2811
+ p
2812
+ 41
2813
+ x
2814
+ 5
2815
+ Model
2816
+ n
2817
+ x
2818
+ 3
2819
+ new
2820
+ x
2821
+ 8
2822
+ allocate
2823
+ s
2824
+ 8
2825
+ cube.obj
2826
+ x
2827
+ 7
2828
+ path_of
2829
+ x
2830
+ 10
2831
+ initialize
2832
+ x
2833
+ 6
2834
+ @model
2835
+ s
2836
+ 445
2837
+ #version 150
2838
+
2839
+ in vec3 in_Position;
2840
+ in vec3 in_Translation;
2841
+ in vec4 in_Color;
2842
+
2843
+ uniform mat4 in_ModelView;
2844
+ uniform mat4 in_Projection;
2845
+
2846
+ out vec4 var_Color;
2847
+
2848
+ void main() {
2849
+ mat4 transform = in_ModelView *
2850
+ mat4(1, 0, 0, in_Translation.x,
2851
+ 0, 1, 0, in_Translation.y,
2852
+ 0, 0, 1, in_Translation.z,
2853
+ 0, 0, 0, 1);
2854
+ mat4 mvp = transform * in_Projection;
2855
+ gl_Position = vec4(in_Position, 1) * mvp;
2856
+
2857
+ var_Color = in_Color;
2858
+ }
2859
+
2860
+ s
2861
+ 104
2862
+ #version 150
2863
+
2864
+ in vec4 var_Color;
2865
+ out vec4 out_FragColor;
2866
+
2867
+ void main() {
2868
+ out_FragColor = var_Color;
2869
+ }
2870
+
2871
+ x
2872
+ 6
2873
+ window
2874
+ x
2875
+ 6
2876
+ shader
2877
+ n
2878
+ x
2879
+ 6
2880
+ Vertex
2881
+ x
2882
+ 12
2883
+ apply_vertex
2884
+ x
2885
+ 4
2886
+ Hash
2887
+ x
2888
+ 16
2889
+ new_from_literal
2890
+ x
2891
+ 6
2892
+ vertex
2893
+ x
2894
+ 8
2895
+ StringIO
2896
+ n
2897
+ x
2898
+ 3
2899
+ []=
2900
+ x
2901
+ 4
2902
+ frag
2903
+ n
2904
+ x
2905
+ 7
2906
+ compile
2907
+ x
2908
+ 3
2909
+ Ray
2910
+ n
2911
+ x
2912
+ 4
2913
+ View
2914
+ n
2915
+ x
2916
+ 6
2917
+ Matrix
2918
+ I
2919
+ 1e0
2920
+ I
2921
+ 280
2922
+ x
2923
+ 4
2924
+ fdiv
2925
+ I
2926
+ 3e8
2927
+ x
2928
+ 11
2929
+ perspective
2930
+ n
2931
+ x
2932
+ 5
2933
+ view=
2934
+ d
2935
+ +0.000000000000000000000000000000000000000000000000000000 0
2936
+ M
2937
+ 1
2938
+ p
2939
+ 2
2940
+ x
2941
+ 9
2942
+ for_block
2943
+ t
2944
+ n
2945
+ x
2946
+ 9
2947
+ __block__
2948
+ i
2949
+ 15
2950
+ 39
2951
+ 0
2952
+ 21
2953
+ 1
2954
+ 2
2955
+ 79
2956
+ 81
2957
+ 1
2958
+ 22
2959
+ 1
2960
+ 2
2961
+ 49
2962
+ 2
2963
+ 1
2964
+ 11
2965
+ I
2966
+ 4
2967
+ I
2968
+ 0
2969
+ I
2970
+ 0
2971
+ I
2972
+ 0
2973
+ I
2974
+ -2
2975
+ p
2976
+ 3
2977
+ x
2978
+ 6
2979
+ @model
2980
+ x
2981
+ 1
2982
+ +
2983
+ x
2984
+ 4
2985
+ move
2986
+ p
2987
+ 3
2988
+ I
2989
+ 0
2990
+ I
2991
+ 95
2992
+ I
2993
+ f
2994
+ x
2995
+ 50
2996
+ /home/kilian/code/ray/samples/opengl/instancing.rb
2997
+ p
2998
+ 0
2999
+ x
3000
+ 6
3001
+ always
3002
+ M
3003
+ 1
3004
+ p
3005
+ 2
3006
+ x
3007
+ 9
3008
+ for_block
3009
+ t
3010
+ n
3011
+ x
3012
+ 9
3013
+ __block__
3014
+ i
3015
+ 12
3016
+ 57
3017
+ 19
3018
+ 0
3019
+ 15
3020
+ 20
3021
+ 0
3022
+ 39
3023
+ 0
3024
+ 49
3025
+ 1
3026
+ 1
3027
+ 11
3028
+ I
3029
+ 4
3030
+ I
3031
+ 1
3032
+ I
3033
+ 1
3034
+ I
3035
+ 1
3036
+ n
3037
+ p
3038
+ 2
3039
+ x
3040
+ 6
3041
+ @model
3042
+ x
3043
+ 4
3044
+ draw
3045
+ p
3046
+ 5
3047
+ I
3048
+ 0
3049
+ I
3050
+ 98
3051
+ I
3052
+ 4
3053
+ I
3054
+ 99
3055
+ I
3056
+ c
3057
+ x
3058
+ 50
3059
+ /home/kilian/code/ray/samples/opengl/instancing.rb
3060
+ p
3061
+ 1
3062
+ x
3063
+ 3
3064
+ win
3065
+ x
3066
+ 6
3067
+ render
3068
+ p
3069
+ 35
3070
+ I
3071
+ 0
3072
+ I
3073
+ 66
3074
+ I
3075
+ 2b
3076
+ I
3077
+ 68
3078
+ I
3079
+ 31
3080
+ I
3081
+ 81
3082
+ I
3083
+ 37
3084
+ I
3085
+ 8c
3086
+ I
3087
+ 46
3088
+ I
3089
+ 8d
3090
+ I
3091
+ 4c
3092
+ I
3093
+ 8e
3094
+ I
3095
+ 54
3096
+ I
3097
+ 8d
3098
+ I
3099
+ 77
3100
+ I
3101
+ 8e
3102
+ I
3103
+ 99
3104
+ I
3105
+ 8d
3106
+ I
3107
+ 9d
3108
+ I
3109
+ 90
3110
+ I
3111
+ bf
3112
+ I
3113
+ 91
3114
+ I
3115
+ c1
3116
+ I
3117
+ 90
3118
+ I
3119
+ da
3120
+ I
3121
+ 91
3122
+ I
3123
+ dc
3124
+ I
3125
+ 90
3126
+ I
3127
+ ea
3128
+ I
3129
+ 93
3130
+ I
3131
+ ef
3132
+ I
3133
+ 94
3134
+ I
3135
+ f7
3136
+ I
3137
+ 98
3138
+ I
3139
+ ff
3140
+ x
3141
+ 50
3142
+ /home/kilian/code/ray/samples/opengl/instancing.rb
3143
+ p
3144
+ 3
3145
+ x
3146
+ 13
3147
+ vertex_shader
3148
+ x
3149
+ 11
3150
+ frag_shader
3151
+ x
3152
+ 1
3153
+ n
3154
+ x
3155
+ 5
3156
+ scene
3157
+ x
3158
+ 6
3159
+ scenes
3160
+ x
3161
+ 2
3162
+ <<
3163
+ p
3164
+ 7
3165
+ I
3166
+ 0
3167
+ I
3168
+ 63
3169
+ I
3170
+ 8
3171
+ I
3172
+ 65
3173
+ I
3174
+ 12
3175
+ I
3176
+ 9d
3177
+ I
3178
+ 1b
3179
+ x
3180
+ 50
3181
+ /home/kilian/code/ray/samples/opengl/instancing.rb
3182
+ p
3183
+ 0
3184
+ x
3185
+ 4
3186
+ game
3187
+ p
3188
+ 19
3189
+ I
3190
+ 0
3191
+ I
3192
+ 1
3193
+ I
3194
+ 21
3195
+ I
3196
+ 2
3197
+ I
3198
+ 42
3199
+ I
3200
+ 4
3201
+ I
3202
+ 4b
3203
+ I
3204
+ 6
3205
+ I
3206
+ 59
3207
+ I
3208
+ 7
3209
+ I
3210
+ 68
3211
+ I
3212
+ 8
3213
+ I
3214
+ 76
3215
+ I
3216
+ a
3217
+ I
3218
+ 84
3219
+ I
3220
+ e
3221
+ I
3222
+ a3
3223
+ I
3224
+ 62
3225
+ I
3226
+ b1
3227
+ x
3228
+ 50
3229
+ /home/kilian/code/ray/samples/opengl/instancing.rb
3230
+ p
3231
+ 0