annotate src/libpng-test.c @ 5893:53a6c7df43f8

Mesa 3D: Update to version 21.1.8. * src/mesa.mk: Update version and checksum. * src/mesa-2-uninitialized.patch: Remove file. * dist-files.mk: Remove file from list.
author Markus Mützel <markus.muetzel@gmx.de>
date Thu, 16 Sep 2021 22:37:45 +0200
parents 14b3f5ea78ae
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2351
8a6c466753e2 Improve comment style of all test programs
Volker Grabsch <vog@notjusthosting.com>
parents: 2333
diff changeset
1 /*
8a6c466753e2 Improve comment style of all test programs
Volker Grabsch <vog@notjusthosting.com>
parents: 2333
diff changeset
2 * This file is part of MXE.
2353
99516e73b368 Move doc/index.html -> index.html
Volker Grabsch <vog@notjusthosting.com>
parents: 2351
diff changeset
3 * See index.html for further information.
2351
8a6c466753e2 Improve comment style of all test programs
Volker Grabsch <vog@notjusthosting.com>
parents: 2333
diff changeset
4 *
8a6c466753e2 Improve comment style of all test programs
Volker Grabsch <vog@notjusthosting.com>
parents: 2333
diff changeset
5 * This is a slightly modified version of:
8a6c466753e2 Improve comment style of all test programs
Volker Grabsch <vog@notjusthosting.com>
parents: 2333
diff changeset
6 * http://ironalbatross.net/wiki/index.php5?title=CPP_LIBPNG#Minimal_Example_of_writing_a_PNG_File
8a6c466753e2 Improve comment style of all test programs
Volker Grabsch <vog@notjusthosting.com>
parents: 2333
diff changeset
7 */
1631
9a86031b8ee0 package libpng: add test program
Tony Theodore <tonyt@logyst.com>
parents:
diff changeset
8
9a86031b8ee0 package libpng: add test program
Tony Theodore <tonyt@logyst.com>
parents:
diff changeset
9 #include <stdio.h>
9a86031b8ee0 package libpng: add test program
Tony Theodore <tonyt@logyst.com>
parents:
diff changeset
10 #include <stdlib.h>
9a86031b8ee0 package libpng: add test program
Tony Theodore <tonyt@logyst.com>
parents:
diff changeset
11 #include <unistd.h>
9a86031b8ee0 package libpng: add test program
Tony Theodore <tonyt@logyst.com>
parents:
diff changeset
12 #include <string.h>
9a86031b8ee0 package libpng: add test program
Tony Theodore <tonyt@logyst.com>
parents:
diff changeset
13 #include <png.h>
2358
14b3f5ea78ae Cleanup coding style via "make cleanup-style"
Volker Grabsch <vog@notjusthosting.com>
parents: 2353
diff changeset
14
1631
9a86031b8ee0 package libpng: add test program
Tony Theodore <tonyt@logyst.com>
parents:
diff changeset
15 int main(int argc, char *argv[])
9a86031b8ee0 package libpng: add test program
Tony Theodore <tonyt@logyst.com>
parents:
diff changeset
16 {
9a86031b8ee0 package libpng: add test program
Tony Theodore <tonyt@logyst.com>
parents:
diff changeset
17 (void)argc;
9a86031b8ee0 package libpng: add test program
Tony Theodore <tonyt@logyst.com>
parents:
diff changeset
18 (void)argv;
2358
14b3f5ea78ae Cleanup coding style via "make cleanup-style"
Volker Grabsch <vog@notjusthosting.com>
parents: 2353
diff changeset
19
1631
9a86031b8ee0 package libpng: add test program
Tony Theodore <tonyt@logyst.com>
parents:
diff changeset
20 /* PNG structs and types */
9a86031b8ee0 package libpng: add test program
Tony Theodore <tonyt@logyst.com>
parents:
diff changeset
21 png_byte color_type;
9a86031b8ee0 package libpng: add test program
Tony Theodore <tonyt@logyst.com>
parents:
diff changeset
22 png_byte bit_depth;
9a86031b8ee0 package libpng: add test program
Tony Theodore <tonyt@logyst.com>
parents:
diff changeset
23 png_structp png_ptr;
9a86031b8ee0 package libpng: add test program
Tony Theodore <tonyt@logyst.com>
parents:
diff changeset
24 png_infop info_ptr;
9a86031b8ee0 package libpng: add test program
Tony Theodore <tonyt@logyst.com>
parents:
diff changeset
25 png_bytep *row_pointers;
2358
14b3f5ea78ae Cleanup coding style via "make cleanup-style"
Volker Grabsch <vog@notjusthosting.com>
parents: 2353
diff changeset
26
1631
9a86031b8ee0 package libpng: add test program
Tony Theodore <tonyt@logyst.com>
parents:
diff changeset
27 int height, width;
9a86031b8ee0 package libpng: add test program
Tony Theodore <tonyt@logyst.com>
parents:
diff changeset
28 FILE *fp;
2358
14b3f5ea78ae Cleanup coding style via "make cleanup-style"
Volker Grabsch <vog@notjusthosting.com>
parents: 2353
diff changeset
29
1631
9a86031b8ee0 package libpng: add test program
Tony Theodore <tonyt@logyst.com>
parents:
diff changeset
30 width = 640;
9a86031b8ee0 package libpng: add test program
Tony Theodore <tonyt@logyst.com>
parents:
diff changeset
31 height = 480;
2358
14b3f5ea78ae Cleanup coding style via "make cleanup-style"
Volker Grabsch <vog@notjusthosting.com>
parents: 2353
diff changeset
32
1631
9a86031b8ee0 package libpng: add test program
Tony Theodore <tonyt@logyst.com>
parents:
diff changeset
33 color_type = PNG_COLOR_TYPE_RGB;
9a86031b8ee0 package libpng: add test program
Tony Theodore <tonyt@logyst.com>
parents:
diff changeset
34 bit_depth = 8; /* Number of bits per color, not per pixel */
2358
14b3f5ea78ae Cleanup coding style via "make cleanup-style"
Volker Grabsch <vog@notjusthosting.com>
parents: 2353
diff changeset
35
1631
9a86031b8ee0 package libpng: add test program
Tony Theodore <tonyt@logyst.com>
parents:
diff changeset
36 /* Dynamic 2D array in C */
9a86031b8ee0 package libpng: add test program
Tony Theodore <tonyt@logyst.com>
parents:
diff changeset
37 row_pointers = (png_bytep *)malloc( sizeof(png_bytep) * height);
9a86031b8ee0 package libpng: add test program
Tony Theodore <tonyt@logyst.com>
parents:
diff changeset
38 int i;
9a86031b8ee0 package libpng: add test program
Tony Theodore <tonyt@logyst.com>
parents:
diff changeset
39 for(i = 0; i < height; i++)
9a86031b8ee0 package libpng: add test program
Tony Theodore <tonyt@logyst.com>
parents:
diff changeset
40 {
9a86031b8ee0 package libpng: add test program
Tony Theodore <tonyt@logyst.com>
parents:
diff changeset
41 int j;
9a86031b8ee0 package libpng: add test program
Tony Theodore <tonyt@logyst.com>
parents:
diff changeset
42 row_pointers[i] = malloc(sizeof(png_byte) * width * 3);
9a86031b8ee0 package libpng: add test program
Tony Theodore <tonyt@logyst.com>
parents:
diff changeset
43 for(j = 0; j < width; j++)
9a86031b8ee0 package libpng: add test program
Tony Theodore <tonyt@logyst.com>
parents:
diff changeset
44 {
9a86031b8ee0 package libpng: add test program
Tony Theodore <tonyt@logyst.com>
parents:
diff changeset
45 row_pointers[i][0+3*j] = i % 255; /* R */
9a86031b8ee0 package libpng: add test program
Tony Theodore <tonyt@logyst.com>
parents:
diff changeset
46 row_pointers[i][1+3*j] = j % 255; /* G */
9a86031b8ee0 package libpng: add test program
Tony Theodore <tonyt@logyst.com>
parents:
diff changeset
47 row_pointers[i][2+3*j] = (i * j) % 255; /* B */
9a86031b8ee0 package libpng: add test program
Tony Theodore <tonyt@logyst.com>
parents:
diff changeset
48 }
9a86031b8ee0 package libpng: add test program
Tony Theodore <tonyt@logyst.com>
parents:
diff changeset
49 }
2358
14b3f5ea78ae Cleanup coding style via "make cleanup-style"
Volker Grabsch <vog@notjusthosting.com>
parents: 2353
diff changeset
50
1631
9a86031b8ee0 package libpng: add test program
Tony Theodore <tonyt@logyst.com>
parents:
diff changeset
51 /* Write the data out to the PNG file */
9a86031b8ee0 package libpng: add test program
Tony Theodore <tonyt@logyst.com>
parents:
diff changeset
52 fp = fopen("test.png","wb");
9a86031b8ee0 package libpng: add test program
Tony Theodore <tonyt@logyst.com>
parents:
diff changeset
53 png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING,NULL,NULL,NULL);
9a86031b8ee0 package libpng: add test program
Tony Theodore <tonyt@logyst.com>
parents:
diff changeset
54 info_ptr = png_create_info_struct(png_ptr);
9a86031b8ee0 package libpng: add test program
Tony Theodore <tonyt@logyst.com>
parents:
diff changeset
55 png_init_io(png_ptr,fp);
9a86031b8ee0 package libpng: add test program
Tony Theodore <tonyt@logyst.com>
parents:
diff changeset
56 png_set_IHDR(png_ptr, info_ptr, width, height,
9a86031b8ee0 package libpng: add test program
Tony Theodore <tonyt@logyst.com>
parents:
diff changeset
57 bit_depth, color_type, PNG_INTERLACE_NONE,
9a86031b8ee0 package libpng: add test program
Tony Theodore <tonyt@logyst.com>
parents:
diff changeset
58 PNG_COMPRESSION_TYPE_BASE, PNG_FILTER_TYPE_BASE);
9a86031b8ee0 package libpng: add test program
Tony Theodore <tonyt@logyst.com>
parents:
diff changeset
59 png_write_info(png_ptr, info_ptr);
9a86031b8ee0 package libpng: add test program
Tony Theodore <tonyt@logyst.com>
parents:
diff changeset
60 png_write_image(png_ptr, row_pointers);
9a86031b8ee0 package libpng: add test program
Tony Theodore <tonyt@logyst.com>
parents:
diff changeset
61 png_write_end(png_ptr, NULL);
2358
14b3f5ea78ae Cleanup coding style via "make cleanup-style"
Volker Grabsch <vog@notjusthosting.com>
parents: 2353
diff changeset
62
1631
9a86031b8ee0 package libpng: add test program
Tony Theodore <tonyt@logyst.com>
parents:
diff changeset
63 /* Free up memory after use */
9a86031b8ee0 package libpng: add test program
Tony Theodore <tonyt@logyst.com>
parents:
diff changeset
64 for(i = 0; i < height; i++)
9a86031b8ee0 package libpng: add test program
Tony Theodore <tonyt@logyst.com>
parents:
diff changeset
65 {
9a86031b8ee0 package libpng: add test program
Tony Theodore <tonyt@logyst.com>
parents:
diff changeset
66 free(row_pointers[i]);
9a86031b8ee0 package libpng: add test program
Tony Theodore <tonyt@logyst.com>
parents:
diff changeset
67 }
9a86031b8ee0 package libpng: add test program
Tony Theodore <tonyt@logyst.com>
parents:
diff changeset
68 free(row_pointers);
2358
14b3f5ea78ae Cleanup coding style via "make cleanup-style"
Volker Grabsch <vog@notjusthosting.com>
parents: 2353
diff changeset
69
1631
9a86031b8ee0 package libpng: add test program
Tony Theodore <tonyt@logyst.com>
parents:
diff changeset
70 return 0;
9a86031b8ee0 package libpng: add test program
Tony Theodore <tonyt@logyst.com>
parents:
diff changeset
71 }