All Projects → milostosic → rapp

milostosic / rapp

Licence: BSD-2-Clause license
Cross-platform entry point library

Programming Languages

C++
36643 projects - #6 most used programming language
Objective-C++
1391 projects

Projects that are alternatives of or similar to rapp

InputSimulatorStandard
Input Simulator Standard
Stars: ✭ 54 (-5.26%)
Mutual labels:  input, mouse
LowLevelInput.Net
A thread safe and event driven LowLevelMouse and LowLevelKeyboard Hook
Stars: ✭ 32 (-43.86%)
Mutual labels:  input, mouse
Fiber Job System
Multi-Threaded Job System using Fibers
Stars: ✭ 121 (+112.28%)
Mutual labels:  job-scheduler, multithreading
bigger
bigg (bgfx + imgui + glfw + glm) + utils
Stars: ✭ 101 (+77.19%)
Mutual labels:  bgfx, imgui
Enigo
Cross platform input simulation in Rust
Stars: ✭ 254 (+345.61%)
Mutual labels:  input, mouse
Unity-Multithreaded-Job-System
A multithreaded job system for Unity3d
Stars: ✭ 23 (-59.65%)
Mutual labels:  job-scheduler, multithreading
Key Mapper
🎮 An easy to use tool to change the mapping of your input device buttons.
Stars: ✭ 184 (+222.81%)
Mutual labels:  input, mouse
openinput
Open source firmware for input devices
Stars: ✭ 43 (-24.56%)
Mutual labels:  input, mouse
Gainput
Cross-platform C++ input library supporting gamepads, keyboard, mouse, touch
Stars: ✭ 636 (+1015.79%)
Mutual labels:  input, mouse
Unswitch
🕹 A tiny event handler for Switch controllers!
Stars: ✭ 574 (+907.02%)
Mutual labels:  input, controller
bgfx-python
Python 3.7+ wrapper for the BGFX library. 🐍
Stars: ✭ 99 (+73.68%)
Mutual labels:  bgfx, imgui
Pc Optimization Hub
collection of various resources devoted to performance and input lag optimization
Stars: ✭ 55 (-3.51%)
Mutual labels:  input, mouse
RavEngine
A fast, easy to use C++20 3D game library for modern computers
Stars: ✭ 122 (+114.04%)
Mutual labels:  bgfx, multithreading
Taskscheduler
Cross-platform, fiber-based, multi-threaded task scheduler designed for video games.
Stars: ✭ 402 (+605.26%)
Mutual labels:  job-scheduler, multithreading
Vxr
General purpose engine written in C++ with emphasis on materials rendering (PBR, clear coat, anisotropy, iridescence)
Stars: ✭ 181 (+217.54%)
Mutual labels:  imgui, multithreading
input-event
🎹 Read and parse input device(like mouse, keyboard, joystick and IR-Remote)'s event data.
Stars: ✭ 45 (-21.05%)
Mutual labels:  input, mouse
Inputsystem
An efficient and versatile input system for Unity.
Stars: ✭ 1,013 (+1677.19%)
Mutual labels:  input, mouse
Neatinput
A .NET standard project which aims to make keyboard and mouse input monitoring easy on Windows and eventually Linux.
Stars: ✭ 89 (+56.14%)
Mutual labels:  input, mouse
Wickedengine
3D engine focusing on modern rendering techniques and performance.
Stars: ✭ 3,148 (+5422.81%)
Mutual labels:  input
Pedalino
Smart wireless MIDI foot controller for guitarists and more.
Stars: ✭ 105 (+84.21%)
Mutual labels:  controller

Build Status Build status License

rapp is a library that provides cross-platform application entry point and additional functionality. rapp is heavily based on bgfx examples entry point code that can be found here. Graphics code is still bgfx based but..

...dependecy on bx and bgfx has been removed by aggressively copying code and by a special feature of build system that allows to have the same library in a 'solution' with different configurations.
To clarify, in the screenshot below first sample (command line) links against rapp and rbase while the second one (graphics) links against rapp_bgfx, rbase, bx, bimg and bgfx - this is all automated.

Thanks to multiple configurations per project feature of build, script taking care of this is very short and can be seen here, basically it just enables a library wide define.

Features

rapp currently has the following functionality:

  • Applications written as classes with init/shutdown/suspend/resume functionality
  • Command line (tools, unit tests, etc.) or graphics applications (games, etc.)
  • Custom commands
  • Input controllers (mouse, keyboard, gamepad, etc.) with input binding callbacks and debug visualizations
  • Ability to run code on main/message loop thread
  • Job scheduler with job stealing for fine grained parallelism
  • ImGui and NanoVG integration
  • Quake like console - ImGui based
  • Multiple applications in one binary
  • Window functions

Here's a screenshot of a bgfx sample showing input debugging, ImGui dialog and Quake like console as well as NanoVG shape (eyes):

Platform support

Input (KMG) Threading Console Graphics
Windows ✓✓✓
Xbox One ✓✓✓
PlayStation 4 ✓✓✓
Linux ✓XX
Android XXX ?
OSX ✓✓X
Emscripten ✓✓✓ X

✓ - Working
X - Not yet implemented
? - Not supported

Platforms with partial implementations or not tested: iOS, UWP, FreeBSD
Input (KMG) stands for Keyboard, Mouse and Gamepad

Source Code

You can get the latest source code by cloning it from github:

  git clone https://github.com/milostosic/rapp.git 

Dependencies

Dependencies can be obtained by cloning the following repositories:

git clone https://github.com/milostosic/build.git
git clone https://github.com/milostosic/rbase.git
git clone https://github.com/milostosic/enkiTS.git

To build samples based on bgfx, clone the following repositories:

git clone https://github.com/bkaradzic/bgfx.git
git clone https://github.com/bkaradzic/bimg.git
git clone https://github.com/bkaradzic/bx.git

Author

The author of rapp is Milos Tosic

License (BSD 2-clause)

Copyright (c) 2018 Milos Tosic. All rights reserved.

https://github.com/milostosic/rapp

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

   1. Redistributions of source code must retain the above copyright notice,
      this list of conditions and the following disclaimer.

   2. Redistributions in binary form must reproduce the above copyright
      notice, this list of conditions and the following disclaimer in the
      documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY COPYRIGHT HOLDER ``AS IS'' AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
EVENT SHALL COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
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].