当前位置导航:炫浪网>>网络学院>>编程开发>>C++教程>>Visual C++教程

实现一个Image Render

    前些日子写了一个基于DrawDib视频函数库的Render,虽然显示图片速度非常快,但是还是难以满足一些交互式的实时显示.而且在放大缩小的时候,无法设置反锯齿功能(antialias). 本来不想用Directx的,看来现在还是逃不过. 我很讨厌用接口经常变动的东西,更讨厌需要安装支持动态链接库的东东, directx就是这样的东西,direct1到现在的directx9,每一次新接口都会变动,当然老的接口还是可以用的,但是出来相应的SDK文档却没有老接口的调用方法。没办法,down了个Directx9硬着头皮学学。

    研究了一下午再加一晚上的SDK文档, 脑子里差不多有Render的框架了,大致如下:

    class MMD3DRender

    {

    protected:

        IDirect3D9*             m_pD3D;

        IDirect3DDevice9*       m_pDev;

        IDirect3DSurface9*      m_pSuf;

    ……

        //作一些Direct3D9的初始化工作

        bool Init( HWND);

        // 把Buffer里面的东西送到Surface上去(m_pSuf)

        void Draw( BYTE* pBuffer,int iStep, LPRECT lpRc);

        // WM_PAINT 消息处理

        void Paint();

        // 释放资源,退出的善后工作

        void Destroy();

    };

    按道理调用这个Render很简单,只要在某个Window对象的WM_CREATE消息响应函数里面调用

    Init( pWnd->GetSafeHwnd())

    然后其WM_PAINT函数里加

              ValidateRect(NULL);

              render.Paint();

    就OK了。

   

共2页 首页 上一页 1 2 下一页 尾页 跳转到
相关内容
赞助商链接