{"id":20596045,"url":"https://github.com/davidfig/renderer","last_synced_at":"2025-04-14T23:44:04.042Z","repository":{"id":57404930,"uuid":"62525423","full_name":"davidfig/renderer","owner":"davidfig","description":"wrapper for pixi.js renderer with automatic loop \u0026 clean/dirty settings ","archived":false,"fork":false,"pushed_at":"2017-12-21T03:36:45.000Z","size":2786,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-28T11:51:08.427Z","etag":null,"topics":["dirty","game","loop","pixi","renderer"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/davidfig.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-07-04T02:21:44.000Z","updated_at":"2021-02-19T17:53:20.000Z","dependencies_parsed_at":"2022-09-03T19:31:20.292Z","dependency_job_id":null,"html_url":"https://github.com/davidfig/renderer","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidfig%2Frenderer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidfig%2Frenderer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidfig%2Frenderer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidfig%2Frenderer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/davidfig","download_url":"https://codeload.github.com/davidfig/renderer/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248252691,"owners_count":21072701,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dirty","game","loop","pixi","renderer"],"created_at":"2024-11-16T08:14:53.701Z","updated_at":"2025-04-14T23:44:04.028Z","avatar_url":"https://github.com/davidfig.png","language":"JavaScript","readme":"## renderer.js\nwrapper for pixi.js renderer with automatic loop \u0026 clean/dirty settings \n\n## simple example\n```\n    const Renderer = require('yy-renderer)\n\n    const renderer = new Renderer()\n\n    const sprite = renderer.addChild(new PIXI.Sprite(PIXI.Texture.WHITE))\n    sprite.tint = 0xff0000\n    sprite.width = sprite.height = 100\n\n    // starts renderer loop\n    renderer.start()\n\n    // do stuff\n\n    // sets renderer to dirty to update during next frame\n    renderer.dirty = true\n```\n\n## Live Example\nhttps://davidfig.github.io/renderer/\n\n## Installation\n\n    npm i yy-renderer\n\n## API Reference\n```js\n    /**\n     * Wrapper for a pixi.js Renderer\n     * @param {object} [options]\n     * @param {boolean} [options.alwaysRender=false] update renderer every update tick\n     * @param {number} [options.FPS=60] desired FPS for rendering (otherwise render on every tick)\n     *\n     * @param {HTMLCanvasElement} [options.canvas] place renderer in this canvas\n     * @param {HTMLElement} [options.parent=document.body] if no canvas is provided, use parent to provide parent for generated canvas otherwise uses document.body\n     * @param {object} [options.styles] apply these CSS styles to the div\n     *\n     * @param {number} [options.aspectRatio] resizing will maintain aspect ratio by ensuring that the smaller dimension fits\n     * @param {boolean} [options.autoresize=false] automatically calls resize during resize events\n     * @param {number} [options.color=0xffffff] background color in hex\n     *\n     * @param {boolean} [options.turnOffTicker] turn off PIXI.shared.ticker\n     * @param {boolean} [options.turnOffInteraction] turn off PIXI.Interaction manager (saves cycles)\n     *\n     * @param {boolean} [options.noWebGL=false] use the PIXI.CanvasRenderer instead of PIXI.WebGLRenderer\n     * @param {boolean} [options.antialias=true] turn on antialias if native antialias is not used, uses FXAA\n     * @param {boolean} [options.forceFXAA=false] forces FXAA antialiasing to be used over native. FXAA is faster, but may not always look as great\n     * @param {number} [options.resolution=window.devicePixelRatio] / device pixel ratio of the renderer (e.g., original retina is 2)\n     * @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`.\n     * @param {boolean} [options.preserveDrawingBuffer=false] enables drawing buffer preservation, enable this if you need to call toDataUrl on the webgl context.\n     * @param {boolean} [options.roundPixels=false] if true PIXI will Math.floor() x/y values when rendering, stopping pixel interpolation\n     *\n     * @param {boolean|string} [options.debug] false, true, or some combination of 'fps', 'dirty', and 'count' (e.g., 'count-dirty' or 'dirty')\n     * @param {object} [options.fpsOptions] options from yy-fps (https://github.com/davidfig/fps)\n     *\n     * @param {number} [options.maxFrameTime=1000/60] maximum time in milliseconds for a frame\n     * @param {object} [options.pauseOnBlur] pause loop when app loses focus, start it when app regains focus\n     *\n     * @event each(elapsed, Loop, elapsedInLoop)\n     * @event start(Loop)\n     * @event stop(Loop)\n     */\n    constructor(options)\n\n    /**\n     * create FPS meter and render indicator\n     * @param {object} options\n     */\n    createDebug(options)\n\n    /**\n     * immediately render without checking dirty flag\n     */\n    render()\n\n    /**\n     * counts visible objects\n     */\n    countObjects()\n\n    /**\n     * sets the background color\n     * @param {string} color in CSS format\n     */\n    background(color)\n\n    /**\n     * adds object to stage\n     * @param {PIXI.DisplayObject} object\n     * @param {number} [to] index to add\n     */\n    add(object, to)\n\n    /**\n     * alias for add\n     * @param {PIXI.DisplayObject} object\n     */\n    addChild(object)\n\n    /**\n     * alias for add\n     * @param {PIXI.DisplayObject} object\n     * @param {number} to - index to add\n     */\n    addChildTo(object, to)\n\n    /**\n     * remove child from stage\n     * @param {PIXI.DisplayObject} object\n     */\n    removeChild(object)\n\n    /**\n     * clears the stage\n     */\n    clear()\n\n    /**\n     * resize\n     * @param {boolean} [force] resize, even if cached width/height remain unchanged\n     */\n    resize(force)\n\n    /**\n     * returns the smaller of the width/height based\n     * @return {number}\n     */\n    dimensionSmall()\n\n    /**\n     * returns the larger of the width/height based\n     * @return {number}\n     */\n    dimensionBig()\n\n    /**\n     * getter/setter to change desired FPS of renderer\n     */\n    get fps()\n\n    /**\n     * Add a listener for a given event to yy-loop\n     * @param {(String|Symbol)} event The event name.\n     * @param {Function} fn The listener function.\n     * @param {*} [context=this] The context to invoke the listener with.\n     * @returns {EventEmitter} `this`.\n     */\n    on()\n\n    /**\n     * Add a one-time listener for a given event to yy-loop\n     * @param {(String|Symbol)} event The event name.\n     * @param {Function} fn The listener function.\n     * @param {*} [context=this] The context to invoke the listener with.\n     * @returns {EventEmitter} `this`.\n     * @public\n     */\n    once()\n\n    /**\n     * start the internal loop\n     * @returns {Renderer} this\n     */\n    start()\n\n    /**\n     * stop the internal loop\n     * @inherited from yy-loop\n     * @returns {Renderer} this\n     */\n    stop()\n\n```\n## license  \nMIT License  \n(c) 2017 [YOPEY YOPEY LLC](https://yopeyopey.com/) by [David Figatner](https://twitter.com/yopey_yopey/)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavidfig%2Frenderer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdavidfig%2Frenderer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavidfig%2Frenderer/lists"}