README.md
1Introduction
2============
3Aloadimage is a simple command-line imageviewer for arcan, built on the image
4parsers provided by stb (https://github.com/nothings/stb). Image loading is
5performed in the background as a separate, sandboxed processes and should be
6reasonably safe against maliciously crafted input sources.
7
8The primary purpose is to provide an arcan- specific replacement for
9xloadimage, and to serve as a testing ground for advanced image output such as
10full HDR- paths. The secondary purpose is to craft the image- loading worker
11pool to be secure and efficient enough to act as a building block for other
12components within the Arcan umbrella.
13
14For more detailed instructions, see the manpage.
15
16Building/use
17============
18the build needs access to the arcan-shmif library matching the arcan instance
19that it should connect to. It can either be detected through the normal
20pkgconfig, or by explicitly pointing cmake to the
21-DARCAN\_SOURCE\_DIR=/absolute/path/to/arcan/src
22
23The appl- that arcan is running will also need to expose an appropriate
24connection point (where you point the ARCAN\_CONNPATH environment variable)
25
26 mkdir build
27 cd build
28 cmake ../
29 make
30 ARCAN_CONNPATH=something ./aloadimage file1.png file2.jpg file3.png
31
32Optional Dependencies include:
33- Exempi-2, used for VR180 in JPG decoding
34- Seccomp, used for sandboxing on linux
35
36Status
37======
38 - [x] Basic controls
39 - [p] Multiprocess/sandboxed parsing
40 - [x] Expiration timer
41 - [x] Upper memory consumption cap (no gzip bombing)
42 - [x] Seccmp- style syscall filtering
43 - [x] Pledge port
44 - [ ] Capsicum port
45 - [ ] Playlist
46 - [x] Read/load-ahead
47 - [ ] Handover launch everything at once
48 - [ ] VR image formats
49 - [x] left-right eye mapping
50 - [ ] projection metadata (fov + geometry)
51 - [ ] auto-sbs detection
52 - [ ] packed image format support (adobe metadata)
53 - [ ] Color Accuracy
54 - [ ] sRGB to Linear swapping
55 - [ ] full FP16 format with scRGB
56 - [ ] ICC profile output
57 - [ ] HDR metadata (range, ...)
58 - [ ] Up/downsample filter controls
59 - [ ] Subpixel hinting for vector formats
60 - [ ] GPU acceleration toggle
61 - [ ] Per image transformations (rotate, flip, ...)
62 - [ ] Internationalization
63 - [ ] Interactive mode
64 - [ ] Placeholder 'reset' playlist entry
65 - [ ] Drag/zoom/pan input
66 - [ ] Scrolling (CONTENTHINT)
67 - [ ] Announce extensions
68 - [ ] Handle BCHUNKSTATE/drag'n'drop/paste
69 - [ ] Window clone action
70 - [ ] Expose command-line options as ARCAN\_ARG
71 - [ ] Stream-status/Content-position-hint
72 - [ ] State support (save playlist, configuration)
73 - [ ] Thumbnail window
74 - [x] Basic Raster Images (via stbimage)
75 - [ ] Formats support
76 - [ ] Animated GIF
77 - [ ] Vector contents support
78 - [x] Load/Draw Simple SVG (need refactor, assumes endianness)
79 - [ ] Redraw / invalidate on DISPLAYHINT
80