MCPcopy Create free account
hub / github.com/OpenImageDebugger/OpenImageDebugger / buffer_update

Method buffer_update

src/visualization/stage.cpp:134–176  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

132}
133
134bool Stage::buffer_update(const BufferParams& params) {
135 const auto buffer_it = all_game_objects.find("buffer");
136 if (buffer_it == all_game_objects.end() || !buffer_it->second)
137 [[unlikely]] {
138 std::cerr << "[Error] Buffer game object not found" << std::endl;
139 return false;
140 }
141
142 const auto& [buffer_name, buffer_shared_ptr] = *buffer_it;
143 const auto buffer_obj = buffer_shared_ptr.get();
144 const auto buffer_component_opt =
145 buffer_obj->get_component<Buffer>("buffer_component");
146
147 if (!buffer_component_opt.has_value()) [[unlikely]] {
148 std::cerr << "[Error] Buffer component not found" << std::endl;
149 return false;
150 }
151
152 auto& buffer_component = buffer_component_opt->get();
153 buffer_component.configure(params);
154
155 for (const auto& game_obj_it : all_game_objects | std::views::values) {
156 const auto game_obj = game_obj_it.get();
157 game_obj->set_stage(*this);
158 for (const auto& comp :
159 game_obj->get_components() | std::views::values) {
160 if (!comp->buffer_update()) {
161 return false;
162 }
163 }
164 }
165
166 for (const auto& game_obj_it : all_game_objects | std::views::values) {
167 for (const auto& comp :
168 game_obj_it.get()->get_components() | std::views::values) {
169 if (!comp->post_buffer_update()) {
170 return false;
171 }
172 }
173 }
174
175 return true;
176}
177
178std::optional<std::reference_wrapper<GameObject>>
179Stage::get_game_object(const std::string& tag) {

Callers 1

syncMethod · 0.45

Calls 4

endMethod · 0.80
configureMethod · 0.80
set_stageMethod · 0.80
post_buffer_updateMethod · 0.45

Tested by

no test coverage detected