~rabbits/nasu

7207d01f1214cc139f861a650d9b32229df83b30 — Devine Lu Linvega 2 years ago cd7300f
Added padding
1 files changed, 24 insertions(+), 5 deletions(-)

M nasu6.c
M nasu6.c => nasu6.c +24 -5
@@ 1,6 1,8 @@
#include <SDL2/SDL.h>
#include <stdio.h>

#define PAD 32

typedef struct Point {
	int x;
	int y;


@@ 21,8 23,8 @@ typedef struct Brush {
	Point prev;
} Brush;

static int SCREEN_WIDTH = 512;
static int SCREEN_HEIGHT = 512;
static int SCREEN_WIDTH = 512 + PAD * 2;
static int SCREEN_HEIGHT = 512 + PAD * 2;
static int FPS = 30;
int ZOOM = 4;
int clr = 0xFF0000;


@@ 51,14 53,30 @@ divpt(Point* p, int v)
	return p;
}

Point*
mulpt(Point* p, int v)
{
	p->x *= v;
	p->y *= v;
	return p;
}

Point*
addpt(Point* p, int v)
{
	p->x += v;
	p->y += v;
	return p;
}

/* noodle */

void
pixel(uint32_t* dst, Point p, int c)
{
	int x, y;
	p.x *= ZOOM;
	p.y *= ZOOM;
	mulpt(&p, ZOOM);
	addpt(&p, PAD);
	for(x = 0; x < ZOOM; ++x) {
		for(y = 0; y < ZOOM; ++y) {
			dst[(p.y + y) * SCREEN_WIDTH + (p.x + x)] = c;


@@ 91,7 109,7 @@ init_array(void)

	for(i = 0; i < SCREEN_HEIGHT; i++)
		for(j = 0; j < SCREEN_WIDTH; j++)
			pixels[i * SCREEN_WIDTH + j] = 0xffffff;
			pixels[i * SCREEN_WIDTH + j] = 0x000000;

	return 1;
}


@@ 160,6 178,7 @@ handle_mouse(SDL_Event* event, Brush* b)
	case SDL_MOUSEMOTION:
		if(b->down) {
			setpt(&b->pos, event->motion.x, event->motion.y);
			addpt(&b->pos, -PAD);
			divpt(&b->pos, ZOOM);
			pixel(pixels, b->pos, 0xFFFFFF);
			setpt(&b->prev, b->pos.x, b->pos.y);