X-Git-Url: http://git.joshuawise.com/netwatch.git/blobdiff_plain/74032daeb88c104c67738774827440f4264b371e..d5d3737996d3828397e02f0f953fbc5c9e63f709:/video/generic.c?ds=sidebyside diff --git a/video/generic.c b/video/generic.c index d8b320b..c35cd5d 100644 --- a/video/generic.c +++ b/video/generic.c @@ -1,3 +1,13 @@ +/* generic.c + * Helper functions for dealing with generic RGB888 framebuffers + * NetWatch system management mode administration console + * + * Copyright (c) 2008 Jacob Potter and Joshua Wise. All rights reserved. + * This program is free software; you can redistribute and/or modify it under + * the terms found in the file LICENSE in the root of this source tree. + * + */ + #include #include #include @@ -15,9 +25,9 @@ uint32_t checksum_rect_generic32(int x, int y, int width, int height) { uint32_t sum = 0; for (i = 0; i < height; i++) { - lineaddr = fb->fbaddr + (i + y) * scanline; + lineaddr = fb->fbaddr + (i + y) * scanline + (4 * x); - sum ^= crc32(lineaddr, width * 4); + sum = crc32(lineaddr, width * 4, sum); } return sum; @@ -28,11 +38,11 @@ void copy_pixels_generic32(char *buf, int x, int y, int width, int height) int cx, cy; unsigned int *ibuf = (unsigned int *)buf; unsigned int *fbuf; - for (cy = y; cy < (y + height); cy++) + for (cy = 0; cy < height; cy++) { fbuf = (unsigned int *)fb->fbaddr; - fbuf += cy * (fb->curmode.xres) + x; - for (cx = x; cx < (x + width); cx++) + fbuf += (cy + y) * (fb->curmode.xres) + x; + for (cx = 0; cx < width; cx++) *(ibuf++) = *(fbuf++); } }