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

Unified 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « target/dartuinoP0/display/LS013B7DH06.c ('k') | target/dartuinoP0/include/target/display/LS013B7DH03.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: target/dartuinoP0/display/memory_lcd_mono.c
diff --git a/target/dartuinoP0/display/memory_lcd_mono.c b/target/dartuinoP0/display/memory_lcd_mono.c
index 7c09c07bad28eafe1f42b621a711f3251ab72c9c..959afee4dd6565cec76a95a5bca724287d3e6a67 100644
--- a/target/dartuinoP0/display/memory_lcd_mono.c
+++ b/target/dartuinoP0/display/memory_lcd_mono.c
@@ -32,26 +32,23 @@
#include <string.h>
#include <assert.h>
-#define SET_BIT(BUF, BITNUM) ((BUF)[(BITNUM) >> 3] |= (0xff & (0x1 << ((BITNUM) & 0x07))))
+#define SET_BIT(BUF, BITNUM) ((BUF)[(BITNUM) >> 3] |= (0x1 << ((BITNUM) & 0x07)))
-uint8_t lcd_get_line(uint8_t *framebuffer, uint8_t idx, uint8_t *result)
+uint8_t lcd_get_line(struct display_image *image, uint8_t idx, uint8_t *result)
{
- framebuffer += FB_STRIDE * idx;
-
-#if FB_FORMAT == DISPLAY_FORMAT_MONO_1
- memcpy(result, framebuffer, MLCD_BYTES_LINE);
-
-#elif FB_FORMAT == DISPLAY_FORMAT_MONO_8
- memset(result, 0, MLCD_BYTES_LINE);
- for (uint i = 0; i < MLCD_WIDTH; ++i) {
- if (framebuffer[i] > 128) {
- SET_BIT(result, i);
+ uint8_t *framebuffer = (uint8_t *) image->pixels + image->rowbytes * idx;
+
+ if (image->format == IMAGE_FORMAT_MONO_1) {
+ memcpy(result, framebuffer, MLCD_BYTES_LINE);
+ } else if (image->format == IMAGE_FORMAT_MONO_8) {
+ memset(result, 0, MLCD_BYTES_LINE);
+ for (uint i = 0; i < MLCD_WIDTH; ++i) {
+ if (framebuffer[i] > 128) {
+ SET_BIT(result, i);
+ }
}
+ } else {
+ DEBUG_ASSERT(false);
}
-
-#else
-#error Unhandled FB_FORMAT
-#endif
-
return MLCD_BYTES_LINE;
}
« 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