No description
Find a file
Шурупов Илья Викторович d6c91fde39 Taskboard: task body uses the base surface again, docked and zoomed
The previous commit painted the framed task body with the raised surface; it goes back to the
base surface the full view used before, now in the docked panel as well.
2026-10-26 01:40:07 +03:00
.back/WidBack Replace Old Widgets 2024-11-24 22:41:15 +03:00
.docs/Gallery Restore old modules - Allocator Callstack Strings Language 2026-10-06 16:28:34 +03:00
.github/workflows Update cmake-single-platform.yml 2024-11-24 22:41:14 +03:00
3DEditor Every application keeps its data in ~/<application>; pasted images go there 2026-10-25 14:44:21 +03:00
3DScene Port rendering stack from OpenGL to Vulkan 2026-10-13 03:04:08 +03:00
Allocators Add CMake presets for Linux and Android and make desktop parts optional 2026-10-17 09:19:48 +03:00
android Android: support Android 10 (API 29) 2026-10-25 15:14:30 +03:00
bench Add leoBench, a statistical performance benchmark for brush and eraser 2026-10-15 20:03:20 +03:00
Callstack Make hang reports reliable under a debugger and in input loops 2026-10-22 11:57:47 +03:00
cmake Give every desktop app its own launcher and icon 2026-10-26 00:54:27 +03:00
Connection Add CMake presets for Linux and Android and make desktop parts optional 2026-10-17 09:19:48 +03:00
Containers TextEditor: restore piece tree editor on the current AvlTree 2026-10-25 03:36:28 +03:00
DataAnalysis version bump 2025-11-24 12:26:32 +03:00
Diagnostics Hang reports go to the application's folder; storage migration removed 2026-10-25 14:58:38 +03:00
Externals Widgets: markdown editor with live preview and gallery tab 2026-10-24 03:12:08 +03:00
Graphics Give every desktop app its own launcher and icon 2026-10-26 00:54:27 +03:00
Language Add CMake presets for Linux and Android and make desktop parts optional 2026-10-17 09:19:48 +03:00
LibraryViewer Every application keeps its data in ~/<application>; pasted images go there 2026-10-25 14:44:21 +03:00
Math Give flings more inertia and an overshoot at the ends 2026-10-18 02:14:24 +03:00
Modules Hang reports go to the application's folder; storage migration removed 2026-10-25 14:58:38 +03:00
Objects Objects: generate oscript.g.hpp as a complete array definition 2026-10-07 16:39:10 +03:00
RasterRender Android: support Android 10 (API 29) 2026-10-25 15:14:30 +03:00
RayTracer 3D Editor treaks 2024-11-24 22:41:15 +03:00
Sketch2D Give every desktop app its own launcher and icon 2026-10-26 00:54:27 +03:00
Sketch3D Android: support Android 10 (API 29) 2026-10-25 15:14:30 +03:00
Strings TextEditor: restore piece tree editor on the current AvlTree 2026-10-25 03:36:28 +03:00
Taskboard Taskboard: task body uses the base surface again, docked and zoomed 2026-10-26 01:40:07 +03:00
TextEditor TextEditor: restore piece tree editor on the current AvlTree 2026-10-25 03:36:28 +03:00
VulkanGraphics Port rendering stack from OpenGL to Vulkan 2026-10-13 03:04:08 +03:00
Widgets Taskboard: badge row above a framed task body, the same docked and zoomed 2026-10-26 01:29:39 +03:00
.clang-format
.clang-tidy
.cproject
.gitignore Taskboard: one DSH app window and one dsh session per task 2026-10-24 23:35:49 +03:00
.gitmodules tmp 2025-11-24 18:24:00 +03:00
.project
CMakeLists.txt Give every desktop app its own launcher and icon 2026-10-26 00:54:27 +03:00
CMakePresets.json Build Android x86_64 for the emulator and add an emulator script 2026-10-17 09:19:48 +03:00
CMakeSettings.json
LICENSE Update LICENSE 2024-11-24 22:41:15 +03:00
README.MD Give every desktop app its own launcher and icon 2026-10-26 00:54:27 +03:00
STATUS Update TODO 2024-11-24 22:41:14 +03:00
TODO Widgets Additions and sketch3d new gui 2024-11-24 22:41:15 +03:00

Modules

This repository started as a place for learning C++. Many modules were intentionally developed to gain a better understanding of a topic as opposed to using libraries. As time passes some modules gradually vanish due to my new experience and knowledge, and some grow.

  • Containers - a collection of implementations of well-known containers: Lists, Hash-Map, Trees, Interval Tree.
  • Math - Features some aspects of linear algebra (Matrix operations, vectors). For example, used by the RayTracer and Sketch3D module.
  • RayTracer - simple ray-tracer with object loader and lua configuration.
  • Objects (Python inspired) - encapsulates different types into Python-like objects. The module has its scripting language "Oscript" with support for methods, classes, pure functions, loops, conditions, etc. It uses compilation to bytecode and LALR parser. All objects can be saved and loaded at any time, whether it's a list or a method with bytecode. Some parts of this module have bad implementations and unstable code. Also, the module suffers from a lack of good testing.
  • Sketch3D - application with the ability to draw in 3D space. Features stroke processing and view-dependent shaders. Has lots of TODOs.
  • Data analysis - simple fully connected neural network (FCNN). Contains example application that is recognizing hand written numbers.

For more information on some modules see TODO and STATUS

Building

Check git actions if some libraries are missing.

To build and debug on windows clone svn repository (https://svn.riouxsvn.com/moduleswindowsl) alongside this repo and check WINDOWS_LIBRARIES option in cmake

Desktop launchers (Linux)

A desktop environment shows an application in its app grid and dock through a <id>.desktop file in $XDG_DATA_HOME/applications (default ~/.local/share/applications). Its Icon=<id> is looked up in the icon theme, so the icon goes to ~/.local/share/icons/hicolor/<size>/apps/<id>.png or hicolor/scalable/apps/<id>.svg. On Wayland the compositor matches a running window to its launcher by the window's xdg_toplevel app id, which must equal the .desktop file name (StartupWMClass is the X11 counterpart).

modules_add_desktop_entry() (cmake/DesktopEntry.cmake) declares that identity once per executable: it compiles MODULES_APP_ID / MODULES_APP_NAME into the target for its WindowIdentity, generates the .desktop file pointing at the built binary and stages the icon under <build>/desktop. Applications without their own entry use the generic online.ilushabasic.modules identity and icon (the widget gallery's launcher).

cmake --build <build> --target install-desktop-entries

copies the staged launchers and icons into MODULES_DESKTOP_DATA_HOME (default $XDG_DATA_HOME or ~/.local/share) and refreshes the desktop database and icon cache. The launchers run the binaries from that build directory.

Gallery

RayTracer Simple Ray-Tracer.

Oscript Oscript.

Sketch3d Sketch3D.