npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

canvas-testbed

v1.0.4

Published

A minimal testbed for simple canvas demos

Downloads

115

Readme

canvas testbed

deprecation warning

This module is bloated and a little too magical. Instead, some of the following are recommended:


For visual apps, this is a simple module to get your demos and prototypes up and running. Ideal for use with Beefy. When the DOM content is ready, it does the following:

  • Clear the body margins to zero
  • Set the body overflow to hidden
  • Adds a canvas element to the body (tag ID: 'canvas')
  • Listen for window resizes and set the canvas to the new size
  • Provides a minimal render loop that also gives you delta time

It also includes a requestAnimationFrame polyfill

api

testbed( [onRender], [onStart], [options] )
testbed( [onRender], [options] )

Example:

var test = require('canvas-testbed');

//called every frame
function render(context, width, height) {
	context.clearRect(0, 0, width, height);
	context.fillRect(250, 150, 200, 100);
}

//setup the testbed
test(render, {
	once: true
});

See the demo folder for a couple other examples.

All parameters are optional. Without a render function the requestAnimationFrame will not be fired.

options

More may be added later, like unified touch/mouse handling for simple interactive demos, or simple scaling for retina screens. For now:

  • context a string, "2d" or "webgl"
  • contextAttributes the attributes to be passed when creating the context
  • once only fire the render frame once, and then again when the window is resized (to avoid the canvas clearing completely)
  • ignoreResize to ignore resize events; by default this is false, and the canvas is scaled to the window size
  • onResize a callback for after the canvas has been resized; will not be called if the resize event is ignored
  • width, height to specifiy an explicit width or height of the canvas. if either is specified, the resize events will be ignored.

You can also pass any of the options of canvas-app, which this module builds on.

testing with beefy

First install beefy:

npm i beefy -g

Then run the demo:

beefy demo/demo-2d.js --live

And open up localhost:9966 in your browser.