首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Java硬件加速

Java硬件加速
EN

Stack Overflow用户
提问于 2011-01-07 23:48:28
回答 1查看 26K关注 0票数 20

我已经花了一些时间研究Java的硬件加速功能,我仍然有点困惑,因为我在网上找到的网站没有一个直接和明确地回答了我的一些问题。下面是我对Java硬件加速的一些问题:

1)在Eclipse 3.6.0版本中,对于Mac OS X的最新Java更新(我认为是1.6u10),硬件加速是默认启用的吗?我在某处读到过

someCanvas.getGraphicsConfiguration().getBufferCapabilities().isPageFlipping()

应该给出是否启用了硬件加速的指示,当在我的主Canvas实例上运行以绘制时,我的程序将报告true。如果现在或默认情况下没有启用硬件加速,我必须执行什么操作才能启用它?

2)我已经看过几篇关于BufferedImage和VolatileImage区别的文章,主要是说VolatileImage是硬件加速的镜像,存储在VRAM中,用于快速复制操作。然而,我也发现了一些实例,据说BufferedImage也是硬件加速的。BufferedImage硬件在我的环境中是否也得到了加速?如果这两种类型都是硬件加速的,使用VolatileImage的优势是什么?我的主要假设是,在两者都有加速的情况下拥有VolatileImage的优势是,VolatileImage能够检测到它的VRAM何时被转储。但是,如果BufferedImage现在也支持加速,它不是也有内置的相同类型的检测,只是对用户隐藏,以防内存被转储?

3)使用

someGraphicsConfiguration.getCompatibleImage/getCompatibleVolatileImage()

而不是

ImageIO.read()

在一个教程中,我已经阅读了一些关于正确设置渲染窗口(tutorial)的一般概念,它使用getCompatibleImage方法,我相信该方法返回一个BufferedImage,以获得用于快速绘制的“硬件加速”图像,这与问题2有关是否它是硬件加速。

4)这是较少的硬件加速,但这是我一直好奇的事情:我需要按顺序绘制哪些图形吗?我知道,当通过C/C++使用OpenGL时,最好确保在所有需要一次绘制的位置绘制相同的图形,以减少当前纹理需要切换的次数。根据我所读到的,Java似乎会为我解决这一问题,并确保以最优的方式绘制,但同样,从来没有人清楚地说过这样的事情。

5)哪些AWT/Swing类支持硬件加速,应该使用哪些?我目前正在使用一个扩展JFrame的类来创建一个窗口,并在其中添加一个画布来创建一个BufferStrategy。这是一种很好的实践吗?或者有没有其他类型的方法来实现它?

非常感谢您的时间,我希望我为您提供了清晰的问题和足够的信息来回答我的几个问题。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4627320

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档