• Jeffrey Lee's avatar
    Big refactor, introduce GraphicsV overlay API support · e285399d
    Jeffrey Lee authored
    Detail:
      This change introduces initial support for the GraphicsV overlay API.
      RGB & YUV overlays are supported, along with rotation and scaling.
      Vertical flipping isn't supported yet, and there are still a number of bugs to track down, along with some potential improvements.
      The code has also been refactored significantly, in an attempt to protect all critical state with spinlocks/mutexes (as appropriate), and to reduce the number of globals so that it's easier to see what's touching what. Previously very little locking was performed, which could lead to issues if VSyncs or synclost interrupts occurred during certain operations. Now, the data should be structured in such a way that this shouldn't cause problems.
      Notable things:
      * State which needs to be writable from interrupt handlers is protected by spinlocks
      * State which needs to be readable from interrupt handlers is protected by reader-writer spinlocks
      * State which doesn't need t...
    e285399d