All Projects → skui-org → Skui

skui-org / Skui

Licence: mit
Skia-based C++ UI framework

Programming Languages

cxx
24 projects

Projects that are alternatives of or similar to Skui

Tprpix
a Cross-Platform, 2D Survival Sandbox Game Project. Based on C++17/cmake/OpenGL/SQLite3.
Stars: ✭ 448 (+105.5%)
Mutual labels:  cmake, opengl, graphics, cross-platform
Dearpygui
Dear PyGui: A fast and powerful Graphical User Interface Toolkit for Python with minimal dependencies
Stars: ✭ 6,631 (+2941.74%)
Mutual labels:  graphics, cross-platform, gui
Libagar
Cross-Platform GUI Toolkit (stable)
Stars: ✭ 212 (-2.75%)
Mutual labels:  opengl, cross-platform, gui
Nitroshare Desktop
Network file transfer application for Windows, OS X, & Linux
Stars: ✭ 1,150 (+427.52%)
Mutual labels:  cmake, cross-platform, gui
Ultralight
Next-generation HTML renderer for apps and games
Stars: ✭ 3,585 (+1544.5%)
Mutual labels:  cmake, opengl, cross-platform
Magnum
Lightweight and modular C++11 graphics middleware for games and data visualization
Stars: ✭ 3,728 (+1610.09%)
Mutual labels:  cmake, opengl, graphics
Sfml
Simple and Fast Multimedia Library
Stars: ✭ 7,316 (+3255.96%)
Mutual labels:  opengl, graphics, cross-platform
Methanekit
🎲 Modern 3D graphics made simple with cross-platform C++17 meta-API on top of DirectX 12 & Metal (Vulkan is coming)
Stars: ✭ 197 (-9.63%)
Mutual labels:  cmake, graphics, cross-platform
Raz
Modern & multiplatform game engine in C++17
Stars: ✭ 161 (-26.15%)
Mutual labels:  cmake, opengl, cross-platform
Borealis
Hardware accelerated, controller and TV oriented UI library for PC and Nintendo Switch (libnx).
Stars: ✭ 135 (-38.07%)
Mutual labels:  opengl, cross-platform, gui
Ofelia
A real-time cross-platform creative coding tool for multimedia development
Stars: ✭ 269 (+23.39%)
Mutual labels:  opengl, graphics, cross-platform
Engine
A basic cross-platform 3D game engine
Stars: ✭ 208 (-4.59%)
Mutual labels:  cmake, opengl, cross-platform
Arxlibertatis
Cross-platform port of Arx Fatalis, a first-person role-playing game
Stars: ✭ 602 (+176.15%)
Mutual labels:  cmake, opengl, cross-platform
Klayge
KlayGE is a cross-platform open source game engine with plugin-based architecture.
Stars: ✭ 1,646 (+655.05%)
Mutual labels:  opengl, graphics, cross-platform
Glitter
Dead Simple OpenGL
Stars: ✭ 2,040 (+835.78%)
Mutual labels:  cmake, opengl, graphics
Gtk Fortran
A GTK / Fortran binding
Stars: ✭ 171 (-21.56%)
Mutual labels:  graphics, cross-platform, gui
Csfml
Official binding of SFML for C
Stars: ✭ 211 (-3.21%)
Mutual labels:  opengl, graphics
Gwork
Skinnable GUI with useful widget collection. Fork of GWEN.
Stars: ✭ 179 (-17.89%)
Mutual labels:  cross-platform, gui
Openscenegraph
OpenSceneGraph git repository
Stars: ✭ 2,321 (+964.68%)
Mutual labels:  cmake, opengl
Tinywindow
a cross platform (Linux and Windows) OpenGL window library in a single header
Stars: ✭ 175 (-19.72%)
Mutual labels:  opengl, cross-platform

Introduction

UI framework that uses Skia as a low-level drawing toolkit. It uses the newest features of the C++ Standard library (currently targetting C++17).

Status

SkUI is in a pre-release development phase, and the API is definitely not stable.

Build Status Build status codecov Codacy Badge

Operating System Compiler Supported Notes
Windows Visual Studio 2019 ✔️
Windows VS 2019 Clang/LLVM 8.0+ ✔️
Windows Visual Studio 2017 ✔️
Windows VS 2017 Clang/LLVM 6.0+ ✔️
Windows MinGW-w64 GCC 7.3+ ✔️ Requires usable std::filesystem implementation.
Windows MinGW-w64 Clang 6.0+ ✔️ Requires usable std::filesystem implementation.
Windows Intel C++ 19 Lacks required C++17 features.
Linux GCC 7.3+ ✔️
Linux Clang 6.0+ ✔️
Linux Intel C++ 19 Lacks required C++17 features.
Mac OS X 10.15+ XCode 11.6+ Clang 🔜 Missing implementation of core window/application classes.
Mac OS X 10.15+ Homebrew GCC 7.3+ 🔜 Missing implementation of core window/application classes.
Mac OS X 10.15+ Homebrew Clang 6.0+ 🔜 Missing implementation of core window/application classes.

Components

SkUI is subdivided in several modules which can depend on other modules but shouldn't become a dependency mess:

  • Core: basic functionality, including signals, properties, strings, paths, application, os abstraction...
  • CSS: CSS parser built on top of Boost.Spirit X3.
  • Graphics: graphical functionality such as canvases, contexts, shapes, text, ...
  • GUI: abstraction of platform-specific UI code, including event loops, windows, input, ...
  • OpenGL: abstraction of platform-specific OpenGL initialization code, header differences, ...
  • ...
  • Examples: example programs showing SkUI features
  • Tests: unit tests for various components to ensure correct and expected behaviour now and in the future.

This list will grow (and change) as the library's design takes shape.

How to get started

Clone this repository

git clone https://github.com/skui-org/skui.git

After cloning this repository, make sure the submodules are up to date

cd skui
git submodule update --init --recursive

Create and navigate to a seperate build directory, e.g.

mkdir ../skui-build
cd ../skui-build

Run CMake (here, the ninja build system is used, but any generator should work fine)

cmake ../skui -G Ninja

This step should inform you of any missing dependencies. Then build

cmake --build .

And run the tests to ensure nothing is wrong

ctest

Roadmap

0.0.x

  • establish a logical basis for UI functionality, including:
    • signals, properties, strings
    • basic drawing functionality
    • event handling
    • basic UI controls and layout engine
    • Application window and event abstraction
      • Windows
      • Linux
      • OS X
      • ...

0.1.x

  • OS Notification system implementation
    • taskbar icon
    • notifications
    • ...
  • Improve core logic and functionality.
  • OS theming of all controls and windows

0.x.x

  • More application logic (model/views, ...)
  • process handling
  • advanced drawing
  • advanced UI controls, including:
    • scrollbars
    • tables, lists, etc.
  • File I/O systems?
  • Add missing unit tests
  • Add missing documentation
  • ...

1.x.x

  • Stability and features of a basic UI framework
  • Improve platform support
  • Solve all them bugs.
  • Correct all them documentation typos.

x.x.x

  • Supreme world domination through superiour benevolent A.I.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].