# Tests the composite SVG filter primitive
---
root:
  items:
  - type: stacking-context
    bounds: 0 0 0 0
    filter-primitives:
    - type: flood
      color: yellow
      in: previous
    - type: offset
      offset: -50 -50
      in: previous
    - type: composite
      in1: original
      in2: 1
      operator: over
    items:
    - type: rect
      color: blue
      bounds: 60 60 100 100
  - type: stacking-context
    bounds: 200 0 0 0
    filter-primitives:
    - type: flood
      color: yellow
      in: previous
    - type: offset
      offset: -50 -50
      in: previous
    - type: composite
      in1: original
      in2: 1
      operator: in
    items:
    - type: rect
      color: blue
      bounds: 60 60 100 100
  - type: stacking-context
    bounds: 400 0 0 0
    filter-primitives:
    - type: flood
      color: yellow
      in: previous
    - type: offset
      offset: -50 -50
      in: previous
    - type: composite
      in1: original
      in2: 1
      operator: atop
    items:
    - type: rect
      color: blue
      bounds: 60 60 100 100
  - type: stacking-context
    bounds: 600 0 0 0
    filter-primitives:
    - type: flood
      color: yellow
      in: previous
    - type: offset
      offset: -50 -50
      in: previous
    - type: composite
      in1: original
      in2: 1
      operator: out
    items:
    - type: rect
      color: blue
      bounds: 60 60 100 100
  - type: stacking-context
    bounds: 0 200 0 0
    filter-primitives:
    - type: flood
      color: yellow
      in: previous
    - type: offset
      offset: -50 -50
      in: previous
    - type: composite
      in1: original
      in2: 1
      operator: xor
    items:
    - type: rect
      color: blue
      bounds: 60 60 100 100
  - type: stacking-context
    bounds: 200 200 0 0
    filter-primitives:
    - type: flood
      color: [255, 0, 0, 1.0]
      in: previous
    - type: offset
      offset: -50 -50
      in: previous
    - type: composite
      in1: original
      in2: 1
      operator: lighter
    items:
    - type: rect
      color: [0, 0, 255, 1.0]
      bounds: 60 60 100 100
  - type: stacking-context
    bounds: 400 200 0 0
    filter-primitives:
    - type: flood
      color: yellow
      in: previous
    - type: offset
      offset: -50 -50
      in: previous
    - type: composite
      in1: original
      in2: 1
      operator: arithmetic
      k-values: [0.5, 0.5, 0.5, 0]
    items:
    - type: rect
      color: blue
      bounds: 60 60 100 100
