# This test has a number of rectangles placed on the same transformed preserve3d plane.
# The expected result is that the rectangles are rendered in the order they are listed.
# This can fail if the primitives are considered outside of the main plane due
# to floating point precision issues in plane-splitting and transformation.
---
root:
  items:
    - type: "stacking-context"
      transform-style: preserve-3d
      transform: rotate-y(-30) rotate-x(-75) translate(-100, 100, 0)
      items:
        - type: "stacking-context"
          perspective: 400
          transform-style: preserve-3d
          items:
            - type: rect
              bounds: [0, 0, 450, 300]
              color: 0 255 0 1.0000
            - type: stacking-context
              bounds: [0, 0, 600, 600]
              transform: translate(200, 0, 0)
              items:
                - type: rect
                  bounds: [-200, 0, 150, 300]
                  color: 255 0 0 1.0000
            - type: stacking-context
              bounds: [0, 0, 600, 600]
              transform: rotate-z(-90)
              items:
                -
                  bounds: [0, 200, 150, 200]
                  type: rect
                  color: 0 0 255 1.0000
