के साथ काम नहीं कर रहा है हाय सबको मुझे उम्मीद है कि कोई इस समस्या को हल करने में मेरी सहायता कर सकता है। मुझे इंटेल इंटीग्रेटेड ग्राफिक्स के साथ लैपटॉप पर काम करने के लिए हार्डवेयर त्वरण प्राप्त करने में परेशानी हो रही है।जावा हार्डवेयर त्वरण इंटेल इंटीग्रेटेड ग्राफिक्स
समस्या:
हार्डवेयर त्वरण जावा 7 अद्यतन 11 का उपयोग कर एक विंडोज 7 और 8 मशीन एक JFrame के साथ एक BufferStrategy के प्रयोग पर इंटेल एकीकृत ग्राफिक्स के साथ काम करने प्रकट नहीं होता है।
विवरण
ग्राफिक्स कार्ड: इंटेल (आर) HD ग्राफ़िक्स 4000
JRE: जावा 7 अद्यतन 11
ओएस: विंडोज 7, विंडोज 8
अपेक्षित परिणाम
वास्तविक परिणाम
संसाधन
आप आप मैं कम से परीक्षण के लिए बनाई गई एप्लिकेशन डाउनलोड कर सकते समस्या सत्यापित करने के लिए करना चाहते हैं: http://ndcubed.com/downloads/GraphicsTest.zip
यदि आपके पास एक संकलित जेएआर फ़ाइल को डाउनलोड करने में सहज महसूस नहीं होता है, आप निम्न स्रोत कोड का उपयोग कर स्वयं को संकलित कर सकते हैं:
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);
}
}
निष्कर्ष
हार्डवेयर त्वरण के बिना क्षुधा है कि मैं बना लिया है यह एकीकृत ग्राफिक्स के साथ मशीन पर धीरे चल अपेक्षा करते हैं कि का एक बहुत। यह वास्तव में मेरे लिए परेशान है कि यह विशेष रूप से इस प्रकार के ग्राफिक्स कार्ड के साथ क्यों काम नहीं कर रहा है। वैसे भी यह सब उम्मीदवारों को पढ़ने के लिए धन्यवाद, हम इस के नीचे पहुंच सकते हैं :)!
ऐसी पोस्ट के लिए धन्यवाद! – UDPLover