Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[g-plugin-webgpu-device] 支持加载 Image 到 Texture 中 #1401

Closed
xiaoiver opened this issue Jun 30, 2023 · 0 comments
Closed

[g-plugin-webgpu-device] 支持加载 Image 到 Texture 中 #1401

xiaoiver opened this issue Jun 30, 2023 · 0 comments
Assignees
Labels

Comments

@xiaoiver
Copy link
Contributor

xiaoiver commented Jun 30, 2023

参考:https://toji.dev/webgpu-best-practices/img-textures
在 WebGL 中加载 Image 用法如下:

function webGLTextureFromImageUrl(gl, url, loadedCallback) {
  const imgElement = new Image(); // Creates an HTMLImageElement
  imgElement.addEventListener('load', () => {
    const texture = gl.createTexture(); // Create a WebGL Texture
    gl.bindTexture(gl.TEXTURE_2D, texture);
    gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, imgElement);
    gl.generateMipmap(gl.TEXTURE_2D);
    loadedCallback(texture);
  });
  imgElement.src = url;
}

因此需要实现 Device 中 Texture 的 setSubData 方法。

首先需要使用 https://developer.mozilla.org/en-US/docs/Web/API/createImageBitmap 创建 ImageBitmap,这是一个异步方法。

@xiaoiver xiaoiver added the bug label Jun 30, 2023
@xiaoiver xiaoiver self-assigned this Jun 30, 2023
xiaoiver added a commit that referenced this issue Jul 6, 2023
* fix: make pick async to support impl in WebGPU (#1398)

* fix: skip loading Box2D if it's already existed #1393

* fix: update latest physx

* fix: support 2 kinds of clip z range #863

* fix: make pick async to support impl in WebGPU #1400

* fix: use async readpixels in webgl2

* fix: use premultiplied alpha in WebGL & WebGPU #1399

* fix: use createImageBitmap to create texture if possible #1401

* chore: add test case for ssr with g-webgl

* chore: adjust examples of performance block (#1402)

* chore: adjust examples of performance block

* fix: reset transform with keyword none

* chore: add ga4 key

* fix: createImageBitmap should account for error of SVG failure

* fix: avoid overriding defXY when parsing path (#1405)

* fix: avoid overriding defXY when parsing path #1404

* chore: commit changeset

* chore(release): bump version (#1403)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Development

No branches or pull requests

1 participant