All Projects → HardCoreCodin → SlimApp

HardCoreCodin / SlimApp

Licence: MIT license
A minimalist andf platform-agnostic application layer for writing graphical applications, with a strong emphasis on simplicity and ease of use.

Programming Languages

c
50402 projects - #5 most used programming language
CMake
9771 projects

Projects that are alternatives of or similar to SlimApp

Consulo
Platform repository of Consulo. Plugins implementation hold in their repositories
Stars: ✭ 632 (+1815.15%)
Mutual labels:  platform, desktop-application
Mr.Dclutterer
A minimal looking cross-platform desktop application made with Electron that handles quick file aggregation and bulk renaming.
Stars: ✭ 32 (-3.03%)
Mutual labels:  desktop-application, minimalist
SlimTracin
Software ray tracer written from scratch in C that can run on CPU or GPU with emphasis on ease of use and trivial setup
Stars: ✭ 49 (+48.48%)
Mutual labels:  software-rendering, minimalist
winepak-sdk
Platform and SDK runtimes for winepak based applications
Stars: ✭ 46 (+39.39%)
Mutual labels:  platform
operatorfabric-core
Main operatorfabric program
Stars: ✭ 29 (-12.12%)
Mutual labels:  platform
actlist-plugin
🔧 Actlist Plugin library to development and debugging.
Stars: ✭ 14 (-57.58%)
Mutual labels:  platform
untheme
A blank WordPress theme for developers.
Stars: ✭ 82 (+148.48%)
Mutual labels:  minimalist
akka-cluster-minimal
Akka Cluster - absolute minimal
Stars: ✭ 16 (-51.52%)
Mutual labels:  minimalist
ticktack-network
ticktack.im
Stars: ✭ 35 (+6.06%)
Mutual labels:  platform
CleanUI
Android library to create beautiful, clean and minimal UIs.
Stars: ✭ 19 (-42.42%)
Mutual labels:  minimalist
xv
❌ ✔️ zero-config test runner for simple projects
Stars: ✭ 588 (+1681.82%)
Mutual labels:  minimalist
emfy
A dark and sleek Emacs setup for general purpose editing and programming
Stars: ✭ 843 (+2454.55%)
Mutual labels:  minimalist
GapFlyt
GapFlyt: Active Vision Based Minimalist Structure-less Gap Detection For Quadrotor Flight
Stars: ✭ 30 (-9.09%)
Mutual labels:  minimalist
streamingfast
The dfuse Blockchain Data Platform
Stars: ✭ 41 (+24.24%)
Mutual labels:  platform
Portal-Raycaster
A software portal rendering game engine
Stars: ✭ 41 (+24.24%)
Mutual labels:  software-rendering
Floral
Minimal design gallery app for Android.
Stars: ✭ 23 (-30.3%)
Mutual labels:  minimalist
modern-login
A simple login form built with PyQt 5
Stars: ✭ 35 (+6.06%)
Mutual labels:  desktop-application
Ephesus
Ephesus is a minimalist Jekyll theme, designed for personal blog use.
Stars: ✭ 40 (+21.21%)
Mutual labels:  minimalist
Desktop-Applications-JavaFX
JavaFX Open Source Projects
Stars: ✭ 69 (+109.09%)
Mutual labels:  desktop-application
DataTier.Net
DataTier.Net is an Entity Framework alternative that makes it simple to create stored procedure powered data tiers.
Stars: ✭ 18 (-45.45%)
Mutual labels:  desktop-application

SlimApp_logo

A minimalist(*) and platform-agnostic application layer for writing graphical applications.
A bare-bone application executable on Windows measures at around 13 KB(!)
Available as either a single header file or a directory of headers (a "unity build" setup).
Can be complied in either C or C++.

Examples of projects using this one are SlimEngine and SlimTracin.

Architecture:

The platform layer only uses operating-system headers (no standard library used).
The application layer itself has no dependencies whatsoever.
It is just a library that the platform layer uses - it has no knowledge of the platform.

More details on this architecture here.

Usage:

The single header file variant includes everything.
Otherwise, specific headers can be included from the directory variant.
Only the entry point needs to be defined (see example below).

SlimApp comes with pre-configured CMake targets for all examples.
For manual builds on Windows, the typical system libraries need to be linked
(winmm.lib, gdi32.lib, shell32.lib, user32.lib) and the SUBSYSTEM needs to be set to WINDOWS

All examples were tested in all combinations of:
Source: Single header file (SlimApp.h), Directory of headers (specific includes)
Compiler: MSVC, MinGW, CLang
Language: C, C++
CPU Arch: x86, x64

Features:

SlimApp aims to provide only the absolute bare necessities needed for a windowed application.
For a more feature rich base for a 2D/3D graphical application, see: SlimEngine.

Well documented example applications cover the features:

  • Bare-bone application (one-liner): Well-behaved window (can be resized minimized/maximized and closed)

    1_app 1_app_code

  • Overridable window defaults: Initial dimensions and title.

    2_defaults 2_defaults_code

  • Timers and window-title control:

    3_time 3_time_code

  • Drawable window content: Basic shape drawing (Lines, rectangles, triangles and circles)

    4_shapes 4_shapes_code

  • Text: String and number drawing:

    5_text 5_text_code

  • Mouse: Buttons (+wheel), cursor position/movement and 'raw' mouse input (captured outside the window).

    6_mouse 6_mouse_code

  • Keyboard: General key tracking + built-in tracking of control keys status (Ctrl, Alt, Shift, Space)

    7_keyboard 7_keyboard_code

  • Memory: Arena allocator can be used for heap memory, then bound to the global app instance.

    8_memory 8_memory_code

  • File: Opening/closing and reading/writing files in a platform-agnostic way (using os-specific API).

    9_files 9_files_code

*All input capturing for mouse and keyboard is extendable through callbacks

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].