Пример #1
0
// ------------------------------------------------------------------------------------------------
void PrintHelp()
{
    console::log("apitest - a simple framework for testing various solutions to different rendering problems.");
    console::log("Usage");
    console::log("");
    console::log("  apitest [options]\n");
    console::log("");
    console::log("Options");
    for (int i = 0; gClOpts[i].OptionShort != nullptr; ++i) {
        console::log("  %s, %-22s %s", gClOpts[i].OptionShort, gClOpts[i].OptionLong, gClOpts[i].HelpText);
    }

    {
        const char* kTableEntry = "  %-27s%-20s";
        console::log("");
        console::log("Problems & Solutions");
        console::log(kTableEntry, "Problems", "Solutions");
        ProblemFactory problemsAndSolutions(true);
        auto allProblems = problemsAndSolutions.GetProblems();

        for (auto probIt = allProblems.cbegin(); probIt != allProblems.cend(); ++probIt) {
            console::log("");
            Problem* prob = (*probIt);
            // console::log(kTableFormat, prob->GetName().c_str(), "");

            auto solutions = problemsAndSolutions.GetSolutions(prob, nullptr);
            for (auto solnIt = solutions.cbegin(); solnIt != solutions.cend(); ++solnIt) {
                Solution* soln = (*solnIt);
                console::log(kTableEntry, prob->GetName().c_str(), soln->GetName().c_str());
            }
        }
        console::log("");
    }

    {
        const char* kTableEntry = "  %-12s%-20s";

        console::log("");
        console::log("APIs (use the short name on the command line)");
        console::log(kTableEntry, "Short Name", "Long Name");

        // This isn't ideal. But it'll work for now.
        console::log(kTableEntry, GfxApiOpenGLGeneric::SGetShortName(), GfxApiOpenGLGeneric::SGetLongName());
        console::log(kTableEntry, GfxApiOpenGLCore::SGetShortName(),    GfxApiOpenGLCore::SGetLongName());
        #if WITH_D3D11
            console::log(kTableEntry, GfxApiDirect3D11::SGetShortName(), GfxApiDirect3D11::SGetLongName());
        #endif
    }
}