Page 1 of 2 12 LastLast
Results 1 to 10 of 19

Thread: DXCore 3D Engine(Irr4Delphi)

  1. #1

    DXCore 3D Engine(Irr4Delphi)

    hi folks .
    irr4delphi now is not the wrapper is a full 3d engine for Delphi .
    i modify the irrlicht to render just directx 9
    this way i have full control of the render and i put same extra stuff like shaders with .fx files and hardware occlude
    the engine is not ready i release this just 4 the feedback .
    I’m working on extra stuff
    The new api is more simple and clean, the pack have 30 demos.

    Best Regards: Luis Santos AKA Djoker


    http://www.box.net/shared/zc92042efo


    PARTICLES



    PARTICLES AND LIGHT






    SIMPLE CAMERA AND MESH

    ANIMATED MESH

    QUAKE BSP WITH SHADERS



    PIXEL AND VERTEX SHADERS

    MESHBUILDER(CREATE WORLDS BY CODE)


    CREATE MESH BY CODE(FULL CONTROL OF VERTEX)


    SHADER BY FX FILE (TEXTURE MODEL AND BLEND)

    SCREEN SHADER EFECTS




    SHADOWS



    WATER SHADER


    COLIDER


    TERRAINMESH WITH PRESISION LEVEL AND GEOMIPMAP









    [pascal]
    unit DXCore;

    interface
    uses windows,DXCoreTypes;

    procedure Engine_Start(const captionwidechar;w,h,bits:integer;fullscreen:boolean=false ;vsync:boolean=false;stencilbuffer:boolean=false;A ntiAlias:boolean=false;HighPrecisionFPU:boolean=fa lse);cdecl ;external DX_DLL;
    procedure Engine_Drop;cdecl ;external DX_DLL;


    function Engine_Run:boolean;cdecl ;external DX_DLL;
    procedure Engine_Close;cdecl ;external DX_DLL;

    function Engine_Clear(color:dword; backBuffer:boolean=true;zBuffer:boolean=true):bool ean;cdecl ;external DX_DLL;
    function Engine_BeginScene:boolean;cdecl ;external DX_DLL;
    function Engine_EndScene:boolean;cdecl ;external DX_DLL;
    function Engine_Flip(SourceRectrect):boolean;cdecl ;external DX_DLL;

    function Engine_GetFPS:integer;cdecl ;external DX_DLL;
    function Engine_GetMaterialRender:integer;cdecl ;external DX_DLL;
    function Engine_GetPrimitivesDraw:integer;cdecl ;external DX_DLL;
    function Engine_GetVBODraw:integer;cdecl ;external DX_DLL;
    function Engine_GetSOFDraw:integer;cdecl ;external DX_DLL;

    procedure Engine_SetTextureCreationFlag(flag:TEXTURE_CREATIO N_FLAG; enabled:boolean);cdecl ;external DX_DLL;


    //************************************************** ****
    //*
    //************************************************** ****
    function LoadZipFile(const filenamechar;ignoreCase:boolean=true;ignorePaths:boolean=t rue ):boolean;cdecl ;external DX_DLL;
    function LoadPackFile(const filenamechar;ignoreCase:boolean=true;ignorePaths:boolean=t rue ):boolean;cdecl ;external DX_DLL;
    function GetWorkingDirectorychar;cdecl ;external DX_DLL;
    function SetWorkingDirectory(const newDirectorychar):boolean;cdecl ;external DX_DLL;
    procedure SetCursorVisible(value:boolean);cdecl ;external DX_DLL;
    procedure LogWrite(const textchar;LEVEL:LOGLEVEL);cdecl ;external DX_DLL;
    //************************************************** ****
    //*
    //************************************************** ****


    //************************************************** ****
    //*
    //************************************************** ****
    procedure RenderWorld;cdecl ;external DX_DLL;

    procedure SetActiveCamera(ID:Void);cdecl ;external DX_DLL;
    procedure SetView(Position,LookAt:vector3);cdecl ;external DX_DLL;
    procedure SetCamera(Position,LookAt,UpVector:vector3);cdecl ;external DX_DLL;

    procedure SetCullMeshBuffer(value:boolean);cdecl ;external DX_DLL;

    function GetVideoModeCount:integer;cdecl ;external DX_DLL;
    procedure GetVideeoModeResolution (index:integer;var x:integer;var y:integer);cdecl ;external DX_DLL;
    procedure GetVideoModeDepth (index:integer;var d:integer);cdecl ;external DX_DLL;

    procedure TakeScreenShot( dirchar);cdecl ;external DX_DLL;
    procedure TakeScreenShotEx( filenamechar);cdecl ;external DX_DLL;

    function LockFrameRate(fps:integer):boolean;cdecl ;external DX_DLL;
    function GetFrameTime:single;cdecl ;external DX_DLL;
    function GetTime:integer;cdecl ;external DX_DLL;

    function GetTicks:integer;cdecl ;external DX_DLL;

    procedure SetTransform(state:TRANSFORMATION_STATE;const MatrixCMatrix4);cdecl ;external DX_DLL;
    procedure GetTransform(state:TRANSFORMATION_STATE; MatrixCMatrix4);cdecl ;external DX_DLL;
    //************************************************** ****
    //* CREATE ENTITYS
    //************************************************** ****
    function CreateAndStripMesh(const filenamechar;id:integer=-1;parent:Void=nil):Void;cdecl ;external DX_DLL;
    function CreateCamera(id:integer=-1;parent:Void=nil):Void;cdecl ;external DX_DLL;
    function CreateCameraEx(Position,LookAt:vector3;id:integer=-1;parent:Void=nil):Void;cdecl ;external DX_DLL;
    function CreateFpsCamera(rotateSpeed:single=100.0;moveSpeed :single=0.1;jumpSpeed:single=1.0;noVerticalMovemen t:boolean=false;id:integer=-1;parent:Void=nil):Void;cdecl ;external DX_DLL;
    function CreateMaysCamera(rotateSpeed:single= -1500.0;zoomSpeed:single=200.0;translationSpeed:sin gle=1500.0;id:integer=-1;parent:Void=nil):Void;cdecl ;external DX_DLL;
    function CreatePivot(id:integer=-1;parent:Void=nil):Void;cdecl ;external DX_DLL;
    function CreateParticleSystem(withDefaultEmitter:boolean;id :integer=-1;parent:Void=nil):Void;cdecl ;external DX_DLL;
    function CreateEntity(AnimatedMesh:Void;VBO:boolean=false;i d:integer=-1;parent:Void=nil):Void;cdecl ;external DX_DLL;
    function CreateEntityEx(const filenamechar;VBO:boolean=false;id:integer=-1;parent:Void=nil):Void;cdecl ;external DX_DLL;
    function CreateStaticEntity(StaticMesh:Void;VBO:boolean=fal se;id:integer=-1;parent:Void=nil):Void;cdecl ;external DX_DLL;
    function CreateOctree(AnimatedMesh:Void;minimalPolysPerNode :integer=512;id:integer=-1;parent:Void=nil):Void;cdecl ;external DX_DLL;
    function CreateStaticOctree(StaticMesh:Void;minimalPolysPer Node:integer=512;id:integer=-1;parent:Void=nil):Void;cdecl ;external DX_DLL;
    function CreateQaudTree(AnimatedMesh:Void;minimalPolysPerNo de:integer=512;id:integer=-1;parent:Void=nil):Void;cdecl ;external DX_DLL;
    function CreateStaticQaudTree(StaticMesh:Void;minimalPolysP erNode:integer=512;id:integer=-1;parent:Void=nil):Void;cdecl ;external DX_DLL;
    function CreateBspTree(AnimatedMesh:Void;MaxVertex:integer; CullFrustum:boolean;id:integer=-1;parent:Void=nil):Void;cdecl ;external DX_DLL;
    function CreateStaticBspTree(Mesh:Void;MaxVertex:integer;Cu llFrustum:boolean;id:integer=-1;parent:Void=nil):Void;cdecl ;external DX_DLL;
    function CreateCube(size:single=1.0;id:integer=-1;parent:Void=nil):Void;cdecl ;external DX_DLL;
    function CreateSphere(radius:single=1;segments:integer=16;i d:integer=-1;parent:Void=nil):Void;cdecl ;external DX_DLL;
    function CreateCone (radius,length:single;colorTop,colorBottomWord;tesselation:integer=16;oblique:single=0.0;id: integer=-1;parent:Void=nil):Void;cdecl ;external DX_DLL;
    function CreateCylinder (radius,length:single;colorWord;CloseTop:boolean=true;tesselation:integer=8;o blique:single=0.0;id:integer=-1;parent:Void=nil):Void;cdecl ;external DX_DLL;
    function CreatePlane ( Width, Height:single;tilesx,tilesy:integer;tu,tv:single;i d:integer=-1;parent:Void=nil):Void;cdecl ;external DX_DLL;
    function CreateHills (hillHeight:integer;countHillsX,countHillsY:single ;Width, Height:single;tilesx,tilesy:integer;tu,tv:single;i d:integer=-1;parent:Void=nil):Void;cdecl ;external DX_DLL;
    function CreateArrow (vtxColor0,vtxColor1Word;id:integer=-1;parent:Void=nil):Void;cdecl ;external DX_DLL;
    function CreateSkyBox(top,bottom,left,right,front,backchar;id:integer=-1;parent:Void=nil):Void;cdecl ;external DX_DLL;
    function CreateSkyDome(const texturechar;horiRes:integer=16;vertRes:integer=8;textureP ercentage:double=0.9;spherePercentage:double=2.0;i d:integer=-1;parent:Void=nil):Void;cdecl ;external DX_DLL;
    function CreateSkyCurve(const texturechar;divisions:integer=15;PlanetRadius:single=500. 0;AtmosphereRadius:single=900.0;hTile:single=1.0; vTile:single=1.0):Void;cdecl ;external DX_DLL;
    function CreateWaterSurface(mesh:Void;waveHeight:single=2.0 ;waveSpeed:single=300.0;waveLength:single=10.0;id: integer=-1;parent:Void=nil):Void;cdecl ;external DX_DLL;
    function CreateBillboard(w,h:single;pos:vector3;color:dword ;id:integer=-1;parent:Void=nil):Void;cdecl ;external DX_DLL;
    function Create3DText(font:Void;const textwidechar;w,h:single;pos:vector3;color:dword;id:int eger=-1;parent:Void=nil):Void;cdecl ;external DX_DLL;
    function CreateBoidFromCamera(Texture:Void;w,h:single):Void ;cdecl ;external DX_DLL;
    function CreateBoid(Vbegin,VEnd:vector3;Texture:Void;w,h:si ngle):Void;cdecl ;external DX_DLL;
    function CreateVolumeLight (FootColor,TailColorWORD;subdivU:integer=32;subdivV:integer=32;id:inte ger=-1;parent:Void=nil):Void;cdecl ;external DX_DLL;
    function CreateScreenQuad(id:integer=-1;parent:Void=nil):Void;cdecl ;external DX_DLL;

    //************************************************** ****
    //* WATER PLANE MATRIX
    //************************************************** ****

    //*** bugs
    function CreateWaterPlane(numx,numy:integer;h:single;id:int eger=-1;parent:Void=nil):Void;cdecl ;external DX_DLL;
    procedure AddForce(id:Void;numx,numy:integer;force:single)cd ecl ;external DX_DLL;
    procedure RemoveForce(id:Void;numx,numy:integer)cdecl ;external DX_DLL;
    procedure AddForceCube(id:Void;beginx,beginy,endx,endy:integ er;force:single)cdecl ;external DX_DLL;
    procedure RemoveForceCube(id:Void;beginx,beginy,endx,endy:in teger)cdecl ;external DX_DLL;

    //************************************************** ****
    //* QUAKE BSP SHADERS
    //************************************************** ****
    function LoadBspMesh(const filenamechar):Void;cdecl ;external DX_DLL;
    function CreateBspEntity(Mesh:Void;minimalPolysPerNode:inte ger=512 ):Void;cdecl ;external DX_DLL;

    //************************************************** ****
    //* LENSFLARE
    //************************************************** ****

    function CreateLensFlare(
    const BaseTexturechar;
    Position:vector3;
    size:single;
    isStatic:boolean=true;
    selector:Void=nil;
    id:integer=-1;parent:Void=nil):Void;cdecl ;external DX_DLL;
    procedure AddRing(ID:Void;const texturechar;index:integer; size:single;color:dword=$FFFFFFFF);cdecl ;external DX_DLL;

    //************************************************** ****
    //* SAHDER WATER
    //************************************************** ****

    function CreateShaderWater(
    const Texturechar;
    pos:vector3;
    colorword;
    width,
    height,
    renderTargetSizeWidth,
    renderTargetSizeHeight:single;
    id:integer=-1):Void;cdecl ;external DX_DLL;
    procedure SetBlendFactor(water:Void;value:single=0.2);cdecl ;external DX_DLL;
    procedure SetWaterColor(water:Void;color:dword);cdecl ;external DX_DLL;
    procedure SetWindForce(water:Void;value:single=10.0);cdecl ;external DX_DLL;
    procedure SetWindDirection(water:Void;x:single=0.0;y:single= 1.0);cdecl ;external DX_DLL;
    procedure SetWaveHeight(water:Void;value:single=0.3);cdecl ;external DX_DLL;

    //************************************************** ****
    //* CREATE AND LOADMESHS
    //************************************************** ****
    function LoadMesh(const filenamechar):Void;cdecl ;external DX_DLL;

    function CreateTerrainMesh(MeshNamechar;texturechar;heightMapFileNamechar;stretchSizex:single=10;stretchSizey:single=10 ;maxHeight:single=20.0;defaultVertexBlockSizex:int eger=64;defaultVertexBlockSizey:integer=64):Void;c decl ;external DX_DLL;
    function CreateLandscapeMesh(MeshNamechar;heightMapFileNamechar;Precision:single=16;YFactor:single=0.1):Void; cdecl ;external DX_DLL;
    function CreateHillsMesh(const namechar;
    hillHeight:integer;
    countHillsX,countHillsY:single;
    Width, Height:single;
    tilesx,tilesy:integer;
    tu,tv:single):Void;cdecl ;external DX_DLL;
    //************************************************** ****
    //*
    //************************************************** ****
    procedure ShadowColor (SColor:dword);cdecl ;external DX_DLL;
    procedure AmbientColor (SColor:dword);cdecl ;external DX_DLL;


    function CreateLight (LIGHT_TYPE:LIGHT_TYPE;id:integer=-1;Parent:Void=nil):Void;cdecl ;external DX_DLL;
    procedure LightRange (LID:Void;range:single);cdecl ;external DX_DLL;
    procedure LightColorf (LID:Void;r,g,b:single);cdecl ;external DX_DLL;
    procedure LightColor (LID:Void;r,g,b:integer);cdecl ;external DX_DLL;
    procedure LightConeAngles (LID:Void;inner_angle,outer_angle:single);cdecl ;external DX_DLL;
    procedure LightFallof (LID:Void;Falloff:single);cdecl ;external DX_DLL;
    //************************************************** ****
    //*
    //************************************************** ****
    procedure PlanarTextureMapping(mesh:Void;resolution:single); cdecl ;external DX_DLL;
    procedure FlipMeshSurfaces(mesh:Void);cdecl ;external DX_DLL;
    procedure SetMeshVertexColors(mesh:Void;colorword);cdecl ;external DX_DLL;
    procedure SetMeshVertexColorAlpha(mesh:Void;alpha:single);cd ecl ;external DX_DLL;

    procedure ScaleMeshTCoords(mesh:Void;factorx,factory:single; layer:integer=1);cdecl ;external DX_DLL;
    procedure ScaleBufferTCoords(mesh:Void;factorx,factory:singl e;layer:integer=1);cdecl ;external DX_DLL;

    procedure ScaleBuffer(Buffer:Void;factor:vector3);cdecl ;external DX_DLL;
    procedure ScaleMesh(mesh:Void;factor:vector3);cdecl ;external DX_DLL;

    procedure RecalculateBufferNormals(mesh:Void);cdecl ;external DX_DLL;
    procedure RecalculateMeshNormals(mesh:Void);cdecl ;external DX_DLL;


    procedure TransformMesh(mesh:Void;matrixCMatrix4);cdecl ;external DX_DLL;
    procedure TransformBuffer(buffer:Void;matrixCMatrix4);cdecl ;external DX_DLL;

    procedure RotateMesh(mesh:Void;factor:vector3);cdecl ;external DX_DLL;
    procedure RotateBuffer(mesh:Void;factor:vector3);cdecl ;external DX_DLL;


    procedure TranslateMesh(mesh:Void;factor:vector3);cdecl ;external DX_DLL;
    procedure TranslateBuffer(mesh:Void;factor:vector3);cdecl ;external DX_DLL;

    //************************************************** ****
    //*
    //************************************************** ****
    function FontCreate(const filenamechar):Void;cdecl ;external DX_DLL;
    procedure PrintText(FontID:Void;const textchar;x, y:integer;color:integer);cdecl ;external DX_DLL;
    //************************************************** ****
    //*
    //************************************************** ****
    //Scene Entity
    function EntityRoot:Void;cdecl ;external DX_DLL;

    procedure EntityDrop(ID:Void);cdecl ;external DX_DLL;

    //if not on scene
    procedure EntityDraw(ID:Void);cdecl ;external DX_DLL;
    procedure EntityAnimate(ID:Void;time:integer);cdecl ;external DX_DLL;

    procedure NameEntity(ID:Void;const namechar);cdecl ;external DX_DLL;
    function EntityName(ID:Void)char;cdecl ;external DX_DLL;

    procedure AddEntityToDeletionQueue(ID:Void);cdecl ;external DX_DLL;

    procedure AddEntityToScene(child:Void);cdecl ;external DX_DLL;

    procedure PositionEntity (ID:Void;x,y,z:single);cdecl ;external DX_DLL;
    procedure PositionEntityEx (ID:Void;vector:vector3);cdecl ;external DX_DLL;
    procedure EntityMove (ID:Void;x,y,z:single);cdecl ;external DX_DLL;
    procedure EntityMoveRelative(ID:Void;Front,Up,Strafe:single) ;cdecl ;external DX_DLL;
    procedure EntityMoveAddSpeed(ID:Void;Trasvector:vector3;spee d:single);cdecl ;external DX_DLL;
    procedure ScaleEntity (ID:Void;x,y,z:single);cdecl ;external DX_DLL;
    procedure ScaleEntityEx (ID:Void;vector:vector3);cdecl ;external DX_DLL;
    procedure RotateEntity (ID:Void;x,y,z:single);cdecl ;external DX_DLL;
    procedure RotateEntityEx (ID:Void;vector:vector3);cdecl ;external DX_DLL;
    procedure TurnEntity (ID:Void;x,y,z:single);cdecl ;external DX_DLL;
    procedure TurnEntityEx (ID:Void;vector:vector3);cdecl ;external DX_DLL;
    procedure EntityYawPitchRoll(ID:Void;yaw,pitch,roll:single); cdecl ;external DX_DLL;
    procedure EntityYaw(ID:Void;value:single);cdecl ;external DX_DLL;
    procedure EntityAddYaw(ID:Void;value:single);cdecl ;external DX_DLL;
    procedure EntityPitch(ID:Void;value:single);cdecl ;external DX_DLL;
    procedure EntityAddPitch(ID:Void;value:single);cdecl ;external DX_DLL;
    procedure EntityRoll(ID:Void;value:single);cdecl ;external DX_DLL;
    procedure EntityAddRoll(ID:Void;value:single);cdecl ;external DX_DLL;
    procedure EntityGetRotateEx(ID:Void;var x,y,z:single);cdecl ;external DX_DLL;
    function EntityGetRotate(ID:Void):vector3;cdecl ;external DX_DLL;
    function EntityGetScale(ID:Void):vector3;cdecl ;external DX_DLL;
    function EntityGetPosition(ID:Void):vector3;cdecl ;external DX_DLL;
    procedure PointEntity(A,B:Void);cdecl ;external DX_DLL;
    procedure EntityPoint(A:Void;target:vector3);cdecl ;external DX_DLL;
    procedure EntityMoveToNode(A,B:Void;speed:single);cdecl ;external DX_DLL;
    function EntityDistance(A,B:Void):single;cdecl ;external DX_DLL;
    function EntityBoxHit(A,B:Void):boolean;cdecl ;external DX_DLL;
    function EntityRadius(A:Void):vector3;cdecl ;external DX_DLL;

    function MeshEntity(A:Void):Void;cdecl ;external DX_DLL;
    procedure EntityMesh(ID:Void;mesh:Void);cdecl ;external DX_DLL;

    procedure EntitySetShadow(ID:Void;zfailmethod:boolean=true;i nfinity:single=10000.0);cdecl ;external DX_DLL;

    procedure EntityDebug(ID:Void;visibleEBUG_SCENE_TYPE);cdecl ;external DX_DLL;

    procedure VisibleEntity(id:void;value:boolean);cdecl ;external DX_DLL;
    function EntityVisible(id:void):boolean;cdecl ;external DX_DLL;

    function EntityTransformPoint(ID:Void;point:vector3):vector 3;cdecl ;external DX_DLL;
    function EntityTransformPointEx(ID:Void;point:vector3):vect or3;cdecl ;external DX_DLL;

    function EntityGetVertexPosition(ID:void;NumVertex,nMeshBuf fer:integer):vector3;cdecl ;external DX_DLL;

    procedure EntityMaterialFlag(ID:Void; flag:MATERIAL_FLAG;value:boolean);cdecl ;external DX_DLL;
    procedure EntityMaterialType(ID:Void;newType:MATERIAL_TYPE;n umMat:integer=0);cdecl ;external DX_DLL;
    procedure EntityAllMaterialType(ID:Void; newType:MATERIAL_TYPE);cdecl ;external DX_DLL;

    procedure EntityWireFrame(ID:Void;value:boolean);cdecl ;external DX_DLL;
    procedure EntityLighting (ID:Void;value:boolean);cdecl ;external DX_DLL;
    procedure EntityMaterialTypeParam(ID:Void;value:single);cdec l ;external DX_DLL;

    procedure EntityAddString(ID:Void;Font:Void;textchar;color:dword);cdecl ;external DX_DLL;

    procedure EntityRotateTexture(ID:Void;angle:single;index:int eger=0);cdecl ;external DX_DLL;
    procedure EntityMoveTexture(ID:Void;x,y:single;index:integer =0);cdecl ;external DX_DLL;
    procedure EntityScaleTexture(ID:Void;x,y:single;index:intege r=0);cdecl ;external DX_DLL;


    procedure EntitySetTexture(ID:Void;layer:integer; const filenamechar);cdecl ;external DX_DLL;
    procedure EntitySetTextureEx(ID:Void;layer:integer;texture:V oid);cdecl ;external DX_DLL;

    procedure EntitySetMaterialTexture(ID:Void;const filenamechar;layer:integer=0;Material:integer=0);cdecl ;external DX_DLL;
    procedure EntitySetMaterialTextureEx(ID:Void;texture:Void;la yer:integer=0;Material:integer=0);cdecl ;external DX_DLL;

    procedure EntityAddAnimator(ID,Ani:Void);cdecl ;external DX_DLL;
    procedure EntityRemoveAnimator(ID,Ani:Void);cdecl ;external DX_DLL;

    procedure EntityAddChilld(ID,Child:Void);cdecl ;external DX_DLL;
    function EntityRemoveChilld(ID,Child:Void):boolean;cdecl ;external DX_DLL;
    function EntityGetChilld(ID:Void;Num:integer):Void;cdecl ;external DX_DLL;

    procedure EntitySetEffect(ID:Void;FX:Void);cdecl ;external DX_DLL;
    procedure EntitySetShader(node:Void;shader:integer);cdecl ;external dx_DLL;
    procedure EntitySetShaderLayer(node:Void;layer:integer;shade r:integer);cdecl ;external dx_DLL;


    //************************************************** ****
    //* 3D ENTITY BEAVERS ANIMATORS
    //************************************************** ****
    function CreateRotationAnimator(rotationPerSecond:vector3): Void;cdecl ;external DX_DLL;
    function CreateFlyCircleAnimator(center, direction:vector3;radius,speed:single):Void;cdecl ;external DX_DLL;
    function CreateFlyStraightAnimator( startPoint, endPoint:vector3;timeForWay:single; loop:boolean):Void;cdecl ;external DX_DLL;
    function CreateDeleteAnimator(time:integer):Void;cdecl ;external DX_DLL;
    function CreateFollowSplineAnimator(NPoints:integer;Vectorsointer;time:integer;speed,tightness:single ):Void;cdecl ;external DX_DLL;
    function CreateTextureAnimator(NumTextures:integer;Texturesointer;timePerFrame:integer;loop:boolean):Void;cde cl ;external DX_DLL;
    procedure DropAnimator(anim:Void)cdecl ;external DX_DLL;
    //************************************************** ****
    //* MODEL ANIMATIONS
    //************************************************** ****
    procedure SetMD2Animation(AID:Void;anim:MD2_ANIMATION_TYPE); cdecl ;external dx_DLL;
    procedure SetMD2AnimationEx(AID:Void;const animationNamechar);cdecl ;external dx_DLL;
    procedure SetAnimationSpeed(AID:Void;framesPerSecond:single) ;cdecl ;external dx_DLL;
    procedure SetCurrentFrame (AID:Void;frame:single);cdecl ;external dx_DLL;
    procedure SetFrameLoop (AID:Void;FBegin,FEnd:integer);cdecl ;external dx_DLL;
    procedure SetLoopMode (AID:Void;playAnimationLooped:boolean);cdecl ;external dx_DLL;
    procedure SetTransitionTime (AID:Void;time:single);cdecl ;external dx_DLL;
    function GetFrameNr (AID:Void):integer;cdecl ;external dx_DLL;
    function GetStartFrame (AID:Void):integer;cdecl ;external dx_DLL;
    function GetEndFrame (AID:Void):integer;cdecl ;external dx_DLL;
    //************************************************** ****
    //*
    //************************************************** ****
    function CreateCollisionResponse(TrianglesSelector:Void;Ent ity:Void;ellipsoidRadius,gravityPerSecond,ellipsoi dTranslation:vector3;slidingValue:single):Void;cde cl ;external DX_DLL;
    function CreateCollisionResponseEx(TrianglesSelector:Void;E ntity:Void;gravityPerSecond,ellipsoidTranslation:v ector3;slidingValue:single):Void;cdecl ;external DX_DLL;
    procedure DropColider(ID:Void);cdecl ;external DX_DLL;
    procedure SetGravity(ID:Void;v:vector3);cdecl ;external DX_DLL;
    procedure EllipsoidRadius (ID:Void;v:vector3);cdecl ;external DX_DLL;
    procedure EllipsoidTranslation (ID:Void;V:vector3);cdecl ;external DX_DLL;
    function IsFalling (ID:Void):boolean;cdecl ;external DX_DLL;
    procedure SetJump(ID:Void;speed:single);cdecl ;external DX_DLL;
    function GetCollisionResponse(ITriangleSelector:Void;
    slidingSpeed:single;
    outFalling:boolean;
    ellipsoidPosition,
    ellipsoidRadius,
    ellipsoidDirectionAndSpeed,
    gravityDirectionAndSpeed:vector3;
    var triout:XTriangle):vector3;cdecl ;external DX_DLL;

    //************************************************** ****
    //*
    //************************************************** ****
    function CreateOctTreeTriangleSelector(mesh:Void;Entity:Voi d;minimalPolysPerNode:integer=32):Void;cdecl ;external DX_DLL;
    function CreateTerrainTriangleSelector(TerrainEntity:Void;L OD:integer=0):Void;cdecl ;external DX_DLL;
    function CreateBoxTriangleSelector(Entity:Void):Void;cdecl ;external DX_DLL;
    procedure DropSelector(Selector:Void);cdecl ;external DX_DLL;
    //************************************************** ****
    //*
    //************************************************** ****
    function CreateSelectorList():Void;cdecl ;external DX_DLL;
    procedure DropSelectorList(SelectorList:Void);cdecl ;external DX_DLL;
    procedure AddSelector(SelectorList,Selector:Void );cdecl ;external DX_DLL;
    //************************************************** ****
    //*
    //************************************************** ****
    function ScreenRay(x,y:integer):XRAY;cdecl ;external dx_DLL;
    function CameraRay(dist:integer):XRAY;cdecl ;external dx_DLL;
    function VectorRay(Position, Target:vector3;dist:integer):XRay;cdecl ;external dx_DLL;
    function Pick(line:XRAY;idBitMask:integer=0):Void;cdecl ;external DX_DLL;
    function CameraPick(idBitMask:integer=0):Void;cdecl ;external DX_DLL;
    function ScreenPick(x,y:integer;idBitMask:integer=0):Void;c decl ;external DX_DLL;
    function RayPickTriangles(ray:XRay;Selector:Void;var outCollisionPoint:vector3;var outTriangle:XTriangle):boolean;cdecl ;external DX_DLL;
    function CameraPickTriangles(Selector,Camera:Void;var outCollisionPoint:vector3;var outNormal:vector3;var outTriangle:XTriangle;dist:single=1000.0):boolean; cdecl ;external DX_DLL;
    //************************************************** ****
    //*
    //************************************************** ****
    function LoadEffect(SrcFilechar):Void;cdecl ;external DX_DLL;
    function SetEffectTexture(FXID:Void;SrcFilechar;texture:Void):boolean;cdecl ;external DX_DLL;
    function SetEffectTechnique(FXID:Void;namechar):boolean;cdecl ;external DX_DLL;

    //************************************************** ****
    //*
    //************************************************** ****
    function CreateMeshBuilder:Void;cdecl ;external DX_DLL;
    procedure FreeMeshBuilder(MeshBuilder:Void);cdecl ;external DX_DLL;
    function AddFloor(MeshBuilder:Void;VBotomLeft,VTopRight:vec tor3; texture:Void;tu:single=1;tv:single=1):integer;cdec l ;external DX_DLL;
    function AddRoof(MeshBuilder:Void;VBotomLeft,VTopRight:vect or3; texture:Void;tu:single=1;tv:single=1):integer;cdec l ;external DX_DLL;
    function AddLeftWall(MeshBuilder:Void;VBotomLeft,VTopRight: vector3; texture:Void;tu:single=1;tv:single=1):integer;cdec l ;external DX_DLL;
    function AddRightWall(MeshBuilder:Void;VBotomLeft,VTopRight :vector3; texture:Void;tu:single=1;tv:single=1):integer;cdec l ;external DX_DLL;
    function AddWallFront(MeshBuilder:Void;VBotomLeft,VTopRight :vector3; texture:Void;tu:single=1;tv:single=1):integer;cdec l ;external DX_DLL;
    function AddWallBack(MeshBuilder:Void;VBotomLeft,VTopRight: vector3; texture:Void;tu:single=1;tv:single=1):integer;cdec l ;external DX_DLL;
    function AddWall(MeshBuilder:Void;position,rotation,scale:v ector3;texture:Void;tu:single=1;tv:single=1):integ er;cdecl ;external DX_DLL;

    procedure SetBufferType(Mesh:Void;index:integer;mtype:MATERI AL_TYPE)cdecl ;external DX_DLL;
    procedure SetBufferTexture(Mesh:Void;index:integer;texture:V oid)cdecl ;external DX_DLL;

    function AddRoom(MeshBuilder:Void;VBotomLeft,VTopRight:vect or3;
    TextureIDLeft:Void;
    TextureIDRight:Void;
    TextureIDTop:Void;
    TextureIDBottom:Void;
    TextureIDFront:Void;
    TextureIDBack:Void;
    tu:single=1;tv:single=1):integer;cdecl ;external DX_DLL;
    function AddPilar(MeshBuilder:Void;pos:vector3;radius,lengt h:single;texture:Void;tu:single=1;tv:single=1;qual ity:integer=8;curve:single=0):integer;cdecl ;external DX_DLL;
    function AddSurface(MeshBuilder:Void;Surface:Void;dropsurfa ce:boolean=true):integer;cdecl ;external DX_DLL;
    function CreateMeshFromBuilder(MeshNamechar;MeshBuilder:VoidropMesh:boolean=true):Void;cdecl ;external DX_DLL;
    //************************************************** ****
    //*
    //************************************************** ****
    function CreateSurface():Void;cdecl ;external DX_DLL;
    procedure SurfaceDrop (surface:Void);cdecl ;external DX_DLL;
    procedure PaintSurface(surface,Brush:Void;dropBrush:boolean= true);cdecl ;external DX_DLL;
    function AddVertex (surface:Void;x,y,z,u,v:single):integer;cdecl ;external DX_DLL;
    function AddTriangle (surface:Void;v1,v2,v3:integer):integer;cdecl ;external DX_DLL;
    procedure VertexCoords(surface:Void;index:integer;x,y,z:sing le);cdecl ;external DX_DLL;
    procedure VertexNormal(surface:Void;index:integer;nx,ny,nz:s ingle);cdecl ;external DX_DLL;
    procedure VertexColor (surface:Void;index:integer;r,g,b,a:integer);cdecl ;external DX_DLL;
    procedure VertexTexCoords (surface:Void;index:integer;u,v:single;coord_set:i nteger=0);cdecl ;external DX_DLL;
    //************************************************** ****
    //*
    //************************************************** ****
    function CreateBrush (r:integer=255;g:integer=255;b:integer=255;a:integ er=255):Void;cdecl ;external DX_DLL;
    function LoadBrush (layer:integer;const texturechar):Void;cdecl ;external DX_DLL;
    procedure BrushType (brush:Void;newType:MATERIAL_TYPE );cdecl ;external DX_DLL;
    procedure BrushFlag (brush:Void;flag:MATERIAL_FLAG ;value:boolean)cdecl ;external DX_DLL;
    procedure BrushDrop (brush:Void);cdecl ;external DX_DLL;
    procedure BrushTexture (brush:Void;layer:integer;Textue:Void);cdecl ;external DX_DLL;
    procedure BrushAlphaRef(brush:Void;value:single)cdecl ;external DX_DLL;
    //************************************************** ****
    //*
    //************************************************** ****
    function CreatMeshBuffer:Void;cdecl ;external DX_DLL;
    procedure DropBuffer(buffer:Void);cdecl ;external DX_DLL;
    procedure RebuildBufferBBox (buffer:Void);cdecl ;external DX_DLL;
    procedure DrawBuffer (buffer:Void);cdecl ;external DX_DLL;
    function VertexPushBack (buffer:Void;v3DVertex):integer;cdecl ;external DX_DLL;
    function IndicesPushBack (buffer:Void;indice:smallint):integer;cdecl ;external DX_DLL;
    procedure AddBrush (buffer:Void;Brush:Void;dropbrush:boolean=true);cd ecl ;external DX_DLL;
    function NumVertex(buffer:Void):integer;cdecl ;external DX_DLL;
    function NumIndices(buffer:Void):integer;cdecl ;external DX_DLL;
    procedure GetBufferIndices(buffer:Void;indicesointer)cdecl ;external DX_DLL;
    procedure GetBufferVertices(buffer:Void;verticesointer);cdecl ;external DX_DLL;
    function GetBufferBBox(buffer:Void):XBOX;cdecl ;external DX_DLL;
    procedure SetBufferBBox(buffer:Void;bbox:XBOX);cdecl ;external DX_DLL;
    procedure AppendVertices(Mesh:Void;veticesointer;numvertices:integer;indices16;numindices:integer)cdecl ;external DX_DLL;
    //************************************************** ****
    //*
    //************************************************** ****
    function CreatMesh ():Void;cdecl ;external DX_DLL;
    procedure AddMeshBuffer (Mesh,MeshBuffer:Void;dropbuffer:boolean=true);cde cl ;external DX_DLL;
    function GetBuffer (SMesh:Void;num:integer):Void;cdecl ;external DX_DLL;
    function GetBBox(Mesh:Void):XBOX;cdecl ;external DX_DLL;
    procedure SetBBox(Mesh:Void;bbox:XBOX);cdecl ;external DX_DLL;
    function NumBuffers(Mesh:Void):integer;cdecl ;external DX_DLL;
    procedure MeshUpdateBBox(Mesh:Void);cdecl ;external DX_DLL;
    procedure MeshUpdateBuffers(Mesh:Void);cdecl ;external DX_DLL;
    procedure MeshDrop (Mesh:Void);cdecl ;external DX_DLL;
    //************************************************** ****
    //* NEXT RENDER MATERIAL
    //************************************************** ****
    procedure NextRenderDefaults(
    Wireframe:boolean=false;
    PointCloud:boolean=false;
    GouraudShading:boolean=false;
    Lighting:boolean=false;
    ZBuffer:boolean=true;
    ZWriteEnable:boolean=true;
    BackfaceCulling:boolean=true;
    FogEnable:boolean=false;
    NormalizeNormals:boolean=false);cdecl ;external DX_DLL;


    procedure SetRenderTexture(tex:Void;layer:integer);cdecl ;external DX_DLL;
    procedure SetRenderLighting(Lighting:boolean);cdecl ;external DX_DLL;
    procedure SetRenderBackfaceCulling( BackfaceCulling:boolean);cdecl ;external DX_DLL;
    procedure SetRenderType(newType:MATERIAL_TYPE);cdecl ;external DX_DLL;
    procedure SetRenderFlag(flag:MATERIAL_FLAG;value:boolean);cd ecl ;external DX_DLL;
    procedure SetRenderTypeParam(value:single);cdecl ;external DX_DLL;
    procedure ApplyNextRender();cdecl ;external DX_DLL

    //************************************************** ****
    //*
    //************************************************** ****
    procedure Draw2DLine(x,y,x2,y2:integer;color:dword);cdecl ;external DX_DLL;
    procedure DrawImage(texture:Void;x,y:integer;Color:dword;Use Alpha:boolean=true)cdecl ;external DX_DLL;
    procedure DrawImagePart(texture:Void;x,y:integer;SourceRect: Trect;Color:dword;UseAlpha:boolean=true)cdecl ;external DX_DLL;
    procedure DrawImageRotate(texture:Void;x,y:integer; w, h:single;rot:single;color:dword;UseAlpha:boolean=t rue)cdecl ;external DX_DLL;
    procedure Draw3DGrid( countx,county,Size:integer);cdecl ;external DX_DLL;
    procedure Draw3DRect(Position:vector3;Width,Deph:single);cde cl ;external DX_DLL;
    procedure DrawTriangle(triangle:XTriangle;Color:dword);cdecl ;external DX_DLL;
    procedure DrawCube(x,y,z,w,h,d:single;ColorWord=$FFFFFFFF);cdecl ;external DX_DLL;
    procedure DrawSphere(x,y,z,r:single;ColorWord=$FFFFFFFF);cdecl ;external DX_DLL;

    procedure DrawVertexIndexList(verticesointer;vertexcount:integer;indicesointer;primCount:integer;vType:VERTEX_TYPE;pTypeRIMITIVE_TYPE;iType:INDEX_TYPE);cdecl ;external DX_DLL;
    procedure DrawVertexList(verticesointer;vertexcount:integer;primCount:integer;vType :VERTEX_TYPE;pTypeRIMITIVE_TYPE);cdecl ;external DX_DLL;

    //************************************************** ****
    //*
    //************************************************** ****
    procedure TextureFree(id:Void);cdecl ;external DX_DLL;
    procedure MakeTextureColorKey(id:Void;Color:dword);cdecl ;external DX_DLL;
    function CreateRenderTargetTexture(w,h:integer):Void;cdecl ;external DX_DLL;
    function RenderTarget(texture:Void;colorWord=0;clearBackBuffer:boolean=true;clearZBuffer:b oolean=true):boolean;cdecl ;external DX_DLL;
    procedure ResetRenderTarget;cdecl ;external DX_DLL;
    procedure RenderQuad(id:Void);cdecl ;external DX_DLL;
    function LoadTexture(const filetoloadchar):Void;cdecl ;external DX_DLL;
    function GetTexture(index:integer):Void;cdecl ;external DX_DLL;


    //************************************************** ****
    //* GEOMIPMAP TERRAIN
    //************************************************** ****
    function CreateTerrain(const heightMapFileNamechar;maxLOD:integer=5;smoothFactor:integer=0;patch Size:TERRAIN_PATCH_SIZE=ETPS_17;VBO:boolean=true;i d:integer=-1;Parent:Void=nil):Void;cdecl ;external DX_DLL;
    function GetHeight(Terrain:Void;x,y:integer):single;cdecl ;external DX_DLL;
    procedure ScaleTexture(Terrain:Void;x,y:single);cdecl ;external DX_DLL;
    //************************************************** ****
    //*
    //************************************************** ****
    function XBegin(primitiveTypeRIMITIVE_TYPE ):boolean;cdecl ;external DX_DLL;
    procedure XVertex3f(x,y,z:single);cdecl ;external DX_DLL;
    procedure XNormal3f(x,y,z:single);cdecl ;external DX_DLL;
    procedure XTexCoord2f(tu,tv:single);cdecl ;external DX_DLL;
    procedure XColor3f(r,g,b:single);cdecl ;external DX_DLL;
    procedure XColor4f(a,r,g,b:single);cdecl ;external DX_DLL;
    procedure XColor4i(a,r,g,b:integer);cdecl ;external DX_DLL;
    procedure XColor3i(r,g,b:integer);cdecl ;external DX_DLL;
    function XEnd():boolean;cdecl ;external DX_DLL;
    //************************************************** ****
    //*
    //************************************************** ****
    procedure XApplyMatrix;cdecl ;external DX_DLL;
    procedure XLoadIdentity;cdecl ;external DX_DLL;
    procedure XTranslatef(x,y,z:single);cdecl ;external DX_DLL;
    procedure XRotatef(a,x,y,z:single);cdecl ;external DX_DLL;
    procedure XScalef(x,y,z:single);cdecl ;external DX_DLL;
    function XPushMatrix:boolean;cdecl ;external DX_DLL;
    function XPopMatrix:boolean;cdecl ;external DX_DLL;
    //************************************************** ****
    //*
    //************************************************** ****
    procedure SetFarValue (CameraNode:Void;fFar:single);cdecl ;external DX_DLL;
    procedure SetNearValue (CameraNode:Void;fNear:single);cdecl ;external DX_DLL;
    procedure SetAspectRatio(CameraNode:Void;faspect:single);cde cl ;external DX_DLL;
    procedure SetFOV (CameraNode:Void;fFovy:single);cdecl ;external DX_DLL;

    procedure TurnRight(camera:Void;acc:single);cdecl ;external DX_DLL;
    procedure TurnLeft(camera:Void;acc:single);cdecl ;external DX_DLL;
    procedure TurnUp(camera:Void;acc:single);cdecl ;external DX_DLL;
    procedure TurnDown(camera:Void;acc:single);cdecl ;external DX_DLL;
    procedure MoveForward(camera:Void;acc:single);cdecl ;external DX_DLL;
    procedure MoveBack(camera:Void;acc:single);cdecl ;external DX_DLL;
    procedure MoveRight(camera:Void;acc:single);cdecl ;external DX_DLL;
    procedure MoveLeft(camera:Void;acc:single);cdecl ;external DX_DLL;

    function GetViewBox(camera:Void):XBOX;cdecl ;external DX_DLL;

    procedure SetTarget(CameraNode:Void;x,y,z:single);cdecl ;external DX_DLL;
    procedure SetTargetEx(CameraNode:Void;vec:vector3);cdecl ;external DX_DLL;


    function GetActiveCamera():Void;cdecl ;external DX_DLL;
    function GetTarget(Camera:Void):vector3;cdecl ;external DX_DLL;
    function GetUpVector(Camera:Void):vector3;cdecl ;external DX_DLL;
    function GetRotation(Camera:Void):vector3;cdecl ;external DX_DLL;

    procedure FollowingNode(IDCamera,IDTargetNod:Voidistance,AltitudeCamera,DeltaCible:single);cdecl ;external DX_DLL;
    procedure CockpitFollowing(IDCamera,IDTargetNod:Void;offset: vector3);cdecl ;external DX_DLL;
    procedure FollowingNodeWithSpring(IDCamera,IDTargetNod:Void;
    offset:vector3;
    offsetDistance,dampingConstant,springConstant,elap sedTimeSec:single);cdecl ;external DX_DLL;

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

    function CreateFadeOutAffector(Par:Void;TargetColor:dword;t imeNeededToFadeOut:integer=1000):Void;cdecl ;external dx_DLL;
    function CreateAttractionAffector(Par:Void;point:VECTOR3;
    speed:single=1.0;
    attract:boolean=true;
    affectX:boolean=true;
    affectY:boolean=true;
    affectZ:boolean=true):Void;cdecl ;external dx_DLL;
    function CreateGravityAffector( Par:Void;gravity:VECTOR3;timeForceLost:integer=100 0):Void;cdecl ;external dx_DLL;
    function CreateRotationAffector(Par:Void; speed,pivotPoint:VECTOR3):Void;cdecl ;external dx_DLL;
    function CreateScaleAffector(Par:Void;scaletoX,scaleToY:sin gle):Void;cdecl ;external dx_DLL;
    function CreateUserAffector(Par:Void;Userdata:TParticleCall Bak):Void;cdecl ;external dx_DLL;
    function CreateDroperAffector(Par:Void;when:integer):Void;c decl ;external dx_DLL;

    procedure SetMinParticlesPerSecond(EM:Void;minPPS:integer);c decl ;external dx_DLL;
    procedure SetMaxParticlesPerSecond(EM:Void;maxPPS:integer);c decl ;external dx_DLL;
    procedure SetMinStartColor(EM:Void;Color:dword);cdecl ;external dx_DLL;
    procedure SetMaxStartColor(EM:Void;Color:dword);cdecl ;external dx_DLL;
    procedure SetMaxStartSize(EM:Void;mw,mh:single);cdecl ;external dx_DLL;
    procedure SetMinStartSize(EM:Void;mw,mh:single);cdecl ;external dx_DLL;

    procedure ParticlesSize(ParticlID:void;w,h:single);cdecl ;external dx_DLL;

    procedure DropEmitter(Emitter:Void);cdecl ;external dx_DLL;
    procedure DropAffector(Affector:Void);cdecl ;external dx_DLL;

    procedure SetEmitter(System,Emitter:void);cdecl ;external dx_DLL;
    procedure AddAffector(System,Affector:void);cdecl ;external dx_DLL;

    function CreateBoxEmitter(Par:Void;
    BoxXMin,
    BoxYMin,
    BoxZMin,
    BoxXMax,
    BoxYMax,
    BoxZMax:single;
    direction:VECTOR3;
    minStartColor:dword=$FF;
    maxStartColor:dword=$FFFFFFFF;
    minParticlesPerSecond:integer=5;
    maxParticlesPerSecond:integer=10;
    lifeTimeMin:integer=2000;
    lifeTimeMax:integer=4000;
    maxAngleDegrees:double=0;
    minStartSizeXingle=5.0;minStartSizeY:single=5.0;
    maxStartSizeX:single=5.0;maxStartSizeY:single=5.0) :Void;cdecl ;external dx_DLL;





    function CreateMeshEmitter(Par:Void;
    Node:Void;
    direction:VECTOR3;
    minStartColor:dword=$FF;
    maxStartColor:dword=$FFFFFFFF;
    normalDirectionModifier:single=100.0;
    mbNumber:integer=-1;
    everyMeshVertex:boolean=false;
    useNormalDirection:boolean=true;
    minParticlesPerSecond:integer=100;
    maxParticlesPerSecond:integer=200;
    lifeTimeMin:integer=800;
    lifeTimeMax:integer=2000;
    maxAngleDegrees:double=0;
    minStartSizeXingle=5.0;minStartSizeY:single=5.0;
    maxStartSizeX:single=5.0;maxStartSizeY:single=5.0) :Void;cdecl ;external dx_DLL;



    function CreateCylinderEmitter(
    Par:Void;
    Center:VECTOR3;
    radius:single;
    Normal:VECTOR3;
    length:single;
    Direction:VECTOR3;
    minStartColor:dword=$FF;
    maxStartColor:dword=$FFFFFFFF;
    outlineOnly:boolean=false;
    minParticlesPerSecond:integer=15;
    maxParticlesPerSecond:integer=20;
    lifeTimeMin:integer=2000;
    lifeTimeMax:integer=4000;
    maxAngleDegrees:double=0;
    minStartSizeXingle=5.0;minStartSizeY:single=5.0;
    maxStartSizeX:single=5.0;maxStartSizeY:single=5.0) :Void;cdecl ;external dx_DLL;





    function CreatePointEmitter(
    Par:Void;
    Direction:VECTOR3;
    minStartColor:dword=$FF;
    maxStartColor:dword=$FFFFFFFF;
    minParticlesPerSecond:integer=25;
    maxParticlesPerSecond:integer=30;
    lifeTimeMin:integer=2000;
    lifeTimeMax:integer=4000;
    maxAngleDegrees:double=0;
    minStartSizeXingle=5.0;minStartSizeY:single=5.0;
    maxStartSizeX:single=5.0;maxStartSizeY:single=5.0) :Void;cdecl ;external dx_DLL;




    function CreateRingEmitter(
    Par:Void;
    center:VECTOR3;
    radius:single;
    ringThickness:single;
    Direction:VECTOR3;
    minStartColor:dword=$FF;
    maxStartColor:dword=$FFFFFFFF;

    minParticlesPerSecond:integer=25;
    maxParticlesPerSecond:integer=30;
    lifeTimeMin:integer=2000;
    lifeTimeMax:integer=4000;
    maxAngleDegrees:double=0;
    minStartSizeXingle=5.0;minStartSizeY:single=5.0;
    maxStartSizeX:single=5.0;maxStartSizeY:single=5.0) :Void;cdecl ;external dx_DLL;



    function CreateSphereEmitter( Par:Void;
    center:VECTOR3;
    radius:single;
    Direction:VECTOR3;
    minStartColor:dword=$FF;
    maxStartColor:dword=$FFFFFFFF;
    minParticlesPerSecond:integer=5;
    maxParticlesPerSecond:integer=10;
    lifeTimeMin:integer=2000;
    lifeTimeMax:integer=4000;
    maxAngleDegrees:double=0;
    minStartSizeXingle=5.0;minStartSizeY:single=5.0;
    maxStartSizeX:single=5.0;maxStartSizeY:single=5.0) :Void;cdecl ;external dx_DLL;


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

    function Matrix_GetScale(const MatrixCMatrix4):vector3;cdecl ;external dx_DLL;
    function Matrix_GetTranslation(const MatrixCMatrix4):vector3;cdecl ;external dx_DLL;
    function Matrix_GetRotationDegrees(const MatrixCMatrix4):vector3;cdecl ;external dx_DLL;
    procedure Matrix_GetTranformations(const MatrixCMatrix4;var Pos,Rot,Scale:vector3);cdecl ;external dx_DLL;
    function Matrix_TransformVect(const MatrixCMatrix4;const vect:vector3):vector3;cdecl ;external dx_DLL;
    procedure Matrix_SetTrasform(MatrixCMatrix4;Traslate:vector3 ;Rotation:vector3 ;Scale:vector3 );cdecl ;external dx_DLL;
    procedure Matrix_SetTrasformXMat(MatrixCMatrix4;const newMatrixCMatrix4 ;Traslate:vector3 ;Rotation:vector3 ;Scale:vector3 );cdecl ;external dx_DLL;
    procedure Matrix_GetAbsTransformNode(node:Void; MatrixCMatrix4);cdecl ;external dx_DLL;
    procedure Matrix_GetTransformNode(node:Void; MatrixCMatrix4);cdecl ;external dx_DLL;
    procedure Matrix_SeByNode(node:Void);cdecl ;external dx_DLL;
    procedure Matrix_GetAbsTransformCamera(node:Void; MatrixCMatrix4);cdecl ;external dx_DLL;
    procedure Matrix_GetTransformCamera(node:Void; MatrixCMatrix4);cdecl ;external dx_DLL;
    procedure Matrix_MultWithCamera(MatrixCMatrix4;node:Void;const OutMatrixCMatrix4);cdecl ;external dx_DLL;
    procedure Matrix_SetTransformNode(node:Void;const MatrixCMatrix4);cdecl ;external dx_DLL;
    procedure Matrix_Traslate( MatrixCMatrix4; x , y,z:single);cdecl ;external dx_DLL;
    procedure Matrix_RotateInDegrees( MatrixCMatrix4; x , y,z:single);cdecl ;external dx_DLL;
    procedure Matrix_RotateInRadians( MatrixCMatrix4; x , y,z:single);cdecl ;external dx_DLL;
    procedure Matrix_Scale( MatrixCMatrix4; x , y,z:single);cdecl ;external dx_DLL;
    procedure Matrix_Mult(MatrixCMatrix4;const AMatCMatrix4;const BMatCMatrix4);cdecl ;external dx_DLL;
    procedure Matrix_Add(Matrix, AMat ,BMatCMatrix4);cdecl ;external dx_DLL;
    procedure Matrix_Sub(Matrix, AMat ,BMatCMatrix4);cdecl ;external dx_DLL;
    procedure Matrix_MakeIdentity(MatrixCMatrix4);cdecl ;external dx_DLL;
    procedure Matrix_BuildShadowMatrix(MatrixCmatrix4;light:vector3;plane:XPlane;point:single=1 .0000);cdecl ;external dx_DLL;
    procedure Matrix_TextureScale(MatrixCMatrix4;sx,sy:single);cdecl ;external dx_DLL;
    procedure Matrix_TextureRotationCenter(MatrixCMatrix4;radAngle:single);cdecl ;external dx_DLL;
    procedure Matrix_TextureScaleCenter(MatrixCMatrix4;sx,sy:single);cdecl ;external dx_DLL;
    procedure Matrix_TextureTranslate(MatrixCMatrix4;x,y:single);cdecl ;external dx_DLL;
    procedure Matrix_Inverse(OutMatrixCMatrix4;matrixCMatrix4);cdecl ;external dx_DLL;
    procedure Matrix_Transposed(OutMatrixCMatrix4;matrixCMatrix4);cdecl ;external dx_DLL;
    procedure Matrix_LookAtLH(MatrixCMatrix4;position,target,upVector:vector3);cdecl ;external dx_DLL;
    //************************************************** ****
    //*
    //************************************************** ****
    function Input_Init(mouseExclusive:boolean ):boolean;cdecl ;external DX_DLL;
    function Input_Update():boolean;cdecl ;external DX_DLL;
    function Input_KeyPressed(Key:integer):boolean;cdecl ;external DX_DLL;
    function Input_KeyReleased(Key:integer):boolean;cdecl ;external DX_DLL;
    function Input_MousePressed(But:integer):boolean;cdecl ;external DX_DLL;
    function Input_MouseReleased(But:integer):boolean;cdecl ;external DX_DLL;
    function Input_MouseX:integer;cdecl ;external DX_DLL;
    function Input_MouseY:integer;cdecl ;external DX_DLL;
    function Input_MouseAbsX:integer;cdecl ;external DX_DLL;
    function Input_MouseAbsY:integer;cdecl ;external DX_DLL;
    function Input_MouseAbsWheel:integer;cdecl ;external DX_DLL;
    procedure Input_Free;cdecl ;external DX_DLL;
    //************************************************** ****
    //*
    //************************************************** ****
    function Sound_Init(scale:single):boolean;cdecl ;external DX_DLL;
    function Sound_SetVolume(volume:integer):boolean;cdecl ;external DX_DLL;
    function Sound_UpdateListener( VLook,Vposition, Vvelocity,VUp:Vector3 ):boolean;cdecl ;external DX_DLL;
    procedure Sound_Close();cdecl ;external DX_DLL;
    function Sound_Load(filenamechar;is3d:boolean):Void;cdecl ;external DX_DLL;
    procedure Sound_Free(sound:Void);cdecl ;external DX_DLL;
    procedure Sound_Play(sound:Void;Loop:boolean);cdecl ;external DX_DLL;
    procedure Sound_Stop(sound:Void);cdecl ;external DX_DLL;
    function Sound_IsPlaying(sound:Void):boolean;cdecl ;external DX_DLL;
    procedure Sound_Set3DPosition(sound:Void;position:vector3);c decl ;external DX_DLL;
    procedure Sound_Set3DVelocity( sound:Void;velocity:Vector3 );cdecl ;external DX_DLL;
    procedure Sound_Set3DMaxDistance( sound:Void;dist:single );cdecl ;external DX_DLL;
    procedure Sound_Set3DMinDistance( sound:Void;dist:single );cdecl ;external DX_DLL;
    //************************************************** ****
    //*
    //************************************************** ****
    function Music_Load(filenamechar):Void;cdecl ;external DX_DLL;
    procedure Music_Free(music:Void);cdecl ;external DX_DLL;
    function Music_Play(music:Void):boolean;cdecl ;external DX_DLL;
    function Music_Stop(music:Void):boolean;cdecl ;external DX_DLL;
    function Music_Pause(music:Void):boolean;cdecl ;external DX_DLL;
    function Music_SetVolume(music:Void;value:integer):boolean; cdecl ;external DX_DLL;
    function Music_SetBalance(music:Void;value:integer):boolean ;cdecl ;external DX_DLL;
    function Music_SetPlayRate(music:Void;value:single):boolean ;cdecl ;external DX_DLL;
    function Music_SetPosition(music:Void;pstar,send:integer):b oolean;cdecl ;external DX_DLL;
    //************************************************** ****
    //*
    //************************************************** ****
    procedure Net_End;cdecl ;external DX_DLL;
    function Net_Start(DPLAYAPP:TGUID;msgTMESSAGEHANDLER):integer;cdecl ;external DX_DLL;
    function NET_HostGame(PlayerName,SessionNamechar;Port,MaxPlayers:dword):integer;cdecl ;external DX_DLL;
    function Net_FindSessions(playernamechar;Port:dword;Hostddrchar):integer;cdecl ;external DX_DLL;
    function Net_ConectToHost(Playernamechar;Port:dword;HostAddrchar):integer;cdecl ;external DX_DLL;
    function Net_JoinSession(Session:integer;PlayerNamechar):integer;cdecl ;external DX_DLL;
    procedure Net_CloseConection;cdecl ;external DX_DLL;
    function Net_SendData(Const Players:dword;dataointer;size:integer):integer;cdecl ;external DX_DLL;
    function Net_GetNumPlayers:integer;cdecl ;external DX_DLL;
    function Net_GetPlayer( DPNID :dword ):TPlayerInfo;cdecl ;external DX_DLL;
    function Net_GetPlayerByID( index:integer ):TPlayerInfo;cdecl ;external DX_DLL;
    function Net_GetNumSessions:integer;cdecl ;external DX_DLL;
    function Net_GetSession(index:integer;var SessionInfo :TSessionInfo ):boolean;cdecl ;external DX_DLL;
    function Net_KickPlayer( dpnid:dword ):integer;cdecl ;external DX_DLL;
    //************************************************** ****
    //*
    //************************************************** ****
    procedure Shader_InitGPU;cdecl ;external dx_DLL;

    function Shader_AddHighLevelShaderMaterialFromFiles(
    vertexShaderProgramchar; vertexShaderEntryPointNamechar;vsCompileTarget: E_VERTEX_SHADER_TYPE;
    pixelShaderProgramchar; pixelShaderEntryPointNamechar; psCompileTarget:E_PIXEL_SHADER_TYPE;
    baseMaterial:MATERIAL_TYPE;CallBack:TShaderCallBac k;userData:integer=0):integer;cdecl ;external dx_DLL;



    function Shader_AddHighLevelShaderMaterial(
    vertexShaderProgramchar; vertexShaderEntryPointNamechar;vsCompileTarget: E_VERTEX_SHADER_TYPE;
    pixelShaderProgramchar; pixelShaderEntryPointNamechar; psCompileTarget:E_PIXEL_SHADER_TYPE;
    baseMaterial:MATERIAL_TYPE;CallBack:TShaderCallBac k;userData:integer=0):integer;cdecl ;external dx_DLL;


    function Shader_AddShaderMaterialFromFiles(
    vertexShaderProgramFileNamechar; pixelShaderProgramFileNamechar;
    baseMaterial:MATERIAL_TYPE;CallBack:TShaderCallBac k;userData:integer=0):integer;cdecl ;external dx_DLL;
    function Shader_AddShaderMaterial(
    vertexShaderProgramFileNamechar; pixelShaderProgramFileNamechar;
    baseMaterial:MATERIAL_TYPE;CallBack:TShaderCallBac k;userData:integer=0):integer;cdecl ;external dx_DLL;









    //high level vertex shader
    procedure VShader_SetHLSMatrixView(Service:Void;namechar);cdecl ;external dx_DLL;
    procedure VShader_SetHLSMatrixWorldInversse(Service:Void;nam echar);cdecl ;external dx_DLL;
    procedure VShader_SetHLSMatrixWorldViewProj(Service:Void;nam echar);cdecl ;external dx_DLL;
    procedure VShader_SetHLSMatrixTransposed(Service:Void;namechar);cdecl ;external dx_DLL;
    procedure VShader_SetHLSMatrixWorldReflectionViewProj(Servic e:Void;const namechar);cdecl ;external dx_DLL;
    procedure VShader_SetHLSVector(Service:Void;namechar;vect:vector3);cdecl ;external dx_DLL;
    procedure VShader_SetHLSColor(Service:Void;namechar;r,g,b,a:single);cdecl ;external dx_DLL;
    procedure VShader_SetHLSMatrix(Service:Void;namechar;const MatrixCMatrix4);cdecl ;external dx_DLL;
    procedure VShader_SetHLSTexture(Service:Void;const namechar;tex:Void);cdecl ;external dx_DLL;
    //high level pixel shader
    procedure PShader_SetHLSMatrixView(Service:Void;namechar);cdecl ;external dx_DLL;
    procedure PShader_SetHLSMatrixWorldInversse(Service:Void;nam echar);cdecl ;external dx_DLL;
    procedure PShader_SetHLSMatrixWorldViewProj(namechar);cdecl ;external dx_DLL;
    procedure PShader_SetHLSMatrixTransposed(Service:Void;namechar);cdecl ;external dx_DLL;
    procedure PShader_SetHLSMatrixWorldReflectionViewProj(Servic e:Void;const namechar);cdecl ;external dx_DLL;
    procedure PShader_SetHLSVector(Service:Void;namechar;vect:vector3);cdecl ;external dx_DLL;
    procedure PShader_SetHLSColor(Service:Void;namechar;r,g,b,a:single);cdecl ;external dx_DLL;
    procedure PShader_SetHLSMatrix(Service:Void;namechar;const MatrixCMatrix4);cdecl ;external dx_DLL;
    procedure PShader_SetHLSTexture(Service:Void;const namechar;tex:Void);cdecl ;external dx_DLL;



    // vertex shader
    procedure VShader_SetMatrixView(Service:Void);cdecl ;external dx_DLL;
    procedure VShader_SetMatrixWorldInversse(Service:Void);cdecl ;external dx_DLL;
    procedure VShader_SetMatrixWorldViewProj(Service:Void);cdecl ;external dx_DLL;
    procedure VShader_SetMatrixTransposed(Service:Void);cdecl ;external dx_DLL;
    procedure VShader_SetMatrixWorldReflectionViewProj(Service:V oid);cdecl ;external dx_DLL;
    procedure VShader_SetVector(Service:Void;vect:vector3);cdecl ;external dx_DLL;
    procedure VShader_SetColor(Service:Void;r,g,b,a:single);cdec l ;external dx_DLL;
    procedure VShader_SetMatrix(Service:Void;const MatrixCMatrix4);cdecl ;external dx_DLL;
    //pixel shader
    procedure PShader_SetMatrixView(Service:Void);cdecl ;external dx_DLL;
    procedure PShader_SetMatrixWorldInversse(Service:Void);cdecl ;external dx_DLL;
    procedure PShader_SetMatrixWorldViewProj(Service:Void);cdecl ;external dx_DLL;
    procedure PShader_SetMatrixTransposed(Service:Void);cdecl ;external dx_DLL;
    procedure PShader_SetMatrixWorldReflectionViewProj(Service:V oid);cdecl ;external dx_DLL;
    procedure PShader_SetVector(Service:Void;vect:vector3);cdecl ;external dx_DLL;
    procedure PShader_SetColor(Service:Void;r,g,b,a:single);cdec l ;external dx_DLL;
    procedure PShader_SetMatrix(Service:Void;const MatrixCMatrix4);cdecl ;external dx_DLL;


    function Shader_SetHLSVertexShaderConstant(Service:Void;con st namechar;const floatsSingle;count:integer):boolean;cdecl ;external dx_DLL;
    procedure Shader_SetVertexShaderConstant(Service:Void;const datasingle;startRegister:integer;constantAmount:intege r=1);cdecl ;external dx_DLL;

    function Shader_SetHLSPixelShaderConstant(Service:Void;cons t namechar;const floatsSingle;count:integer):boolean;cdecl ;external dx_DLL;
    procedure Shader_SetPixelShaderConstant(Service:Void;const datasingle;startRegister:integer;constantAmount:intege r=1);cdecl ;external dx_DLL;

    //************************************************** ****
    //* MATRIX UTIL
    //************************************************** ****
    procedure GetMatrixWorld(MatrixCMatrix4);cdecl ;external dx_DLL;
    procedure GetMatrixView(MatrixCMatrix4);cdecl ;external dx_DLL;
    procedure GetMatrixProjection(MatrixCMatrix4);cdecl ;external dx_DLL;
    procedure GetMatrixWorldInversse(MatrixCMatrix4);cdecl ;external dx_DLL;
    procedure GetMatrixWorldViewProj(MatrixCMatrix4);cdecl ;external dx_DLL;
    procedure GetMatrixWorldTransposed(MatrixCMatrix4);cdecl ;external dx_DLL;
    procedure GetMatrixWorldInverseTranspose(MatrixCMatrix4);cdecl ;external dx_DLL;
    procedure GetMatrixViewInversse(MatrixCMatrix4);cdecl ;external dx_DLL;
    procedure GetMatrixViewTranspose(MatrixCMatrix4);cdecl ;external dx_DLL;[/pascal]
    Never underestimate the power of Delphi.
    <br />There's those who play games,...and then there's who make games...

  2. #2

  3. #3

    DXCore 3D Engine(Irr4Delphi)

    Excellent work, well done!

  4. #4

    DXCore 3D Engine(Irr4Delphi)

    Hey, very impressive work Djoker !

    let me understand well : dxCore.dll is an irrlicht modified (originaly in c++, no ?), or a whole new engine wrote in Pascal ?

    I see your demo, that's work well, and the corresponding source code is very simple
    I'm curious to see what do you prepare.

    Regards,

    Vinz

  5. #5

    DXCore 3D Engine(Irr4Delphi)

    Excellent work again !!! First in Dreamotion 3D and now in Irrlicht :thumbup:

  6. #6

    DXCore 3D Engine(Irr4Delphi)

    Quote Originally Posted by Vinzvega
    Hey, very impressive work Djoker !

    let me understand well : dxCore.dll is an irrlicht modified (originaly in c++, no ?), or a whole new engine wrote in Pascal ?

    I see your demo, that's work well, and the corresponding source code is very simple
    I'm curious to see what do you prepare.

    Regards,

    Vinz
    irr super modified
    Never underestimate the power of Delphi.
    <br />There's those who play games,...and then there's who make games...

  7. #7

    DXCore 3D Engine(Irr4Delphi)

    Quote Originally Posted by loriendesign
    Excellent work again !!! First in Dreamotion 3D and now in Irrlicht :thumbup:
    DreamMotion ??


    thank you guys .. your replays make my continue my project

    i make the new system particles with callbacks this way we can control particles one by one i think
    is very good

    im trying new landscape improve the AI system modified steering beavers and extra stuff

    i see lots of orthographic errors on the api im working very fast and miss same of theme

    tank you 4 the replays its great
    Never underestimate the power of Delphi.
    <br />There's those who play games,...and then there's who make games...

  8. #8

    DXCore 3D Engine(Irr4Delphi)

    djoker wrote:

    DreamMotion ??
    I mean your work to make Delphi wrapper of Dreamotion3d engine http://www.dreamotion3d.com/

  9. #9

    DXCore 3D Engine(Irr4Delphi)

    Hi DJoker,

    i have a ?

    what have you make with your old DarkGdK-Wrapper ?
    Can you give me the source code or work you with this thing?





    Sorry 4my english

  10. #10

    DXCore 3D Engine(Irr4Delphi)

    Quote Originally Posted by detvog
    Hi DJoker,

    i have a ?

    what have you make with your old DarkGdK-Wrapper ?
    Can you give me the source code or work you with this thing?





    Sorry 4my english

    ok my friend..
    all c++ and delphi source code
    if you have problems plz report i think i dont make the bests options 4 the dll on vc express


    http://www.box.net/shared/lfuq7ah3rj
    Never underestimate the power of Delphi.
    <br />There's those who play games,...and then there's who make games...

Page 1 of 2 12 LastLast

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •