C++ Class Library for Developing Cross-platform Applications

JUCE (Jules’ Utility Class Extensions) is an all-encompassing C++ class library for developing cross-platform applications.

It’s particularly good for creating highly-specialised user interfaces and for handling graphics and sound. The intended users are developers, who are writing large, complex applications in C++ and who would like to use just one clean, high-level API rather than a bunch of different libraries for different purposes or platforms.

JUCE is released under the GNU Public License, and costs nothing to use in open-source applications.

A few of JUCE’s features:

  • Basics—World’s best string class; arrays; stream and file handling; time and date; maths functions, random numbers, reference counting, super-fast XML parser and well-stocked XML manipulation classes; abstractions for threads, processes, critical sections etc; built-in GZIP compression/decompression streams and ZIP file reading; undo/redo support; logging; messaging layer with timers, event listeners; etc. etc.
  • User Interface—Cross-platform windowing capability with extremely powerful lightweight component architecture. Ready-made components include buttons, lists, menus, textboxes, treeviews, scroll-bars, etc. Components are customizable either at a low-level by creating your own (or by subclassing existing ones), or at an application-wide level by creating custom look-and-feel styles for them.
  • Vector Graphics—Fast, high-quality anti-aliased rendering of shapes with transparency, gradient fills, etc; path stroking with different line styles, dashed-lines; affine transformations and geometry classes; manipulation of typefaces as paths and custom font engine to provide sub-pixel accurate text in a platform-independent manner; typefaces can be serialized for easy embedding of fonts in an executable.
  • Image manipulation—High-quality rendering of images, allowing affine transformations and transparency; support for cross-platform OpenGL windows within Juce windows; built-in parser for loading JPEG, PNG and GIF image formats; image caching; easy embedding of images in an executable without having to use platform-specific resources.
  • Audio—Low-latency audio engine supporting DirectSound, ASIO and CoreAudio devices; audio buffer classes for mixing and manipulating samples; Parsers for WAV and AIFF formats, as well as reading audio streams from audio CD devices (easy on the Mac, but tricky on Windows!); powerful MIDI message classes; MIDI file load/save; connectable audio-processing nodes including sample-rate conversion.
  • Networking—URL handling; http and ftp reader streams; launching default browsers, etc.
  • Easy to integrate-JUCE is a static library so your application can run as a stand-alone executableno extra dlls to install, nothing for users to mess up! In your application, you’ll just need to include one header file: “juce.h” and that’s it-no platform-specific code or any other headers needed.

c,class,library,developing,cross,platform,applications,2

Recent Forum Threads

About iDevGames

Since 1998, iDevGames has been educating, supporting and enhancing the community of game developers that produce video games for the Apple Mac and iPhone platforms. Get the latest game development news by subscribing to our news feed.