Tag: 硬件加速

是否可以在Windows 2008服务器上使用Java FX启用硬件加速?

正如本问题中所讨论的,通过将-Dprism.verbose=true作为系统属性传递,可以检测Java FX是否正在使用硬件加速。 当我在Windows 2008 Server R2上的Java FX应用程序上执行此操作时,显然会回退到软件渲染: Prism pipeline init order: d3d j2d Using t2k for text rasterization Using dirty region optimizations Prism pipeline name = com.sun.prism.d3d.D3DPipeline Loading D3D native library … succeeded. Direct3D initialization failed Wrong operating system version (X) Got class = class com.sun.prism.d3d.D3DPipeline GraphicsPipeline.createPipeline: error initializing pipeline com.sun.prism.d3d.D3DPipeline *** Fallback to Prism […]

Java硬件加速

我花了一些时间研究Java的硬件加速function,我仍然有点困惑,因为我没有直接在网上找到的网站,并清楚地回答了我的一些问题。 以下是我对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() 在一个教程中,我一直在阅读有关正确设置渲染窗口的一些一般概念( 教程 )它使用getCompatibleImage方法,我相信它返回一个BufferedImage,以获得快速绘制的“硬件加速”图像,这引起了质疑2关于它是否是硬件加速的。 4)这是较少的硬件加速,但它是我一直很好奇的事情:我需要订购哪些图形被绘制? 我知道当通过C / C ++使用OpenGL时,最好确保在需要一次绘制的所有位置绘制相同的图形,以减少当前纹理需要切换的次数。 从我所看到的情况来看,似乎Java会为我照顾这一点,并确保以最佳方式绘制事物,但同样,没有任何事情能够清楚地说出这样的事情。 5)什么AWT / Swing类支持硬件加速,应该使用哪些? 我目前正在使用一个扩展JFrame的类来创建一个窗口,并添加一个Canvas来创建一个BufferStrategy。 这是一个好的做法,还是有其他类型的方式我应该实现这个? 非常感谢您的时间,我希望我提供了明确的问题和足够的信息,以便您回答我的几个问题。