JavaTM Platform
Standard Ed. 6

java.awt.image
클래스 BufferStrategy

java.lang.Object 
  상위를 확장 java.awt.image.BufferStrategy
직계의 기존의 서브 클래스:
Component.BltBufferStrategy , Component.FlipBufferStrategy


public abstract class BufferStrategy
extends Object

BufferStrategy 클래스는, 특정의 Canvas 또는 Window 상의 복잡한 메모리를 편성하는 메카니즘을 나타냅니다. 특정의 버퍼 스트래터지가 구현 가능한가 어떤가 및 그 구현 방법은, 하드웨어와 소프트웨어의 제한 사항에 의해 정해집니다. 이러한 제한 사항은,Canvas 또는 Window 를 작성할 경우에 사용하는 GraphicsConfiguration 의 기능을 개입시켜 검출됩니다.  

「버퍼」 및 「표면」이라고 하는 말은 동의이며, 비디오 디바이스 메모리내 또는 시스템 메모리내에서의 연속한 메모리 영역을 가리킵니다.  

복잡한 버퍼 스트래터지에는, 차례차례 링 버퍼링, Blit 버퍼링 등 몇개의 종류가 있습니다. 무엇보다 일반적인 것은, 차례차례 링 버퍼링 (더블 버퍼링 또는 트리플 버퍼링)입니다. 어플리케이션은 단일의 「백 버퍼」에 draw 하고 나서, 데이터를 복제할까 비디오 포인터를 이동하는 것으로써 단일 스텝에서 내용을 프런트 (디스플레이)에 이동합니다. 비디오 포인터를 이동하는 것으로 버퍼가 교환되어 최초로 draw 된 버퍼 또는 디바이스에 현재 표시되고 있는 이미지가 「프런트 버퍼」가 됩니다. 이것은 「페이지후립핑」이라고 불립니다.  

대신에, 비디오 포인터를 이동하는 것이 아니라, 체인내에서 선행해 백 버퍼의 내용을 복제 또는 「Blit」할 수가 있습니다.  

 Double buffering:

                    ***********         ***********
                    *         * ------> *         *
 [To display] <---- * Front B *   Show  * Back B.  * <---- Rendering
                    *         * <------ *         *
                    ***********         ***********

 Triple buffering:

 [To      ***********         ***********        ***********
 display] *         * --------+---------+------> *         *
    <---- * Front B *   Show  * Mid.  B.  *        * Back B.  * <---- Rendering
          *         * <------ *         * <----- *         *
          ***********         ***********        ***********

 

버퍼 스트래터지의 작성과 사용의 예를 나타냅니다.



 // Check the capabilities of the GraphicsConfiguration
 ...

 // Create our component
 Window w = new Window(gc);

 // Show our window
 w.setVisible(true);

 // Create a general double-buffering strategy
 w.createBufferStrategy(2);
 BufferStrategy strategy = w.getBufferStrategy();

 // Main loop
 while (! done) {
     // Prepare for rendering the next frame
     // ...

     // Render single frame
     do {
         // The following loop ensures that the contents of the drawing buffer
         // are consistent in case the underlying surface was recreated
         do {
             // Get a new graphics context every time through the loop
             // to make sure the strategy is validated
             Graphics graphics = strategy.getDrawGraphics();
     
             // Render to graphics
             // ...

             // Dispose the graphics
             graphics.dispose();

             // Repeat the rendering if the drawing buffer contents 
             // were restored
         } while (strategy.contentsRestored());

         // Display the buffer
         strategy.show();

         // Repeat the rendering if the drawing buffer was lost
     } while (strategy.contentsLost());
 }

 // Dispose the window
 w.setVisible(false);
 w.dispose();
 

도입된 버젼:
1.4
관련 항목:
Component , GraphicsConfiguration , VolatileImage

생성자 의 개요
BufferStrategy ()
           
 
메소드의 개요
abstract  boolean contentsLost ()
          getDrawGraphics 에의 마지막 호출을 위해서(때문에) draw 버퍼가 소실했는지의 여부를 돌려줍니다.
abstract  boolean contentsRestored ()
          draw 버퍼가 소실 상태로부터 최근 복원되어 디폴트의 백그라운드 칼라 (흰색)에 재초기화되었는지의 여부를 돌려줍니다.
 void dispose ()
          이 BufferStrategy 가 현재 사용하고 있는 system resource를 해제해, 관련하는 Component 로부터 삭제합니다.
abstract  BufferCapabilities getCapabilities ()
          이 BufferStrategyBufferCapabilities 를 돌려줍니다.
abstract  Graphics getDrawGraphics ()
          draw 버퍼의 그래픽스 문맥을 작성합니다.
abstract  void show ()
          메모리를 복제 (Blit)할까 디스플레이 포인터를 변경하는 (바꾼다) 것에 따라, 다음에 사용 가능한 버퍼를 가시 상태로 합니다.
 
클래스 java.lang. Object 로부터 상속된 메소드
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
 

생성자 의 상세

BufferStrategy

public BufferStrategy()
메소드의 상세

getCapabilities

public abstract BufferCapabilities  getCapabilities()
BufferStrategyBufferCapabilities 를 돌려줍니다.

반환값:
이 방침의 버퍼 용량

getDrawGraphics

public abstract Graphics  getDrawGraphics()
draw 버퍼의 그래픽스 문맥을 작성합니다. 이 메소드는 퍼포먼스의 이유로부터 동기 하지 않는 경우가 있습니다. 복수 thread로 이 메소드를 사용하려면 , 어플리케이션 레벨에서의 처리가 필요합니다. 취득한 그래픽스 객체의 처리는, 어플리케이션측에서 실시할 필요가 있습니다.

반환값:
draw 버퍼의 그래픽스 문맥

contentsLost

public abstract boolean contentsLost()
getDrawGraphics 에의 마지막 호출을 위해서(때문에) draw 버퍼가 소실했는지의 여부를 돌려줍니다. 버퍼 스트래터지내의 버퍼는 일반적으로,VolatileImage 형이기 (위해)때문에 소실하는 일이 있습니다. 소실 버퍼에 대해서는,VolatileImage 를 참조해 주세요.

반환값:
getDrawGraphics 에의 마지막 호출을 위해서(때문에) draw 버퍼가 소실했는지 어떠했는지
관련 항목:
VolatileImage

contentsRestored

public abstract boolean contentsRestored()
draw 버퍼가 소실 상태로부터 최근 복원되어 디폴트의 백그라운드 칼라 (흰색)에 재초기화되었는지의 여부를 돌려줍니다. 버퍼 스트래터지내의 버퍼는 일반적으로,VolatileImage 형이기 (위해)때문에 소실하는 일이 있습니다. getDrawGraphics 에의 마지막 호출을 위해서(때문에) 소실 상태에 있던 표면이 최근 복원되었을 경우는, 재페인트가 필요한 일도 있습니다. 소실 버퍼에 대해서는,VolatileImage 를 참조해 주세요.

반환값:
getDrawGraphics 에의 마지막 호출을 위해서(때문에) draw 버퍼가 복원되었는지 어떠했는지
관련 항목:
VolatileImage

show

public abstract void show()
메모리를 복제 (Blit)할까 디스플레이 포인터를 변경하는 (바꾼다) 것에 따라, 다음에 사용 가능한 버퍼를 가시 상태로 합니다.


dispose

public void dispose()
BufferStrategy 가 현재 사용하고 있는 system resource를 해제해, 관련하는 Component 로부터 삭제합니다. 이 메소드를 호출한 뒤,getBufferStrategy 는 null 를 돌려줍니다. BufferStrategy 를 파기한 후에 재차 사용하려고 하면(자), 정의되어 있지 않은 동작이 발생합니다.

도입된 버젼:
1.6
관련 항목:
Component.createBufferStrategy(int) , Component.getBufferStrategy()

JavaTM Platform
Standard Ed. 6

버그의 보고와 기능의 요청
한층 더 자세한 API 레퍼런스 및 개발자 문서에 대해서는,Java SE 개발자용 문서를 참조해 주세요. 개발자전용의 상세한 해설, 개념의 개요, 용어의 정의, 버그의 회피책, 및 코드 실례가 포함되어 있습니다.

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.