jax 0.0.0.4 → 0.0.0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (49) hide show
  1. data/CHANGELOG +14 -0
  2. data/Rakefile +4 -0
  3. data/builtin/shaders/depthmap/fragment.ejs +4 -2
  4. data/builtin/shaders/depthmap/material.js +5 -0
  5. data/builtin/shaders/depthmap/vertex.ejs +4 -1
  6. data/builtin/shaders/functions/noise.ejs +523 -0
  7. data/builtin/shaders/lighting/common.ejs +1 -1
  8. data/builtin/shaders/normal_map/common.ejs +1 -1
  9. data/builtin/shaders/{paraboloid-depthmap → paraboloid}/common.ejs +2 -2
  10. data/builtin/shaders/{paraboloid-depthmap → paraboloid}/fragment.ejs +3 -3
  11. data/builtin/shaders/paraboloid/manifest.yml +5 -0
  12. data/builtin/shaders/{paraboloid-depthmap → paraboloid}/material.js +4 -4
  13. data/builtin/shaders/{paraboloid-depthmap → paraboloid}/vertex.ejs +1 -0
  14. data/builtin/shaders/shadow_map/common.ejs +1 -1
  15. data/builtin/shaders/shadow_map/fragment.ejs +1 -1
  16. data/lib/jax.rb +4 -0
  17. data/lib/jax/application.rb +4 -5
  18. data/lib/jax/generators/app/templates/public/javascripts/jax.js +190 -6
  19. data/lib/jax/generators/material/USAGE +1 -1
  20. data/lib/jax/generators/shader/templates/common.ejs.tt +1 -1
  21. data/lib/jax/generators/shader/templates/spec.js.tt +4 -0
  22. data/lib/jax/packager/sprockets_template.rb +4 -0
  23. data/lib/jax/resource_compiler.rb +1 -1
  24. data/lib/jax/shader.rb +19 -7
  25. data/lib/jax/version.rb +1 -1
  26. data/spec/example_app/app/controllers/noise_controller.js +18 -0
  27. data/spec/example_app/app/helpers/noise_helper.js +3 -0
  28. data/spec/example_app/app/resources/materials/blob.yml +28 -0
  29. data/spec/example_app/app/shaders/blob/common.ejs +18 -0
  30. data/spec/example_app/app/shaders/blob/fragment.ejs +8 -0
  31. data/spec/example_app/app/shaders/blob/manifest.yml +15 -0
  32. data/spec/example_app/app/shaders/blob/material.js +48 -0
  33. data/spec/example_app/app/shaders/blob/vertex.ejs +13 -0
  34. data/spec/example_app/app/views/noise/index.js +4 -0
  35. data/spec/example_app/config/routes.rb +1 -0
  36. data/spec/example_app/spec/javascripts/controllers/noise_controller_spec.js +11 -0
  37. data/spec/example_app/spec/javascripts/helpers/noise_helper_spec.js +12 -0
  38. data/spec/example_app/spec/javascripts/shaders/blob_spec.js +30 -0
  39. data/spec/example_app/spec/javascripts/support/spec_layout.html.erb +2 -1
  40. data/spec/javascripts/shaders/core_materials_spec.js +1 -0
  41. data/spec/javascripts/shaders/{dual_paraboloid_spec.js → paraboloid_spec.js} +2 -2
  42. data/src/constants.yml +1 -0
  43. data/src/constants.yml.erb +1 -0
  44. data/src/jax.js +14 -1
  45. data/src/jax/noise.js +193 -0
  46. data/src/jax/webgl/material.js +3 -2
  47. data/src/jax/webgl/scene/light_source.js +3 -2
  48. metadata +41 -12
  49. data/spec/javascripts/Player.js +0 -58
@@ -366,10 +366,11 @@ Jax.Material.addResources = function(resources) {
366
366
  //= require "../../../builtin/shaders/texture/material"
367
367
  //= require "../../../builtin/shaders/normal_map/material"
368
368
  //= require "../../../builtin/shaders/shadow_map/material"
369
- //= require "../../../builtin/shaders/paraboloid-depthmap/material"
369
+ //= require "../../../builtin/shaders/depthmap/material"
370
+ //= require "../../../builtin/shaders/paraboloid/material"
370
371
  //= require "../../../builtin/shaders/fog/material"
371
372
 
372
373
  Jax.Material.create("basic");
373
374
  Jax.Material.create("default", {default_shader:'basic'});
374
375
  Jax.Material.create("depthmap", {default_shader:"depthmap"});
375
- Jax.Material.create("paraboloid-depthmap", {type:"DualParaboloid",default_shader:"paraboloid-depthmap"});
376
+ Jax.Material.create("paraboloid-depthmap", {type:"Paraboloid",default_shader:"paraboloid",layers:[{type:"Depthmap"}]});
@@ -154,6 +154,7 @@ Jax.Scene.LightSource = (function() {
154
154
  fieldOfView = 60;
155
155
  this.camera.perspective({near:nearPlane,far:nearPlane+(2.0*sceneBoundingRadius),fov:fieldOfView,width:2048,height:2048});
156
156
  } else if (this.type == Jax.POINT_LIGHT) {
157
+ var paraboloid_depthmap = Jax.Material.find("paraboloid-depthmap");
157
158
 
158
159
  context.glDisable(GL_BLEND);
159
160
  context.glEnable(GL_CULL_FACE);
@@ -170,7 +171,7 @@ Jax.Scene.LightSource = (function() {
170
171
  mat4.set(context.getInverseViewMatrix(), sm);
171
172
 
172
173
  for (var i = 0; i < objects.length; i++) {
173
- objects[i].render(context, {material:'paraboloid-depthmap', direction:1});
174
+ objects[i].render(context, {material:paraboloid_depthmap, direction:1});
174
175
  }
175
176
  });
176
177
 
@@ -180,7 +181,7 @@ Jax.Scene.LightSource = (function() {
180
181
  context.glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
181
182
  context.loadViewMatrix(self.camera.getModelViewMatrix());
182
183
  for (var i = 0; i < objects.length; i++) {
183
- objects[i].render(context, {material:'paraboloid-depthmap',direction:-1});
184
+ objects[i].render(context, {material:paraboloid_depthmap,direction:-1});
184
185
  }
185
186
  });
186
187
 
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: jax
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.0.0.4
5
+ version: 0.0.0.5
6
6
  platform: ruby
7
7
  authors:
8
8
  - Colin MacKenzie IV
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-05-19 00:00:00 -04:00
13
+ date: 2011-05-21 00:00:00 -04:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
@@ -180,6 +180,7 @@ files:
180
180
  - .gitignore
181
181
  - .gitmodules
182
182
  - .rvmrc
183
+ - CHANGELOG
183
184
  - Gemfile
184
185
  - LICENSE
185
186
  - README.rdoc
@@ -190,6 +191,7 @@ files:
190
191
  - builtin/shaders/basic/vertex.ejs
191
192
  - builtin/shaders/depthmap/common.ejs
192
193
  - builtin/shaders/depthmap/fragment.ejs
194
+ - builtin/shaders/depthmap/material.js
193
195
  - builtin/shaders/depthmap/vertex.ejs
194
196
  - builtin/shaders/fog/common.ejs
195
197
  - builtin/shaders/fog/fragment.ejs
@@ -198,6 +200,7 @@ files:
198
200
  - builtin/shaders/fog/vertex.ejs
199
201
  - builtin/shaders/functions/depth_map.ejs
200
202
  - builtin/shaders/functions/lights.ejs
203
+ - builtin/shaders/functions/noise.ejs
201
204
  - builtin/shaders/lighting/common.ejs
202
205
  - builtin/shaders/lighting/fragment.ejs
203
206
  - builtin/shaders/lighting/manifest.yml
@@ -208,10 +211,11 @@ files:
208
211
  - builtin/shaders/normal_map/manifest.yml
209
212
  - builtin/shaders/normal_map/material.js
210
213
  - builtin/shaders/normal_map/vertex.ejs
211
- - builtin/shaders/paraboloid-depthmap/common.ejs
212
- - builtin/shaders/paraboloid-depthmap/fragment.ejs
213
- - builtin/shaders/paraboloid-depthmap/material.js
214
- - builtin/shaders/paraboloid-depthmap/vertex.ejs
214
+ - builtin/shaders/paraboloid/common.ejs
215
+ - builtin/shaders/paraboloid/fragment.ejs
216
+ - builtin/shaders/paraboloid/manifest.yml
217
+ - builtin/shaders/paraboloid/material.js
218
+ - builtin/shaders/paraboloid/vertex.ejs
215
219
  - builtin/shaders/shadow_map/common.ejs
216
220
  - builtin/shaders/shadow_map/fragment.ejs
217
221
  - builtin/shaders/shadow_map/manifest.yml
@@ -424,9 +428,11 @@ files:
424
428
  - spec/example_app/app/controllers/application_controller.js
425
429
  - spec/example_app/app/controllers/courthouse_controller.js
426
430
  - spec/example_app/app/controllers/lighting_controller.js
431
+ - spec/example_app/app/controllers/noise_controller.js
427
432
  - spec/example_app/app/controllers/shadows_controller.js
428
433
  - spec/example_app/app/controllers/textures_controller.js
429
434
  - spec/example_app/app/helpers/application_helper.js
435
+ - spec/example_app/app/helpers/noise_helper.js
430
436
  - spec/example_app/app/helpers/textures_helper.js
431
437
  - spec/example_app/app/models/character.js
432
438
  - spec/example_app/app/models/door.js
@@ -438,11 +444,18 @@ files:
438
444
  - spec/example_app/app/resources/light_sources/spot_light.yml
439
445
  - spec/example_app/app/resources/light_sources/sun.yml
440
446
  - spec/example_app/app/resources/light_sources/textures_point.yml
447
+ - spec/example_app/app/resources/materials/blob.yml
441
448
  - spec/example_app/app/resources/materials/bricks.yml
442
449
  - spec/example_app/app/resources/materials/lighting_with_shadows.yml
443
450
  - spec/example_app/app/resources/scenes/courthouse.yml
451
+ - spec/example_app/app/shaders/blob/common.ejs
452
+ - spec/example_app/app/shaders/blob/fragment.ejs
453
+ - spec/example_app/app/shaders/blob/manifest.yml
454
+ - spec/example_app/app/shaders/blob/material.js
455
+ - spec/example_app/app/shaders/blob/vertex.ejs
444
456
  - spec/example_app/app/views/courthouse/index.js
445
457
  - spec/example_app/app/views/lighting/index.js
458
+ - spec/example_app/app/views/noise/index.js
446
459
  - spec/example_app/app/views/shadows/index.js
447
460
  - spec/example_app/app/views/textures/index.js
448
461
  - spec/example_app/config/application.rb
@@ -455,11 +468,14 @@ files:
455
468
  - spec/example_app/public/images/rss.png
456
469
  - spec/example_app/public/webgl_not_supported.html
457
470
  - spec/example_app/script/jax
471
+ - spec/example_app/spec/javascripts/controllers/noise_controller_spec.js
458
472
  - spec/example_app/spec/javascripts/controllers/textures_controller_spec.js
459
473
  - spec/example_app/spec/javascripts/helpers/application_helper_spec.js
474
+ - spec/example_app/spec/javascripts/helpers/noise_helper_spec.js
460
475
  - spec/example_app/spec/javascripts/resources/directional_light_spec.js
461
476
  - spec/example_app/spec/javascripts/resources/point_light_spec.js
462
477
  - spec/example_app/spec/javascripts/resources/spot_light_spec.js
478
+ - spec/example_app/spec/javascripts/shaders/blob_spec.js
463
479
  - spec/example_app/spec/javascripts/support/jasmine.yml
464
480
  - spec/example_app/spec/javascripts/support/jasmine_runner.rb
465
481
  - spec/example_app/spec/javascripts/support/spec_helpers/jax_spec_helper.js
@@ -469,7 +485,6 @@ files:
469
485
  - spec/generators/light_generator_spec.rb
470
486
  - spec/generators/material_generator_spec.rb
471
487
  - spec/generators/model_generator_spec.rb
472
- - spec/javascripts/Player.js
473
488
  - spec/javascripts/helpers/SpecHelper.js
474
489
  - spec/javascripts/jax/builtin/meshes/cube_spec.js
475
490
  - spec/javascripts/jax/builtin/meshes/plane_spec.js
@@ -505,10 +520,10 @@ files:
505
520
  - spec/javascripts/jax/world_spec.js
506
521
  - spec/javascripts/jax_spec.js
507
522
  - spec/javascripts/shaders/core_materials_spec.js
508
- - spec/javascripts/shaders/dual_paraboloid_spec.js
509
523
  - spec/javascripts/shaders/fog_spec.js
510
524
  - spec/javascripts/shaders/lighting_spec.js
511
525
  - spec/javascripts/shaders/normal_map_spec.js
526
+ - spec/javascripts/shaders/paraboloid_spec.js
512
527
  - spec/javascripts/shaders/shadow_map_spec.js
513
528
  - spec/javascripts/shaders/texture_spec.js
514
529
  - spec/javascripts/support/jasmine.yml
@@ -519,6 +534,8 @@ files:
519
534
  - spec/spec_helper.rb
520
535
  - spec/support/file_exist_matcher.rb
521
536
  - spec/support/spec_shell.rb
537
+ - src/constants.yml
538
+ - src/constants.yml.erb
522
539
  - src/jax.js
523
540
  - src/jax/anim_frame.js
524
541
  - src/jax/builtin/all.js
@@ -540,6 +557,7 @@ files:
540
557
  - src/jax/geometry/plane.js
541
558
  - src/jax/helper.js
542
559
  - src/jax/model.js
560
+ - src/jax/noise.js
543
561
  - src/jax/prototype/class.js
544
562
  - src/jax/prototype/core.js
545
563
  - src/jax/prototype/extensions.js
@@ -658,7 +676,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
658
676
  requirements:
659
677
  - - ">="
660
678
  - !ruby/object:Gem::Version
661
- hash: 1105159901056856411
679
+ hash: -852676475953651161
662
680
  segments:
663
681
  - 0
664
682
  version: "0"
@@ -667,7 +685,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
667
685
  requirements:
668
686
  - - ">="
669
687
  - !ruby/object:Gem::Version
670
- hash: 1105159901056856411
688
+ hash: -852676475953651161
671
689
  segments:
672
690
  - 0
673
691
  version: "0"
@@ -684,9 +702,11 @@ test_files:
684
702
  - spec/example_app/app/controllers/application_controller.js
685
703
  - spec/example_app/app/controllers/courthouse_controller.js
686
704
  - spec/example_app/app/controllers/lighting_controller.js
705
+ - spec/example_app/app/controllers/noise_controller.js
687
706
  - spec/example_app/app/controllers/shadows_controller.js
688
707
  - spec/example_app/app/controllers/textures_controller.js
689
708
  - spec/example_app/app/helpers/application_helper.js
709
+ - spec/example_app/app/helpers/noise_helper.js
690
710
  - spec/example_app/app/helpers/textures_helper.js
691
711
  - spec/example_app/app/models/character.js
692
712
  - spec/example_app/app/models/door.js
@@ -698,11 +718,18 @@ test_files:
698
718
  - spec/example_app/app/resources/light_sources/spot_light.yml
699
719
  - spec/example_app/app/resources/light_sources/sun.yml
700
720
  - spec/example_app/app/resources/light_sources/textures_point.yml
721
+ - spec/example_app/app/resources/materials/blob.yml
701
722
  - spec/example_app/app/resources/materials/bricks.yml
702
723
  - spec/example_app/app/resources/materials/lighting_with_shadows.yml
703
724
  - spec/example_app/app/resources/scenes/courthouse.yml
725
+ - spec/example_app/app/shaders/blob/common.ejs
726
+ - spec/example_app/app/shaders/blob/fragment.ejs
727
+ - spec/example_app/app/shaders/blob/manifest.yml
728
+ - spec/example_app/app/shaders/blob/material.js
729
+ - spec/example_app/app/shaders/blob/vertex.ejs
704
730
  - spec/example_app/app/views/courthouse/index.js
705
731
  - spec/example_app/app/views/lighting/index.js
732
+ - spec/example_app/app/views/noise/index.js
706
733
  - spec/example_app/app/views/shadows/index.js
707
734
  - spec/example_app/app/views/textures/index.js
708
735
  - spec/example_app/config/application.rb
@@ -715,11 +742,14 @@ test_files:
715
742
  - spec/example_app/public/images/rss.png
716
743
  - spec/example_app/public/webgl_not_supported.html
717
744
  - spec/example_app/script/jax
745
+ - spec/example_app/spec/javascripts/controllers/noise_controller_spec.js
718
746
  - spec/example_app/spec/javascripts/controllers/textures_controller_spec.js
719
747
  - spec/example_app/spec/javascripts/helpers/application_helper_spec.js
748
+ - spec/example_app/spec/javascripts/helpers/noise_helper_spec.js
720
749
  - spec/example_app/spec/javascripts/resources/directional_light_spec.js
721
750
  - spec/example_app/spec/javascripts/resources/point_light_spec.js
722
751
  - spec/example_app/spec/javascripts/resources/spot_light_spec.js
752
+ - spec/example_app/spec/javascripts/shaders/blob_spec.js
723
753
  - spec/example_app/spec/javascripts/support/jasmine.yml
724
754
  - spec/example_app/spec/javascripts/support/jasmine_runner.rb
725
755
  - spec/example_app/spec/javascripts/support/spec_helpers/jax_spec_helper.js
@@ -729,7 +759,6 @@ test_files:
729
759
  - spec/generators/light_generator_spec.rb
730
760
  - spec/generators/material_generator_spec.rb
731
761
  - spec/generators/model_generator_spec.rb
732
- - spec/javascripts/Player.js
733
762
  - spec/javascripts/helpers/SpecHelper.js
734
763
  - spec/javascripts/jax/builtin/meshes/cube_spec.js
735
764
  - spec/javascripts/jax/builtin/meshes/plane_spec.js
@@ -765,10 +794,10 @@ test_files:
765
794
  - spec/javascripts/jax/world_spec.js
766
795
  - spec/javascripts/jax_spec.js
767
796
  - spec/javascripts/shaders/core_materials_spec.js
768
- - spec/javascripts/shaders/dual_paraboloid_spec.js
769
797
  - spec/javascripts/shaders/fog_spec.js
770
798
  - spec/javascripts/shaders/lighting_spec.js
771
799
  - spec/javascripts/shaders/normal_map_spec.js
800
+ - spec/javascripts/shaders/paraboloid_spec.js
772
801
  - spec/javascripts/shaders/shadow_map_spec.js
773
802
  - spec/javascripts/shaders/texture_spec.js
774
803
  - spec/javascripts/support/jasmine.yml
@@ -1,58 +0,0 @@
1
- describe("Player", function() {
2
- var player;
3
- var song;
4
-
5
- beforeEach(function() {
6
- player = new Player();
7
- song = new Song();
8
- });
9
-
10
- it("should be able to play a Song", function() {
11
- player.play(song);
12
- expect(player.currentlyPlayingSong).toEqual(song);
13
-
14
- //demonstrates use of custom matcher
15
- expect(player).toBePlaying(song);
16
- });
17
-
18
- describe("when song has been paused", function() {
19
- beforeEach(function() {
20
- player.play(song);
21
- player.pause();
22
- });
23
-
24
- it("should indicate that the song is currently paused", function() {
25
- expect(player.isPlaying).toBeFalsy();
26
-
27
- // demonstrates use of 'not' with a custom matcher
28
- expect(player).not.toBePlaying(song);
29
- });
30
-
31
- it("should be possible to resume", function() {
32
- player.resume();
33
- expect(player.isPlaying).toBeTruthy();
34
- expect(player.currentlyPlayingSong).toEqual(song);
35
- });
36
- });
37
-
38
- // demonstrates use of spies to intercept and test method calls
39
- it("tells the current song if the user has made it a favorite", function() {
40
- spyOn(song, 'persistFavoriteStatus');
41
-
42
- player.play(song);
43
- player.makeFavorite();
44
-
45
- expect(song.persistFavoriteStatus).toHaveBeenCalledWith(true);
46
- });
47
-
48
- //demonstrates use of expected exceptions
49
- describe("#resume", function() {
50
- it("should throw an exception if song is already playing", function() {
51
- player.play(song);
52
-
53
- expect(function() {
54
- player.resume();
55
- }).toThrow("song is already playing");
56
- });
57
- });
58
- });