Ich habe ein Android-Spiel entwickelt, das von vielen Leuten gespielt wird. Ein Benutzer von 100-200 ist mit einer Ausnahme konfrontiert, die ich nicht nachvollziehen kann.
Ich benutze eine RenderTexture , das die folgende Ausnahme auslöst, wenn ich versuche, es zu initialisieren:
%Vor%Es funktioniert auf 99% aller Geräte. Die init-Methode sieht folgendermaßen aus:
%Vor%Es scheint, dass etwas mit dem FrameBuffer-Status nicht stimmt ...
Aktualisieren
Eine Liste der Telefone, bei denen der Absturz bisher aufgetreten ist:
%Vor%Basierend auf dem Code, den Sie verlinkt haben, sieht es so aus, als wollten Sie eine RGBA8888 Textur rendern. Dies ist nicht immer auf OpenGL ES 2.0-Geräten verfügbar, da es auf eine Zeit zurückgeht, als die meisten Geräte 16-Bit-Anzeigen verwendeten.
Die einzigen obligatorischen Formate in OpenGL ES 2.x sind in der Spezifikation unter dem Fehlercode dokumentiert, den Sie erhalten ...
RGBA8-Ziele sind nur verfügbar, wenn diese Erweiterung verfügbar gemacht wird:
... daher ist es sehr ähnlich, dass einige Benutzer ein älteres Gerät mit einer GPU verwenden, die diese Erweiterung nicht freigibt. Um zu überprüfen, ob die Erweiterung unterstützt wird, verwenden Sie glGetString
(siehe unten) mit GL_EXTENSIONS
:
... und sehen, ob der Wert OES_rgb_rgba8
in dieser Liste vorhanden ist. Wenn dies nicht der Fall ist, ist Ihre einzige echte Option, auf etwas anderes im obligatorischen ES2.x-Format wie RGB565 oder RGB5_A1 zurückzugreifen.
Tags und Links android opengl-es opengl-es-2.0 andengine