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

kami-texture2

v1.1.0

Published

texture utils for kami

Downloads

10

Readme

kami-texture

stable

2D texture utility for kami, but can be used stand-alone with other WebGL engines (ThreeJS, StackGL, etc). Often rendered using kami-batch.

//get a webGL context somehow
var gl = require('webgl-context');

//load an image onto the GPU...
var tex = require('kami-texture')(gl, {
	src: 'img/blah.png'
});

//setup filters if you want
tex.setFilter(gl.LINEAR);

//render it with kami-batch or another lib...

Usage

NPM

For full details, see the kami API docs. Here is the module at a glance.

Texture(gl, options)

The constructor. Can specify an image in options:

  • src: the image source URI
  • crossOrigin: a string to pass onto the Image object, or undefined
  • onLoad: called when the image is loaded
  • onError: called if there was an error loading the image

Or you can specify the raw data directly:

  • data or image: an array of pixels, typically Uint8Array, or an HTML Image/Video object
  • format: a gl format, default RGBA. The constants are aliased onto Texture.Format
  • type: a gl type for the data array, default UNSIGNED_BYTE. The constants are aliased onto Texture.DataType
  • width: the width of the data (only needed if you specified data)
  • height: the height of the data (only needed if you specified data)

If no data or image is specified, null (empty) data is uploaded in place. There are also a couple other parameters which can be used with images or data constructor:

  • genMipmaps: whether to generate mipmaps, default false

tex.width, tex.height

Dimensions of the texture. You can also use tex.shape which returns an array of [width, height] (similar to gl-texture2d).

tex.id

The WebGLTexture identifier.

tex.setFilter(min, mag)

Sets the min and mag filter. LINEAR, NEAREST, etc. constants are aliased onto Texture.Filter. If a single argument is passed, it will be applied to both min and mag. The default filters for all new textures is NEAREST.

This will bind the texture before applying the parameters.

tex.setWrap(s, t)

Sets the texture wrap mode. REPEAT, CLAMP_TO_EDGE, etc. are aliased onto Texture.Wrap.

This will bind the texture before applying the parameters.

tex.bind(n)

If a number is passed, that texture slot will be made active and this texture bound to it. Otherwise, the texture will be bound to whatever texture slot is currently active.

uploadData(width, height, format, type, data, genMipmaps)

Calls glTexImage2D with the given parameters, and a data array as input.

uploadImage(domObject, format, type, genMipmaps)

Calls glTexImage2D with the given parameters, and an HTML image as input.

License

MIT, see LICENSE.md for details.