Απολυμάνσεις Αθήνα

더블 버퍼링 예제

150 150 trap

OpenGL[3] 및 Direct3D와 같은 3D 표준은 쿼드 버퍼링을 지원합니다. 이중 버퍼링은 주로 응용 프로그램이 아마추어처럼 보이게 하거나, 부진하거나, 깜박이는 것처럼 보일 수 있는 보이는 무승부를 제거하는 데 사용됩니다. 페이지 뒤집기는 주로 찢어짐을 제거하는 데 사용되며, 화면에 그릴 때 모니터의 새로 고침 빈도보다 빠르게 발생하는 분할 효과도 제거됩니다. 더 매끄러운 드로잉은 더 나은 인식 성능과 훨씬 더 나은 사용자 경험을 의미합니다. public 클래스 DoubleBuffering 확장 애플릿 구현 MouseMotionListener { // 우리가 대신 표준 화면 그래픽 그래픽 버퍼 그래픽과 함께 작성하는 데 사용할 객체; // 에 그려진 모든 것을 포함하는 이미지 // 버퍼 그래픽. 화면 에서 이미지; 애플릿의 폭과 높이를 얻으려면. 치수 희미한; int curX, 곱슬; 다음은 이 작업을 수행하는 방법의 예입니다(소스) 여러 버퍼링이 작동하는 방식을 설명하는 쉬운 방법은 실제 예제를 수행하는 것입니다. 그것은 좋은 화창한 날이며, 당신은 당신의 정원 호스를 찾을 수 없습니다, 밖으로 패들 풀을 얻기로 결정했다. 풀을 버킷으로 채워야 합니다. 그래서 당신은 탭에서 하나의 양동이 (또는 버퍼)를 채우고, 탭을 끄고, 수영장으로 걸어 가서 물을 붓고, 운동을 반복하기 위해 다시 탭으로 걸어 가십시오. 이는 단일 버퍼링과 유사합니다. 물통을 “처리”하는 동안 수도꼭지의 꺼져 있어야 합니다.

위 참조: 이중 버퍼링 없음 : 모든 것이 화면으로 바로 그려지므로 깜박입니다. 잘못된 이중 버퍼링: 아래와 동일하지만 업데이트() 메서드가 없는 이중 버퍼링: 이 소스의 예입니다. */ 이중 버퍼링을 사용하여 전체 프레임을 한 번에 그려야 만 이 크롤링 효과를 방지할 수 있습니다. 이중 버퍼링을 시작하려면 표시되지 않은 버퍼(백버퍼 또는 화면 외부 버퍼라고도 함)를 만들고 그려서 결과 이미지를 화면에 표시해야 합니다. 이 경우 사용자는 얼굴의 눈을 볼 수 있지만 입이 단일 프레임동안 사라집니다. 다음 프레임에서는 다른 지점에서 중단될 수 있습니다. 최종 결과는 끔찍한 깜박이는 그래픽입니다. 이중 버퍼링을 통해 이 문제를 해결하겠습니다: 이중 버퍼링은 그래픽 산업 전반에 걸쳐 잘 알려진 용어입니다. 대부분의 응용 프로그램 (주로 게임)은 단일 버퍼링에 비해 많은 장점이 있기 때문에 거의 작동하지 않습니다 (그러나 몇 가지 단점이 있습니다).

나는이 예가 대부분 분명하다고 믿는다. 비디오 모드를 변경하거나 픽셀을 넣는 방법이 너무 많기 때문에 직접 채울 수 있도록 하겠습니다. 자세한 정보를 원할 경우 GUI 또는 보호 모드의 그리기 페이지로 이동하십시오. 최상위 구성 요소(일반적으로 JPanel)에서 setDoubleBuffered(true)를 호출하기만 하면 모든 작업이 작동합니다. 쿼드 버퍼링은 대부분의 소비자 카드에 대해 비활성화된 그래픽 카드 드라이버에 특별한 지원이 필요합니다. AMD의 라데온 HD 6000 시리즈와 새로운 지원 [1]. 나는 당신의 문제가 이중 버퍼링되지 않습니다 생각합니다. super.paint(페이지)를 추가해야 합니다. 페인트 방법의 첫 번째 줄에 있습니다. 예를 들어, 각 창은 이중 버퍼(또는 다시 그리기/페인트 이벤트에서 업데이트되는 단일 버퍼)와 전체 화면에 대한 이중 버퍼로 구성될 수 있습니다. 이렇게 하면 각 프로그램이 백 버퍼에 그림을 그리고 드로잉이 끝나면(포인터 또는 memcpy 를 교환) 원하는 만큼 자주(백 버퍼 주위에 잠금 래핑) 전송한 다음 GUI가 백 버퍼를 감지하면 백 버퍼가 변경되었습니다.

을 참조하면 창의 전면 버퍼(일시적으로 잠기는)를 화면의 백 버퍼에 복사한 다음 VBLANK가 화면의 백 버퍼를 발생하면 화면의 백 버퍼가 전면 버퍼로 복사됩니다. 트리플 버퍼링에서 프로그램은 두 개의 백 버퍼를 가지고 즉시 이러한 복사에 관여하지 않는 하나에 그리기를 시작할 수 있습니다. 세 번째 버퍼인 전면 버퍼는 그래픽 카드에서 읽고 모니터에 이미지를 표시합니다. 이미지가 모니터로 전송되면 전면 버퍼가 가장 최근의 전체 이미지를 보유한 백 버퍼로 대칭 이동(또는 복사)됩니다.

  • 0