~rabbits/nasu

2c1782b4ea7a1d0edcd586afb8024b0d98088d3c — neauoire 2 years ago 45df4b8
Added zoom
2 files changed, 25 insertions(+), 4 deletions(-)

M README.md
M nasu.c
M README.md => README.md +5 -0
@@ 26,6 26,11 @@ Import a bmp:

## Controls

### Generics

- `+` Zoom In
- `-` Zoom Out

### IO

- `E` Export(nasu-export.chr)

M nasu.c => nasu.c +20 -4
@@ 15,7 15,6 @@ WITH REGARD TO THIS SOFTWARE.
#define HOR 32
#define VER 16
#define PAD 8
#define ZOOM 2
#define color1 0x000000
#define color2 0x72DEC2
#define color3 0xFFFFFF


@@ 33,7 32,7 @@ typedef struct Brush {
int colors[] = {color1, color2, color3, color4, color0};
int WIDTH = 8 * HOR + PAD * 2;
int HEIGHT = 8 * VER + PAD * 2;
int FPS = 30, GUIDES = 1;
int FPS = 30, GUIDES = 1, ZOOM = 2;

unsigned char chrbuf[SZ];
SDL_Window *gWindow;


@@ 70,7 69,9 @@ spos(char *s, char *ss)
int
getclr(int r, int g, int b)
{
	return r && g && b && r == g && g == b ? 1 : r > g && r > b ? 2 : g > r && g > b ? 3 : 0;
	return r && g && b && r == g && g == b ? 1 : r > g && r > b ? 2
											 : g > r && g > b   ? 3
																: 0;
}

/* chr */


@@ 91,7 92,9 @@ getchr(int x, int y)
		return 0;
	ch1 = (chrbuf[r] >> (7 - px)) & 1;
	ch2 = (chrbuf[r + 8] >> (7 - px)) & 1;
	return ch1 && !ch2 ? 1 : !ch1 && ch2 ? 2 : ch1 && ch2 ? 3 : 0;
	return ch1 && !ch2 ? 1 : !ch1 && ch2 ? 2
						 : ch1 && ch2    ? 3
										 : 0;
}

void


@@ 236,6 239,15 @@ error(char *msg, const char *err)
}

void
modzoom(int mod)
{
	if((mod > 0 && ZOOM < 4) || (mod < 0 && ZOOM > 1))
		ZOOM += mod;
	SDL_SetWindowSize(gWindow, WIDTH * ZOOM, HEIGHT * ZOOM);
	draw(pixels);
}

void
setcolor(Brush *b, int c)
{
	b->color = c;


@@ 394,6 406,10 @@ void
dokey(SDL_Event *event, Brush *b)
{
	switch(event->key.keysym.sym) {
	case SDLK_EQUALS:
	case SDLK_PLUS: modzoom(1); break;
	case SDLK_UNDERSCORE:
	case SDLK_MINUS: modzoom(-1); break;
	case SDLK_1: setmode(b, 0); break;
	case SDLK_2: setmode(b, 1); break;
	case SDLK_3: setmode(b, 2); break;