summaryrefslogtreecommitdiffstats
path: root/DOCS/man/options.rst
diff options
context:
space:
mode:
Diffstat (limited to 'DOCS/man/options.rst')
-rw-r--r--DOCS/man/options.rst61
1 files changed, 48 insertions, 13 deletions
diff --git a/DOCS/man/options.rst b/DOCS/man/options.rst
index bf72d90fc0..e824e04e0f 100644
--- a/DOCS/man/options.rst
+++ b/DOCS/man/options.rst
@@ -4239,24 +4239,59 @@ The following video options are currently all specific to ``--vo=opengl`` and
...
- Each block of metadata, along with the non-metadata lines after it, defines
- a single pass. Each pass can set the following metadata:
+ Each section of metadata, along with the non-metadata lines after it,
+ defines a single block. There are currently two types of blocks, HOOKs and
+ TEXTUREs.
- DESC <title>
- User-friendly description of the pass. This is the name used when
- representing this shader in the list of passes for property
- `vo-passes`.
+ A ``TEXTURE`` block can set the following options:
+
+ TEXTURE <name> (required)
+ The name of this texture. Hooks can then bind the texture under this
+ name using BIND. This must be the first option of the texture block.
+
+ SIZE <width> [<height>] [<depth>]
+ The dimensions of the texture. The height and depth are optional. The
+ type of texture (1D, 2D or 3D) depends on the number of components
+ specified.
+
+ COMPONENTS <n>
+ The number of components per texel contained in the texture. Defaults
+ to 1.
+
+ FORMAT <spec>
+ The texture format for the samples. A valid texture specification is
+ the number of bits followed by a single letter which is either ``f``
+ (for float), ``i`` (for uint) or ``u`` (for unorm), for example
+ ``32f``. Defaults to ``8i``.
+
+ FILTER <LINEAR|NEAREST>
+ The min/magnification filter used when sampling from this texture.
+
+ BORDER <CLAMP|REPEAT|MIRROR>
+ The border wrapping mode used when sampling from this texture.
+
+ Following the metadata is a string of bytes in hexadecimal notation that
+ define the raw texture data, corresponding to the format specified by
+ `FORMAT`, on a single line with no extra whitespace.
+
+ A ``HOOK`` block can set the following options:
HOOK <name> (required)
The texture which to hook into. May occur multiple times within a
metadata block, up to a predetermined limit. See below for a list of
hookable textures.
+ DESC <title>
+ User-friendly description of the pass. This is the name used when
+ representing this shader in the list of passes for property
+ `vo-passes`.
+
BIND <name>
- Loads a texture and makes it available to the pass, and sets up macros
- to enable accessing it. See below for a list of set macros. By default,
- no textures are bound. The special name HOOKED can be used to refer to
- the texture that triggered this pass.
+ Loads a texture (either coming from mpv or from a ``TEXTURE`` block)
+ and makes it available to the pass. When binding textures from mpv,
+ this will also set up macros to facilitate accessing it properly. See
+ below for a list. By default, no textures are bound. The special name
+ HOOKED can be used to refer to the texture that triggered this pass.
SAVE <name>
Gives the name of the texture to save the result of this pass into. By
@@ -4280,14 +4315,14 @@ The following video options are currently all specific to ``--vo=opengl`` and
hook point can still cause that hook point to be saved, which has some
minor overhead)
- OFFSET ox oy
+ OFFSET <ox> <oy>
Indicates a pixel shift (offset) introduced by this pass. These pixel
offsets will be accumulated and corrected during the next scaling pass
(``cscale`` or ``scale``). The default values are 0 0 which correspond
to no shift. Note that offsets are ignored when not overwriting the
hooked texture.
- COMPONENTS n
+ COMPONENTS <n>
Specifies how many components of this pass's output are relevant and
should be stored in the texture, up to 4 (rgba). By default, this value
is equal to the number of components in HOOKED.
@@ -4303,7 +4338,7 @@ The following video options are currently all specific to ``--vo=opengl`` and
difference is the fact that you can use shared memory inside compute
shaders.
- Each bound texture (via ``BIND``) will make available the following
+ Each bound mpv texture (via ``BIND``) will make available the following
definitions to that shader pass, where NAME is the name of the bound
texture: