如何在Python中创建OpenGL上下文

时间:2015-02-02 08:48:03

标签: python opengl pyopengl

我正在使用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?

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上下文。