登录 用户中心() [退出] 后台管理 注册
   
您的位置: 首页 >> 程序员学前班[不再更新,只读] >> 主题: 最简单的 DirectDraw 程序     [回主站]     [分站链接]
标题
最简单的 DirectDraw 程序
clq
浏览(0) + 2010-05-24 14:49:11 发表 编辑

关键字:

最简单的 DirectDraw 程序

只生成一个表面并关联到窗口句柄就可以,然后就可以使用 gdi 函数进行操作了.(不过直接用 gdi 函数似乎速度并不高?--尚未看到权威说明)



clq
2010-5-24 14:49:39 发表 编辑


HDC create_dx2(HWND h, LPDIRECTDRAWSURFACE * pdds)
{
    HWND hwnd = h;

    IDirectDraw *dd;
    //IDirectDrawSurface *dds0;//LPDIRECTDRAWSURFACE 是 IDirectDrawSurface *
//    IDirectDrawSurface * dds0 = * pdds;
    
    DDSURFACEDESC ddsd;
    HDC hddDC;
    RECT rect;



    DirectDrawCreate(NULL, &dd, NULL);

    //dd->SetCooperativeLevel(hwnd, DDSCL_NORMAL | DDSCL_NOWINDOWCHANGES);
    dd->SetCooperativeLevel(hwnd, DDSCL_NORMAL);

    memset(&ddsd, 0, sizeof(DDSURFACEDESC));
    ddsd.dwSize = sizeof(DDSURFACEDESC);
    ddsd.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE;
    ddsd.dwFlags = DDSD_CAPS;
//    dd->CreateSurface(&ddsd, &dds0, NULL);
    dd->CreateSurface(&ddsd, pdds, NULL);

    IDirectDrawSurface * dds0 = * pdds;

    ddsd.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN;
    ddsd.dwHeight = 32;
    ddsd.dwWidth = 32;
    ddsd.dwFlags = DDSD_CAPS | DDSD_HEIGHT | DDSD_WIDTH;


    dds0->GetDC(&hddDC);//clq add test
//    SaveDC(hddDC);//好象不要也可以
    rect.left = rect.top = 0;
    rect.right = rect.bottom = 32;
    FillRect(hddDC, &rect, (HBRUSH)(COLOR_WINDOW + 1));
    SelectObject(hddDC, GetStockObject(BLACK_BRUSH));
    SelectObject(hddDC, GetStockObject(BLACK_PEN));
    //Ellipse(hddDC, 0, 0, 32, 32);
    TextOut(hddDC, 5, 1, _T("abbb"), 3);
//    RestoreDC(hddDC, -1);//好象不要也可以
    dds0->ReleaseDC(hddDC); //clq add test


    //--------------------------------------------------
    ::Sleep(200);
    return hddDC;
}


clq
2010-5-24 17:31:45 发表 编辑

    ddsd.dwHeight = 1024;//320;//32;
    ddsd.dwWidth = 1024;//320;//32;

好象比较重要,要大于 blt 使用时的块大小. blt 是缩放操作能硬件加速的关键.


总数:2 页次:1/1 首页 尾页  
总数:2 页次:1/1 首页 尾页  


所在合集/目录



发表评论:
文本/html模式切换 插入图片 文本/html模式切换


附件:



NEWBT官方QQ群1: 276678893
可求档连环画,漫画;询问文本处理大师等软件使用技巧;求档softhub软件下载及使用技巧.
但不可"开车",严禁国家敏感话题,不可求档涉及版权的文档软件.
验证问题说明申请入群原因即可.

Copyright © 2005-2020 clq, All Rights Reserved
版权所有
桂ICP备15002303号-1