No changes since dlib 1.3.0 beta1.
- dlib.random
- New module
dlib.random.random
that implementsrandom
, a pseudo-random number generator based on Crand
- New module
- dlib.math
- Function that computes quadratic Bézier curve -
dlib.math.interpolation.bezierQuadratic
- GNU D Compiler (GDC) support in
dlib.math.sse
- Function that computes quadratic Bézier curve -
- dlib.image
- Median filter (
dlib.image.filters.median
)
- Median filter (
- dlib.filesystem
- Bugfixes in
dlib.filesystem.posix.common
- Bugfixes in
- dlib.core
dlib.core.thread
: fix deprecations in Windows multithreading API signatures
- dlib.math
- Fix unittest for
dlib.math.utils.nextPowerOfTen
- Fix unittest for
- Misc
- Added
AUTHORS.md
.
- Added
No changes since dlib 1.2.0 beta1.
- dlib.math
homothetyMatrix
andhomothetyMatrix2D
functions indlib.math.transformation
radtorev
andrevtorad
functions indlib.math.utils
that convert radians to revolutions and revolutions to radians, respectively
- dlib.image
- New funtion
drawRect
indlib.image.render.shapes
- New funtion
- Misc
- Added
CODE_OF_CONDUCT.md
- Doxygen support for documentation.
- Added
No changes since dlib 1.1.0 beta1.
- dlib.geometry
- New module
dlib.geometry.mpr
- implementation of the Minkowski Portal Refinement algorithm that detects intersection between two arbitrary convex shapes - New module
dlib.geometry.support
with support functions for some common shapes
- New module
- dlib.math
integer
andfrac
functions indlib.math.utils
that return integer part and fractional part of a real number, respectively.
- dlib.image
- Fix compilation for x86.
No changes since dlib 1.0.0 beta2.
Changes since dlib 1.0.0 beta1:
- dlib.image
- File-based image loading functions now preload data to memory, so that decoders run faster (2x-10x depending on format and image size).
- dlib.core
- Breaking change:
dlib.core.bitio.swapEndian16
moved todlib.math.utils
- POSIX thread creation is now validated in debug mode
- Breaking change:
- dlib.math
- Breaking change: deprecated method
Quaternion.generator
has been removed - Breaking change: deprecated functions
sum
,invertArray
,allIsZero
indlib.math.utils
have been removed interpHermiteDerivative
interpHermite
now support vector typesComplexd
alias toComplex!(double)
indlib.math.complex
- Fix
dlib.math.complex.pow
,dlib.math.complex.atan2
- Breaking change: deprecated method
- dlib.geometry
- Breaking change: deprecated method
Ray.intersectSphere
withposition
andradius
arguments has been removed - Breaking change: deprecated method
Ray.intersectTriangle
withv0
,v1
,v2
arguments has been removed. - Fix
Triangle.boundingBox
- New function
intrSphereVsAABB
indlib.geometry.intersection
AABB.intersectsSphere
is deprecated, useintrSphereVsAABB
instead.
- Breaking change: deprecated method
No changes since dlib 0.23.0 beta1.
- dlib.math
- Vector swizzling assign support:
v.zxy = Vector3f(1, 2, 3);
Quaternion.generator
is deprecated, useQuaternion.rotationAxis
andQuaternion.rotationAngle
insteadQuaternion.fromEulerAngles
andQuaternion.toEulerAngles
now use angles in pitch-yaw-roll formatEPSILON
indlib.math.utils
now equals 0.000001.
- Vector swizzling assign support:
- dlib.geometry
Ray.intersectSphere
withposition
andradius
arguments is deprecated, useRay.intersectSphere
withSphere
struct insteadRay.intersectTriangle
withv0
,v1
,v2
arguments is is deprecated, useRay.intersectTriangle
withTriangle
struct instead
- dlib.image
isAlmostZero
forColor4f
- dlib.filesystem
StdFileSystem.openDir
now returns null if path is not a valid directory.
No changes since dlib 0.22.0 beta1.
- dlib.core
- Breaking change: removed
dlib.core.oop.implements
(non-working function)
- Breaking change: removed
- dlib.math
- Fix matrix subtraction
- Fix wrong bounds check in matrix slice assignment
- Breaking change: removed
dlib.math.linsolve.solveGS
(non-working function) - Binary matrix operations are now
const
sum
,invertArray
,allIsZero
indlib.math.utils
are deprecated. Usereduce!((a, b) => a + b)
,map!(a => -a)
,reduce!((a, b) => a + b == 0)
instead
- dlib.image
- Breaking change: deprecated type
dlib.image.image.PixelFormat
has been removed - Breaking change: deprecated aliases
save
andload
indlib.audio.io
have been removed
- Breaking change: deprecated type
- dlib.audio
- Breaking change: deprecated aliases
save
,load
,saveAnimated
,loadAnimated
,saveHDRI
,loadHDRI
indlib.image.io
have been removed
- Breaking change: deprecated aliases
- dlib.text
- Breaking change: deprecated method
UTF8Decoder.byDChar
have been removed - Breaking change: deprecated method
UTF16LEDecoder.byDChar
have been removed - Breaking change: deprecated aliases
UTF16Decoder
andUTF16Encoder
have been removed
- Breaking change: deprecated method
- dlib.serialization
- Boolean values support in JSON decoder.
No changes since dlib 0.21.0 beta2.
Changes since dlib 0.21.0 beta1:
- dlib.image
PixelFormat
is deprecated, useIntegerPixelFormat
instead.
- dlib.text
- Breaking change: deprecated module
dlib.text.unmanagedstring
has been removed - Breaking change: deprecated method
String.byDChar
has been removed UTF16Decoder
andUTF16Encoder
are deprecated, useUTF16LEDecoder
andUTF16LEEncoder
instead
- Breaking change: deprecated module
- dlib.image
- Breaking change: deprecated module
dlib.image.io.io
has been removed load
andsave
are deprecated, useloadImage
andsaveImage
insteadloadAnimated
andsaveAnimated
are deprecated, useloadAnimatedImage
andsaveAnimatedImage
insteadloadHDRI
andsaveHDRI
are deprecated, useloadHDRImage
andsaveHDRImage
instead- Fix integer overflow in
Image.getPixel
andImage.setPixel
- Breaking change: deprecated module
- dlib.container
- Breaking change: deprecated alias
DynamicArray
has been removed
- Breaking change: deprecated alias
- dlib.coding
- Breaking change: deprecated module
dlib.coding.hash
has been removed
- Breaking change: deprecated module
- dlib.audio
load
andsave
are deprecated, useloadSound
andsaveSound
instead
- dlib.serialization
- Fix a bug in JSON decoder
- Misc
- Switched from Travis CI to GitHub Actions for running integration tests.
No changes since dlib 0.20.0 beta1.
- dlib.image
dlib.image.io.io
is deprecated, importdlib.image.io
instead
- dlib.audio
- New package:
dlib.audio.io
- New package:
- dlib.text
dlib.text.unmanagedstring
is deprecated, usedlib.text.str
insteadString.byDChar
is deprecated, useString.decode
insteadUTF8Decoder.byDChar
is deprecated, useUTF8Decoder.decode
insteadUTF16Decoder.byDChar
is deprecated, useUTF16Decoder.decode
instead
- dlib.coding
dlib.coding.hash
is deprecated, usestd.digest
instead
- dlib.container
dlib.container.array.DynamicArray
is deprecated, usedlib.container.array.Array
instead
- Documentation
- Misc
- Added latest DMD (2.094.0, 2.093.1) and LDC (1.23.0) to Travis CI config.
- A couple of fixes for LDC
- New AppVeyor configuration.
- dlib.network
- Fixed compilation under Windows
- dlib.filesystem
isFile
,isDir
properties now work forStdFileSystem
entries
- dlib.container
DynamicArray.readOnlyData
- dlib.text
String.toString
andString.ptr
are nowconst
- Misc
- Added latest DMD (2.093.0) and LDC (1.22.0) to Travis CI config.
Changes since beta2:
- dlib.coding, dlib.filesystem
- Deprecation fixes
- Misc
- Added latest DMD (2.092.0) to Travis CI config.
Changes since beta1:
- dlib.math
- Transformation of a vector with 4x4 matrix now doesn't include affinity check.
dlib.math.transformation.scaling
fix.
- dlib.core
- New module
dlib.core.mutex
, a thin abstraction over platform-specific thread synchronization primitives. Thread.sleep
- New module
- dlib.concurrency
- New package that implements a simple thread pool.
- dlib.image
- New module
dlib.image.render.text
that providesdrawText
, a function to render ASCII strings on images.
- New module
- dlib.math
- Breaking change: deprecated modules
dlib.math.easing
,dlib.math.smoothstep
have been removed. - Breaking change: tuple constructor of
Vector
now implicitly extends the last argument to all remaining components if the tuple is smaller than vector. This ensures e.g.Vector3f(0) == Vector3f(0, 0, 0)
.
- Breaking change: deprecated modules
- dlib.geometry
- Breaking change: deprecated modules
dlib.geometry.bezier
,dlib.geometry.hermite
have been removed.
- Breaking change: deprecated modules
- Breaking change: deprecated package
dlib.functional
has been removed. - dlib.text
UTF16Encoder
indlib.text.utf16
.String
can now be constructed directly fromInputStream
.- Breaking change: deprecated property
String.cString
has been removed.
- dlib.container
Queue
andStack
now useDynamicArray
internally instead ofLinkedList
.
- Misc
- Added latest DMD (2.091.1, 2.090.1) and LDC (1.21.0, 1.20.0) to Travis CI config.
No changes since dlib 0.18.0 beta1.
- dlib.math
- All interpolation functions moved to
dlib.math.interpolation
, which is now a package import. It includesnearest
,linear
,bezier
,catmullrom
,hermite
,smoothstep
,easing
modules. Corresponding old modules (dlib.math.easing
,dlib.math.smoothstep
,dlib.geometry.bezier
,dlib.geometry.hermite
) are deprecated.
- All interpolation functions moved to
- dlib.audio
SawtoothWaveSynth
,TriangleWaveSynth
indlib.audio.synth
.
- dlib.text
String
is now always null-terminated.
- dlib.functional
- The whole package is now deprecated.
dlib.functional.hof
module moved todlib.math.hof
.dlib.functional.range
module is deprecated, usestd.range.iota
instead.
- Misc
- Added latest DMD (2.090.1, 2.089.1) and LDC (1.19.0, 1.18.0) to Travis CI config.
Changes since beta:
- dlib.container
dlib.container.array
: iterating over array viaforeach_reverse
.
- dlib.core
BufferedStreamReader
indlib.core.stream
- a simple input range to read fixed chunks of data from anInputStream
.
- dlib.image
- Breaking change:
dlib.image.compleximage
has been removed. dlib.image.signal2d
is now fully GC-free.- Filtering of indexed images in PNG decoder is now supported (#142).
- Breaking change:
- dlib.math
dlib.math.tensor
now usesdlib.core.memory
for internal allocations.- Breaking change: deprecated function
identityQuaternion
has been removed. UseQuaternion.identity
instead.
- dlib.geometry
- Breaking change: deprecated aliases
bezierCurveFunc2D
andbezierCurveFunc3D
have been removed. UsebezierVector2
andbezierVector3
instead.
- Breaking change: deprecated aliases
- Misc
- Added latest DMD (2.088.0, 2.087.1) and LDC (1.17.0, 1.16.0) to Travis CI config.
No changes since dlib 0.16.0 beta1.
- dlib.core
dlib.core.memory
: Memory profiler now reports file and line of each allocation. Now it is enabled in runtime usingenableMemoryProfiler
function.dlib.core.memory
:Owner.deleteOwnedObject
.
- dlib.text
dlib.text.lexer
:Lexer.position
.dlib.text.unmanagedstring
:String.cString
.- Breaking change: deprecated module
dlib.text.slicelexer
has been removed.
- dlib.container
dlib.container.array
:DynamicArray.removeFirst
.- Breaking change: deprecated module
dlib.container.hash
has been removed.
- dlib.image
- Breaking change: deprecated module
dlib.image.parallel
has been removed.
- Breaking change: deprecated module
- dlib.math
- New module
dlib.math.easing
- some basic easing functions for fancy interpolation. - Breaking change: deprecated module
dlib.math.fixed
has been removed. dlib.math.quaternion
: fixed a bug inQuaternion.rotationAxis
.
- New module
- dlib.geometry
dlib.geometry.trimesh
not doesn't use GC.
- dlib.serialization
dlib.serialization.json
- GC-free JSON parser.
- dlib.functional
- Breaking change: deprecated module
dlib.functional.combinators
,dlib.functional.quantifiers
has been removed. - Breaking change: deprecated
map
,filter
,reduce
functions fromdlib.functional.range
have been removed.
- Breaking change: deprecated module
- Misc
- Added latest DMD (2.085.0, 2.084.1) and LDC (1.13.0, 1.14.0) to Travis CI config.
- dlib.container
opSlice
and$
fordlib.container.array.DynamicArray
.
- dlib.core
- Breaking change: temporarily removed
dlib.core.fiber
due to lacking Windows support. It is now in fiber branch until finished.
- Breaking change: temporarily removed
- dlib.text
- New module
dlib.text.unmanagedstring
that providesString
, a GC-free UTF8 string type based onDynamicArray
. UTF16Decoder
indlib.text.utf16
,UTF8Encoder
indlib.text.utf8
.dlib.text.encodings
- a one-stop solution for handling text encodings in generic way. Decoder is any range that outputsdchar
, encoder is any object that definessize_t encode(dchar, ubyte[])
.dlib.text.common
that definesDECODE_END
andDECODE_ERROR
for decoders to use.
- New module
- dlib.container
reserve
andresize
fordlib.container.array.DynamicArray
(#151).- Breaking change: deprecated
dlib.container.aarray
module has been removed. Usedlib.container.dict
instead.
- dlib.image
- Fixed unintentional fallthrough in
dlib.image.io.saveImage
that caused error on TGA image. - More accurate path filling in
dlib.image.canvas
. dlib.image.parallel
has been deprecated.
- Fixed unintentional fallthrough in
- dlib.math
- Breaking change: deprecated
dlib.math.affine
module has been removed. Usedlib.math.transformation
instead. dlib.math.fixed
has been deprecated.
- Breaking change: deprecated
- dlib.functional
dlib.functional.quantifiers
has been deprecated.- Free functions in
dlib.functional.range
(map
,filter
,reduce
) have been deprecated. Use corresponding Phobos functions instead.
- Misc
- dlib now can be built with recent GNU D Compiler (GDC). Note:
dlib.math.sse
is not supported with GDC. - Added latest DMD (2.083.0, 2.082.1) and LDC (1.12.0) to Travis CI config.
- Support for harbored-mod documentation generator.
- dlib now can be built with recent GNU D Compiler (GDC). Note:
No changes since dlib 0.14.0 beta1.
Important: dlib now officially doesn't support macOS. This is an act of protest against Apple's drop of OpenGL support. While you probably still can use dlib's platform-independent and Posix-based functionality under macOS, there's no guarantee that this will continue, and compatibility issues will not be addressed. Read detailed manifesto here.
- dlib.image
- Breaking change:
SuperImage.pixelFormat
now returnsuint
instead ofPixelFormat
. This allows extending dlib with custom pixel formats while maintaining compatibility withPixelFormat
. Values from 0 to 255 are reserved for dlib, values 256 and above are application-specific. This change is just a new convention and will not break any existing logics, though explicit cast toPixelFormat
may be required in some cases. Comparisons such asimg.pixelFormat == PixelFormat.RGB8
will work fine. PixelFormat.RGBA_FLOAT
is now deprecated, useFloatPixelFormat.RGBAF32
fromdlib.image.hdri
instead.- Saving to HDR is now supported (
saveHDR
functions indlib.image.io.hdr
). - New filters:
dlib.image.filters.histogram
(generates an image histogram) anddlib.image.filters.binarization
(image thresholding using Otsu's method). - ACES tonemapper (
hdrTonemapACES
) and average luminance function (averageLuminance
) indlib.image.hdri
. - Improved
dlib.image.canvas
. Path rasterizer now natively does anti-aliasing. Fixed bug with rendering on non-square images.
- Breaking change:
- dlib.audio
- Synthesizer framework (
dlib.audio.synth
). It allows to write synthesizers and use them to 'render' sounds, like in DAWs. Three built-in synthesizers are available:SineWaveSynth
,SquareWaveSynth
,FMSynth
. To write actual data toSound
objects, two functions are available:fillSynth
andmixSynth
.
- Synthesizer framework (
- dlib.math
- New module
dlib.math.smoothstep
with sigmoid-like functions:hermiteSmoothstep
,rationalSmoothstep
.
- New module
- dlib.core
- DMD 2.081.0 compatibility fix in
dlib.core.stream
.
- DMD 2.081.0 compatibility fix in
- Misc
- Added latest DMD (2.081.0, 2.080.1) and LDC (1.10.0) to Travis CI config. CI builds for macOS were stopped for reason mentioned above.
No changes since dlib 0.13.0 beta1.
- dlib.async has been removed for security reasons. Currently there are no active contributors to maintain the package and fix bugs, so it is considered not safe to use due to potential data corruption or loss. There's async branch for those who still want to use it, but for new projects it is strongly recommended to consider using more actively developed alternatives, such as vibe-core or Tanya.
- dlib.image
- New module
dlib.image.canvas
that providesCanvas
class, a vector graphics engine inspired by HTML5 canvas. Currently it supports rasterizing arbitrary polygons and cubic Bezier paths, filled and outlined. It renders to user-providedSuperImage
. - Improved HDR file decoder. Now it supports HDR files with magic string
#?RGBE
. - Reinhard and Hable tonemappers in
dlib.image.hdri
:hdrTonemapReinhard
andhdrTonemapHable
. - New filters in
dlib.image.filters.edgedetect
:edgeDetectLaplace
andedgeDetectSobel
. - New methods for
Color4f
:toLinear
andtoGamma
. - Fixed bugs in
dlib.image.arithmetics
module.
- New module
- dlib.math
- New functions in
dlib.math.vector
:reflect
,refract
,faceforward
. - New functions in
dlib.math.utils
:min2
andmax2
.
- New functions in
- dlib.geometry
- New functions in
dlib.geometry.bezier
:bezierTangentVector2
andbezierTangentVector3
.
- New functions in
- Misc
- Added latest DMD (2.080.0, 2.079.1) and LDC (1.9.0, 1.8.0) to Travis CI config.
- dlib now does CI under Windows using AppVeyor.
- Enum constants of type
Vector
now can be assigned to variables. - Naming of functions in
dlib.geometry.bezier
is changed.bezier
function is nowbezierCubic
,bezierCurveFunc2D
isbezierVector2
,bezierCurveFunc3D
isbezierVector3
. There are aliases with old names for backward compatibility.
- Fixed loading 16-bit PNG images
- Corrected Bézier function.
No changes since dlib 0.12.0 beta1.
- dlib.core
- New module
dlib.core.ownership
- a Delphi-like object ownership system. Objects are registered to parent object, which automatically deletes them when gets deleted itself. In many cases this can be a convenient trade-off between fully automatic and fully manual memory management. - New module
dlib.core.fiber
- initial fibers implementation (Linux-only for now).
- New module
- dlib.container
- Containers now use Phobos-conforming method names. Old names are still supported via aliases.
DynamicArray
now supports inserting and removing values by arbitrary indices (insertKey
andremoveKey
).~=
operator support forLinkedList
.- Full unittest coverage of
dlib.container.array
. - More unittests for
dlib.container.dict
.
- dlib.image
- New class
UnmanagedAnimatedImage
- GC-free counterpart ofAnimatedImage
. - Breaking change:
dlib.image.tone.contrast
is nowdlib.image.filters.contrast
. dlib.image.fthread
is now based ondlib.core.thread
.
- New class
- dlib.filesystem
- File access rights in
FileStat
. - Nanosecond modification time precision support in
stat
under Posix.
- File access rights in
- dlib.math
- New direct solver (
solve
) indlib.math.linsolve
based on LUP decomposition.
- New direct solver (
- dlib.geometry
- Frustum-sphere intersection test (
intersectsSphere
) fordlib.geometry.frustum
.
- Frustum-sphere intersection test (
- dlib.coding
- Breaking change:
dlib.coding.huffman
is merged withdlib.image.io.jpeg
.
- Breaking change:
- Misc
- Added latest DMD (2.075.1, 2.076.0) and LDC (1.3.0, 1.4.0) to Travis CI config.
- Added
alphaOver
indlib.image.color
- Fixed memory leak in
dlib.image.io.png
- Deprecation fix: use
dlib.math.transformation
everywhere instead ofdlib.math.affine
.
Changes from beta:
- Merged
idct.d
withjpeg.d
, usedlib.math.transformation
indlib.image.transform
- Added
hdrTonemapAverageLuminance
todlib.image.hdri
- Fixed memory leak in HDR decoder
- dlib.core
New
andDelete
indlib.core.memory
are now based on allocators fromdlib.memory
. By defaultMallocator
is used. It is possible to switch global allocator.
- dlib.memory
- Added
GCallocator
, an allocator based on on D's built-in garbage collector.
- Added
- dlib.image
- Full-featured APNG support in
dlib.image.io.png
with dispose and blend operations. Saving animations to APNG is also supported.
- Full-featured APNG support in
- dlib.filesystem
- Added
traverseDir
, GC-free recursive directory scanner.
- Added
- dlib.math
distance
anddistancesqr
overloads for 2D vectors.dlib.math.affine
is now deprecated.dlib.math.transformation
should be used instead.
- dlib.async
- Fixed segfault in event loop.
- Misc
- Removed deprecated
dlib.xml
package.dlib.serialization.xml
should be used instead. - Added latest DMD (2.074.0) and LDC (1.2.0) to Travis CI config.
- A new logo and homepage for the project: https://gecko0307.github.io/dlib.
- Removed deprecated
- Animated images and basic APNG support (unfinished, without dispose and blend operations, saving to APNG is also missing)
- Fixed some bugs in
dlib.text.slicelexer
anddlib.serialization.xml
.dlib.text.lexer.Lexer
is now an alias todlib.text.slicelexer.SliceLexer
- Added latest DMD (2.073.2) and LDC (1.1.0) to Travis CI config.
Changes from beta:
- 64-bit fix in
dlib.network.socket
under Windows - Unittest fix in
dlib.filesystem.local
- Code cleanup, use consistent line endings and indentations everywhere
- EditorConfig support
- dlib now compiles with DMD 2.073.0 and LDC 1.1.0-beta6.
- dlib.async - this new package provides a cross-platform event loop and asynchronous programming capabilities. It can be used to implement asynchronous servers. Under the hood the package is based on different multiplexing APIs: Epoll on Linux, IOCP on Windows, and Kqueue on BSD / OSX
- dlib.memory - new tools and interfaces to generalize memory allocation. There is
Allocator
interface, similar to Phobos'IAllocator
, but simpler. There are also several implementations of this interface:Mallocator
(malloc based allocator) andMmapPool
(block based allocator for Posix systems with mmap/munmap support). - dlib.serialization - a new home for XML (and, hopefully, other markup languages in future).
dlib.xml
is deprecated, but left with public imports for compatibility purpose- XML parser (
dlib.serialization.xml
) is now fully GC-free
- XML parser (
- dlib.network
dlib.network.socket
, a cross-platform socket API. Supports Windows and Posix
- dlib.image
- Breaking change: redesign of
dlib.image.hdri
module. Now it supports manual memory allocation and has its own image factories. Also implemented simple tone mapping tool based on gamma compression to convert HDR images to LDR - Radiance HDR/RGBE format support (only loading for now)
- Breaking change: redesign of
- dlib.container
- New module -
dlib.container.buffer
, an interface for input/output buffers - Fixed some issues in
dlib.container.array
- New module -
- dlib.text
- Improved
SliceLexer
(fixed bug with multicharacter delimiters) - Added
dlib.text.utils.immutableCopy
- Improved
- dlib.math
dlib.math.vector.normal
is nowdlib.math.vector.planeNormal
- Other improvements
- Added latest DMD (2.072.2) to Travis CI config.
Many thanks to Eugene Wissner for implementing dlib.async
, dlib.memory
and dlib.network
.
- Fixed building with DMD 2.071.1
- Added
SliceLexer
indlib.text
- Fixed wrong
opApply
inDynamicArray
andTrie
Changes from beta:
- Bugfix and unittests for
ArrayStream
- Fixed loading of 32-bit BMP with bitfield masks.
- dlib.network
- A new package for networking. So far it contains only one module,
dlib.network.url
- an URL parser
- A new package for networking. So far it contains only one module,
- dlib.image
- 2-dimensional iteration for images. Also there are now
ImageRegion
andImageWindowRange
that simplify writing kernel filters dlib.image.transform
module implements affine transformations for images: translation, rotation and scaling. Transformation with arbitrary 3x3 matrix is also possible- Improved BMP and TGA support: new color modes and RLE8 for BMP, saving BMP and TGA
- Improved
boxBlur
getPixel
andsetPixe
inImage
class are now public
- 2-dimensional iteration for images. Also there are now
- dlib.math
- New
dlib.math.tensor
module implements generic multidimensional array, both with static and dynamic memory allocation
- New
- dlib.container
- Improved
LinkedList
, added range interface. Added unittests forLinkedList
andDynamicArray
- Improved
- dlib.text
UTF8Decoder
andLexer
now support range interface. Added unittests for both
- Other improvements
- Added latest DMD (2.071.0) to Travis CI config, added DUB service files to .gitignore.
Minor bugfix release: saveWav
in dlib.audio.io.wav
now uses Sound
interface instead of GenericSound
class.
Changes from beta:
- Fixed #87
- dlib.audio
dlib.audio
is a new package for audio processing. Supports 8 and 16 bits per sample, arbitrary sample rate and number of channels. Includes generic sound interfaces (in-memory and streamed) and their implementations. Read more here.dlib.audio.synth
implements some basic sound synthesizers (sine wave and white noise)dlib.audio.io.wav
- uncompressed RIFF/WAV encoder and decoder
- dlib.image
- All image filters, arithmetic operations, etc. now support manual memory management
- New chroma key filter based on Euclidean distance (
dlib.image.filters.chromakey.chromaKeyEuclidean
) - New edge detection filter based on morphological gradient (
dlib.image.filters.edgedetect.edgeDetectGradient
) - Several important bugfixes (image convolution, lanczos and bicubic resampling, wrong deallocation of empty JPEGImage)
- dlib.core
- Fixed erroneous deleting uninitialized thread in
dlib.core.thread
- Fixed erroneous deleting uninitialized thread in
- dlib.filesystem
- Implemented missing methods in
dlib.filesystem.stdfs.StdFileSystem
:openForIO
,openDir
,createDir
,remove
. There is a known issue withremove
: it doesn't delete directories under Windows
- Implemented missing methods in
- Other improvements
- Added HTML documentation generator.
Mostly bugfix release.
- Fixed wrong iteration of
dlib.container.dict.Trie
_allocatedMemory
indlib.core.memory
is now marked as__gshared
, thus working correctly withdlib.core.thread
- Fixed wrong behaviour of
nextPowerOfTwo
indlib.math.utils
- Ambiguous
rotation
functions indlib.math.affine
anddlib.math.quaternion
are renamed intorotation2D
androtationQuaternion
, respectively - Added
flatten
method for matrices.
Changes from beta:
- Fixed 64-bit issues
- dlib now compiles with latest LDC
- Continuous integration using Travis-CI: https://travis-ci.org/gecko0307/dlib
- dlib.core
- Added GC-free, Phobos-independent thread module -
dlib.core.thread
- Added GC-free, Phobos-independent thread module -
- dlib.text
- A new package for GC-free text processing. Includes UTF-8 decoder (
dlib.text.utf8
) and general-purpose lexical analyzer (dlib.text.lexer
)
- A new package for GC-free text processing. Includes UTF-8 decoder (
- dlib.xml
- XML parser is now GC-free and based on
dlib.text.lexer
- XML parser is now GC-free and based on
- dlib.container
- Added GC-free LinkedList (
dlib.container.linkedlist
), Stack (dlib.container.stack
), Queue (dlib.container.queue
)
- Added GC-free LinkedList (
- dlib.image
- Fixed segfault with non-transparent indexed PNG loading
- dlib.math
- Fixed error with instancing of vectors with size larger than 4
- Other improvements
- Added Travis-CI support
- Trie-based GC-free dictionary class (
std.container.dict
) - Several performance optimizations in
dlib.math
: vector element access and multiplication for 3x3 and 4x4 matrices are now faster - Fixed some 64-bit issues.
- Fixed
dlib.filesystem.stdfs
compilation under 64-bit systems - Fixed PNG exporter bug with encoding non-compressible images
- Added basic drawing functions (
dlib.image.render.shapes
)
Bugfix release.
- Removed coordinates clamping on pixel write in dlib.image
- Fixed bug with PNG vertical flipping
- Added memory profiler
- Fixed
dlib.math.sse
compilation on 64-bit systems
- dlib.core
- Got rid of ManuallyAllocatable interface in manual memory management for classes. Added support for deleting via interface or parent class. Deleting can be abstractized with Freeable interface
- dlib.filesystem
- Added GC-free implementations for FileSystem and file streams
- dlib.image
- dlib.image.unmanaged provides generalized GC-free Image class with corresponding factory function
- JPEG decoder had been greatly improved, added more subsampling modes support, COM and APPn markers detection. Decoder now understands virtually any imaginable baseline JPEGs, including those from digital cameras
- dlib.math
- New module dlib.math.combinatorics with factorial, hyperfactorial, permutation, combinations, lucas number and other functions
- dlib.math.sse brings x86 SSE-based optimizations for some commonly used vector and matrix operations, namely, 4-vector arythmetics, dot and cross product, 4x4 matrix multiplication.
- dlib.container
- DynamicArray now supports indexing (as a syntactic sugar).
- Added Protobuf-style varint implementation (dlib.coding.varint)
- Streams are now ManuallyAllocatable
- Triangle struct in dlib.geometry.triangle now has tangent vectors
- Fixed unittest build failure (#59)
- Automated vector type conversion (#57), modulo operator for vectors (#58)
- Fixed warning in dlib.image.io.bmp (#56)
Small bugfix release:
- Fixed wrong module name in dlib.geometry.frustum
- Updated license information
- dlib.core
- Added manual memory management support. dlib.core.memory provide memory allocators based on standard C malloc/free. They can allocate arrays, classes and structs
- Added prototype-based OOP system for structs (dlib.core.oop) with support for multiple inheritance and parametric polymorphism
- dlib.image
- Image loaders are now GC-free
- dlib.image.io.zlib and dlib.image.io.huffman modules are moved to new package dlib.coding. dlib.image.io.bitio moved to dlib.core.
- Image allocation is based on a factory interface that abstracts over GC or MMM
- Improved support for indexed PNGs - added alpha channel support
- dlib.container
- Added GC-free dynamic array implementation (dlib.container.array)
- BST and AArray now use manual memory management
- dlib.math
- Quaternion is now based on and interchangeable with Vector via incapsulation
- Dual quaternion support (dlib.math.dualquaternion)
- Fixed incorrect dual number
pow
implementation
- dlib.geometry
- Breaking change: Frustum plane normals are now pointing outside frustum. Also Frustum-AABB intersection API is changed
- Fixed bugs in AABB and Plane
- dlib.image
- Baseline JPEG decoder (dlib.image.io.jpeg)
- dlib.math
- New matrix printer with proper alignment (a la Matlab)
- dlib.filesystem
- Platform-specific modules are now grouped by corresponding packages (dlib.filesystem.windows, dlib.filesystem.posix)
findFiles
is now a free function and can be used with anyReadOnlyFileSystem
- dlib.math
- Implemented LU decomposition for matrices (dlib.math.decomposition)
dlib.math.linear
is nowdlib.math.linsolve
. AddedsolveLU
, a new LU-based direct solver- Matrix inversion now uses LU decomposition by default (4x performance boost compared to old analytic method). 4x4 affine matrices use an optimized inversion, which is about 6 times faster
dlib.math.utils
now usesclamp
from latest Phobos if available- Removed deprecated functionality
- dlib.core:
- Moved container modules (bst, linkedlist, etc) from dlib.core to separate package dlib.container. Removed useless dlib.core.method
- Overall: improved compatibility with DMD 2.067.
Mainly bugfix release. Changes:
- Fixed compilation with DMD 2.066
- Added dlib.geometry.frustum
- Improved dlib.math.quaternion
Bugfix release. The main improvement is fixed compilation with some versions of LDC.
Bugfix release. Changes:
- Improved dlib.image, added interpolated pixel reading
- Added matrix addition and subtraction, tensorProduct now works with any matrix sizes
- Addressed many bugs in dlib.image and dlib.math.
- dlib.core
- Added simple yet robust I/O streams (dlib.core.stream), which are completely Phobos-independent
- dlib.filesystem
- Abstract FS interface and it's implementations for Windows and POSIX filesystems
- dlib.image
- Breaking change: all pixel I/O is now floating-point (via
Color4f
). This gives an opportunity to define image classes of arbitrary floating-point pixel formats and enables straightforward HDRI: sample 32-bit implementation provided in dlib.image.hdri - Pixel iteration now can be done with
row
andcol
ranges - Parallel filtering is now easy with dlib.image.parallel. You can add multithreading to your existing filter code with just a few changes
- Added support for TGA and BMP formats (only loading for now)
- All image format I/O is now stream-based
- Breaking change: all pixel I/O is now floating-point (via
- dlib.math
- Breaking change: matrices in dlib.math.matrix are now column-major
- Imporved constness support in dlib.math.vector, as well as added unittest to the module. Using new string constructor, vectors now can be parsed from strings (e.g.,
"[0, 1, 2]"
)
- Overall improvements & bugfixes
- Much saner DUB support, addressed some serious problems with building, added configuration for pre-compiling as a static library
Bugfix release + added support for DMD 2.064 package modules.
Bugfix release. Fixed issues with compiling on 64-bit systems.
Bugfix release.
- Added XML parser (alpha quality);
- Massive refactoring of the matrix implementation. All matrix types (Matrix2x2f, Matrix3x3f, Matrix4x4f) are now specializations of generic Matrix!(T,N) struct in dlib.math.matrix;
- Updated dlib.math.dual. Vectors of dual numbers can now be created;
- Added support for Hermite curves (dlib.geometry.hermite).
- Renamed ColorRGBA and ColorRGBAf into Color4 and Color4f;
- Added support for image convolution. There are several built-in kernels (Identity, BoxBlur, GaussianBlur, Sharpen, Emboss, EdgeEmboss, EdgeDetect, Laplace);
- Added support for HSV color space;
- Added Chroma Keying and Color Pass filters.
Bugfix release.
Initial release.
Project moved to GitHub.
Early development on code.google.com.
Start as a public project.