MCPcopy Create free account
hub / github.com/MethanePowered/MethaneKit / HelloTriangleApp

Class HelloTriangleApp

Apps/01-HelloTriangle/HelloTriangleApp.cpp:39–119  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

37
38using GraphicsApp = Graphics::App<HelloTriangleFrame>;
39class HelloTriangleApp final // NOSONAR - destructor required
40 : public GraphicsApp
41{
42private:
43 Rhi::RenderState m_render_state;
44
45public:
46 HelloTriangleApp()
47 : GraphicsApp(
48 []() {
49 Graphics::CombinedAppSettings settings = Tutorials::GetGraphicsTutorialAppSettings(
50 "Methane Hello Triangle", Tutorials::AppOptions::GetDefaultWithColorOnly());
51 settings.graphics_app.SetScreenPassAccess({});
52 return settings;
53 }(),
54 "Tutorial demonstrating colored triangle rendering with Methane Kit.")
55 { }
56
57 ~HelloTriangleApp() override
58 {
59 WaitForRenderComplete();
60 }
61
62 void Init() override
63 {
64 GraphicsApp::Init();
65
66 m_render_state = GetRenderContext().CreateRenderState(
67 Rhi::RenderState::Settings
68 {
69 .program = GetRenderContext().CreateProgram(
70 Rhi::Program::Settings
71 {
72 .shader_set = Rhi::Program::ShaderSet
73 {
74 { Rhi::ShaderType::Vertex, { Data::ShaderProvider::Get(), { "HelloTriangle", "TriangleVS" } } },
75 { Rhi::ShaderType::Pixel, { Data::ShaderProvider::Get(), { "HelloTriangle", "TrianglePS" } } },
76 },
77 .attachment_formats = GetScreenRenderPattern().GetAttachmentFormats()
78 }
79 ),
80 .render_pattern = GetScreenRenderPattern()
81 }
82 );
83 m_render_state.SetName("Triangle Render State");
84
85 const Rhi::CommandQueue& cmd_queue = GetRenderContext().GetRenderCommandKit().GetQueue();
86 for (HelloTriangleFrame& frame : GetFrames())
87 {
88 frame.render_cmd_list = cmd_queue.CreateRenderCommandList(frame.screen_pass);
89 frame.render_cmd_list.SetName(fmt::format("Render Triangle {}", frame.index));
90 frame.execute_cmd_list_set = Rhi::CommandListSet({ frame.render_cmd_list.GetInterface() }, frame.index);
91 }
92
93 GraphicsApp::CompleteInitialization();
94 }
95
96 bool Render() override

Callers 1

mainFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected