20 [[nodiscard]]
inline DISPLAYCONFIG_DESKTOP_IMAGE_INFO
getDesktopImageInfo(
const DISPLAYCONFIG_MODE_INFO &info) {
21 constexpr std::size_t union_offset {offsetof(DISPLAYCONFIG_MODE_INFO, targetMode)};
22 static_assert(
sizeof(DISPLAYCONFIG_MODE_INFO) >= union_offset +
sizeof(DISPLAYCONFIG_DESKTOP_IMAGE_INFO));
24 DISPLAYCONFIG_DESKTOP_IMAGE_INFO desktop_image_info {};
25 std::memcpy(&desktop_image_info,
reinterpret_cast<const std::byte *
>(&info) + union_offset,
sizeof(desktop_image_info));
27 return desktop_image_info;
35 inline void setDesktopImageInfo(DISPLAYCONFIG_MODE_INFO &info,
const DISPLAYCONFIG_DESKTOP_IMAGE_INFO &desktop_image_info) {
36 constexpr std::size_t union_offset {offsetof(DISPLAYCONFIG_MODE_INFO, targetMode)};
37 static_assert(
sizeof(DISPLAYCONFIG_MODE_INFO) >= union_offset +
sizeof(DISPLAYCONFIG_DESKTOP_IMAGE_INFO));
39 std::memcpy(
reinterpret_cast<std::byte *
>(&info) + union_offset, &desktop_image_info,
sizeof(desktop_image_info));
void setDesktopImageInfo(DISPLAYCONFIG_MODE_INFO &info, const DISPLAYCONFIG_DESKTOP_IMAGE_INFO &desktop_image_info)
Sets desktop image metadata on a DisplayConfig mode record.
Definition display_config.h:35
DISPLAYCONFIG_DESKTOP_IMAGE_INFO getDesktopImageInfo(const DISPLAYCONFIG_MODE_INFO &info)
Gets desktop image metadata from a DisplayConfig mode record.
Definition display_config.h:20