WDL

(whittle)

WDL includes:

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)

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

Samplerate conversion (supporting point sampling, linear interpolation with optional IIR filters, sinc interpolation)

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

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)

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

Allows targeting macOS and other platforms 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 extensions

Shared memory IPC connection and low latency messaging classes

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.

Downloads

git clone https://www-dev.cockos.com/wdl/WDL.git



Official GitHub mirror: github.com/justinfrankel/WDL

Old snapshots are available on the Old Versions Page (and are also in the Git repository above).

WDL previously included iPlug, a framework for audio processing plug-ins. We found that other forks of iPlug were better maintained than our own, and thus we have removed iPlug from our git repository. We highly recommend that you use one of the WDL/iPlug forks, such as WDL-OL, or WDL-Tale. Otherwise, if you would like to use the last version of iPlug that we made available, you can use the branch "deprecated_iplug" in our repository.

WDL/Sanders JetPack (win32 only). Uses LICE to do a nifty basic 2D sprite game. Source included, GPL.

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 following 3rd party libraries (which are all similarly licensed):Discuss WDL on the WDL forum Send improvements to submissions@cockos.com