Baseline 2023 *
Newly available
ì°¸ê³ : ì´ ê¸°ë¥ì Web Workerìì ì¬ì©í ì ììµëë¤.
<canvas>
ììë Canvas API를 ì¬ì©í ë, ë ëë§, ì ëë©ì´ì
, ì¬ì©ì ìí¸ìì©ì ì¼ë°ì ì¼ë¡ ì¹ ì í리ì¼ì´ì
ì 주 ì¤í ì¤ë ëìì ë°ìí©ëë¤. ìºë²ì¤ ì ëë©ì´ì
ê³¼ ë ëë§ê³¼ ê´ë ¨ë ê³ì°ì ì í리ì¼ì´ì
ì±ë¥ì ìë¹í ìí¥ì ë¯¸ì¹ ì ììµëë¤.
OffscreenCanvas
ì¸í°íì´ì¤ë íë©´ ë°ìì ë ëë§í ì ìë ìºë²ì¤ë¥¼ ì ê³µíê³ DOMê³¼ Canvas API를 ë¶ë¦¬íì¬ <canvas>
ììê° DOMì ìì í ìì¡´íì§ ìëë¡ í©ëë¤. ë ëë§ ìì
ì worker ë§¥ë½ ë´ìì ì¤íí ìë ìì´ì ë³ëì ì¤ë ëìì ì¼ë¶ ìì
ì ì¤ííê³ ë©ì¸ ì¤ë ëìì ë¬´ê±°ì´ ìì
ì í¼í ì ììµëë¤.
OffscreenCanvas
ë transferable objectì
ëë¤.
OffscreenCanvas()
OffscreenCanvas
ìì±ì. ì OffscreenCanvas
ê°ì²´ë¥¼ ìì±í©ëë¤.
OffscreenCanvas.getContext()
ë ëë§ë ìºë²ì¤ ë§¥ë½ ê°ì²´ë¥¼ ë°íí©ëë¤.
OffscreenCanvas.convertToBlob()
ìºë²ì¤ì ë¤ì´ìë ì´ë¯¸ì§ì ëí Blob
ê°ì²´ë¥¼ ìì±í©ëë¤.
OffscreenCanvas.transferToImageBitmap()
OffscreenCanvas
ì ë ëë§ë ì´ë¯¸ì§ì¤ìì ê°ì¥ ìµê·¼ì ë ëë§ë ì´ë¯¸ì§ë¥¼ ImageBitmap
ê°ì²´ë¡ ìì±í©ëë¤. ImageBitmap
ì ê´ë¦¬íëë° ì¤ìí ì°¸ê³ ì¬íì íì¸íì¸ì.
ë¶ëª¨ì¸ EventTarget
ì¼ë¡ë¶í° ì´ë²¤í¸ë¥¼ ììë°ìµëë¤.
addEventListener()
ëë oneventname
ìì±ì ì´ë²¤í¸ 리ì¤ë를 í ë¹íì¬ ì´ë²¤í¸ë¥¼ ìì íì¸ì.
contextlost
OffscreenCanvasRenderingContext2D
ë§¥ë½ ìì¤ì ê°ì§íë©´ ë°ìí©ëë¤.
contextrestored
OffscreenCanvasRenderingContext2D
ë§¥ë½ì ë³µìíë©´ ë°ìí©ëë¤.
OffscreenCanvas
ìì ë§ë¤ì´ì§ íë ìì ë기ì ì¼ë¡ íë©´ì ë³´ì¬ì£¼ë ë°©ë²
OffscreenCanvas
API를 ì¬ì©íë í ê°ì§ ë°©ë²ì OffscreenCanvas
ì ìí RenderingContext
를 ì´ì©í´ ìë¡ì´ íë ì ê°ì²´ë¥¼ ìì±íë ê²ì
ëë¤. ì íë ìì´ ë§¥ë½ì ë ëë§ ëê³ ëë©´, transferToImageBitmap()
ë©ìë를 í¸ì¶íì¬ ê°ì¥ ìµê·¼ì ë ëë§ ë ì´ë¯¸ì§ë¥¼ ì ì¥ í ì ììµëë¤. ì´ ë©ìëë ì ì¡ ì¬ë³¸ì ìì±íì§ ìê³ ë, ë¤ë¥¸ ì ë§ì Web APIì ëë²ì§¸ ìºë²ì¤ìì ì¬ì©ë ì ìë ImageBitmap
ê°ì²´ë¥¼ 리í´í©ëë¤.
ImageBitmap
ì íë©´ì íìíë ¤ë©´, íì¬ (íë©´ì ë³´ì¬ì§ê³ ìë) ìºë²ì¤ ììì canvas.getContext("bitmaprenderer")
ë©ìë를 í¸ì¶íì ë ìì±ëë ImageBitmapRenderingContext
ë§¥ë½ì ì¬ì©íë©´ ë©ëë¤. ì´ ë§¥ë½ë ìºë²ì¤ì ë´ì©ì ì§ì ë ImageBitmap
ì¼ë¡ ì ííë 기ë¥ë§ ì ê³µí©ëë¤. OffscreenCanvas
ìì ì´ì ì ë ëë§ì´ ëê³ ì ì¥ë ImageBitmap
ì ì¬ì©íì¬ ImageBitmapRenderingContext.transferFromImageBitmap()
ì í¸ì¶íë©´ ImageBitmap
ì´ ìºë²ì¤ì íìëê³ ìì ê¶ì´ ìºë²ì¤ë¡ ëì´ê°ëë¤. ë¨ì¼ OffscreenCanvas
ë íë ìë¤ì ììì ë¤ë¥¸ ImageBitmapRenderingContext
ê°ì²´ë¤ë¡ ì ë¬í ì ììµëë¤.
ìëì ë ê°ì <canvas>
ììê° ììµëë¤.
<canvas id="one"></canvas> <canvas id="two"></canvas>
ë¤ìì ì½ëë ììì ì¤ëª
í ê²ì²ë¼ OffscreenCanvas
를 ì´ì©í´ ë ëë§í©ëë¤.
const one = document.getElementById("one").getContext("bitmaprenderer");
const two = document.getElementById("two").getContext("bitmaprenderer");
const offscreen = new OffscreenCanvas(256, 256);
const gl = offscreen.getContext("webgl");
// ... gl ë§¥ë½ì ì´ì©í´ 첫 ë²ì§¸ ìºë²ì¤ì 무ì¸ê°ë¥¼ 그립ëë¤ ...
// 첫 ë²ì§¸ ìºë²ì¤ì ë ëë§ì ìíí©ëë¤.
const bitmapOne = offscreen.transferToImageBitmap();
one.transferFromImageBitmap(bitmapOne);
// ... gl ë§¥ë½ì ì´ì©í´ ë ë²ì§¸ ìºë²ì¤ì 무ì¸ê°ë¥¼ 그립ëë¤ ...
// ë ë²ì§¸ ìºë²ì¤ì ë ëë§ì ìíí©ëë¤.
const bitmapTwo = offscreen.transferToImageBitmap();
two.transferFromImageBitmap(bitmapTwo);
OffscreenCanvas
ìì ë§ë¤ì´ì§ íë ìì ë¹ë기ì ì¼ë¡ íë©´ì ë³´ì¬ì£¼ë ë°©ë²
OffscreenCanvas
API를 ì´ì©íë ë ë¤ë¥¸ ë°©ë²ì <canvas>
ì transferControlToOffscreen()
를 í¸ì¶íë ê² ì
ëë¤. worker ëë ë©ì¸ ì¤ë ëìì ì¬ë¶ì ê´ê³ìì´, ë©ì¸ ì¤ë ëì HTMLCanvasElement
ê°ì²´ì OffscreenCanvas
ê°ì²´ë¥¼ ë°íí©ëë¤. getContext()
를 í¸ì¶íë©´ í´ë¹ OffscreenCanvas
ì RenderingContext
를 ì»ì ì ììµëë¤.
main.js (ë©ì¸ ì¤ë ë ì½ë)ë ë¤ìê³¼ ê°ì ì ììµëë¤.
const htmlCanvas = document.getElementById("canvas");
const offscreen = htmlCanvas.transferControlToOffscreen();
const worker = new Worker("offscreencanvas.js");
worker.postMessage({ canvas: offscreen }, [offscreen]);
ë°ë©´ì offscreencanvas.js
ì¤í¬ë¦½í¸ (worker ì¤ë ë)ë ë¤ìê³¼ ê°ì ì ììµëë¤.
onmessage = (evt) => {
const canvas = evt.data.canvas;
const gl = canvas.getContext("webgl");
// ... gl ë§¥ë½ì ì´ì©í´ 무ì¸ê°ë¥¼ 그립ëë¤ ...
};
ëí worker ë´ìì requestAnimationFrame()
를 ì¬ì©í ì ììµëë¤.
onmessage = (evt) => {
const canvas = evt.data.canvas;
const gl = canvas.getContext("webgl");
function render(time) {
// ... gl ë§¥ë½ì ì´ì©í´ 무ì¸ê°ë¥¼ 그립ëë¤ ...
requestAnimationFrame(render);
}
requestAnimationFrame(render);
};
ì ì²´ ìì ë GitHubì OffscreenCanvas ìì ìì¤ë¥¼ 참조íê±°ë OffscreenCanvas ìì ë¼ì´ë¸ë¥¼ ì¤ííì¸ì.
ìì¸ ë¸ë¼ì°ì í¸íì± ë 보기RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4