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

📄 mmd3dtyp.pas

📁 一套及时通讯的原码
💻 PAS
📖 第 1 页 / 共 3 页
字号:
    D3DSTATUS_DEFAULT               =
                                      D3DSTATUS_CLIPINTERSECTIONALL    or
                                      D3DSTATUS_ZNOTVISIBLE
                                    ;

{-- Options for direct transform calls ---------------------------------------}

    D3DTRANSFORM_CLIPPED            = $00000001;
    D3DTRANSFORM_UNCLIPPED          = $00000002;

type
    PD3DTRANSFORMDATA               = ^TD3DTRANSFORMDATA;
    TD3DTRANSFORMDATA               = record
        dwSize                      : DWORD;
        lpIn                        : PVOID;            // Input vertices
        dwInSize                    : DWORD;            // Stride of input vertices 
        lpOut                       : PVOID;            // Output vertices
        dwOutSize                   : DWORD;            // Stride of output vertices 
        lpHOut                      : PD3DHVERTEX;      // Output homogeneous vertices 
        dwClip                      : DWORD;            // Clipping hint 
        dwClipIntersection          : DWORD;
        dwClipUnion                 : DWORD;            // Union of all clip flags
        drExtent                    : TD3DRECT;         // Extent of transformed vertices
    end;

{-- Structure defining position and direction properties for lightning -------}

    PD3DLIGHTINGELEMENT             = ^TD3DLIGHTINGELEMENT;
    TD3DLIGHTINGELEMENT             = record
        dvPosition                  : TD3DVECTOR;       // Lightable point in model space
        dvNormal                    : TD3DVECTOR;       // Normalised unit vector
    end;

{-- Structure defining material properties for lightning ---------------------}

    PD3DMATERIAL                    = ^TD3DMATERIAL;
    TD3DMATERIAL                    = record
        dwSize                      : DWORD;
        case Byte of
            0: (diffuse             : TD3DCOLORVALUE;   // Diffuse color RGBA
                ambient             : TD3DCOLORVALUE;   // Ambient color RGB
                specular            : TD3DCOLORVALUE;   // Specular 'shininess'
                emissive            : TD3DCOLORVALUE;   // Emissive color RGB
                power               : D3DVALUE;         // Sharpness if specular highlight
               );
            1: (dcvDiffuse          : TD3DCOLORVALUE;
                dcvAmbient          : TD3DCOLORVALUE;
                dcvSpecular         : TD3DCOLORVALUE;
                dcvEmissive         : TD3DCOLORVALUE;
                dvPower             : D3DVALUE;

                hTexture            : D3DTEXTUREHANDLE; // Handle to texture map
                dwRampSize          : DWORD;
            );
    end;

type
    D3DLIGHTTYPE                    = D3DENUM;

const
    D3DLIGHT_POINT                  = 1;
    D3DLIGHT_SPOT                   = 2;
    D3DLIGHT_DIRECTIONAL            = 3;
    D3DLIGHT_PARALLELPOINT          = 4;
    D3DLIGHT_GLSPOT                 = 5;

{-- Structure defining a light source and its properties ---------------------}

type
    PD3DLIGHT                       = ^TD3DLIGHT;
    TD3DLIGHT                       = record
        dwSize                      : DWORD;
        dltType                     : D3DLIGHTTYPE;     // Type of light source 
        dcvColor                    : TD3DCOLORVALUE;   // Color of light
        dvPosition                  : TD3DVECTOR;       // Position in world space
        dvDirection                 : TD3DVECTOR;       // Direction in world space
        dvRange                     : D3DVALUE;         // Cutoff range 
        dvFalloff                   : D3DVALUE;         // Falloff 
        dvAttenuation0              : D3DVALUE;         // Constant attenuation 
        dvAttenuation1              : D3DVALUE;         // Linear attenuation 
        dvAttenuation2              : D3DVALUE;         // Quadratic attenuation 
        dvTheta                     : D3DVALUE;         // Inner angle of spotlight cone 
        dvPhi                       : D3DVALUE;         // Outer angle of spotlight cone
    end;

    PD3DLIGHTDATA                   = ^TD3DLIGHTDATA;
    TD3DLIGHTDATA                   = record
        dwSize                      : DWORD;
        lpIn                        : PD3DLIGHTINGELEMENT;  // Input positions and normals
        dwInSize                    : DWORD;                // Stride of input elements
        lpOut                       : PD3DTLVERTEX;         // Output colors
        dwOutSize                   : DWORD;                // Stride of output colors
    end;

    D3DCOLORMODEL                   = D3DENUM;

const
    D3DCOLOR_MONO                   = 1;
    D3DCOLOR_RGB                    = 2;

{-- Options for clearing -----------------------------------------------------}

    D3DCLEAR_TARGET                 = $00000001;            // Clear target surface 
    D3DCLEAR_ZBUFFER                = $00000002;            // Clear target z buffer

//
// Execute buffers are allocated via Direct3D.  These buffers may then
// be filled by the application with instructions to execute along with
// vertex data.
//

//
// Supported op codes for execute instructions.
//
type
    D3DOPCODE                       = D3DENUM;

const
    D3DOP_POINT                     = 1;
    D3DOP_LINE                      = 2;
    D3DOP_TRIANGLE                  = 3;
    D3DOP_MATRIXLOAD                = 4;
    D3DOP_MATRIXMULTIPLY            = 5;
    D3DOP_STATETRANSFORM            = 6;
    D3DOP_STATELIGHT                = 7;
    D3DOP_STATERENDER               = 8;
    D3DOP_PROCESSVERTICES           = 9;
    D3DOP_TEXTURELOAD               = 10;
    D3DOP_EXIT                      = 11;
    D3DOP_BRANCHFORWARD             = 12;
    D3DOP_SPAN                      = 13;
    D3DOP_SETSTATUS                 = 14;

type
    PD3DINSTRUCTION                 = ^TD3DINSTRUCTION;
    TD3DINSTRUCTION                 = record
        bOpcode                     : BYTE;     // Instruction opcode
        bSize                       : BYTE;     // Size of each instruction data unit
        wCount                      : WORD;     // Count of instruction data units to follow
    end;

{-- Structure for texture loads ----------------------------------------------}

    PD3DTEXTURELOAD                 = ^TD3DTEXTURELOAD;
    TD3DTEXTURELOAD                 = record
        hDestTexture                : D3DTEXTUREHANDLE;
        hSrcTexture                 : D3DTEXTUREHANDLE;
    end;

{-- Structure for picking ----------------------------------------------------}

    PD3DPICKRECORD                  = ^TD3DPICKRECORD;
    TD3DPICKRECORD                  = record
        bOpcode                     : BYTE;
        bPad                        : BYTE;
        dwOffset                    : DWORD;
        dvZ                         : D3DVALUE;
    end;

{-- Following defines the rendering states which can be set in execute buf ---}

type
    D3DSHADEMODE                    = D3DENUM;

const
    D3DSHADE_FLAT                   = 1;
    D3DSHADE_GOURAUD                = 2;
    D3DSHADE_PHONG                  = 3;

type
    D3DFILLMODE                     = D3DENUM;

const
    D3DFILL_POINT                   = 1;
    D3DFILL_WIREFRAME               = 2;
    D3DFILL_SOLID                   = 3;

type
    PD3DLINEPATTERN                 = ^TD3DLINEPATTERN;
    TD3DLINEPATTERN                 = record
        wRepeatFactor               : WORD;
        wLinePattern                : WORD;
    end;

    D3DTEXTUREFILTER                = D3DENUM;

const
    D3DFILTER_NEAREST               = 1;
    D3DFILTER_LINEAR                = 2;
    D3DFILTER_MIPNEAREST            = 3;
    D3DFILTER_MIPLINEAR             = 4;
    D3DFILTER_LINEARMIPNEAREST      = 5;
    D3DFILTER_LINEARMIPLINEAR       = 6;

type
    D3DBLEND                        = D3DENUM;

const
    D3DBLEND_ZERO                   = 1;
    D3DBLEND_ONE                    = 2;
    D3DBLEND_SRCCOLOR               = 3;
    D3DBLEND_INVSRCCOLOR            = 4;
    D3DBLEND_SRCALPHA               = 5;
    D3DBLEND_INVSRCALPHA            = 6;
    D3DBLEND_DESTALPHA              = 7;
    D3DBLEND_INVDESTALPHA           = 8;
    D3DBLEND_DESTCOLOR              = 9;
    D3DBLEND_INVDESTCOLOR           = 10;
    D3DBLEND_SRCALPHASAT            = 11;
    D3DBLEND_BOTHSRCALPHA           = 12;
    D3DBLEND_BOTHINVSRCALPHA        = 13;

type
    D3DTEXTUREBLEND                 = D3DENUM;

const
    D3DTBLEND_DECAL                 = 1;
    D3DTBLEND_MODULATE              = 2;
    D3DTBLEND_DECALALPHA            = 3;
    D3DTBLEND_MODULATEALPHA         = 4;
    D3DTBLEND_DECALMASK             = 5;
    D3DTBLEND_MODULATEMASK          = 6;
    D3DTBLEND_COPY                  = 7;

type
    D3DTEXTUREADDRESS               = D3DENUM;

const
    D3DTADDRESS_WRAP                = 1;
    D3DTADDRESS_MIRROR              = 2;
    D3DTADDRESS_CLAMP               = 3;

type
    D3DCULL                         = D3DENUM;

const
    D3DCULL_NONE                    = 1;
    D3DCULL_CW                      = 2;
    D3DCULL_CCW                     = 3;

type
    D3DCMPFUNC                      = D3DENUM;

const
    D3DCMP_NEVER                    = 1;
    D3DCMP_LESS                     = 2;
    D3DCMP_EQUAL                    = 3;
    D3DCMP_LESSEQUAL                = 4;
    D3DCMP_GREATER                  = 5;
    D3DCMP_NOTEQUAL                 = 6;
    D3DCMP_GREATEREQUAL             = 7;
    D3DCMP_ALWAYS                   = 8;

type
    D3DFOGMODE                      = D3DENUM;

const
    D3DFOG_NONE                     = 0;
    D3DFOG_EXP                      = 1;
    D3DFOG_EXP2                     = 2;
    D3DFOG_LINEAR                   = 3;

{-- Amount to add to a state to generate the override for that state ---------}

const
    D3DSTATE_OVERRIDE_BIAS          = 256;

{-- A state which sets the override flag for the specified state type --------}

function    D3DSTATE_OVERRIDE(_type: DWORD): DWORD;

type
    D3DTRANSFORMSTATETYPE           = D3DENUM;

const
    D3DTRANSFORMSTATE_WORLD         = 1;
    D3DTRANSFORMSTATE_VIEW          = 2;
    D3DTRANSFORMSTATE_PROJECTION    = 3;

type
    D3DLIGHTSTATETYPE               = D3DENUM;

const
    D3DLIGHTSTATE_MATERIAL          = 1;
    D3DLIGHTSTATE_AMBIENT           = 2;
    D3DLIGHTSTATE_COLORMODEL        = 3;
    D3DLIGHTSTATE_FOGMODE           = 4;
    D3DLIGHTSTATE_FOGSTART          = 5;
    D3DLIGHTSTATE_FOGEND            = 6;
    D3DLIGHTSTATE_FOGDENSITY        = 7;

type
    D3DRENDERSTATETYPE              = D3DENUM;

const
    D3DRENDERSTATE_TEXTUREHANDLE        = 1;    // Texture handle
    D3DRENDERSTATE_ANTIALIAS            = 2;    // Antialiasing prim edges
    D3DRENDERSTATE_TEXTUREADDRESS       = 3;    // D3DTEXTUREADDRESS
    D3DRENDERSTATE_TEXTUREPERSPECTIVE   = 4;    // TRUE for perspective correction
    D3DRENDERSTATE_WRAPU                = 5;    // TRUE for wrapping in u
    D3DRENDERSTATE_WRAPV                = 6;    // TRUE for wrapping in v
    D3DRENDERSTATE_ZENABLE              = 7;    // TRUE to enable z test
    D3DRENDERSTATE_FILLMODE             = 8;    // D3DFILL_MODE
    D3DRENDERSTATE_SHADEMODE            = 9;    // D3DSHADEMODE
    D3DRENDERSTATE_LINEPATTERN          = 10;   // D3DLINEPATTERN
    D3DRENDERSTATE_MONOENABLE           = 11;   // TRUE to enable mono rasterization
    D3DRENDERSTATE_ROP2                 = 12;   // ROP2
    D3DRENDERSTATE_PLANEMASK            = 13;   // DWORD physical plane mask
    D3DRENDERSTATE_ZWRITEENABLE         = 14;   // TRUE to enable z writes
    D3DRENDERSTATE_ALPHATESTENABLE      = 15;   // TRUE to enable alpha tests
    D3DRENDERSTATE_LASTPIXEL            = 16;   // TRUE for last-pixel on lines
    D3DRENDERSTATE_TEXTUREMAG           = 17;   // D3DTEXTUREFILTER
    D3DRENDERSTATE_TEXTUREMIN           = 18;   // D3DTEXTUREFILTER
    D3DRENDERSTATE_SRCBLEND             = 19;   // D3DBLEND
    D3DRENDERSTATE_DESTBLEND            = 20;   // D3DBLEND
    D3DRENDERSTATE_TEXTUREMAPBLEND      = 21;   // D3DTEXTUREBLEND 
    D3DRENDERSTATE_CULLMODE             = 22;   // D3DCULL 
    D3DRENDERSTATE_ZFUNC                = 23;   // D3DCMPFUNC 
    D3DRENDERSTATE_ALPHAREF             = 24;   // D3DFIXED 
    D3DRENDERSTATE_ALPHAFUNC            = 25;   // D3DCMPFUNC
    D3DRENDERSTATE_DITHERENABLE         = 26;   // TRUE to enable dithering 
    D3DRENDERSTATE_BLENDENABLE          = 27;   // TRUE to enable alpha blending 
    D3DRENDERSTATE_FOGENABLE            = 28;   // TRUE to enable fog 
    D3DRENDERSTATE_SPECULARENABLE       = 29;   // TRUE to enable specular 
    D3DRENDERSTATE_ZVISIBLE             = 30;   // TRUE to enable z checking
    D3DRENDERSTATE_SUBPIXEL             = 31;   // TRUE to enable subpixel correction 
    D3DRENDERSTATE_SUBPIXELX            = 32;   // TRUE to enable correction in X only
    D3DRENDERSTATE_STIPPLEDALPHA        = 33;   // TRUE to enable stippled alpha
    D3DRENDERSTATE_FOGCOLOR             = 34;   // D3DCOLOR
    D3DRENDERSTATE_FOGTABLEMODE         = 35;   // D3DFOGMODE
    D3DRENDERSTATE_FOGTABLESTART        = 36;   // Fog table start        
    D3DRENDERSTATE_FOGTABLEEND          = 37;   // Fog table end          
    D3DRENDERSTATE_FOGTABLEDENSITY      = 38;   // Fog table density      
    D3DRENDERSTATE_STIPPLEENABLE        = 39;   // TRUE to enable stippling
    D3DRENDERSTATE_STIPPLEPATTERN00     = 64;   // Stipple pattern 01...
    D3DRENDERSTATE_STIPPLEPATTERN01     = 65;
    D3DRENDERSTATE_STIPPLEPATTERN02     = 66;
    D3DRENDERSTATE_STIPPLEPATTERN03     = 67;
    D3DRENDERSTATE_STIPPLEPATTERN04     = 68;
    D3DRENDERSTATE_STIPPLEPATTERN05     = 69;
    D3DRENDERSTATE_STIPPLEPATTERN06     = 70;
    D3DRENDERSTATE_STIPPLEPATTERN07     = 71;
    D3DRENDERSTATE_STIPPLEPATTERN08     = 72;
    D3DRENDERSTATE_STIPPLEPATTERN09     = 73;
    D3DRENDERSTATE_STIPPLEPATTERN10     = 74;
    D3DRENDERSTATE_STIPPLEPATTERN11     = 75;
    D3DRENDERSTATE_STIPPLEPATTERN12     = 76;
    D3DRENDERSTATE_STIPPLEPATTERN13     = 77;
    D3DRENDERSTATE_STIPPLEPATTERN14     = 78; 
    D3DRENDERSTATE_STIPPLEPATTERN15     = 79;
    D3DRENDERSTATE_STIPPLEPATTERN16     = 80; 
    D3DRENDERSTATE_STIPPLEPATTERN17     = 81;
    D3DRENDERSTATE_STIPPLEPATTERN18     = 82; 
    D3DRENDERSTATE_STIPPLEPATTERN19     = 83; 
    D3DRENDERSTATE_STIPPLEPATTERN20     = 84;
    D3DRENDERSTATE_STIPPLEPATTERN21     = 85; 
    D3DRENDERSTATE_STIPPLEPATTERN22     = 86; 
    D3DRENDERSTATE_STIPPLEPATTERN23     = 87; 
    D3DRENDERSTATE_STIPPLEPATTERN24     = 88; 
    D3DRENDERSTATE_STIPPLEPATTERN25     = 89;

⌨️ 快捷键说明

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