ladybird/Ladybird
Matthew Costa 47d7f1efec Ladybird: Apply inverse image scaling to ensure WebView renders at 1:1
On high-dpi systems QT will automatically scale up painting operations.
This results in an ugly blurry browser window surrounded by a nicely
scaled window frame. This patch applies an inverse scale to the WebView
widget, ensuring the painting and mouse events are lined up and draw
with a 1:1 pixel ratio with respect to the display's device pixels.
2022-12-25 07:58:58 -07:00
..
cmake Ladybird/Meta: Convert to CMake build 2022-12-25 07:58:58 -07:00
.gitignore Ladybird/Meta: Convert to CMake build 2022-12-25 07:58:58 -07:00
BrowserWindow.cpp Ladybird: Don't set a fixed height on the location edit 2022-12-25 07:58:58 -07:00
BrowserWindow.h Ladybird: Show the web page title in the window titlebar :^) 2022-12-25 07:58:58 -07:00
CMakeLists.txt Ladybird/Meta: Convert to CMake build 2022-12-25 07:58:58 -07:00
main.cpp Ladybird: Add a location bar and allow navigating to new pages :^) 2022-12-25 07:58:58 -07:00
README.md Ladybird/Meta: Add libgl1-mesa-dev to build dependencies 2022-12-25 07:58:58 -07:00
WebView.cpp Ladybird: Apply inverse image scaling to ensure WebView renders at 1:1 2022-12-25 07:58:58 -07:00
WebView.h Ladybird: Apply inverse image scaling to ensure WebView renders at 1:1 2022-12-25 07:58:58 -07:00

Ladybird Web Browser

The Ladybird Web Browser is a browser using the SerenityOS LibWeb engine with a Qt GUI.

Build Prerequisites

Qt6 development packages and a c++20-enabled compiler are required. On Debian/Ubuntu required packages include, but are not limited to:

sudo apt install build-essential cmake libgl1-mesa-dev ninja-build qt6-base-dev qt6-tools-dev-tools

For the c++ compiler, gcc-11 or clang-13 are required at a minimum for c++20 support.

For Ubuntu 20.04 and above, ensure that the Qt6 Wayland packages are available:

sudo apt install qt6-wayland

Build steps

Basic workflow, using serenity source dir cloned from github:

cmake -GNinja -B Build
cmake --build Build
ninja -C Build run

Advanced workflow, using pre-existing serenity checkout.

If you previously didn't set SERENITY_SOURCE_DIR, probably want to blast the Build directory before doing this:

cmake -GNinja -B Build -DSERENITY_SOURCE_DIR=/path/to/serenity
ninja -C Build run

To automatically run in gdb:

ninja -C Build debug

To run without ninja rule:

# or your existing serenity checkout /path/to/serenity
export SERENITY_SOURCE_DIR=${PWD}/Build/serenity
./Build/ladybird