Skip to content

Commit

Permalink
0.6.22 VWF Release
Browse files Browse the repository at this point in the history
  • Loading branch information
eric79 committed Feb 28, 2014
2 parents 9074cca + 827cbc8 commit f11a420
Show file tree
Hide file tree
Showing 262 changed files with 28,099 additions and 20,458 deletions.
85 changes: 85 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,91 @@
VIRTUAL WORLD FRAMEWORK CHANGE LOG
==================================

----------------------------------
0.6.22
----------------------------------------------------------------------------------------------------
Note: (*) indicates an API change.

- NEW: Pull out three.js render into an overridable function so application can replace with its own (to work with shaders, multiple viewports, etc)
- NEW: Notify user if websocket connection is blocked
- NEW: Add polyfill for performance.now. Refs #3046
- NEW: `kernel.{prototype,behaviors,prototypes,prototypes(...,true)}` tests.
- NEW: Add calledMethod handler to the view to prevent interpolation when animation functions are called with a duration of 0. Refs #3046
- NEW: Add Pace.min.js loading bar to VWF startup window.
- NEW: Interpolate between transforms on frames between ticks.
- NEW: Move per-prototype `initialize` from `model/javascript` to the kernel.

In order for the javascript driver to create an async break between
calls to a node's prototype `initialize` functions, it needs to call
back into `kernel.execute` and iterate using the `execute` callback. But
kernel reentry is during replication. The driver can't make the extra
hop through the kernel to execute its script. It needs to execute it
directly.

This commit makes the kernel responsible for applying the prototypes'
initializers to the node. Using the new `initializingNodeFromPrototype`
handler, the kernel directs drivers to run the relevant prototype
initializers on the node. The kernel provides an async break between
initializations when needed.

Drivers only need to apply one initializer at a time. They no longer
need to search through the prototype chain and don't need to be
concerned about waiting for async operations from a prototype's
initializer to complete before calling a derived node's initializer.

An added benefit is that multiple drivers can perform partial
initialization correctly (such as if two scripting systems are active).
Previously, one driver would execute initialization for the entire
prototype chain without allowing the next driver to interleave its
initialization for the same nodes.

References #2417.

- NEW: Make jQuery and bootstrap load as RequireJS modules to remove them from the global namespace. Refs #3108, #3109
- CHG: New loader screen!
- CHG: Turn eval script into regular code so optimizer doesn't break it
- CHG: Change humvee-lesson driving to use translateTo, so it's not interpolated. Refs #3046
- CHG: Refactor `kernel.prototypes` slightly to remove duplicated code.
- CHG: Rearrange order of prototype array so nodes come before their behaviors
- CHG: Fix prototypes function so that it doesn't skip the behaviors of the first level prototype. Refs #2417
- CHG: Adding compatibility checking back into index.html for older browsers.
- CHG: Adjust EventLag minimum sampling to account for event lag of Three.JS
- CHG: Clean up duplicate code in renderScene. Refs #3046
- CHG: Fix mouse navigation. Refs #2417
- CHG: Only save nodes that are 3D objects for interpolation
- CHG: Fix example/transforms so that it doesn't throw errors before the app is fully loaded. Refs #3046
- CHG: In the nodejs reflector, store the time a new client connects to use for the time in the setState message.
- CHG: Change tick messages so they don't have an action. Refs #3046
- CHG: Add /r flag to RMDir to fully remove node-modules folder
- CHG: Only move queue forward on ticks
- CHG: Moved some functions private, eliminate matCpy for goog.vev.mat4.clone, avoid kernel access.
- CHG: Fix applications that depend on jQuery or bootstrap. Refs #3120
- CHG: Remove old websocket check
- CHG: Update build_windows_installer.nsi
- CHG: Relative path changed to absolute for source control version of NSIS script.
- CHG: Start a webpage with the local README loaded after install.
- CHG: Create does not take vwfPath argument.
- CHG: Update vwfCli.js to support multiple possible locations for VWF support files.
- CHG: Update spacing in node_vwf.js
- CHG: Combine nested-if into && conditional operator in node_vwf.js.
- CHG: Add check for VWF_DIR truthy values.
- CHG: Fix path checking order to fix Mac/Linux path lookup.
- CHG: Wordsmith installation instructions
- CHG: Removed the word folder in install documentation.
- CHG: Update installation notes to tighten up wording.
- CHG: Update installation page to match README.
- CHG: Update readme.md to remove extra wording.
- CHG: Add instructions on how to use vwf create / vwf to start node server.
- CHG: Update Readme.md to fix wording.
- CHG: Update to point to development as fork repo for VWF Core Developers.
- CHG: Update readme.md to include new instructions for VWF 1.0 Windows install. Closes #3039
- CHG: Added Core Developer instructions for Windows installation. Closes #3039
- CHG: Update to installation procedures to break into user/app developer installation and core developer installation. Refs #3039
- CHG: Remove VWF website from main VWF repository
- CHG: No longer create default lights in every app - only if app doesn't create any itself (the create two directional lights and one ambient)
- CHG: Remove/encapsulate external dependencies so they don't conflict with app dependencies


----------------------------------
0.6.21
----------------------------------------------------------------------------------------------------
Expand Down
78 changes: 0 additions & 78 deletions README-1.0.md

This file was deleted.

18 changes: 7 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,15 +21,13 @@ This command may be re-run to upgrade the installation to the latest version of

**Install on Windows**

- Download the latest [VWF Baseline](http://download.virtualworldframework.com/files/VWF_Windows_latest.zip) and extract the zip.
- Execute VWF from the root folder at a command prompt. (i.e., `c:\vwf-extracted-folder>vwf`)
- Follow the instructions to setup your environment.
- Download and run the [VWF Windows Installer](http://download.virtualworldframework.com/files/VWF_Windows_Install.exe).

For more complex installations, such as working on VWF core, please see our [Installation Instructions](http://www.virtual.wf/web/docs/install.html).
For more complex installations, such as working on VWF core, please see our [Installation Instructions](http://virtual.wf/documentation.html#install).

## Quick Start

Create a new VWF application.
Create a new VWF application from the command line.

```
$ vwf create my-app
Expand All @@ -44,20 +42,19 @@ $ vwf

Your application is now up and running at [http://localhost:3000](http://localhost:3000).

To get started with VWF, check out [Getting Started](http://virtual.wf/web/docs/readme.html).
To get started with VWF, check out [Getting Started](http://virtual.wf/getting_started.html).

## Examples

For examples, check out our [demos](http://www.virtual.wf/web/catalog.html).
For examples, check out our [demos](http://virtual.wf/demos.html).

Also, browse through other example applications in the `public` folder of your
local VWF repository.
Also, browse through other example applications in the [public](https://github.com/virtual-world-framework/vwf/tree/master/public) directory.

## Contributing

Our development process utilizes several branches:

* [![Build Status](http://jenkins.virtualworldframework.com/job/Master/badge/icon)](http://jenkins.virtualworldframework.com/job/Master/) **master** - Stable release of VWF. Running on http://virtual.wf.
* [![Build Status](http://jenkins.virtualworldframework.com/job/Master/badge/icon)](http://jenkins.virtualworldframework.com/job/Master/) **master** - Stable release of VWF. Running on http://demo.virtual.wf.
* [![Build Status](http://jenkins.virtualworldframework.com/job/Integration/badge/icon)](http://jenkins.virtualworldframework.com/job/Integration/) **integration** - Integration testing features from development before merging into master. Running on http://integration.virtual.wf.
* [![Build Status](http://jenkins.virtualworldframework.com/job/Development/badge/icon)](http://jenkins.virtualworldframework.com/job/Development/) **development** - The latest development and new features of the framework. Running on http://development.virtual.wf.
* **branch/feature-name** - Feature development is done on a feature branch before being merged back to development.
Expand All @@ -71,7 +68,6 @@ Also, please be sure that your pull request conforms to our [Coding Standard](ht
Keep track of developments and get help with VWF.

- Discover an issue? Head over to [Issues](https://github.com/virtual-world-framework/vwf/issues) and report it.
- Have a question about VWF? Ask away on [our forum](http://www.virtual.wf/web/forum.html).

## License

Expand Down
2 changes: 1 addition & 1 deletion lib/nodejs/admin.js
Original file line number Diff line number Diff line change
Expand Up @@ -179,7 +179,7 @@ function HandleAdminModels( request, response ) {
for ( var i in filenames ) {
var filedata = {};
var filedetails = fs.statSync( "." + libpath.sep + "public" + libpath.sep + "models" + libpath.sep + filenames[ i ] );
if ( filedetails.helpers.IsFile( ) ) {
if ( filedetails.isFile( ) ) {
filedata[ 'url' ] = "http://" + request.headers.host + "/models/" + filenames[ i ];
filedata[ 'basename' ] = filenames[ i ];
filedata[ 'size' ] = filedetails.size;
Expand Down
7 changes: 5 additions & 2 deletions lib/nodejs/reflector.js
Original file line number Diff line number Diff line change
Expand Up @@ -161,7 +161,7 @@ function OnConnection( socket ) {
global.instances[ namespace ].timerID = setInterval( function ( ) {
for ( var i in global.instances[ namespace ].clients ) {
var client = global.instances[ namespace ].clients[ i ];
client.emit( 'message', { action: "tick", parameters: [ ], time: global.instances[ namespace ].getTime( ) } );
client.emit( 'message', { parameters: [ ], time: global.instances[ namespace ].getTime( ) } );
}
}, 50 );

Expand All @@ -176,6 +176,9 @@ function OnConnection( socket ) {
//Create a child in the application's 'clients.vwf' global to represent this client.
var clientMessage = { action: "createChild", parameters: [ "http-vwf-example-com-clients-vwf", socket.id, {} ], time: global.instances[ namespace ].getTime( ) };

// The time for the setState message should be the time the new client joins, so save that time
var setStateTime = global.instances[ namespace ].getTime( );

//The client is the first, is can just load the index.vwf, and mark it not pending
if ( Object.keys( global.instances[ namespace ].clients ).length == 1 ) {

Expand Down Expand Up @@ -233,7 +236,7 @@ function OnConnection( socket ) {
global.instances[ namespace ].Log( 'Got State', 2 );
var state = message.result;
global.instances[ namespace ].Log( state, 2 );
client.emit( 'message', { action: "setState", parameters: [ state ], time: global.instances[ namespace ].getTime( ) } );
client.emit( 'message', { action: "setState", parameters: [ state ], time: setStateTime } );
client.pending = false;
for ( var j = 0; j < client.pendingList.length; j++ ) {
client.emit( 'message', client.pendingList[ j ] );
Expand Down
18 changes: 12 additions & 6 deletions lib/vwf/application/admin.rb
Original file line number Diff line number Diff line change
Expand Up @@ -88,12 +88,18 @@ class VWF::Application::Admin < Sinatra::Base
# details (none currently).

get "/instances" do

Hash[ *
VWF::Application::Reflector.instances( env ).map do |resource, instance|
[ resource, Hash[ :clients => Hash[ * instance[:clients].map { |client| [ client.id, nil ] } .flatten( 1 ) ] ] ]
end .flatten( 1 )
] .to_json

jsonInstances = Hash[ *
VWF::Application::Reflector.instances( env ).map do |resource, instance|
[ resource, Hash[ :clients => Hash[ * instance[:clients].map { |client| [ client.id, nil ] } .flatten( 1 ) ] ] ]
end .flatten( 1 )
] .to_json

if params["callback"]
params["callback"].to_s + "( " + jsonInstances + " )"
else
jsonInstances
end

end

Expand Down
2 changes: 1 addition & 1 deletion node-server.js
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ if ( argv._[0] == 'create' && argv._.length == 1 ) {
console.log(" $ vwf");
console.log("");
console.log("See the Getting Started documentation at: ");
console.log("http://www.virtual.wf/web/docs/readme.html");
console.log("https://virtual.wf/getting_started.html");
} else {
console.log("VWF application could not be created at '" + applicationPath + "'");
}
Expand Down
102 changes: 0 additions & 102 deletions public/Rakefile

This file was deleted.

Loading

0 comments on commit f11a420

Please sign in to comment.