#include <algorithm>
#include <unordered_map>
#include <stdexcept>
{
size_t const preferred_mode_index{0};
int max_x = 0;
std::unordered_map<mg::DisplayConfigurationCardId, size_t> available_outputs_for_card;
conf.for_each_card(
{
});
conf.for_each_output(
{
available_outputs_for_card[conf_output.
card_id] > 0)
{
max_x += conf_output.
modes[preferred_mode_index].size.width.as_int();
--available_outputs_for_card[conf_output.
card_id];
}
else
{
conf_output.
used =
false;
}
});
}
{
size_t const preferred_mode_index{0};
bool done{false};
conf.for_each_output(
{
{
done = true;
}
else
{
conf_output.
used =
false;
}
});
}
namespace
{
{
}
}
bool with_alpha)
: base_policy{base_policy},
with_alpha{with_alpha}
{}
{
base_policy->apply_to(conf);
conf.for_each_output(
[&](graphics::UserDisplayConfigurationOutput& conf_output)
{
if (!conf_output.connected || !conf_output.used) return;
auto const& pos = find_if(conf_output.pixel_formats.begin(),
conf_output.pixel_formats.end(),
{
}
);
if (pos == conf_output.pixel_formats.end())
return;
conf_output.current_format = *pos;
});
}
{
[&](std::shared_ptr<mg::DisplayConfigurationPolicy> const& wrapped)
-> std::shared_ptr<mg::DisplayConfigurationPolicy>
{
auto layout_selector = wrapped;
layout_selector = std::make_shared<me::SideBySideDisplayConfigurationPolicy>();
layout_selector = std::make_shared<me::SingleDisplayConfigurationPolicy>();
return std::make_shared<me::PixelFormatSelector>(layout_selector, with_alpha);
});
}