wisdom
Loading...
Searching...
No Matches
Wisdom Documentation

Introduction

Welcome to the Wisdom project documentation. This library provides minimal abstraction for a low level graphics. It is designed to be lightweight, efficient and extensible focusing on modern C++ standards and best practices with a lot of optimizations for best performance. Wisdom is built with a strong emphasis on extensibility and maintainability, making it suitable for a wide range of applications.

Note
DOCUMENTATION IS IN PROGRESS. Would appreciate any feedback or contributions to improve it.

Coding Standards and Documentation

Wisdom follows a set of coding standards that is derived from complexitioes of implementation. The library is divided into core and extensions. Core library follows a strict procedural style, with focus on supporting C99 and C++11 standards, ensuring wide compatibility and adoption. The interfaces are generated with a custom generator, which ensures consistency across the API and allows for easy maintenance and updates. The code is documented using customized Doxygen, and we strive to keep the documentation up-to-date with the codebase. Generaor also creates documentation headers, writes inline documentation and provides boilerplate for API functions on C++. Basically it generates outer layer of the library, while the inner implementation is written by hand and can follow any style, as long as it is consistent within the implementation file.

Extension part is free of standards and is provided to extend functionality without affecting the core library. This allows for a lot of flexibility and creativity in the implementation of extensions, while still maintaining a clear separation of concerns between the core library and extensions.

Note
Please refer to the Contributing page for guidelines on contributing to the project.

Documentation from 25.8.2025 will adhere to the RFC 2119 guidelines for requirement levels. Latest statement can be found here: https://www.rfc-editor.org/rfc/rfc2119.html

The documentation is written in a way that explains behavior and not the state. It mimics the documentation style of Vulkan, where the focus is on describing the behavior of the library and its components, rather than just listing the features or capabilities. This approach allows for a more comprehensive understanding of how the each part of library works and how to use it effectively.

Quick Navigation

  • Getting Started - Learn how to build the library and integrate it into your project
  • Consumption - Installation and configuration instructions
  • Library Structure - Overview of the library structure and components
  • Initialization - Basic examples of how to use the Wisdom library
  • API reference - Detailed reference for all API functions, types, and constants

Some additional pages:

  • Contributing - Contribution guidelines and how to get involved
  • Why Wisdom? - Explanation of the motivation and goals behind the project

Key Features

  • Modern C++ support (C++20/C++23) while maintaining compatibility with C99 and C++11 for the core library
  • CMake integration and installation support
  • Cross-platform compatibility
  • Open-end extensibility
  • High performance with minimal overhead

Build Requirements

  • CMake 3.22 or higher
  • C++20 compatible compiler
  • Vulkan SDK or Vulkan Headers <optional for Windows>

Contact & Support

For questions, issues, or contributions, please refer to the project repository at https://github.com/Agrael1/Wisdom