All Projects → actondev → s7-imgui

actondev / s7-imgui

Licence: other
Using s7 scheme alongside Dear ImGui to (interactively) build (cross platform) GUI apps.

Programming Languages

c
50402 projects - #5 most used programming language
scheme
763 projects
C++
36643 projects - #6 most used programming language
Meson
512 projects

Labels

Projects that are alternatives of or similar to s7-imgui

panorama
Lightweight system monitor for Linux
Stars: ✭ 31 (+6.9%)
Mutual labels:  imgui
ImStudio
Real-time GUI layout designer for Dear ImGui
Stars: ✭ 285 (+882.76%)
Mutual labels:  imgui
imgui entt entity editor
A drop-in entity editor for EnTT with Dear ImGui
Stars: ✭ 146 (+403.45%)
Mutual labels:  imgui
nrepl.nvim
Neovim REPL for lua and vim script
Stars: ✭ 41 (+41.38%)
Mutual labels:  repl
binviz
Binary visualization tool primarily aimed at videogame reverse engineering & research.
Stars: ✭ 32 (+10.34%)
Mutual labels:  imgui
ParsecSoda
Parsec Soda is a custom open-source game streaming app that integrates with Parsec API and is focused in Host experience.
Stars: ✭ 135 (+365.52%)
Mutual labels:  imgui
imgui-beef
Dear ImGui wrapper for the Beef Programming Language
Stars: ✭ 20 (-31.03%)
Mutual labels:  imgui
appium-java-repl
Simple Java REPL for controlling mobile apps through Appium.
Stars: ✭ 20 (-31.03%)
Mutual labels:  repl
Syndra
3D Game Engine/Renderer
Stars: ✭ 40 (+37.93%)
Mutual labels:  imgui
psysh.el
PsySH on Emacs, PHP interactive shell (REPL)
Stars: ✭ 27 (-6.9%)
Mutual labels:  repl
boltcli
boltcli is the redis-cli for boltdb with Lua script support
Stars: ✭ 25 (-13.79%)
Mutual labels:  repl
microui-odin
A tiny immediate-mode UI library for The Odin Programming Language
Stars: ✭ 24 (-17.24%)
Mutual labels:  imgui
wave-gui
Yet another data-over-sound tool
Stars: ✭ 64 (+120.69%)
Mutual labels:  imgui
Workshop-GraphQL
A GraphQL Server made for the workshop
Stars: ✭ 22 (-24.14%)
Mutual labels:  repl
pyhstr
hstr, but for Python shells
Stars: ✭ 12 (-58.62%)
Mutual labels:  repl
nedb-repl
The command-line tool for NeDB
Stars: ✭ 19 (-34.48%)
Mutual labels:  repl
Fractal Engine
WIP 3D game engine with editor and other stuff
Stars: ✭ 152 (+424.14%)
Mutual labels:  imgui
endbasic
BASIC environment with a REPL, a web interface, a graphical console, and RPi support written in Rust
Stars: ✭ 220 (+658.62%)
Mutual labels:  repl
cljs-browser-repl
A ClojureScript REPL and tutorial in your browser!
Stars: ✭ 35 (+20.69%)
Mutual labels:  repl
ButOSX
CSGO Cheat Base for MacOSX. Written in C++ & Objective C. Menu Powered by ImGui. Includes Apple TouchBar API.
Stars: ✭ 58 (+100%)
Mutual labels:  imgui

Deprecated This project will not receive any updates! Glad if it helps as a skeleton to your own projects though

S7 & ImGui

Using s7 scheme alongside Dear ImGui to (interactively) build (cross platform) GUI apps.

You can see a video demonstration (of 0.1.0) here.

img/youtube-preview.png

Cross platform build: linux & windows with meson build system

Tested under

  • Windows 10 x64
    using msys2 for meson & ninja but I guess normal windows builds exist
  • Ubuntu 20.04

Docs

Some preliminary documentation of the provided namespaces is at docs/ns-doc.md
Auto-generated from the output of test/scheme/gen-doc.scm

Building

See dev.org

If you use emacs I recommend the org-babel-eval-in-repl package to make the most out of the snippets in that file.

Windows

Meson can generate the visual studio project for you, so you can build/run/debug there.

Linux

Eclipse CDT has meson support which I got working without too much fuss. The .cproject file is in the repo cause I couldn’t get eclipse to generate it automatically. The .project could be omitted. Generally, what was needed to be done was to manually add the following natures in the project:

  • meson
  • c
  • c++

Again, the .cproject was needed for the indexer to work. I copied it from a new generated meson project.

Also I’ve found that KDevelop works quite well. This is what I’m using lately.

macOS

Feel free to test it & make a PR. I don’t have any mac/hackintosh.

Cross compiling

Meson has cross compiling support. Haven’t tested it at all though.

Rationale

After discovering clojure and enjoying the satisfaction of working with a REPL, I wanted to have something like this for native desktop applications (and specifically with c/c++ for specific applications, so no java/clojure).

Also, building things is still not fun for c/c++ projects. Some short-lived explorations with Juce got me scratching my head: you have to use a tool (named projucer) to generate the visual studio/xcode project files.. I didn’t like this process, confused me.

Recently I stumbled upon meson and, without usince c++ since 2013, I was glad to see how quickly I could use some libraries & even write build definitions for existing projects. It was a nice opportunity to see how things work & not use ready frameworks.

So there you go.

Testing

C++ (gtest)

  • [ ] fix/think about the needed pwd while running the tests (for loading scheme files & testing screenshots etc)

right now you have to be in the build/test dir (assuming build is the directory you configured meson with)

Scheme

I’m running the build/repl src/scheme/test-all.scm command

test/scheme/assets/sxs-wheel-snapshot.png

for example.

Roadmap

  • [X] proof of concept
    • embed s7 and draw something with imgui from s7
    • use a REPL and work with cmuscheme in emacs
  • [X] (semi)complete the bindings of imgui for s7: checkboxes, lists, menubar etc
  • [X] video demonstration / getting started: windows and/or linux
    I’m thinking of doing a really basic text editor (open - edit - save) with imgui/scheme etc. Live coding using the REPL see https://youtu.be/MgHsl0u26MY
  • [ ] create a documentation of the namespaces from C bindings but as well from provided scheme files.
    • see the generated docs/ns-doc.el for now
    • the idea is to generate an org or markadown file from this
    • hide “private” things from the documentation (probably names that start with -)
  • [ ] Think (again) about the namespaces. See #3 . Any input from schemers would be greatly appreciated
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].