पर त्वरित नहीं हुआ है हम वर्तमान में जावा 2 डी एपीआई का उपयोग कर जावा में एक गेम विकसित कर रहे हैं और उबंटू पर्यावरण में इसे चलाने के दौरान कुछ अजीब प्रदर्शन मुद्दों का सामना कर रहे हैं।जावा 2 डी: बुफर्ड इमेज उबंटू
हमारी फ्रेम दर विंडोज और मैक सिस्टम पर 62fps के औसत से उबंटू पर लगभग 10fps तक गिर जाती है। डिबगिंग और विभिन्न JVM झंडे परीक्षण के कुछ ही घंटों के बाद यह है कि बिटमास्क का उपयोग कर BufferedImages उबंटू के तहत त्वरित किया जा रहा नहीं कर रहे हैं क्योंकि झूठे
System.out.println(img.getCapabilities(config).isAccelerated());
प्रिंट बाहर लगता है।
वर्तमान में हम के माध्यम से
img = ImageIO.read(url);
हमारे छवियों को लोड कर रहे हैं और उसके बाद निम्न विधि का उपयोग कर एक युक्ति संगत BufferedImage पैदा कर रहे:
private static BufferedImage createCompatibleImage(BufferedImage img) {
// Get default graphics device
GraphicsDeviceService graphicsDevice = ServiceProvider
.getService(GraphicsDeviceService.class);
GraphicsConfiguration config = graphicsDevice
.getGraphicsConfiguration();
// Get desired transparency mode
int transparency = img.getColorModel().hasAlpha() ? Transparency.BITMASK
: Transparency.OPAQUE;
// Create device compatible buffered image
BufferedImage ret = config.createCompatibleImage(img.getWidth(),
img.getHeight(), transparency);
// Draw old image onto new compatible image
Graphics2D graphics = ret.createGraphics();
graphics.drawImage(img, 0, 0, null);
graphics.dispose();
// Return compatible image
return ret;
}
जब Transparency.OPAQUE का उपयोग कर संगत BufferedImages बनाने, झंडा उपरोक्त कोड की पहली पंक्ति सत्य प्रिंट करती है, जो इंगित करती है कि छवि अब तेज हो गई है और फ्रेम दर सामान्य पर वापस आती है।
हालांकि यह निश्चित रूप से हमारे वांछित समाधान नहीं है क्योंकि छवियों को बिना पारदर्शिता के खींचा जाता है और इसके बदले बदसूरत काले पृष्ठभूमि होती है।
तो, क्या किसी को इस समस्या का समाधान पता है?
आप उबंटू में एक वीडियो ड्राइवर कि हार्डवेयर-त्वरित ग्राफिक्स का समर्थन करता है का उपयोग कर रहे हैं? – Jesper
हां, मैं एक वीडियो ड्राइवर का उपयोग कर रहा हूं जो हार्डवेयर त्वरण का समर्थन करता है और जैसा कि कोई पारदर्शिता शामिल नहीं है, खेल के ऊपर बताए गए ठीक है। – Scott
मैं सुझाव दिया गया है कि एक्सेलेरेटेड() कोड में कदम उठाना और यह पता लगाना कि यह झूठी क्यों लौट रहा है। – Gili