Use std::any_of to check all surfaces in RenderDevice::choose_device()

This commit is contained in:
2025-05-09 17:09:04 +10:00
parent b25e5936e2
commit ccd5306636

View File

@@ -8,6 +8,7 @@
#include <nova/render/render_device.h> #include <nova/render/render_device.h>
#include <nova/render/render_driver.h> #include <nova/render/render_driver.h>
#include <algorithm>
#include <limits> #include <limits>
using namespace Nova; using namespace Nova;
@@ -24,13 +25,9 @@ u32 RenderDevice::choose_device(RenderDriver* p_driver, std::span<const SurfaceI
auto& device = p_driver->get_device(i); auto& device = p_driver->get_device(i);
u32 score = 1; u32 score = 1;
for (SurfaceID surface : p_surfaces) { if (!std::all_of(p_surfaces.begin(), p_surfaces.end(), [&](SurfaceID surface) {
if (!p_driver->get_device_supports_surface(i, surface)) { return p_driver->get_device_supports_surface(i, surface);
score = 0; })) {
break;
}
}
if (score == 0) {
continue; continue;
} }