当前位置: 首页>>代码示例>>C++>>正文


C++ ObjectEntry::readNumber方法代码示例

本文整理汇总了C++中ObjectEntry::readNumber方法的典型用法代码示例。如果您正苦于以下问题:C++ ObjectEntry::readNumber方法的具体用法?C++ ObjectEntry::readNumber怎么用?C++ ObjectEntry::readNumber使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在ObjectEntry的用法示例。


在下文中一共展示了ObjectEntry::readNumber方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: loadProjectFromFile

bool PolycodeProject::loadProjectFromFile() {

    if(!configFile.loadFromXML(projectFile)) {
        return false;
    }

    if(!configFile.root.readString("entryPoint", &(data.entryPoint))) {
        data.entryPoint = "Source/Main.lua";
        configFile.root.addChild("entryPoint", "Source/Main.lua");
    }

    if(!configFile.root.readInt("defaultWidth", &(data.defaultWidth))) {
        data.defaultWidth = 640;
        configFile.root.addChild("defaultWidth", 640);
    }

    if(!configFile.root.readInt("defaultHeight", &(data.defaultHeight))) {
        data.defaultHeight = 480;
        configFile.root.addChild("defaultHeight", 480);
    }

    if(!configFile.root.readString("textureFiltering", &(data.filteringMode))) {
        data.filteringMode = "linear";
        configFile.root.addChild("textureFiltering", String("linear"));
    }


    if(!configFile.root.readBool("vSync", &(data.vSync))) {
        data.vSync = false;
        configFile.root.addChild("vSync", false);
    }


    if(!configFile.root.readInt("antiAliasingLevel", &(data.aaLevel))) {
        data.aaLevel = 0;
        configFile.root.addChild("antiAliasingLevel", 0);
    }


    if(!configFile.root.readInt("anisotropyLevel", &(data.anisotropy))) {
        data.anisotropy = 0;
        configFile.root.addChild("anisotropyLevel", 0);
    }

    if(!configFile.root.readInt("frameRate", &(data.frameRate))) {
        data.frameRate = 60;
        configFile.root.addChild("frameRate", 60);
    }

    data.modules.clear();
    if(configFile.root["modules"]) {
        for(int i=0; i < configFile.root["modules"]->length; i++) {
            ObjectEntry *module = (*configFile.root["modules"])[i];

            if(module->type != ObjectEntry::STRING_ENTRY) continue;

            data.modules.push_back(module->stringVal);
            CoreServices::getInstance()->getResourceManager()->addArchive("Standalone/Modules/"+module->stringVal+"/API");

        }
    }

    data.fonts.clear();
    if(configFile.root["fonts"]) {
        for(int i=0; i < configFile.root["fonts"]->length; i++) {
            ObjectEntry *font = (*configFile.root["fonts"])[i];

            String fontName, fontPath;
            if(font->readString("name", &fontName) && font->readString("path", &fontPath)) {
                ProjectFontData fontData = ProjectFontData(fontName, fontPath);
                data.fonts.push_back(fontData);
            }
        }
    }

    if(configFile.root["backgroundColor"]) {
        ObjectEntry *color = configFile.root["backgroundColor"];

        bool haveAllColors = 1;
        haveAllColors &= color->readNumber("red", &(data.backgroundColorR));
        haveAllColors &= color->readNumber("green", &(data.backgroundColorG));
        haveAllColors &= color->readNumber("blue", &(data.backgroundColorB));

        if(!haveAllColors) {
            data.backgroundColorR = 0.0;
            data.backgroundColorG = 0.0;
            data.backgroundColorB = 0.0;

            if(!color) color = configFile.root.addChild("backgroundColor");
            color->addChild("red", 0.0);
            color->addChild("green", 0.0);
            color->addChild("blue", 0.0);
        }
    }

    return true;
}
开发者ID:CIB,项目名称:Polycode,代码行数:97,代码来源:PolycodeProject.cpp


注:本文中的ObjectEntry::readNumber方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。