add freezeAttributes argument to GrimoireInterface#registerNode
[x] Implementation
When you add new node just modifying default value of node. You might needs to prevent that attribute modified.
Assume you needs to add <cube> that is mostly same as <mesh/>. But just modifying default value of geometry attribute. You might notice that if user modified geometry attribute manually, that makes that node not rendering cube mesh.
New feature included in registerNode is the last attribute of that method. If developer registered new node with this attribute, user can not interact with goml file and javascript API.
Component#getAttribute should thorw an error if the specified attribute was not found
[x] Implementation
NodeInterface#addChildByName should receive optional components
[x] Implementation
fundamental(Renderer)
Migrate math related converters into 'grimoirejs-math'
[x] Implementation
Implement technique feature in material
The term Technique is same as HLSL. Users now can declare technique in material.
And technique attribute of renderer-XXX would accept the string specyfing which techhnique should be used.
[x] Implementation
Refactor materials
For separating sort parser in future, parsing and instanciating shaders should clearly separated.
[x] Implementation
By this refactoring, sort syntax would change a little.
@Pass
// some shaders
@Pass should have { and } to specify the region of pass.
@Pass{
// some shader
}
NOTE: this is just for refactoring, but including breaking change
Core(grimoirejs)
implement
GrimoireInterface#overrideNodeDeclaration
There was some cases needs to overrides default component set or values of node declaration.
when you add some manager for every tree, adding new default component to
<goml>
is fast way.When you add new shading base technique such as
forward-shading
ordeferred-shading
, you may needs to override default value formaterial
attribute.Declaration
add
freezeAttributes
argument toGrimoireInterface#registerNode
When you add new node just modifying default value of node. You might needs to prevent that attribute modified.
Assume you needs to add
<cube>
that is mostly same as<mesh/>
. But just modifying default value ofgeometry
attribute. You might notice that if user modifiedgeometry
attribute manually, that makes that node not rendering cube mesh.Declaration
New feature included in
registerNode
is the last attribute of that method. If developer registered new node with this attribute, user can not interact with goml file and javascript API.implement
GomlNode#findComponentInAncesotor
Declaration
Removed deprecated API
[x] Implementation
GomlNode#delete (use GomlNode#remove alternatively)
Add missed method
GomlNode#removeComponent
Component#getAttribute
should thorw an error if the specified attribute was not foundNodeInterface#addChildByName
should receive optional componentsfundamental(Renderer)
Migrate math related converters into 'grimoirejs-math'
Implement
technique
feature in materialThe term
Technique
is same as HLSL. Users now can declare technique in material. Andtechnique
attribute ofrenderer-XXX
would accept the string specyfing which techhnique should be used.Refactor materials
For separating
sort
parser in future,parsing
andinstanciating shaders
should clearly separated.By this refactoring,
sort
syntax would change a little.@Pass should have
{
and}
to specify the region of pass.NOTE: this is just for refactoring, but including breaking change