Swift 2.0 и CVDisplayLinkSetOutputCallback через @convention(c)

Кому-нибудь удалось использовать таймер CVDisplayLink, не соединяя код Objective-C?

с добавлением @convention (c) это должно быть возможно, но я все еще получаю ошибку сегментации: 11 при попытке использовать CVDisplayLinkSetOutputCallback

    required init?(coder: NSCoder) {
    super.init(coder: coder)


    CVDisplayLinkCreateWithActiveCGDisplays(&displayLink)
    CVDisplayLinkSetOutputCallback(displayLink!, callback,  UnsafeMutablePointer<Void>(unsafeAddressOf(self!)) )
}
//call back declarations
let callback : @convention(c)(displayLink: CVDisplayLink, inNow: UnsafePointer<CVTimeStamp>, inOutputTime: UnsafePointer<CVTimeStamp>, flagsIn: CVOptionFlags, flagsOut: UnsafeMutablePointer<CVOptionFlags>, displayLinkContext: UnsafeMutablePointer<Void>) -> CVReturn =
{ (displayLink, inNow, inOutputTime, flagsIn, flagsOut, displayLinkContext) -> CVReturn in
    let context = UnsafeMutablePointer<GraphView>(displayLinkContext)
    let newContext = context.memory
    let error = newContext.getFrameForTime(inOutputTime)

    return error;
    return kCVReturnSuccess
}

теперь я могу это сделать? или мост все еще необходим для достижения точности таймера?

0 ответов

Другие вопросы по тегам