zoukankan      html  css  js  c++  java
  • 【DirectX】D3D中基本图形绘制(总结)

    IDirect3D* WINAPI Direct3DCreate9(
     UINT SDKVersion         //版本号
    );                              //创建Direct3D9接口对象

    HRESULT IDirect3D::GetDeviceCaps(
     UINT Adapter,           //显卡号(一般为D3DADAPTER_DEFAULT)
     D3DDEVTYPE DeviceType,  //设备类型(一般为D3DDEVTYPE_HAL)
     D3DCAPS9* pCaps         //返回设备功能信息
    );                              //本机显示卡功能检测

    HRESULT IDirect3D::GetAdapterDisplayMode(
     UINT Adapter,           //显卡号
     D3DDISPLAYMODE* pMode   //显示模式
    );                              //获得显卡的显示模式

    typedef struct _D3DDISPLAYMODE{
     UINT Width;             //屏幕像素宽度
     UINT Height;            //屏幕像素高度
     UINT RefreshRate;       //刷新率
     D3DFORMAT Format;       //显卡使用的各种绘图表面格式
    }D3DDISPLAYMODE;                //显示模式结构体

    typedef struct _D3DPRESENT_PARAMETERS_ {
     UINT BackBufferWidth,BackBufferHeight;         //后绘图表面的像素宽高
     D3DFORMAT BackBufferFormat;                    //后绘图表面的各种数据格式(如像素颜色格式)
     UINT BackBufferCount;                          //后绘图表面的数目
     D3DMULTISAMPLE_TYPE MultiSampleType;           //多重采样类型
     DWORD MultiSampleQuality;                      //多重采样品质
     D3DSWAPEFFECT SwapEffect;                      //前后绘图表面的交换方式
     HWND hDeviceWindow;                            //所在的窗口句柄
     BOOL Windowed;                                 //true表示使用窗口;false表示使用全屏
     BOOL EnableAutoDepthStencil;                   //使能自动深度蒙板
     D3DFORMAT AutoDepthStencilFormat;              //自动深度蒙版格式
     DWORD Flags;                                   //后绘图表面可否锁定等标志
     UINT FullScreen_RefreshRateInHz;               //屏幕刷新率(如果使用窗口,则必须设置为0)
     UINT PresentationInterval;                     //前、后绘图表面的最大交换频率
    } D3DPRESENT_PARAMETERS;                               //设备显示属性结构体

    HRESULT IDirect3D::CreateDevice(
     UINT Adapter,                        //显示卡编号
     D3DDEVTYPE DeviceType,               //设备类型
     HWND hFocusWindow,                   //所属窗口句柄
     DWORD BehaviorFlags,                 //设备行为标志
     D3DPRESENT_PARAMETERS* pPresentationParameters,    //显示属性参数
     IDirect3DDevice9** ppReturnedDeviceInterface       //返回的设备接口指针
    );                                           //创建渲染设备

    HRESULT IDirect3DDevice9::CreateVertexBuffer(
     UINT Length,             //顶点缓冲区的大小
     DWORD Usage,             //顶点缓冲区的用法
     DWORD FVF,               //可变的顶点格式
     D3DPOOL Pool,            //顶点缓冲区所使用的内存池类型
     IDirect3DVertexBuffer9** ppVertexBuffer,   //顶点缓冲区的指针
     HANDLE* pSharedHandle    //保留字,设置为NULL
    );                               //创建顶点缓冲区

    HRESULT IDirect3DVertexBuffer9::Lock(
     UINT OffsetToLock,       //锁定的起始字节位置
     UINT SizeToLock,         //锁定字节的大小
     VOID** ppbData,          //返回的顶点缓冲区指针
     DWORD Flags              //锁定标志
    );                               //内存锁定,返回顶点缓冲区指针

    HRESULT IDirect3DDevice9::Clear(
     DWORD Count,               //要清除的绘图表面的矩形区域个数
     const D3DRECT* pRects,     //所清除的绘图表面的区域
     DWORD Flags,               //清除标志
     D3DCOLOR Color,            //清除后的新颜色值
     float Z,                   //所清除的Z-Buffer缓冲区的新Z值(0--1之间)
     DWORD Stencil              //所清除的Stencil缓冲区的新值
    );                                 //清除设备缓冲区数据

    HRESULT IDirect3DDevice9::BeginScene(VOID);          //启动设备管道流水线
    HRESULT IDirect3DDevice9::EndScene(VOID);            //停止设备管道流水线
                                                         //以上两个函数必须成对出现,且3D场景渲染代码必须放到他们中间

    HRESULT IDirect3DDevice9::SetStreamSource(
     UINT StreamNumber,        //管道流水线编号
     IDirect3DVertexBuffer9* pStreamData,    //顶点缓冲区指针
     UINT OffsetInBytes,       //缓冲区数据的偏移字节位置
     UINT Stride               //顶点带宽,一般为顶点结构体的字节大小
    );                                //顶点缓冲区数据装入管道流水线

    HRESULT IDirect3DDevice9::SetFVF(
     DWORD FVF                 //可变顶点格式
    );                                //设置顶点格式

    HRESULT IDirect3DDevice9::DrawPrimitive(
     D3DPRIMITIVETYPE PrimitiveType,   //所采用的3D原始类型
     UINT StartVertex,                 //起始顶点的索引
     UINT PrimitiveCount               //绘制图元个数
    );                                        //绘制基本图元(三角形)

    HRESULT IDirect3DDevice9::Present(
     CONST RECT* pSourceRect,          //一般说明为NULL
     CONST RECT* pDestRect,            //一般说明为NULL
     HWND hDestWindowOverride,         //一般说明为NULL
     CONST RGNDATA* pDirtyRegion       //一般说明为NULL
    );                                        //交换前后绘图表面

  • 相关阅读:
    Jquery 表单验证
    C#基础备忘 日期格式化
    Juqery/HTML 重置表单,Reset
    C#基础 Virtue跟New Virtue
    Jquery Easy-UI中的Tabs扩展
    DOM setTimeout() 和setInterval()用法
    ASP.NET 登录中Cookies和验证和前端Jquery
    npm更新到最新版本
    js判断是否ie浏览器或者浏览器版本
    hibernate多个主键
  • 原文地址:https://www.cnblogs.com/kex1n/p/2145152.html
Copyright © 2011-2022 走看看