diff --git a/chr6.c b/chr6.c index 2f9ba50..3c00674 100644 --- a/chr6.c +++ b/chr6.c @@ -1,7 +1,7 @@ #include #include -#define HOR 24 +#define HOR 32 #define VER 16 #define PAD 32 #define ZOOM 4 @@ -11,6 +11,8 @@ #define color4 0x444444 #define color0 0x111111 +#define SZ HOR* VER * 16 + typedef struct Point { int x; int y; @@ -36,7 +38,7 @@ char* modes[] = { "ver", "cross"}; -unsigned char buffer[4096]; +unsigned char buffer[SZ]; int colors[] = {color1, color2, color3, color4, color0}; int WIDTH = 8 * HOR * ZOOM + PAD * 2; int HEIGHT = 8 * VER * ZOOM + PAD * 2; @@ -84,7 +86,7 @@ void draw(uint32_t* dst, int id, int color) { int ti = id / 64; - int px = (ti / 256) * (8 * HOR); + int px = (ti / (HOR * VER)) * (8 * HOR); int tx = (ti % HOR) * 8; int ty = ((ti / HOR) * 8) % 128; int odd = (ti + (ti / HOR + 2)) % 2 == 0; @@ -98,7 +100,7 @@ void redraw(uint32_t* dst) { int b, i, j, id = 0, ch1, ch2, color; - for(b = 0; b < 4096; b += 16) + for(b = 0; b < SZ; b += 16) for(i = 0; i < 8; i++) for(j = 7; j >= 0; j--) { ch1 = buffer[b + i]; @@ -120,7 +122,7 @@ write(int tx, int ty, int px, int py, int color) { int id = tx + ty * HOR; int row = py + id * VER; - if(id > 255) + if(id > HOR * VER) return; if(color == 0) { buffer[row] &= ~(1UL << (7 - px)); @@ -229,7 +231,7 @@ void update(Brush* b) { char title[512]; - snprintf(title, 512, "chr6 | c%d %d:%d^%d%c", b->color, HOR, VER, ZOOM, b->edit ? '*' : ' '); + snprintf(title, 512, "chr6 %d | c%d %d:%d^%d%c", b->size, b->color, HOR, VER, ZOOM, b->edit ? '*' : ' '); SDL_SetWindowTitle(gWindow, title); } @@ -244,7 +246,7 @@ void create(void) { int i; - for(i = 0; i < 4096; ++i) + for(i = 0; i < SZ; ++i) buffer[i] = 0x00; redraw(pixels); } @@ -257,7 +259,6 @@ save(Brush* b) error("Save", "Invalid output file"); fclose(f); b->edit = 0; - update(b); } void @@ -348,7 +349,6 @@ dokey(SDL_Event* event, Brush* b) break; case SDLK_TAB: b->color = b->color > 2 ? 0 : b->color + 1; - update(b); break; case SDLK_h: GUIDES = !GUIDES; @@ -373,7 +373,7 @@ dokey(SDL_Event* event, Brush* b) b->size += 1; break; } - printf("%d\n", b->mode); + update(b); } int