Use std::any_of to check all surfaces in RenderDevice::choose_device()
This commit is contained in:
@@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user