Является ли MTKView (_ _: MTKView, drawableSizeWillChange Size: CGSize) подходящим местом для обновления областей отслеживания?

#swift #macos #cocoa #undefined-behavior #metal

#swift #macos #какао #неопределенное поведение #Металлические

Вопрос:

Учитывая, что было бы довольно неудобно менять класс с MTKView моего собственного представления и переопределять код для вставки updateTrackingAreas() кода, просто для обнаружения событий перемещения мыши, можно ли сделать это так?

 func mtkView(_ _: MTKView, drawableSizeWillChange Size: CGSize) {
    if let TrackingArea = Area {
        View.removeTrackingArea(TrackingArea)
    }
    Area = NSTrackingArea(rect: View.bounds, options: [.mouseEnteredAndExited, .mouseMoved, .activeInKeyWindow], owner: View, userInfo: nil)
    View.addTrackingArea(Area!)
    /*ProjectionMatrix = ProjectPerspective(Float(Size.width/Size.height))
    View.draw()*/
}
  

Есть ли еще лучший способ реализовать области отслеживания в металлической игре? (Я надеюсь на это)

Ответ №1:

meh, на всякий случай я решил поместить их в области отслеживания обновлений