我正在使用pygame和pyopengl,并且我试图让glGenTextures(1,img)返回1.我已经检查过' myPixelArt.bmp'具有2个幂的维度。我的脚本以:
开头import pygame, OpenGL, math, numpy
from pygame.locals import *
from OpenGL.GL import *
from OpenGL.WGL import *
from OpenGL.GLU import *
from PIL import Image
from ctypes import *
img = Image.open('myPixelArt.bmp')
glEnable(GL_TEXTURE_2D)
hdc=windll.user32.GetDC(1)
print hdc
hglrc=wglCreateContext(hdc)
wglMakeCurrent(hdc,hglrc)
im=glGenTextures(1,img)
print im
但是对于hdc打印出0,对于im打印出0。
我应该使用什么参数为windll.user32.GetDC创建一个显示上下文,并希望glGenTextures返回1?
答案 0 :(得分:0)
尝试先创建一个窗口!
import pygame, OpenGL, math, numpy
from pygame.locals import *
from OpenGL.GL import *
from OpenGL.WGL import *
from OpenGL.GLU import *
from PIL import Image
from ctypes import *
size=(800,600)
pygame.display.set_mode(size,pygame.OPENGL|pygame.DOUBLEBUF)
img = Image.open('myPixelArt.bmp')
glEnable(GL_TEXTURE_2D)
hdc=windll.user32.GetDC(1)
print hdc
hglrc=wglCreateContext(hdc)
wglMakeCurrent(hdc,hglrc)
im=glGenTextures(1,img)
print im
Becouse Pygame与窗口一起创建一个OpenGL上下文。