2D-Grafik Windows Blue-Screen nach anzeigen eines Bildes in Java

JavaGamer

Bekanntes Mitglied
Hallo,

ich habe leider ein sehr großes Problem:
Jedes mal wenn ich meine Anwendung starte die nur ein Bild anzeigt (momentan), stürtzt der Grafikkartentreiber ab und startet sich neu und stürtzt wieder ab. Dies wiederholt sich so oft bis der Pc sich mit einem "Blue Screen" verabschiedet.

Leider habe ich keine Ahnung woran das Problem liegt, zumal es bei anderen Anwendungen ja funktioniert. Hier der Code:

BufferedImageLoader
Java:
public class BufferedImageLoader 
{
	
	public BufferedImage image;
	
	public BufferedImage loadImage(Class<?> clazz, String path, boolean inJar)
	{
		try
		{
			if(inJar)
				this.image = ImageIO.read(clazz.getResource(path));
			else
				this.image = ImageIO.read(new File(path));
		}
		catch(IOException e)
		{
			e.printStackTrace();
		}
		
		return this.image;
	}
}

Main-Class
Java:
	private void init()
	{
		BufferedImageLoader loader = new BufferedImageLoader();
		
		engine = loader.loadImage(this.getClass(), "/textures/xxxx.png", true);
        }

	private void render()
	{
		BufferStrategy bs = this.getBufferStrategy();
		
		if(bs == null)
		{
			this.createBufferStrategy(3);
			return;
		}
		
		Graphics g = bs.getDrawGraphics();
		////////////////////////////////////
		
		// Draw here
		g.setColor(Color.DARK_GRAY);

                g.drawImage(engine, (int)0, (int)0, 720, 480, null);
                
		////////////////////////////////////
		
		g.dispose();
		bs.show();
	}

Zudem hat das Bild eine Auflösung von 720*480px. Zudem verwende ich eine NVIDIA Geforce GTX 660 Grafikkarte mit aktuellstem Treiber und Java 8 Update 25.

Ich hoffe jemand kann mir hierbei helfen.
JavaGamer
 
Hi,
interessanten Phänomen jedenfalls 😵. Hast du es mit einem anderen Bild Probiert? Hast du eine andere Java version Probiert oder eine andere Grafikkarte?
 
Hi,
interessanten Phänomen jedenfalls 😵. Hast du es mit einem anderen Bild Probiert? Hast du eine andere Java version Probiert oder eine andere Grafikkarte?
Also an einer anderen Grafikkarte kann ich es leider nicht testen. An anderem Bildern habe ich es bereits ausgetestet: funktioniert auch nicht.
Zudem bin ich aber darauf gestoßen, dass auch wenn ich die Zeile zum Anzeigen entferne, selbst dann erhalte ich noch einen "bluescreen". Da es ohne die Lademethoden ja funktioniert muss es wohl daran liegen.

Mit einer anderen Javaversion? Nun ja, ich habe ein anderes Programm, das fast genauso funktioniert und dort passiert kein Fehler (was in Java 7 programmiert wurde). Also eigentlich ist der einzige Unterschied, dass bei diesem Programm wo ich hier den Fehler erhalte, die Klasse "BufferedImageLoader" in einer anderen .jar liegt und darum muss die Klasse ja auch übergeben werden, damit die Bilder aus der Game.jar geladen werden und nicht in der Engine.jar gesucht wird.
Da ich aber keine NPE oder so erhalten, findet er die Datei anscheinend.
 
Dann würde ich davon ausgehen das das Bild auf dem Weg zum Programm nicht ankommt oder das du etwas an dem Bild veränderst was in deiner Grafikkarte nicht mehr verstanden wird. Was genau tust du denn mit dem Bild bevor es das ersten mal gezeichnet werden soll?
Und hast du mal versucht was passiert wenn du das Bild gar nicht zeichnen lässt sondern nu Lädst?
 
Dann würde ich davon ausgehen das das Bild auf dem Weg zum Programm nicht ankommt oder das du etwas an dem Bild veränderst was in deiner Grafikkarte nicht mehr verstanden wird. Was genau tust du denn mit dem Bild bevor es das ersten mal gezeichnet werden soll?
Und hast du mal versucht was passiert wenn du das Bild gar nicht zeichnen lässt sondern nu Lädst?
Also eigentlich wird nur das Bild geladen und dann angezeigt und wie bereits weiter oben erklärt habe ich bereits versucht nur das Bild zu laden, ohne dass dieses angezeigt wird, allerdings hat dies garkeine Auswirkung.

Zudem scheint es ohne die Übergabe von "this.getClass()" zu funktionieren, was mir allerdings eher wenig hilft, da die Klasse die das Bild lädt in einer anderen .jar liegt als das Programm mit dem Bild.
 
Hmm also ich würde jetzt sagen mach es über einen Ordner wenn das doch Funktioniert. Wenn du das Bild dann aus verschiedenen Programmen nutzt könntest du einen Ordner im AppData Ordner anlegen lassen da guckt ein DAU nie nach.
 
Ok, also irgendetwas hat mir da die Anwendung zerschossen. Da eigentlich sollte es ja ohne laden der Bilder oder ganz ohne die dazu nötige Klasse funktionieren aber irgendwie streikt der jetzt auch da rum. Zudem habe ich festgestellt dass nun nicht nur der Treiber der Grafikkarte betroffen ist, sondern auch die CPU, sobald ich meine Anwendung starte, flackert der Bildschirm wegen ständigen Abstürzen des Grafikkartentreibers. Zudem bewegt sich alles nur noch in Zeitlupe, da die CPU dann auf einmal auf 100% springt :autsch: und mitlerweile habe ich sogar den Status erreicht, dass der Pc sagt: Java reagiert nicht mehr (kurz darauf schafft er es trotzdem zu schließen) :shock:

Also ich bin nun entgültig ratlos! 😕😕
 
Ok, bin jetzt von vorne angefangen. Dabei ist mir aufgefallen dass ich das
Java:
		graphics.dispose();
		bs.show();
vergessen habe.
 

Zurück
Oben