MCPcopy Create free account
hub / github.com/LukasBanana/LLGL / main

Function main

examples/Cpp/HelloTriangle/Example.cpp:24–317  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

22#else
23#define EXIT(VAL) return (VAL)
24int main(int argc, char* argv[])
25#endif
26{
27 try
28 {
29 LLGL::Log::RegisterCallbackStd();
30
31 // Let the user choose an available renderer
32 LLGL::RenderSystemDescriptor rendererDesc;
33
34 #ifdef LLGL_OS_ANDROID
35 rendererDesc.moduleName = "OpenGLES3";
36 rendererDesc.androidApp = androidApp;
37 #else
38 const std::string rendererModule = GetSelectedRendererModule(argc, argv);
39 rendererDesc.moduleName = rendererModule;
40 #endif
41
42 //rendererDesc.flags = LLGL::RenderSystemFlags::DebugDevice;
43 LLGL::RenderingDebugger debugger;
44 rendererDesc.debugger = &debugger;
45
46 // Load render system module
47 LLGL::Report report;
48 LLGL::RenderSystemPtr renderer = LLGL::RenderSystem::Load(rendererDesc, &report);
49 if (!renderer)
50 {
51 LLGL::Log::Errorf("%s", report.GetText());
52 EXIT(1);
53 }
54
55 // Create swap-chain
56 const LLGL::Display* display = LLGL::Display::GetPrimary();
57 const std::uint32_t resScale = (display != nullptr ? static_cast<std::uint32_t>(display->GetScale()) : 1u);
58
59 LLGL::SwapChainDescriptor swapChainDesc;
60 {
61 swapChainDesc.resolution = { 800 * resScale, 600 * resScale };
62 swapChainDesc.depthBits = 0; // We don't need a depth buffer for this example
63 swapChainDesc.stencilBits = 0; // We don't need a stencil buffer for this example
64 #if ENABLE_MULTISAMPLING
65 swapChainDesc.samples = 8; // check if LLGL adapts sample count that is too high
66 #endif
67 }
68 LLGL::SwapChain* swapChain = renderer->CreateSwapChain(swapChainDesc);
69
70 // Print renderer information
71 const auto& info = renderer->GetRendererInfo();
72
73 LLGL::Log::Printf(
74 "Renderer: %s\n"
75 "Device: %s\n"
76 "Vendor: %s\n"
77 "Shading Language: %s\n"
78 "Swap Chain Format: %s\n"
79 "Depth/Stencil Format: %s\n"
80 "Resolution: %u x %u\n"
81 "Samples: %u\n",

Callers

nothing calls this directly

Calls 15

RegisterCallbackStdFunction · 0.85
ErrorfFunction · 0.85
PrintfFunction · 0.85
AppendAttributeMethod · 0.80
GetTextMethod · 0.65
CreateSwapChainMethod · 0.65
GetRendererInfoMethod · 0.65
GetColorFormatMethod · 0.65
GetDepthStencilFormatMethod · 0.65
GetResolutionMethod · 0.65
GetSamplesMethod · 0.65

Tested by

no test coverage detected