MCPcopy Create free account
hub / github.com/tensorflow/tfjs / uploadPixelDataToTexture

Function uploadPixelDataToTexture

tfjs-backend-webgl/src/gpgpu_util.ts:215–253  ·  view source on GitHub ↗
(
    gl: WebGLRenderingContext, texture: WebGLTexture,
    pixels: PixelData|ImageData|HTMLImageElement|HTMLCanvasElement|
    HTMLVideoElement|ImageBitmap)

Source from the content-addressed store, hash-verified

213}
214
215export function uploadPixelDataToTexture(
216 gl: WebGLRenderingContext, texture: WebGLTexture,
217 pixels: PixelData|ImageData|HTMLImageElement|HTMLCanvasElement|
218 HTMLVideoElement|ImageBitmap) {
219 webgl_util.callAndCheck(gl, () => gl.bindTexture(gl.TEXTURE_2D, texture));
220 if ((pixels as PixelData).data instanceof Uint8Array) {
221 if (env().getNumber('WEBGL_VERSION') === 2) {
222 webgl_util.callAndCheck(
223 gl,
224 () => gl.texSubImage2D(
225 gl.TEXTURE_2D, 0, 0, 0, pixels.width, pixels.height, gl.RGBA,
226 gl.UNSIGNED_BYTE, (pixels as PixelData).data));
227 } else {
228 webgl_util.callAndCheck(
229 gl,
230 () => gl.texImage2D(
231 gl.TEXTURE_2D, 0, gl.RGBA, pixels.width, pixels.height, 0,
232 gl.RGBA, gl.UNSIGNED_BYTE, (pixels as PixelData).data));
233 }
234 } else {
235 if (env().getNumber('WEBGL_VERSION') === 2) {
236 webgl_util.callAndCheck(
237 gl,
238 () => gl.texSubImage2D(
239 gl.TEXTURE_2D, 0, 0, 0, gl.RGBA, gl.UNSIGNED_BYTE,
240 (pixels as ImageData | HTMLImageElement | HTMLCanvasElement |
241 HTMLVideoElement | ImageBitmap)));
242 } else {
243 webgl_util.callAndCheck(
244 gl,
245 () => gl.texImage2D(
246 gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE,
247 pixels as ImageData | HTMLImageElement | HTMLCanvasElement |
248 HTMLVideoElement | ImageBitmap));
249 }
250 }
251
252 webgl_util.callAndCheck(gl, () => gl.bindTexture(gl.TEXTURE_2D, null));
253}
254
255export function createBufferFromOutputTexture(
256 gl2: WebGL2RenderingContext, rows: number, columns: number,

Callers

nothing calls this directly

Calls 2

envFunction · 0.90
getNumberMethod · 0.80

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…