>  기사  >  웹 프론트엔드  >  HTML5 캔버스는 간단한 이중 버퍼링을 구현합니다.

HTML5 캔버스는 간단한 이중 버퍼링을 구현합니다.

不言
不言원래의
2018-11-07 10:16:104716검색

HTML5 캔버스에는 애니메이션 프레임워크를 요청하고 JavaScript로 애니메이션을 만드는 등 흥미로운 것들이 많이 있습니다. 오늘의 기사에서는 HTML5 캔버스에서 간단한 이중 버퍼링을 구현하는 방법에 대해 공유하겠습니다. 도움이 필요한 친구들은 기사 방법을 살펴보세요. .

더 고급 콘텐츠의 경우 일반적으로 GPU 가속화되고 window.request.tionFrame을 사용하여 상당히 높고 안정적인 프레임 속도를 허용하는 캔버스를 사용할 수 있습니다. (추천 과정: HTML5 비디오 튜토리얼)

캔버스에 이중 버퍼가 필요한 경우 널리 사용되는 접근 방식은 두 번째 캔버스 요소를 만들고 해당 캔버스 요소에 그린 다음 drawImage를 사용하여 완성된 이미지를 그리는 것입니다.

var primaryCtx = document.getElementById("canvas").getContext("2d");
var secondaryCanvas = document.createElement("canvas"),
      secondaryCtx = secondaryCanvas.getContext("2d");
      (function drawFrame() {
    requestAnimationFrame(drawFrame);
    secondaryCtx.fillStyle = "#f00";
    secondaryCtx.fillRect(10,10,20,20);
    primaryCtx.drawImage(secondaryCanvas);
    })();

CTX.SAVER() 및 CTX.Rebug()를 입력하세요.

오늘 저는 위와 마찬가지로 더 깨끗하고 작동하는 방법을 발견했습니다.

(function drawFrame() {
    requestAnimationFrame(drawFrame);
    primaryCtx.save(); //Freeze redraw
    primaryCtx.fillStyle = "#f00";
    primaryCtx.fillRect(10,10,20,20);
    primaryCtx.restore(); //And now do the redraw
    })();

이상한 이름에도 불구하고 , 그러나 컨텍스트 렌더링을 정지한 다음 그리기가 완료된 후 렌더링을 다시 시작합니다.

이 기사는 여기서 끝납니다. 더 흥미로운 내용을 보려면 PHP 중국어 웹사이트의 관련 동영상 튜토리얼 칼럼을 주목하세요! ! !

위 내용은 HTML5 캔버스는 간단한 이중 버퍼링을 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.