# Changelog
### Version 0.18.0
- Add `create_image` method
- Update ici lib
### Version 0.17.0
- Add convenience method `Graphics::create_buffer`
- Fix bug if WrappingStrategy was passed `0`
- New font 'Limited 3x5' (no lower case, some symbols look bad)
### Version 0.16.2
- Update ici lib
### Version 0.16.1
- Fix import issues
### Version 0.16.0
- Replaced `TextSize` with `PixelFont`
- `Small` becomes `Standard4x5`
- `Normal` becomes `Standard6x7`
- `Large` becomes `Standard8x10`
- Add `Stanard4x4`, `Outline7x9`, `Script8x8`
- Fix `char_width` and `line_height` in formatting
- Update ici lib
- Color and scaling has been moved
- `IndexedImage` can be rotated, scaled, tinted
- ICI feature removed
- Fix new line support in `WrappingStrategy::SpaceBeforeCol`
### Version 0.15.1
- Add `renderable` and `sized_renderable` macros
- Add support for `ImageWrapper`
- Update ici lib
### Version 0.15.0
- Update ici lib
- Remove `Graphics::get_text_size()`, use `Textsize::measure()` instead
- Tidy up code
### Version 0.14.0
- Add `Image` from `IndexedImage` method
- Shift Font Small `0` right by 1px
- Add new line support for text rendering
- Fix `WrappingStrategy::AtColWithHyphen`
- Update shapes lib
### Version 0.13.0
- Rename feature `serde_derive` to `serde`
- Add feature based `Serialize` and `Deserialize` to most structs and enums
- Add feature `mint`
### Version 0.12.7
- Update shapes lib
### Version 0.12.6
- Fix prelude/imports
- Fix crash from offscreen drawing
### Version 0.12.5
- Update shapes lib
### Version 0.12.4
- Add `ShapeCollection::bounds()`
### Version 0.12.3
- Update shapes lib
### Version 0.12.2
- Update shapes lib
### Version 0.12.1
- Add check char to font `✓`
- Add support for custom replacement glyphs
- For example, this allows 'a' to be printed as '@' (or any custom pattern)
### Version 0.12.0
- `Image`
- Change internals to use bytes
- Speed up drawing of opaque images
- Add `blend_pixel()`
- Add `is_transparent(): bool`
- Add `pixels(): Vec<Color>`
- Add `rotate_cw()`, `rotate_ccw()`
- Change `blend()` to change self rather than creating a new image (for consistency with other methods)
### Version 0.11.4
- Fix invalid chars in `SUPPORTED_SYMBOLS`
### Version 0.11.3
- Update ici-files
### Version 0.11.2
- Update ici-files
### Version 0.11.1
- Update graphics-shapes
- Added Ellipse
### Version 0.11.0
- Add clipping
- Add `Graphics::clear_aware` for clear that uses translate and clipping
- Move `ShapeBox` to `graphics-shapes`
- It now holds a shape directly, and needs to be wrapped in `Drawable` to render
- `ShapeCollection` now holds `Drawable<ShapeBox>`
- Update graphics-shapes to 0.2.0
- Removed `Ellipse`
### Version 0.10.11
- Fix bug in ICI rendering
### Version 0.10.10
- Update deps
### Version 0.10.9
- Update deps
- Change rendering internals
### Version 0.10.8
- Update deps
### Version 0.10.7
- Update deps
### Version 0.10.6
- Update deps
- Add `is_transparent` to `Color`
### Version 0.10.5
- Add to ici and color for color and ici
### Version 0.10.4
- Add width and height to IndexedImage
### Version 0.10.3
- Add brightness and saturation methods for `Color`, `IciColor`, `IndexedImage`, `AnimatedIndexedImage`
### Version 0.10.2
- Fix `image_loading` feature
### Version 0.10.1
- Fix `ici` feature so it actually exports
### Version 0.10.0
- Removed `IndexedImage`
- Add optional `ici-files` dependency and feature, defaults to active
- Adds `graphics::draw_indexed_image` and `graphics::draw_animated_image` for ICIs
### Version 0.9.7
- Fix `IndexedImage::to_image()`
### Version 0.9.6
- Update shapes library
- Add `IndexedImage` (image using indexed color that should be saved as RON)
- Add `SUPPORTED_SYMBOLS`
- Fix a few letters graphics
### Version 0.9.5
- Add `left()`, `right()`, `top()`, `bottom()` and `center()` to `ShapeCollection` and `ShapeBox`()
- Fix bug with `ShapeCollection::with_*`
- Add `ShapeCollection::insert_*` for drawables and shapes
### Version 0.9.4
- Update shapes library
- Add prelude
- Add Orange, Brown and Purple
- Add `Polyline`
- Add `Graphics::draw_arc`
### Version 0.9.3
- Update shapes library
### Version 0.9.2
- Update shapes library
### Version 0.9.1
- Fix bug with ShapeCollection::with_rotate
### Version 0.9.0
- Add draw_rect, draw_circle, etc methods on Graphics
- Change renderable to require a generic param so it can impl'd outside this crate
- Refactor shape collection so now treated as a single renderable (rather than a data storage object)
### Version 0.8.3
- Update shapes lib (0.1.6)
- Add from Coord for TextPos
- Fix text positioning
- Add TextPos::px(Coord)
- Rename TextPos::to_px() to to_coord()
- Rename Graphics::draw_at() to draw_offset() so the name accurately describes its behaviour
### Version 0.8.2
- Add DrawOffset for RenderableImage so it can be drawn from the top left or center
- Remove now unnecessary mut in copy_to_image()
### Version 0.8.1
- Add wrapper RenderableImage which contains an image and position so that an image can be rendered like a shape
### Version 0.8.0
- Update shapes lib (0.1.5)
- Fix bug in Drawable::with_rotation()
- Add Drawable::with_scale(), Drawable::with_scale_around and Drawable::with_rotation_around()
- Add with_scale(), with_scale_around(), with_rotation(), with_rotation_around(), with_translate() and with_move() to ShapeCollection and AutoShapeCollection
- Make ShapeCollection and AutoShapeCollection implement Renderable
- Add Positioning to TextFormat
- Remove all From for TextPos, instead use TextPos::px and TextPos::cr
### Version 0.7.1
- Update shapes lib (0.1.4)
### Version 0.7.0
- Add Ellipse
### Version 0.6.4
- Fix bug in AutoShapeCollection where the same id would apply to multiple shapes
### Version 0.6.3
- Fix method access bug
### Version 0.6.2
- Add shape collection for batch rendering
### Version 0.6.1
- Update shapes lib (0.1.2)
- Expose some Shape methods on Drawable<Shape>
### Version 0.6.0
- Extract shapes to shape library
- Add yen, dollar, cent, and currency characters
- Allow custom character size
### Version 0.5.0
- Add From(num,num) for TextPos
- signed to TextPos::Px
- unsigned to TextPos::ColRow
- Add Text renderable
- Add TextFormat
- Add WrappingStrategy (provides various options for wrapping text - can only handle ASCII English)
- Rename normal to large (as it's double the size of small)
- Move text to it's own module
- Add ellipsis, power, backslash, at, curly braces, back tick, tilde and pound characters
- Add normal text size
- Make mint optional
### Version 0.4.1
- Add polygon shape
### Version 0.4.0
- Change shapes from structs to enum as due to Rust trait limitations which meant working with Shape and Renderable was very awkward and annoying.
- Unfortunately this means the shapes lose their unique methods (line.len(), rect.width(), etc) and shape conversions had to be removed
- Add Triangle shape
- Add contains for every shape
### Version 0.3.0
- Replace draw_rect, draw_line, draw_circle, etc with `draw` and `draw_at` which take `Renderable` and `DrawType`
- Renderables
- Circle
- Rect
- Line
- DrawType
- Filled
- Stroke
- Everything takes `Coord` instead of mint::Point2
- Coord implements to/from Point2, (isize,isize), etc
- Also `TextPos::Coord` renamed to `ColRow` to make params clearer
- Lerp moved
### Version 0.2.1
- Fix `contains()` so container and point types don't have to be the same
- Remove `self` param from `get_px_for_char` and `get_text_size` as they didn't use it
- Add `is_on_screen` method to check if a point will be on screen after translation
- Fix issue where alpha wasn't applied when setting pixels
### Version 0.2.0
- Remove const size for Graphics as it makes using it too awkward, instead graphics will just use a slice
### Version 0.1.0
- Initial release