Changeset 5d4e90f0 in mainline for uspace/srv/fb/ppm.c
- Timestamp:
- 2007-09-27T12:35:36Z (17 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- bcf23cf
- Parents:
- 8c20b26
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/fb/ppm.c
r8c20b26 r5d4e90f0 27 27 */ 28 28 29 #include < types.h>29 #include <sys/types.h> 30 30 #include <errno.h> 31 31 … … 35 35 { 36 36 retry: 37 while (**data == ' ' || **data == '\t' || **data == '\n' || **data == '\r') 37 while (**data == ' ' || **data == '\t' || **data == '\n' || 38 **data == '\r') 38 39 (*data)++; 39 40 if (**data == '#') { … … 57 58 } 58 59 59 int ppm_get_data(unsigned char *data, size_t dtsz, unsigned int *width, unsigned int *height) 60 int ppm_get_data(unsigned char *data, size_t dtsz, unsigned int *width, 61 unsigned int *height) 60 62 { 61 63 /* Read magic */ … … 82 84 * @param putpixel Putpixel function used to print bitmap 83 85 */ 84 int ppm_draw(unsigned char *data, size_t datasz, unsigned int sx, 85 unsigned int sy, 86 unsigned int maxwidth, unsigned int maxheight, 87 putpixel_cb_t putpixel, void *vport) 86 int ppm_draw(unsigned char *data, size_t datasz, unsigned int sx, 87 unsigned int sy, unsigned int maxwidth, unsigned int maxheight, 88 putpixel_cb_t putpixel, void *vport) 88 89 { 89 90 unsigned int width, height; … … 106 107 data++; 107 108 108 if (maxcolor == 0 || maxcolor > 255 || width *height > datasz) {109 if (maxcolor == 0 || maxcolor > 255 || width * height > datasz) { 109 110 return EINVAL; 110 111 } 111 coef = 255 /maxcolor;112 if (coef *maxcolor > 255)112 coef = 255 / maxcolor; 113 if (coef * maxcolor > 255) 113 114 coef -= 1; 114 115 115 for (i =0; i < width*height; i++) {116 for (i = 0; i < width * height; i++) { 116 117 /* Crop picture if we don't fit into region */ 117 if (i % width > maxwidth || i /width > maxheight) {118 if (i % width > maxwidth || i / width > maxheight) { 118 119 data += 3; 119 120 continue; 120 121 } 121 color = ((data[0]*coef) << 16) + ((data[1]*coef) << 8) + data[2]*coef; 122 color = ((data[0] * coef) << 16) + ((data[1] * coef) << 8) + 123 data[2] * coef; 122 124 123 (*putpixel)(vport, sx +(i % width), sy+(i / width), color);125 (*putpixel)(vport, sx + (i % width), sy + (i / width), color); 124 126 data += 3; 125 127 }
Note:
See TracChangeset
for help on using the changeset viewer.