zoukankan      html  css  js  c++  java
  • DirectX Sample-ConfigSystem中采用配置文件进行游戏设置

    这个例子是一个撞球系统,碰撞部分也值得学习,不过最重要的还是其配置部分,配置文件为config.txt,其中包括:

    Requirements:所需配置

    propertyset:预定义的设置,通过名字引用,例子文件中没有

    AudioVendor:音频设置

    DisplayVendor:视频设置,也是这个例子中最主要的部分,根据不同的显卡制造商(VendorId),不同的设备号(DeviceId),然后根据驱动版本号、操作系统版本等信息做一些设置。

    上面提到的设置通过调用游戏中的相应接口设置,保存在CONFIGTABLE ConfigTable中

    比如

    例1

    3DFX
    DisplayVendor = 0x121a  "3dfx"
    0x8626 = "Rush (Macronix)"
        UnsupportedCard
        break

    其含义为

    3DFX制作的显卡,如果设备号为0x8626,则不支持当前游戏

    例2

    DisplayVendor = 0x8086  "Intel"
    Unknown = "Unknown"
        UMA

    这个是我电脑上所用显卡,intel集成显卡,根据系统内存计算显存。


    这个例子在超过4G内存电脑上的问题:

    例子在我的电脑上跑有如下提示:

    This system does not meet the following minimum requirements:

    Minimum memory of 128 megabytes

    Minimum video memory of 64 megabytes

    其原因是我电脑为win7(64位),内存为8G,内存计算有问题,如下修改即可

    INT64 SysMemory;//DWORD SysMemory;

    INT64 tmpMemSize = (INT64)ms.dwTotalPhys+(16*1024*1024-1);
    SysMemory = ((tmpMemSize & ~(16*1024*1024-1) ) >> 20);

    //SysMemory = (((ms.dwTotalPhys+(16*1024*1024-1)) & ~(16*1024*1024-1) ) >> 20);


  • 相关阅读:
    [BZOJ 1698] 荷叶池塘
    [BZOJ 3132] 上帝造题的七分钟
    [JLOI2011] 飞行路线
    [Codeforces Round49F] Session in BSU
    [BZOJ 3036] 绿豆蛙的归宿
    CRC-16校验原理
    ubuntu下mysql的安装与配置
    【OpenCV】边缘检测:Sobel、拉普拉斯算子
    我对sobel算子的理解
    梯度算子(普通的+Robert + sobel + Laplace)
  • 原文地址:https://www.cnblogs.com/dyllove98/p/3181615.html
Copyright © 2011-2022 走看看