/libdisplaydevice

C++ library to modify display devices

Primary LanguageC++GNU Affero General Public License v3.0AGPL-3.0

Overview

GitHub Workflow Status (CI) Codecov GitHub stars

About

LizardByte has the full documentation hosted on Read the Docs.

libdisplaydevice is a WIP 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.

Initial support is planned for Windows, but could be expanded to other platforms in 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

Requirements

First you need to install MSYS2, then startup "MSYS2 UCRT64" and execute the following commands.

Update all packages:

pacman -Syu

Install dependencies:

pacman -S \
  doxygen \
  mingw-w64-ucrt-x86_64-binutils \
  mingw-w64-ucrt-x86_64-cmake \
  mingw-w64-ucrt-x86_64-graphviz \
  mingw-w64-ucrt-x86_64-ninja \
  mingw-w64-ucrt-x86_64-toolchain \
  mingw-w64-ucrt-x86_64-boost \
  mingw-w64-ucrt-x86_64-nlohmann-json

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.