hge source explor 0xA graphics Ⅰ

Posted YORU

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hge source explor 0xA graphics Ⅰ相关的知识,希望对你有一定的参考价值。

Graphics

  在这一部分完成初始化DX,并且完成固定流水线,然后在进行渲染。

  在这一部分会用到的数据结构和参数有:

  参数:

D3DPRESENT_PARAMETERS*  d3dpp;

    D3DPRESENT_PARAMETERS   d3dppW;
    D3DPRESENT_PARAMETERS   d3dppFS;

    IDirect3D8*                pD3D;
    IDirect3DDevice8*        pD3DDevice;
    IDirect3DVertexBuffer8*    pVB;
    IDirect3DIndexBuffer8*    pIB;

    IDirect3DSurface8*    pScreenSurf;
    IDirect3DSurface8*    pScreenDepth;
    CRenderTargetList*    pTargets;
    CRenderTargetList*    pCurTarget;

    D3DXMATRIX            matView;
    D3DXMATRIX            matProj;

    CTextureList*        textures;
    hgeVertex*            VertArray;

    int                    nPrim;
    int                    CurPrimType;
    int                    CurBlendMode;
    HTEXTURE            CurTexture;
para

  其中还有这些结构:

  hgevertex

/*
** HGE Vertex structure
*/
struct hgeVertex
{
    float            x, y;        // screen position    
    float            z;            // Z-buffer depth 0..1
    DWORD            col;        // color
    float            tx, ty;        // texture coordinates
};

//对应的定点设置
#define D3DFVF_HGEVERTEX (D3DFVF_XYZ | D3DFVF_DIFFUSE | D3DFVF_TEX1)
#define VERTEX_BUFFER_SIZE 4000

   

CRenderTargetList

struct CRenderTargetList
{
    int                    width;
    int                    height;
    IDirect3DTexture8*    pTex;
    IDirect3DSurface8*    pDepth;
    CRenderTargetList*    next;
};

 

CTextureList

struct CTextureList
{
    HTEXTURE            tex;
    int                    width;
    int                    height;
    CTextureList*        next;
};

 

 渲染的图元

/*
** HGE Primitive type constants
*/
#define HGEPRIM_LINES        2
#define HGEPRIM_TRIPLES        3
#define HGEPRIM_QUADS        4


/*
** HGE Vertex structure
*/
struct hgeVertex
{
    float            x, y;        // screen position    
    float            z;            // Z-buffer depth 0..1
    DWORD            col;        // color
    float            tx, ty;        // texture coordinates
};


/*
** HGE Triple structure
*/
struct hgeTriple
{
    hgeVertex        v[3];
    HTEXTURE        tex;
    int                blend;
};


/*
** HGE Quad structure
*/
struct hgeQuad
{
    hgeVertex        v[4];
    HTEXTURE        tex;
    int                blend;
};

 

BLEND类型

/*
** HGE Blending constants
*/
#define    BLEND_COLORADD        1
#define    BLEND_COLORMUL        0
#define    BLEND_ALPHABLEND    2
#define    BLEND_ALPHAADD        0
#define    BLEND_ZWRITE        4
#define    BLEND_NOZWRITE        0

#define BLEND_DEFAULT        (BLEND_COLORMUL | BLEND_ALPHABLEND | BLEND_NOZWRITE)
#define BLEND_DEFAULT_Z        (BLEND_COLORMUL | BLEND_ALPHABLEND | BLEND_ZWRITE)

 

以上是关于hge source explor 0xA graphics Ⅰ的主要内容,如果未能解决你的问题,请参考以下文章

hge source explor 0x8 timer

hge source explor 0x4 input module

hge source explor 0x6 input module

hge source explor 0x3 windows module

hge source explor 0xB graphics Ⅱ

hge source explor 0x5 input module