1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- #include <math.h>
- #include "pngdriver.h"
- void PNG_Box(double fx1, double fy1, double fx2, double fy2)
- {
- int x1 = (int) floor(fx1 + 0.5);
- int y1 = (int) floor(fy1 + 0.5);
- int x2 = (int) floor(fx2 + 0.5);
- int y2 = (int) floor(fy2 + 0.5);
- int tmp;
- int x, y;
- if (x1 > x2)
- tmp = x1, x1 = x2, x2 = tmp;
- if (y1 > y2)
- tmp = y1, y1 = y2, y2 = tmp;
- if (x2 < 0 || x1 > png.width)
- return;
- if (y2 < 0 || y1 > png.height)
- return;
- if (x1 < png.clip_left)
- x1 = png.clip_left;
- if (x2 > png.clip_rite)
- x2 = png.clip_rite;
- if (y1 < png.clip_top)
- y1 = png.clip_top;
- if (y2 > png.clip_bot)
- y2 = png.clip_bot;
- for (y = y1; y < y2; y++) {
- unsigned int *p = &png.grid[y * png.width + x1];
- for (x = x1; x < x2; x++)
- *p++ = png.current_color;
- }
- png.modified = 1;
- }
|