Compare commits

...

4 Commits

Author SHA1 Message Date
Ivaylo Ivanov
108caaa77f
Merge pull request #14 from predefine/master
j4lte: fix PAYLOAD_ENTRY
2024-03-12 23:10:09 +02:00
predefine
e3ecb8206c j4lte: fix PAYLOAD_ENTRY
0x40008000 is used by kernel, and can be rewrited by new payload
2024-03-13 04:02:43 +07:00
Ivaylo Ivanov
0147763114
Merge pull request #9 from predefine/fix-bgra
add BGRA support
2024-03-12 22:57:03 +02:00
predefine
61bb21275c add BGRA support 2023-11-10 23:06:34 +07:00
3 changed files with 14 additions and 5 deletions

View File

@ -1,5 +1,4 @@
menu "Device Support" menu "Device Support"
config APPLE_N61AP config APPLE_N61AP
bool "Support for Apple iPhone 6" bool "Support for Apple iPhone 6"
default n default n
@ -84,7 +83,7 @@ menu "Device Specific Addresses"
default 0x090000000 if SAMSUNG_STARLTE default 0x090000000 if SAMSUNG_STARLTE
default 0x090000000 if SAMSUNG_X1S default 0x090000000 if SAMSUNG_X1S
default 0x090000000 if SAMSUNG_J5LTE default 0x090000000 if SAMSUNG_J5LTE
default 0x040000000 if SAMSUNG_J4LTE default 0x050000000 if SAMSUNG_J4LTE
config FRAMEBUFFER_BASE config FRAMEBUFFER_BASE
@ -143,4 +142,10 @@ menu "Device Specific Addresses"
default 3 if SAMSUNG_J5LTE default 3 if SAMSUNG_J5LTE
default 4 if SAMSUNG_J4LTE default 4 if SAMSUNG_J4LTE
config FRAMEBUFFER_BGRA
bool "Framebuffer BGRA (for SimpleFB)"
depends on SIMPLE_FB
default y if SAMSUNG_J4LTE
default n
endmenu endmenu

View File

@ -9,10 +9,10 @@
#define SIMPLEFB_H_ #define SIMPLEFB_H_
typedef struct _color { typedef struct _color {
unsigned char a;
unsigned char r; unsigned char r;
unsigned char g; unsigned char g;
unsigned char b; unsigned char b;
unsigned char a;
} color; } color;
typedef struct _font_params { typedef struct _font_params {

View File

@ -18,10 +18,14 @@ void clean_fb(volatile char *fb, int width, int height, int stride) {
/* Unlike ARGB8888, we explicitly use 3 bytes to represent each pixel, making sure no extra padding byte is added. */ /* Unlike ARGB8888, we explicitly use 3 bytes to represent each pixel, making sure no extra padding byte is added. */
void draw_pixel(volatile char *fb, int x, int y, int width, int stride, color c) { void draw_pixel(volatile char *fb, int x, int y, int width, int stride, color c) {
long int location = (x * stride) + (y * width * stride); long int location = (x * stride) + (y * width * stride);
#ifdef CONFIG_FRAMEBUFFER_BGRA
*(fb + location) = c.b;
*(fb + location + 2) = c.r;
#else
*(fb + location) = c.r; *(fb + location) = c.r;
*(fb + location + 1) = c.g;
*(fb + location + 2) = c.b; *(fb + location + 2) = c.b;
#endif
*(fb + location + 1) = c.g;
#if CONFIG_FRAMEBUFFER_STRIDE == 4 #if CONFIG_FRAMEBUFFER_STRIDE == 4
*(fb + location + 3) = c.a; *(fb + location + 3) = c.a;
#endif #endif