0
OpenGL에 익숙하지 않습니다. 왜 glutPostRedisplay()를 호출하기 전에 함수의 GetPixelDifference()가 항상 호출되는지 궁금합니다. 어떻게 해결할 수 있습니까?왜 glutPostRedisplay에 지연이 있습니까?
import sys
import time
from OpenGL.GL import *
from OpenGL.GLU import *
from OpenGL.GLUT import *
def GetPixelDifference():
print("calculate")
def Draw():
print("draw")
glClear(GL_COLOR_BUFFER_BIT)
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA)
glEnable(GL_BLEND)
glColor4f(1.0, 1.0, 1.0, 0.4)
glPolygonMode(GL_FRONT, GL_FILL)
glBegin(GL_POLYGON)
glVertex2f(1,1)
glVertex2f(-1,1)
glVertex2f(0,0)
glEnd()
glFlush()
GetPixelDifference()
def Mutate():
print("mutate")
glutPostRedisplay()
#time.sleep(5)
print("=======")
print("=wrong=")
print("=======")
GetPixelDifference()
glutInit()
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA)
glutInitWindowSize(300, 300)
glutCreateWindow(b"My clock")
glutDisplayFunc(Draw)
print("main")
glutIdleFunc(Mutate)
glutMainLoop()
'''
And this is what i get
main
draw
calculate
mutate
=======
=wrong=
=======
calculate
draw
calculate
draw
'''
그리기 전에 계산이 필요합니다.하지만 계산이 완료되면 그림 계산이 완료됩니다.이 계산은 모든 픽셀에 대해 발생합니다.