annotate ppm.c @ 2688:b42f00a3a937 default tip

Fix default target. Ensure m68k.h and z80.h are built before anything else when no dep info is available
author Michael Pavone <pavone@retrodev.com>
date Mon, 31 Mar 2025 21:06:18 -0700
parents da2e06c42d16
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1263
5f65a16c23ff Implement raw screenshot functionality requested in ticket:10
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
1 #include <stdint.h>
5f65a16c23ff Implement raw screenshot functionality requested in ticket:10
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
2 #include <stdio.h>
2685
da2e06c42d16 Add a compile-time flag to use RGB565 instead of ABGR/ARGB
Michael Pavone <pavone@retrodev.com>
parents: 1263
diff changeset
3 #include "pixel.h"
1263
5f65a16c23ff Implement raw screenshot functionality requested in ticket:10
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
4
2685
da2e06c42d16 Add a compile-time flag to use RGB565 instead of ABGR/ARGB
Michael Pavone <pavone@retrodev.com>
parents: 1263
diff changeset
5 void save_ppm(FILE *f, pixel_t *buffer, uint32_t width, uint32_t height, uint32_t pitch)
1263
5f65a16c23ff Implement raw screenshot functionality requested in ticket:10
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
6 {
5f65a16c23ff Implement raw screenshot functionality requested in ticket:10
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
7 fprintf(f, "P6\n%d %d\n255\n", width, height);
5f65a16c23ff Implement raw screenshot functionality requested in ticket:10
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
8 for(uint32_t y = 0; y < height; y++)
5f65a16c23ff Implement raw screenshot functionality requested in ticket:10
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
9 {
2685
da2e06c42d16 Add a compile-time flag to use RGB565 instead of ABGR/ARGB
Michael Pavone <pavone@retrodev.com>
parents: 1263
diff changeset
10 pixel_t *line = buffer;
1263
5f65a16c23ff Implement raw screenshot functionality requested in ticket:10
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
11 for (uint32_t x = 0; x < width; x++, line++)
5f65a16c23ff Implement raw screenshot functionality requested in ticket:10
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
12 {
5f65a16c23ff Implement raw screenshot functionality requested in ticket:10
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
13 uint8_t buf[3] = {
2685
da2e06c42d16 Add a compile-time flag to use RGB565 instead of ABGR/ARGB
Michael Pavone <pavone@retrodev.com>
parents: 1263
diff changeset
14 #ifdef USE_RGB565
da2e06c42d16 Add a compile-time flag to use RGB565 instead of ABGR/ARGB
Michael Pavone <pavone@retrodev.com>
parents: 1263
diff changeset
15 (*line >> 8 & 0xF8) | (*line >> (8+5)), //red
da2e06c42d16 Add a compile-time flag to use RGB565 instead of ABGR/ARGB
Michael Pavone <pavone@retrodev.com>
parents: 1263
diff changeset
16 (*line >> 3 & 0xFC) | (*line >> (3+5) & 0x3), //green
da2e06c42d16 Add a compile-time flag to use RGB565 instead of ABGR/ARGB
Michael Pavone <pavone@retrodev.com>
parents: 1263
diff changeset
17 *line << 3 | (*line >> (5-3) & 0x3) //blue
da2e06c42d16 Add a compile-time flag to use RGB565 instead of ABGR/ARGB
Michael Pavone <pavone@retrodev.com>
parents: 1263
diff changeset
18 #else
da2e06c42d16 Add a compile-time flag to use RGB565 instead of ABGR/ARGB
Michael Pavone <pavone@retrodev.com>
parents: 1263
diff changeset
19 #ifdef USE_GLES
da2e06c42d16 Add a compile-time flag to use RGB565 instead of ABGR/ARGB
Michael Pavone <pavone@retrodev.com>
parents: 1263
diff changeset
20 *line, //red
da2e06c42d16 Add a compile-time flag to use RGB565 instead of ABGR/ARGB
Michael Pavone <pavone@retrodev.com>
parents: 1263
diff changeset
21 *line >> 8, //green
da2e06c42d16 Add a compile-time flag to use RGB565 instead of ABGR/ARGB
Michael Pavone <pavone@retrodev.com>
parents: 1263
diff changeset
22 *line >> 16 //blue
da2e06c42d16 Add a compile-time flag to use RGB565 instead of ABGR/ARGB
Michael Pavone <pavone@retrodev.com>
parents: 1263
diff changeset
23 #else
1263
5f65a16c23ff Implement raw screenshot functionality requested in ticket:10
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
24 *line >> 16, //red
5f65a16c23ff Implement raw screenshot functionality requested in ticket:10
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
25 *line >> 8, //green
5f65a16c23ff Implement raw screenshot functionality requested in ticket:10
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
26 *line //blue
2685
da2e06c42d16 Add a compile-time flag to use RGB565 instead of ABGR/ARGB
Michael Pavone <pavone@retrodev.com>
parents: 1263
diff changeset
27 #endif
da2e06c42d16 Add a compile-time flag to use RGB565 instead of ABGR/ARGB
Michael Pavone <pavone@retrodev.com>
parents: 1263
diff changeset
28 #endif
1263
5f65a16c23ff Implement raw screenshot functionality requested in ticket:10
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
29 };
5f65a16c23ff Implement raw screenshot functionality requested in ticket:10
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
30 fwrite(buf, 1, sizeof(buf), f);
5f65a16c23ff Implement raw screenshot functionality requested in ticket:10
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
31 }
2685
da2e06c42d16 Add a compile-time flag to use RGB565 instead of ABGR/ARGB
Michael Pavone <pavone@retrodev.com>
parents: 1263
diff changeset
32 buffer = buffer + pitch / sizeof(pixel_t);
1263
5f65a16c23ff Implement raw screenshot functionality requested in ticket:10
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
33 }
5f65a16c23ff Implement raw screenshot functionality requested in ticket:10
Michael Pavone <pavone@retrodev.com>
parents:
diff changeset
34 }