多条文本输出, 每条文本单次 Draw() 最后 Present() 【已完成】【附带源码】(只能处理 大写 英文字母)

注意: (只能处理 大写 英文字母)

如下图所示 为本程序的类间组织结构:

  • 类EvlWin 是 对 windows 窗体创建显示的封装, 使用简易如:
    // 创建窗体
    EvlWin *eWin = new EvlWin( hInstance, prevInstance, cmdLine, cmdShow, NULL, NULL);

    // 显示窗体
    eWin->show();
  • 类 Dx11DemoBase 是对 DirectX11 的基本 device / context 创建的封装基类; 但具体效果表现需要由 子类实现:
    // DirectX11 处理对象
    Dx11DemoBase *System = new SystemClass();

    // DirectX11 相关初始化
    bool result = System->Initialize( hInstance, eWin->m_hwnd);
    if( result == false)
        return -1;
    
    //不使用 eWin 事件循环
    //eWin->loopMessage();
    System->MessageLoop();

    
    // 释放资源
    System->Shutdown();
    delete System;
    System = 0;
  •  文本显示在 System->MessageLoop() 消息循环内的 Render() 内调用 DrawString() 显示, 有两个文本:

  • 类 SystemClass 是整个游戏系统 管理类, 之后将扩展有 输入子系统, 媒体子系统等; 当前包含 文本显示控制类 TextSystemClass , 分为两部分步骤, 第一是 更新 文本的vertexBuffer 信息, 第二是更新 文本对应的 文本贴图信息; 最后显示 文本到显示设备.

 

下面是 代码下载

posted @ 2013-01-10 00:56  Wilson-Loo  阅读(344)  评论(0编辑  收藏  举报