introducing 2d renderer
parent
c1334bbb00
commit
34a3c1a24e
|
@ -95,7 +95,7 @@ GameLib.Event.GET_REMOTE_API_URL = 0x4d;
|
||||||
GameLib.Event.COMPONENT_TYPES_UPDATE = 0x4e;
|
GameLib.Event.COMPONENT_TYPES_UPDATE = 0x4e;
|
||||||
GameLib.Event.DELAYED_INSTANCE_ENCOUNTERED = 0x4f;
|
GameLib.Event.DELAYED_INSTANCE_ENCOUNTERED = 0x4f;
|
||||||
GameLib.Event.CAST_SOURCE_CHANGED = 0x50;
|
GameLib.Event.CAST_SOURCE_CHANGED = 0x50;
|
||||||
// GameLib.Event.ANIMATION_MESH_ADDED = 0x51;
|
GameLib.Event.RESOLVE_DEPENDENCIES = 0x51;
|
||||||
// GameLib.Event.ANIMATION_MESH_REMOVED = 0x52;
|
// GameLib.Event.ANIMATION_MESH_REMOVED = 0x52;
|
||||||
GameLib.Event.CANVAS_CHANGE = 0x53;
|
GameLib.Event.CANVAS_CHANGE = 0x53;
|
||||||
GameLib.Event.AFTER_WINDOW_RESIZE = 0x54;
|
GameLib.Event.AFTER_WINDOW_RESIZE = 0x54;
|
||||||
|
@ -222,7 +222,7 @@ GameLib.Event.GetEventName = function(number) {
|
||||||
case 0x4e : return 'component_types_update';
|
case 0x4e : return 'component_types_update';
|
||||||
case 0x4f : return 'delayed_instance_encountered';
|
case 0x4f : return 'delayed_instance_encountered';
|
||||||
case 0x50 : return 'cast_source_changed';
|
case 0x50 : return 'cast_source_changed';
|
||||||
case 0x51 : return 'unused';//'animation_mesh_added';
|
case 0x51 : return 'resolve_dependencies';;
|
||||||
case 0x52 : return 'unused';//'animation_mesh_removed';
|
case 0x52 : return 'unused';//'animation_mesh_removed';
|
||||||
case 0x53 : return 'dom_element_change';
|
case 0x53 : return 'dom_element_change';
|
||||||
case 0x54 : return 'after_window_resize';
|
case 0x54 : return 'after_window_resize';
|
||||||
|
|
|
@ -142,7 +142,14 @@ GameLib.Component.prototype.createInstance = function() {
|
||||||
{
|
{
|
||||||
component: this
|
component: this
|
||||||
}
|
}
|
||||||
)
|
);
|
||||||
|
|
||||||
|
GameLib.Event.Emit(
|
||||||
|
GameLib.Event.RESOLVE_DEPENDENCIES,
|
||||||
|
{
|
||||||
|
component: this
|
||||||
|
}
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this instanceof GameLib.Entity) {
|
if (this instanceof GameLib.Entity) {
|
||||||
|
@ -263,8 +270,8 @@ GameLib.Component.GUI = 0x1e;
|
||||||
GameLib.Component.IMAGE = 0x1f;
|
GameLib.Component.IMAGE = 0x1f;
|
||||||
GameLib.Component.ENTITY = 0x20;
|
GameLib.Component.ENTITY = 0x20;
|
||||||
GameLib.Component.OBJECT = 0x21;
|
GameLib.Component.OBJECT = 0x21;
|
||||||
//GameLib.Component.MESH_PLANE = 0x22;
|
GameLib.Component.RENDERER_D2 = 0x22;
|
||||||
//GameLib.Component.MESH_CURVE = 0x23;
|
GameLib.Component.RENDERER_D3 = 0x23;
|
||||||
GameLib.Component.PHYSICS_WORLD = 0x24;
|
GameLib.Component.PHYSICS_WORLD = 0x24;
|
||||||
GameLib.Component.BROADPHASE = 0x25;
|
GameLib.Component.BROADPHASE = 0x25;
|
||||||
GameLib.Component.SOLVER = 0x26;
|
GameLib.Component.SOLVER = 0x26;
|
||||||
|
@ -438,10 +445,10 @@ GameLib.Component.GetComponentInfo = function(number) {
|
||||||
apiConstructor : GameLib.D3.API.Material.Standard
|
apiConstructor : GameLib.D3.API.Material.Standard
|
||||||
};
|
};
|
||||||
case 0x3 : return {
|
case 0x3 : return {
|
||||||
name : 'GameLib.D3.Renderer',
|
name : 'GameLib.Renderer',
|
||||||
runtime : GameLib.Component.GRAPHICS_RUNTIME,
|
runtime : GameLib.Component.DEFAULT_RUNTIME,
|
||||||
constructor : GameLib.D3.Renderer,
|
constructor : GameLib.Renderer,
|
||||||
apiConstructor : GameLib.D3.API.Renderer
|
apiConstructor : GameLib.API.Renderer
|
||||||
};
|
};
|
||||||
case 0x4 : return {
|
case 0x4 : return {
|
||||||
name : 'GameLib.Server',
|
name : 'GameLib.Server',
|
||||||
|
@ -619,18 +626,18 @@ GameLib.Component.GetComponentInfo = function(number) {
|
||||||
constructor : GameLib.D3.Object,
|
constructor : GameLib.D3.Object,
|
||||||
apiConstructor : GameLib.D3.API.Object
|
apiConstructor : GameLib.D3.API.Object
|
||||||
};
|
};
|
||||||
case 0x22 : return null;/*{
|
case 0x22 : return {
|
||||||
name : 'GameLib.D3.Mesh.Plane',
|
name : 'GameLib.Renderer.D2',
|
||||||
|
runtime : GameLib.Component.DEFAULT_RUNTIME,
|
||||||
|
constructor : GameLib.Renderer.D2,
|
||||||
|
apiConstructor : GameLib.API.Renderer.D2
|
||||||
|
};
|
||||||
|
case 0x23 : return {
|
||||||
|
name : 'GameLib.Renderer.D3',
|
||||||
runtime : GameLib.Component.GRAPHICS_RUNTIME,
|
runtime : GameLib.Component.GRAPHICS_RUNTIME,
|
||||||
constructor : GameLib.D3.Mesh.Plane,
|
constructor : GameLib.Renderer.D3,
|
||||||
apiConstructor : GameLib.D3.API.Mesh
|
apiConstructor : GameLib.API.Renderer.D3
|
||||||
};*/
|
};
|
||||||
case 0x23 : return null;/*{
|
|
||||||
name : 'GameLib.D3.Mesh.Curve',
|
|
||||||
runtime : GameLib.Component.GRAPHICS_RUNTIME,
|
|
||||||
constructor : GameLib.D3.Mesh.Curve,
|
|
||||||
apiConstructor : GameLib.D3.API.Mesh
|
|
||||||
};*/
|
|
||||||
case 0x24 : return {
|
case 0x24 : return {
|
||||||
name : 'GameLib.D3.PhysicsWorld',
|
name : 'GameLib.D3.PhysicsWorld',
|
||||||
runtime : GameLib.Component.PHYSICS_RUNTIME,
|
runtime : GameLib.Component.PHYSICS_RUNTIME,
|
||||||
|
@ -1852,7 +1859,10 @@ GameLib.Component.prototype.save = function(remote) {
|
||||||
/**
|
/**
|
||||||
* We don't store children objects of entities which are not explicitly defined as children of this entity.
|
* We don't store children objects of entities which are not explicitly defined as children of this entity.
|
||||||
*/
|
*/
|
||||||
if (this.components.indexOf(component) === -1) {
|
if (
|
||||||
|
this.components.indexOf(component) === -1 &&
|
||||||
|
this !== component
|
||||||
|
) {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* We don't want to store this component - but other components may depend on it
|
* We don't want to store this component - but other components may depend on it
|
||||||
|
|
|
@ -49,12 +49,12 @@ GameLib.API.RenderConfiguration = function (
|
||||||
this.logicalSize = logicalSize;
|
this.logicalSize = logicalSize;
|
||||||
|
|
||||||
if (GameLib.Utils.UndefinedOrNull(aspectRatio)) {
|
if (GameLib.Utils.UndefinedOrNull(aspectRatio)) {
|
||||||
aspectRatio = GameLib.D3.API.Renderer.ASPECT_RATIO_3_2;
|
aspectRatio = GameLib.API.Renderer.ASPECT_RATIO_3_2;
|
||||||
}
|
}
|
||||||
this.aspectRatio = aspectRatio;
|
this.aspectRatio = aspectRatio;
|
||||||
|
|
||||||
if (GameLib.Utils.UndefinedOrNull(scaleMode)) {
|
if (GameLib.Utils.UndefinedOrNull(scaleMode)) {
|
||||||
scaleMode = GameLib.D3.API.Renderer.SCALE_MODE_LETTERBOX;
|
scaleMode = GameLib.API.Renderer.SCALE_MODE_LETTERBOX;
|
||||||
}
|
}
|
||||||
this.scaleMode = scaleMode;
|
this.scaleMode = scaleMode;
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,120 @@
|
||||||
|
/**
|
||||||
|
* GameLib.API.Renderer
|
||||||
|
* @param id
|
||||||
|
* @param name
|
||||||
|
* @param rendererType
|
||||||
|
* @param parentEntity
|
||||||
|
* @param width
|
||||||
|
* @param height
|
||||||
|
* @param canvas
|
||||||
|
* @constructor
|
||||||
|
*/
|
||||||
|
GameLib.API.Renderer = function (
|
||||||
|
id,
|
||||||
|
name,
|
||||||
|
rendererType,
|
||||||
|
parentEntity,
|
||||||
|
width,
|
||||||
|
height,
|
||||||
|
canvas
|
||||||
|
) {
|
||||||
|
if (GameLib.Utils.UndefinedOrNull(id)) {
|
||||||
|
id = GameLib.Utils.RandomId();
|
||||||
|
}
|
||||||
|
this.id = id;
|
||||||
|
|
||||||
|
if (GameLib.Utils.UndefinedOrNull(rendererType)) {
|
||||||
|
rendererType = GameLib.API.Renderer.RENDERER_TYPE_NONE;
|
||||||
|
}
|
||||||
|
this.rendererType = rendererType;
|
||||||
|
|
||||||
|
if (GameLib.Utils.UndefinedOrNull(name)) {
|
||||||
|
|
||||||
|
switch (this.rendererType) {
|
||||||
|
case GameLib.API.Renderer.RENDERER_TYPE_NONE :
|
||||||
|
name = "Renderer";
|
||||||
|
break;
|
||||||
|
case GameLib.API.Renderer.RENDERER_TYPE_2D :
|
||||||
|
name = "Renderer 2D";
|
||||||
|
break;
|
||||||
|
case GameLib.API.Renderer.RENDERER_TYPE_3D :
|
||||||
|
name = "Renderer 3D";
|
||||||
|
break;
|
||||||
|
default :
|
||||||
|
console.warn('no nice name for renderer');
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
name += " (" + this.id + ")";
|
||||||
|
}
|
||||||
|
this.name = name;
|
||||||
|
|
||||||
|
if (GameLib.Utils.UndefinedOrNull(width)) {
|
||||||
|
width = 1;
|
||||||
|
}
|
||||||
|
this.width = width;
|
||||||
|
|
||||||
|
if (GameLib.Utils.UndefinedOrNull(height)) {
|
||||||
|
height = 1;
|
||||||
|
}
|
||||||
|
this.height = height;
|
||||||
|
|
||||||
|
if (GameLib.Utils.UndefinedOrNull(canvas)) {
|
||||||
|
canvas = new GameLib.API.Canvas(
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
512,
|
||||||
|
512
|
||||||
|
);
|
||||||
|
}
|
||||||
|
this.canvas = canvas;
|
||||||
|
|
||||||
|
GameLib.API.Component.call(
|
||||||
|
this,
|
||||||
|
GameLib.API.Renderer.GetComponentType(this.rendererType),
|
||||||
|
parentEntity
|
||||||
|
);
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
GameLib.API.Renderer.prototype = Object.create(GameLib.API.Component.prototype);
|
||||||
|
GameLib.API.Renderer.prototype.constructor = GameLib.API.Renderer;
|
||||||
|
|
||||||
|
GameLib.API.Renderer.GetComponentType = function(rendererType) {
|
||||||
|
|
||||||
|
var componentType = null;
|
||||||
|
|
||||||
|
switch (rendererType) {
|
||||||
|
case GameLib.API.Renderer.RENDERER_TYPE_NONE :
|
||||||
|
componentType = GameLib.Component.RENDERER;
|
||||||
|
break;
|
||||||
|
case GameLib.API.Renderer.RENDERER_TYPE_2D :
|
||||||
|
componentType = GameLib.Component.RENDERER_D2;
|
||||||
|
break;
|
||||||
|
case GameLib.API.Renderer.RENDERER_TYPE_3D :
|
||||||
|
componentType = GameLib.Component.RENDERER_D3;
|
||||||
|
break;
|
||||||
|
default :
|
||||||
|
console.warn('could not determine component type');
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return componentType;
|
||||||
|
};
|
||||||
|
|
||||||
|
GameLib.API.Renderer.RENDERER_TYPE_NONE = 0x0;
|
||||||
|
GameLib.API.Renderer.RENDERER_TYPE_2D = 0x1;
|
||||||
|
GameLib.API.Renderer.RENDERER_TYPE_3D = 0x2;
|
||||||
|
|
||||||
|
GameLib.API.Renderer.MODE_CANVAS = 0x1;
|
||||||
|
GameLib.API.Renderer.MODE_TARGET = 0x2;
|
||||||
|
GameLib.API.Renderer.MODE_CANVAS_AND_TARGET = 0x3;
|
||||||
|
|
||||||
|
GameLib.API.Renderer.SHADOW_MAP_TYPE_BASIC = 0;
|
||||||
|
GameLib.API.Renderer.SHADOW_MAP_TYPE_PCF = 1;
|
||||||
|
GameLib.API.Renderer.SHADOW_MAP_TYPE_PCF_SOFT = 2;
|
||||||
|
|
||||||
|
GameLib.API.Renderer.TONE_MAPPING_LINEAR = 1;
|
||||||
|
GameLib.API.Renderer.TONE_MAPPING_REINHARD = 2;
|
||||||
|
GameLib.API.Renderer.TONE_MAPPING_UNCHARTED_2 = 3;
|
||||||
|
GameLib.API.Renderer.TONE_MAPPING_CINEON = 4;
|
|
@ -0,0 +1,34 @@
|
||||||
|
/**
|
||||||
|
* GameLib.API.Renderer.D2
|
||||||
|
* @constructor
|
||||||
|
* @param apiRenderer
|
||||||
|
*/
|
||||||
|
GameLib.API.Renderer.D2 = function (
|
||||||
|
apiRenderer
|
||||||
|
) {
|
||||||
|
|
||||||
|
if (GameLib.Utils.UndefinedOrNull(apiRenderer)) {
|
||||||
|
apiRenderer = {
|
||||||
|
rendererType : GameLib.API.Renderer.RENDERER_TYPE_2D
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GameLib.Utils.UndefinedOrNull(apiRenderer.rendererType)) {
|
||||||
|
apiRenderer.rendererType = GameLib.API.Renderer.RENDERER_TYPE_2D;
|
||||||
|
}
|
||||||
|
|
||||||
|
GameLib.API.Renderer.call(
|
||||||
|
this,
|
||||||
|
apiRenderer.id,
|
||||||
|
apiRenderer.name,
|
||||||
|
apiRenderer.rendererType,
|
||||||
|
apiRenderer.parentEntity,
|
||||||
|
apiRenderer.width,
|
||||||
|
apiRenderer.height,
|
||||||
|
apiRenderer.canvas
|
||||||
|
);
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
GameLib.API.Renderer.D2.prototype = Object.create(GameLib.API.Renderer.prototype);
|
||||||
|
GameLib.API.Renderer.D2.prototype.constructor = GameLib.API.Renderer.D2;
|
|
@ -1,9 +1,6 @@
|
||||||
/**
|
/**
|
||||||
* GameLib.D3.API.Renderer
|
* GameLib.API.Renderer.D3
|
||||||
* @param id
|
* @param apiRenderer
|
||||||
* @param name
|
|
||||||
* @param width
|
|
||||||
* @param height
|
|
||||||
* @param renderMode
|
* @param renderMode
|
||||||
* @param autoClear
|
* @param autoClear
|
||||||
* @param autoClearColor
|
* @param autoClearColor
|
||||||
|
@ -31,21 +28,16 @@
|
||||||
* @param preserveDrawingBuffer
|
* @param preserveDrawingBuffer
|
||||||
* @param depth
|
* @param depth
|
||||||
* @param logarithmicDepthBuffer
|
* @param logarithmicDepthBuffer
|
||||||
* @param offset
|
|
||||||
* @param canvas
|
|
||||||
* @param renderTarget
|
|
||||||
* @param localClippingEnabled
|
* @param localClippingEnabled
|
||||||
|
* @param offset
|
||||||
|
* @param renderTarget
|
||||||
* @param clippingPlanes
|
* @param clippingPlanes
|
||||||
* @param clearColor
|
* @param clearColor
|
||||||
* @param viewports
|
* @param viewports
|
||||||
* @param parentEntity
|
|
||||||
* @constructor
|
* @constructor
|
||||||
*/
|
*/
|
||||||
GameLib.D3.API.Renderer = function (
|
GameLib.API.Renderer.D3 = function (
|
||||||
id,
|
apiRenderer,
|
||||||
name,
|
|
||||||
width,
|
|
||||||
height,
|
|
||||||
renderMode,
|
renderMode,
|
||||||
autoClear,
|
autoClear,
|
||||||
autoClearColor,
|
autoClearColor,
|
||||||
|
@ -75,35 +67,24 @@ GameLib.D3.API.Renderer = function (
|
||||||
logarithmicDepthBuffer,
|
logarithmicDepthBuffer,
|
||||||
localClippingEnabled,
|
localClippingEnabled,
|
||||||
offset,
|
offset,
|
||||||
canvas,
|
|
||||||
renderTarget,
|
renderTarget,
|
||||||
clippingPlanes,
|
clippingPlanes,
|
||||||
clearColor,
|
clearColor,
|
||||||
viewports,
|
viewports
|
||||||
parentEntity
|
|
||||||
) {
|
) {
|
||||||
if (GameLib.Utils.UndefinedOrNull(id)) {
|
|
||||||
id = GameLib.Utils.RandomId();
|
|
||||||
}
|
|
||||||
this.id = id;
|
|
||||||
|
|
||||||
if (GameLib.Utils.UndefinedOrNull(name)) {
|
if (GameLib.Utils.UndefinedOrNull(apiRenderer)) {
|
||||||
name = "Renderer (" + this.id + ")";
|
apiRenderer = {
|
||||||
|
rendererType : GameLib.API.Renderer.RENDERER_TYPE_3D
|
||||||
|
};
|
||||||
}
|
}
|
||||||
this.name = name;
|
|
||||||
|
|
||||||
if (GameLib.Utils.UndefinedOrNull(width)) {
|
if (GameLib.Utils.UndefinedOrNull(apiRenderer.rendererType)) {
|
||||||
width = 1;
|
apiRenderer.rendererType = GameLib.API.Renderer.RENDERER_TYPE_3D;
|
||||||
}
|
}
|
||||||
this.width = width;
|
|
||||||
|
|
||||||
if (GameLib.Utils.UndefinedOrNull(height)) {
|
|
||||||
height = 1;
|
|
||||||
}
|
|
||||||
this.height = height;
|
|
||||||
|
|
||||||
if (GameLib.Utils.UndefinedOrNull(renderMode)) {
|
if (GameLib.Utils.UndefinedOrNull(renderMode)) {
|
||||||
renderMode = GameLib.D3.API.Renderer.MODE_CANVAS;
|
renderMode = GameLib.API.Renderer.MODE_CANVAS;
|
||||||
}
|
}
|
||||||
this.renderMode = renderMode;
|
this.renderMode = renderMode;
|
||||||
|
|
||||||
|
@ -173,7 +154,7 @@ GameLib.D3.API.Renderer = function (
|
||||||
this.shadowMapNeedsUpdate = shadowMapNeedsUpdate;
|
this.shadowMapNeedsUpdate = shadowMapNeedsUpdate;
|
||||||
|
|
||||||
if (GameLib.Utils.UndefinedOrNull(shadowMapType)) {
|
if (GameLib.Utils.UndefinedOrNull(shadowMapType)) {
|
||||||
shadowMapType = GameLib.D3.API.Renderer.SHADOW_MAP_TYPE_BASIC;
|
shadowMapType = GameLib.API.Renderer.SHADOW_MAP_TYPE_BASIC;
|
||||||
}
|
}
|
||||||
this.shadowMapType = shadowMapType;
|
this.shadowMapType = shadowMapType;
|
||||||
|
|
||||||
|
@ -193,7 +174,7 @@ GameLib.D3.API.Renderer = function (
|
||||||
this.sortObjects = sortObjects;
|
this.sortObjects = sortObjects;
|
||||||
|
|
||||||
if (GameLib.Utils.UndefinedOrNull(toneMapping)) {
|
if (GameLib.Utils.UndefinedOrNull(toneMapping)) {
|
||||||
toneMapping = GameLib.D3.API.Renderer.TONE_MAPPING_LINEAR;
|
toneMapping = GameLib.API.Renderer.TONE_MAPPING_LINEAR;
|
||||||
}
|
}
|
||||||
this.toneMapping = toneMapping;
|
this.toneMapping = toneMapping;
|
||||||
|
|
||||||
|
@ -247,16 +228,6 @@ GameLib.D3.API.Renderer = function (
|
||||||
}
|
}
|
||||||
this.offset = offset;
|
this.offset = offset;
|
||||||
|
|
||||||
if (GameLib.Utils.UndefinedOrNull(canvas)) {
|
|
||||||
canvas = new GameLib.API.Canvas(
|
|
||||||
null,
|
|
||||||
null,
|
|
||||||
512,
|
|
||||||
512
|
|
||||||
);
|
|
||||||
}
|
|
||||||
this.canvas = canvas;
|
|
||||||
|
|
||||||
if (GameLib.Utils.UndefinedOrNull(renderTarget)) {
|
if (GameLib.Utils.UndefinedOrNull(renderTarget)) {
|
||||||
renderTarget = null;
|
renderTarget = null;
|
||||||
}
|
}
|
||||||
|
@ -284,26 +255,18 @@ GameLib.D3.API.Renderer = function (
|
||||||
}
|
}
|
||||||
this.viewports = viewports;
|
this.viewports = viewports;
|
||||||
|
|
||||||
GameLib.API.Component.call(
|
GameLib.API.Renderer.call(
|
||||||
this,
|
this,
|
||||||
GameLib.Component.RENDERER,
|
apiRenderer.id,
|
||||||
parentEntity
|
apiRenderer.name,
|
||||||
|
apiRenderer.rendererType,
|
||||||
|
apiRenderer.parentEntity,
|
||||||
|
apiRenderer.width,
|
||||||
|
apiRenderer.height,
|
||||||
|
apiRenderer.canvas
|
||||||
);
|
);
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
GameLib.D3.API.Renderer.prototype = Object.create(GameLib.API.Component.prototype);
|
GameLib.API.Renderer.D3.prototype = Object.create(GameLib.API.Renderer.prototype);
|
||||||
GameLib.D3.API.Renderer.prototype.constructor = GameLib.D3.API.Renderer;
|
GameLib.API.Renderer.D3.prototype.constructor = GameLib.API.Renderer.D3;
|
||||||
|
|
||||||
GameLib.D3.API.Renderer.MODE_CANVAS = 0x1;
|
|
||||||
GameLib.D3.API.Renderer.MODE_TARGET = 0x2;
|
|
||||||
GameLib.D3.API.Renderer.MODE_CANVAS_AND_TARGET = 0x3;
|
|
||||||
|
|
||||||
GameLib.D3.API.Renderer.SHADOW_MAP_TYPE_BASIC = 0;
|
|
||||||
GameLib.D3.API.Renderer.SHADOW_MAP_TYPE_PCF = 1;
|
|
||||||
GameLib.D3.API.Renderer.SHADOW_MAP_TYPE_PCF_SOFT = 2;
|
|
||||||
|
|
||||||
GameLib.D3.API.Renderer.TONE_MAPPING_LINEAR = 1;
|
|
||||||
GameLib.D3.API.Renderer.TONE_MAPPING_REINHARD = 2;
|
|
||||||
GameLib.D3.API.Renderer.TONE_MAPPING_UNCHARTED_2 = 3;
|
|
||||||
GameLib.D3.API.Renderer.TONE_MAPPING_CINEON = 4;
|
|
|
@ -80,7 +80,8 @@ GameLib.Canvas.prototype.updateInstance = function(property) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (property === 'autoUpdateSize' ||
|
if (
|
||||||
|
property === 'autoUpdateSize' ||
|
||||||
property === 'width' ||
|
property === 'width' ||
|
||||||
property === 'height'
|
property === 'height'
|
||||||
) {
|
) {
|
||||||
|
|
|
@ -32,7 +32,7 @@ GameLib.D3.Composer = function (
|
||||||
GameLib.Component.call(
|
GameLib.Component.call(
|
||||||
this,
|
this,
|
||||||
{
|
{
|
||||||
'renderer' : GameLib.D3.Renderer,
|
'renderer' : GameLib.Renderer,
|
||||||
'renderTarget' : GameLib.D3.RenderTarget,
|
'renderTarget' : GameLib.D3.RenderTarget,
|
||||||
'passes' : [GameLib.D3.Pass]
|
'passes' : [GameLib.D3.Pass]
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,7 +28,7 @@ GameLib.D3.Effect = function(
|
||||||
);
|
);
|
||||||
|
|
||||||
var linkedObjects = {
|
var linkedObjects = {
|
||||||
renderer : GameLib.D3.Renderer
|
renderer : GameLib.Renderer
|
||||||
};
|
};
|
||||||
|
|
||||||
GameLib.Component.call(
|
GameLib.Component.call(
|
||||||
|
|
|
@ -44,7 +44,7 @@ GameLib.RenderConfiguration = function (
|
||||||
{
|
{
|
||||||
'activeCamera' : GameLib.D3.Camera,
|
'activeCamera' : GameLib.D3.Camera,
|
||||||
'activeScenes' : [GameLib.D3.Scene],
|
'activeScenes' : [GameLib.D3.Scene],
|
||||||
'activeRenderer' : GameLib.D3.Renderer,
|
'activeRenderer' : GameLib.Renderer,
|
||||||
'activeComposer' : GameLib.D3.Composer,
|
'activeComposer' : GameLib.D3.Composer,
|
||||||
'activeEffect' : GameLib.D3.Effect
|
'activeEffect' : GameLib.D3.Effect
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,125 @@
|
||||||
|
/**
|
||||||
|
* GameLib.Renderer
|
||||||
|
* @param apiRenderer GameLib.API.Renderer
|
||||||
|
* @property rendererType
|
||||||
|
* @constructor
|
||||||
|
*/
|
||||||
|
GameLib.Renderer = function (
|
||||||
|
apiRenderer
|
||||||
|
) {
|
||||||
|
|
||||||
|
if (GameLib.Utils.UndefinedOrNull(apiRenderer)) {
|
||||||
|
apiRenderer = {
|
||||||
|
rendererType : GameLib.API.Renderer.RENDERER_TYPE_NONE
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
GameLib.API.Renderer.call(
|
||||||
|
this,
|
||||||
|
apiRenderer.id,
|
||||||
|
apiRenderer.name,
|
||||||
|
apiRenderer.rendererType,
|
||||||
|
apiRenderer.parentEntity,
|
||||||
|
apiRenderer.width,
|
||||||
|
apiRenderer.height,
|
||||||
|
apiRenderer.canvas
|
||||||
|
);
|
||||||
|
|
||||||
|
if (this.canvas instanceof GameLib.API.Canvas) {
|
||||||
|
this.canvas = new GameLib.Canvas(
|
||||||
|
this.canvas
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
GameLib.Component.call(
|
||||||
|
this,
|
||||||
|
GameLib.Renderer.GetLinkedObjects(this.rendererType)
|
||||||
|
);
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
GameLib.Renderer.prototype = Object.create(GameLib.Component.prototype);
|
||||||
|
GameLib.Renderer.prototype.constructor = GameLib.Renderer;
|
||||||
|
|
||||||
|
GameLib.Renderer.GetLinkedObjects = function(rendererType) {
|
||||||
|
|
||||||
|
var linkedObjects = {
|
||||||
|
'canvas' : GameLib.Canvas
|
||||||
|
};
|
||||||
|
|
||||||
|
switch (rendererType) {
|
||||||
|
case GameLib.API.Renderer.RENDERER_TYPE_3D :
|
||||||
|
linkedObjects.renderTarget = GameLib.D3.RenderTarget;
|
||||||
|
linkedObjects.clippingPlanes = [GameLib.Plane];
|
||||||
|
linkedObjects.viewports = [GameLib.D3.Viewport];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return linkedObjects;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create Renderer Instance
|
||||||
|
* @returns {*}
|
||||||
|
*/
|
||||||
|
GameLib.Renderer.prototype.createInstance = function() {
|
||||||
|
GameLib.Component.prototype.createInstance.call(this);
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Update Renderer Instance
|
||||||
|
*/
|
||||||
|
GameLib.Renderer.prototype.updateInstance = function(property) {
|
||||||
|
|
||||||
|
if (!property) {
|
||||||
|
throw new Error('no renderer property');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!this.instance) {
|
||||||
|
throw new Error('no renderer instance');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (property === 'rendererType') {
|
||||||
|
|
||||||
|
var componentType = GameLib.API.Renderer.GetComponentType(this.rendererType);
|
||||||
|
|
||||||
|
this.replace(componentType);
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (
|
||||||
|
property === 'width' ||
|
||||||
|
property === 'height'
|
||||||
|
) {
|
||||||
|
console.log('todo: width and height');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (property === 'canvas') {
|
||||||
|
console.log('todo: canvas update');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
GameLib.Component.prototype.updateInstance.call(this, property);
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @returns {GameLib.API.Renderer}
|
||||||
|
*/
|
||||||
|
GameLib.Renderer.prototype.toApiObject = function() {
|
||||||
|
|
||||||
|
var apiRenderer = new GameLib.API.Renderer(
|
||||||
|
this.id,
|
||||||
|
this.name,
|
||||||
|
this.rendererType,
|
||||||
|
GameLib.Utils.IdOrNull(this.parentEntity),
|
||||||
|
this.width,
|
||||||
|
this.height,
|
||||||
|
GameLib.Utils.IdOrNull(this.canvas)
|
||||||
|
);
|
||||||
|
|
||||||
|
return apiRenderer;
|
||||||
|
};
|
|
@ -0,0 +1,79 @@
|
||||||
|
/**
|
||||||
|
* GameLib.Renderer.D2
|
||||||
|
* @param apiRendererD2 GameLib.API.Renderer.D2
|
||||||
|
* @constructor
|
||||||
|
*/
|
||||||
|
GameLib.Renderer.D2 = function (
|
||||||
|
apiRendererD2
|
||||||
|
) {
|
||||||
|
|
||||||
|
if (GameLib.Utils.UndefinedOrNull(apiRendererD2)) {
|
||||||
|
apiRendererD2 = {
|
||||||
|
rendererType : GameLib.API.Renderer.RENDERER_TYPE_2D
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
GameLib.API.Renderer.D2.call(
|
||||||
|
this,
|
||||||
|
apiRendererD2
|
||||||
|
);
|
||||||
|
|
||||||
|
GameLib.Renderer.call(
|
||||||
|
this,
|
||||||
|
this
|
||||||
|
);
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
GameLib.Renderer.D2.prototype = Object.create(GameLib.Renderer.prototype);
|
||||||
|
GameLib.Renderer.D2.prototype.constructor = GameLib.Renderer.D2;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create GameLib.Renderer.D2 Instance
|
||||||
|
* @returns {*}
|
||||||
|
*/
|
||||||
|
GameLib.Renderer.D2.prototype.createInstance = function() {
|
||||||
|
|
||||||
|
if (
|
||||||
|
GameLib.Utils.UndefinedOrNull(this.canvas) ||
|
||||||
|
GameLib.Utils.UndefinedOrNull(this.canvas.instance)
|
||||||
|
) {
|
||||||
|
console.warn('no canvas instance');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.instance = true;
|
||||||
|
|
||||||
|
GameLib.Renderer.prototype.createInstance.call(this);
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Update Renderer.D2 Instance
|
||||||
|
*/
|
||||||
|
GameLib.Renderer.D2.prototype.updateInstance = function(property) {
|
||||||
|
|
||||||
|
if (!property) {
|
||||||
|
throw new Error('no renderer property');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!this.instance) {
|
||||||
|
throw new Error('no renderer instance');
|
||||||
|
}
|
||||||
|
|
||||||
|
GameLib.Renderer.prototype.updateInstance.call(this, property);
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @returns {GameLib.API.Renderer.D2}
|
||||||
|
*/
|
||||||
|
GameLib.Renderer.D2.prototype.toApiObject = function() {
|
||||||
|
|
||||||
|
var apiRenderer = GameLib.Renderer.prototype.toApiObject.call(this);
|
||||||
|
|
||||||
|
var apiRendererD2 = new GameLib.API.Renderer.D2(
|
||||||
|
apiRenderer
|
||||||
|
);
|
||||||
|
|
||||||
|
return apiRendererD2;
|
||||||
|
};
|
|
@ -1,62 +1,59 @@
|
||||||
/**
|
/**
|
||||||
* GameLib.D3.Renderer
|
* GameLib.Renderer.D3
|
||||||
* @param graphics GameLib.GraphicsRuntime
|
* @param graphics GameLib.GraphicsRuntime
|
||||||
* @param apiRenderer GameLib.D3.API.Renderer
|
* @param apiRendererD3 GameLib.API.Renderer.D3
|
||||||
* @constructor
|
* @constructor
|
||||||
*/
|
*/
|
||||||
GameLib.D3.Renderer = function (
|
GameLib.Renderer.D3 = function (
|
||||||
graphics,
|
graphics,
|
||||||
apiRenderer
|
apiRendererD3
|
||||||
) {
|
) {
|
||||||
|
|
||||||
this.graphics = graphics;
|
this.graphics = graphics;
|
||||||
this.graphics.isNotThreeThrow();
|
this.graphics.isNotThreeThrow();
|
||||||
|
|
||||||
if (GameLib.Utils.UndefinedOrNull(apiRenderer)) {
|
if (GameLib.Utils.UndefinedOrNull(apiRendererD3)) {
|
||||||
apiRenderer = {};
|
apiRendererD3 = {
|
||||||
|
rendererType : GameLib.API.Renderer.RENDERER_TYPE_3D
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
GameLib.D3.API.Renderer.call(
|
GameLib.API.Renderer.D3.call(
|
||||||
this,
|
this,
|
||||||
apiRenderer.id,
|
apiRendererD3,
|
||||||
apiRenderer.name,
|
apiRendererD3.renderMode,
|
||||||
apiRenderer.width,
|
apiRendererD3.autoClear,
|
||||||
apiRenderer.height,
|
apiRendererD3.autoClearColor,
|
||||||
apiRenderer.renderMode,
|
apiRendererD3.autoClearDepth,
|
||||||
apiRenderer.autoClear,
|
apiRendererD3.autoClearStencil,
|
||||||
apiRenderer.autoClearColor,
|
apiRendererD3.gammaFactor,
|
||||||
apiRenderer.autoClearDepth,
|
apiRendererD3.gammaInput,
|
||||||
apiRenderer.autoClearStencil,
|
apiRendererD3.gammaOutput,
|
||||||
apiRenderer.gammaFactor,
|
apiRendererD3.maxMorphTargets,
|
||||||
apiRenderer.gammaInput,
|
apiRendererD3.maxMorphNormals,
|
||||||
apiRenderer.gammaOutput,
|
apiRendererD3.physicallyCorrectLights,
|
||||||
apiRenderer.maxMorphTargets,
|
apiRendererD3.shadowMapEnabled,
|
||||||
apiRenderer.maxMorphNormals,
|
apiRendererD3.shadowMapAutoUpdate,
|
||||||
apiRenderer.physicallyCorrectLights,
|
apiRendererD3.shadowMapNeedsUpdate,
|
||||||
apiRenderer.shadowMapEnabled,
|
apiRendererD3.shadowMapType,
|
||||||
apiRenderer.shadowMapAutoUpdate,
|
apiRendererD3.shadowMapRenderReverseSided,
|
||||||
apiRenderer.shadowMapNeedsUpdate,
|
apiRendererD3.shadowMapRenderSingleSided,
|
||||||
apiRenderer.shadowMapType,
|
apiRendererD3.sortObjects,
|
||||||
apiRenderer.shadowMapRenderReverseSided,
|
apiRendererD3.toneMapping,
|
||||||
apiRenderer.shadowMapRenderSingleSided,
|
apiRendererD3.toneMappingExposure,
|
||||||
apiRenderer.sortObjects,
|
apiRendererD3.toneMappingWhitePoint,
|
||||||
apiRenderer.toneMapping,
|
apiRendererD3.premultipliedAlpha,
|
||||||
apiRenderer.toneMappingExposure,
|
apiRendererD3.antialias,
|
||||||
apiRenderer.toneMappingWhitePoint,
|
apiRendererD3.stencil,
|
||||||
apiRenderer.premultipliedAlpha,
|
apiRendererD3.preserveDrawingBuffer,
|
||||||
apiRenderer.antialias,
|
apiRendererD3.depth,
|
||||||
apiRenderer.stencil,
|
apiRendererD3.logarithmicDepthBuffer,
|
||||||
apiRenderer.preserveDrawingBuffer,
|
apiRendererD3.localClippingEnabled,
|
||||||
apiRenderer.depth,
|
apiRendererD3.offset,
|
||||||
apiRenderer.logarithmicDepthBuffer,
|
apiRendererD3.renderTarget,
|
||||||
apiRenderer.localClippingEnabled,
|
apiRendererD3.clippingPlanes,
|
||||||
apiRenderer.offset,
|
apiRendererD3.clearColor,
|
||||||
apiRenderer.canvas,
|
apiRendererD3.viewports
|
||||||
apiRenderer.renderTarget,
|
|
||||||
apiRenderer.clippingPlanes,
|
|
||||||
apiRenderer.clearColor,
|
|
||||||
apiRenderer.viewports,
|
|
||||||
apiRenderer.parentEntity
|
|
||||||
);
|
);
|
||||||
|
|
||||||
this.offset = new GameLib.Vector2(
|
this.offset = new GameLib.Vector2(
|
||||||
|
@ -65,12 +62,6 @@ GameLib.D3.Renderer = function (
|
||||||
this
|
this
|
||||||
);
|
);
|
||||||
|
|
||||||
if (this.canvas instanceof GameLib.API.Canvas) {
|
|
||||||
this.canvas = new GameLib.Canvas(
|
|
||||||
this.canvas
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (this.renderTarget instanceof GameLib.D3.API.RenderTarget) {
|
if (this.renderTarget instanceof GameLib.D3.API.RenderTarget) {
|
||||||
this.renderTarget = new GameLib.D3.RenderTarget(
|
this.renderTarget = new GameLib.D3.RenderTarget(
|
||||||
this.graphics,
|
this.graphics,
|
||||||
|
@ -95,37 +86,32 @@ GameLib.D3.Renderer = function (
|
||||||
this
|
this
|
||||||
);
|
);
|
||||||
|
|
||||||
this.viewports = this.viewports.map(function(viewport){
|
this.viewports = this.viewports.map(function(viewport){
|
||||||
if (viewport instanceof GameLib.D3.API.Viewport) {
|
if (viewport instanceof GameLib.D3.API.Viewport) {
|
||||||
return new GameLib.D3.Viewport(
|
return new GameLib.D3.Viewport(
|
||||||
this.graphics,
|
this.graphics,
|
||||||
viewport
|
viewport
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
return viewport;
|
return viewport;
|
||||||
}
|
|
||||||
}.bind(this));
|
|
||||||
|
|
||||||
GameLib.Component.call(
|
|
||||||
this,
|
|
||||||
{
|
|
||||||
'canvas' : GameLib.Canvas,
|
|
||||||
'renderTarget' : GameLib.D3.RenderTarget,
|
|
||||||
'clippingPlanes': [GameLib.Plane],
|
|
||||||
'viewports' : [GameLib.D3.Viewport]
|
|
||||||
}
|
}
|
||||||
|
}.bind(this));
|
||||||
|
|
||||||
|
GameLib.Renderer.call(
|
||||||
|
this,
|
||||||
|
this
|
||||||
);
|
);
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
GameLib.D3.Renderer.prototype = Object.create(GameLib.Component.prototype);
|
GameLib.Renderer.D3.prototype = Object.create(GameLib.Renderer.prototype);
|
||||||
GameLib.D3.Renderer.prototype.constructor = GameLib.D3.Renderer;
|
GameLib.Renderer.D3.prototype.constructor = GameLib.Renderer.D3;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create Renderer Instance
|
* Create GameLib.Renderer.D3 Instance
|
||||||
* @returns {*}
|
* @returns {*}
|
||||||
*/
|
*/
|
||||||
GameLib.D3.Renderer.prototype.createInstance = function() {
|
GameLib.Renderer.D3.prototype.createInstance = function() {
|
||||||
|
|
||||||
if (
|
if (
|
||||||
GameLib.Utils.UndefinedOrNull(this.canvas) ||
|
GameLib.Utils.UndefinedOrNull(this.canvas) ||
|
||||||
|
@ -210,13 +196,13 @@ GameLib.D3.Renderer.prototype.createInstance = function() {
|
||||||
1 - this.clearColor.a
|
1 - this.clearColor.a
|
||||||
);
|
);
|
||||||
|
|
||||||
GameLib.Component.prototype.createInstance.call(this);
|
GameLib.Renderer.prototype.createInstance.call(this);
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Update Renderer Instance
|
* Update Renderer.D3 Instance
|
||||||
*/
|
*/
|
||||||
GameLib.D3.Renderer.prototype.updateInstance = function(property) {
|
GameLib.Renderer.D3.prototype.updateInstance = function(property) {
|
||||||
|
|
||||||
if (!property) {
|
if (!property) {
|
||||||
throw new Error('no renderer property');
|
throw new Error('no renderer property');
|
||||||
|
@ -250,145 +236,145 @@ GameLib.D3.Renderer.prototype.updateInstance = function(property) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (property === 'autoClear') {
|
if (property === 'autoClear') {
|
||||||
this.instance.autoClear = this.autoClear;
|
this.instance.autoClear = this.autoClear;
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (property === 'autoClearColor') {
|
|
||||||
this.instance.autoClearColor = this.autoClearColor;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (property === 'autoClearDepth') {
|
|
||||||
this.instance.autoClearDepth = this.autoClearDepth;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (property === 'autoClearStencil') {
|
|
||||||
this.instance.autoClearStencil = this.autoClearStencil;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (property === 'gammaFactor') {
|
|
||||||
this.instance.gammaFactor = this.gammaFactor;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (property === 'gammaInput') {
|
|
||||||
this.instance.gammaInput = this.gammaInput;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (property === 'gammaOutput') {
|
|
||||||
this.instance.gammaOutput = this.gammaOutput;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (property === 'maxMorphTargets') {
|
|
||||||
this.instance.maxMorphTargets = this.maxMorphTargets;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (property === 'maxMorphNormals') {
|
|
||||||
this.instance.maxMorphNormals = this.maxMorphNormals;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (property === 'physicallyCorrectLights') {
|
|
||||||
this.instance.physicallyCorrectLights = this.physicallyCorrectLights;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (property === 'shadowMapEnabled') {
|
|
||||||
this.instance.shadowMap.enabled = this.shadowMapEnabled;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (property === 'shadowMapAutoUpdate') {
|
|
||||||
this.instance.shadowMap.autoUpdate = this.shadowMapAutoUpdate;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (property === 'shadowMapNeedsUpdate') {
|
|
||||||
this.instance.shadowMap.needsUpdate = this.shadowMapNeedsUpdate;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (property === 'shadowMapType') {
|
|
||||||
this.instance.shadowMap.type = this.shadowMapType;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (property === 'shadowMapRenderReverseSided') {
|
|
||||||
this.instance.shadowMap.renderReverseSided = this.shadowMapRenderReverseSided;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (property === 'shadowMapRenderSingleSided') {
|
|
||||||
this.instance.shadowMap.renderSingleSided = this.shadowMapRenderSingleSided;
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (property === 'sortObjects') {
|
if (property === 'autoClearColor') {
|
||||||
this.instance.sortObjects = this.sortObjects;
|
this.instance.autoClearColor = this.autoClearColor;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (property === 'toneMapping') {
|
if (property === 'autoClearDepth') {
|
||||||
this.instance.toneMapping = this.toneMapping;
|
this.instance.autoClearDepth = this.autoClearDepth;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (property === 'toneMappingExposure') {
|
if (property === 'autoClearStencil') {
|
||||||
this.instance.toneMappingExposure = this.toneMappingExposure;
|
this.instance.autoClearStencil = this.autoClearStencil;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (property === 'toneMappingWhitePoint') {
|
if (property === 'gammaFactor') {
|
||||||
this.instance.toneMappingWhitePoint = this.toneMappingWhitePoint;
|
this.instance.gammaFactor = this.gammaFactor;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (property === 'premultipliedAlpha') {
|
if (property === 'gammaInput') {
|
||||||
this.instance.premultipliedAlpha = this.premultipliedAlpha;
|
this.instance.gammaInput = this.gammaInput;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (property === 'premultipliedAlpha') {
|
if (property === 'gammaOutput') {
|
||||||
this.instance.premultipliedAlpha = this.premultipliedAlpha;
|
this.instance.gammaOutput = this.gammaOutput;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (property === 'antialias') {
|
if (property === 'maxMorphTargets') {
|
||||||
this.instance.antialias = this.antialias;
|
this.instance.maxMorphTargets = this.maxMorphTargets;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (property === 'stencil') {
|
if (property === 'maxMorphNormals') {
|
||||||
this.instance.stencil = this.stencil;
|
this.instance.maxMorphNormals = this.maxMorphNormals;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (property === 'preserveDrawingBuffer') {
|
if (property === 'physicallyCorrectLights') {
|
||||||
this.instance.preserveDrawingBuffer = this.preserveDrawingBuffer;
|
this.instance.physicallyCorrectLights = this.physicallyCorrectLights;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (property === 'depth') {
|
if (property === 'shadowMapEnabled') {
|
||||||
this.instance.depth = this.depth;
|
this.instance.shadowMap.enabled = this.shadowMapEnabled;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (property === 'logarithmicDepthBuffer') {
|
if (property === 'shadowMapAutoUpdate') {
|
||||||
this.instance.logarithmicDepthBuffer = this.logarithmicDepthBuffer;
|
this.instance.shadowMap.autoUpdate = this.shadowMapAutoUpdate;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (property === 'localClippingEnabled') {
|
if (property === 'shadowMapNeedsUpdate') {
|
||||||
this.instance.localClippingEnabled = this.localClippingEnabled;
|
this.instance.shadowMap.needsUpdate = this.shadowMapNeedsUpdate;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (property === 'shadowMapType') {
|
||||||
|
this.instance.shadowMap.type = this.shadowMapType;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (property === 'shadowMapRenderReverseSided') {
|
||||||
|
this.instance.shadowMap.renderReverseSided = this.shadowMapRenderReverseSided;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (property === 'shadowMapRenderSingleSided') {
|
||||||
|
this.instance.shadowMap.renderSingleSided = this.shadowMapRenderSingleSided;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (property === 'sortObjects') {
|
||||||
|
this.instance.sortObjects = this.sortObjects;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (property === 'toneMapping') {
|
||||||
|
this.instance.toneMapping = this.toneMapping;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (property === 'toneMappingExposure') {
|
||||||
|
this.instance.toneMappingExposure = this.toneMappingExposure;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (property === 'toneMappingWhitePoint') {
|
||||||
|
this.instance.toneMappingWhitePoint = this.toneMappingWhitePoint;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (property === 'premultipliedAlpha') {
|
||||||
|
this.instance.premultipliedAlpha = this.premultipliedAlpha;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (property === 'premultipliedAlpha') {
|
||||||
|
this.instance.premultipliedAlpha = this.premultipliedAlpha;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (property === 'antialias') {
|
||||||
|
this.instance.antialias = this.antialias;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (property === 'stencil') {
|
||||||
|
this.instance.stencil = this.stencil;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (property === 'preserveDrawingBuffer') {
|
||||||
|
this.instance.preserveDrawingBuffer = this.preserveDrawingBuffer;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (property === 'depth') {
|
||||||
|
this.instance.depth = this.depth;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (property === 'logarithmicDepthBuffer') {
|
||||||
|
this.instance.logarithmicDepthBuffer = this.logarithmicDepthBuffer;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (property === 'localClippingEnabled') {
|
||||||
|
this.instance.localClippingEnabled = this.localClippingEnabled;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (property === 'canvas') {
|
if (property === 'canvas') {
|
||||||
|
|
||||||
|
@ -438,13 +424,13 @@ GameLib.D3.Renderer.prototype.updateInstance = function(property) {
|
||||||
console.warn('todo: viewports change');
|
console.warn('todo: viewports change');
|
||||||
}
|
}
|
||||||
|
|
||||||
GameLib.Component.prototype.updateInstance.call(this, property);
|
GameLib.Renderer.prototype.updateInstance.call(this, property);
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Wrapper for clear()
|
* Wrapper for clear()
|
||||||
*/
|
*/
|
||||||
GameLib.D3.Renderer.prototype.clear = function() {
|
GameLib.Renderer.D3.prototype.clear = function() {
|
||||||
return this.instance.clear();
|
return this.instance.clear();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -453,7 +439,7 @@ GameLib.D3.Renderer.prototype.clear = function() {
|
||||||
* @param width
|
* @param width
|
||||||
* @param height
|
* @param height
|
||||||
*/
|
*/
|
||||||
GameLib.D3.Renderer.prototype.setSize = function(width, height) {
|
GameLib.Renderer.D3.prototype.setSize = function(width, height) {
|
||||||
|
|
||||||
this.instance.setSize(
|
this.instance.setSize(
|
||||||
this.width * width,
|
this.width * width,
|
||||||
|
@ -469,7 +455,7 @@ GameLib.D3.Renderer.prototype.setSize = function(width, height) {
|
||||||
* Convenience function to get size
|
* Convenience function to get size
|
||||||
* @returns {{width, height}}
|
* @returns {{width, height}}
|
||||||
*/
|
*/
|
||||||
GameLib.D3.Renderer.prototype.getSize = function() {
|
GameLib.Renderer.D3.prototype.getSize = function() {
|
||||||
return this.instance.getSize();
|
return this.instance.getSize();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -480,7 +466,7 @@ GameLib.D3.Renderer.prototype.getSize = function() {
|
||||||
* @param width
|
* @param width
|
||||||
* @param height
|
* @param height
|
||||||
*/
|
*/
|
||||||
GameLib.D3.Renderer.prototype.setViewport = function(
|
GameLib.Renderer.D3.prototype.setViewport = function(
|
||||||
x,
|
x,
|
||||||
y,
|
y,
|
||||||
width,
|
width,
|
||||||
|
@ -499,7 +485,7 @@ GameLib.D3.Renderer.prototype.setViewport = function(
|
||||||
* @param scene
|
* @param scene
|
||||||
* @param camera
|
* @param camera
|
||||||
*/
|
*/
|
||||||
GameLib.D3.Renderer.prototype.renderToTarget = function(scene, camera) {
|
GameLib.Renderer.D3.prototype.renderToTarget = function(scene, camera) {
|
||||||
|
|
||||||
this.instance.render(
|
this.instance.render(
|
||||||
scene.instance,
|
scene.instance,
|
||||||
|
@ -514,7 +500,7 @@ GameLib.D3.Renderer.prototype.renderToTarget = function(scene, camera) {
|
||||||
* @param scene
|
* @param scene
|
||||||
* @param camera
|
* @param camera
|
||||||
*/
|
*/
|
||||||
GameLib.D3.Renderer.prototype.render = function(scene, camera) {
|
GameLib.Renderer.D3.prototype.render = function(scene, camera) {
|
||||||
this.instance.render(
|
this.instance.render(
|
||||||
scene.instance,
|
scene.instance,
|
||||||
camera.instance
|
camera.instance
|
||||||
|
@ -524,15 +510,14 @@ GameLib.D3.Renderer.prototype.render = function(scene, camera) {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @returns {GameLib.D3.API.Renderer}
|
* @returns {GameLib.API.Renderer.D3}
|
||||||
*/
|
*/
|
||||||
GameLib.D3.Renderer.prototype.toApiObject = function() {
|
GameLib.Renderer.D3.prototype.toApiObject = function() {
|
||||||
|
|
||||||
var apiRenderer = new GameLib.D3.API.Renderer(
|
var apiRenderer = GameLib.Renderer.prototype.toApiObject.call(this);
|
||||||
this.id,
|
|
||||||
this.name,
|
var apiRendererD3 = new GameLib.API.Renderer.D3(
|
||||||
this.width,
|
apiRenderer,
|
||||||
this.height,
|
|
||||||
this.renderMode,
|
this.renderMode,
|
||||||
this.autoClear,
|
this.autoClear,
|
||||||
this.autoClearColor,
|
this.autoClearColor,
|
||||||
|
@ -562,7 +547,6 @@ GameLib.D3.Renderer.prototype.toApiObject = function() {
|
||||||
this.logarithmicDepthBuffer,
|
this.logarithmicDepthBuffer,
|
||||||
this.localClippingEnabled,
|
this.localClippingEnabled,
|
||||||
this.offset.toApiObject(),
|
this.offset.toApiObject(),
|
||||||
GameLib.Utils.IdOrNull(this.canvas),
|
|
||||||
GameLib.Utils.IdOrNull(this.renderTarget),
|
GameLib.Utils.IdOrNull(this.renderTarget),
|
||||||
this.clippingPlanes.map(
|
this.clippingPlanes.map(
|
||||||
function(clippingPlane){
|
function(clippingPlane){
|
||||||
|
@ -574,9 +558,8 @@ GameLib.D3.Renderer.prototype.toApiObject = function() {
|
||||||
function(viewport){
|
function(viewport){
|
||||||
return GameLib.Utils.IdOrNull(viewport);
|
return GameLib.Utils.IdOrNull(viewport);
|
||||||
}
|
}
|
||||||
),
|
)
|
||||||
GameLib.Utils.IdOrNull(this.parentEntity)
|
|
||||||
);
|
);
|
||||||
|
|
||||||
return apiRenderer;
|
return apiRendererD3;
|
||||||
};
|
};
|
|
@ -994,9 +994,9 @@ GameLib.System.GUI.prototype.buildControl = function(folder, componentTemplate,
|
||||||
object,
|
object,
|
||||||
property,
|
property,
|
||||||
{
|
{
|
||||||
'canvas': GameLib.D3.API.Renderer.MODE_CANVAS,
|
'canvas': GameLib.API.Renderer.MODE_CANVAS,
|
||||||
'target': GameLib.D3.API.Renderer.MODE_TARGET,
|
'target': GameLib.API.Renderer.MODE_TARGET,
|
||||||
'canvas and target': GameLib.D3.API.Renderer.MODE_CANVAS_AND_TARGET
|
'canvas and target': GameLib.API.Renderer.MODE_CANVAS_AND_TARGET
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
@ -1029,9 +1029,9 @@ GameLib.System.GUI.prototype.buildControl = function(folder, componentTemplate,
|
||||||
object,
|
object,
|
||||||
property,
|
property,
|
||||||
{
|
{
|
||||||
'basic': GameLib.D3.API.Renderer.SHADOW_MAP_TYPE_BASIC,
|
'basic': GameLib.API.Renderer.SHADOW_MAP_TYPE_BASIC,
|
||||||
'pcf': GameLib.D3.API.Renderer.SHADOW_MAP_TYPE_PCF,
|
'pcf': GameLib.API.Renderer.SHADOW_MAP_TYPE_PCF,
|
||||||
'pcf soft': GameLib.D3.API.Renderer.SHADOW_MAP_TYPE_PCF_SOFT
|
'pcf soft': GameLib.API.Renderer.SHADOW_MAP_TYPE_PCF_SOFT
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
@ -1041,10 +1041,10 @@ GameLib.System.GUI.prototype.buildControl = function(folder, componentTemplate,
|
||||||
object,
|
object,
|
||||||
property,
|
property,
|
||||||
{
|
{
|
||||||
'linear': GameLib.D3.API.Renderer.TONE_MAPPING_LINEAR,
|
'linear': GameLib.API.Renderer.TONE_MAPPING_LINEAR,
|
||||||
'reinhard': GameLib.D3.API.Renderer.TONE_MAPPING_REINHARD,
|
'reinhard': GameLib.API.Renderer.TONE_MAPPING_REINHARD,
|
||||||
'uncharted 2': GameLib.D3.API.Renderer.TONE_MAPPING_UNCHARTED_2,
|
'uncharted 2': GameLib.API.Renderer.TONE_MAPPING_UNCHARTED_2,
|
||||||
'cineon': GameLib.D3.API.Renderer.TONE_MAPPING_CINEON
|
'cineon': GameLib.API.Renderer.TONE_MAPPING_CINEON
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
@ -1195,6 +1195,17 @@ GameLib.System.GUI.prototype.buildControl = function(folder, componentTemplate,
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
} else if (property === 'rendererType') {
|
||||||
|
controllers.push(
|
||||||
|
folder.add(
|
||||||
|
object,
|
||||||
|
property,
|
||||||
|
{
|
||||||
|
'2D': GameLib.API.Renderer.RENDERER_TYPE_2D,
|
||||||
|
'3D': GameLib.API.Renderer.RENDERER_TYPE_3D
|
||||||
|
}
|
||||||
|
)
|
||||||
|
);
|
||||||
} else if (property === 'materialType') {
|
} else if (property === 'materialType') {
|
||||||
controllers.push(
|
controllers.push(
|
||||||
folder.add(
|
folder.add(
|
||||||
|
@ -1456,12 +1467,12 @@ GameLib.System.GUI.prototype.buildControl = function(folder, componentTemplate,
|
||||||
object,
|
object,
|
||||||
property,
|
property,
|
||||||
{
|
{
|
||||||
'none': GameLib.D3.API.Renderer.ASPECT_RATIO_NONE,
|
'none': GameLib.API.Renderer.ASPECT_RATIO_NONE,
|
||||||
'4:3 (1.3333)': GameLib.D3.API.Renderer.ASPECT_RATIO_4_3,
|
'4:3 (1.3333)': GameLib.API.Renderer.ASPECT_RATIO_4_3,
|
||||||
'3:2 (1.5)': GameLib.D3.API.Renderer.ASPECT_RATIO_3_2,
|
'3:2 (1.5)': GameLib.API.Renderer.ASPECT_RATIO_3_2,
|
||||||
'16:10 (1.6667)': GameLib.D3.API.Renderer.ASPECT_RATIO_16_10,
|
'16:10 (1.6667)': GameLib.API.Renderer.ASPECT_RATIO_16_10,
|
||||||
'17:10 (1.7)': GameLib.D3.API.Renderer.ASPECT_RATIO_17_10,
|
'17:10 (1.7)': GameLib.API.Renderer.ASPECT_RATIO_17_10,
|
||||||
'16:9 (1.7778)': GameLib.D3.API.Renderer.ASPECT_RATIO_16_9
|
'16:9 (1.7778)': GameLib.API.Renderer.ASPECT_RATIO_16_9
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
@ -1471,10 +1482,10 @@ GameLib.System.GUI.prototype.buildControl = function(folder, componentTemplate,
|
||||||
object,
|
object,
|
||||||
property,
|
property,
|
||||||
{
|
{
|
||||||
'none': GameLib.D3.API.Renderer.SCALE_MODE_NONE,
|
'none': GameLib.API.Renderer.SCALE_MODE_NONE,
|
||||||
'letterbox': GameLib.D3.API.Renderer.SCALE_MODE_LETTERBOX,
|
'letterbox': GameLib.API.Renderer.SCALE_MODE_LETTERBOX,
|
||||||
'zoom-bigger': GameLib.D3.API.Renderer.SCALE_MODE_ZOOM_TO_BIGGER,
|
'zoom-bigger': GameLib.API.Renderer.SCALE_MODE_ZOOM_TO_BIGGER,
|
||||||
'non-uniform': GameLib.D3.API.Renderer.SCALE_MODE_NON_UNIFORM
|
'non-uniform': GameLib.API.Renderer.SCALE_MODE_NON_UNIFORM
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
|
@ -31,6 +31,7 @@ GameLib.System.Linking = function(
|
||||||
this.componentClonedSubscription = null;
|
this.componentClonedSubscription = null;
|
||||||
this.registerDependenciesSubscription = null;
|
this.registerDependenciesSubscription = null;
|
||||||
this.componentRemoveSubscription = null;
|
this.componentRemoveSubscription = null;
|
||||||
|
this.resolveDependenciesSubscription = null;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Parents
|
* Parents
|
||||||
|
@ -96,6 +97,11 @@ GameLib.System.Linking.prototype.start = function() {
|
||||||
this.removeComponent
|
this.removeComponent
|
||||||
);
|
);
|
||||||
|
|
||||||
|
this.resolveDependenciesSubscription = this.subscribe(
|
||||||
|
GameLib.Event.RESOLVE_DEPENDENCIES,
|
||||||
|
this.resolveDependencies
|
||||||
|
);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Parents
|
* Parents
|
||||||
*/
|
*/
|
||||||
|
@ -196,7 +202,9 @@ GameLib.System.Linking.prototype.link = function(component, data) {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
GameLib.System.Linking.prototype.resolveDependencies = function(component) {
|
GameLib.System.Linking.prototype.resolveDependencies = function(data) {
|
||||||
|
|
||||||
|
var component = data.component;
|
||||||
|
|
||||||
if (!component.loaded) {
|
if (!component.loaded) {
|
||||||
/**
|
/**
|
||||||
|
@ -336,34 +344,6 @@ GameLib.System.Linking.prototype.resolveDependencies = function(component) {
|
||||||
this.resolved = [];
|
this.resolved = [];
|
||||||
|
|
||||||
}
|
}
|
||||||
//else {
|
|
||||||
|
|
||||||
// var keys = Object.keys(this.dependencies);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* And this is it - we need to check if the dependencies array contains any 'resolved' components -
|
|
||||||
* If it does - resolve the dependencies of this newly 'resolved' component
|
|
||||||
*/
|
|
||||||
// this.resolved = this.resolved.reduce(
|
|
||||||
//
|
|
||||||
// function(result, component) {
|
|
||||||
//
|
|
||||||
// if (keys.indexOf(component.id) !== -1) {
|
|
||||||
// /**
|
|
||||||
// * We found a resolved component - which is a dependency for another component.
|
|
||||||
// * Resolve the dependencies of this component - this is recursive and should be done carefully
|
|
||||||
// */
|
|
||||||
// this.resolveDependencies(component);
|
|
||||||
// } else {
|
|
||||||
// result.push(component);
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// return result;
|
|
||||||
//
|
|
||||||
// }.bind(this),
|
|
||||||
// []
|
|
||||||
// );
|
|
||||||
//}
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -453,7 +433,7 @@ GameLib.System.Linking.prototype.componentCreated = function(data) {
|
||||||
/**
|
/**
|
||||||
* Resolve any dependencies to this component
|
* Resolve any dependencies to this component
|
||||||
*/
|
*/
|
||||||
this.resolveDependencies(component);
|
this.resolveDependencies({component : component});
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -579,8 +559,6 @@ GameLib.System.Linking.prototype.instanceCloned = function(data) {
|
||||||
|
|
||||||
GameLib.System.Linking.prototype.instanceCreated = function(data) {
|
GameLib.System.Linking.prototype.instanceCreated = function(data) {
|
||||||
|
|
||||||
this.resolveDependencies(data.component);
|
|
||||||
|
|
||||||
if (data.component instanceof GameLib.Image) {
|
if (data.component instanceof GameLib.Image) {
|
||||||
/**
|
/**
|
||||||
* Find all textures which use this image
|
* Find all textures which use this image
|
||||||
|
@ -883,6 +861,7 @@ GameLib.System.Linking.prototype.stop = function() {
|
||||||
this.componentClonedSubscription.remove();
|
this.componentClonedSubscription.remove();
|
||||||
this.registerDependenciesSubscription.remove();
|
this.registerDependenciesSubscription.remove();
|
||||||
this.componentRemoveSubscription.remove();
|
this.componentRemoveSubscription.remove();
|
||||||
|
this.resolveDependenciesSubscription.remove();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Parents
|
* Parents
|
||||||
|
|
|
@ -350,7 +350,7 @@ GameLib.System.Render.prototype.instanceCreated = function(data) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (data.component instanceof GameLib.D3.Renderer) {
|
if (data.component instanceof GameLib.Renderer) {
|
||||||
console.log('adding renderer to render system');
|
console.log('adding renderer to render system');
|
||||||
this.renderers.push(data.component);
|
this.renderers.push(data.component);
|
||||||
}
|
}
|
||||||
|
@ -477,6 +477,15 @@ GameLib.System.Render.prototype.replaceComponent = function(data) {
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (
|
||||||
|
data.current instanceof GameLib.Renderer &&
|
||||||
|
data.replacement instanceof GameLib.Renderer
|
||||||
|
) {
|
||||||
|
data.replacement.canvas.remove();
|
||||||
|
data.replacement.canvas = data.current.canvas;
|
||||||
|
data.current.canvas = null;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -509,7 +518,7 @@ GameLib.System.Render.prototype.removeComponent = function(data) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (data.component instanceof GameLib.D3.Renderer) {
|
if (data.component instanceof GameLib.Renderer) {
|
||||||
|
|
||||||
index = this.renderers.indexOf(data.component);
|
index = this.renderers.indexOf(data.component);
|
||||||
|
|
||||||
|
@ -600,6 +609,10 @@ GameLib.System.Render.prototype.render = function(data) {
|
||||||
|
|
||||||
var renderer = configuration.activeRenderer;
|
var renderer = configuration.activeRenderer;
|
||||||
|
|
||||||
|
if (renderer instanceof GameLib.Renderer.D2) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
var scenes = configuration.activeScenes;
|
var scenes = configuration.activeScenes;
|
||||||
|
|
||||||
var camera = configuration.activeCamera;
|
var camera = configuration.activeCamera;
|
||||||
|
@ -625,8 +638,8 @@ GameLib.System.Render.prototype.render = function(data) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (
|
if (
|
||||||
renderer.renderMode === GameLib.D3.API.Renderer.MODE_TARGET ||
|
renderer.renderMode === GameLib.API.Renderer.MODE_TARGET ||
|
||||||
renderer.renderMode === GameLib.D3.API.Renderer.MODE_CANVAS_AND_TARGET
|
renderer.renderMode === GameLib.API.Renderer.MODE_CANVAS_AND_TARGET
|
||||||
) {
|
) {
|
||||||
if (!renderer.renderTarget) {
|
if (!renderer.renderTarget) {
|
||||||
console.warn('no render renderTarget');
|
console.warn('no render renderTarget');
|
||||||
|
@ -685,8 +698,8 @@ GameLib.System.Render.prototype.render = function(data) {
|
||||||
|
|
||||||
function (scene) {
|
function (scene) {
|
||||||
|
|
||||||
if (renderer.renderMode === GameLib.D3.API.Renderer.MODE_TARGET ||
|
if (renderer.renderMode === GameLib.API.Renderer.MODE_TARGET ||
|
||||||
renderer.renderMode === GameLib.D3.API.Renderer.MODE_CANVAS_AND_TARGET) {
|
renderer.renderMode === GameLib.API.Renderer.MODE_CANVAS_AND_TARGET) {
|
||||||
|
|
||||||
renderer.renderToTarget(
|
renderer.renderToTarget(
|
||||||
scene,
|
scene,
|
||||||
|
@ -695,8 +708,8 @@ GameLib.System.Render.prototype.render = function(data) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (renderer.renderMode === GameLib.D3.API.Renderer.MODE_CANVAS ||
|
if (renderer.renderMode === GameLib.API.Renderer.MODE_CANVAS ||
|
||||||
renderer.renderMode === GameLib.D3.API.Renderer.MODE_CANVAS_AND_TARGET) {
|
renderer.renderMode === GameLib.API.Renderer.MODE_CANVAS_AND_TARGET) {
|
||||||
|
|
||||||
if (configuration.enableEffect) {
|
if (configuration.enableEffect) {
|
||||||
effect.render(scene, camera);
|
effect.render(scene, camera);
|
||||||
|
|
Loading…
Reference in New Issue