C++ library to modify display devices. https://docs.lizardbyte.dev/projects/libdisplaydevice
  • C++ 98.4%
  • CMake 1.4%
  • C 0.2%
Find a file
renovate[bot] 94eb6f7e8c
chore(deps): update actions/setup-python action to v7 (#285)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-07-20 12:59:47 -04:00
.github chore(deps): update actions/setup-python action to v7 (#285) 2026-07-20 12:59:47 -04:00
.run chore: use lizardbyte-common in c++ (#281) 2026-06-30 18:21:59 -04:00
cmake fix(boost): do not link to ALIAS target (#128) 2024-12-17 13:42:01 +00:00
docs docs: enable warn if undocumented (#271) 2026-06-10 13:46:12 -04:00
src fix(macOS): emplace_back constructor fix; display_device interface factory (#280) 2026-06-30 19:09:08 -04:00
tests fix(macOS): emplace_back constructor fix; display_device interface factory (#280) 2026-06-30 19:09:08 -04:00
third-party chore: use lizardbyte-common in c++ (#281) 2026-06-30 18:21:59 -04:00
.clang-format chore: update global workflows (#168) 2025-08-30 22:18:29 -04:00
.gitignore build(deps): bump third-party/doxyconfig from 671b494 to 6d145da (#87) 2024-08-07 21:30:04 +00:00
.gitmodules chore: use lizardbyte-common in c++ (#281) 2026-06-30 18:21:59 -04:00
.readthedocs.yaml build(deps): bump third-party/doxyconfig from 671b494 to 6d145da (#87) 2024-08-07 21:30:04 +00:00
.sonarcloud.properties chore: add sonar property files (#284) 2026-07-13 10:08:05 -04:00
AGENTS.md docs: enable warn if undocumented (#271) 2026-06-10 13:46:12 -04:00
CMakeLists.txt ci(coverage): fix gcovr report generation (#118) 2024-10-13 11:31:14 -04:00
LICENSE docs: change license to MIT (#244) 2026-05-26 09:34:59 -04:00
README.md chore: use lizardbyte-common in c++ (#281) 2026-06-30 18:21:59 -04:00
renovate.json chore: update global workflows (#239) 2026-05-15 18:35:45 -04:00
sonar-project.properties chore: add sonar property files (#284) 2026-07-13 10:08:05 -04:00

LizardByte icon

libdisplaydevice

C++ library to modify display devices.

GitHub stars GitHub Workflow Status (CI) Codecov SonarCloud

Overview

About

LizardByte has the full documentation hosted on Read the Docs.

libdisplaydevice is a library that provides a common interface for interacting with display devices. It is intended to be used by applications that need to interact with displays, such as screen capture software, remote desktop software, and video players.

Windows and macOS are currently supported. Support for Linux is planned for the future.

🛠️ Build

Clone

Ensure git is installed and run the following:

git clone https://github.com/lizardbyte/libdisplaydevice.git --recurse-submodules
cd libdisplaydevice
mkdir -p build

Windows

First, you need to install MSYS2.

For AMD64 startup "MSYS2 UCRT64" (or for ARM64 startup "MSYS2 CLANGARM64") then execute the following commands.

Update all packages

pacman -Syu

Set toolchain variable

For UCRT64:

export TOOLCHAIN="ucrt-x86_64"

For CLANGARM64:

export TOOLCHAIN="clang-aarch64"

Install dependencies

dependencies=(
  "doxygen"
  "mingw-w64-${TOOLCHAIN}-boost"
  "mingw-w64-${TOOLCHAIN}-cmake"
  "mingw-w64-${TOOLCHAIN}-graphviz"
  "mingw-w64-${TOOLCHAIN}-ninja"
  "mingw-w64-${TOOLCHAIN}-nlohmann-json"
  "mingw-w64-${TOOLCHAIN}-nodejs"
  "mingw-w64-${TOOLCHAIN}-toolchain"
)
pacman -S "${dependencies[@]}"

Build

cmake -G Ninja -B build -S .
ninja -C build

Test

./build/tests/test_libdisplaydevice

Support

Our support methods are listed in our LizardByte Docs.

[TOC]