Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
LCD_ST7735/Bitmap1bpp.cpp@0:d85c449aca6d, 2015-01-28 (annotated)
- Committer:
- taylorza
- Date:
- Wed Jan 28 03:26:07 2015 +0000
- Revision:
- 0:d85c449aca6d
Working maze scrolling, pre-maze compression
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| taylorza | 0:d85c449aca6d | 1 | #include "mbed.h" |
| taylorza | 0:d85c449aca6d | 2 | #include "Bitmap1bpp.h" |
| taylorza | 0:d85c449aca6d | 3 | |
| taylorza | 0:d85c449aca6d | 4 | Bitmap1bpp::Bitmap1bpp(uint16_t width, uint16_t height): |
| taylorza | 0:d85c449aca6d | 5 | _width(width), |
| taylorza | 0:d85c449aca6d | 6 | _height(height), |
| taylorza | 0:d85c449aca6d | 7 | _stride((width >> 3) + ((width & 0x07) ? 1 : 0)), |
| taylorza | 0:d85c449aca6d | 8 | _pBitmapData(new uint8_t[_stride * height]) |
| taylorza | 0:d85c449aca6d | 9 | { |
| taylorza | 0:d85c449aca6d | 10 | |
| taylorza | 0:d85c449aca6d | 11 | } |
| taylorza | 0:d85c449aca6d | 12 | |
| taylorza | 0:d85c449aca6d | 13 | Bitmap1bpp::~Bitmap1bpp() |
| taylorza | 0:d85c449aca6d | 14 | { |
| taylorza | 0:d85c449aca6d | 15 | if (_pBitmapData != NULL) |
| taylorza | 0:d85c449aca6d | 16 | { |
| taylorza | 0:d85c449aca6d | 17 | delete []_pBitmapData; |
| taylorza | 0:d85c449aca6d | 18 | _pBitmapData = NULL; |
| taylorza | 0:d85c449aca6d | 19 | } |
| taylorza | 0:d85c449aca6d | 20 | } |
| taylorza | 0:d85c449aca6d | 21 | |
| taylorza | 0:d85c449aca6d | 22 | void Bitmap1bpp::clear() |
| taylorza | 0:d85c449aca6d | 23 | { |
| taylorza | 0:d85c449aca6d | 24 | memset(_pBitmapData, 0, _stride * _height); |
| taylorza | 0:d85c449aca6d | 25 | } |
| taylorza | 0:d85c449aca6d | 26 | |
| taylorza | 0:d85c449aca6d | 27 | void Bitmap1bpp::setPixel(int16_t x, int16_t y, uint16_t color) |
| taylorza | 0:d85c449aca6d | 28 | { |
| taylorza | 0:d85c449aca6d | 29 | if (x < 0 || x >= _width || y < 0 || y >= _height) return; |
| taylorza | 0:d85c449aca6d | 30 | |
| taylorza | 0:d85c449aca6d | 31 | uint8_t mask = 1 << (7 - (x % 8)); |
| taylorza | 0:d85c449aca6d | 32 | uint8_t *p = _pBitmapData + ((y * _stride) + (x / 8)); |
| taylorza | 0:d85c449aca6d | 33 | |
| taylorza | 0:d85c449aca6d | 34 | if (color) *p |= mask; else *p &= ~mask; |
| taylorza | 0:d85c449aca6d | 35 | } |