Make Input an abstract base class, and move the current functionality into FlatInput...
[movit] / api.txt
1 API
2
3 - jobb på GPUen, glReadPixels() tilbake
4   - asynkrone reads?
5 - input/output: pixelarray [seinere: tekstur]
6   - fargerom (gammakurve, XYZ-primaries? hvordan konverterer man fra chromacity-koordinater for hvitpunkt?)
7   - YUYV inn? subsamplet input inn?
8   - RGBA fp16 internt
9   - hva gjør vi med f.eks. Rec. 601 vs. Rec. 701? sRGB-fargerom hele veien internt?
10 - lang kjede av effekter, rammeverket setter inn normaliseringer ved behov
11   - GLSL, funksjoner ala
12
13     #define INPUT_FUNCTION read_input
14     half4 levels_1(float4 coord) {
15       return INPUT_FUNCTION(coord) * half4(0.8f, 1.0f, 0.9f, 1.0f);
16     }
17     #undef INPUT_FUNCTION
18   - kan erklære «will do many samples», dvs. rammeverket burde mellomlagre i tekstur
19   - kan erklære «trenger mipmaps», i så fall vil alle innteksturer ha mipmaps
20     (mipmaps for intermediates håndteres av GPUen)
21   - parametre kommer inn via uniforms, så vi slipper å rekompilere for hver runde
22   - ...og 1D-teksturer (for curves og slikt)
23   - default: linear light (rammeverket konverterer fra/til ved behov)
24   - optomalisering; kan erklære «don't care» (f.eks. mirror) => ignorer fargerom,
25     pixels er opaque half4
26 - pseudo-effekter kan kombinere flere andre (eks. blur=horiz+vert blur, glow=blur+add)
27 - dissolves/fades => to inputs!
28   - trenger vi en generell DAG her, mon tro?
29   - utsett til seinere
30 - trenger vi CPU-effekter?
31
32
33 mål
34 - bildekvalitet, men ikke for enhver pris
35 - ytelse, men ikke for enhver pris
36 - gpu støttet: intel/mesa, nvidia/proprietær