Giter VIP home page Giter VIP logo

creme's Introduction

Creme

Creme is a widget-based GUI library for games and other interactive software. Its widgets are rendered using a tileset, allowing you to change the looks of your application by simply changing your tileset.

One major feature of Creme is its anchoring system provided through its custom cm_value structure. It allows you to express position and size in terms of other areas. As such, anchoring the left edge of widget_1 to the right edge of widget_2 automatically updates widget_1's left value whenever widget_2's right value changes. It is similar (inspired, actually) to Qt's QML anchoring system.

Creme is non-intrusive in regards to your rendering system: instead of risking harming your rendering state, it provides a list of basic commands that you can interpret and render when and how you want.

Creme never allocates memory by itself (and never frees them as well). This might sound harsh but the benefits are greater than the hurdle: you will retain full control of your memory, allowing you to use whatever allocation strategy is best for your platform.

It is written in plain C99, ensuring high compatibility with many systems and platforms.

Features

  • Looks of your application can be easily changed
  • Your GUI is as beautiful as your tileset
  • Anchoring makes really easy to position widgets
  • Treats your memory with respect
  • Clean and straightforward API
  • Render technology agnostic

Running examples

If you wish to build and run examples, you will need to clone this repository and also update its submodules.

git clone [email protected]:mobius3/creme.git
cd creme
git submodule update --init

You also need to run CMake with flags CREME_BUILD_EXTRAS and CREME_BUILD_EXAMPLES:

mkdir build && cd build
cmake .. -DCREME_BUILD_EXTRAS=1 -DCREME_BUILD_EXAMPLES=1
cmake --build .

Examples will be inside the bin/ folder inside the build directory.

creme's People

Contributors

mobius3 avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.