2016-06-04 6 views
0

Я пытаюсь выполнить проект uni, и я использую pyglet для задачи. Это часть кода, которая вызывает у меня проблему.NameError при запуске pyglet

from pyglet.gl import * 
from pyglet.window import key 
from pyglet.window import mouse 


window=pyglet.window.Window(resizable=True) 

@window.event 
def on_draw(): 

    glutInitDisplayMode (GLUT_RGB | GLUT_DOUBLE) 
    glutInitWindowSize (width, height) 
    glutInitWindowPosition (100, 100) 


    glClearColor(1.0, 1.0, 1.0, 1.0) 
    glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT) 
    myObject() 
    glutSwapBuffers() 

Когда я искал функции glutInitDisplayMode, glutInitWindowSize и glutInitWindowPosition он показывает только PyOpenGL нити, так что они существуют для pyglet или им просто определяя их неправильно?

Terminal Выход:

glutInitDisplayMode (GLUT_RGB | GLUT_DOUBLE)

NameError: global name 'glutInitDisplayMode' is not defined

и то же самое для двух других

ответ

0

Итак, glutInitDisplayMode функция GL, но, насколько я знаю, это не сделал строения по Pyglet, потому что это на самом деле не нужны.

Теперь вот некоторые предположения и исправьте меня, если я ошибаюсь.
Но вызов следующее настроит контекст для вас:

pyglet.window.Window(...) 

Там для всех этих излишни:

glutInitDisplayMode (GLUT_RGB | GLUT_DOUBLE) 
glutInitWindowSize (width, height) 
glutInitWindowPosition (100, 100) 

Вместо того, что вы хотите сделать, это:

window = pyglet.window.Window(width=800, height=600) 
window.set_location(100, 100) 

Также существует возможность создать конкретную конфигурацию и контекст и ввести:

config = pyglet.gl.Config(double_buffer=True) 
context = context = config.create_context(shared_context) 
window = pyglet.window.Window(config=config, context=context) 

Надеюсь, это прояснит что-нибудь для вас.

+0

@smrkelj Ах, все зависит от того, как вы импортируете 'Config', он находится под' pyglet.gl.Config' -> '' – Torxed

+0

Я это сделал код: 'конфиг = gl.Config (double_buffer = True) контекста = контекст = config.create_context (shared_context) окна = pyglet.window.Window (конфиг = конфигурация, контекст = контекст)' , а затем я получил это ошибка: строка 29, в конфигурации = gl.Config (double_buffer = True) AttributeError: 'модуль' объект не имеет атрибута 'Config' так я изменил его с этим: 'контекста = Windo w.context конфиг = context.config config.double_buffer окно = pyglet.window.Window (конфиг = конфигурация, контекст = контекст, дисплей = дисплей) ' будет я потерять что-нибудь по этому schange, или его же? – smrkelj

+0

@smrkelj Обычно вам не нужен «контекст», Pyglet делает это для вас. Это больше, если вы хотите создать контекст самостоятельно и поделиться им между Windows и т. Д. См. Мой обновленный ответ + мой комментарий выше о 'gl.Config()'. – Torxed

 Смежные вопросы

  • Нет связанных вопросов^_^