multiple viewports (finally) - start with clone
parent
8d481843fd
commit
a676543121
|
@ -220,4 +220,16 @@ GameLib.Component.prototype.linkObjects = function(idToObject) {
|
|||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
GameLib.Component.prototype.clone = function() {
|
||||
|
||||
var apiObject = this.toApiObject();
|
||||
|
||||
apiObject.id = GameLib.Utils.RandomId();
|
||||
|
||||
apiObject.name = apiObject.name + ' Clone (' + apiObject.id + ')';
|
||||
|
||||
//TODO - create runtime object - add to parent entity -
|
||||
//var object = apiObject.
|
||||
};
|
|
@ -380,15 +380,26 @@ GameLib.EntityManager.prototype.onParentSceneChange = function(data) {
|
|||
}
|
||||
};
|
||||
|
||||
|
||||
GameLib.EntityManager.prototype.onParentEntityChange = function(data) {
|
||||
data.originalEntity.removeComponent(data.object);
|
||||
data.newEntity.addComponent(data.object);
|
||||
};
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
GameLib.EntityManager.prototype.registerCallbacks = function() {
|
||||
|
||||
this.subscribe(
|
||||
this.subscribe(
|
||||
GameLib.Event.PARENT_SCENE_CHANGE,
|
||||
this.onParentSceneChange
|
||||
)
|
||||
);
|
||||
|
||||
this.subscribe(
|
||||
GameLib.Event.PARENT_ENTITY_CHANGE,
|
||||
this.onParentEntityChange
|
||||
);
|
||||
|
||||
};
|
||||
|
||||
|
|
|
@ -843,7 +843,6 @@ GameLib.GUI.prototype.buildEntitySelectionControlFromArray = function(
|
|||
folder.add(object, property, options).name(property).listen().onChange(
|
||||
function(entityManager) {
|
||||
return function(value) {
|
||||
|
||||
GameLib.Event.Emit(
|
||||
GameLib.Event.PARENT_ENTITY_CHANGE,
|
||||
{
|
||||
|
@ -852,7 +851,6 @@ GameLib.GUI.prototype.buildEntitySelectionControlFromArray = function(
|
|||
object : object
|
||||
}
|
||||
);
|
||||
|
||||
};
|
||||
}(entityManager)
|
||||
);
|
||||
|
|
|
@ -229,16 +229,12 @@ GameLib.System.prototype.update = function(deltaTime) {
|
|||
|
||||
var renderer = renderEntity.getFirstComponent(GameLib.D3.Renderer);
|
||||
var camera = renderEntity.getFirstComponent(GameLib.D3.Camera);
|
||||
var viewport = renderEntity.getFirstComponent(GameLib.D3.Viewport);
|
||||
var viewports = renderEntity.getComponents(GameLib.D3.Viewport);
|
||||
var scenes = renderEntity.getComponents(GameLib.D3.Scene);
|
||||
|
||||
renderer.instance.setViewport(
|
||||
viewport.x * renderer.width,
|
||||
viewport.y * renderer.height,
|
||||
viewport.width * renderer.width,
|
||||
viewport.height * renderer.height
|
||||
);
|
||||
|
||||
var scenes = renderEntity.getComponents(GameLib.D3.Scene);
|
||||
if (viewports.length > 1) {
|
||||
renderer.instance.autoClear = false;
|
||||
}
|
||||
|
||||
if (scenes.length > 1) {
|
||||
renderer.instance.autoClear = false;
|
||||
|
@ -246,21 +242,34 @@ GameLib.System.prototype.update = function(deltaTime) {
|
|||
|
||||
renderer.instance.clear();
|
||||
|
||||
scenes.map(function(scene){
|
||||
viewports.map(
|
||||
function(viewport){
|
||||
|
||||
if (scene.activeCamera) {
|
||||
renderer.instance.render(
|
||||
scene.instance,
|
||||
scene.activeCamera.instance
|
||||
);
|
||||
} else {
|
||||
renderer.instance.render(
|
||||
scene.instance,
|
||||
camera.instance
|
||||
);
|
||||
}
|
||||
renderer.instance.setViewport(
|
||||
viewport.x * renderer.width,
|
||||
viewport.y * renderer.height,
|
||||
viewport.width * renderer.width,
|
||||
viewport.height * renderer.height
|
||||
);
|
||||
|
||||
scenes.map(function(scene){
|
||||
|
||||
if (scene.activeCamera) {
|
||||
renderer.instance.render(
|
||||
scene.instance,
|
||||
scene.activeCamera.instance
|
||||
);
|
||||
} else {
|
||||
renderer.instance.render(
|
||||
scene.instance,
|
||||
camera.instance
|
||||
);
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
);
|
||||
|
||||
});
|
||||
|
||||
stats.instance.end();
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue