Fork of Silabs MemoryLCD library
Dependents: demoUI whrmDemoUI Host_Software_MAX32664GWEB_HR_EXTENDED Host_Software_MAX32664GWEC_SpO2_HR-_EXTE ... more
C++ library for Sharp Microelectronics 1.28 inch LCD TFT, LS013B7DH03, SPI bus. Forked from Silicon Labs MemoryLCD display driver.
GraphicsDisplay.cpp@5:26851f9655cf, 2015-06-09 (annotated)
- Committer:
- srodk
- Date:
- Tue Jun 09 14:48:20 2015 +0000
- Revision:
- 5:26851f9655cf
- Parent:
- 0:a0faa86660d4
- Child:
- 11:0f8ae10b308d
Added circle function
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Steven Cooreman |
0:a0faa86660d4 | 1 | /* mbed GraphicsDisplay Display Library Base Class |
Steven Cooreman |
0:a0faa86660d4 | 2 | * Copyright (c) 2007-2009 sford |
Steven Cooreman |
0:a0faa86660d4 | 3 | * Released under the MIT License: http://mbed.org/license/mit |
Steven Cooreman |
0:a0faa86660d4 | 4 | */ |
Steven Cooreman |
0:a0faa86660d4 | 5 | |
Steven Cooreman |
0:a0faa86660d4 | 6 | #include "GraphicsDisplay.h" |
Steven Cooreman |
0:a0faa86660d4 | 7 | |
Steven Cooreman |
0:a0faa86660d4 | 8 | const unsigned char FONT8x8[97][8] = { |
Steven Cooreman |
0:a0faa86660d4 | 9 | {0x08,0x08,0x08,0x00,0x00,0x00,0x00,0x00}, // columns, rows, num_bytes_per_char |
Steven Cooreman |
0:a0faa86660d4 | 10 | {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, // space 0x20 |
Steven Cooreman |
0:a0faa86660d4 | 11 | {0x30,0x78,0x78,0x30,0x30,0x00,0x30,0x00}, // ! |
Steven Cooreman |
0:a0faa86660d4 | 12 | {0x6C,0x6C,0x6C,0x00,0x00,0x00,0x00,0x00}, // " |
Steven Cooreman |
0:a0faa86660d4 | 13 | {0x6C,0x6C,0xFE,0x6C,0xFE,0x6C,0x6C,0x00}, // # |
Steven Cooreman |
0:a0faa86660d4 | 14 | {0x18,0x3E,0x60,0x3C,0x06,0x7C,0x18,0x00}, // $ |
Steven Cooreman |
0:a0faa86660d4 | 15 | {0x00,0x63,0x66,0x0C,0x18,0x33,0x63,0x00}, // % |
Steven Cooreman |
0:a0faa86660d4 | 16 | {0x1C,0x36,0x1C,0x3B,0x6E,0x66,0x3B,0x00}, // & |
Steven Cooreman |
0:a0faa86660d4 | 17 | {0x30,0x30,0x60,0x00,0x00,0x00,0x00,0x00}, // ' |
Steven Cooreman |
0:a0faa86660d4 | 18 | {0x0C,0x18,0x30,0x30,0x30,0x18,0x0C,0x00}, // ( |
Steven Cooreman |
0:a0faa86660d4 | 19 | {0x30,0x18,0x0C,0x0C,0x0C,0x18,0x30,0x00}, // ) |
Steven Cooreman |
0:a0faa86660d4 | 20 | {0x00,0x66,0x3C,0xFF,0x3C,0x66,0x00,0x00}, // * |
Steven Cooreman |
0:a0faa86660d4 | 21 | {0x00,0x30,0x30,0xFC,0x30,0x30,0x00,0x00}, // + |
Steven Cooreman |
0:a0faa86660d4 | 22 | {0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x30}, // , |
Steven Cooreman |
0:a0faa86660d4 | 23 | {0x00,0x00,0x00,0x7E,0x00,0x00,0x00,0x00}, // - |
Steven Cooreman |
0:a0faa86660d4 | 24 | {0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x00}, // . |
Steven Cooreman |
0:a0faa86660d4 | 25 | {0x03,0x06,0x0C,0x18,0x30,0x60,0x40,0x00}, // / (forward slash) |
Steven Cooreman |
0:a0faa86660d4 | 26 | {0x3E,0x63,0x63,0x6B,0x63,0x63,0x3E,0x00}, // 0 0x30 |
Steven Cooreman |
0:a0faa86660d4 | 27 | {0x18,0x38,0x58,0x18,0x18,0x18,0x7E,0x00}, // 1 |
Steven Cooreman |
0:a0faa86660d4 | 28 | {0x3C,0x66,0x06,0x1C,0x30,0x66,0x7E,0x00}, // 2 |
Steven Cooreman |
0:a0faa86660d4 | 29 | {0x3C,0x66,0x06,0x1C,0x06,0x66,0x3C,0x00}, // 3 |
Steven Cooreman |
0:a0faa86660d4 | 30 | {0x0E,0x1E,0x36,0x66,0x7F,0x06,0x0F,0x00}, // 4 |
Steven Cooreman |
0:a0faa86660d4 | 31 | {0x7E,0x60,0x7C,0x06,0x06,0x66,0x3C,0x00}, // 5 |
Steven Cooreman |
0:a0faa86660d4 | 32 | {0x1C,0x30,0x60,0x7C,0x66,0x66,0x3C,0x00}, // 6 |
Steven Cooreman |
0:a0faa86660d4 | 33 | {0x7E,0x66,0x06,0x0C,0x18,0x18,0x18,0x00}, // 7 |
Steven Cooreman |
0:a0faa86660d4 | 34 | {0x3C,0x66,0x66,0x3C,0x66,0x66,0x3C,0x00}, // 8 |
Steven Cooreman |
0:a0faa86660d4 | 35 | {0x3C,0x66,0x66,0x3E,0x06,0x0C,0x38,0x00}, // 9 |
Steven Cooreman |
0:a0faa86660d4 | 36 | {0x00,0x18,0x18,0x00,0x00,0x18,0x18,0x00}, // : |
Steven Cooreman |
0:a0faa86660d4 | 37 | {0x00,0x18,0x18,0x00,0x00,0x18,0x18,0x30}, // ; |
Steven Cooreman |
0:a0faa86660d4 | 38 | {0x0C,0x18,0x30,0x60,0x30,0x18,0x0C,0x00}, // < |
Steven Cooreman |
0:a0faa86660d4 | 39 | {0x00,0x00,0x7E,0x00,0x00,0x7E,0x00,0x00}, // = |
Steven Cooreman |
0:a0faa86660d4 | 40 | {0x30,0x18,0x0C,0x06,0x0C,0x18,0x30,0x00}, // > |
Steven Cooreman |
0:a0faa86660d4 | 41 | {0x3C,0x66,0x06,0x0C,0x18,0x00,0x18,0x00}, // ? |
Steven Cooreman |
0:a0faa86660d4 | 42 | {0x3E,0x63,0x6F,0x69,0x6F,0x60,0x3E,0x00}, // @ 0x40 |
Steven Cooreman |
0:a0faa86660d4 | 43 | {0x18,0x3C,0x66,0x66,0x7E,0x66,0x66,0x00}, // A |
Steven Cooreman |
0:a0faa86660d4 | 44 | {0x7E,0x33,0x33,0x3E,0x33,0x33,0x7E,0x00}, // B |
Steven Cooreman |
0:a0faa86660d4 | 45 | {0x1E,0x33,0x60,0x60,0x60,0x33,0x1E,0x00}, // C |
Steven Cooreman |
0:a0faa86660d4 | 46 | {0x7C,0x36,0x33,0x33,0x33,0x36,0x7C,0x00}, // D |
Steven Cooreman |
0:a0faa86660d4 | 47 | {0x7F,0x31,0x34,0x3C,0x34,0x31,0x7F,0x00}, // E |
Steven Cooreman |
0:a0faa86660d4 | 48 | {0x7F,0x31,0x34,0x3C,0x34,0x30,0x78,0x00}, // F |
Steven Cooreman |
0:a0faa86660d4 | 49 | {0x1E,0x33,0x60,0x60,0x67,0x33,0x1F,0x00}, // G |
Steven Cooreman |
0:a0faa86660d4 | 50 | {0x66,0x66,0x66,0x7E,0x66,0x66,0x66,0x00}, // H |
Steven Cooreman |
0:a0faa86660d4 | 51 | {0x3C,0x18,0x18,0x18,0x18,0x18,0x3C,0x00}, // I |
Steven Cooreman |
0:a0faa86660d4 | 52 | {0x0F,0x06,0x06,0x06,0x66,0x66,0x3C,0x00}, // J |
Steven Cooreman |
0:a0faa86660d4 | 53 | {0x73,0x33,0x36,0x3C,0x36,0x33,0x73,0x00}, // K |
Steven Cooreman |
0:a0faa86660d4 | 54 | {0x78,0x30,0x30,0x30,0x31,0x33,0x7F,0x00}, // L |
Steven Cooreman |
0:a0faa86660d4 | 55 | {0x63,0x77,0x7F,0x7F,0x6B,0x63,0x63,0x00}, // M |
Steven Cooreman |
0:a0faa86660d4 | 56 | {0x63,0x73,0x7B,0x6F,0x67,0x63,0x63,0x00}, // N |
Steven Cooreman |
0:a0faa86660d4 | 57 | {0x3E,0x63,0x63,0x63,0x63,0x63,0x3E,0x00}, // O |
Steven Cooreman |
0:a0faa86660d4 | 58 | {0x7E,0x33,0x33,0x3E,0x30,0x30,0x78,0x00}, // P 0x50 |
Steven Cooreman |
0:a0faa86660d4 | 59 | {0x3C,0x66,0x66,0x66,0x6E,0x3C,0x0E,0x00}, // Q |
Steven Cooreman |
0:a0faa86660d4 | 60 | {0x7E,0x33,0x33,0x3E,0x36,0x33,0x73,0x00}, // R |
Steven Cooreman |
0:a0faa86660d4 | 61 | {0x3C,0x66,0x30,0x18,0x0C,0x66,0x3C,0x00}, // S |
Steven Cooreman |
0:a0faa86660d4 | 62 | {0x7E,0x5A,0x18,0x18,0x18,0x18,0x3C,0x00}, // T |
Steven Cooreman |
0:a0faa86660d4 | 63 | {0x66,0x66,0x66,0x66,0x66,0x66,0x7E,0x00}, // U |
Steven Cooreman |
0:a0faa86660d4 | 64 | {0x66,0x66,0x66,0x66,0x66,0x3C,0x18,0x00}, // V |
Steven Cooreman |
0:a0faa86660d4 | 65 | {0x63,0x63,0x63,0x6B,0x7F,0x77,0x63,0x00}, // W |
Steven Cooreman |
0:a0faa86660d4 | 66 | {0x63,0x63,0x36,0x1C,0x1C,0x36,0x63,0x00}, // X |
Steven Cooreman |
0:a0faa86660d4 | 67 | {0x66,0x66,0x66,0x3C,0x18,0x18,0x3C,0x00}, // Y |
Steven Cooreman |
0:a0faa86660d4 | 68 | {0x7F,0x63,0x46,0x0C,0x19,0x33,0x7F,0x00}, // Z |
Steven Cooreman |
0:a0faa86660d4 | 69 | {0x3C,0x30,0x30,0x30,0x30,0x30,0x3C,0x00}, // [ |
Steven Cooreman |
0:a0faa86660d4 | 70 | {0x60,0x30,0x18,0x0C,0x06,0x03,0x01,0x00}, // \ (back slash) |
Steven Cooreman |
0:a0faa86660d4 | 71 | {0x3C,0x0C,0x0C,0x0C,0x0C,0x0C,0x3C,0x00}, // ] |
Steven Cooreman |
0:a0faa86660d4 | 72 | {0x08,0x1C,0x36,0x63,0x00,0x00,0x00,0x00}, // ^ |
Steven Cooreman |
0:a0faa86660d4 | 73 | {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF}, // _ |
Steven Cooreman |
0:a0faa86660d4 | 74 | {0x18,0x18,0x0C,0x00,0x00,0x00,0x00,0x00}, // ` 0x60 |
Steven Cooreman |
0:a0faa86660d4 | 75 | {0x00,0x00,0x3C,0x06,0x3E,0x66,0x3B,0x00}, // a |
Steven Cooreman |
0:a0faa86660d4 | 76 | {0x70,0x30,0x3E,0x33,0x33,0x33,0x6E,0x00}, // b |
Steven Cooreman |
0:a0faa86660d4 | 77 | {0x00,0x00,0x3C,0x66,0x60,0x66,0x3C,0x00}, // c |
Steven Cooreman |
0:a0faa86660d4 | 78 | {0x0E,0x06,0x3E,0x66,0x66,0x66,0x3B,0x00}, // d |
Steven Cooreman |
0:a0faa86660d4 | 79 | {0x00,0x00,0x3C,0x66,0x7E,0x60,0x3C,0x00}, // e |
Steven Cooreman |
0:a0faa86660d4 | 80 | {0x1C,0x36,0x30,0x78,0x30,0x30,0x78,0x00}, // f |
Steven Cooreman |
0:a0faa86660d4 | 81 | {0x00,0x00,0x3B,0x66,0x66,0x3E,0x06,0x7C}, // g |
Steven Cooreman |
0:a0faa86660d4 | 82 | {0x70,0x30,0x36,0x3B,0x33,0x33,0x73,0x00}, // h |
Steven Cooreman |
0:a0faa86660d4 | 83 | {0x18,0x00,0x38,0x18,0x18,0x18,0x3C,0x00}, // i |
Steven Cooreman |
0:a0faa86660d4 | 84 | {0x06,0x00,0x06,0x06,0x06,0x66,0x66,0x3C}, // j |
Steven Cooreman |
0:a0faa86660d4 | 85 | {0x70,0x30,0x33,0x36,0x3C,0x36,0x73,0x00}, // k |
Steven Cooreman |
0:a0faa86660d4 | 86 | {0x38,0x18,0x18,0x18,0x18,0x18,0x3C,0x00}, // l |
Steven Cooreman |
0:a0faa86660d4 | 87 | {0x00,0x00,0x66,0x7F,0x7F,0x6B,0x63,0x00}, // m |
Steven Cooreman |
0:a0faa86660d4 | 88 | {0x00,0x00,0x7C,0x66,0x66,0x66,0x66,0x00}, // n |
Steven Cooreman |
0:a0faa86660d4 | 89 | {0x00,0x00,0x3C,0x66,0x66,0x66,0x3C,0x00}, // o |
Steven Cooreman |
0:a0faa86660d4 | 90 | {0x00,0x00,0x6E,0x33,0x33,0x3E,0x30,0x78}, // p |
Steven Cooreman |
0:a0faa86660d4 | 91 | {0x00,0x00,0x3B,0x66,0x66,0x3E,0x06,0x0F}, // q |
Steven Cooreman |
0:a0faa86660d4 | 92 | {0x00,0x00,0x6E,0x3B,0x33,0x30,0x78,0x00}, // r |
Steven Cooreman |
0:a0faa86660d4 | 93 | {0x00,0x00,0x3E,0x60,0x3C,0x06,0x7C,0x00}, // s |
Steven Cooreman |
0:a0faa86660d4 | 94 | {0x08,0x18,0x3E,0x18,0x18,0x1A,0x0C,0x00}, // t |
Steven Cooreman |
0:a0faa86660d4 | 95 | {0x00,0x00,0x66,0x66,0x66,0x66,0x3B,0x00}, // u |
Steven Cooreman |
0:a0faa86660d4 | 96 | {0x00,0x00,0x66,0x66,0x66,0x3C,0x18,0x00}, // v |
Steven Cooreman |
0:a0faa86660d4 | 97 | {0x00,0x00,0x63,0x6B,0x7F,0x7F,0x36,0x00}, // w |
Steven Cooreman |
0:a0faa86660d4 | 98 | {0x00,0x00,0x63,0x36,0x1C,0x36,0x63,0x00}, // x |
Steven Cooreman |
0:a0faa86660d4 | 99 | {0x00,0x00,0x66,0x66,0x66,0x3E,0x06,0x7C}, // y |
Steven Cooreman |
0:a0faa86660d4 | 100 | {0x00,0x00,0x7E,0x4C,0x18,0x32,0x7E,0x00}, // z |
Steven Cooreman |
0:a0faa86660d4 | 101 | {0x0E,0x18,0x18,0x70,0x18,0x18,0x0E,0x00}, // { |
Steven Cooreman |
0:a0faa86660d4 | 102 | {0x0C,0x0C,0x0C,0x00,0x0C,0x0C,0x0C,0x00}, // | |
Steven Cooreman |
0:a0faa86660d4 | 103 | {0x70,0x18,0x18,0x0E,0x18,0x18,0x70,0x00}, // } |
Steven Cooreman |
0:a0faa86660d4 | 104 | {0x3B,0x6E,0x00,0x00,0x00,0x00,0x00,0x00}, // ~ |
Steven Cooreman |
0:a0faa86660d4 | 105 | {0x1C,0x36,0x36,0x1C,0x00,0x00,0x00,0x00}}; // DEL |
Steven Cooreman |
0:a0faa86660d4 | 106 | |
Steven Cooreman |
0:a0faa86660d4 | 107 | GraphicsDisplay::GraphicsDisplay(const char *name):TextDisplay(name) { |
Steven Cooreman |
0:a0faa86660d4 | 108 | foreground((uint16_t)Black); |
Steven Cooreman |
0:a0faa86660d4 | 109 | background((uint16_t)White); |
Steven Cooreman |
0:a0faa86660d4 | 110 | // current pixel location |
Steven Cooreman |
0:a0faa86660d4 | 111 | _x = 0; |
Steven Cooreman |
0:a0faa86660d4 | 112 | _y = 0; |
Steven Cooreman |
0:a0faa86660d4 | 113 | // window settings |
Steven Cooreman |
0:a0faa86660d4 | 114 | _x1 = 0; |
Steven Cooreman |
0:a0faa86660d4 | 115 | _x2 = 0; |
Steven Cooreman |
0:a0faa86660d4 | 116 | _y1 = 0; |
Steven Cooreman |
0:a0faa86660d4 | 117 | _y2 = 0; |
Steven Cooreman |
0:a0faa86660d4 | 118 | } |
Steven Cooreman |
0:a0faa86660d4 | 119 | |
Steven Cooreman |
0:a0faa86660d4 | 120 | void GraphicsDisplay::character(int column, int row, int value) { |
Steven Cooreman |
0:a0faa86660d4 | 121 | blitbit(column * 8, row * 8, 8, 8, (char*)&(FONT8x8[value - 0x1F][0])); |
Steven Cooreman |
0:a0faa86660d4 | 122 | } |
Steven Cooreman |
0:a0faa86660d4 | 123 | |
Steven Cooreman |
0:a0faa86660d4 | 124 | void GraphicsDisplay::window(int x, int y, int w, int h) { |
Steven Cooreman |
0:a0faa86660d4 | 125 | // current pixel location |
Steven Cooreman |
0:a0faa86660d4 | 126 | _x = x; |
Steven Cooreman |
0:a0faa86660d4 | 127 | _y = y; |
Steven Cooreman |
0:a0faa86660d4 | 128 | // window settings |
Steven Cooreman |
0:a0faa86660d4 | 129 | _x1 = x; |
Steven Cooreman |
0:a0faa86660d4 | 130 | _x2 = x + w - 1; |
Steven Cooreman |
0:a0faa86660d4 | 131 | _y1 = y; |
Steven Cooreman |
0:a0faa86660d4 | 132 | _y2 = y + h - 1; |
Steven Cooreman |
0:a0faa86660d4 | 133 | } |
Steven Cooreman |
0:a0faa86660d4 | 134 | |
Steven Cooreman |
0:a0faa86660d4 | 135 | void GraphicsDisplay::putp(int colour) { |
Steven Cooreman |
0:a0faa86660d4 | 136 | // put pixel at current pixel location |
Steven Cooreman |
0:a0faa86660d4 | 137 | pixel(_x, _y, colour); |
Steven Cooreman |
0:a0faa86660d4 | 138 | // update pixel location based on window settings |
Steven Cooreman |
0:a0faa86660d4 | 139 | _x++; |
Steven Cooreman |
0:a0faa86660d4 | 140 | if(_x > _x2) { |
Steven Cooreman |
0:a0faa86660d4 | 141 | _x = _x1; |
Steven Cooreman |
0:a0faa86660d4 | 142 | _y++; |
Steven Cooreman |
0:a0faa86660d4 | 143 | if(_y > _y2) { |
Steven Cooreman |
0:a0faa86660d4 | 144 | _y = _y1; |
Steven Cooreman |
0:a0faa86660d4 | 145 | } |
Steven Cooreman |
0:a0faa86660d4 | 146 | } |
Steven Cooreman |
0:a0faa86660d4 | 147 | } |
Steven Cooreman |
0:a0faa86660d4 | 148 | |
Steven Cooreman |
0:a0faa86660d4 | 149 | void GraphicsDisplay::fill(int x, int y, int w, int h, int colour) { |
Steven Cooreman |
0:a0faa86660d4 | 150 | window(x, y, w, h); |
Steven Cooreman |
0:a0faa86660d4 | 151 | for(int i=0; i<w*h; i++) { |
Steven Cooreman |
0:a0faa86660d4 | 152 | putp(colour); |
Steven Cooreman |
0:a0faa86660d4 | 153 | } |
Steven Cooreman |
0:a0faa86660d4 | 154 | } |
srodk | 5:26851f9655cf | 155 | |
srodk | 5:26851f9655cf | 156 | void GraphicsDisplay::circle(int x, int y, int r,int colour){ |
srodk | 5:26851f9655cf | 157 | int ce = -r; |
srodk | 5:26851f9655cf | 158 | int cx = r; |
srodk | 5:26851f9655cf | 159 | int cy = 0; |
srodk | 5:26851f9655cf | 160 | while(cx >= cy){ |
srodk | 5:26851f9655cf | 161 | pixel(x+cx,y+cy,colour); |
srodk | 5:26851f9655cf | 162 | pixel(x-cx,y-cy,colour); |
srodk | 5:26851f9655cf | 163 | pixel(x-cx,y+cy,colour); |
srodk | 5:26851f9655cf | 164 | pixel(x+cx,y-cy,colour); |
srodk | 5:26851f9655cf | 165 | pixel(x+cy,y+cx,colour); |
srodk | 5:26851f9655cf | 166 | pixel(x-cy,y+cx,colour); |
srodk | 5:26851f9655cf | 167 | pixel(x-cy,y-cx,colour); |
srodk | 5:26851f9655cf | 168 | pixel(x+cy,y-cx,colour); |
srodk | 5:26851f9655cf | 169 | ce += 2*cy++ + 1; |
srodk | 5:26851f9655cf | 170 | if(ce >= 0){ |
srodk | 5:26851f9655cf | 171 | ce -= 2*cx---1; |
srodk | 5:26851f9655cf | 172 | } |
srodk | 5:26851f9655cf | 173 | |
srodk | 5:26851f9655cf | 174 | } |
srodk | 5:26851f9655cf | 175 | |
srodk | 5:26851f9655cf | 176 | } |
Steven Cooreman |
0:a0faa86660d4 | 177 | |
Steven Cooreman |
0:a0faa86660d4 | 178 | void GraphicsDisplay::cls() { |
Steven Cooreman |
0:a0faa86660d4 | 179 | fill(0, 0, width(), height(), _background); |
Steven Cooreman |
0:a0faa86660d4 | 180 | } |
Steven Cooreman |
0:a0faa86660d4 | 181 | |
Steven Cooreman |
0:a0faa86660d4 | 182 | void GraphicsDisplay::blit(int x, int y, int w, int h, const int *colour) { |
Steven Cooreman |
0:a0faa86660d4 | 183 | window(x, y, w, h); |
Steven Cooreman |
0:a0faa86660d4 | 184 | for(int i=0; i<w*h; i++) { |
Steven Cooreman |
0:a0faa86660d4 | 185 | putp(colour[i]); |
Steven Cooreman |
0:a0faa86660d4 | 186 | } |
Steven Cooreman |
0:a0faa86660d4 | 187 | } |
Steven Cooreman |
0:a0faa86660d4 | 188 | |
Steven Cooreman |
0:a0faa86660d4 | 189 | void GraphicsDisplay::blitbit(int x, int y, int w, int h, const char* colour) { |
Steven Cooreman |
0:a0faa86660d4 | 190 | window(x, y, w, h); |
Steven Cooreman |
0:a0faa86660d4 | 191 | for(int i = 0; i < w*h; i++) { |
Steven Cooreman |
0:a0faa86660d4 | 192 | char byte = colour[i >> 3]; |
Steven Cooreman |
0:a0faa86660d4 | 193 | int offset = i & 0x7; |
Steven Cooreman |
0:a0faa86660d4 | 194 | int c = ((byte << (offset)) & 0x80) ? _foreground : _background; |
Steven Cooreman |
0:a0faa86660d4 | 195 | putp(c); |
Steven Cooreman |
0:a0faa86660d4 | 196 | } |
Steven Cooreman |
0:a0faa86660d4 | 197 | } |
Steven Cooreman |
0:a0faa86660d4 | 198 | |
Steven Cooreman |
0:a0faa86660d4 | 199 | int GraphicsDisplay::columns() { |
Steven Cooreman |
0:a0faa86660d4 | 200 | return width() / 8; |
Steven Cooreman |
0:a0faa86660d4 | 201 | } |
Steven Cooreman |
0:a0faa86660d4 | 202 | |
Steven Cooreman |
0:a0faa86660d4 | 203 | int GraphicsDisplay::rows() { |
Steven Cooreman |
0:a0faa86660d4 | 204 | return height() / 8; |
Steven Cooreman |
0:a0faa86660d4 | 205 | } |
Steven Cooreman |
0:a0faa86660d4 | 206 |