小编nep*_*692的帖子

Java硬件加速不适用于英特尔集成显卡

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

问题:

使用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://i.stack.imgur.com/PmCoZ.png).


实际结果

实际结果图(http://i.stack.imgur.com/P3gkb.png).


资源

如果您想验证问题,可以下载我为测试而创建的应用程序: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 …
Run Code Online (Sandbox Code Playgroud)

java hardware integrated hardware-acceleration

9
推荐指数
1
解决办法
5186
查看次数

Android画布和硬件加速?

大家好,我想知道是否有可能绘制到屏幕外的Canvas / Bitmap并利用硬件加速,还是我必须在内部绘制onDraw()方法?View

例如,我通过执行以下操作绘制到屏幕外的位图:

Bitmap.Config config = Bitmap.Config.ARGB_8888;
Bitmap buffer = Bitmap.createBitmap(200, 200, config);
Canvas canvas = new Canvas(buffer);
Paint paint = new Paint();
paint.setColor(Color.RED);
canvas.drawLine(0, 0, 100, 100, paint);
Run Code Online (Sandbox Code Playgroud)

但是canvas.isHardwareAccelerated()返回false,与以下内容相比,绘制速度较慢:

protected void onDraw(Canvas canvas) {

    Paint paint = new Paint();
    paint.setColor(Color.RED);

    canvas.drawLine(0, 0, 100, 100, paint);
}
Run Code Online (Sandbox Code Playgroud)

其中,canvas.isHardwareAccelerated()返回true。有没有一种方法可以利用硬件加速来绘制位图?还是我必须使用onDraw方法直接绘制到屏幕上?

谢谢您的帮助:)我知道在Java中我可以在屏幕外绘制BufferedImage,它将通过硬件加速,但也许在手机上不一样...

android hardware-acceleration ondraw

5
推荐指数
1
解决办法
1万
查看次数

Java/Swing如何处理不同的屏幕DPI和密度设置?

大家好,我最近遇到的问题是,现在有些显示器有不同的DPI设置,有些显示器更密集,例如Apple的Retina显示器.

如何用Java补偿各种监视器上的不同DPI设置和密度?是否可以在任何监视器上将控件缩放为相同的大小.我知道在为Android编程时,所有测量都在"DP"中,您可以为三种不同的显示密度指定不同的图像.

有没有办法可以使用Java/Swing为不同的显示密度选择不同的图像,这样我的应用程序在高密度显示器上看起来并不模糊?或者这不是那么重要或可能吗?我知道Chrome目前没有考虑DPI,但是Internet Explorer和其他应用程序也是如此.

谢谢你的帮助,我是Java开发人员,我以前从未考虑过DPI,并且想知道如何去做它:)

java swing dpi

5
推荐指数
1
解决办法
2872
查看次数