Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dla tessellacji można określić maksymalnie pięć funkcji wywołania zwrotnego. Jakiekolwiek funkcje, których nie określisz, nie są wywoływane podczas teselacji i nie otrzymujesz żadnych informacji, które zwróciłyby. Należy określić funkcje wywołania zwrotnego za pomocą gluTessCallback.
Funkcja gluTessCallback kojarzy funkcję zwrotną fn z obiektem teselacji tessobj. Typ wywołania zwrotnego jest określany przez typ parametru, który może być GLU_BEGIN, GLU_EDGE_FLAG, GLU_VERTEX, GLU_ENDlub GLU_ERROR. Pięć możliwych funkcji wywołania zwrotnego ma następujące prototypy.
Funkcja zwrotna | Prototyp |
---|---|
GLU_BEGIN | rozpocznij(GLenumtyp ); |
GLU_EDGE_FLAG | voidedgeFlag( flagaGLboolean ); |
GLU_VERTEX | voidwierzchołka(**void ***danych); |
GLU_END | voidend( void ); |
GLU_ERROR | void(GLenumerrno ); |
Aby zmienić funkcję wywołania zwrotnego, wywołaj gluTessCallback za pomocą nowej funkcji. Aby wyeliminować funkcję wywołania zwrotnego bez zastępowania jej nowym, przekaż gluTessCallback wskaźnik o wartości null dla odpowiedniej funkcji.
W miarę jak postępuje teselacja, funkcje wywołania zwrotnego są wywoływane w sposób podobny do sposobu używania funkcji OpenGL glBegin, glEdgeFlag, glVertexi glEnd.
Funkcja wywołania zwrotnego GLU_BEGIN jest wywoływana z jednym z trzech możliwych parametrów:
- GL_TRIANGLE_FAN
- GL_TRIANGLE_STRIP
- GL_TRIANGLES
Po wywołaniu funkcji zwrotnej GLU_BEGIN i przed wywołaniem funkcji zwrotnej skojarzonej z GLU_END, następuje jedna z kombinacji wywołań zwrotnych GLU_EDGE_FLAG i GLU_VERTEX. Skojarzone wierzchołki i flagi krawędzi są interpretowane dokładnie tak, jak są w OpenGL między glBegin(GL_TRIANGLE_FAN), glBegin(GL_TRIANGLE_STRIP) lub glBegin(GL_TRIANGLES**)** a odpowiadającymi glEnd.
Ponieważ flagi krawędzi nie mają sensu w wentylatorze trójkątnym lub pasku trójkątnym, jeśli istnieje funkcja wywołania zwrotnego skojarzona z GLU_EDGE_FLAG, funkcja wywołania zwrotnego GLU_BEGIN jest wywoływana tylko z GL_TRIANGLES. Funkcja wywołania zwrotnego GLU_EDGE_FLAG działa analogicznie do funkcji OpenGL glEdgeFlag.
Jeśli podczas tessellacji wystąpi błąd, wywoływana jest funkcja wywołania zwrotnego błędu. Funkcja obsługi błędu przyjmuje numer błędu GLU. Możesz uzyskać ciąg znaków opisujący błąd za pomocą funkcji gluErrorString.