Cockos
Incorporated
Servicing the elite consumer since 2004
News : Products : Company : Community / 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:
  • File reading/writing wrappers (to enable higher performance read/write modes on win32 among other things)
  • Code for managing memory allocations, various lists, queues, resource pools, strings, etc
  • Code for encoding/decoding audio using LAME or OGG Vorbis.
  • The WDL Virtual Window system
  • The WDL Fast Convolution Engine
  • SWELL - Simple Windows Emulation Layer (for OS X)
  • LICE - Lightweight Image Compositing Engine
  • FFT support (based on DJBFFT)
  • tons more!
WDL also includes the following 3rd party libraries (which are also similarly licensed): Current: WDL v2008.05.05
  • SWELL updates (HUGE update including php to convert dialog resources too)
  • LICE: support for quadratic nurbs (yay schwa)
  • fileread: better handling of errors in async mode


Old versions:
  • WDL v2008.02.09
    • lineparser improvements
    • slightly faster drawtext, text cleanups
    • virtwnd buttons only refresh on changes of button images
    • virtwnd buttons support overlay outlines
    • SWELL: php converter for menus: .rc to cpp
    • SWELL: cursor hiding support
    • wndsize: fix for when no window set
    • lice: png write support (thanks cryptomail)
    • shoutcast source: better encoder reinitialization, IRC channel support
    • FFT: more define options
    • convolution engine: fixed some bugs, added test app, _Div mode which allows high-cpu ZL operation
    • LICE: flipped surface support for arcs
  • WDL v2007.12.18
    • SWELL: BM_SETCHECK support for buttons, basic FindWindowEx() emulation, better control font size selection
    • SWELL: Basic ScrollWindow() emulation
    • LICE: Updated LICE_IBitmap to include getDC()
    • SWELL: GetDC(), GetWindowDC() improvements, GetSystemMetrics()
    • SWELL: better WM_MOUSEWHEEL, WM_CONTEXTMENU message propagation
    • SWELL: WM_NCCALCSIZE, WM_NCHITTEST etc support
    • SWELL: basic _controlfp() support for rounding control (on x86)
  • WDL v2007.12.09
    • SWELL: updated documentation in swell.h, GlobalAlloc supports GMEM_FIXED
  • WDL v2007.12.03
    • SWELL: GetProp API support, GetDC/GetWindowDC now usable during WM_PAINT/NCPAINT (they get the same HDC as BeginPaint)
    • SWELL: dialogs can now have their window procedures subclassed, WM_NCPAINT support
    • SWELL: fixed EnumClipboardFormats sometimes getting in an infinite loop
    • SWELL: big DrawText overhaul (now uses NSAttributedString to draw)
    • SWELL: added a bunch more compatibility defines to swell.h
  • WDL v2007.11.23
    • SWELL: tons of menu fixes, dialog fixes, API extensions, more. too much to list.
    • LICE: LICE_line supports flipped surfaces
    • SWELL: Owned window support, tons of updates
    • Virtwnd: support for controls eating mousedowns without capturing
  • WDL v2007.11.09
    • Fixed distribution making to include more docs/etc
    • LICE: Test app now uses SWELL to run on OS X, included OS X example test project
    • SWELL: Extensive updates for child dialogs, modal/modeless dialogs (mouse messages, painting, etc etc)
    • SWELL: Modal/Modeless windows now support having their own menus (via GetMenu/SetMenu)
    • SWELL: Added user-defined control classes for dialog template loading
    • Updated GIFlib config.h for OS X support
  • WDL v2007.10.30
    • LICE: Added bezier drawing (schwa)
    • LICE: GIF, JPEG loading (included JPEG library and GifLib)
    • SWELL: WM_PAINT/BeginPaint/EndPaint emulation for child dialogs
    • SWELL: SendMessage for windows that support it, made virtwnd use sendmessage
    • SWELL: 3-state checkboxes, SetWindowLong improvements, fake *Capture, more
    • SWELL: DialogBox/CreateDialog emulation, timer fixes, tons more
  • WDL v2007.10.24
    • SWELL: DialogBox emulation, timer fixes, more
    • LICE: scwha added LICE_ClipLine()
  • WDL v2007.09.18
    • virtual window system cleanups, sliders have mouse-hiding ctrl+ modifier mode
    • virtual window system listbox custom drawing
    • virtual window system, other improvements
    • filewrite recovers from asynchronous failures from threads quitting
    • pcmfmtcvt: corrected non-standard pcm format conversion
    • LICE: fixed circle drawing with vc6 (template bug)
    • LICE: faster rotating blit (fixed point)
  • WDL v2007.09.01
    • virtwnd: sliders can have centerline color defined in their skininfo
    • LICE: faster more-fixed-point mode for LICE_ScaledBlit
    • LICE: LICE_ScaledBlit properly obeys using a subimage source (and wont filter from outside)
    • added db2val.h for easy dB<-->linear scale conversion
    • virtwnd: stuff to let control bgs and window bg images have pink lines to define unstretched edges
    • virtwnd: added listbox control
    • LICE: defines for disabling Dodge, Add blend modes
    • LICE: updated deltablit, added transformblit
    • LICE: made LICE_FillRect support LICE_MODE_USE_ALPHA
  • WDL v2007.08.21
    • LICE: added LICE_BLIT_MODE_DODGE (thx schwa)
    • LICE: added LICE_Blur, overloaded LICE_Blit() with better parameters
    • LICE: added LICE_FillRect()
    • filewrite: fixed GetSize() after flushed and unflushed writes in async mode
    • virtwnd: made static text labels not refresh if text did not change
  • WDL v2007.08.01
  • WDL v2007.07.23
  • WDL v2007.07.09
  • WDL v2007.07.08
  • WDL v2007.07.03
  • WDL v2007.06.30
  • WDL v2007.06.27
  • WDL v2007.06.17
  • WDL v2007.05.09


Discuss WDL on the WDL forum
Send improvements to submissions@cockos.com.

License:
    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.








Copyright © 2004-2008 Cockos Incorporated