Hi ppl this is my biggest project ,im working about 4 months :roll:




features :

3d Mesh Builder with collision,

grass ,billboard,decals,lensflare,skydome,skyboxe,skypla ne,waterplane,

Tile Terrain and LandScape,

models:
milkshape,md3,md2,3ds,smd,

world:
quake bsp and DelgineMaps with collision


demo
http://www.keepmyfile.com/download/586e6a1277301





[pascal]
unit divGL;

interface
uses
windows,classes,sysutils,opengl;


const
Div_PI: Single = 3.141592654;

M_PI = 3.1415926535897932384626433832795; // matches value in gcc v2 math.h
M_TWO_PI = 6.283185307179586476925286766559;
M_180_PI = 57.295779513082320876798154814105;
M_PI_180 = 0.017453292519943295769236907684886;

const
cPIdiv180 : Single = 0.017453292;
c180divPI : Single = 57.29577951;
c2PI : Single = 6.283185307;
cPIdiv2 : Single = 1.5707963268;
cInv2PI : Single = 1 / 6.283185307;
cInv360 : Single = 1 / 360;
c180 : Single = 180;
c360 : Single = 360;





//************************************************** ********************
const
VK_W=87;
VK_S=83;
VK_A=65;
VK_D=68;
VK_Q=81;
VK_E=69;


type
CAMERA_STYLE=(FREE_6DOF = 0, FPS_STYLE = 1);
TBlendingMode = (bmOpaque, bmTransparency, bmAdditive, bmAlphaTest50, bmAlphaTest100, bmModulate);
TFaceCulling = (fcBufferDefault, fcCull, fcNoCull);
TTextureFilter = (txLinear,txBilinear,txTrilinear );
TTextureWrap = (twRepeat,twClamp );




DivText=record
texture:integer;
Width,Height : integer;
rWidth,rHeight : integer;
end;

//************************************************** ********************

PathRec=record
aFirstTime : Integer;
Posx:single;
PosY:single;
PosZ:single;
aYaw : Single;
aPitch : Single;
aRoll : Single;
end;

//************************************************** ********************

type
THeightMapFormat=(HRaw8Bit,HRaw16Bit,HRaw32Bit,HBM P);
TTileFlip = (FZero, F80, F180, F270);

TColor4f =array[0..3]of single;
TColor4=record
red,green,blue,alpha:single;
end;
TColor3=record
red,green,blue:single;
end;



TD3DVector=record
x,y,z:single;
end ;

DivRay=Record
RBegin,
RDir,
REnd:TD3DVector;

End;

TD3DMatrix = packed record
case Integer of
0 : (_11, _12, _13, _14: single;
_21, _22, _23, _24: single;
_31, _32, _33, _34: single;
_41, _42, _43, _44: single);
// 1 : (M : TMatrixf4);
end;
TAVector3f = array[0..2] of single;

TOBoundingBox = Array [0..7] of TAVector3f;

TAABB=record
min,max:TAVector3f;
end;

TColideSystem=record
position,View:TD3DVector;
end;



TBSphere=record
Center:TAVector3f;
Radius:single;
end;


////************************************************** **************************
Type
TMaterial = Record
Ambient : TColor4f;
Diffuse : TColor4f;
Specular : TColor4f;
Emission : TColor4f;
Shininess: Single;
end;


const

MatBrass=0 ;
MatBronze=1 ;
MatPolished_Bronze=2 ;
MatChrome=3 ;
MatCopper=4 ;
MatPolished_Copper=5 ;
MatGold=6 ;
MatPolished_Gold=7 ;
MatPewter=8 ;
MatSilver=9 ;
MatPolished_Silver=10 ;
MatEmerald=11 ;
MatJade= 12;
MatObsidian=13 ;
MatPearl=14 ;
MatRuby=15 ;
MatTurquoise=16 ;
MatBlack_Plastic=17 ;
MatBlack_Rubber=18 ;
MatRed=19;
MatGreen=20;
MatBlue=21;
MatYellow=22;
MatAqua=23;
MatFuchsia=24;
MatWhite=25;


clrTransparent : TColor4f = (0, 0, 0, 0);
clrBlack : TColor4f = (0, 0, 0, 1);
clrWhite : TColor4f = (1, 1, 1, 1);
clrDimGray : TColor4f = (0.329412, 0.329412, 0.329412, 1);
clrGray : TColor4f = (0.752941, 0.752941, 0.752941, 1);
clrLightGray : TColor4f = (0.658824, 0.658824, 0.658824, 1);
clrAquamarine : TColor4f = (0.439216, 0.858824, 0.576471, 1);
clrBlueViolet : TColor4f = (0.62352, 0.372549, 0.623529, 1);
clrBrown : TColor4f = (0.647059, 0.164706, 0.164706, 1);
clrCadetBlue : TColor4f = (0.372549, 0.623529, 0.623529, 1);
clrGold : TColor4f = (0.8, 0.498039, 0.196078, 1);
clrMaroon : TColor4f = (0.556863, 0.137255, 0.419608, 1);
clrNavy : TColor4f = (0.137255, 0.137255, 0.556863, 1);
clrPink : TColor4f = (0.737255, 0.560784, 0.560784, 1);
clrSilver : TColor4f = (0.90, 0.91, 0.98, 1);
clrGreen : TColor4f = (0, 0.5, 0, 1);
clrOlive : TColor4f = (0.5, 0.5, 1, 1);
clrPurple : TColor4f = (1, 0, 1, 1);
clrTeal : TColor4f = (0, 0.5, 0.5, 1);
clrRed : TColor4f = (1, 0, 0, 1);
clrLime : TColor4f = (0, 1, 0, 1);
clrYellow : TColor4f = (1, 1, 0, 1);
clrBlue : TColor4f = (0, 0, 1, 1);
clrFuchsia : TColor4f = (1, 0, 1, 1);
clrAqua : TColor4f = (0, 1, 1, 1);


//md3 model animations
const BOTH_DEATH1 = 0;
BOTH_DEAD1 = 1;
BOTH_DEATH2 = 2;
BOTH_DEAD2 = 3;
BOTH_DEATH3 = 4;
BOTH_DEAD3 = 5;

TORSO_GESTURE = 6;
TORSO_ATTACK = 7;
TORSO_ATTACK2 = 8;
TORSO_DROP = 9;
TORSO_RAISE = 10;
TORSO_STAND = 11;
TORSO_STAND2 = 12;

LEGS_WALKCR = 13;
LEGS_WALK = 14;
LEGS_RUN = 15;
LEGS_BACK = 16;
LEGS_SWIM = 17;
LEGS_JUMP = 18;
LEGS_LAND = 19;
LEGS_JUMPB = 20;
LEGS_LANDB = 21;
LEGS_IDLE = 22;
LEGS_IDLECR = 23;
LEGS_TURN = 24;



type
TDiv_WindowResize=procedure (Width, Height : Integer);
TDiv_WindowRender=procedure (timeDelta:single);
TDiv_WindowMsg= function (uMsg: LongWord; wParam: WPARAM; lParam: LPARAM): Boolean;








//*******************Window************************* *****************
function Div_WindowCreate(TITLEchar;x,y,Width, Height,PixelDepth : Integer; Fullscreen : Boolean):HWND; stdcall;external 'DivGL.dll';
procedure Div_WindowClose;stdcall;external 'DivGL.dll';
function Div_WindowGetEvents:integer;stdcall;external 'DivGL.dll';
Function Div_WindowSetCaption( lpString: PChar): BOOL; stdcall;external 'DivGL.dll';
procedure Div_WindowOnResize(evento:TDiv_WindowResize);stdca ll;external 'DivGL.dll';
procedure Div_WindowOnRender(evento:TDiv_WindowRender);stdca ll;external 'DivGL.dll';
procedure Div_WindowOnMsg(evento:TDiv_WindowMsg);stdcall;ext ernal 'DivGL.dll';

function Div_WindowLoop:integer;stdcall;external 'DivGL.dll';
Function Div_WindowGetHDC:HDC;stdcall;external 'DivGL.dll';
function Div_WindowProcess:integer;stdcall;external 'DivGL.dll';
Function Div_WindowGetHandle: HWND;stdcall;external 'DivGL.dll';
function Div_WindowMouseX:integer;stdcall;external 'DivGL.dll';
function Div_WindowMouseY:integer;stdcall;external 'DivGL.dll';

//************************************************** *****************
//*******************RENDER************************* *****************
//************************************************** *****************
//procedure DivRender_Init;stdcall;external 'DivGL.dll';
procedure DivRender_Free;stdcall;external 'DivGL.dll';
function DivRender_Init(VSync:Boolean;Bpp:integer;handle:HW ND):boolean;stdcall;external 'DivGL.dll';
procedure DivRender_Flip;stdcall;external 'DivGL.dll';
procedure DivRender_Setdc(dc:hdc);stdcall;external 'DivGL.dll';
procedure DivRender_Clear(r,g,b:single);stdcall;external 'DivGL.dll';


procedure DivRender_SetPerspective(fovy, aspect, zNear, zFar:single);stdcall;external 'DivGL.dll';
procedure DivRender_SetViewPort(x,y,w,h:integer);stdcall;ext ernal 'DivGL.dll';
procedure DivRender_SetFov(fov:single);stdcall;external 'DivGL.dll';
//************************************************** *****************
//*****************STATES*************************** ******************
procedure DivRender_SetFlatShade;stdcall;external 'DivGL.dll';
procedure DivRender_SetSmoothShade;stdcall;external 'DivGL.dll';
procedure DivRender_SetFillMode;stdcall;external 'DivGL.dll';
procedure DivRender_SetLights(state : boolean);stdcall;external 'DivGL.dll';
procedure DivRender_EnableTexture(state : boolean);stdcall;external 'DivGL.dll';
procedure DivRender_SetCull(state : boolean);stdcall;external 'DivGL.dll';
procedure DivRender_SetWireMode;stdcall;external 'DivGL.dll';
procedure DivRender_DisableSphereMapping; stdcall;external 'DivGL.dll';
procedure DivRender_EnableSphereMapping; stdcall;external 'DivGL.dll';
Procedure DivRender_SwitchView(Ortho: boolean);stdcall;external 'DivGL.dll';
procedure DivRender_SetBlend(FBlendingMode:TBlendingMode);st dcall;external 'DivGL.dll';
Procedure DivRender_Enable2D(Ortho: boolean);stdcall;external 'DivGL.dll';

function DivRender_PrintScreen(Folder : pchar ) : integer; stdcall;external 'DivGL.dll';

function DivRender_GetFPS:integer;stdcall;external 'DivGL.dll';
function DivRender_GetTicks:single;stdcall;external 'DivGL.dll';


function DivRender_GetRay(var RayBegin,RayEnd: TD3DVector): TD3DVector;stdcall;external 'DivGL.dll';
function DivRender_Vect_2D_To_3D(x,y:integeristingle=0.965): DivRay;stdcall;external 'DivGL.dll';
function DivRender_PosGetRay(x,y:integer;var RayBegin,RayEnd:TD3DVector):TD3DVector;stdcall;ext ernal 'DivGL.dll';

procedure DivRender_SetFog(state : boolean);stdcall;external 'DivGL.dll';
procedure DivRender_SetupFog(Color : TColor4f;Fog_Density:single; Fog_Start, Fog_End : single); stdcall;external 'DivGL.dll';

Procedure DivRender_EnableDebug(Value: boolean);stdcall;external 'DivGL.dll';

procedure DivRender_Print(x,y:integer;Textchar;Color:TColor4f);stdcall;external 'DivGL.dll';

//************************************************** *****************
//************************************************** *****************



//************************************************** *****************
//*****************TEXT***************************** *****************
//************************************************** *****************

function Div_Font_Init(namechar;size:integer;Bold:boolean):integer;stdcall;ex ternal 'DivGL.dll';
procedure Div_Font_Print(Index:integer; pX,pY : Integer; pText : pchar;Color:TColor4f);stdcall; external 'DivGL.dll';

function Div_FontText_Init(texture:string):integer;stdcall; external 'DivGL.dll';
procedure Div_FontText_Print(Index:integer;x, y: single; text: pchar);stdcall;external 'DivGL.dll';
procedure Div_FontText_CenterPrint(x, y, z: integer; UPCasse:boolean; text: pchar);stdcall;external 'DivGL.dll';



//************************************************** *****************
//************************************************** *****************
//************************************************** *****************
////////////////////////////////////////////////////////////////////////////////

procedure DivCamera_Init(width,Height:integer;style:CAMERA_S TYLE);stdcall;external 'DivGL.dll';
procedure DivCamera_SetPosition(x,y,z:single);stdcall;extern al 'DivGL.dll';
function DivCamera_GetPosition:TD3DVector;stdcall;external 'DivGL.dll';
function DivCamera_GetDirection:TD3DVector;stdcall;external 'DivGL.dll';
procedure DivCamera_SetDirection(x,y,z:single);stdcall;exter nal 'DivGL.dll';
procedure DivCamera_LookAt(x,y,z:single);stdcall;external 'DivGL.dll';
procedure DivCamera_SetY(Value:single);stdcall;external 'DivGL.dll';
procedure DivCamera_SetX(Value:single);stdcall;external 'DivGL.dll';
procedure DivCamera_SetZ(Value:single);stdcall;external 'DivGL.dll';
procedure DivCamera_Update;stdcall;external 'DivGL.dll';
procedure DivCamera_MouseLook(MouseSpeedingle = 0.001;InvertMouse:boolean=false;CenterMousePos: Boolean = true);stdcall;external 'DivGL.dll';

procedure DivCamera_TurnRight(AngleAmountingle);stdcall;external 'DivGL.dll';
procedure DivCamera_TurnLeft( AngleAmountingle); stdcall;external 'DivGL.dll';
procedure DivCamera_TurnDown(AngleAmountingle); stdcall;external 'DivGL.dll';
procedure DivCamera_TurnUp(AngleAmountingle);stdcall;external 'DivGL.dll';
procedure DivCamera_MoveBackward(StepAmountingle); stdcall;external 'DivGL.dll';
procedure DivCamera_MoveForward(StepAmountingle);stdcall;external 'DivGL.dll';
procedure DivCamera_StrafeDown(StepAmountingle);stdcall;external 'DivGL.dll';
procedure DivCamera_StrafeUp(StepAmountingle);stdcall;external 'DivGL.dll';
procedure DivCamera_StrafeLeft(StepAmountingle);stdcall;external 'DivGL.dll';
procedure DivCamera_StrafeRight(StepAmountingle);stdcall; external 'DivGL.dll';
procedure DivCamera_RollLeft( AngleAmount : Single);stdcall;external 'DivGL.dll';
procedure DivCamera_RollRight( AngleAmount : Single);stdcall;external 'DivGL.dll';
procedure DivCamera_Roll( AngleAmount : Single);stdcall;external 'DivGL.dll';
procedure DivCamera_RotateX(DegreeAngleingle);stdcall;external 'DivGL.dll';
procedure DivCamera_RotateY(DegreeAngleingle);stdcall;external 'DivGL.dll';
procedure DivCamera_RotateZ(DegreeAngleingle);stdcall;external 'DivGL.dll';


function DivCamera_GetX:single;
function DivCamera_GetY:single;
function DivCamera_GetZ:single;
function DivCamera_GetRX:single;
function DivCamera_GetRY:single;
function DivCamera_GetRZ:single;


//************************************************** *****************
//*****************WAYPOINTS************************ *************
//************************************************** *****************


Function DivWayPoint_Init:integer;stdcall;external 'DivGL.dll';
procedure DivWayPoint_Free(pathIndex:integer);stdcall;extern al 'DivGL.dll';
procedure DivWayPoint_AddPath(pathIndex:integer;Time,PosX,Po sY,PosZ,DirX,DirY,DirZ:single);stdcall;external 'DivGL.dll';
procedure DivWayPoint_Render(pathIndex:integer;Visible:boole an);stdcall;external 'DivGL.dll';
procedure DivWayPoint_GetPath(pathIndex:integer;ElapsedTime : Integer;var aFirstTime : Integer;var Posx:single;var PosY:single;var PosZ:single;var aYaw : Single; var aPitch : Single; var aRoll : Single);stdcall;external 'DivGL.dll';
procedure DivWayPoint_SetPathToCamera(pathIndex:integer;Elap sedTime : Integer;CamIndex:integer;FreeLook:boolean);stdcall ;external 'DivGL.dll';

//************************************************** *****************
//*****************DIRECT3D DRAW*************************************
//************************************************** *****************
Procedure Div3DDraw_Grid(num_x, num_y, size_x, size_y : single; r,g,b:single; Arrows : Boolean);stdcall;external 'DivGL.dll';
procedure Div3DDraw_Plane(width,Height,XTiles,YTiles:integer ;XOffset,YOffset,XScope,YScopeingle;TileTextured,NoZWrite:boolean);stdcall;exter nal 'DivGL.dll';
procedure Div3DDraw_Sphere(x, y, z:single;radius:double;slices, stacks:integer;wire:boolean=false);stdcall;externa l 'DivGL.dll';
procedure Div3DDraw_Cone(x, y, z, Baseradius, Height: single;slices, stacks: integer);stdcall;external 'DivGL.dll';
procedure Div3DDraw_Disk (x,y,z, innerradius,outerradius: single;slices, loops: integer);stdcall;external 'DivGL.dll';
procedure Div3DDraw_Cube(x,y,z,width,height,deapth: single);stdcall;external 'DivGL.dll';
procedure Div3DDraw_Pyramid(x, y, z, Width, Deapth, Height: single);stdcall;external 'DivGL.dll';
procedure DivD3Draw_SplashScreen(TextureFile : PChar); stdcall;external 'DivGL.dll';
procedure DivD3Draw_SplashScreenRect(Px,Py:single;R:trect;Te xtureFile : PChar); stdcall;external 'DivGL.dll';
Procedure Div3DDraw_Billboard(x, y, z, width, height: glFloat;VFlip:boolean);stdcall;external 'DivGL.dll';

//************************************************** *****************
//**********************DIVPACK********************* *****************
//************************************************** *****************


function Div_UnZip_Load(filename,Password:string):integer;s tdcall;external 'DivGL.dll';
procedure Div_UnZip_AddFile(PackIndex:integerir,Files:string);stdcall;external 'DivGL.dll';
procedure Div_UnZip_Close(packindex:integer);stdcall;externa l 'DivGL.dll';
procedure Div_UnZip_ExtractFiles(packindex:integer;ToDir:str ing);stdcall;external 'DivGL.dll';
procedure Div_UnZip_ExtractFile(packindex:integer;FileName,T oDir:string);stdcall;external 'DivGL.dll';


//************************************************** *****************
//**********************3DEnvironment*************** *****************
//************************************************** *****************

procedure DivDecals_Add(TextureivText;Size:single;PT,normal: TD3DVector);stdcall;external 'DivGL.dll';
procedure DivDecal_DrawAll;stdcall;external 'DivGL.dll';
procedure DivDecal_Update(time:single);stdcall;external 'DivGL.dll';


procedure DivBill_Add(x,y,z,w,h:single;TextureIndex:integer) ;stdcall;external 'DivGL.dll';
procedure DivBill_AddTexture(FileNamechar;ColorKey:integer);stdcall;external 'DivGL.dll';
procedure DivBill_Render(BlendingMode:TBlendingMode);stdcall ;external 'DivGL.dll';

procedure DivGrass_Add(x,y,z,w,h,angle:single;TextureIndex:i nteger);stdcall;external 'DivGL.dll';
procedure DivGrass_AddTexture(FileNamechar;ColorKey:integer);stdcall;external 'DivGL.dll';
procedure DivGrass_Render(BlendingMode:TBlendingMode);stdcal l;external 'DivGL.dll';


function DIVSkybox_Load(texturetring):integer;stdcall;external 'DivGL.dll';
procedure DIVSkybox_Draw(skyindex:integer;x,y,z, width,height,length:single);stdcall;external 'DivGL.dll';

function DIVSkyPlane_Load(texturetring):integer;stdcall;external 'DivGL.dll';
procedure DIVSkyPlane_Draw(PlaneIndex:integer;px,py,pz, pwidth,plength:single);stdcall;external 'DivGL.dll';
procedure DIVSkyPlane_MoveTexture(PlaneIndex:integer;OffsetX ,OffsetY:single);stdcall;external 'DivGL.dll';
procedure DIVSkyPlane_ScaleTexture(PlaneIndex:integer;SX,SY: single);stdcall;external 'DivGL.dll';

procedure DIVSkyHorizon_Init(CloudTexture:string);stdcall;ex ternal 'DivGL.dll';
procedure DIVSkyHorizon_Draw(x,y,z:singlerawHorizon:boolean);stdcall;external 'DivGL.dll';


function DivSkyDome_Init(SunElevation:single=60;Turbidity:s ingle=15):integer;stdcall;external 'DivGL.dll';
procedure DivSkyDome_Draw(SkyDomeIndex:integer;x,y,z:single; IsDay:boolean);stdcall;external 'DivGL.dll';
procedure DivSkyDome_AddStars(SkyDomeIndex:integer;TotalOfSt ars : Integer);stdcall;external 'DivGL.dll';
procedure DivSkyDome_AddMoontexture(SkyDomeIndex:integer;Fil ename:string);stdcall;external 'DivGL.dll';
procedure DivSkyDome_SetSunElevation(SkyDomeIndex:integer;Va lue:single);stdcall;external 'DivGL.dll';
procedure DivSkyDome_SetTurbidity(SkyDomeIndex:integer;Value :single);stdcall;external 'DivGL.dll';


Function DivLensFlare_Init(Position:TD3DVector):integer;std call;external 'DivGL.dll';
procedure DivLensFlare_AddTextures(LensIndex:integer; aF1, aF2, aF3,aF4, aF5, aF6, aF7, aF8, aF9: String);external 'DivGL.dll';
procedure DivLensFlare_Render(LensIndex:integer;drawHolow,Dr awSun:boolean);stdcall;external 'DivGL.dll';
procedure DivLensFlare_Free(LensIndex:integer);stdcall;exter nal 'DivGL.dll';
procedure DivLensFlare_SetPosition(LensIndex:integer;Positio n:TD3DVector);stdcall;external 'DivGL.dll';

Procedure DivLigthLens_Render(LLensIndex:integer;x,y,z:singl e);stdcall;external 'DivGL.dll';
function DivLigthLens_Init(Resolution:integer):integer;stdc all;external 'DivGL.dll';

//************************************************** *****************
//*****************TEXTURES************************* *****************
//************************************************** *****************
procedure DivTexture_SetFilter(Filter:TTextureFilter);stdcal l;external 'DivGL.dll';
procedure DivTexture_SetWrap(Wrap : TTextureWrap);stdcall;external 'DivGL.dll';
procedure DivTexture_MipMapping(Enabled: Boolean);stdcall;external 'DivGL.dll';

procedure DivTexture_Bind(TextureivText);stdcall;external 'DivGL.dll';
function DivTexture_LoadFromFile(FileName: String; TransparentColor : integer)ivText;stdcall;external 'DivGL.dll';
function DivTexture_LoadFromPack(PackIndex:integer;FileName : String; TransparentColor : integer)ivText;external 'DivGL.dll';
procedure DivTexture_Free(TextureivText);stdcall;external 'DivGL.dll';
//************************************************** *****************
//*************************MATERIAL***************** *****************
//************************************************** *****************
procedure DivMaterial_SetMaterial(Material:TMaterial);stdcal l;external 'DivGL.dll';
procedure DivMaterial_SetMaterialFace(Face:Cardinal;Material :TMaterial);stdcall;external 'DivGL.dll';
procedure DivMaterial_SetMaterialEx( Ambient : TColor4fiffuse : TColor4f;Specular : TColor4f;Emission : TColor4f;Shininess: Single);stdcall;external 'DivGL.dll';
procedure DivMaterial_SetMaterialFaceEx(Face:Cardinal; Ambient : TColor4fiffuse : TColor4f;Specular : TColor4f;Emission : TColor4f;Shininess: Single);stdcall;external 'DivGL.dll';
function DivMaterial_GetTipical(mat:byte;NewShiness:single=-1):TMaterial;stdcall;external 'DivGL.dll';
function DivColor_Set(r,g,b,a:single):TColor4f;stdcall;exte rnal 'DivGL.dll';

//************************************************** *****************
//************************************************** *****************
//************************************************** *****************
Function DivMesh_AddTexture(Filenamechar;colorkey:integer):integer;stdcall;external 'DivGL.dll';
procedure DivMesh_AddBox(x,y,z:single;w,h,d:single; TextureIDLeft, TextureIDRight,TextureIDTop , TextureIDBottom,TextureIDFront,TextureIDBack:GluIn t ; Tu ingle = 1;TVingle = 1);stdcall;external 'DivGL.dll';
procedure DivMesh_AddFloor(x,y,z,W,H:single;TextureID :GluInt=0;Tu : Single = 1;TVingle = 1);stdcall;external 'DivGL.dll';
procedure DivMesh_AddRoof(x,y,z,W,H:single;TextureID :GluInt=0;Tu : Single = 1;TVingle = 1);stdcall;external 'DivGL.dll';
procedure DivMesh_AddWallFront(x,y,z,W,H:single;TextureID :GluInt=0;Tu : Single = 1;TVingle = 1);stdcall;external 'DivGL.dll';
procedure DivMesh_AddWallBack(x,y,z,W,H:single;TextureID :GluInt=0;Tu : Single = 1;TVingle = 1);stdcall;external 'DivGL.dll';
procedure DivMesh_AddWallLeft(x,y,z,H,D:single;TextureID :GluInt=0;Tu : Single = 1;TVingle = 1);stdcall;external 'DivGL.dll';
procedure DivMesh_AddWallRight(x,y,z,H,D:single;TextureID :GluInt=0;Tu : Single = 1;TVingle = 1);stdcall;external 'DivGL.dll';
procedure DivMesh_AddCilynder(x,y,z,Radius,Height:single; Segment:integer= 10;TextureIDBody:Gluint=0);stdcall;external 'DivGL.dll';
procedure DivMesh_Render;stdcall;external 'DivGL.dll';
function DivMesh_SphereCollisionSliding(Var View:TD3DVector;Var Position:TD3DVector;Radius:single):boolean;stdcall ;external 'DivGL.dll';
function DivMesh_SphereCollision(Position: TD3DVector;Radius:single):boolean;stdcall;external 'DivGL.dll';
function DivMesh_CheckRayCollision(var Point:TD3DVector;var Normal:TD3DVector;RayBegin,Rayend:TD3DVector):bool ean;stdcall;external 'DivGL.dll';

//************************************************** *****************
//************************************************** *****************
//************************************************** *****************
function DivModels_AddMD2(filenamechar;Skinchar;GetBBox:boolean):integer;stdcall;external 'DivGL.dll';
procedure DivModels_SetMD2Animation(Index:integer;Animation: integer);stdcall;external 'DivGL.dll';
procedure DivModels_SetMD2AnimationRange(Index:integer;AStar t,AEnd:integer);stdcall;external 'DivGL.dll';

function DivModels_Add3DS(filename,TexturesPathchar):integer;stdcall;external 'DivGL.dll';

function DivModels_AddMD3Player(filename,Skinchar):integer;stdcall;external 'DivGL.dll';
procedure DivModels_AddMD3PlayerGun(Index:integerir,Model,Skinchar);stdcall;external 'DivGL.dll';
procedure DivModels_SetMD3PlayerAnimation(Index:integer;Anim ation:integer);stdcall;external 'DivGL.dll';
Function DivModels_GetMD3PlayerLowerAnimation(Index:integer ):integer;stdcall;external 'DivGL.dll';
Function DivModels_GetMD3PlayerUpperAnimation(Index:integer ):integer;stdcall;external 'DivGL.dll';

function DivModels_AddMD3(filenamechar):integer;stdcall; external 'DivGL.dll';
procedure DivModels_SetMD3Skin(Index:integer;Path,skinchar);stdcall;external 'DivGL.dll';
procedure DivModels_SetMD3Frame(Index:integer;Frame:integer) ;stdcall;external 'DivGL.dll';
procedure DivModels_SetMD3Link(Index:integer;TagNamechar;ModelIndex:integer);stdcall;external 'DivGL.dll';
procedure DivModels_SetMD3Texture(Index:integer;MeshName,Fil eNamechar);stdcall;external 'DivGL.dll';

function DivModels_AddMS3D(filename,TexturePathchar):integer;stdcall;external 'DivGL.dll';
procedure DivModels_MS3DSetState(Index:integer;FPS:single;se q_start,seq_end,next:integer);stdcall;external 'DivGL.dll';
procedure DivModels_MS3DUpdateAnimation(Index:integer);stdca ll;external 'DivGL.dll';
procedure DivModels_MS3DTransform(Index,OBJIndex,Joint:integ er);stdcall;external 'DivGL.dll';

function DivModels_AddSMD(filename,TexturePathchar):integer;stdcall;external 'DivGL.dll';
procedure DivModels_SMDAddAnimation(Index:integer;filenamechar);stdcall;external 'DivGL.dll';
procedure DivModels_SMDUpdate(Index:integer);stdcall;externa l 'DivGL.dll';
procedure DivModels_SMDSetAnimation(Index,AnimationIndex:int eger);stdcall;external 'DivGL.dll';
procedure DivModels_SMDRotateJoint(Index,AnimationIndex,Join tIndex:integer;x,y,z:single);stdcall;external 'DivGL.dll';


function DivEntities_GetVertex(Index:integer;FaceIndex,TriI ndex:integer):TD3DVector;stdcall;external 'DivGL.dll';

procedure DivModels_Free(Index:integer);stdcall;external 'DivGL.dll';


procedure DivEntities_SetTexture(Index:Integer;TextureivText);stdcall;external 'DivGL.dll';
procedure DivEntities_Render(Index:Integer;Time:single);stdc all;external 'DivGL.dll';
procedure DivEntities_Position(Index:integer;x,y,z:single);s tdcall;external 'DivGL.dll';
procedure DivEntities_Yaw(Index:integer;angle:single);stdcal l;external 'DivGL.dll';
procedure DivEntities_Pitch(Index:integer;angle:single);stdc all;external 'DivGL.dll';
procedure DivEntities_Roll(Index:integer;angle:single);stdca ll;external 'DivGL.dll';
procedure DivEntities_Scale(Index:integer;x,y,z:single);stdc all;external 'DivGL.dll'

procedure DivEntities_LookAT(Index:integer;x,y,z:single);std call;external 'DivGL.dll'

procedure DivEntities_AddChild(Index,Child:integer);stdcall; external 'DivGL.dll';

procedure DivEntities_RenderNoTrasform(Index:Integer;Time:si ngle);stdcall;external 'DivGL.dll';

procedure DivEntities_SetStatic(Index:integer;Value:boolean) ;stdcall;external 'DivGL.dll';


procedure DivEntities_BBoxByIndex(index:integer;obj:integer) ;stdcall;external 'DivGL.dll';
procedure DivEntities_SetBBox(index:integer;MinX,MinY,Minz,M axX,MaxY,MaxZ:single);stdcall;external 'DivGL.dll';


function DivEntities_BoxColide(En1,En2:integer):boolean;std call;external 'DivGL.dll';
function DivEntities_RayBoxColide(Index:integer;RayStar,Ray End: TD3DVector):boolean;stdcall;external 'DivGL.dll';
function DivEntities_RaySphereColide(Index:integer;RayStar, RayEnd:TD3DVector):boolean;stdcall;external 'DivGL.dll';
function DivEntities_RayTriangleColide(Index:integer;RaySta r,RayEnd: TD3DVector):BOOL;stdcall;external 'DivGL.dll';


//************************************************** *****************
//************************************************** *****************
//*********** Terrain **************************************
//************************************************** *****************
//************************************************** *****************


//tile engine
procedure DivHeightMap_Init(TileW,TileH:integer);stdcall;ext ernal 'DivGL.dll';
procedure DivHeightMap_ImportHeightMap(FileNamechar;FileType:THeightMapFormat);stdcall;external 'DivGL.dll';
procedure DivHeightMap_LoadTextures(MainTexture,DetailTextur echar);stdcall;external 'DivGL.dll';



procedure DivHeightMap_Update;stdcall;external 'DivGL.dll';
procedure DivHeightMap_Draw;stdcall;external 'DivGL.dll';

Function DivHeightMap_GetAbsHeight(x,y:single):single;stdca ll;external 'DivGL.dll';
Function DivHeightMap_GetNormal(x,y:integer):TVector3D;stdc all;external 'DivGL.dll';
Function DivHeightMap_GetHeight(x,y:single):single;stdcall; external 'DivGL.dll';
Function DivHeightMap_CenterX:single;stdcall;external 'DivGL.dll';
Function DivHeightMap_CenterY:single;stdcall;external 'DivGL.dll';

procedure DivHeightMap_Scale(x,y,z:single);stdcall;external 'DivGL.dll';
procedure DivHeightMap_Position(x,y,z:single);stdcall;extern al 'DivGL.dll';

//+++++++++++


procedure DivTerrain_Init(TileW,TileH:integer);stdcall;exter nal 'DivGL.dll';

procedure DivTerrain_SetFlat;stdcall;external 'DivGL.dll';
procedure DivTerrain_ImportHeightMap(FileName:string;FileTyp e:THeightMapFormat);stdcall;external 'DivGL.dll';
procedure DivTerrain_AddShadowMap(FileName:string);stdcall;e xternal 'DivGL.dll';

procedure DivTerrain_Scale(x,y,z:single);stdcall;external 'DivGL.dll';
procedure DivTerrain_Position(x,y,z:single);stdcall;external 'DivGL.dll';

procedure DivTerrain_AddTileTextures(filename:string);stdcal l;external 'DivGL.dll';
procedure DivTerrain_Update;stdcall;external 'DivGL.dll';

procedure DivTerrain_SetTileTexture(x,y:integer;textureIndex :integer);stdcall;external 'DivGL.dll';
procedure DivTerrain_SetTileHeight(x,y:integer;Heightingle);stdcall;external 'DivGL.dll';

Function DivTerrain_GetAbsHeight(x,y:single):single;stdcall ;external 'DivGL.dll';
Function DivTerrain_GetNormal(x,y:integer):TD3DVector;stdca ll;external 'DivGL.dll';

Function DivTerrain_GetHeight(x,y:single):single;stdcall;ex ternal 'DivGL.dll';
Function DivTerrain_RayColide(RayStar,RayEnd:TD3DVector):Bo olean;stdcall;external 'DivGL.dll';

Function DivTerrain_CenterX:single;stdcall;external 'DivGL.dll';
Function DivTerrain_CenterY:single;stdcall;external 'DivGL.dll';

procedure DivTerrain_SetTileFlip(x,y:integer;flip:TTileFlip) ;stdcall;external 'DivGL.dll';

procedure DivTerrain_Render(RealTime:boolean);Stdcall;extern al 'DivGL.dll';

procedure DivTerrain_Save(filename:string);Stdcall;external 'DivGL.dll';
procedure DivTerrain_Load(filename:string);Stdcall;external 'DivGL.dll';



//************************************************** *****************
//************************************************** *****************


//************************************************** *****************
//************************************************** *****************
//******************Half-Life map loader*****************************
//************************************************** *****************
procedure DivHLMap_Init(Filename,TextureDirchar);stdcall;external 'DivGL.dll';
procedure DivHLMap_Free;stdcall;external 'DivGL.dll';

function DivHLMap_NumSectors:integer;stdcall;external 'DivGL.dll';
function DivHLMap_GetPlayerStart:TD3DVector;stdcall;externa l 'DivGL.dll';

procedure DivHLMap_DrawAll;stdcall;external 'DivGL.dll';
procedure DivHLMap_DrawSector(Index:integer);stdcall;externa l 'DivGL.dll';

//************************************************** *****************
//******************Delgine map loader*****************************
//************************************************** *****************

Procedure DivDLMap_Render(Index:integer); stdcall;external 'DivGL.dll';
function DivDLMap_Load(Filename,Textureschar;UseLightmaps:boolean):integer;stdcall;externa l 'DivGL.dll';
Function DivDLMap_Colide(Index:integer;Inside:boolean;Posit ion:TD3DVector):TColideSystem;stdcall;external 'DivGL.dll';

//************************************************** *****************
//************************************************** *****************
function DivWorl3DS_Add(Filename,Texturepathchar):integer;stdcall;external 'DivGL.dll';
procedure DivWorl3DS_Free(Index:integer);stdcall;external 'DivGL.dll';
procedure DivWorl3DS_DrawAll(Index:integer);stdcall;external 'DivGL.dll';
procedure DivWorl3DS_DrawSelect(Index,OBJindex:integer);stdc all;external 'DivGL.dll';
procedure DivWorl3DS_DrawSelectBox(Index,OBJIndex:integer);s tdcall;external 'DivGL.dll';
procedure DivWorl3DS_SelectObject(Index,objIndex:integer;val ue:boolean);stdcall;external 'DivGL.dll';
procedure DivWorl3DS_DrawAllBBox(Index:integer);stdcall;exte rnal 'DivGL.dll';

//************************************************** *****************
//************************************************** *****************


function DivWaterPlane_Init(Texture:string):integer; stdcall;external 'DivGL.dll';
procedure DivWaterPlane_Draw(WP_Index_integer:integer);stdca ll;external 'DivGL.dll';
procedure DivWaterPlane_SetDefaults(WP_Index_integer:integer );stdcall;external 'DivGL.dll';
procedure DivWaterPlane_Move(WP_Index_integer:integer;mcount :single);stdcall;external 'DivGL.dll';
procedure DivWaterPlane_SetPosition(WP_Index_integer:integer ;x,y,z:single);stdcall;external 'DivGL.dll';
procedure DivWaterPlane_SetSize(WP_Index_integer:integer;Wid th,Height:integer;scaleWidth,scaleHeight:single);s tdcall;external 'DivGL.dll';
procedure DivWaterPlane_SetRepeats(WP_Index_integer:integer; Repeats:integer;StartAngle:single);stdcall;externa l 'DivGL.dll';
procedure DivWaterPlane_SetWave(WP_Index_integer:integer;Wav eLength,WaveSpeed,WaveAmplitude:single);stdcall;ex ternal 'DivGL.dll';
procedure DivWaterPlane_SetAlpha(WP_Index_integer:integer;va lue:single);stdcall;external 'DivGL.dll';
//************************************************** *****************
//************************************************** *****************
//************************************************** *****************
//************************************************** *****************
procedure DivFrustum_Update;stdcall;external 'DivGL.dll';
function DivFrustum_PointIn(const pX, pY, pZ : Single) : Boolean;stdcall;external 'DivGL.dll';
function DivFrustum_BoxIn(const pX, pY, pZ,size : Single) : Boolean;stdcall;external 'DivGL.dll';
function DivFrustum_SphereIn(const pX, pY, pZ, pRadius : Single) : Boolean;stdcall;external 'DivGL.dll';
function DivFrustum_AABBIn(const aOBoundingBox: TOBoundingBox): Boolean;stdcall;external 'DivGL.dll';

//************************************************** *****************
//************************************************** *****************
//************************************************** *****************
//**********************2D"************************* ********************
//************************************************** *****************
procedure DivImage_Draw(Texture: DivText;x,y:integer;scaleX,ScaleY:single;angle:sin gle;Color:TColor4f;FBlendingMode:TBlendingMode);st dcall;external 'DivGL.dll';
procedure DivImage_DrawRect(Texture: DivText;Rect:Trect;x,y,scaleX,ScaleY:single;angle: single;Color:TColor4f;FBlendingMode:TBlendingMode) ;stdcall;external 'DivGL.dll';
procedure DivImage_DrawScroll(Texture: DivText;R:Trect;UFactor,VFactor,ScrolXfactor,Scrol YFactor:single;x,y:single;Color:TColor4f;FBlending Mode:TBlendingMode);stdcall;external 'DivGL.dll';
procedure DivImage_SubRect(Texture: DivText;x,y,SCallX,SCallY:single;SRect:TRECT;Color :TColor4f;FBlendingMode:TBlendingMode);stdcall;ext ernal 'DivGL.dll';
procedure DivImage_SubRectTransform(Texture: DivText;x,y:single;FlipV,FlipH:boolean;scaleX,Scal eY:single;CenterX, CenterY,angle:single;SRect:TRECT;Color:TColor4f;FB lendingMode:TBlendingMode);stdcall;external 'DivGL.dll';
//************************************************** *****************
//************************************************** *****************
function DivFader_FadeEnded:boolean;stdcall;external 'DivGL.dll';
procedure DivFader_SotpFade;stdcall;external 'DivGL.dll';
procedure DivFader_SetLoop(Value:boolean);stdcall;external 'DivGL.dll';
procedure DivFader_SetInOut(Value:boolean);stdcall;external 'DivGL.dll';
procedure DivFader_FadeOut(r,g,b:byte;Speed:single);stdcall; external 'DivGL.dll';
procedure DivFader_FadeIn(r,g,b:byte;Speed:single);stdcall;e xternal 'DivGL.dll';
procedure DivFader_Draw;stdcall;external 'DivGL.dll';
procedure DivFader_DrawinRect(rect:trect);stdcall;external 'DivGL.dll';


//************************************************** ***********
//************************************************** ***********
//************************************************** ***********
//************************************************** ***********


procedure DivInput_Update;stdcall;external 'DivGL.dll';

function DivInput_MouseAbsX:Integer;stdcall;external 'DivGL.dll';
function DivInput_MouseAbsY:Integer;stdcall;external 'DivGL.dll';
function DivInput_MouseAbsZ:Integer;stdcall;external 'DivGL.dll';

function DivInput_MouseX:Integer;stdcall;external 'DivGL.dll';
function DivInput_MouseY:Integer;stdcall;external 'DivGL.dll';
function DivInput_MouseZ:Integer;stdcall;external 'DivGL.dll';

function DivInput_MouseDown(Button: Integer):Boolean;stdcall;external 'DivGL.dll';
function DivInput_MouseUp(Button: Integer):Boolean;stdcall;external 'DivGL.dll';

function DivInput_KeyDown(key:integer):boolean;stdcall;exte rnal 'DivGL.dll';
function DivInput_KeyUp(key:integer):boolean;stdcall;extern al 'DivGL.dll';
function DivInput_KeyName(key:integer)char;stdcall;external 'DivGL.dll';
function DivInput_KeyPressed:boolean;stdcall;external 'DivGL.dll';


//************************************************** ***********
//************************************************** ***********
//************************************************** ***********
//************************************************** ***********

function DivSound_Load(Filenamechar;Is3d:boolean):integer;stdcall;external 'DivGL.dll';
function DivSound_Play(SoundIndex:integer;Loop:boolean):Boo lean;stdcall;external 'DivGL.dll';
function DivSound_Stop(SoundIndex:integer):Boolean;stdcall; external 'DivGL.dll';
function DivSound_SetPosition(SoundIndex:integer;x,y,z:sing le):Boolean;stdcall;external 'DivGL.dll';
function DivSound_SetListnerPosition(SoundIndex:integer;x,y ,z:single):Boolean;stdcall;external 'DivGL.dll';

//************************************************** ***********
//************************************************** ***********

procedure DivMusic_Free(MusicIndex:integer);stdcall;external 'DivGL.dll';
function DivMusic_Load(Filenamechar):integer;stdcall;external 'DivGL.dll';
function DivMusic_SetPan(MusicIndex:integer;Value:Integer): boolean;stdcall;external 'DivGL.dll';
function DivMusic_SetVolume(MusicIndex:integer;Value:Intege r):boolean;stdcall;external 'DivGL.dll';
function DivMusic_SetPosition(MusicIndex:integer;Valueouble):boolean;stdcall;external 'DivGL.dll';
function DivMusic_GetPosition(MusicIndex:integer)ouble;stdcall;external 'DivGL.dll';
function DivMusic_GetDuration(MusicIndex:integer)ouble;stdcall;external 'DivGL.dll';
function DivMusic_Play(MusicIndex:integer):boolean;stdcall; external 'DivGL.dll';
function DivMusic_Stop(MusicIndex:integer):boolean;stdcall; external 'DivGL.dll';
function DivMusic_Pause(MusicIndex:integer):boolean;stdcall ;external 'DivGL.dll';
function DivMusic_IsPlaying(MusicIndex:integer):boolean;std call;external 'DivGL.dll';
procedure DivMusic_LoopIt(MusicIndex:integer);stdcall;extern al 'DivGL.dll';
//************************************************** ***********
//************************************************** ***********
//************************************************** ***********
//************************************************** ***********

function DivMath_RandomS( lo, hi : Single ) : Single;stdcall;external 'DivGL.dll';
function DivMath_RandomI( lo, hi : integer ) : integer;stdcall;external 'DivGL.dll';

[/pascal][/pascal]

ps: is just the first release espect lots of bugs

asta