@Override
public void drawScene(Snowflake[] scene, ScreenParameters screenParameters) {
if (DEBUG_SHOW_FPS) fpsCounter.recordFrame();
BufferStrategy strategy = getBufferStrategy();
do {
do {
Graphics2D g2d = (Graphics2D) strategy.getDrawGraphics();
SnowFlake3DRenderer snowFlake3DRenderer = new AwtSnowflakeRenderer(g2d, screenParameters);
drawBackground(g2d, screenParameters);
for (Snowflake snowflake : scene) {
snowFlake3DRenderer.renderSnowflake(snowflake.x + xoffset, snowflake.y, snowflake.size, snowflake.z, screenParameters);
}
if (DEBUG_SHOW_FPS) {
g2d.setColor(Color.white);
g2d.drawString(String.format("%.2f min FPS", fpsCounter.getMinFps()), 20, 20);
g2d.drawString(String.format("%.2f max FPS", fpsCounter.getMaxFps()), 20, 35);
}
g2d.dispose();
} while (strategy.contentsRestored());
strategy.show();
DEFAULT_TOOLKIT.sync(); // Seems like this is necessary on Ubuntu for smooth animation
} while (strategy.contentsLost());
}
java类java.awt.image.BufferStrategy的实例源码
AwtCanvasPainter.java 文件源码
项目:snowstorm
阅读 24
收藏 0
点赞 0
评论 0
VSyncedBSManager.java 文件源码
项目:jdk8u-jdk
阅读 19
收藏 0
点赞 0
评论 0
/**
* Lets the manager know that this buffer strategy is no longer interested
* in being v-synced.
*/
public static synchronized void releaseVsync(BufferStrategy bs) {
VSyncedBSManager bsm = getInstance(false);
if (bsm != null) {
bsm.relinquishVsync(bs);
}
}
VSyncedBSManager.java 文件源码
项目:jdk8u-jdk
阅读 21
收藏 0
点赞 0
评论 0
@Override
public synchronized boolean checkAllowed(BufferStrategy bs) {
if (strategy != null) {
BufferStrategy current = strategy.get();
if (current != null) {
return (current == bs);
}
}
strategy = new WeakReference<BufferStrategy>(bs);
return true;
}
VSyncedBSManager.java 文件源码
项目:jdk8u-jdk
阅读 22
收藏 0
点赞 0
评论 0
@Override
public synchronized void relinquishVsync(BufferStrategy bs) {
if (strategy != null) {
BufferStrategy b = strategy.get();
if (b == bs) {
strategy.clear();
strategy = null;
}
}
}
BufferStrategyExceptionTest.java 文件源码
项目:jdk8u-jdk
阅读 27
收藏 0
点赞 0
评论 0
public void render() {
ImageCapabilities imgBackBufCap = new ImageCapabilities(true);
ImageCapabilities imgFrontBufCap = new ImageCapabilities(true);
BufferCapabilities bufCap =
new BufferCapabilities(imgFrontBufCap,
imgBackBufCap, BufferCapabilities.FlipContents.COPIED);
try {
createBufferStrategy(2, bufCap);
} catch (AWTException ex) {
createBufferStrategy(2);
}
BufferStrategy bs = getBufferStrategy();
do {
Graphics g = bs.getDrawGraphics();
g.setColor(Color.green);
g.fillRect(0, 0, getWidth(), getHeight());
g.setColor(Color.red);
g.drawString("Rendering test", 20, 20);
g.drawImage(bi, 50, 50, null);
g.dispose();
bs.show();
} while (bs.contentsLost()||bs.contentsRestored());
}
VSyncedBSManager.java 文件源码
项目:openjdk-jdk10
阅读 23
收藏 0
点赞 0
评论 0
/**
* Lets the manager know that this buffer strategy is no longer interested
* in being v-synced.
*/
public static synchronized void releaseVsync(BufferStrategy bs) {
VSyncedBSManager bsm = getInstance(false);
if (bsm != null) {
bsm.relinquishVsync(bs);
}
}
VSyncedBSManager.java 文件源码
项目:openjdk-jdk10
阅读 30
收藏 0
点赞 0
评论 0
@Override
public synchronized boolean checkAllowed(BufferStrategy bs) {
if (strategy != null) {
BufferStrategy current = strategy.get();
if (current != null) {
return (current == bs);
}
}
strategy = new WeakReference<BufferStrategy>(bs);
return true;
}
VSyncedBSManager.java 文件源码
项目:openjdk-jdk10
阅读 21
收藏 0
点赞 0
评论 0
@Override
public synchronized void relinquishVsync(BufferStrategy bs) {
if (strategy != null) {
BufferStrategy b = strategy.get();
if (b == bs) {
strategy.clear();
strategy = null;
}
}
}
BufferStrategyExceptionTest.java 文件源码
项目:openjdk-jdk10
阅读 25
收藏 0
点赞 0
评论 0
public void render() {
ImageCapabilities imgBackBufCap = new ImageCapabilities(true);
ImageCapabilities imgFrontBufCap = new ImageCapabilities(true);
BufferCapabilities bufCap =
new BufferCapabilities(imgFrontBufCap,
imgBackBufCap, BufferCapabilities.FlipContents.COPIED);
try {
createBufferStrategy(2, bufCap);
} catch (AWTException ex) {
createBufferStrategy(2);
}
BufferStrategy bs = getBufferStrategy();
do {
Graphics g = bs.getDrawGraphics();
g.setColor(Color.green);
g.fillRect(0, 0, getWidth(), getHeight());
g.setColor(Color.red);
g.drawString("Rendering test", 20, 20);
g.drawImage(bi, 50, 50, null);
g.dispose();
bs.show();
} while (bs.contentsLost()||bs.contentsRestored());
}
VSyncedBSManager.java 文件源码
项目:openjdk9
阅读 22
收藏 0
点赞 0
评论 0
/**
* Lets the manager know that this buffer strategy is no longer interested
* in being v-synced.
*/
public static synchronized void releaseVsync(BufferStrategy bs) {
VSyncedBSManager bsm = getInstance(false);
if (bsm != null) {
bsm.relinquishVsync(bs);
}
}