public abstract class VolatileImage extends Image implements Transparency
ã€ã¡ãŒãžã®æç»è¡šé¢(ã€ã¡ãŒãžã®å 容ãå®éã«åžžé§ããã¡ã¢ãªãŒé å)ã¯ããã®ã¡ã¢ãªãŒã®å 容ãä»ã«ç§»åããããšã«ãã£ãŠå€±ãããããç¡å¹åãããå¯èœæ§ããããŸãã ãããã£ãŠæç»è¡šé¢ã埩å ãŸãã¯åçæãããã®æç»è¡šé¢ã®å 容ãåæç»ããå¿ èŠããããŸãã VolatileImageã¯ãããã®åé¡ãçºçããæã«ãããæ€åºããä¿®æ£ããããã®ã€ã³ã¿ãã§ãŒã¹ãæäŸããŸãã
VolatileImageãªããžã§ã¯ããçæãããæã«ã¯ãã€ã¡ãŒãžã»ãµããŒãã®ããããããªã»ã¡ã¢ãªãŒ(VRAM)ãªã©ã®å¶éãããã·ã¹ãã ã»ãªãœãŒã¹ãå²ãåœãŠãããŸãã VolatileImageãªããžã§ã¯ãã䜿çšãããªããªã£ãå Žåã«ã¯ã¬ããŒãžã»ã³ã¬ã¯ããããå²ãåœãŠãããã·ã¹ãã ã»ãªãœãŒã¹ãè§£æŸãããŸããããã®ããã»ã¹ã®å®è¡ã¿ã€ãã³ã°ã¯äžå®ã§ã¯ãããŸããã ããšãã°ãŠã£ã³ããŠã»ãµã€ãºã倿Žãããšã倿Žã®ãã³ã«ããã¯ã»ãããã¡ãåçæãããŸããããã®ããã«å€æ°ã®VolatileImageãªããžã§ã¯ããçæããã¢ããªã±ãŒã·ã§ã³ã§ã¯ã䜿çšãããªããªã£ããªããžã§ã¯ããã·ã¹ãã äžã«æ®ã£ãŠãããšããçç±ã ãã§ãæ°ããVolatileImageãªããžã§ã¯ãã®çæã«æé©ãªãªãœãŒã¹ãäžè¶³ããå¯èœæ§ããããŸãã ãã®å Žåãæ°ããVolatileImageãªããžã§ã¯ããçæãããŠããé«éãªã¡ã¢ãªãŒã«çæãããå Žåã«æ¯ã¹ãŠããã©ãŒãã³ã¹ã¯äœäžããŸãã flushã¡ãœããã¯ãã€ã§ãåŒã³åºããŠãVolatileImageã§äœ¿çšããããªãœãŒã¹ãäºåã«è§£æŸãã以åŸã®VolatileImageãªããžã§ã¯ãã®é«éåã劚ããªãããã«ããããšãã§ããŸãã ãã®æ¹æ³ã§ã¯ãç¡å¹ã«ãªã£ãVolatileImageãªããžã§ã¯ãã«å æãããŠãããªãœãŒã¹ã®ç¶æ ãã¢ããªã±ãŒã·ã§ã³ããå¶åŸ¡ãããããªããŸãã
ãã®ã€ã¡ãŒãžã¯çŽæ¥ãµãã¯ã©ã¹åãããComponent.createVolatileImageãŸãã¯GraphicsConfiguration.createCompatibleVolatileImage(int, int)ã¡ãœããã䜿çšããŠäœæããããã«ããŠãã ããã
次ã«VolatileImageãªããžã§ã¯ãã®äŸã瀺ããŸãã
// image creation
VolatileImage vImg = createVolatileImage(w, h);
// rendering to the image
void renderOffscreen() {
do {
if (vImg.validate(getGraphicsConfiguration()) ==
VolatileImage.IMAGE_INCOMPATIBLE)
{
// old vImg doesn't work with new GraphicsConfig; re-create it
vImg = createVolatileImage(w, h);
}
Graphics2D g = vImg.createGraphics();
//
// miscellaneous rendering commands...
//
g.dispose();
} while (vImg.contentsLost());
}
// copying from the image (here, gScreen is the Graphics
// object for the onscreen window)
do {
int returnCode = vImg.validate(getGraphicsConfiguration());
if (returnCode == VolatileImage.IMAGE_RESTORED) {
// Contents need to be restored
renderOffscreen(); // restore contents
} else if (returnCode == VolatileImage.IMAGE_INCOMPATIBLE) {
// old vImg doesn't work with new GraphicsConfig; re-create it
vImg = createVolatileImage(w, h);
renderOffscreen();
}
gScreen.drawImage(vImg, 0, 0, this);
} while (vImg.contentsLost());
æ
å ±ã¯æœåšçãªImageProducerããåŸãããããããã®ã¯ã©ã¹ã¯ãéåæéç¥ã«ImageObserverãã©ã¡ãŒã¿ã䜿çšããã¡ãœãããå«ãImageã¯ã©ã¹ãããµãã¯ã©ã¹åãããŸãã ãã®VolatileImageã¯éåæãœãŒã¹ããããŒããããªãã®ã§ãImageObserverãã©ã¡ãŒã¿ãæã€è€æ°ã®ã¡ãœããããããŒã¿ãImageProducerããååŸæžã¿ã§ãããã®ããã«åäœããŸãã ããã§éèŠãªããšã¯ããã®ãããªã¡ãœããããã®æ»ãå€ã確èªããŠããæ
å ±ãæå¹ãã©ããã¯å€æã§ããªããšããããšã§ãããããã£ãŠããããã®ã¡ãœããã§äœ¿çšãããŠããImageObserverããéåæã³ãŒã«ããã¯éç¥ã®ããã«èšé²ããå¿
èŠã¯ãããŸããã
| 修食åãšå | ãã£ãŒã«ã | 説æ |
|---|---|---|
static int |
IMAGE_INCOMPATIBLE |
æ€èšŒã€ã¡ãŒãžã¯æž¡ããã
GraphicsConfigurationãªããžã§ã¯ããšäºææ§ããªããããé©åãªåçæãå¿
èŠã§ãã |
static int |
IMAGE_OK |
æ€èšŒã€ã¡ãŒãžã¯ãã®ãŸãŸäœ¿çšå¯èœã§ãã
|
static int |
IMAGE_RESTORED |
æ€èšŒã€ã¡ãŒãžã¯åŸ©å
ããã䜿çšå¯èœã«ãªã£ãŠããŸãã
|
protected int |
transparency |
ãã®ã€ã¡ãŒãžã®äœæã«äœ¿çšãããéæåºŠã®å€ã§ãã
|
accelerationPriority, SCALE_AREA_AVERAGING, SCALE_DEFAULT, SCALE_FAST, SCALE_REPLICATE, SCALE_SMOOTH, UndefinedPropertyBITMASK, OPAQUE, TRANSLUCENT| ã³ã³ã¹ãã©ã¯ã¿ | 説æ |
|---|---|
VolatileImage() |
| 修食åãšå | ã¡ãœãã | 説æ |
|---|---|---|
abstract boolean |
contentsLost() |
æåŸã®
validateåŒåºã以éã«æç»ããŒã¿ã倱ãããŠããå Žåã¯trueã |
abstract Graphics2D |
createGraphics() |
ãã®
VolatileImageã«æç»ããããã«äœ¿çšã§ããGraphics2DãäœæããŸãã |
abstract ImageCapabilities |
getCapabilities() |
ãã®VolatileImageã®åºæã®æ©èœãç
§äŒã§ããImageCapabilitiesãªããžã§ã¯ããè¿ããŸãã
|
Graphics |
getGraphics() |
ãã®ã¡ãœããã¯
Graphics2Dãè¿ããŸãããããã§ã¯äžäœäºææ§ã®ããã«æäŸãããŸãã |
abstract int |
getHeight() |
VolatileImageã®é«ããè¿ããŸãã |
abstract BufferedImage |
getSnapshot() |
ãã®ãªããžã§ã¯ãã®éçãªã¹ãããã·ã§ããã»ã€ã¡ãŒãžãè¿ããŸãã
|
ImageProducer |
getSource() |
ãã®VolatileImageã®ImageProducerãè¿ããŸãã
|
int |
getTransparency() |
éæåºŠãè¿ããŸãã
|
abstract int |
getWidth() |
VolatileImageã®å¹
ãè¿ããŸãã |
abstract int |
validate(GraphicsConfiguration gc) |
æåŸã®
validateåŒåºã以éã«ã€ã¡ãŒãžã®æç»è¡šé¢ã倱ãããŠããå Žåããã®æç»è¡šé¢ã埩å
ããŸãã |
flush, getAccelerationPriority, getCapabilities, getHeight, getProperty, getScaledInstance, getWidth, setAccelerationPrioritypublic static final int IMAGE_OK
public static final int IMAGE_RESTORED
public static final int IMAGE_INCOMPATIBLE
GraphicsConfigurationãªããžã§ã¯ããšäºææ§ããªããããé©åãªåçæãå¿
èŠã§ãã validateãããã®æ»ãå€ãè¿ãããæã«ãã€ã¡ãŒãžããã®ãŸãŸäœ¿çšããå Žåã®çµæã¯äºæž¬ã§ããŸããã protected int transparency
GraphicsConfiguration.createCompatibleVolatileImage(int, int,int)ãGraphicsConfiguration.createCompatibleVolatileImage(int, int,ImageCapabilities,int)ãTransparencypublic abstract BufferedImage getSnapshot()
BufferedImageã¯ãèŠæ±ããã£ãæç¹ã®VolatileImageã®å
容ã ããåæ ãããã®ã§ããããã以éã«VolatileImageã倿ŽãããŠãæŽæ°ãããŸããã VolatileImageã®BufferedImage衚çŸBufferedImagepublic abstract int getWidth()
VolatileImageã®å¹
ãè¿ããŸããVolatileImageã®å¹
ãpublic abstract int getHeight()
VolatileImageã®é«ããè¿ããŸããVolatileImageã®é«ããpublic ImageProducer getSource()
getSourceã®ãããªæäœã§ã¯ããã¯ã»ã«èªèŸŒã¿ã«éç¹ã眮ãããªãæäœãããããã©ãŒãã³ã¹ãèœã¡ãŸãã ã€ã¡ãŒãžããèªã¿èŸŒãŸãããã¯ã»ã«å€ã¯ãååŸãããæç¹ã®å
容ã ããåæ ãããã®ã§ãã ãã®ã¡ãœããã¯èŠæ±ãããæç¹ã®ã€ã¡ãŒãžã®ã¹ãããã·ã§ãããååŸããŸããè¿ãããImageProducerãªããžã§ã¯ãã¯éçãªã¹ãããã·ã§ããã»ã€ã¡ãŒãžã§ããããªãªãžãã«ã®VolatileImageã§ã¯ãããŸããã getSource()ãåŒã³åºããšãgetSnapshot().getSource()ãåŒã³åºããå ŽåãšåãçµæãåŸãããŸãã getSourceãã¯ã©ã¹ImageBufferedImage衚çŸã®ãã¯ã»ã«çæã«äœ¿çšå¯èœãªImageProducerãImageProducerãgetSnapshot()public Graphics getGraphics()
Graphics2Dãè¿ããŸãããããã§ã¯äžäœäºæã®ããã«æäŸãããŸããGraphics2Dãè¿ãããã«å®£èšãããŠãããããcreateGraphicsã®æ¹ã䟿å©ã§ããgetGraphicsãã¯ã©ã¹ImageGraphics2DãGraphicsãComponent.createImage(int, int)public abstract Graphics2D createGraphics()
VolatileImageã«æç»ããããã«äœ¿çšã§ããGraphics2DãäœæããŸããGraphics2Dãpublic abstract int validate(GraphicsConfiguration gc)
validateåŒåºã以éã«ã€ã¡ãŒãžã®æç»è¡šé¢ã倱ãããŠããå Žåããã®æç»è¡šé¢ã埩å
ããŸãã ããã«ãã®ã€ã¡ãŒãžãæå®ãããGraphicsConfigurationãã©ã¡ãŒã¿ã«å¯ŸããŠæ€èšŒãããã®ã€ã¡ãŒãžããGraphicsConfigurationãžã®æäœãäºææ§ãæã€ãã©ããã確èªããŸãã äºææ§ãæããªãçµã¿åãããèããããã®ã¯ãVolatileImageãªããžã§ã¯ããããã°ã©ãã£ãã¯ã»ããã€ã¹äžã§çæãããå¥ã®ã°ã©ãã£ãã¯ã»ããã€ã¹äžã§æç»ã«äœ¿çšããããããªå Žåã§ãã VolatileImageãªããžã§ã¯ãã¯ããã€ã¹åºæã®ãã®ãšãªãåŸåã匷ãã®ã§ããã®ãããªå Žåã§ã¯æå³ãããšããã«åäœããªãå¯èœæ§ãããããã®validateåŒåºãã®æ»ãå€ã§ãã®äžæŽåãéç¥ãããŸãã gcã«å¯Ÿããå€ãnullã®å Žåããããã¯äžæ£ãªå Žåã¯ãvalidateããäžæ£ãªå€ãè¿ãããããšã§æç»ã«ã€ããŠã®åé¡ãçºçããå¯èœæ§ããããŸãã gc - ãã®ã€ã¡ãŒãžã«å¯ŸããŠæ€èšŒãããGraphicsConfigurationãªããžã§ã¯ãã gcãnullã®å Žåãæ€èšŒã¡ãœããã®äºæãã¹ããã¹ãããããã IMAGE_OKIMAGE_RESTOREDã ã€ã¡ãŒãžã®åŸ©å
ãè¡ã£ãå Žåã¯ãå
容ã«åœ±é¿ããŠãããããã€ã¡ãŒãžã®åæç»ãå¿
èŠãªå¯èœæ§ãããã validateã¡ãœããã«æž¡ãããGraphicsConfigurationãªããžã§ã¯ããšäºææ§ããªãå Žåã¯IMAGE_INCOMPATIBLEã ãã®å Žåããã®GraphicsConfigurationã§æ£åžžã«äœ¿çšå¯èœãªã€ã¡ãŒãžãåŸããããæ°ããComponentãŸãã¯GraphicsConfigurationã䜿çšããŠãã€ã¡ãŒãžã®åäœæãå¿
èŠã«ãªãã äºææ§ã®ãªãã€ã¡ãŒãžã«ã€ããŠã¯ã埩å
ãå¿
èŠãã©ããã®ãã§ãã¯ã¯å®è¡ããããIMAGE_INCOMPATIBLEãæ»ãããåŸãã€ã¡ãŒãžã®ç¶æ
ã¯å€æŽãããªããã€ã¡ãŒãžã®åŸ©å
ãå¿
èŠãã©ããã¯ãã®æ»ãå€ã§ã¯å€æã§ããªãã GraphicsConfiguration, Component, IMAGE_OK, IMAGE_RESTORED, IMAGE_INCOMPATIBLEpublic abstract boolean contentsLost()
validateåŒåºã以éã«æç»ããŒã¿ã倱ãããŠããå Žåã¯trueã ãã®ã¡ãœããã¯ã€ã¡ãŒãžã«é¢é£ããäžé£ã®æç»åŠçã®æåŸã«ãã¢ããªã±ãŒã·ã§ã³ããåŒã³åºãããã€ã¡ãŒãžã®æ€èšŒãåæç»ãå¿
èŠãã©ããã確èªããŸãã trueãããã§ãªãå Žåã¯falseãpublic abstract ImageCapabilities getCapabilities()
VolatileImageã®æ©èœã«ã€ããŠã®æ
å ±ãæã€ImageCapabilitiesãªããžã§ã¯ããpublic int getTransparency()
getTransparencyãã€ã³ã¿ãã§ãŒã¹TransparencyVolatileImageã®éæåºŠãTransparency.OPAQUE, Transparency.BITMASK, Transparency.TRANSLUCENT ãã°ãŸãã¯æ©èœãéä¿¡
詳现ãªAPIãªãã¡ã¬ã³ã¹ããã³éçºè
ããã¥ã¡ã³ãã«ã€ããŠã¯ãJava SEã®ããã¥ã¡ã³ããåç
§ããŠãã ããã ãã®ããã¥ã¡ã³ãã«ã¯ãæŠå¿µçãªæŠèŠãçšèªã®å®çŸ©ãåé¿æ¹æ³ãæå¹ãªã³ãŒãäŸãªã©ã®ãéçºè
ã察象ã«ãããã詳现ãªèª¬æãå«ãŸããŠããŸãã
Copyright © 1993, 2025, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Documentation Redistribution Policyãåç
§ããŠãã ããã