java双显卡_Java硬件加速不适用于英特尔集成显卡

大家好,我希望有人可以帮我解决这个问题.我在使用英特尔集成显卡的笔记本电脑上进行硬件加速时遇到了麻烦.

问题:

使用Java 7更新11的硬件加速似乎不适用于使用带有JFrame的BufferStrategy的Windows 7和8计算机上的Intel Integrated Graphics.

细节

显卡:英特尔(R)HD Graphics 4000

JRE:Java 7 Update 11

操作系统:Windows 7,Windows 8

预期成绩

实际结果

资源

如果您想验证问题,可以下载我为测试创建的应用程序:http://ndcubed.com/downloads/GraphicsTest.zip

如果您不方便下载已编译的JAR文件,可以使用以下源代码自行编译应用程序:

package graphicstest;

import javax.swing.*;

import java.awt.*;

import java.awt.image.BufferStrategy;

public class GraphicsTest extends JFrame {

public static void main(String[] args) {

SwingUtilities.invokeLater(new Runnable() {

public void run() {

new GraphicsTest();

}

});

}

GraphicsConfiguration gc = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().getDefaultConfiguration();

BufferCapabilities bufferCapabilities;

BufferStrategy bufferStrategy;

int y = 0;

int delta = 1;

public GraphicsTest() {

setTitle("Hardware Acceleration Test");

setSize(500, 300);

setLocationRelativeTo(null);

setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

setVisible(true);

createBufferStrategy(2);

bufferStrategy = getBufferStrategy();

bufferCapabilities = gc.getBufferCapabilities();

new AnimationThread().start();

}

class AnimationThread extends Thread {

@Override

public void run() {

while(true) {

Graphics2D g2 = null;

try {

g2 = (Graphics2D) bufferStrategy.getDrawGraphics();

draw(g2);

} finally {

if(g2 != null) g2.dispose();

}

bufferStrategy.show();

try {

Thread.sleep(16);

} catch(Exception err) {

err.printStackTrace();

}

}

}

}

public void draw(Graphics2D g2) {

if(!bufferCapabilities.isPageFlipping() || bufferCapabilities.isFullScreenRequired()) {

g2.setColor(Color.black);

g2.fillRect(0, 0, getWidth(), getHeight());

g2.setColor(Color.red);

g2.drawString("Hardware Acceleration is not supported...", 100, 100);

g2.setColor(Color.white);

g2.drawString("Page Flipping: " + (bufferCapabilities.isPageFlipping() ? "Available" : "Not Supported"), 100, 130);

g2.drawString("Full Screen Required: " + (bufferCapabilities.isFullScreenRequired() ? "Required" : "Not Required"), 100, 160);

g2.drawString("Multiple Buffer Capable: " + (bufferCapabilities.isMultiBufferAvailable() ? "Yes" : "No"), 100, 190);

} else {

g2.setColor(Color.black);

g2.fillRect(0, 0, getWidth(), getHeight());

g2.setColor(Color.white);

g2.drawString("Hardware Acceleration is Working...", 100, 100);

g2.drawString("Page Flipping: " + (bufferCapabilities.isPageFlipping() ? "Available" : "Not Supported"), 100, 130);

g2.drawString("Full Screen Required: " + (bufferCapabilities.isFullScreenRequired() ? "Required" : "Not Required"), 100, 160);

g2.drawString("Multiple Buffer Capable: " + (bufferCapabilities.isMultiBufferAvailable() ? "Yes" : "No"), 100, 190);

}

y += delta;

if((y + 50) > getHeight() || y < 0) {

delta *= -1;

}

g2.setColor(Color.blue);

g2.fillRect(getWidth()-50, y, 50, 50);

}

}

结论

如果没有硬件加速,我创建的很多应用程序都需要它在集成显卡的机器上运行缓慢.我真的很困惑,为什么它不专门使用这种类型的显卡.无论如何,谢谢你阅读所有这些希望我们可以到达这个:)的底部!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值