Skip to content

Commit cd5b79c

Browse files
committed
removed unused header, use framebuffer for rendering in freedomgfx
1 parent 17ecbb3 commit cd5b79c

File tree

6 files changed

+28
-58
lines changed

6 files changed

+28
-58
lines changed

esp32/modfreedomgfx.c

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -37,36 +37,38 @@
3737
#include <stdint.h>
3838
#include <string.h>
3939

40-
#include "modfreedomgfx.h"
41-
4240
#include <badge_eink.h>
4341
#include <badge_button.h>
4442
#include <badge_input.h>
4543

44+
4645
#include "py/mperrno.h"
4746
#include "py/mphal.h"
4847
#include "py/runtime.h"
4948

49+
#include "py/nlr.h"
50+
#include "py/runtime.h"
51+
5052
#ifdef UNIX
5153
#include "modfreedomgfx_sdl.h"
5254
#else
5355
#include "modfreedomgfx_eink.h"
5456
#endif
5557

56-
#define imgSize ((BADGE_EINK_WIDTH*BADGE_EINK_HEIGHT)/8)
57-
uint8_t img[imgSize];
58+
#define imgSize (BADGE_EINK_WIDTH*BADGE_EINK_HEIGHT)
59+
static uint8_t* img = 0;
5860

59-
#define PXb(x,y) img[((x)+(y)*BADGE_EINK_WIDTH)/8] &= ~(1<<(((x)+(y)*BADGE_EINK_WIDTH)%8))
60-
#define PXw(x,y) img[((x)+(y)*BADGE_EINK_WIDTH)/8] |= (1<<(((x)+(y)*BADGE_EINK_WIDTH)%8))
61+
#define PXb(x,y) img[((x)+(y)*BADGE_EINK_WIDTH)] = 0x00
62+
#define PXw(x,y) img[((x)+(y)*BADGE_EINK_WIDTH)] = 0xff
6163
#define ABS(x) (((x)<0)?-(x):(x))
6264

6365
static void gfx_input_poll(uint32_t btn);
6466

6567
STATIC mp_obj_t gfx_init(void) {
68+
img = freedomgfxInit();
6669
for(int i = 0; i < imgSize; i++)
6770
img[i] = 0xff;
68-
freedomgfxInit();
69-
freedomgfxDraw(img);
71+
freedomgfxDraw();
7072
return mp_const_none;
7173
}
7274
STATIC MP_DEFINE_CONST_FUN_OBJ_0(gfx_init_obj, gfx_init);
@@ -129,7 +131,6 @@ STATIC mp_obj_t gfx_area(mp_uint_t n_args, const mp_obj_t *args) {
129131
int b = mp_obj_get_int(args[3]);
130132
int col = mp_obj_get_int(args[4]);
131133

132-
printf("x0=%d,y0=%d\n", x0, y0);
133134
for(int i = 0; i < a; i++)
134135
{
135136
for(int j = 0; j < b; j++)
@@ -195,7 +196,7 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(gfx_string_obj, 5, 5, gfx_string);
195196

196197

197198
STATIC mp_obj_t gfx_flush(mp_uint_t n_args, const mp_obj_t *args) {
198-
freedomgfxDraw(img);
199+
freedomgfxDraw();
199200
return mp_const_none;
200201
}
201202
STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(gfx_flush_obj, 0, 1, gfx_flush);

esp32/modfreedomgfx.h

Lines changed: 0 additions & 37 deletions
This file was deleted.

esp32/modfreedomgfx_eink.c

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,13 @@
2626

2727
#include "modfreedomgfx_eink.h"
2828
#include <badge_eink.h>
29+
#include <badge_eink_fb.h>
2930

30-
void freedomgfxInit(void)
31+
32+
uint8_t* freedomgfxInit(void)
3133
{
32-
//
34+
badge_eink_fb_init();
35+
return badge_eink_fb;
3336
}
3437

3538
void freedomgfxDeinit(void)
@@ -43,7 +46,7 @@ uint32_t freedomgfxPoll(void)
4346
return btn;
4447
}
4548

46-
void freedomgfxDraw(uint8_t* img)
49+
void freedomgfxDraw()
4750
{
48-
badge_eink_display(img, DISPLAY_FLAG_FULL_UPDATE);
51+
badge_eink_display(badge_eink_fb, DISPLAY_FLAG_FULL_UPDATE | DISPLAY_FLAG_8BITPIXEL);
4952
}

esp32/modfreedomgfx_eink.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,9 @@
2929

3030
#include <inttypes.h>
3131

32-
void freedomgfxInit(void);
32+
uint8_t* freedomgfxInit(void); // returns buffer to draw to
3333
void freedomgfxDeinit(void);
3434
uint32_t freedomgfxPoll(void);
35-
void freedomgfxDraw(uint8_t* img);
35+
void freedomgfxDraw();
3636

3737
#endif /* UNIX_MODFREEDOMGFX_SDL_H_ */

unix/modfreedomgfx_sdl.c

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,12 +34,15 @@ SDL_Window* win;
3434
SDL_Renderer* ren;
3535
SDL_Texture* tex;
3636

37-
void freedomgfxInit(void)
37+
static uint8_t img[BADGE_EINK_WIDTH*BADGE_EINK_HEIGHT];
38+
39+
uint8_t* freedomgfxInit(void)
3840
{
3941
SDL_Init(SDL_INIT_VIDEO);
4042
win = SDL_CreateWindow("Freedom GFX", 100, 100, BADGE_EINK_WIDTH, BADGE_EINK_HEIGHT, SDL_WINDOW_SHOWN);
4143
ren = SDL_CreateRenderer(win, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC);
4244
tex = SDL_CreateTexture(ren, SDL_PIXELFORMAT_RGB332, SDL_TEXTUREACCESS_STREAMING, BADGE_EINK_WIDTH, BADGE_EINK_HEIGHT);
45+
return img;
4346
}
4447

4548
void freedomgfxDeinit(void)
@@ -80,13 +83,13 @@ uint32_t freedomgfxPoll(void)
8083
return 0;
8184
}
8285

83-
void freedomgfxDraw(uint8_t* img)
86+
void freedomgfxDraw()
8487
{
8588
uint8_t* px;
8689
int pitch;
8790
SDL_LockTexture(tex,0,(void**)&px,&pitch);
8891
for(int i = 0; i < BADGE_EINK_WIDTH*BADGE_EINK_HEIGHT; i++)
89-
px[i] = (img[i/8] & (1<<(i%8)))?0xff:0x00;
92+
px[i] = img[i];
9093
SDL_UnlockTexture(tex);
9194
SDL_RenderCopy(ren,tex,0,0);
9295
SDL_RenderPresent(ren);

unix/modfreedomgfx_sdl.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,9 @@
2929

3030
#include <inttypes.h>
3131

32-
void freedomgfxInit(void);
32+
uint8_t* freedomgfxInit(void);
3333
void freedomgfxDeinit(void);
3434
uint32_t freedomgfxPoll(void);
35-
void freedomgfxDraw(uint8_t* img);
35+
void freedomgfxDraw();
3636

3737
#endif /* UNIX_MODFREEDOMGFX_SDL_H_ */

0 commit comments

Comments
 (0)