diff --git a/packages/core/src/batch/BatchPluginFactory.js b/packages/core/src/batch/BatchPluginFactory.js new file mode 100644 index 0000000..5dd645a --- /dev/null +++ b/packages/core/src/batch/BatchPluginFactory.js @@ -0,0 +1,108 @@ +import BatchShaderGenerator from './BatchShaderGenerator'; +import BatchGeometry from './BatchGeometry'; +import AbstractBatchRenderer from './AbstractBatchRenderer'; + +import defaultVertex from './texture.vert'; +import defaultFragment from './texture.frag'; + +/** + * @class + * @memberof PIXI + * @hideconstructor + */ +export default class BatchPluginFactory +{ + /** + * Create a new BatchRenderer plugin for Renderer. this convenience can provide an easy way + * to extend BatchRenderer with all the necessary pieces. + * @example + * const fragment = ` + * varying vec2 vTextureCoord; + * varying vec4 vColor; + * varying float vTextureId; + * uniform sampler2D uSamplers[%count%]; + * + * void main(void){ + * vec4 color; + * %forloop% + * gl_FragColor = vColor * vec4(color.a - color.rgb, color.a); + * } + * `; + * const InvertBatchRenderer = PIXI.BatchPluginFactory.create({ fragment }); + * PIXI.Renderer.registerPlugin('invert', InvertBatchRenderer); + * const sprite = new PIXI.Sprite(); + * sprite.pluginName = 'invert'; + * + * @static + * @param {object} [options] + * @param {object} [option.attributeDefinitions=Array] - + * Attribute definitions, see PIXI.AbstractBatchRenderer#attributeDefinitions + * @param {string} [options.vertex=PIXI.BatchPluginFactory.defaultVertexSrc] - Vertex shader source + * @param {string} [options.fragment=PIXI.BatchPluginFactory.defaultFragmentTemplate] - Fragment shader template + * @param {number} [options.vertexSize=6] - Vertex size + * @param {object} [options.geometryClass=PIXI.BatchGeometry] + * @return {PIXI.BatchRenderer} New batch renderer plugin. + */ + static create(options) + { + const { + attributeDefinitions, + fragment, + geometryClass, + vertex, + } = Object.assign({ + attributeDefinitions: [ + { property: 'vertexData', name: 'aTexturePosition', size: 2 }, + { property: 'uvs', name: 'aTextureCoord', size: 2 }, + 'aColor', // built-in attribute + 'aTextureId', + ], + vertex: defaultVertex, + fragment: defaultFragment, + geometryClass: BatchGeometry, + }, options); + + const vertexSize = AbstractBatchRenderer.vertexSizeOf(attributeDefinitions); + + return class BatchPlugin extends AbstractBatchRenderer + { + constructor(renderer) + { + super(renderer); + + this.attributeDefinitions = attributeDefinitions; + this.shaderGenerator = new BatchShaderGenerator(vertex, fragment); + this.geometryClass = geometryClass; + this.vertexSize = vertexSize; + } + }; + } + + /** + * The default vertex shader source + * + * @static + * @type {string} + * @constant + */ + static get defaultVertexSrc() + { + return defaultVertex; + } + + /** + * The default fragment shader source + * + * @static + * @type {string} + * @constant + */ + static get defaultFragmentTemplate() + { + return defaultFragment; + } +} + +// Setup the default BatchRenderer plugin, this is what +// we'll actually export at the root level +export const BatchRenderer = BatchPluginFactory.create(); diff --git a/packages/core/src/batch/BatchPluginFactory.js b/packages/core/src/batch/BatchPluginFactory.js new file mode 100644 index 0000000..5dd645a --- /dev/null +++ b/packages/core/src/batch/BatchPluginFactory.js @@ -0,0 +1,108 @@ +import BatchShaderGenerator from './BatchShaderGenerator'; +import BatchGeometry from './BatchGeometry'; +import AbstractBatchRenderer from './AbstractBatchRenderer'; + +import defaultVertex from './texture.vert'; +import defaultFragment from './texture.frag'; + +/** + * @class + * @memberof PIXI + * @hideconstructor + */ +export default class BatchPluginFactory +{ + /** + * Create a new BatchRenderer plugin for Renderer. this convenience can provide an easy way + * to extend BatchRenderer with all the necessary pieces. + * @example + * const fragment = ` + * varying vec2 vTextureCoord; + * varying vec4 vColor; + * varying float vTextureId; + * uniform sampler2D uSamplers[%count%]; + * + * void main(void){ + * vec4 color; + * %forloop% + * gl_FragColor = vColor * vec4(color.a - color.rgb, color.a); + * } + * `; + * const InvertBatchRenderer = PIXI.BatchPluginFactory.create({ fragment }); + * PIXI.Renderer.registerPlugin('invert', InvertBatchRenderer); + * const sprite = new PIXI.Sprite(); + * sprite.pluginName = 'invert'; + * + * @static + * @param {object} [options] + * @param {object} [option.attributeDefinitions=Array] - + * Attribute definitions, see PIXI.AbstractBatchRenderer#attributeDefinitions + * @param {string} [options.vertex=PIXI.BatchPluginFactory.defaultVertexSrc] - Vertex shader source + * @param {string} [options.fragment=PIXI.BatchPluginFactory.defaultFragmentTemplate] - Fragment shader template + * @param {number} [options.vertexSize=6] - Vertex size + * @param {object} [options.geometryClass=PIXI.BatchGeometry] + * @return {PIXI.BatchRenderer} New batch renderer plugin. + */ + static create(options) + { + const { + attributeDefinitions, + fragment, + geometryClass, + vertex, + } = Object.assign({ + attributeDefinitions: [ + { property: 'vertexData', name: 'aTexturePosition', size: 2 }, + { property: 'uvs', name: 'aTextureCoord', size: 2 }, + 'aColor', // built-in attribute + 'aTextureId', + ], + vertex: defaultVertex, + fragment: defaultFragment, + geometryClass: BatchGeometry, + }, options); + + const vertexSize = AbstractBatchRenderer.vertexSizeOf(attributeDefinitions); + + return class BatchPlugin extends AbstractBatchRenderer + { + constructor(renderer) + { + super(renderer); + + this.attributeDefinitions = attributeDefinitions; + this.shaderGenerator = new BatchShaderGenerator(vertex, fragment); + this.geometryClass = geometryClass; + this.vertexSize = vertexSize; + } + }; + } + + /** + * The default vertex shader source + * + * @static + * @type {string} + * @constant + */ + static get defaultVertexSrc() + { + return defaultVertex; + } + + /** + * The default fragment shader source + * + * @static + * @type {string} + * @constant + */ + static get defaultFragmentTemplate() + { + return defaultFragment; + } +} + +// Setup the default BatchRenderer plugin, this is what +// we'll actually export at the root level +export const BatchRenderer = BatchPluginFactory.create(); diff --git a/packages/core/src/batch/BatchRendererFactory.js b/packages/core/src/batch/BatchRendererFactory.js deleted file mode 100644 index e0bb1bc..0000000 --- a/packages/core/src/batch/BatchRendererFactory.js +++ /dev/null @@ -1,108 +0,0 @@ -import BatchShaderGenerator from './BatchShaderGenerator'; -import BatchGeometry from './BatchGeometry'; -import AbstractBatchRenderer from './AbstractBatchRenderer'; - -import defaultVertex from './texture.vert'; -import defaultFragment from './texture.frag'; - -/** - * @class - * @memberof PIXI - * @hideconstructor - */ -export default class BatchRendererFactory -{ - /** - * Create a new BatchRenderer plugin for Renderer. this convenience can provide an easy way - * to extend BatchRenderer with all the necessary pieces. - * @example - * const fragment = ` - * varying vec2 vTextureCoord; - * varying vec4 vColor; - * varying float vTextureId; - * uniform sampler2D uSamplers[%count%]; - * - * void main(void){ - * vec4 color; - * %forloop% - * gl_FragColor = vColor * vec4(color.a - color.rgb, color.a); - * } - * `; - * const InvertBatchRenderer = PIXI.BatchPluginFactory.create({ fragment }); - * PIXI.Renderer.registerPlugin('invert', InvertBatchRenderer); - * const sprite = new PIXI.Sprite(); - * sprite.pluginName = 'invert'; - * - * @static - * @param {object} [options] - * @param {object} [option.attributeDefinitions=Array] - - * Attribute definitions, see PIXI.AbstractBatchRenderer#attributeDefinitions - * @param {string} [options.vertex=PIXI.BatchPluginFactory.defaultVertexSrc] - Vertex shader source - * @param {string} [options.fragment=PIXI.BatchPluginFactory.defaultFragmentTemplate] - Fragment shader template - * @param {number} [options.vertexSize=6] - Vertex size - * @param {object} [options.geometryClass=PIXI.BatchGeometry] - * @return {PIXI.BatchRenderer} New batch renderer plugin. - */ - static create(options) - { - const { - attributeDefinitions, - fragment, - geometryClass, - vertex, - } = Object.assign({ - attributeDefinitions: [ - { property: 'vertexData', name: 'aTexturePosition', size: 2 }, - { property: 'uvs', name: 'aTextureCoord', size: 2 }, - 'aColor', // built-in attribute - 'aTextureId', - ], - vertex: defaultVertex, - fragment: defaultFragment, - geometryClass: BatchGeometry, - }, options); - - const vertexSize = AbstractBatchRenderer.vertexSizeOf(attributeDefinitions); - - return class BatchPlugin extends AbstractBatchRenderer - { - constructor(renderer) - { - super(renderer); - - this.attributeDefinitions = attributeDefinitions; - this.shaderGenerator = new BatchShaderGenerator(vertex, fragment); - this.geometryClass = geometryClass; - this.vertexSize = vertexSize; - } - }; - } - - /** - * The default vertex shader source - * - * @static - * @type {string} - * @constant - */ - static get defaultVertexSrc() - { - return defaultVertex; - } - - /** - * The default fragment shader source - * - * @static - * @type {string} - * @constant - */ - static get defaultFragmentTemplate() - { - return defaultFragment; - } -} - -// Setup the default BatchRenderer plugin, this is what -// we'll actually export at the root level -export const BatchRenderer = BatchRendererFactory.create(); diff --git a/packages/core/src/batch/BatchPluginFactory.js b/packages/core/src/batch/BatchPluginFactory.js new file mode 100644 index 0000000..5dd645a --- /dev/null +++ b/packages/core/src/batch/BatchPluginFactory.js @@ -0,0 +1,108 @@ +import BatchShaderGenerator from './BatchShaderGenerator'; +import BatchGeometry from './BatchGeometry'; +import AbstractBatchRenderer from './AbstractBatchRenderer'; + +import defaultVertex from './texture.vert'; +import defaultFragment from './texture.frag'; + +/** + * @class + * @memberof PIXI + * @hideconstructor + */ +export default class BatchPluginFactory +{ + /** + * Create a new BatchRenderer plugin for Renderer. this convenience can provide an easy way + * to extend BatchRenderer with all the necessary pieces. + * @example + * const fragment = ` + * varying vec2 vTextureCoord; + * varying vec4 vColor; + * varying float vTextureId; + * uniform sampler2D uSamplers[%count%]; + * + * void main(void){ + * vec4 color; + * %forloop% + * gl_FragColor = vColor * vec4(color.a - color.rgb, color.a); + * } + * `; + * const InvertBatchRenderer = PIXI.BatchPluginFactory.create({ fragment }); + * PIXI.Renderer.registerPlugin('invert', InvertBatchRenderer); + * const sprite = new PIXI.Sprite(); + * sprite.pluginName = 'invert'; + * + * @static + * @param {object} [options] + * @param {object} [option.attributeDefinitions=Array] - + * Attribute definitions, see PIXI.AbstractBatchRenderer#attributeDefinitions + * @param {string} [options.vertex=PIXI.BatchPluginFactory.defaultVertexSrc] - Vertex shader source + * @param {string} [options.fragment=PIXI.BatchPluginFactory.defaultFragmentTemplate] - Fragment shader template + * @param {number} [options.vertexSize=6] - Vertex size + * @param {object} [options.geometryClass=PIXI.BatchGeometry] + * @return {PIXI.BatchRenderer} New batch renderer plugin. + */ + static create(options) + { + const { + attributeDefinitions, + fragment, + geometryClass, + vertex, + } = Object.assign({ + attributeDefinitions: [ + { property: 'vertexData', name: 'aTexturePosition', size: 2 }, + { property: 'uvs', name: 'aTextureCoord', size: 2 }, + 'aColor', // built-in attribute + 'aTextureId', + ], + vertex: defaultVertex, + fragment: defaultFragment, + geometryClass: BatchGeometry, + }, options); + + const vertexSize = AbstractBatchRenderer.vertexSizeOf(attributeDefinitions); + + return class BatchPlugin extends AbstractBatchRenderer + { + constructor(renderer) + { + super(renderer); + + this.attributeDefinitions = attributeDefinitions; + this.shaderGenerator = new BatchShaderGenerator(vertex, fragment); + this.geometryClass = geometryClass; + this.vertexSize = vertexSize; + } + }; + } + + /** + * The default vertex shader source + * + * @static + * @type {string} + * @constant + */ + static get defaultVertexSrc() + { + return defaultVertex; + } + + /** + * The default fragment shader source + * + * @static + * @type {string} + * @constant + */ + static get defaultFragmentTemplate() + { + return defaultFragment; + } +} + +// Setup the default BatchRenderer plugin, this is what +// we'll actually export at the root level +export const BatchRenderer = BatchPluginFactory.create(); diff --git a/packages/core/src/batch/BatchRendererFactory.js b/packages/core/src/batch/BatchRendererFactory.js deleted file mode 100644 index e0bb1bc..0000000 --- a/packages/core/src/batch/BatchRendererFactory.js +++ /dev/null @@ -1,108 +0,0 @@ -import BatchShaderGenerator from './BatchShaderGenerator'; -import BatchGeometry from './BatchGeometry'; -import AbstractBatchRenderer from './AbstractBatchRenderer'; - -import defaultVertex from './texture.vert'; -import defaultFragment from './texture.frag'; - -/** - * @class - * @memberof PIXI - * @hideconstructor - */ -export default class BatchRendererFactory -{ - /** - * Create a new BatchRenderer plugin for Renderer. this convenience can provide an easy way - * to extend BatchRenderer with all the necessary pieces. - * @example - * const fragment = ` - * varying vec2 vTextureCoord; - * varying vec4 vColor; - * varying float vTextureId; - * uniform sampler2D uSamplers[%count%]; - * - * void main(void){ - * vec4 color; - * %forloop% - * gl_FragColor = vColor * vec4(color.a - color.rgb, color.a); - * } - * `; - * const InvertBatchRenderer = PIXI.BatchPluginFactory.create({ fragment }); - * PIXI.Renderer.registerPlugin('invert', InvertBatchRenderer); - * const sprite = new PIXI.Sprite(); - * sprite.pluginName = 'invert'; - * - * @static - * @param {object} [options] - * @param {object} [option.attributeDefinitions=Array] - - * Attribute definitions, see PIXI.AbstractBatchRenderer#attributeDefinitions - * @param {string} [options.vertex=PIXI.BatchPluginFactory.defaultVertexSrc] - Vertex shader source - * @param {string} [options.fragment=PIXI.BatchPluginFactory.defaultFragmentTemplate] - Fragment shader template - * @param {number} [options.vertexSize=6] - Vertex size - * @param {object} [options.geometryClass=PIXI.BatchGeometry] - * @return {PIXI.BatchRenderer} New batch renderer plugin. - */ - static create(options) - { - const { - attributeDefinitions, - fragment, - geometryClass, - vertex, - } = Object.assign({ - attributeDefinitions: [ - { property: 'vertexData', name: 'aTexturePosition', size: 2 }, - { property: 'uvs', name: 'aTextureCoord', size: 2 }, - 'aColor', // built-in attribute - 'aTextureId', - ], - vertex: defaultVertex, - fragment: defaultFragment, - geometryClass: BatchGeometry, - }, options); - - const vertexSize = AbstractBatchRenderer.vertexSizeOf(attributeDefinitions); - - return class BatchPlugin extends AbstractBatchRenderer - { - constructor(renderer) - { - super(renderer); - - this.attributeDefinitions = attributeDefinitions; - this.shaderGenerator = new BatchShaderGenerator(vertex, fragment); - this.geometryClass = geometryClass; - this.vertexSize = vertexSize; - } - }; - } - - /** - * The default vertex shader source - * - * @static - * @type {string} - * @constant - */ - static get defaultVertexSrc() - { - return defaultVertex; - } - - /** - * The default fragment shader source - * - * @static - * @type {string} - * @constant - */ - static get defaultFragmentTemplate() - { - return defaultFragment; - } -} - -// Setup the default BatchRenderer plugin, this is what -// we'll actually export at the root level -export const BatchRenderer = BatchRendererFactory.create(); diff --git a/packages/core/src/index.js b/packages/core/src/index.js index a778ec4..d4cb1fa 100644 --- a/packages/core/src/index.js +++ b/packages/core/src/index.js @@ -22,7 +22,7 @@ export { default as TextureUvs } from './textures/TextureUvs'; export { default as State } from './state/State'; export { default as ObjectRenderer } from './batch/ObjectRenderer'; -export { default as BatchRendererFactory, BatchRenderer } from './batch/BatchRendererFactory'; +export { default as BatchPluginFactory, BatchRenderer } from './batch/BatchPluginFactory'; export { default as BatchShaderGenerator } from './batch/BatchShaderGenerator'; export { default as BatchGeometry } from './batch/BatchGeometry'; export { default as BatchDrawCall } from './batch/BatchDrawCall'; diff --git a/packages/core/src/batch/BatchPluginFactory.js b/packages/core/src/batch/BatchPluginFactory.js new file mode 100644 index 0000000..5dd645a --- /dev/null +++ b/packages/core/src/batch/BatchPluginFactory.js @@ -0,0 +1,108 @@ +import BatchShaderGenerator from './BatchShaderGenerator'; +import BatchGeometry from './BatchGeometry'; +import AbstractBatchRenderer from './AbstractBatchRenderer'; + +import defaultVertex from './texture.vert'; +import defaultFragment from './texture.frag'; + +/** + * @class + * @memberof PIXI + * @hideconstructor + */ +export default class BatchPluginFactory +{ + /** + * Create a new BatchRenderer plugin for Renderer. this convenience can provide an easy way + * to extend BatchRenderer with all the necessary pieces. + * @example + * const fragment = ` + * varying vec2 vTextureCoord; + * varying vec4 vColor; + * varying float vTextureId; + * uniform sampler2D uSamplers[%count%]; + * + * void main(void){ + * vec4 color; + * %forloop% + * gl_FragColor = vColor * vec4(color.a - color.rgb, color.a); + * } + * `; + * const InvertBatchRenderer = PIXI.BatchPluginFactory.create({ fragment }); + * PIXI.Renderer.registerPlugin('invert', InvertBatchRenderer); + * const sprite = new PIXI.Sprite(); + * sprite.pluginName = 'invert'; + * + * @static + * @param {object} [options] + * @param {object} [option.attributeDefinitions=Array] - + * Attribute definitions, see PIXI.AbstractBatchRenderer#attributeDefinitions + * @param {string} [options.vertex=PIXI.BatchPluginFactory.defaultVertexSrc] - Vertex shader source + * @param {string} [options.fragment=PIXI.BatchPluginFactory.defaultFragmentTemplate] - Fragment shader template + * @param {number} [options.vertexSize=6] - Vertex size + * @param {object} [options.geometryClass=PIXI.BatchGeometry] + * @return {PIXI.BatchRenderer} New batch renderer plugin. + */ + static create(options) + { + const { + attributeDefinitions, + fragment, + geometryClass, + vertex, + } = Object.assign({ + attributeDefinitions: [ + { property: 'vertexData', name: 'aTexturePosition', size: 2 }, + { property: 'uvs', name: 'aTextureCoord', size: 2 }, + 'aColor', // built-in attribute + 'aTextureId', + ], + vertex: defaultVertex, + fragment: defaultFragment, + geometryClass: BatchGeometry, + }, options); + + const vertexSize = AbstractBatchRenderer.vertexSizeOf(attributeDefinitions); + + return class BatchPlugin extends AbstractBatchRenderer + { + constructor(renderer) + { + super(renderer); + + this.attributeDefinitions = attributeDefinitions; + this.shaderGenerator = new BatchShaderGenerator(vertex, fragment); + this.geometryClass = geometryClass; + this.vertexSize = vertexSize; + } + }; + } + + /** + * The default vertex shader source + * + * @static + * @type {string} + * @constant + */ + static get defaultVertexSrc() + { + return defaultVertex; + } + + /** + * The default fragment shader source + * + * @static + * @type {string} + * @constant + */ + static get defaultFragmentTemplate() + { + return defaultFragment; + } +} + +// Setup the default BatchRenderer plugin, this is what +// we'll actually export at the root level +export const BatchRenderer = BatchPluginFactory.create(); diff --git a/packages/core/src/batch/BatchRendererFactory.js b/packages/core/src/batch/BatchRendererFactory.js deleted file mode 100644 index e0bb1bc..0000000 --- a/packages/core/src/batch/BatchRendererFactory.js +++ /dev/null @@ -1,108 +0,0 @@ -import BatchShaderGenerator from './BatchShaderGenerator'; -import BatchGeometry from './BatchGeometry'; -import AbstractBatchRenderer from './AbstractBatchRenderer'; - -import defaultVertex from './texture.vert'; -import defaultFragment from './texture.frag'; - -/** - * @class - * @memberof PIXI - * @hideconstructor - */ -export default class BatchRendererFactory -{ - /** - * Create a new BatchRenderer plugin for Renderer. this convenience can provide an easy way - * to extend BatchRenderer with all the necessary pieces. - * @example - * const fragment = ` - * varying vec2 vTextureCoord; - * varying vec4 vColor; - * varying float vTextureId; - * uniform sampler2D uSamplers[%count%]; - * - * void main(void){ - * vec4 color; - * %forloop% - * gl_FragColor = vColor * vec4(color.a - color.rgb, color.a); - * } - * `; - * const InvertBatchRenderer = PIXI.BatchPluginFactory.create({ fragment }); - * PIXI.Renderer.registerPlugin('invert', InvertBatchRenderer); - * const sprite = new PIXI.Sprite(); - * sprite.pluginName = 'invert'; - * - * @static - * @param {object} [options] - * @param {object} [option.attributeDefinitions=Array] - - * Attribute definitions, see PIXI.AbstractBatchRenderer#attributeDefinitions - * @param {string} [options.vertex=PIXI.BatchPluginFactory.defaultVertexSrc] - Vertex shader source - * @param {string} [options.fragment=PIXI.BatchPluginFactory.defaultFragmentTemplate] - Fragment shader template - * @param {number} [options.vertexSize=6] - Vertex size - * @param {object} [options.geometryClass=PIXI.BatchGeometry] - * @return {PIXI.BatchRenderer} New batch renderer plugin. - */ - static create(options) - { - const { - attributeDefinitions, - fragment, - geometryClass, - vertex, - } = Object.assign({ - attributeDefinitions: [ - { property: 'vertexData', name: 'aTexturePosition', size: 2 }, - { property: 'uvs', name: 'aTextureCoord', size: 2 }, - 'aColor', // built-in attribute - 'aTextureId', - ], - vertex: defaultVertex, - fragment: defaultFragment, - geometryClass: BatchGeometry, - }, options); - - const vertexSize = AbstractBatchRenderer.vertexSizeOf(attributeDefinitions); - - return class BatchPlugin extends AbstractBatchRenderer - { - constructor(renderer) - { - super(renderer); - - this.attributeDefinitions = attributeDefinitions; - this.shaderGenerator = new BatchShaderGenerator(vertex, fragment); - this.geometryClass = geometryClass; - this.vertexSize = vertexSize; - } - }; - } - - /** - * The default vertex shader source - * - * @static - * @type {string} - * @constant - */ - static get defaultVertexSrc() - { - return defaultVertex; - } - - /** - * The default fragment shader source - * - * @static - * @type {string} - * @constant - */ - static get defaultFragmentTemplate() - { - return defaultFragment; - } -} - -// Setup the default BatchRenderer plugin, this is what -// we'll actually export at the root level -export const BatchRenderer = BatchRendererFactory.create(); diff --git a/packages/core/src/index.js b/packages/core/src/index.js index a778ec4..d4cb1fa 100644 --- a/packages/core/src/index.js +++ b/packages/core/src/index.js @@ -22,7 +22,7 @@ export { default as TextureUvs } from './textures/TextureUvs'; export { default as State } from './state/State'; export { default as ObjectRenderer } from './batch/ObjectRenderer'; -export { default as BatchRendererFactory, BatchRenderer } from './batch/BatchRendererFactory'; +export { default as BatchPluginFactory, BatchRenderer } from './batch/BatchPluginFactory'; export { default as BatchShaderGenerator } from './batch/BatchShaderGenerator'; export { default as BatchGeometry } from './batch/BatchGeometry'; export { default as BatchDrawCall } from './batch/BatchDrawCall'; diff --git a/packages/graphics/src/Graphics.js b/packages/graphics/src/Graphics.js index e807104..6299d32 100644 --- a/packages/graphics/src/Graphics.js +++ b/packages/graphics/src/Graphics.js @@ -158,6 +158,16 @@ this._transformID = -1; this.batchDirty = -1; + /** + * Plugin that is responsible for rendering this element. + * Allows to customize the rendering process without overriding the + * '_render' & '_renderCanvas' methods. + * + * @member {string} + * @default 'batch' + */ + this.pluginName = 'batch'; + // Set default this.tint = 0xFFFFFF; this.blendMode = BLEND_MODES.NORMAL; @@ -864,7 +874,7 @@ } } - renderer.batch.setObjectRenderer(renderer.plugins.batch); + renderer.batch.setObjectRenderer(renderer.plugins[this.pluginName]); if (this.batches.length) { @@ -877,7 +887,7 @@ batch.worldAlpha = this.worldAlpha * batch.alpha; - renderer.plugins.batch.render(batch); + renderer.plugins[this.pluginName].render(batch); } } }