окна PyGame OpenGL не обновляются в Mac OS X 10.6, Python 2.7 - PullRequest
2 голосов
/ 12 ноября 2010

Я разместил это в списке рассылки pygame , но, возможно, у кого-то здесь будет ответ.На самом деле я не уверен, является ли это проблемой pygame или SDL.

По сути, у меня есть некоторый код, который использует PyOpenGL и pygame для рендеринга элементарной анимации.Он прекрасно работает под Linux, но по какой-то причине окна pygame на моем Mac не обновляются, если я не щелкаю за пределами окна, чтобы «расфокусировать», после чего они обновляются один раз.

Чтобы установить SDL и pygame Iследуя инструкциям здесь .Я должен отметить, что

  • Примеры 2D-пигмеев, такие как pygame.examples.aliens, работают нормально, в то время как 3D-примеры, такие как pygame.examples.glcube, демонстрируют ту же проблему, что и мой собственный код.
  • Демо PyOpenGL работаютхорошо, поэтому я предполагаю, что проблема не в этом.
  • Я также вижу это напечатанным на консоли:

    2010-11-12 00:31:51.328 python[75402:903] *** __NSAutoreleaseNoPool(): 
    Object 0x101da6570 of class NSCFData autoreleased with no pool in 
    place - just leaking
    

    Кто-нибудь знает, что это значит?

Ответы [ 2 ]

1 голос
/ 24 ноября 2010

Оказывается, какой-то сбой в драйвере OS X вызывает это, когда я нажимаю Ctrl + C для приложения на основе pygame, и единственное исправление - перезагрузка.

0 голосов
/ 12 ноября 2010

Боюсь, это не проблема OpenGL. У меня была проблема обновления в Windows 7 и MACOSX 10.4.11. По странной причине в Linux нет проблем с обновлением.

Что я сделал, чтобы решить эту проблему, так это обнаружить событие «расфокусировки», поскольку у окна возникала проблема с обновлением только тогда, когда оно было не сфокусировано и перед ним проходило окно. Как только я обнаружил «расфокусировку» и / или «фокус», я даже перерисовал все окно.

Кстати, я не использовал ни одну из привязок или техник OpenGL, а только стандартные функции Pygame, в частности функцию обновления.

...