From 9394ea1ebbe6a59bbc68d5a4dfadb668eb24c48a Mon Sep 17 00:00:00 2001 From: "Steinar H. Gunderson" Date: Sat, 20 Jul 2019 00:31:30 +0200 Subject: [PATCH] Move some more documentation around, and document overriding parameters. --- theme.rst | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/theme.rst b/theme.rst index abf7d3b..2e70ca9 100644 --- a/theme.rst +++ b/theme.rst @@ -83,6 +83,7 @@ produces a mix of them; Movit's *MixEffect* is exactly what you want here:: local input1 = scene:add_input() input1:display(1) + -- Note that add_effect returns its input for convenience. local mix_effect = scene:add_effect(MixEffect.new(), input0, input1) scene:finalize() @@ -183,15 +184,25 @@ directly by the GPU) that instead. The scaling is set up like this:: -- Or by numerical index: input0_scaled:choose(1) -- Chooses ResizeEffect -Note that add_effect returns its input for convenience. All alternatives must -have the same amount of inputs, with an exception for IdentityEffect, which can -coexist with an effect requiring any amount of inputs (if selected, the IdentityEffect -just passes its first input unchanged). - Actually, add_optional_effect() is just a wrapper around add_effect() with IdentityEffect as the other alternative, and disable() is a convenience version of choose(IdentityEffect). +All alternatives must +have the same amount of inputs, with an exception for IdentityEffect, which can +coexist with an effect requiring any amount of inputs (if selected, the IdentityEffect +just passes its first input unchanged). Similarly, if you set a parameter with +set_int() or similar, it must be valid for all alternatives (again excepting +IdentityEffect); if there is one that can only be used on a certain alternative, +you must set it directly on the effect:: + + local resample_effect = ResampleEffect.new() + resample_effect:set_float("zoom_x", 1.0001) -- Not valid for ResizeEffect. + + local input0_scaled = scene:add_effect({resample_effect, ResizeEffect.new()}) + input0_scaled:set_int("width", 1280) -- Set on both alternatives. + input0_scaled:set_int("height", 720) + Actually, more versions are created than you'd immediately expect. In particular, the output format for the live output and all previews are different (Y'CbCr versus RGBA), which is also handled transparently for you. -- 2.39.2