anchor.diff:  
   ;;------------------------------------------------------------
   
  -(defgeneric %draw-cube-face (sampler &optional pos-vec2 rotation scale)
  -  (:method ((sampler sampler)
  -            &optional (pos-vec2 (v! 0 0)) (rotation 1s0) (scale 1))
  -    (let* ((tex (sampler-texture sampler))
  -           (tex-res (resolution tex))
  -           (win-res (resolution (current-viewport)))
  -           (rect-res (rotated-rect-size (v2:* tex-res (v! 3 4)) rotation))
  -           (fit-scale (* (get-fit-to-rect-scale win-res rect-res) 2)))
  -      (labels ((calc-trans (pos)
  -                 (m4:*
  -                  (m4:translation (v! pos-vec2 0))
  -                  (m4:scale (v3:*s (v! (/ 1 (x win-res))
  -                                       (/ 1 (y win-res))
  -                                       0)
  -                                   (* scale fit-scale)))
  -                  (m4:rotation-z rotation)
  -                  (m4:scale (v! tex-res 0))
  -                  (m4:translation pos))))
  -        (map-g #'draw-cube-face-pipeline (get-gpu-quad)
  -               :mat (m3:rotation-x (radians 90))
  -               :tex sampler
  -               :uv-mult (v! 1 -1)
  -               :transform (calc-trans (v! 0 1.5 0)))
  -        (map-g #'draw-cube-face-pipeline (get-gpu-quad)
  -               :mat (m3:rotation-y (radians 90))
  -               :tex sampler
  -               :uv-mult (v! -1 1)
  -               :transform (calc-trans (v! -1 0.5 0)))
  -        (map-g #'draw-cube-face-pipeline (get-gpu-quad)
  -               :mat (m3:rotation-y (radians -90))
  -               :tex sampler
  -               :uv-mult (v! -1 1)
  -               :transform (calc-trans (v! 1 0.5 0)))
  -        (map-g #'draw-cube-face-pipeline (get-gpu-quad)
  -               :mat (m3:rotation-x (radians 180))
  -               :tex sampler
  -               :uv-mult (v! 1 -1)
  -               :transform (calc-trans (v! 0 0.5 0)))
  -        (map-g #'draw-cube-face-pipeline (get-gpu-quad)
  -               :mat (m3:rotation-x (radians -90))
  -               :tex sampler
  -               :uv-mult (v! 1 -1)
  -               :transform (calc-trans (v! 0 -0.5 0)))
  -        (map-g #'draw-cube-face-pipeline (get-gpu-quad)
  -               :mat (m3:rotation-x (radians 0))
  -               :tex sampler
  -               :uv-mult (v! 1 -1)
  -               :transform (calc-trans (v! 0 -1.5 0)))))))
  -
  -;;------------------------------------------------------------
  -
  -(defun %draw-sampler (sampler pos-vec2 rotation scale
  -                      &optional (flip-uvs-vertically t))
  +(defun %draw-cube-face (sampler pos-vec2 rotation scale)
  +  (let* ((tex (sampler-texture sampler))
  +         (tex-res (resolution tex))
  +         (win-res (resolution (current-viewport)))
  +         (rect-res (rotated-rect-size (v2:* tex-res (v! 3 4)) rotation))
  +         (fit-scale (* (get-fit-to-rect-scale win-res rect-res) 2)))
  +    (labels ((calc-trans (pos)
  +               (m4:*
  +                (m4:translation (v! pos-vec2 0))
  +                (m4:scale (v3:*s (v! (/ 1 (x win-res))
  +                                     (/ 1 (y win-res))
  +                                     0)
  +                                 (* scale fit-scale)))
  +                (m4:rotation-z rotation)
  +                (m4:scale (v! tex-res 0))
  +                (m4:translation pos))))
  +      (map-g #'draw-cube-face-pipeline (get-gpu-quad)
  +             :mat (m3:rotation-x (radians 90))
  +             :tex sampler
  +             :uv-mult (v! 1 -1)
  +             :transform (calc-trans (v! 0 1.5 0)))
  +      (map-g #'draw-cube-face-pipeline (get-gpu-quad)
  +             :mat (m3:rotation-y (radians 90))
  +             :tex sampler
  +             :uv-mult (v! -1 1)
  +             :transform (calc-trans (v! -1 0.5 0)))
  +      (map-g #'draw-cube-face-pipeline (get-gpu-quad)
  +             :mat (m3:rotation-y (radians -90))
  +             :tex sampler
  +             :uv-mult (v! -1 1)
  +             :transform (calc-trans (v! 1 0.5 0)))
  +      (map-g #'draw-cube-face-pipeline (get-gpu-quad)
  +             :mat (m3:rotation-x (radians 180))
  +             :tex sampler
  +             :uv-mult (v! 1 -1)
  +             :transform (calc-trans (v! 0 0.5 0)))
  +      (map-g #'draw-cube-face-pipeline (get-gpu-quad)
  +             :mat (m3:rotation-x (radians -90))
  +             :tex sampler
  +             :uv-mult (v! 1 -1)
  +             :transform (calc-trans (v! 0 -0.5 0)))
  +      (map-g #'draw-cube-face-pipeline (get-gpu-quad)
  +             :mat (m3:rotation-x (radians 0))
  +             :tex sampler
  +             :uv-mult (v! 1 -1)
  +             :transform (calc-trans (v! 0 -1.5 0))))))
  +
  +;;------------------------------------------------------------
  +
  +(defun %draw-sampler (sampler pos-vec2 rotation scale flip-uvs-vertically)
     (let* ((tex (sampler-texture sampler))
            (tex-res (resolution tex))
            (win-res (resolution (current-viewport)))
  
positive.code: 
  ;;------------------------------------------------------------
  
  (defgeneric draw-tex (tex &optional scale flip-uvs-vertically))
  (defgeneric draw-tex-tl (sampler &optional flip-uvs-vertically))
  (defgeneric draw-tex-bl (sampler &optional flip-uvs-vertically))
  (defgeneric draw-tex-tr (sampler &optional flip-uvs-vertically))
  (defgeneric draw-tex-br (sampler &optional flip-uvs-vertically))
  (defgeneric draw-tex-at (sampler &optional pos centered flip-uvs-vertically))
  
  ;;------------------------------------------------------------
  
  
negative.code: ;;------------------------------------------------------------
  
  (defmethod draw-tex ((tex texture)
                       &key (scale 0.9) (flip-uvs-vertically nil))
    (with-sampling (s tex)
      (draw-tex s :scale scale :flip-uvs-vertically flip-uvs-vertically)))
  
  (defmethod draw-tex ((sampler sampler)
                       &key (scale 0.9) (flip-uvs-vertically nil))
    (cepl-utils:with-setf (depth-test-function *cepl-context*) nil
      (if (eq (sampler-type sampler) :sampler-cube)
          (%draw-cube-face sampler (v! -0 0) 1.5707 scale)
  