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() {
|
GameLib.EntityManager.prototype.registerCallbacks = function() {
|
||||||
|
|
||||||
this.subscribe(
|
this.subscribe(
|
||||||
GameLib.Event.PARENT_SCENE_CHANGE,
|
GameLib.Event.PARENT_SCENE_CHANGE,
|
||||||
this.onParentSceneChange
|
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(
|
folder.add(object, property, options).name(property).listen().onChange(
|
||||||
function(entityManager) {
|
function(entityManager) {
|
||||||
return function(value) {
|
return function(value) {
|
||||||
|
|
||||||
GameLib.Event.Emit(
|
GameLib.Event.Emit(
|
||||||
GameLib.Event.PARENT_ENTITY_CHANGE,
|
GameLib.Event.PARENT_ENTITY_CHANGE,
|
||||||
{
|
{
|
||||||
|
@ -852,7 +851,6 @@ GameLib.GUI.prototype.buildEntitySelectionControlFromArray = function(
|
||||||
object : object
|
object : object
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
};
|
};
|
||||||
}(entityManager)
|
}(entityManager)
|
||||||
);
|
);
|
||||||
|
|
|
@ -229,16 +229,12 @@ GameLib.System.prototype.update = function(deltaTime) {
|
||||||
|
|
||||||
var renderer = renderEntity.getFirstComponent(GameLib.D3.Renderer);
|
var renderer = renderEntity.getFirstComponent(GameLib.D3.Renderer);
|
||||||
var camera = renderEntity.getFirstComponent(GameLib.D3.Camera);
|
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(
|
if (viewports.length > 1) {
|
||||||
viewport.x * renderer.width,
|
renderer.instance.autoClear = false;
|
||||||
viewport.y * renderer.height,
|
}
|
||||||
viewport.width * renderer.width,
|
|
||||||
viewport.height * renderer.height
|
|
||||||
);
|
|
||||||
|
|
||||||
var scenes = renderEntity.getComponents(GameLib.D3.Scene);
|
|
||||||
|
|
||||||
if (scenes.length > 1) {
|
if (scenes.length > 1) {
|
||||||
renderer.instance.autoClear = false;
|
renderer.instance.autoClear = false;
|
||||||
|
@ -246,21 +242,34 @@ GameLib.System.prototype.update = function(deltaTime) {
|
||||||
|
|
||||||
renderer.instance.clear();
|
renderer.instance.clear();
|
||||||
|
|
||||||
scenes.map(function(scene){
|
viewports.map(
|
||||||
|
function(viewport){
|
||||||
|
|
||||||
if (scene.activeCamera) {
|
renderer.instance.setViewport(
|
||||||
renderer.instance.render(
|
viewport.x * renderer.width,
|
||||||
scene.instance,
|
viewport.y * renderer.height,
|
||||||
scene.activeCamera.instance
|
viewport.width * renderer.width,
|
||||||
);
|
viewport.height * renderer.height
|
||||||
} else {
|
);
|
||||||
renderer.instance.render(
|
|
||||||
scene.instance,
|
scenes.map(function(scene){
|
||||||
camera.instance
|
|
||||||
);
|
if (scene.activeCamera) {
|
||||||
}
|
renderer.instance.render(
|
||||||
|
scene.instance,
|
||||||
|
scene.activeCamera.instance
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
renderer.instance.render(
|
||||||
|
scene.instance,
|
||||||
|
camera.instance
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
stats.instance.end();
|
stats.instance.end();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue