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

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

Issue 1777783003: [display] Refactor to avoid implicit framebuffer allocation. (Closed) Base URL: https://github.com/littlekernel/lk.git@master
Patch Set: fix stride confusion Created 4 years, 9 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) 2016 Craig Stout <cstout@chromium.org> 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:
(...skipping 14 matching lines...) Expand all
25 #include <target/display/LS027B7DH01.h> 25 #include <target/display/LS027B7DH01.h>
26 #elif defined (LCD_LS013B7DH03) 26 #elif defined (LCD_LS013B7DH03)
27 #include <target/display/LS013B7DH03.h> 27 #include <target/display/LS013B7DH03.h>
28 #else 28 #else
29 #error Undefined display header 29 #error Undefined display header
30 #endif 30 #endif
31 31
32 #include <string.h> 32 #include <string.h>
33 #include <assert.h> 33 #include <assert.h>
34 34
35 #define SET_BIT(BUF, BITNUM) ((BUF)[(BITNUM) >> 3] |= (0xff & (0x1 << ((BITNUM) & 0x07)))) 35 #define SET_BIT(BUF, BITNUM) ((BUF)[(BITNUM) >> 3] |= (0x1 << ((BITNUM) & 0x07)) )
36 36
37 uint8_t lcd_get_line(uint8_t *framebuffer, uint8_t idx, uint8_t *result) 37 uint8_t lcd_get_line(struct display_image *image, uint8_t idx, uint8_t *result)
38 { 38 {
39 framebuffer += FB_STRIDE * idx; 39 uint8_t *framebuffer = (uint8_t *) image->pixels + image->rowbytes * idx;
40 40
41 #if FB_FORMAT == DISPLAY_FORMAT_MONO_1 41 if (image->format == IMAGE_FORMAT_MONO_1) {
42 memcpy(result, framebuffer, MLCD_BYTES_LINE); 42 memcpy(result, framebuffer, MLCD_BYTES_LINE);
43 43 } else if (image->format == IMAGE_FORMAT_MONO_8) {
44 #elif FB_FORMAT == DISPLAY_FORMAT_MONO_8 44 memset(result, 0, MLCD_BYTES_LINE);
45 memset(result, 0, MLCD_BYTES_LINE); 45 for (uint i = 0; i < MLCD_WIDTH; ++i) {
46 for (uint i = 0; i < MLCD_WIDTH; ++i) { 46 if (framebuffer[i] > 128) {
47 if (framebuffer[i] > 128) { 47 SET_BIT(result, i);
48 SET_BIT(result, i); 48 }
49 } 49 }
50 } else {
51 DEBUG_ASSERT(false);
50 } 52 }
51
52 #else
53 #error Unhandled FB_FORMAT
54 #endif
55
56 return MLCD_BYTES_LINE; 53 return MLCD_BYTES_LINE;
57 } 54 }
OLDNEW
« no previous file with comments | « target/dartuinoP0/display/LS013B7DH06.c ('k') | target/dartuinoP0/include/target/display/LS013B7DH03.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698