Turska UI/Framework

(version 2.x also known as Turs2)

About

Turska is a compact and simple framework & UI component library. It is especially aimed for games which typically have only modest requirements for UI.

The library is meant to be used in connection with some other library as a low-level platform abstraction/backend. Currently the library has built-in support for both Irrlicht (using D3D8/D3D9/OpenGL/OpenGLES), OpenGL (desktop 1.x), OpenGL ES (1.1) and SDL (using OpenGL).

Status

Checkout latest version from SVN hosted in Google Code:

Features

  • Immediate Mode Graphical User Interface (IMGUI) API:
    • Supports double-pumping the IMGUI
    • UI widgets: Button, Checkbox, TextField, Slider (horizontal or vertical, integer or real value type)
    • Style interface for IMGUI widgets to allow custom visual style
    • Drop region support (for implementing drag'n'drop)
    • Active (down) and hot (hover) states for pointer movement
    • Active key focus state
  • Simple 2D image drawing API:
    • Draw modes: Normal, Additive, Multiplicative, Pre-multiplied alpha
    • Image and text alignment
    • Custom image pivot
    • Horizontal and vertical flip
    • Rotate and scale transform
    • Optional linear filtering or mipmaps
    • Load-time image pixel dilation (to fix boundary blending errors)
    • Support for image source rectangle
  • Support for bitmap fonts generated by AngelCode Bitmap Font Generator
  • Support for bitmap fonts loaded from a vertical strip image of glyphs
  • Word-wrapping printing with fonts
  • 9-tile images (for scalable button styles)
  • Automatic batching (when you draw consecutively with same blending and image)
  • Rendering through Irrlicht engine (supports Direct3D8, Direct3D9, OpenGL and OpenGL ES)
  • Rendering through OpenGL with SDL
  • Portable C++

Links

License

Copyright © 2003-2012 Jetro Lauha. The library is dual-licensed with both new BSD-style license and LGPL. See the LICENSE-BSD.txt and LICENSE-LGPL.txt files in the turs2/doc/ project directory.

Projects using Turska

Version 2 and newer: Older Turska version 0.1—1.0: