⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 glu.pas

📁 一款RPG游戏的引擎可以自己制作一款RPG游戏的引擎可以自己制作
💻 PAS
📖 第 1 页 / 共 2 页
字号:
  GLU_TESS_ERROR6     = 100156;
  GLU_TESS_ERROR7     = 100157;
  GLU_TESS_ERROR8     = 100158;

  GLU_TESS_MISSING_BEGIN_POLYGON  = GLU_TESS_ERROR1;
  GLU_TESS_MISSING_BEGIN_CONTOUR  = GLU_TESS_ERROR2;
  GLU_TESS_MISSING_END_POLYGON    = GLU_TESS_ERROR3;
  GLU_TESS_MISSING_END_CONTOUR    = GLU_TESS_ERROR4;
  GLU_TESS_COORD_TOO_LARGE        = GLU_TESS_ERROR5;
  GLU_TESS_NEED_COMBINE_CALLBACK  = GLU_TESS_ERROR6;

  //***           NURBS constants                 ****/

  // NurbsProperty
  GLU_AUTO_LOAD_MATRIX            = 100200;
  GLU_CULLING                     = 100201;
  GLU_SAMPLING_TOLERANCE          = 100203;
  GLU_DISPLAY_MODE                = 100204;
  GLU_PARAMETRIC_TOLERANCE        = 100202;
  GLU_SAMPLING_METHOD             = 100205;
  GLU_U_STEP                      = 100206;
  GLU_V_STEP                      = 100207;

  // NurbsSampling
  GLU_PATH_LENGTH                 = 100215;
  GLU_PARAMETRIC_ERROR            = 100216;
  GLU_DOMAIN_DISTANCE             = 100217;


  // NurbsTrim
  GLU_MAP1_TRIM_2                 = 100210;
  GLU_MAP1_TRIM_3                 = 100211;

  // NurbsDisplay
  //      GLU_FILL                = 100012;
  GLU_OUTLINE_POLYGON             = 100240;
  GLU_OUTLINE_PATCH               = 100241;

  // NurbsCallback
  //      GLU_ERROR               = 100103;

  // NurbsErrors
  GLU_NURBS_ERROR1        = 100251;
  GLU_NURBS_ERROR2        = 100252;
  GLU_NURBS_ERROR3        = 100253;
  GLU_NURBS_ERROR4        = 100254;
  GLU_NURBS_ERROR5        = 100255;
  GLU_NURBS_ERROR6        = 100256;
  GLU_NURBS_ERROR7        = 100257;
  GLU_NURBS_ERROR8        = 100258;
  GLU_NURBS_ERROR9        = 100259;
  GLU_NURBS_ERROR10       = 100260;
  GLU_NURBS_ERROR11       = 100261;
  GLU_NURBS_ERROR12       = 100262;
  GLU_NURBS_ERROR13       = 100263;
  GLU_NURBS_ERROR14       = 100264;
  GLU_NURBS_ERROR15       = 100265;
  GLU_NURBS_ERROR16       = 100266;
  GLU_NURBS_ERROR17       = 100267;
  GLU_NURBS_ERROR18       = 100268;
  GLU_NURBS_ERROR19       = 100269;
  GLU_NURBS_ERROR20       = 100270;
  GLU_NURBS_ERROR21       = 100271;
  GLU_NURBS_ERROR22       = 100272;
  GLU_NURBS_ERROR23       = 100273;
  GLU_NURBS_ERROR24       = 100274;
  GLU_NURBS_ERROR25       = 100275;
  GLU_NURBS_ERROR26       = 100276;
  GLU_NURBS_ERROR27       = 100277;
  GLU_NURBS_ERROR28       = 100278;
  GLU_NURBS_ERROR29       = 100279;
  GLU_NURBS_ERROR30       = 100280;
  GLU_NURBS_ERROR31       = 100281;
  GLU_NURBS_ERROR32       = 100282;
  GLU_NURBS_ERROR33       = 100283;
  GLU_NURBS_ERROR34       = 100284;
  GLU_NURBS_ERROR35       = 100285;
  GLU_NURBS_ERROR36       = 100286;
  GLU_NURBS_ERROR37       = 100287;

//***           Backwards compatibility for old tesselator           ****/

var
  gluBeginPolygon: procedure(tess: PGLUtesselator); stdcall;
  gluNextContour: procedure(tess: PGLUtesselator; atype: GLenum); stdcall;
  gluEndPolygon: procedure(tess: PGLUtesselator); stdcall;

const
  // Contours types -- obsolete!
  GLU_CW          = 100120;
  GLU_CCW         = 100121;
  GLU_INTERIOR    = 100122;
  GLU_EXTERIOR    = 100123;
  GLU_UNKNOWN     = 100124;

  // Names without "TESS_" prefix
  GLU_BEGIN       = GLU_TESS_BEGIN;
  GLU_VERTEX      = GLU_TESS_VERTEX;
  GLU_END         = GLU_TESS_END;
  GLU_ERROR       = GLU_TESS_ERROR;
  GLU_EDGE_FLAG   = GLU_TESS_EDGE_FLAG;

procedure LoadGLu(const dll: String);
procedure FreeGLu;

implementation

var
  hDLL: THandle;
  
procedure FreeGLu;
begin

  @gluErrorString := nil;
  @gluErrorUnicodeStringEXT := nil;
  @gluGetString := nil;
  @gluOrtho2D := nil;
  @gluPerspective := nil;
  @gluPickMatrix := nil;
  @gluLookAt := nil;
  @gluProject := nil;
  @gluUnProject := nil;
  @gluScaleImage := nil;
  @gluBuild1DMipmaps := nil;
  @gluBuild2DMipmaps := nil;
  @gluNewQuadric := nil;
  @gluDeleteQuadric := nil;
  @gluQuadricNormals := nil;
  @gluQuadricTexture := nil;
  @gluQuadricOrientation := nil;
  @gluQuadricDrawStyle := nil;
  @gluCylinder := nil;
  @gluDisk := nil;
  @gluPartialDisk := nil;
  @gluSphere := nil;
  @gluQuadricCallback := nil;
  @gluNewTess := nil;
  @gluDeleteTess := nil;
  @gluTessBeginPolygon := nil;
  @gluTessBeginContour := nil;
  @gluTessVertex := nil;
  @gluTessEndContour := nil;
  @gluTessEndPolygon := nil;
  @gluTessProperty := nil;
  @gluTessNormal := nil;
  @gluTessCallback := nil;
  @gluGetTessProperty := nil;
  @gluNewNurbsRenderer := nil;
  @gluDeleteNurbsRenderer := nil;
  @gluBeginSurface := nil;
  @gluBeginCurve := nil;
  @gluEndCurve := nil;
  @gluEndSurface := nil;
  @gluBeginTrim := nil;
  @gluEndTrim := nil;
  @gluPwlCurve := nil;
  @gluNurbsCurve := nil;
  @gluNurbsSurface := nil;
  @gluLoadSamplingMatrices := nil;
  @gluNurbsProperty := nil;
  @gluGetNurbsProperty := nil;
  @gluNurbsCallback := nil;
  @gluBeginPolygon := nil;
  @gluNextContour := nil;
  @gluEndPolygon := nil;

  FreeLibrary(hDLL);

end;

procedure LoadGLu(const dll: String);
begin

  FreeGLu;
  
  hDLL := LoadLibrary(PChar(dll));
  if hDLL = 0 then raise Exception.Create('Could not load GLu from ' + dll);

  @gluErrorString := GetProcAddress(hDLL, 'gluErrorString');
  @gluErrorUnicodeStringEXT := GetProcAddress(hDLL, 'gluErrorUnicodeStringEXT');
  @gluGetString := GetProcAddress(hDLL, 'gluGetString');
  @gluOrtho2D := GetProcAddress(hDLL, 'gluOrtho2D');
  @gluPerspective := GetProcAddress(hDLL, 'gluPerspective');
  @gluPickMatrix := GetProcAddress(hDLL, 'gluPickMatrix');
  @gluLookAt := GetProcAddress(hDLL, 'gluLookAt');
  @gluProject := GetProcAddress(hDLL, 'gluProject');
  @gluUnProject := GetProcAddress(hDLL, 'gluUnProject');
  @gluScaleImage := GetProcAddress(hDLL, 'gluScaleImage');
  @gluBuild1DMipmaps := GetProcAddress(hDLL, 'gluBuild1DMipmaps');
  @gluBuild2DMipmaps := GetProcAddress(hDLL, 'gluBuild2DMipmaps');
  @gluNewQuadric := GetProcAddress(hDLL, 'gluNewQuadric: PGLUquadric');
  @gluDeleteQuadric := GetProcAddress(hDLL, 'gluDeleteQuadric');
  @gluQuadricNormals := GetProcAddress(hDLL, 'gluQuadricNormals');
  @gluQuadricTexture := GetProcAddress(hDLL, 'gluQuadricTexture');
  @gluQuadricOrientation := GetProcAddress(hDLL, 'gluQuadricOrientation');
  @gluQuadricDrawStyle := GetProcAddress(hDLL, 'gluQuadricDrawStyle');
  @gluCylinder := GetProcAddress(hDLL, 'gluCylinder');
  @gluDisk := GetProcAddress(hDLL, 'gluDisk');
  @gluPartialDisk := GetProcAddress(hDLL, 'gluPartialDisk');
  @gluSphere := GetProcAddress(hDLL, 'gluSphere');
  @gluQuadricCallback := GetProcAddress(hDLL, 'gluQuadricCallback');
  @gluNewTess := GetProcAddress(hDLL, 'gluNewTess: PGLUtesselator');
  @gluDeleteTess := GetProcAddress(hDLL, 'gluDeleteTess');
  @gluTessBeginPolygon := GetProcAddress(hDLL, 'gluTessBeginPolygon');
  @gluTessBeginContour := GetProcAddress(hDLL, 'gluTessBeginContour');
  @gluTessVertex := GetProcAddress(hDLL, 'gluTessVertex');
  @gluTessEndContour := GetProcAddress(hDLL, 'gluTessEndContour');
  @gluTessEndPolygon := GetProcAddress(hDLL, 'gluTessEndPolygon');
  @gluTessProperty := GetProcAddress(hDLL, 'gluTessProperty');
  @gluTessNormal := GetProcAddress(hDLL, 'gluTessNormal');
  @gluTessCallback := GetProcAddress(hDLL, 'gluTessCallback');
  @gluGetTessProperty := GetProcAddress(hDLL, 'gluGetTessProperty');
  @gluNewNurbsRenderer := GetProcAddress(hDLL, 'gluNewNurbsRenderer: PGLUnurbs');
  @gluDeleteNurbsRenderer := GetProcAddress(hDLL, 'gluDeleteNurbsRenderer');
  @gluBeginSurface := GetProcAddress(hDLL, 'gluBeginSurface');
  @gluBeginCurve := GetProcAddress(hDLL, 'gluBeginCurve');
  @gluEndCurve := GetProcAddress(hDLL, 'gluEndCurve');
  @gluEndSurface := GetProcAddress(hDLL, 'gluEndSurface');
  @gluBeginTrim := GetProcAddress(hDLL, 'gluBeginTrim');
  @gluEndTrim := GetProcAddress(hDLL, 'gluEndTrim');
  @gluPwlCurve := GetProcAddress(hDLL, 'gluPwlCurve');
  @gluNurbsCurve := GetProcAddress(hDLL, 'gluNurbsCurve');
  @gluNurbsSurface := GetProcAddress(hDLL, 'gluNurbsSurface');
  @gluLoadSamplingMatrices := GetProcAddress(hDLL, 'gluLoadSamplingMatrices');
  @gluNurbsProperty := GetProcAddress(hDLL, 'gluNurbsProperty');
  @gluGetNurbsProperty := GetProcAddress(hDLL, 'gluGetNurbsProperty');
  @gluNurbsCallback := GetProcAddress(hDLL, 'gluNurbsCallback');

  @gluBeginPolygon := GetProcAddress(hDLL, 'gluBeginPolygon');
  @gluNextContour := GetProcAddress(hDLL, 'gluNextContour');
  @gluEndPolygon := GetProcAddress(hDLL, 'gluEndPolygon');
  
end;

initialization

  try
    LoadGLu('glu32.dll');
  except end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -