Ich habe die ANGLE dlls für eine Weile verwendet, um OpenGLES2.0-Code unter Windows von 32-Bit-Python (pi3d-Modul) auszuführen, aber ich kann es nicht mit 64 arbeiten Bits. Ich habe compiled the libraries und in einem Stadium, auf einem anderen Laptop, zu dem ich jetzt keinen Zugang habe, ist es weiter gekommen. Dies ist eine abgespeckte Version des Codes, der den Punkt reproduziert, an dem er momentan stoppt.eglInitialize Fehler mit ANGLE dll von Python 64 Bit
import ctypes
import pygame
import os
EGL_DEFAULT_DISPLAY = 0
EGL_NO_DISPLAY = 0
EGL_TRUE = 1
pygame.init()
d = pygame.display.set_mode((0, 0), pygame.DOUBLEBUF | pygame.RESIZABLE | pygame.OPENGL)
info = pygame.display.Info()
width, height = info.current_w, info.current_h
#path = "C:/Program Files (x86)/Google/Chrome/Application/42.0.2311.152"
#path = "C:\\Program Files (x86)\\Google\Chrome\\Application\\42.0.2311.135"
path = "" # compiled ANGLE dll files in same directory
d3dcompiler = ctypes.WinDLL(os.path.join(path, "d3dcompiler_47.dll"))
opengles = ctypes.WinDLL(os.path.join(path, "libglesv2.dll"))
openegl = ctypes.WinDLL(os.path.join(path, "libegl.dll"))
display = openegl.eglGetDisplay(EGL_DEFAULT_DISPLAY)
assert display != EGL_NO_DISPLAY #<<<<<<<<<<<<<<<<<<<<<<
r = openegl.eglInitialize(display, None, None)
print('eglInitialize() returned {}'.format(r))
assert r == EGL_TRUE #<<<<<<<<<<<<<<<<<<<<<<
Danke für diese Hilfe. Das hat den Trick gemacht. Die liberale Spezifikation von Argtypen mit Void-Zeigern funktioniert auf 64-Bit-Fenstern. Ich muss nur überprüfen, dass es immer noch auf einem 32-Bit-System funktioniert. (Anmerkung zu sich selbst: in Zukunft Stack-Overflow etwas früher nutzen) – paddyg