Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(71)

Side by Side Diff: target/dartuinoP0/display/memory_lcd_mono.c

Issue 1741463002: [target][dartuinoP0] Allow for varying framebuffer format and stride. (Closed) Base URL: https://github.com/littlekernel/lk.git@master
Patch Set: Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2015 Gurjant Kalsi <me@gurjantkalsi.com> 2 * Copyright (c) 2016 Craig Stout <cstout@chromium.org>
3 * 3 *
4 * Permission is hereby granted, free of charge, to any person obtaining 4 * Permission is hereby granted, free of charge, to any person obtaining
5 * a copy of this software and associated documentation files 5 * a copy of this software and associated documentation files
6 * (the "Software"), to deal in the Software without restriction, 6 * (the "Software"), to deal in the Software without restriction,
7 * including without limitation the rights to use, copy, modify, merge, 7 * including without limitation the rights to use, copy, modify, merge,
8 * publish, distribute, sublicense, and/or sell copies of the Software, 8 * publish, distribute, sublicense, and/or sell copies of the Software,
9 * and to permit persons to whom the Software is furnished to do so, 9 * and to permit persons to whom the Software is furnished to do so,
10 * subject to the following conditions: 10 * subject to the following conditions:
11 * 11 *
12 * The above copyright notice and this permission notice shall be 12 * The above copyright notice and this permission notice shall be
13 * included in all copies or substantial portions of the Software. 13 * included in all copies or substantial portions of the Software.
14 * 14 *
15 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 15 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 16 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 17 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
18 * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 18 * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
19 * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 19 * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
20 * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 20 * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
21 * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22 */ 22 */
23 23
24 // 2.7 Inch Monocromatic Sharp Memory LCD 24 #if defined (LCD_LS027B7DH01)
25 #include <target/display/LS027B7DH01.h>
26 #elif defined (LCD_LS013B7DH03)
27 #include <target/display/LS013B7DH03.h>
28 #else
29 #error Undefined display header
30 #endif
25 31
26 #include <target/display/LS027B7DH01.h>
27 #include <string.h> 32 #include <string.h>
33 #include <assert.h>
28 34
29 #define SET_BIT(BUF, BITNUM) ((BUF)[(BITNUM) >> 3] |= (0xff & (0x1 << ((BITNUM) & 0x07)))) 35 #define SET_BIT(BUF, BITNUM) ((BUF)[(BITNUM) >> 3] |= (0xff & (0x1 << ((BITNUM) & 0x07))))
30 36
31 uint8_t lcd_get_line(uint8_t *framebuffer, uint8_t idx, uint8_t *result) 37 uint8_t lcd_get_line(uint8_t *framebuffer, uint8_t idx, uint8_t *result)
32 { 38 {
33 framebuffer += MLCD_WIDTH * idx; 39 framebuffer += FB_STRIDE * idx;
34 40
41 #if FB_FORMAT == DISPLAY_FORMAT_MONO_1
42 memcpy(result, framebuffer, MLCD_BYTES_LINE);
43
44 #elif FB_FORMAT == DISPLAY_FORMAT_MONO_8
35 memset(result, 0, MLCD_BYTES_LINE); 45 memset(result, 0, MLCD_BYTES_LINE);
36
37 for (uint i = 0; i < MLCD_WIDTH; ++i) { 46 for (uint i = 0; i < MLCD_WIDTH; ++i) {
38 if (framebuffer[i] > 128) { 47 if (framebuffer[i] > 128) {
39 SET_BIT(result, i); 48 SET_BIT(result, i);
40 } 49 }
41 } 50 }
42 51
52 #else
53 #error Unhandled FB_FORMAT
54 #endif
55
43 return MLCD_BYTES_LINE; 56 return MLCD_BYTES_LINE;
44 } 57 }
OLDNEW
« no previous file with comments | « target/dartuinoP0/display/LS027B7DH01.c ('k') | target/dartuinoP0/include/target/display/LS013B7DH03.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698