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

📄 opengl.pas

📁 Delphi高级程序开发配书源代码,可以循序渐进的学习Delphi.
💻 PAS
📖 第 1 页 / 共 5 页
字号:

{*******************************************************}
{                                                       }
{       Borland Delphi Runtime Library                  }
{       OpenGL interface unit                           }
{                                                       }
{*******************************************************}

(*
** Copyright 1991-1993, Silicon Graphics, Inc.
** All Rights Reserved.
**
** This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics, Inc.;
** the contents of this file may not be disclosed to third parties, copied or
** duplicated in any form, in whole or in part, without the prior written
** permission of Silicon Graphics, Inc.
**
** RESTRICTED RIGHTS LEGEND:
** Use, duplication or disclosure by the Government is subject to restrictions
** as set forth in subdivision (c)(1)(ii) of the Rights in Technical Data
** and Computer Software clause at DFARS 252.227-7013, and/or in similar or
** successor clauses in the FAR, DOD or NASA FAR Supplement. Unpublished -
** rights reserved under the Copyright Laws of the United States.
*)

unit OpenGL;

interface

uses Windows;

type
  {$EXTERNALSYM HGLRC}
  HGLRC = THandle;

type
  GLenum = Cardinal;
  {$EXTERNALSYM GLenum}
  GLboolean = BYTEBOOL;
  {$EXTERNALSYM GLboolean}
  GLbitfield = Cardinal;
  {$EXTERNALSYM GLbitfield}
  GLbyte = Shortint;   { signed char }
  {$EXTERNALSYM GLbyte}
  GLshort = SmallInt;
  {$EXTERNALSYM GLshort}
  GLint = Integer;
  {$EXTERNALSYM GLint}
  GLsizei = Integer;
  {$EXTERNALSYM GLsizei}
  GLubyte = Byte;
  {$EXTERNALSYM GLubyte}
  GLushort = Word;
  {$EXTERNALSYM GLushort}
  GLuint = Cardinal;
  {$EXTERNALSYM GLuint}
  GLfloat = Single;
  {$EXTERNALSYM GLfloat}
  GLclampf = Single;
  {$EXTERNALSYM GLclampf}
  GLdouble = Double;
  {$EXTERNALSYM GLdouble}
  GLclampd = Double;
  {$EXTERNALSYM GLclampd}

  PGLBoolean = ^GLBoolean;
  PGLByte = ^GLByte;
  PGLShort = ^GLShort;
  PGLInt = ^GLInt;
  PGLSizei = ^GLSizei;
  PGLubyte = ^GLubyte;
  PGLushort = ^GLushort;
  PGLuint = ^GLuint;
  PGLclampf = ^GLclampf;
  PGLfloat =  ^GLFloat;
  PGLdouble = ^GLDouble;
  PGLclampd = ^GLclampd;

  TGLArrayf4 = array [0..3] of GLFloat;
  TGLArrayf3 = array [0..2] of GLFloat;
  TGLArrayi4 = array [0..3] of GLint;
  {...}

{*************************************************************}

const
{ AttribMask }
  GL_CURRENT_BIT                      = $00000001;
  {$EXTERNALSYM GL_CURRENT_BIT}
  GL_POINT_BIT                        = $00000002;
  {$EXTERNALSYM GL_POINT_BIT}
  GL_LINE_BIT                         = $00000004;
  {$EXTERNALSYM GL_LINE_BIT}
  GL_POLYGON_BIT                      = $00000008;
  {$EXTERNALSYM GL_POLYGON_BIT}
  GL_POLYGON_STIPPLE_BIT              = $00000010;
  {$EXTERNALSYM GL_POLYGON_STIPPLE_BIT}
  GL_PIXEL_MODE_BIT                   = $00000020;
  {$EXTERNALSYM GL_PIXEL_MODE_BIT}
  GL_LIGHTING_BIT                     = $00000040;
  {$EXTERNALSYM GL_LIGHTING_BIT}
  GL_FOG_BIT                          = $00000080;
  {$EXTERNALSYM GL_FOG_BIT}
  GL_DEPTH_BUFFER_BIT                 = $00000100;
  {$EXTERNALSYM GL_DEPTH_BUFFER_BIT}
  GL_ACCUM_BUFFER_BIT                 = $00000200;
  {$EXTERNALSYM GL_ACCUM_BUFFER_BIT}
  GL_STENCIL_BUFFER_BIT               = $00000400;
  {$EXTERNALSYM GL_STENCIL_BUFFER_BIT}
  GL_VIEWPORT_BIT                     = $00000800;
  {$EXTERNALSYM GL_VIEWPORT_BIT}
  GL_TRANSFORM_BIT                    = $00001000;
  {$EXTERNALSYM GL_TRANSFORM_BIT}
  GL_ENABLE_BIT                       = $00002000;
  {$EXTERNALSYM GL_ENABLE_BIT}
  GL_COLOR_BUFFER_BIT                 = $00004000;
  {$EXTERNALSYM GL_COLOR_BUFFER_BIT}
  GL_HINT_BIT                         = $00008000;
  {$EXTERNALSYM GL_HINT_BIT}
  GL_EVAL_BIT                         = $00010000;
  {$EXTERNALSYM GL_EVAL_BIT}
  GL_LIST_BIT                         = $00020000;
  {$EXTERNALSYM GL_LIST_BIT}
  GL_TEXTURE_BIT                      = $00040000;
  {$EXTERNALSYM GL_TEXTURE_BIT}
  GL_SCISSOR_BIT                      = $00080000;
  {$EXTERNALSYM GL_SCISSOR_BIT}
  GL_ALL_ATTRIB_BITS                  = $000fffff;
  {$EXTERNALSYM GL_ALL_ATTRIB_BITS}

{ ClearBufferMask }
{      GL_COLOR_BUFFER_BIT }
{      GL_ACCUM_BUFFER_BIT }
{      GL_STENCIL_BUFFER_BIT }
{      GL_DEPTH_BUFFER_BIT }

{ Boolean }
  GL_FALSE                            = Boolean(0);
  {$EXTERNALSYM GL_FALSE}
  GL_TRUE                             = Boolean(1);
  {$EXTERNALSYM GL_TRUE}

{ BeginMode }
  GL_POINTS                           = $0000    ;
  {$EXTERNALSYM GL_POINTS}
  GL_LINES                            = $0001    ;
  {$EXTERNALSYM GL_LINES}
  GL_LINE_LOOP                        = $0002    ;
  {$EXTERNALSYM GL_LINE_LOOP}
  GL_LINE_STRIP                       = $0003    ;
  {$EXTERNALSYM GL_LINE_STRIP}
  GL_TRIANGLES                        = $0004    ;
  {$EXTERNALSYM GL_TRIANGLES}
  GL_TRIANGLE_STRIP                   = $0005    ;
  {$EXTERNALSYM GL_TRIANGLE_STRIP}
  GL_TRIANGLE_FAN                     = $0006    ;
  {$EXTERNALSYM GL_TRIANGLE_FAN}
  GL_QUADS                            = $0007    ;
  {$EXTERNALSYM GL_QUADS}
  GL_QUAD_STRIP                       = $0008    ;
  {$EXTERNALSYM GL_QUAD_STRIP}
  GL_POLYGON                          = $0009    ;
  {$EXTERNALSYM GL_POLYGON}

{ AccumOp }
  GL_ACCUM                            = $0100;
  {$EXTERNALSYM GL_ACCUM}
  GL_LOAD                             = $0101;
  {$EXTERNALSYM GL_LOAD}
  GL_RETURN                           = $0102;
  {$EXTERNALSYM GL_RETURN}
  GL_MULT                             = $0103;
  {$EXTERNALSYM GL_MULT}
  GL_ADD                              = $0104;
  {$EXTERNALSYM GL_ADD}

{ AlphaFunction }
  GL_NEVER                            = $0200;
  {$EXTERNALSYM GL_NEVER}
  GL_LESS                             = $0201;
  {$EXTERNALSYM GL_LESS}
  GL_EQUAL                            = $0202;
  {$EXTERNALSYM GL_EQUAL}
  GL_LEQUAL                           = $0203;
  {$EXTERNALSYM GL_LEQUAL}
  GL_GREATER                          = $0204;
  {$EXTERNALSYM GL_GREATER}
  GL_NOTEQUAL                         = $0205;
  {$EXTERNALSYM GL_NOTEQUAL}
  GL_GEQUAL                           = $0206;
  {$EXTERNALSYM GL_GEQUAL}
  GL_ALWAYS                           = $0207;
  {$EXTERNALSYM GL_ALWAYS}

{ BlendingFactorDest }
  GL_ZERO                             = 0;
  {$EXTERNALSYM GL_ZERO}
  GL_ONE                              = 1;
  {$EXTERNALSYM GL_ONE}
  GL_SRC_COLOR                        = $0300;
  {$EXTERNALSYM GL_SRC_COLOR}
  GL_ONE_MINUS_SRC_COLOR              = $0301;
  {$EXTERNALSYM GL_ONE_MINUS_SRC_COLOR}
  GL_SRC_ALPHA                        = $0302;
  {$EXTERNALSYM GL_SRC_ALPHA}
  GL_ONE_MINUS_SRC_ALPHA              = $0303;
  {$EXTERNALSYM GL_ONE_MINUS_SRC_ALPHA}
  GL_DST_ALPHA                        = $0304;
  {$EXTERNALSYM GL_DST_ALPHA}
  GL_ONE_MINUS_DST_ALPHA              = $0305;
  {$EXTERNALSYM GL_ONE_MINUS_DST_ALPHA}

{ BlendingFactorSrc }
{      GL_ZERO }
{      GL_ONE }
  GL_DST_COLOR                        = $0306;
  {$EXTERNALSYM GL_DST_COLOR}
  GL_ONE_MINUS_DST_COLOR              = $0307;
  {$EXTERNALSYM GL_ONE_MINUS_DST_COLOR}
  GL_SRC_ALPHA_SATURATE               = $0308;
  {$EXTERNALSYM GL_SRC_ALPHA_SATURATE}
{      GL_SRC_ALPHA }
{      GL_ONE_MINUS_SRC_ALPHA }
{      GL_DST_ALPHA }
{      GL_ONE_MINUS_DST_ALPHA }

{ BlendingMode }
{      GL_LOGIC_OP }

{ ColorMaterialFace }
{      GL_FRONT }
{      GL_BACK }
{      GL_FRONT_AND_BACK }

{ ColorMaterialParameter }
{      GL_AMBIENT }
{      GL_DIFFUSE }
{      GL_SPECULAR }
{      GL_EMISSION }
{      GL_AMBIENT_AND_DIFFUSE }

{ CullFaceMode }
{      GL_FRONT }
{      GL_BACK }
{      GL_FRONT_AND_BACK }

{ DepthFunction }
{      GL_NEVER }
{      GL_LESS }
{      GL_EQUAL }
{      GL_LEQUAL }
{      GL_GREATER }
{      GL_NOTEQUAL }
{      GL_GEQUAL }
{      GL_ALWAYS }

{ DrawBufferMode }
  GL_NONE                             = 0;
  {$EXTERNALSYM GL_NONE}
  GL_FRONT_LEFT                       = $0400;
  {$EXTERNALSYM GL_FRONT_LEFT}
  GL_FRONT_RIGHT                      = $0401;
  {$EXTERNALSYM GL_FRONT_RIGHT}
  GL_BACK_LEFT                        = $0402;
  {$EXTERNALSYM GL_BACK_LEFT}
  GL_BACK_RIGHT                       = $0403;
  {$EXTERNALSYM GL_BACK_RIGHT}
  GL_FRONT                            = $0404;
  {$EXTERNALSYM GL_FRONT}
  GL_BACK                             = $0405;
  {$EXTERNALSYM GL_BACK}
  GL_LEFT                             = $0406;
  {$EXTERNALSYM GL_LEFT}
  GL_RIGHT                            = $0407;
  {$EXTERNALSYM GL_RIGHT}
  GL_FRONT_AND_BACK                   = $0408;
  {$EXTERNALSYM GL_FRONT_AND_BACK}
  GL_AUX0                             = $0409;
  {$EXTERNALSYM GL_AUX0}
  GL_AUX1                             = $040A;
  {$EXTERNALSYM GL_AUX1}
  GL_AUX2                             = $040B;
  {$EXTERNALSYM GL_AUX2}
  GL_AUX3                             = $040C;
  {$EXTERNALSYM GL_AUX3}

{ ErrorCode }
  GL_NO_ERROR                         = 0;
  {$EXTERNALSYM GL_NO_ERROR}
  GL_INVALID_ENUM                     = $0500;
  {$EXTERNALSYM GL_INVALID_ENUM}
  GL_INVALID_VALUE                    = $0501;
  {$EXTERNALSYM GL_INVALID_VALUE}
  GL_INVALID_OPERATION                = $0502;
  {$EXTERNALSYM GL_INVALID_OPERATION}
  GL_STACK_OVERFLOW                   = $0503;
  {$EXTERNALSYM GL_STACK_OVERFLOW}
  GL_STACK_UNDERFLOW                  = $0504;
  {$EXTERNALSYM GL_STACK_UNDERFLOW}
  GL_OUT_OF_MEMORY                    = $0505;
  {$EXTERNALSYM GL_OUT_OF_MEMORY}

{ FeedBackMode }
  GL_2D                               = $0600;
  {$EXTERNALSYM GL_2D}
  GL_3D                               = $0601;
  {$EXTERNALSYM GL_3D}
  GL_3D_COLOR                         = $0602;
  {$EXTERNALSYM GL_3D_COLOR}
  GL_3D_COLOR_TEXTURE                 = $0603;
  {$EXTERNALSYM GL_3D_COLOR_TEXTURE}
  GL_4D_COLOR_TEXTURE                 = $0604;
  {$EXTERNALSYM GL_4D_COLOR_TEXTURE}

{ FeedBackToken }
  GL_PASS_THROUGH_TOKEN               = $0700;
  {$EXTERNALSYM GL_PASS_THROUGH_TOKEN}
  GL_POINT_TOKEN                      = $0701;
  {$EXTERNALSYM GL_POINT_TOKEN}
  GL_LINE_TOKEN                       = $0702;
  {$EXTERNALSYM GL_LINE_TOKEN}
  GL_POLYGON_TOKEN                    = $0703;
  {$EXTERNALSYM GL_POLYGON_TOKEN}
  GL_BITMAP_TOKEN                     = $0704;
  {$EXTERNALSYM GL_BITMAP_TOKEN}
  GL_DRAW_PIXEL_TOKEN                 = $0705;
  {$EXTERNALSYM GL_DRAW_PIXEL_TOKEN}
  GL_COPY_PIXEL_TOKEN                 = $0706;
  {$EXTERNALSYM GL_COPY_PIXEL_TOKEN}
  GL_LINE_RESET_TOKEN                 = $0707;
  {$EXTERNALSYM GL_LINE_RESET_TOKEN}

{ FogMode }
{      GL_LINEAR }
  GL_EXP                              = $0800;
  {$EXTERNALSYM GL_EXP}
  GL_EXP2                             = $0801;
  {$EXTERNALSYM GL_EXP2}

{ FogParameter }
{      GL_FOG_COLOR }
{      GL_FOG_DENSITY }
{      GL_FOG_END }
{      GL_FOG_INDEX }
{      GL_FOG_MODE }
{      GL_FOG_START }

{ FrontFaceDirection }
  GL_CW                               = $0900;
  {$EXTERNALSYM GL_CW}
  GL_CCW                              = $0901;

⌨️ 快捷键说明

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