wrapper for pixi.js renderer with automatic loop & clean/dirty settings
const Renderer = require('yy-renderer)
const renderer = new Renderer()
const sprite = renderer.addChild(new PIXI.Sprite(PIXI.Texture.WHITE))
sprite.tint = 0xff0000
sprite.width = sprite.height = 100
// starts renderer loop
renderer.start()
// do stuff
// sets renderer to dirty to update during next frame
renderer.dirty = true
https://davidfig.github.io/renderer/
npm i yy-renderer
/**
* Wrapper for a pixi.js Renderer
* @param {object} [options]
* @param {boolean} [options.alwaysRender=false] update renderer every update tick
* @param {number} [options.FPS=60] desired FPS for rendering (otherwise render on every tick)
*
* @param {HTMLCanvasElement} [options.canvas] place renderer in this canvas
* @param {HTMLElement} [options.parent=document.body] if no canvas is provided, use parent to provide parent for generated canvas otherwise uses document.body
* @param {object} [options.styles] apply these CSS styles to the div
*
* @param {number} [options.aspectRatio] resizing will maintain aspect ratio by ensuring that the smaller dimension fits
* @param {boolean} [options.autoresize=false] automatically calls resize during resize events
* @param {number} [options.color=0xffffff] background color in hex
*
* @param {boolean} [options.turnOffTicker] turn off PIXI.shared.ticker
* @param {boolean} [options.turnOffInteraction] turn off PIXI.Interaction manager (saves cycles)
*
* @param {boolean} [options.noWebGL=false] use the PIXI.CanvasRenderer instead of PIXI.WebGLRenderer
* @param {boolean} [options.antialias=true] turn on antialias if native antialias is not used, uses FXAA
* @param {boolean} [options.forceFXAA=false] forces FXAA antialiasing to be used over native. FXAA is faster, but may not always look as great
* @param {number} [options.resolution=window.devicePixelRatio] / device pixel ratio of the renderer (e.g., original retina is 2)
* @param {boolean} [options.clearBeforeRender=true] sets if the CanvasRenderer will clear the canvas or before the render pass. If you wish to set this to false, you *must* set preserveDrawingBuffer to `true`.
* @param {boolean} [options.preserveDrawingBuffer=false] enables drawing buffer preservation, enable this if you need to call toDataUrl on the webgl context.
* @param {boolean} [options.roundPixels=false] if true PIXI will Math.floor() x/y values when rendering, stopping pixel interpolation
*
* @param {boolean|string} [options.debug] false, true, or some combination of 'fps', 'dirty', and 'count' (e.g., 'count-dirty' or 'dirty')
* @param {object} [options.fpsOptions] options from yy-fps (https://github.com/davidfig/fps)
*
* @param {number} [options.maxFrameTime=1000/60] maximum time in milliseconds for a frame
* @param {object} [options.pauseOnBlur] pause loop when app loses focus, start it when app regains focus
*
* @event each(elapsed, Loop, elapsedInLoop)
* @event start(Loop)
* @event stop(Loop)
*/
constructor(options)
/**
* create FPS meter and render indicator
* @param {object} options
*/
createDebug(options)
/**
* immediately render without checking dirty flag
*/
render()
/**
* counts visible objects
*/
countObjects()
/**
* sets the background color
* @param {string} color in CSS format
*/
background(color)
/**
* adds object to stage
* @param {PIXI.DisplayObject} object
* @param {number} [to] index to add
*/
add(object, to)
/**
* alias for add
* @param {PIXI.DisplayObject} object
*/
addChild(object)
/**
* alias for add
* @param {PIXI.DisplayObject} object
* @param {number} to - index to add
*/
addChildTo(object, to)
/**
* remove child from stage
* @param {PIXI.DisplayObject} object
*/
removeChild(object)
/**
* clears the stage
*/
clear()
/**
* resize
* @param {boolean} [force] resize, even if cached width/height remain unchanged
*/
resize(force)
/**
* returns the smaller of the width/height based
* @return {number}
*/
dimensionSmall()
/**
* returns the larger of the width/height based
* @return {number}
*/
dimensionBig()
/**
* getter/setter to change desired FPS of renderer
*/
get fps()
/**
* Add a listener for a given event to yy-loop
* @param {(String|Symbol)} event The event name.
* @param {Function} fn The listener function.
* @param {*} [context=this] The context to invoke the listener with.
* @returns {EventEmitter} `this`.
*/
on()
/**
* Add a one-time listener for a given event to yy-loop
* @param {(String|Symbol)} event The event name.
* @param {Function} fn The listener function.
* @param {*} [context=this] The context to invoke the listener with.
* @returns {EventEmitter} `this`.
* @public
*/
once()
/**
* start the internal loop
* @returns {Renderer} this
*/
start()
/**
* stop the internal loop
* @inherited from yy-loop
* @returns {Renderer} this
*/
stop()
MIT License
(c) 2017 YOPEY YOPEY LLC by David Figatner