Cockos
Incorporated
Servicing the elite consumer since 2004
Company : Products : Team : Forum
WDL (whittle)
[re]usable C++, modestly

WDL is a free and open source C++ library that is designed to be easily used by other code.

Much of WDL is a set of simple C++ classes that do not attempt to do everything. You can use as little or as much of WDL as you like, mix it with whatever other toolkits you use, etc. It tries very hard not to get in your way.

WDL includes:

The Basics
  • Lightweight inline classes for cleanly managing memory allocations, lists, queues, resource pools, strings, etc
  • File reading/writing wrappers:
    • Support various asynchronous and unbuffered reads/writes
    • Large file support
    • Portable API
    • Memory mapped file support
  • Directory scanning API
  • SHA-1 implementation
  • Mersenne Twister implementation
  • Mergesort implementation
  • Blowfish implementation
  • Fast FFT implementation (based on DJBFFT)
  • RDTSC timing utility (win32/x86 only)
Audio tools:
  • iPlug: a VST and AU plug-in framework
  • A realtime convolution engine
  • Fast sinewave generator
  • dB/amplitude convertors
  • Basic Reverb engine (based on FreeVerb2)
  • Integer PCM audio sample conversions
  • SHOUTcast source broadcaster (and PHP based server)
  • Encoding/decoding audio using LAME and OGG Vorbis.
  • A simple pitch shifting engine
  • ADPCM encode/decode engines
  • Audio buffer/pin manager
LICE - Lightweight Image Compositing Engine:
  • 32bpp 2D image engine with full alpha channel support
  • PNG, JPEG, GIF, BMP, PCX, ICO loading
  • PNG, JPEG, GIF writing
  • Blit, scaled blit, rotated blit, delta/grid divided blits, with optional bilinear filtering, blurred blit
  • Primitives including line drawing, rectangle fills, gradients, circles, triangles, bezier curves
  • Optional antialiasing for most primitives
  • Alpha and source alpha support for primitives and blits
  • Many blend modes including copy, additive, subtractive, dodge, multiplicative, overlay, HSV adjust
  • Glyph and text drawing systems (including cached-system-text drawing)
  • Texture generators
WDL Virtual Window system:
  • Allows the building of dynamic, complex UIs within OS hosted windows
  • Included controls for text display, combo boxes, buttons, sliders, list boxes
  • Supports full transparency, overlays, controls with shadows/highlights outside of their range
  • Fully themeable (uses LICE for compositing)
Plush2 - Portable, lightweight software 3D rendering engine
  • 32bpp 3D rendering
  • Scene management (unlimited cameras, objects)
  • Frustum clipping
  • Multitexture support
  • Environment map support
  • Texture-alpha support
  • Variable-alpha materials
  • Bilinear texture filtering
  • Colored lighting with unlimited lightsources
  • Gouraud and flat shading
  • Supports most LICE blend modes as per-pixel operations
  • Z-buffering
  • 3DS,COB file import
  • Integrates with LICE.
  • Based on Plush
SWELL - Simple Windows Emulation Layer (for OS X):
  • Allows targeting win32 and OS X by using a reasonable subset of the win32 API
  • Auto (PHP-based) dialog and menu resource conversion
  • Many common APIs and common controls implemented
  • SWELL-specific win32-style OS X extensions
And more:
  • Shared memory IPC connection and low latency messaging classes (currently win32 only)
  • EEL2 expression evaluation library/realtime compiler (allow users to write code that your programs execute) (based on AVS's EEL)
  • win32_curses: A graphical Curses emulation library for Win32 and OS X (port or write curses applications in a window of a larger application, or standalone)
  • win32_utf8: code you can include to enable UTF8 support in normal ANSI windows applications

WDL license:

    Copyright (C) 2005 and later Cockos Incorporated
    
    Portions copyright other contributors, see each source file for more information

    This software is provided 'as-is', without any express or implied
    warranty.  In no event will the authors be held liable for any damages
    arising from the use of this software.

    Permission is granted to anyone to use this software for any purpose,
    including commercial applications, and to alter it and redistribute it
    freely, subject to the following restrictions:

    1. The origin of this software must not be misrepresented; you must not
       claim that you wrote the original software. If you use this software
       in a product, an acknowledgment in the product documentation would be
       appreciated but is not required.
    2. Altered source versions must be plainly marked as such, and must not be
       misrepresented as being the original software.
    3. This notice may not be removed or altered from any source distribution.

WDL includes the following 3rd party libraries (which are all similarly licensed): Discuss WDL on the WDL forum
Send improvements to submissions@cockos.com.

Downloads

Latest version: WDL v2009.11.30
  • DirScan: handle scanning / on posix correctly
  • EEL: fixed x64 bugs on certain functions
  • FileRead: no longer use F_NOCACHE on OSX on remote filesystems
  • IPlug: OSX updates, project updates
  • JNetLib: added outgoing interface option for connections
  • LAME: fixed calling of LAME on win32 (correct tag writing, etc)
  • LAME: fixed VBR modes on linux/OSX, correct end of encode flushing
  • LICE: DrawText supports LICE_DT_NEEDALPHA for forcing setting of alphachannel
  • LICE: LICE_ProcessRect() for per pixel transformations
  • LICE: HSV adjust blend mode now has S and V adjusting full range rather than 0.5.
  • LICE: ++ Existing code using LICE_BLIT_MODE_HSVADJ may need to be adjusted.
  • SWELL: Sample SWELL application
  • SWELL: Main application framework (with instructions on creating new applications)
  • SWELL: Submenu fixes
  • SWELL: listview imagelist separate small/state support
  • SWELL: Added API to initiate a drag and drop operation
  • SWELL: Greatly improved keyboard handling for dialogs
  • SWELL: Tweaks to positioning of group and tab controls
  • SWELL: More listview/listbox APIs implemented (thanks sws), WM_CONTEXTMENU fixes
  • SWELL: SetWindowPos Z ordering enabled
  • SWELL: Added SetCurrentDirectory()
  • SWELL: Fixes for browseforfile etc
  • SWELL: GL support for swell HWNDs
  • SWELL: Fixed WritePrivateProfileString section deletion
  • SWELL: Fixed errors when GWL_STYLE changed in WM_CREATE/WM_INITDIALOG
  • SWELL: TrackPopupMenu() fixed when initiated from non-mouse-event
  • SWELL: preliminary support for targetting 64-bit on 10.6+
  • virtwnd: buttons can own their image resources
  • virtwnd: handy utility dialog-derived class for win32 (handles paint correctly)
  • virtwnd: nested children fixes, vwnds automatically reset parent pointers of children on removal
  • virtwnd: cursor, tooltip processing infrastructure
  • virtwnd: fixed WDL_VirtualWnd_PreprocessBGConfig() on certain images
  • wdltypes: defined GCLP_HICONSM on VC6
  • Added scrollbar emulation for SWELL, skinned scrollbar support for win32 (thanks to J Brown / Cool Scrollbar Library)
  • Added ProjectContext utility functions
Old versions: Example uses:
  • WDL/Sanders JetPack (win32 only). Uses LICE to do a nifty basic 2D sprite game. Source included, GPL.




Copyright © 2004-2009 Cockos Incorporated