共用方式為


指定回呼

您可以為鑲嵌指定最多五個回呼函式。 您未指定的任何函式都不會在鑲嵌期間呼叫,而且您不會取得任何可能傳回的資訊。 您可以使用 gluTessCallback 來指定回呼函式。

gluTessCallback 函式會將回呼函式 fn 與 tessellation 物件 tessobj 產生關聯。 回呼的類型取決於參數類型,它可以GLU_BEGIN、GLU_EDGE_FLAG、GLU_VERTEXGLU_ENDGLU_ERROR 五個可能的回呼函式具有下列原型。

回呼函式 原型
GLU_BEGIN void beginGLenumtype ):
GLU_EDGE_FLAG void edgeFlagGLboolean旗標 ):
GLU_VERTEX void 頂點(**void ***data ):
GLU_END void endvoid ):
GLU_ERROR void errorGLenumerrno ):

 

若要變更回呼函式,請使用新的函式呼叫 gluTessCallback 若要排除回呼函式而不將它取代為新的回呼函式,請為適當的函式傳遞 gluTessCallback Null 指標。

隨著鑲嵌式的進行,回呼函式的呼叫方式類似於您使用 OpenGL 函式 glBegin、glEdgeFlagglVertexglEnd 的方式。

使用 三個可能參數之一叫用GLU_BEGIN 回呼函式:

  • GL_TRIANGLE_FAN
  • GL_TRIANGLE_STRIP
  • GL_TRIANGLES

呼叫GLU_BEGIN回呼函式,並在呼叫與GLU_END相關聯的回呼函式之前,會叫用GLU_EDGE_FLAG和GLU_VERTEX回呼的一些組合 相關聯的頂點和邊緣旗標會與 glBegin(GL_TRIANGLE_FAN)、glBegin(GL_TRIANGLE_STRIP)或 glBegin(GL_TRIANGLES**)** 和相符的 glEnd 之間的 OpenGL 一樣解譯。

因為邊緣旗標在三角形風扇或三角形帶中沒有意義,如果有與GLU_EDGE_FLAG相關聯的回呼函式,則只會使用 GL_TRIANGLES 呼叫GLU_BEGIN呼。 GLU_EDGE_FLAG回呼函式的運作方式類似於 OpenGL glEdgeFlag 函式。

如果在鑲嵌期間發生錯誤,則會叫用錯誤回呼函式。 錯誤回呼函式會傳遞 GLU 錯誤號碼。 您可以使用 gluErrorString 函式來取得描述錯誤的字元字串。