diff --git a/MACHView.m b/MACHView.m index 44e03d9..06fd6a7 100644 --- a/MACHView.m +++ b/MACHView.m @@ -1,5 +1,6 @@ #import #import +#import @interface MACHView : NSView @end @@ -14,7 +15,11 @@ @implementation MACHView { void (^_scrollWheel_block)(NSEvent *); void (^_magnify_block)(NSEvent *); void (^_insertText_block)(NSEvent *, uint32_t); + void (^_render_block)(void); NSTrackingArea *trackingArea; + dispatch_source_t m_displaySource; + CVDisplayLinkRef m_displayLink; + BOOL _hasRenderLoop; } - (BOOL)canBecomeKeyView { @@ -25,6 +30,78 @@ - (BOOL)acceptsFirstResponder { return YES; } +- (void)dealloc +{ + if (self->_hasRenderLoop) { + [self stopRenderLoop]; + } +} + +- (void)viewDidMoveToWindow +{ + [super viewDidMoveToWindow]; + + if (self->_hasRenderLoop) { + + [self stopRenderLoop]; + + if (self.window) + { + m_displaySource = dispatch_source_create(DISPATCH_SOURCE_TYPE_DATA_ADD, 0, + 0, dispatch_get_main_queue()); + dispatch_source_set_event_handler(m_displaySource, ^() { [self render]; }); + dispatch_resume(m_displaySource); + + CVDisplayLinkCreateWithActiveCGDisplays(&m_displayLink); + CVDisplayLinkSetOutputCallback(m_displayLink, &displayLinkCallback, (__bridge void*)m_displaySource); + CVDisplayLinkStart(m_displayLink); + } + } +} + +static CVReturn displayLinkCallback( + CVDisplayLinkRef displayLink, + const CVTimeStamp* now, + const CVTimeStamp* outputTime, + CVOptionFlags flagsIn, + CVOptionFlags* flagsOut, + void* displayLinkContext) +{ + @autoreleasepool + { + dispatch_source_t source = (__bridge dispatch_source_t)displayLinkContext; + dispatch_source_merge_data(source, 1); + return kCVReturnSuccess; + } +} + +- (void)render +{ + if (_render_block) + _render_block(); +} + +- (void)stopRenderLoop +{ + if (m_displaySource) + { + dispatch_source_cancel(m_displaySource); + m_displaySource = nil; + } + + if (m_displayLink) + { + CVDisplayLinkStop(m_displayLink); + CVDisplayLinkRelease(m_displayLink); + m_displayLink = nil; + } +} + +- (void)setBlock_render:(void (^)(void))render_block + __attribute__((objc_direct)) { + _render_block = render_block; +} + - (void)setBlock_keyDown:(void (^)(NSEvent *))keyDown_block __attribute__((objc_direct)) { _keyDown_block = keyDown_block; @@ -182,6 +259,13 @@ - (void)doCommandBySelector:(SEL)selector { } + +-(id)initWithFrame:(NSRect)frame withRenderLoop:(BOOL)loop { + self = [self initWithFrame:frame]; + self->_hasRenderLoop = loop; + return self; +} + // This overrides the default initializer and creates a tracking area over the // views visible rect - (id)initWithFrame:(NSRect)frame { @@ -197,24 +281,14 @@ - (id)initWithFrame:(NSRect)frame { owner:self userInfo:nil]; [self addTrackingArea:trackingArea]; + } return self; } -// This is automatically called each time the view size changes -- (void)updateTrackingAreas { - // Remove any existing tracking area - [self removeTrackingArea:trackingArea]; - // Create a new tracking area to monitor mouse movement - NSTrackingAreaOptions options = NSTrackingMouseEnteredAndExited | - NSTrackingMouseMoved | - NSTrackingActiveInActiveApp; - NSRect rect = self.visibleRect; - trackingArea = [[NSTrackingArea alloc] initWithRect:rect - options:options - owner:self - userInfo:nil]; - [self addTrackingArea:trackingArea]; -} + + + + @end \ No newline at end of file diff --git a/MACHView_arm64_apple_macos12.s b/MACHView_arm64_apple_macos12.s index e028717..7142129 100644 --- a/MACHView_arm64_apple_macos12.s +++ b/MACHView_arm64_apple_macos12.s @@ -14,12 +14,367 @@ ret .cfi_endproc + .p2align 2 +"-[MACHView dealloc]": + .cfi_startproc + sub sp, sp, #48 + .cfi_def_cfa_offset 48 + stp x20, x19, [sp, #16] + stp x29, x30, [sp, #32] + .cfi_offset w30, -8 + .cfi_offset w29, -16 + .cfi_offset w19, -24 + .cfi_offset w20, -32 + mov x19, x0 +Lloh0: + adrp x8, _OBJC_IVAR_$_MACHView._hasRenderLoop@PAGE +Lloh1: + ldrsw x8, [x8, _OBJC_IVAR_$_MACHView._hasRenderLoop@PAGEOFF] + ldrb w8, [x0, x8] + cmp w8, #1 + b.ne LBB2_2 +Lloh2: + adrp x8, _OBJC_SELECTOR_REFERENCES_@PAGE +Lloh3: + ldr x1, [x8, _OBJC_SELECTOR_REFERENCES_@PAGEOFF] + mov x0, x19 + bl _objc_msgSend +LBB2_2: +Lloh4: + adrp x8, l_OBJC_CLASSLIST_SUP_REFS_$_@PAGE +Lloh5: + ldr x8, [x8, l_OBJC_CLASSLIST_SUP_REFS_$_@PAGEOFF] + stp x19, x8, [sp] +Lloh6: + adrp x8, _OBJC_SELECTOR_REFERENCES_.2@PAGE +Lloh7: + ldr x1, [x8, _OBJC_SELECTOR_REFERENCES_.2@PAGEOFF] + mov x0, sp + bl _objc_msgSendSuper2 + ldp x29, x30, [sp, #32] + ldp x20, x19, [sp, #16] + add sp, sp, #48 + .cfi_def_cfa_offset 0 + .cfi_restore w30 + .cfi_restore w29 + .cfi_restore w19 + .cfi_restore w20 + ret + .loh AdrpLdr Lloh0, Lloh1 + .loh AdrpLdr Lloh2, Lloh3 + .loh AdrpLdr Lloh6, Lloh7 + .loh AdrpLdr Lloh4, Lloh5 + .cfi_endproc + + .section __TEXT,__literal8,8byte_literals + .p2align 3, 0x0 +lCPI3_0: + .long 3254779904 + .long 0 + .section __TEXT,__text,regular,pure_instructions + .p2align 2 +"-[MACHView viewDidMoveToWindow]": + .cfi_startproc + sub sp, sp, #112 + .cfi_def_cfa_offset 112 + stp x22, x21, [sp, #64] + stp x20, x19, [sp, #80] + stp x29, x30, [sp, #96] + .cfi_offset w30, -8 + .cfi_offset w29, -16 + .cfi_offset w19, -24 + .cfi_offset w20, -32 + .cfi_offset w21, -40 + .cfi_offset w22, -48 + mov x19, x0 +Lloh8: + adrp x8, l_OBJC_CLASSLIST_SUP_REFS_$_@PAGE +Lloh9: + ldr x8, [x8, l_OBJC_CLASSLIST_SUP_REFS_$_@PAGEOFF] + stp x0, x8, [sp, #48] +Lloh10: + adrp x8, _OBJC_SELECTOR_REFERENCES_.4@PAGE +Lloh11: + ldr x1, [x8, _OBJC_SELECTOR_REFERENCES_.4@PAGEOFF] + add x0, sp, #48 + bl _objc_msgSendSuper2 +Lloh12: + adrp x8, _OBJC_IVAR_$_MACHView._hasRenderLoop@PAGE +Lloh13: + ldrsw x8, [x8, _OBJC_IVAR_$_MACHView._hasRenderLoop@PAGEOFF] + ldrb w8, [x19, x8] + cmp w8, #1 + b.ne LBB3_3 +Lloh14: + adrp x8, _OBJC_SELECTOR_REFERENCES_@PAGE +Lloh15: + ldr x1, [x8, _OBJC_SELECTOR_REFERENCES_@PAGEOFF] + mov x0, x19 + bl _objc_msgSend +Lloh16: + adrp x8, _OBJC_SELECTOR_REFERENCES_.6@PAGE +Lloh17: + ldr x1, [x8, _OBJC_SELECTOR_REFERENCES_.6@PAGEOFF] + mov x0, x19 + bl _objc_msgSend + mov x29, x29 + bl _objc_retainAutoreleasedReturnValue + mov x20, x0 + bl _objc_release + cbz x20, LBB3_3 +Lloh18: + adrp x0, __dispatch_source_type_data_add@GOTPAGE +Lloh19: + ldr x0, [x0, __dispatch_source_type_data_add@GOTPAGEOFF] +Lloh20: + adrp x3, __dispatch_main_q@GOTPAGE +Lloh21: + ldr x3, [x3, __dispatch_main_q@GOTPAGEOFF] + mov x1, #0 + mov x2, #0 + bl _dispatch_source_create +Lloh22: + adrp x8, _OBJC_IVAR_$_MACHView.m_displaySource@PAGE +Lloh23: + ldrsw x20, [x8, _OBJC_IVAR_$_MACHView.m_displaySource@PAGEOFF] + ldr x8, [x19, x20] + str x0, [x19, x20] + mov x0, x8 + bl _objc_release + ldr x0, [x19, x20] +Lloh24: + adrp x8, __NSConcreteStackBlock@GOTPAGE +Lloh25: + ldr x8, [x8, __NSConcreteStackBlock@GOTPAGEOFF] + str x8, [sp, #8] +Lloh26: + adrp x8, lCPI3_0@PAGE +Lloh27: + ldr d0, [x8, lCPI3_0@PAGEOFF] +Lloh28: + adrp x8, "___31-[MACHView viewDidMoveToWindow]_block_invoke"@PAGE +Lloh29: + add x8, x8, "___31-[MACHView viewDidMoveToWindow]_block_invoke"@PAGEOFF + str d0, [sp, #16] +Lloh30: + adrp x9, "___block_descriptor_40_8_32s_e5_v8\x01?0l"@PAGE +Lloh31: + add x9, x9, "___block_descriptor_40_8_32s_e5_v8\x01?0l"@PAGEOFF + stp x8, x9, [sp, #24] + str x19, [sp, #40] + add x1, sp, #8 + bl _dispatch_source_set_event_handler + ldr x0, [x19, x20] + bl _dispatch_resume +Lloh32: + adrp x8, _OBJC_IVAR_$_MACHView.m_displayLink@PAGE +Lloh33: + ldrsw x21, [x8, _OBJC_IVAR_$_MACHView.m_displayLink@PAGEOFF] + add x0, x19, x21 + bl _CVDisplayLinkCreateWithActiveCGDisplays + ldr x0, [x19, x21] + ldr x2, [x19, x20] +Lloh34: + adrp x1, _displayLinkCallback@PAGE +Lloh35: + add x1, x1, _displayLinkCallback@PAGEOFF + bl _CVDisplayLinkSetOutputCallback + ldr x0, [x19, x21] + bl _CVDisplayLinkStart +LBB3_3: + ldp x29, x30, [sp, #96] + ldp x20, x19, [sp, #80] + ldp x22, x21, [sp, #64] + add sp, sp, #112 + .cfi_def_cfa_offset 0 + .cfi_restore w30 + .cfi_restore w29 + .cfi_restore w19 + .cfi_restore w20 + .cfi_restore w21 + .cfi_restore w22 + ret + .loh AdrpLdr Lloh12, Lloh13 + .loh AdrpLdr Lloh10, Lloh11 + .loh AdrpLdr Lloh8, Lloh9 + .loh AdrpLdr Lloh16, Lloh17 + .loh AdrpLdr Lloh14, Lloh15 + .loh AdrpAdd Lloh34, Lloh35 + .loh AdrpLdr Lloh32, Lloh33 + .loh AdrpAdd Lloh30, Lloh31 + .loh AdrpAdd Lloh28, Lloh29 + .loh AdrpAdrp Lloh26, Lloh28 + .loh AdrpLdr Lloh26, Lloh27 + .loh AdrpLdrGot Lloh24, Lloh25 + .loh AdrpLdr Lloh22, Lloh23 + .loh AdrpLdrGot Lloh20, Lloh21 + .loh AdrpLdrGot Lloh18, Lloh19 + .cfi_endproc + + .p2align 2 +"___31-[MACHView viewDidMoveToWindow]_block_invoke": + .cfi_startproc + ldr x0, [x0, #32] +Lloh36: + adrp x8, _OBJC_SELECTOR_REFERENCES_.8@PAGE +Lloh37: + ldr x1, [x8, _OBJC_SELECTOR_REFERENCES_.8@PAGEOFF] + b _objc_msgSend + .loh AdrpLdr Lloh36, Lloh37 + .cfi_endproc + + .private_extern ___copy_helper_block_8_32s + .globl ___copy_helper_block_8_32s + .weak_def_can_be_hidden ___copy_helper_block_8_32s + .p2align 2 +___copy_helper_block_8_32s: + .cfi_startproc + ldr x0, [x1, #32] + b _objc_retain + .cfi_endproc + + .private_extern ___destroy_helper_block_8_32s + .globl ___destroy_helper_block_8_32s + .weak_def_can_be_hidden ___destroy_helper_block_8_32s + .p2align 2 +___destroy_helper_block_8_32s: + .cfi_startproc + ldr x0, [x0, #32] + b _objc_release + .cfi_endproc + + .p2align 2 +_displayLinkCallback: + .cfi_startproc + stp x20, x19, [sp, #-32]! + .cfi_def_cfa_offset 32 + stp x29, x30, [sp, #16] + .cfi_offset w30, -8 + .cfi_offset w29, -16 + .cfi_offset w19, -24 + .cfi_offset w20, -32 + mov x19, x5 + bl _objc_autoreleasePoolPush + mov x20, x0 + mov x0, x19 + mov w1, #1 + bl _dispatch_source_merge_data + mov x0, x20 + bl _objc_autoreleasePoolPop + mov w0, #0 + ldp x29, x30, [sp, #16] + ldp x20, x19, [sp], #32 + .cfi_def_cfa_offset 0 + .cfi_restore w30 + .cfi_restore w29 + .cfi_restore w19 + .cfi_restore w20 + ret + .cfi_endproc + + .p2align 2 +"-[MACHView render]": + .cfi_startproc +Lloh38: + adrp x8, _OBJC_IVAR_$_MACHView._render_block@PAGE +Lloh39: + ldrsw x8, [x8, _OBJC_IVAR_$_MACHView._render_block@PAGEOFF] + ldr x0, [x0, x8] + cbz x0, LBB8_2 + ldr x1, [x0, #16] + br x1 +LBB8_2: + ret + .loh AdrpLdr Lloh38, Lloh39 + .cfi_endproc + + .p2align 2 +"-[MACHView stopRenderLoop]": + .cfi_startproc + stp x20, x19, [sp, #-32]! + .cfi_def_cfa_offset 32 + stp x29, x30, [sp, #16] + .cfi_offset w30, -8 + .cfi_offset w29, -16 + .cfi_offset w19, -24 + .cfi_offset w20, -32 + mov x19, x0 +Lloh40: + adrp x8, _OBJC_IVAR_$_MACHView.m_displaySource@PAGE +Lloh41: + ldrsw x20, [x8, _OBJC_IVAR_$_MACHView.m_displaySource@PAGEOFF] + ldr x0, [x0, x20] + cbz x0, LBB9_2 + bl _dispatch_source_cancel + ldr x0, [x19, x20] + str xzr, [x19, x20] + bl _objc_release +LBB9_2: +Lloh42: + adrp x8, _OBJC_IVAR_$_MACHView.m_displayLink@PAGE +Lloh43: + ldrsw x20, [x8, _OBJC_IVAR_$_MACHView.m_displayLink@PAGEOFF] + ldr x0, [x19, x20] + cbz x0, LBB9_4 + bl _CVDisplayLinkStop + ldr x0, [x19, x20] + bl _CVDisplayLinkRelease + str xzr, [x19, x20] +LBB9_4: + ldp x29, x30, [sp, #16] + ldp x20, x19, [sp], #32 + .cfi_def_cfa_offset 0 + .cfi_restore w30 + .cfi_restore w29 + .cfi_restore w19 + .cfi_restore w20 + ret + .loh AdrpLdr Lloh40, Lloh41 + .loh AdrpLdr Lloh42, Lloh43 + .cfi_endproc + + .private_extern "-[MACHView setBlock_render:]" + .globl "-[MACHView setBlock_render:]" + .p2align 2 +"-[MACHView setBlock_render:]": + .cfi_startproc + cbz x0, LBB10_2 + stp x20, x19, [sp, #-32]! + .cfi_def_cfa_offset 32 + stp x29, x30, [sp, #16] + .cfi_offset w30, -8 + .cfi_offset w29, -16 + .cfi_offset w19, -24 + .cfi_offset w20, -32 + mov x19, x0 + mov x0, x1 + bl _objc_retainBlock +Lloh44: + adrp x8, _OBJC_IVAR_$_MACHView._render_block@PAGE +Lloh45: + ldrsw x9, [x8, _OBJC_IVAR_$_MACHView._render_block@PAGEOFF] + ldr x8, [x19, x9] + str x0, [x19, x9] + mov x0, x8 + ldp x29, x30, [sp, #16] + ldp x20, x19, [sp], #32 + .cfi_def_cfa_offset 0 + .cfi_restore w30 + .cfi_restore w29 + .cfi_restore w19 + .cfi_restore w20 + b _objc_release +LBB10_2: + ret + .loh AdrpLdr Lloh44, Lloh45 + .cfi_endproc + .private_extern "-[MACHView setBlock_keyDown:]" .globl "-[MACHView setBlock_keyDown:]" .p2align 2 "-[MACHView setBlock_keyDown:]": .cfi_startproc - cbz x0, LBB2_2 + cbz x0, LBB11_2 stp x20, x19, [sp, #-32]! .cfi_def_cfa_offset 32 stp x29, x30, [sp, #16] @@ -30,9 +385,9 @@ mov x19, x0 mov x0, x1 bl _objc_retainBlock -Lloh0: +Lloh46: adrp x8, _OBJC_IVAR_$_MACHView._keyDown_block@PAGE -Lloh1: +Lloh47: ldrsw x9, [x8, _OBJC_IVAR_$_MACHView._keyDown_block@PAGEOFF] ldr x8, [x19, x9] str x0, [x19, x9] @@ -45,9 +400,9 @@ Lloh1: .cfi_restore w19 .cfi_restore w20 b _objc_release -LBB2_2: +LBB11_2: ret - .loh AdrpLdr Lloh0, Lloh1 + .loh AdrpLdr Lloh46, Lloh47 .cfi_endproc .private_extern "-[MACHView setBlock_keyUp:]" @@ -55,7 +410,7 @@ LBB2_2: .p2align 2 "-[MACHView setBlock_keyUp:]": .cfi_startproc - cbz x0, LBB3_2 + cbz x0, LBB12_2 stp x20, x19, [sp, #-32]! .cfi_def_cfa_offset 32 stp x29, x30, [sp, #16] @@ -66,9 +421,9 @@ LBB2_2: mov x19, x0 mov x0, x1 bl _objc_retainBlock -Lloh2: +Lloh48: adrp x8, _OBJC_IVAR_$_MACHView._keyUp_block@PAGE -Lloh3: +Lloh49: ldrsw x9, [x8, _OBJC_IVAR_$_MACHView._keyUp_block@PAGEOFF] ldr x8, [x19, x9] str x0, [x19, x9] @@ -81,9 +436,9 @@ Lloh3: .cfi_restore w19 .cfi_restore w20 b _objc_release -LBB3_2: +LBB12_2: ret - .loh AdrpLdr Lloh2, Lloh3 + .loh AdrpLdr Lloh48, Lloh49 .cfi_endproc .private_extern "-[MACHView setBlock_mouseMoved:]" @@ -91,7 +446,7 @@ LBB3_2: .p2align 2 "-[MACHView setBlock_mouseMoved:]": .cfi_startproc - cbz x0, LBB4_2 + cbz x0, LBB13_2 stp x20, x19, [sp, #-32]! .cfi_def_cfa_offset 32 stp x29, x30, [sp, #16] @@ -102,9 +457,9 @@ LBB3_2: mov x19, x0 mov x0, x1 bl _objc_retainBlock -Lloh4: +Lloh50: adrp x8, _OBJC_IVAR_$_MACHView._mouseMoved_block@PAGE -Lloh5: +Lloh51: ldrsw x9, [x8, _OBJC_IVAR_$_MACHView._mouseMoved_block@PAGEOFF] ldr x8, [x19, x9] str x0, [x19, x9] @@ -117,9 +472,9 @@ Lloh5: .cfi_restore w19 .cfi_restore w20 b _objc_release -LBB4_2: +LBB13_2: ret - .loh AdrpLdr Lloh4, Lloh5 + .loh AdrpLdr Lloh50, Lloh51 .cfi_endproc .private_extern "-[MACHView setBlock_mouseDown:]" @@ -127,7 +482,7 @@ LBB4_2: .p2align 2 "-[MACHView setBlock_mouseDown:]": .cfi_startproc - cbz x0, LBB5_2 + cbz x0, LBB14_2 stp x20, x19, [sp, #-32]! .cfi_def_cfa_offset 32 stp x29, x30, [sp, #16] @@ -138,9 +493,9 @@ LBB4_2: mov x19, x0 mov x0, x1 bl _objc_retainBlock -Lloh6: +Lloh52: adrp x8, _OBJC_IVAR_$_MACHView._mouseDown_block@PAGE -Lloh7: +Lloh53: ldrsw x9, [x8, _OBJC_IVAR_$_MACHView._mouseDown_block@PAGEOFF] ldr x8, [x19, x9] str x0, [x19, x9] @@ -153,9 +508,9 @@ Lloh7: .cfi_restore w19 .cfi_restore w20 b _objc_release -LBB5_2: +LBB14_2: ret - .loh AdrpLdr Lloh6, Lloh7 + .loh AdrpLdr Lloh52, Lloh53 .cfi_endproc .private_extern "-[MACHView setBlock_mouseUp:]" @@ -163,7 +518,7 @@ LBB5_2: .p2align 2 "-[MACHView setBlock_mouseUp:]": .cfi_startproc - cbz x0, LBB6_2 + cbz x0, LBB15_2 stp x20, x19, [sp, #-32]! .cfi_def_cfa_offset 32 stp x29, x30, [sp, #16] @@ -174,9 +529,9 @@ LBB5_2: mov x19, x0 mov x0, x1 bl _objc_retainBlock -Lloh8: +Lloh54: adrp x8, _OBJC_IVAR_$_MACHView._mouseUp_block@PAGE -Lloh9: +Lloh55: ldrsw x9, [x8, _OBJC_IVAR_$_MACHView._mouseUp_block@PAGEOFF] ldr x8, [x19, x9] str x0, [x19, x9] @@ -189,9 +544,9 @@ Lloh9: .cfi_restore w19 .cfi_restore w20 b _objc_release -LBB6_2: +LBB15_2: ret - .loh AdrpLdr Lloh8, Lloh9 + .loh AdrpLdr Lloh54, Lloh55 .cfi_endproc .private_extern "-[MACHView setBlock_scrollWheel:]" @@ -199,7 +554,7 @@ LBB6_2: .p2align 2 "-[MACHView setBlock_scrollWheel:]": .cfi_startproc - cbz x0, LBB7_2 + cbz x0, LBB16_2 stp x20, x19, [sp, #-32]! .cfi_def_cfa_offset 32 stp x29, x30, [sp, #16] @@ -210,9 +565,9 @@ LBB6_2: mov x19, x0 mov x0, x1 bl _objc_retainBlock -Lloh10: +Lloh56: adrp x8, _OBJC_IVAR_$_MACHView._scrollWheel_block@PAGE -Lloh11: +Lloh57: ldrsw x9, [x8, _OBJC_IVAR_$_MACHView._scrollWheel_block@PAGEOFF] ldr x8, [x19, x9] str x0, [x19, x9] @@ -225,9 +580,9 @@ Lloh11: .cfi_restore w19 .cfi_restore w20 b _objc_release -LBB7_2: +LBB16_2: ret - .loh AdrpLdr Lloh10, Lloh11 + .loh AdrpLdr Lloh56, Lloh57 .cfi_endproc .private_extern "-[MACHView setBlock_flagsChanged:]" @@ -235,7 +590,7 @@ LBB7_2: .p2align 2 "-[MACHView setBlock_flagsChanged:]": .cfi_startproc - cbz x0, LBB8_2 + cbz x0, LBB17_2 stp x20, x19, [sp, #-32]! .cfi_def_cfa_offset 32 stp x29, x30, [sp, #16] @@ -246,9 +601,9 @@ LBB7_2: mov x19, x0 mov x0, x1 bl _objc_retainBlock -Lloh12: +Lloh58: adrp x8, _OBJC_IVAR_$_MACHView._flagsChanged_block@PAGE -Lloh13: +Lloh59: ldrsw x9, [x8, _OBJC_IVAR_$_MACHView._flagsChanged_block@PAGEOFF] ldr x8, [x19, x9] str x0, [x19, x9] @@ -261,9 +616,9 @@ Lloh13: .cfi_restore w19 .cfi_restore w20 b _objc_release -LBB8_2: +LBB17_2: ret - .loh AdrpLdr Lloh12, Lloh13 + .loh AdrpLdr Lloh58, Lloh59 .cfi_endproc .private_extern "-[MACHView setBlock_insertText:]" @@ -271,7 +626,7 @@ LBB8_2: .p2align 2 "-[MACHView setBlock_insertText:]": .cfi_startproc - cbz x0, LBB9_2 + cbz x0, LBB18_2 stp x20, x19, [sp, #-32]! .cfi_def_cfa_offset 32 stp x29, x30, [sp, #16] @@ -282,9 +637,9 @@ LBB8_2: mov x19, x0 mov x0, x1 bl _objc_retainBlock -Lloh14: +Lloh60: adrp x8, _OBJC_IVAR_$_MACHView._insertText_block@PAGE -Lloh15: +Lloh61: ldrsw x9, [x8, _OBJC_IVAR_$_MACHView._insertText_block@PAGEOFF] ldr x8, [x19, x9] str x0, [x19, x9] @@ -297,9 +652,9 @@ Lloh15: .cfi_restore w19 .cfi_restore w20 b _objc_release -LBB9_2: +LBB18_2: ret - .loh AdrpLdr Lloh14, Lloh15 + .loh AdrpLdr Lloh60, Lloh61 .cfi_endproc .private_extern "-[MACHView setBlock_magnify:]" @@ -307,7 +662,7 @@ LBB9_2: .p2align 2 "-[MACHView setBlock_magnify:]": .cfi_startproc - cbz x0, LBB10_2 + cbz x0, LBB19_2 stp x20, x19, [sp, #-32]! .cfi_def_cfa_offset 32 stp x29, x30, [sp, #16] @@ -318,9 +673,9 @@ LBB9_2: mov x19, x0 mov x0, x1 bl _objc_retainBlock -Lloh16: +Lloh62: adrp x8, _OBJC_IVAR_$_MACHView._magnify_block@PAGE -Lloh17: +Lloh63: ldrsw x9, [x8, _OBJC_IVAR_$_MACHView._magnify_block@PAGEOFF] ldr x8, [x19, x9] str x0, [x19, x9] @@ -333,9 +688,9 @@ Lloh17: .cfi_restore w19 .cfi_restore w20 b _objc_release -LBB10_2: +LBB19_2: ret - .loh AdrpLdr Lloh16, Lloh17 + .loh AdrpLdr Lloh62, Lloh63 .cfi_endproc .p2align 2 @@ -356,35 +711,35 @@ LBB10_2: mov x20, x0 mov x0, x2 bl _objc_retain -Lloh18: +Lloh64: adrp x8, _OBJC_IVAR_$_MACHView._keyDown_block@PAGE -Lloh19: +Lloh65: ldrsw x8, [x8, _OBJC_IVAR_$_MACHView._keyDown_block@PAGEOFF] ldr x0, [x20, x8] - cbz x0, LBB11_2 + cbz x0, LBB20_2 ldr x8, [x0, #16] mov x1, x19 blr x8 -LBB11_2: +LBB20_2: str x19, [sp, #8] -Lloh20: +Lloh66: adrp x8, _OBJC_CLASSLIST_REFERENCES_$_@PAGE -Lloh21: +Lloh67: ldr x0, [x8, _OBJC_CLASSLIST_REFERENCES_$_@PAGEOFF] -Lloh22: - adrp x8, _OBJC_SELECTOR_REFERENCES_@PAGE -Lloh23: - ldr x1, [x8, _OBJC_SELECTOR_REFERENCES_@PAGEOFF] +Lloh68: + adrp x8, _OBJC_SELECTOR_REFERENCES_.10@PAGE +Lloh69: + ldr x1, [x8, _OBJC_SELECTOR_REFERENCES_.10@PAGEOFF] add x2, sp, #8 mov w3, #1 bl _objc_msgSend mov x29, x29 bl _objc_retainAutoreleasedReturnValue mov x21, x0 -Lloh24: - adrp x8, _OBJC_SELECTOR_REFERENCES_.2@PAGE -Lloh25: - ldr x1, [x8, _OBJC_SELECTOR_REFERENCES_.2@PAGEOFF] +Lloh70: + adrp x8, _OBJC_SELECTOR_REFERENCES_.12@PAGE +Lloh71: + ldr x1, [x8, _OBJC_SELECTOR_REFERENCES_.12@PAGEOFF] mov x0, x20 mov x2, x21 bl _objc_msgSend @@ -404,11 +759,11 @@ Lloh25: .cfi_restore w21 .cfi_restore w22 ret - .loh AdrpLdr Lloh18, Lloh19 - .loh AdrpLdr Lloh24, Lloh25 - .loh AdrpLdr Lloh22, Lloh23 - .loh AdrpAdrp Lloh20, Lloh22 - .loh AdrpLdr Lloh20, Lloh21 + .loh AdrpLdr Lloh64, Lloh65 + .loh AdrpLdr Lloh70, Lloh71 + .loh AdrpLdr Lloh68, Lloh69 + .loh AdrpAdrp Lloh66, Lloh68 + .loh AdrpLdr Lloh66, Lloh67 .cfi_endproc .p2align 2 @@ -435,67 +790,67 @@ Lloh25: mov x20, x0 mov x0, x2 bl _objc_retain -Lloh26: +Lloh72: adrp x8, _NSApp@GOTPAGE -Lloh27: +Lloh73: ldr x8, [x8, _NSApp@GOTPAGEOFF] -Lloh28: +Lloh74: ldr x0, [x8] -Lloh29: - adrp x8, _OBJC_SELECTOR_REFERENCES_.4@PAGE -Lloh30: - ldr x1, [x8, _OBJC_SELECTOR_REFERENCES_.4@PAGEOFF] +Lloh75: + adrp x8, _OBJC_SELECTOR_REFERENCES_.14@PAGE +Lloh76: + ldr x1, [x8, _OBJC_SELECTOR_REFERENCES_.14@PAGEOFF] bl _objc_msgSend mov x29, x29 bl _objc_retainAutoreleasedReturnValue mov x21, x0 -Lloh31: - adrp x8, _OBJC_CLASSLIST_REFERENCES_$_.5@PAGE -Lloh32: - ldr x0, [x8, _OBJC_CLASSLIST_REFERENCES_$_.5@PAGEOFF] -Lloh33: - adrp x8, _OBJC_SELECTOR_REFERENCES_.7@PAGE -Lloh34: - ldr x1, [x8, _OBJC_SELECTOR_REFERENCES_.7@PAGEOFF] +Lloh77: + adrp x8, _OBJC_CLASSLIST_REFERENCES_$_.15@PAGE +Lloh78: + ldr x0, [x8, _OBJC_CLASSLIST_REFERENCES_$_.15@PAGEOFF] +Lloh79: + adrp x8, _OBJC_SELECTOR_REFERENCES_.17@PAGE +Lloh80: + ldr x1, [x8, _OBJC_SELECTOR_REFERENCES_.17@PAGEOFF] bl _objc_msgSend mov x2, x0 -Lloh35: - adrp x8, _OBJC_SELECTOR_REFERENCES_.9@PAGE -Lloh36: - ldr x1, [x8, _OBJC_SELECTOR_REFERENCES_.9@PAGEOFF] +Lloh81: + adrp x8, _OBJC_SELECTOR_REFERENCES_.19@PAGE +Lloh82: + ldr x1, [x8, _OBJC_SELECTOR_REFERENCES_.19@PAGEOFF] mov x0, x19 bl _objc_msgSend - cbz w0, LBB12_2 -Lloh37: - adrp x8, _OBJC_SELECTOR_REFERENCES_.11@PAGE -Lloh38: - ldr x1, [x8, _OBJC_SELECTOR_REFERENCES_.11@PAGEOFF] + cbz w0, LBB21_2 +Lloh83: + adrp x8, _OBJC_SELECTOR_REFERENCES_.21@PAGE +Lloh84: + ldr x1, [x8, _OBJC_SELECTOR_REFERENCES_.21@PAGEOFF] mov x0, x19 bl _objc_msgSend mov x29, x29 bl _objc_retainAutoreleasedReturnValue mov x22, x0 - b LBB12_3 -LBB12_2: + b LBB21_3 +LBB21_2: mov x0, x19 bl _objc_retain mov x22, x19 -LBB12_3: -Lloh39: - adrp x8, _OBJC_SELECTOR_REFERENCES_.13@PAGE -Lloh40: - ldr x1, [x8, _OBJC_SELECTOR_REFERENCES_.13@PAGEOFF] +LBB21_3: +Lloh85: + adrp x8, _OBJC_SELECTOR_REFERENCES_.23@PAGE +Lloh86: + ldr x1, [x8, _OBJC_SELECTOR_REFERENCES_.23@PAGEOFF] mov x0, x22 bl _objc_msgSend stp xzr, x0, [sp, #32] - cbz x0, LBB12_10 -Lloh41: - adrp x8, _OBJC_SELECTOR_REFERENCES_.15@PAGE -Lloh42: - ldr x23, [x8, _OBJC_SELECTOR_REFERENCES_.15@PAGEOFF] + cbz x0, LBB21_10 +Lloh87: + adrp x8, _OBJC_SELECTOR_REFERENCES_.25@PAGE +Lloh88: + ldr x23, [x8, _OBJC_SELECTOR_REFERENCES_.25@PAGEOFF] add x24, sp, #32 adrp x25, _OBJC_IVAR_$_MACHView._insertText_block@PAGE -LBB12_5: +LBB21_5: str wzr, [sp, #28] ldr x8, [sp, #32] stp x0, x24, [sp, #8] @@ -509,21 +864,21 @@ LBB12_5: movk w5, #35840, lsl #16 mov x6, #0 bl _objc_msgSend - cbz w0, LBB12_9 + cbz w0, LBB21_9 ldr w2, [sp, #28] lsr w8, w2, #8 cmp w8, #247 - b.eq LBB12_9 + b.eq LBB21_9 ldrsw x8, [x25, _OBJC_IVAR_$_MACHView._insertText_block@PAGEOFF] ldr x0, [x20, x8] - cbz x0, LBB12_9 + cbz x0, LBB21_9 ldr x8, [x0, #16] mov x1, x21 blr x8 -LBB12_9: +LBB21_9: ldr x0, [sp, #40] - cbnz x0, LBB12_5 -LBB12_10: + cbnz x0, LBB21_5 +LBB21_10: mov x0, x21 bl _objc_release mov x0, x22 @@ -548,253 +903,253 @@ LBB12_10: .cfi_restore w25 .cfi_restore w26 ret - .loh AdrpLdr Lloh35, Lloh36 - .loh AdrpLdr Lloh33, Lloh34 - .loh AdrpAdrp Lloh31, Lloh33 - .loh AdrpLdr Lloh31, Lloh32 - .loh AdrpLdr Lloh29, Lloh30 - .loh AdrpLdrGotLdr Lloh26, Lloh27, Lloh28 - .loh AdrpLdr Lloh37, Lloh38 - .loh AdrpLdr Lloh39, Lloh40 - .loh AdrpLdr Lloh41, Lloh42 + .loh AdrpLdr Lloh81, Lloh82 + .loh AdrpLdr Lloh79, Lloh80 + .loh AdrpAdrp Lloh77, Lloh79 + .loh AdrpLdr Lloh77, Lloh78 + .loh AdrpLdr Lloh75, Lloh76 + .loh AdrpLdrGotLdr Lloh72, Lloh73, Lloh74 + .loh AdrpLdr Lloh83, Lloh84 + .loh AdrpLdr Lloh85, Lloh86 + .loh AdrpLdr Lloh87, Lloh88 .cfi_endproc .p2align 2 "-[MACHView keyUp:]": .cfi_startproc -Lloh43: +Lloh89: adrp x8, _OBJC_IVAR_$_MACHView._keyUp_block@PAGE -Lloh44: +Lloh90: ldrsw x8, [x8, _OBJC_IVAR_$_MACHView._keyUp_block@PAGEOFF] ldr x0, [x0, x8] - cbz x0, LBB13_2 + cbz x0, LBB22_2 ldr x3, [x0, #16] mov x1, x2 br x3 -LBB13_2: +LBB22_2: ret - .loh AdrpLdr Lloh43, Lloh44 + .loh AdrpLdr Lloh89, Lloh90 .cfi_endproc .p2align 2 "-[MACHView flagsChanged:]": .cfi_startproc -Lloh45: +Lloh91: adrp x8, _OBJC_IVAR_$_MACHView._flagsChanged_block@PAGE -Lloh46: +Lloh92: ldrsw x8, [x8, _OBJC_IVAR_$_MACHView._flagsChanged_block@PAGEOFF] ldr x0, [x0, x8] - cbz x0, LBB14_2 + cbz x0, LBB23_2 ldr x3, [x0, #16] mov x1, x2 br x3 -LBB14_2: +LBB23_2: ret - .loh AdrpLdr Lloh45, Lloh46 + .loh AdrpLdr Lloh91, Lloh92 .cfi_endproc .p2align 2 "-[MACHView mouseMoved:]": .cfi_startproc -Lloh47: +Lloh93: adrp x8, _OBJC_IVAR_$_MACHView._mouseMoved_block@PAGE -Lloh48: +Lloh94: ldrsw x8, [x8, _OBJC_IVAR_$_MACHView._mouseMoved_block@PAGEOFF] ldr x0, [x0, x8] - cbz x0, LBB15_2 + cbz x0, LBB24_2 ldr x3, [x0, #16] mov x1, x2 br x3 -LBB15_2: +LBB24_2: ret - .loh AdrpLdr Lloh47, Lloh48 + .loh AdrpLdr Lloh93, Lloh94 .cfi_endproc .p2align 2 "-[MACHView mouseDragged:]": .cfi_startproc -Lloh49: +Lloh95: adrp x8, _OBJC_IVAR_$_MACHView._mouseMoved_block@PAGE -Lloh50: +Lloh96: ldrsw x8, [x8, _OBJC_IVAR_$_MACHView._mouseMoved_block@PAGEOFF] ldr x0, [x0, x8] - cbz x0, LBB16_2 + cbz x0, LBB25_2 ldr x3, [x0, #16] mov x1, x2 br x3 -LBB16_2: +LBB25_2: ret - .loh AdrpLdr Lloh49, Lloh50 + .loh AdrpLdr Lloh95, Lloh96 .cfi_endproc .p2align 2 "-[MACHView rightMouseDragged:]": .cfi_startproc -Lloh51: +Lloh97: adrp x8, _OBJC_IVAR_$_MACHView._mouseMoved_block@PAGE -Lloh52: +Lloh98: ldrsw x8, [x8, _OBJC_IVAR_$_MACHView._mouseMoved_block@PAGEOFF] ldr x0, [x0, x8] - cbz x0, LBB17_2 + cbz x0, LBB26_2 ldr x3, [x0, #16] mov x1, x2 br x3 -LBB17_2: +LBB26_2: ret - .loh AdrpLdr Lloh51, Lloh52 + .loh AdrpLdr Lloh97, Lloh98 .cfi_endproc .p2align 2 "-[MACHView otherMouseDragged:]": .cfi_startproc -Lloh53: +Lloh99: adrp x8, _OBJC_IVAR_$_MACHView._mouseMoved_block@PAGE -Lloh54: +Lloh100: ldrsw x8, [x8, _OBJC_IVAR_$_MACHView._mouseMoved_block@PAGEOFF] ldr x0, [x0, x8] - cbz x0, LBB18_2 + cbz x0, LBB27_2 ldr x3, [x0, #16] mov x1, x2 br x3 -LBB18_2: +LBB27_2: ret - .loh AdrpLdr Lloh53, Lloh54 + .loh AdrpLdr Lloh99, Lloh100 .cfi_endproc .p2align 2 "-[MACHView mouseDown:]": .cfi_startproc -Lloh55: +Lloh101: adrp x8, _OBJC_IVAR_$_MACHView._mouseDown_block@PAGE -Lloh56: +Lloh102: ldrsw x8, [x8, _OBJC_IVAR_$_MACHView._mouseDown_block@PAGEOFF] ldr x0, [x0, x8] - cbz x0, LBB19_2 + cbz x0, LBB28_2 ldr x3, [x0, #16] mov x1, x2 br x3 -LBB19_2: +LBB28_2: ret - .loh AdrpLdr Lloh55, Lloh56 + .loh AdrpLdr Lloh101, Lloh102 .cfi_endproc .p2align 2 "-[MACHView rightMouseDown:]": .cfi_startproc -Lloh57: +Lloh103: adrp x8, _OBJC_IVAR_$_MACHView._mouseDown_block@PAGE -Lloh58: +Lloh104: ldrsw x8, [x8, _OBJC_IVAR_$_MACHView._mouseDown_block@PAGEOFF] ldr x0, [x0, x8] - cbz x0, LBB20_2 + cbz x0, LBB29_2 ldr x3, [x0, #16] mov x1, x2 br x3 -LBB20_2: +LBB29_2: ret - .loh AdrpLdr Lloh57, Lloh58 + .loh AdrpLdr Lloh103, Lloh104 .cfi_endproc .p2align 2 "-[MACHView otherMouseDown:]": .cfi_startproc -Lloh59: +Lloh105: adrp x8, _OBJC_IVAR_$_MACHView._mouseDown_block@PAGE -Lloh60: +Lloh106: ldrsw x8, [x8, _OBJC_IVAR_$_MACHView._mouseDown_block@PAGEOFF] ldr x0, [x0, x8] - cbz x0, LBB21_2 + cbz x0, LBB30_2 ldr x3, [x0, #16] mov x1, x2 br x3 -LBB21_2: +LBB30_2: ret - .loh AdrpLdr Lloh59, Lloh60 + .loh AdrpLdr Lloh105, Lloh106 .cfi_endproc .p2align 2 "-[MACHView mouseUp:]": .cfi_startproc -Lloh61: +Lloh107: adrp x8, _OBJC_IVAR_$_MACHView._mouseUp_block@PAGE -Lloh62: +Lloh108: ldrsw x8, [x8, _OBJC_IVAR_$_MACHView._mouseUp_block@PAGEOFF] ldr x0, [x0, x8] - cbz x0, LBB22_2 + cbz x0, LBB31_2 ldr x3, [x0, #16] mov x1, x2 br x3 -LBB22_2: +LBB31_2: ret - .loh AdrpLdr Lloh61, Lloh62 + .loh AdrpLdr Lloh107, Lloh108 .cfi_endproc .p2align 2 "-[MACHView rightMouseUp:]": .cfi_startproc -Lloh63: +Lloh109: adrp x8, _OBJC_IVAR_$_MACHView._mouseUp_block@PAGE -Lloh64: +Lloh110: ldrsw x8, [x8, _OBJC_IVAR_$_MACHView._mouseUp_block@PAGEOFF] ldr x0, [x0, x8] - cbz x0, LBB23_2 + cbz x0, LBB32_2 ldr x3, [x0, #16] mov x1, x2 br x3 -LBB23_2: +LBB32_2: ret - .loh AdrpLdr Lloh63, Lloh64 + .loh AdrpLdr Lloh109, Lloh110 .cfi_endproc .p2align 2 "-[MACHView otherMouseUp:]": .cfi_startproc -Lloh65: +Lloh111: adrp x8, _OBJC_IVAR_$_MACHView._mouseUp_block@PAGE -Lloh66: +Lloh112: ldrsw x8, [x8, _OBJC_IVAR_$_MACHView._mouseUp_block@PAGEOFF] ldr x0, [x0, x8] - cbz x0, LBB24_2 + cbz x0, LBB33_2 ldr x3, [x0, #16] mov x1, x2 br x3 -LBB24_2: +LBB33_2: ret - .loh AdrpLdr Lloh65, Lloh66 + .loh AdrpLdr Lloh111, Lloh112 .cfi_endproc .p2align 2 "-[MACHView scrollWheel:]": .cfi_startproc -Lloh67: +Lloh113: adrp x8, _OBJC_IVAR_$_MACHView._scrollWheel_block@PAGE -Lloh68: +Lloh114: ldrsw x8, [x8, _OBJC_IVAR_$_MACHView._scrollWheel_block@PAGEOFF] ldr x0, [x0, x8] - cbz x0, LBB25_2 + cbz x0, LBB34_2 ldr x3, [x0, #16] mov x1, x2 br x3 -LBB25_2: +LBB34_2: ret - .loh AdrpLdr Lloh67, Lloh68 + .loh AdrpLdr Lloh113, Lloh114 .cfi_endproc .p2align 2 "-[MACHView magnifyWithEvent:]": .cfi_startproc -Lloh69: +Lloh115: adrp x8, _OBJC_IVAR_$_MACHView._magnify_block@PAGE -Lloh70: +Lloh116: ldrsw x8, [x8, _OBJC_IVAR_$_MACHView._magnify_block@PAGEOFF] ldr x0, [x0, x8] - cbz x0, LBB26_2 + cbz x0, LBB35_2 ldr x3, [x0, #16] mov x1, x2 br x3 -LBB26_2: +LBB35_2: ret - .loh AdrpLdr Lloh69, Lloh70 + .loh AdrpLdr Lloh115, Lloh116 .cfi_endproc .p2align 2 @@ -803,6 +1158,39 @@ LBB26_2: ret .cfi_endproc + .p2align 2 +"-[MACHView initWithFrame:withRenderLoop:]": + .cfi_startproc + stp x20, x19, [sp, #-32]! + .cfi_def_cfa_offset 32 + stp x29, x30, [sp, #16] + .cfi_offset w30, -8 + .cfi_offset w29, -16 + .cfi_offset w19, -24 + .cfi_offset w20, -32 + mov x19, x2 +Lloh117: + adrp x8, _OBJC_SELECTOR_REFERENCES_.27@PAGE +Lloh118: + ldr x1, [x8, _OBJC_SELECTOR_REFERENCES_.27@PAGEOFF] + bl _objc_msgSend +Lloh119: + adrp x8, _OBJC_IVAR_$_MACHView._hasRenderLoop@PAGE +Lloh120: + ldrsw x8, [x8, _OBJC_IVAR_$_MACHView._hasRenderLoop@PAGEOFF] + strb w19, [x0, x8] + ldp x29, x30, [sp, #16] + ldp x20, x19, [sp], #32 + .cfi_def_cfa_offset 0 + .cfi_restore w30 + .cfi_restore w29 + .cfi_restore w19 + .cfi_restore w20 + ret + .loh AdrpLdr Lloh119, Lloh120 + .loh AdrpLdr Lloh117, Lloh118 + .cfi_endproc + .p2align 2 "-[MACHView initWithFrame:]": .cfi_startproc @@ -820,38 +1208,38 @@ LBB26_2: .cfi_offset b9, -48 .cfi_offset b10, -56 .cfi_offset b11, -64 -Lloh71: +Lloh121: adrp x8, l_OBJC_CLASSLIST_SUP_REFS_$_@PAGE -Lloh72: +Lloh122: ldr x8, [x8, l_OBJC_CLASSLIST_SUP_REFS_$_@PAGEOFF] stp x0, x8, [sp] -Lloh73: - adrp x8, _OBJC_SELECTOR_REFERENCES_.17@PAGE -Lloh74: - ldr x1, [x8, _OBJC_SELECTOR_REFERENCES_.17@PAGEOFF] +Lloh123: + adrp x8, _OBJC_SELECTOR_REFERENCES_.27@PAGE +Lloh124: + ldr x1, [x8, _OBJC_SELECTOR_REFERENCES_.27@PAGEOFF] mov x0, sp bl _objc_msgSendSuper2 mov x19, x0 - cbz x0, LBB28_2 -Lloh75: - adrp x8, _OBJC_SELECTOR_REFERENCES_.19@PAGE -Lloh76: - ldr x1, [x8, _OBJC_SELECTOR_REFERENCES_.19@PAGEOFF] + cbz x0, LBB38_2 +Lloh125: + adrp x8, _OBJC_SELECTOR_REFERENCES_.29@PAGE +Lloh126: + ldr x1, [x8, _OBJC_SELECTOR_REFERENCES_.29@PAGEOFF] mov x0, x19 bl _objc_msgSend fmov d8, d0 fmov d9, d1 fmov d10, d2 fmov d11, d3 -Lloh77: - adrp x8, _OBJC_CLASSLIST_REFERENCES_$_.20@PAGE -Lloh78: - ldr x0, [x8, _OBJC_CLASSLIST_REFERENCES_$_.20@PAGEOFF] +Lloh127: + adrp x8, _OBJC_CLASSLIST_REFERENCES_$_.30@PAGE +Lloh128: + ldr x0, [x8, _OBJC_CLASSLIST_REFERENCES_$_.30@PAGEOFF] bl _objc_alloc -Lloh79: - adrp x8, _OBJC_SELECTOR_REFERENCES_.22@PAGE -Lloh80: - ldr x1, [x8, _OBJC_SELECTOR_REFERENCES_.22@PAGEOFF] +Lloh129: + adrp x8, _OBJC_SELECTOR_REFERENCES_.32@PAGE +Lloh130: + ldr x1, [x8, _OBJC_SELECTOR_REFERENCES_.32@PAGEOFF] fmov d0, d8 fmov d1, d9 fmov d2, d10 @@ -860,22 +1248,22 @@ Lloh80: mov x3, x19 mov x4, #0 bl _objc_msgSend -Lloh81: +Lloh131: adrp x8, _OBJC_IVAR_$_MACHView.trackingArea@PAGE -Lloh82: +Lloh132: ldrsw x20, [x8, _OBJC_IVAR_$_MACHView.trackingArea@PAGEOFF] ldr x8, [x19, x20] str x0, [x19, x20] mov x0, x8 bl _objc_release ldr x2, [x19, x20] -Lloh83: - adrp x8, _OBJC_SELECTOR_REFERENCES_.24@PAGE -Lloh84: - ldr x1, [x8, _OBJC_SELECTOR_REFERENCES_.24@PAGEOFF] +Lloh133: + adrp x8, _OBJC_SELECTOR_REFERENCES_.34@PAGE +Lloh134: + ldr x1, [x8, _OBJC_SELECTOR_REFERENCES_.34@PAGEOFF] mov x0, x19 bl _objc_msgSend -LBB28_2: +LBB38_2: mov x0, x19 ldp x29, x30, [sp, #64] ldp x20, x19, [sp, #48] @@ -892,100 +1280,13 @@ LBB28_2: .cfi_restore b10 .cfi_restore b11 ret - .loh AdrpLdr Lloh73, Lloh74 - .loh AdrpLdr Lloh71, Lloh72 - .loh AdrpLdr Lloh83, Lloh84 - .loh AdrpLdr Lloh81, Lloh82 - .loh AdrpLdr Lloh79, Lloh80 - .loh AdrpLdr Lloh77, Lloh78 - .loh AdrpLdr Lloh75, Lloh76 - .cfi_endproc - - .p2align 2 -"-[MACHView updateTrackingAreas]": - .cfi_startproc - stp d11, d10, [sp, #-64]! - .cfi_def_cfa_offset 64 - stp d9, d8, [sp, #16] - stp x20, x19, [sp, #32] - stp x29, x30, [sp, #48] - .cfi_offset w30, -8 - .cfi_offset w29, -16 - .cfi_offset w19, -24 - .cfi_offset w20, -32 - .cfi_offset b8, -40 - .cfi_offset b9, -48 - .cfi_offset b10, -56 - .cfi_offset b11, -64 - mov x19, x0 -Lloh85: - adrp x8, _OBJC_IVAR_$_MACHView.trackingArea@PAGE -Lloh86: - ldrsw x20, [x8, _OBJC_IVAR_$_MACHView.trackingArea@PAGEOFF] - ldr x2, [x0, x20] -Lloh87: - adrp x8, _OBJC_SELECTOR_REFERENCES_.26@PAGE -Lloh88: - ldr x1, [x8, _OBJC_SELECTOR_REFERENCES_.26@PAGEOFF] - bl _objc_msgSend -Lloh89: - adrp x8, _OBJC_SELECTOR_REFERENCES_.19@PAGE -Lloh90: - ldr x1, [x8, _OBJC_SELECTOR_REFERENCES_.19@PAGEOFF] - mov x0, x19 - bl _objc_msgSend - fmov d8, d0 - fmov d9, d1 - fmov d10, d2 - fmov d11, d3 -Lloh91: - adrp x8, _OBJC_CLASSLIST_REFERENCES_$_.20@PAGE -Lloh92: - ldr x0, [x8, _OBJC_CLASSLIST_REFERENCES_$_.20@PAGEOFF] - bl _objc_alloc -Lloh93: - adrp x8, _OBJC_SELECTOR_REFERENCES_.22@PAGE -Lloh94: - ldr x1, [x8, _OBJC_SELECTOR_REFERENCES_.22@PAGEOFF] - fmov d0, d8 - fmov d1, d9 - fmov d2, d10 - fmov d3, d11 - mov w2, #67 - mov x3, x19 - mov x4, #0 - bl _objc_msgSend - ldr x8, [x19, x20] - str x0, [x19, x20] - mov x0, x8 - bl _objc_release - ldr x2, [x19, x20] -Lloh95: - adrp x8, _OBJC_SELECTOR_REFERENCES_.24@PAGE -Lloh96: - ldr x1, [x8, _OBJC_SELECTOR_REFERENCES_.24@PAGEOFF] - mov x0, x19 - ldp x29, x30, [sp, #48] - ldp x20, x19, [sp, #32] - ldp d9, d8, [sp, #16] - ldp d11, d10, [sp], #64 - .cfi_def_cfa_offset 0 - .cfi_restore w30 - .cfi_restore w29 - .cfi_restore w19 - .cfi_restore w20 - .cfi_restore b8 - .cfi_restore b9 - .cfi_restore b10 - .cfi_restore b11 - b _objc_msgSend - .loh AdrpLdr Lloh95, Lloh96 - .loh AdrpLdr Lloh93, Lloh94 - .loh AdrpLdr Lloh91, Lloh92 - .loh AdrpLdr Lloh89, Lloh90 - .loh AdrpLdr Lloh87, Lloh88 - .loh AdrpAdrp Lloh85, Lloh87 - .loh AdrpLdr Lloh85, Lloh86 + .loh AdrpLdr Lloh123, Lloh124 + .loh AdrpLdr Lloh121, Lloh122 + .loh AdrpLdr Lloh133, Lloh134 + .loh AdrpLdr Lloh131, Lloh132 + .loh AdrpLdr Lloh129, Lloh130 + .loh AdrpLdr Lloh127, Lloh128 + .loh AdrpLdr Lloh125, Lloh126 .cfi_endproc .p2align 2 @@ -999,72 +1300,86 @@ Lloh96: .cfi_offset w19, -24 .cfi_offset w20, -32 mov x19, x0 -Lloh97: +Lloh135: + adrp x8, _OBJC_IVAR_$_MACHView.m_displaySource@PAGE +Lloh136: + ldrsw x8, [x8, _OBJC_IVAR_$_MACHView.m_displaySource@PAGEOFF] + add x0, x0, x8 + mov x1, #0 + bl _objc_storeStrong +Lloh137: adrp x8, _OBJC_IVAR_$_MACHView.trackingArea@PAGE -Lloh98: +Lloh138: ldrsw x8, [x8, _OBJC_IVAR_$_MACHView.trackingArea@PAGEOFF] - add x0, x0, x8 + add x0, x19, x8 mov x1, #0 bl _objc_storeStrong -Lloh99: +Lloh139: + adrp x8, _OBJC_IVAR_$_MACHView._render_block@PAGE +Lloh140: + ldrsw x8, [x8, _OBJC_IVAR_$_MACHView._render_block@PAGEOFF] + add x0, x19, x8 + mov x1, #0 + bl _objc_storeStrong +Lloh141: adrp x8, _OBJC_IVAR_$_MACHView._insertText_block@PAGE -Lloh100: +Lloh142: ldrsw x8, [x8, _OBJC_IVAR_$_MACHView._insertText_block@PAGEOFF] add x0, x19, x8 mov x1, #0 bl _objc_storeStrong -Lloh101: +Lloh143: adrp x8, _OBJC_IVAR_$_MACHView._magnify_block@PAGE -Lloh102: +Lloh144: ldrsw x8, [x8, _OBJC_IVAR_$_MACHView._magnify_block@PAGEOFF] add x0, x19, x8 mov x1, #0 bl _objc_storeStrong -Lloh103: +Lloh145: adrp x8, _OBJC_IVAR_$_MACHView._scrollWheel_block@PAGE -Lloh104: +Lloh146: ldrsw x8, [x8, _OBJC_IVAR_$_MACHView._scrollWheel_block@PAGEOFF] add x0, x19, x8 mov x1, #0 bl _objc_storeStrong -Lloh105: +Lloh147: adrp x8, _OBJC_IVAR_$_MACHView._mouseUp_block@PAGE -Lloh106: +Lloh148: ldrsw x8, [x8, _OBJC_IVAR_$_MACHView._mouseUp_block@PAGEOFF] add x0, x19, x8 mov x1, #0 bl _objc_storeStrong -Lloh107: +Lloh149: adrp x8, _OBJC_IVAR_$_MACHView._mouseDown_block@PAGE -Lloh108: +Lloh150: ldrsw x8, [x8, _OBJC_IVAR_$_MACHView._mouseDown_block@PAGEOFF] add x0, x19, x8 mov x1, #0 bl _objc_storeStrong -Lloh109: +Lloh151: adrp x8, _OBJC_IVAR_$_MACHView._mouseMoved_block@PAGE -Lloh110: +Lloh152: ldrsw x8, [x8, _OBJC_IVAR_$_MACHView._mouseMoved_block@PAGEOFF] add x0, x19, x8 mov x1, #0 bl _objc_storeStrong -Lloh111: +Lloh153: adrp x8, _OBJC_IVAR_$_MACHView._flagsChanged_block@PAGE -Lloh112: +Lloh154: ldrsw x8, [x8, _OBJC_IVAR_$_MACHView._flagsChanged_block@PAGEOFF] add x0, x19, x8 mov x1, #0 bl _objc_storeStrong -Lloh113: +Lloh155: adrp x8, _OBJC_IVAR_$_MACHView._keyUp_block@PAGE -Lloh114: +Lloh156: ldrsw x8, [x8, _OBJC_IVAR_$_MACHView._keyUp_block@PAGEOFF] add x0, x19, x8 mov x1, #0 bl _objc_storeStrong -Lloh115: +Lloh157: adrp x8, _OBJC_IVAR_$_MACHView._keyDown_block@PAGE -Lloh116: +Lloh158: ldrsw x8, [x8, _OBJC_IVAR_$_MACHView._keyDown_block@PAGEOFF] add x0, x19, x8 mov x1, #0 @@ -1076,20 +1391,125 @@ Lloh116: .cfi_restore w19 .cfi_restore w20 b _objc_storeStrong - .loh AdrpLdr Lloh115, Lloh116 - .loh AdrpLdr Lloh113, Lloh114 - .loh AdrpLdr Lloh111, Lloh112 - .loh AdrpLdr Lloh109, Lloh110 - .loh AdrpLdr Lloh107, Lloh108 - .loh AdrpLdr Lloh105, Lloh106 - .loh AdrpLdr Lloh103, Lloh104 - .loh AdrpLdr Lloh101, Lloh102 - .loh AdrpLdr Lloh99, Lloh100 - .loh AdrpLdr Lloh97, Lloh98 + .loh AdrpLdr Lloh157, Lloh158 + .loh AdrpLdr Lloh155, Lloh156 + .loh AdrpLdr Lloh153, Lloh154 + .loh AdrpLdr Lloh151, Lloh152 + .loh AdrpLdr Lloh149, Lloh150 + .loh AdrpLdr Lloh147, Lloh148 + .loh AdrpLdr Lloh145, Lloh146 + .loh AdrpLdr Lloh143, Lloh144 + .loh AdrpLdr Lloh141, Lloh142 + .loh AdrpLdr Lloh139, Lloh140 + .loh AdrpLdr Lloh137, Lloh138 + .loh AdrpLdr Lloh135, Lloh136 .cfi_endproc - .private_extern _OBJC_IVAR_$_MACHView._keyDown_block + .private_extern _OBJC_IVAR_$_MACHView._hasRenderLoop + .section __DATA,__objc_ivar + .globl _OBJC_IVAR_$_MACHView._hasRenderLoop + .p2align 2, 0x0 +_OBJC_IVAR_$_MACHView._hasRenderLoop: + .long 112 + + .section __TEXT,__objc_methname,cstring_literals +l_OBJC_METH_VAR_NAME_: + .asciz "stopRenderLoop" + + .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip + .p2align 3, 0x0 +_OBJC_SELECTOR_REFERENCES_: + .quad l_OBJC_METH_VAR_NAME_ + + .section __DATA,__objc_data + .globl _OBJC_CLASS_$_MACHView + .p2align 3, 0x0 +_OBJC_CLASS_$_MACHView: + .quad _OBJC_METACLASS_$_MACHView + .quad _OBJC_CLASS_$_NSView + .quad __objc_empty_cache + .quad 0 + .quad __OBJC_CLASS_RO_$_MACHView + + .section __DATA,__objc_superrefs,regular,no_dead_strip + .p2align 3, 0x0 +l_OBJC_CLASSLIST_SUP_REFS_$_: + .quad _OBJC_CLASS_$_MACHView + + .section __TEXT,__objc_methname,cstring_literals +l_OBJC_METH_VAR_NAME_.1: + .asciz "dealloc" + + .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip + .p2align 3, 0x0 +_OBJC_SELECTOR_REFERENCES_.2: + .quad l_OBJC_METH_VAR_NAME_.1 + + .section __TEXT,__objc_methname,cstring_literals +l_OBJC_METH_VAR_NAME_.3: + .asciz "viewDidMoveToWindow" + + .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip + .p2align 3, 0x0 +_OBJC_SELECTOR_REFERENCES_.4: + .quad l_OBJC_METH_VAR_NAME_.3 + + .section __TEXT,__objc_methname,cstring_literals +l_OBJC_METH_VAR_NAME_.5: + .asciz "window" + + .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip + .p2align 3, 0x0 +_OBJC_SELECTOR_REFERENCES_.6: + .quad l_OBJC_METH_VAR_NAME_.5 + + .private_extern _OBJC_IVAR_$_MACHView.m_displaySource + .section __DATA,__objc_ivar + .globl _OBJC_IVAR_$_MACHView.m_displaySource + .p2align 2, 0x0 +_OBJC_IVAR_$_MACHView.m_displaySource: + .long 96 + + .section __TEXT,__objc_methname,cstring_literals +l_OBJC_METH_VAR_NAME_.7: + .asciz "render" + + .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip + .p2align 3, 0x0 +_OBJC_SELECTOR_REFERENCES_.8: + .quad l_OBJC_METH_VAR_NAME_.7 + + .section __TEXT,__cstring,cstring_literals +l_.str: + .asciz "v8@?0" + + .private_extern "___block_descriptor_40_8_32s_e5_v8\x01?0l" + .section __DATA,__const + .globl "___block_descriptor_40_8_32s_e5_v8\x01?0l" + .weak_def_can_be_hidden "___block_descriptor_40_8_32s_e5_v8\x01?0l" + .p2align 3, 0x0 +"___block_descriptor_40_8_32s_e5_v8\x01?0l": + .quad 0 + .quad 40 + .quad ___copy_helper_block_8_32s + .quad ___destroy_helper_block_8_32s + .quad l_.str + .quad 256 + + .private_extern _OBJC_IVAR_$_MACHView.m_displayLink .section __DATA,__objc_ivar + .globl _OBJC_IVAR_$_MACHView.m_displayLink + .p2align 2, 0x0 +_OBJC_IVAR_$_MACHView.m_displayLink: + .long 104 + + .private_extern _OBJC_IVAR_$_MACHView._render_block + .globl _OBJC_IVAR_$_MACHView._render_block + .p2align 2, 0x0 +_OBJC_IVAR_$_MACHView._render_block: + .long 80 + + .private_extern _OBJC_IVAR_$_MACHView._keyDown_block .globl _OBJC_IVAR_$_MACHView._keyDown_block .p2align 2, 0x0 _OBJC_IVAR_$_MACHView._keyDown_block: @@ -1149,153 +1569,129 @@ _OBJC_CLASSLIST_REFERENCES_$_: .quad _OBJC_CLASS_$_NSArray .section __TEXT,__objc_methname,cstring_literals -l_OBJC_METH_VAR_NAME_: +l_OBJC_METH_VAR_NAME_.9: .asciz "arrayWithObjects:count:" .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip .p2align 3, 0x0 -_OBJC_SELECTOR_REFERENCES_: - .quad l_OBJC_METH_VAR_NAME_ +_OBJC_SELECTOR_REFERENCES_.10: + .quad l_OBJC_METH_VAR_NAME_.9 .section __TEXT,__objc_methname,cstring_literals -l_OBJC_METH_VAR_NAME_.1: +l_OBJC_METH_VAR_NAME_.11: .asciz "interpretKeyEvents:" .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip .p2align 3, 0x0 -_OBJC_SELECTOR_REFERENCES_.2: - .quad l_OBJC_METH_VAR_NAME_.1 +_OBJC_SELECTOR_REFERENCES_.12: + .quad l_OBJC_METH_VAR_NAME_.11 .section __TEXT,__objc_methname,cstring_literals -l_OBJC_METH_VAR_NAME_.3: +l_OBJC_METH_VAR_NAME_.13: .asciz "currentEvent" .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip .p2align 3, 0x0 -_OBJC_SELECTOR_REFERENCES_.4: - .quad l_OBJC_METH_VAR_NAME_.3 +_OBJC_SELECTOR_REFERENCES_.14: + .quad l_OBJC_METH_VAR_NAME_.13 .section __DATA,__objc_classrefs,regular,no_dead_strip .p2align 3, 0x0 -_OBJC_CLASSLIST_REFERENCES_$_.5: +_OBJC_CLASSLIST_REFERENCES_$_.15: .quad _OBJC_CLASS_$_NSAttributedString .section __TEXT,__objc_methname,cstring_literals -l_OBJC_METH_VAR_NAME_.6: +l_OBJC_METH_VAR_NAME_.16: .asciz "class" .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip .p2align 3, 0x0 -_OBJC_SELECTOR_REFERENCES_.7: - .quad l_OBJC_METH_VAR_NAME_.6 +_OBJC_SELECTOR_REFERENCES_.17: + .quad l_OBJC_METH_VAR_NAME_.16 .section __TEXT,__objc_methname,cstring_literals -l_OBJC_METH_VAR_NAME_.8: +l_OBJC_METH_VAR_NAME_.18: .asciz "isKindOfClass:" .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip .p2align 3, 0x0 -_OBJC_SELECTOR_REFERENCES_.9: - .quad l_OBJC_METH_VAR_NAME_.8 +_OBJC_SELECTOR_REFERENCES_.19: + .quad l_OBJC_METH_VAR_NAME_.18 .section __TEXT,__objc_methname,cstring_literals -l_OBJC_METH_VAR_NAME_.10: +l_OBJC_METH_VAR_NAME_.20: .asciz "string" .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip .p2align 3, 0x0 -_OBJC_SELECTOR_REFERENCES_.11: - .quad l_OBJC_METH_VAR_NAME_.10 +_OBJC_SELECTOR_REFERENCES_.21: + .quad l_OBJC_METH_VAR_NAME_.20 .section __TEXT,__objc_methname,cstring_literals -l_OBJC_METH_VAR_NAME_.12: +l_OBJC_METH_VAR_NAME_.22: .asciz "length" .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip .p2align 3, 0x0 -_OBJC_SELECTOR_REFERENCES_.13: - .quad l_OBJC_METH_VAR_NAME_.12 +_OBJC_SELECTOR_REFERENCES_.23: + .quad l_OBJC_METH_VAR_NAME_.22 .section __TEXT,__objc_methname,cstring_literals -l_OBJC_METH_VAR_NAME_.14: +l_OBJC_METH_VAR_NAME_.24: .asciz "getBytes:maxLength:usedLength:encoding:options:range:remainingRange:" .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip .p2align 3, 0x0 -_OBJC_SELECTOR_REFERENCES_.15: - .quad l_OBJC_METH_VAR_NAME_.14 - - .section __DATA,__objc_data - .globl _OBJC_CLASS_$_MACHView - .p2align 3, 0x0 -_OBJC_CLASS_$_MACHView: - .quad _OBJC_METACLASS_$_MACHView - .quad _OBJC_CLASS_$_NSView - .quad __objc_empty_cache - .quad 0 - .quad __OBJC_CLASS_RO_$_MACHView - - .section __DATA,__objc_superrefs,regular,no_dead_strip - .p2align 3, 0x0 -l_OBJC_CLASSLIST_SUP_REFS_$_: - .quad _OBJC_CLASS_$_MACHView +_OBJC_SELECTOR_REFERENCES_.25: + .quad l_OBJC_METH_VAR_NAME_.24 .section __TEXT,__objc_methname,cstring_literals -l_OBJC_METH_VAR_NAME_.16: +l_OBJC_METH_VAR_NAME_.26: .asciz "initWithFrame:" .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip .p2align 3, 0x0 -_OBJC_SELECTOR_REFERENCES_.17: - .quad l_OBJC_METH_VAR_NAME_.16 +_OBJC_SELECTOR_REFERENCES_.27: + .quad l_OBJC_METH_VAR_NAME_.26 .section __TEXT,__objc_methname,cstring_literals -l_OBJC_METH_VAR_NAME_.18: +l_OBJC_METH_VAR_NAME_.28: .asciz "visibleRect" .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip .p2align 3, 0x0 -_OBJC_SELECTOR_REFERENCES_.19: - .quad l_OBJC_METH_VAR_NAME_.18 +_OBJC_SELECTOR_REFERENCES_.29: + .quad l_OBJC_METH_VAR_NAME_.28 .section __DATA,__objc_classrefs,regular,no_dead_strip .p2align 3, 0x0 -_OBJC_CLASSLIST_REFERENCES_$_.20: +_OBJC_CLASSLIST_REFERENCES_$_.30: .quad _OBJC_CLASS_$_NSTrackingArea .section __TEXT,__objc_methname,cstring_literals -l_OBJC_METH_VAR_NAME_.21: +l_OBJC_METH_VAR_NAME_.31: .asciz "initWithRect:options:owner:userInfo:" .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip .p2align 3, 0x0 -_OBJC_SELECTOR_REFERENCES_.22: - .quad l_OBJC_METH_VAR_NAME_.21 +_OBJC_SELECTOR_REFERENCES_.32: + .quad l_OBJC_METH_VAR_NAME_.31 .private_extern _OBJC_IVAR_$_MACHView.trackingArea .section __DATA,__objc_ivar .globl _OBJC_IVAR_$_MACHView.trackingArea .p2align 2, 0x0 _OBJC_IVAR_$_MACHView.trackingArea: - .long 80 + .long 88 .section __TEXT,__objc_methname,cstring_literals -l_OBJC_METH_VAR_NAME_.23: +l_OBJC_METH_VAR_NAME_.33: .asciz "addTrackingArea:" .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip .p2align 3, 0x0 -_OBJC_SELECTOR_REFERENCES_.24: - .quad l_OBJC_METH_VAR_NAME_.23 - - .section __TEXT,__objc_methname,cstring_literals -l_OBJC_METH_VAR_NAME_.25: - .asciz "removeTrackingArea:" - - .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip - .p2align 3, 0x0 -_OBJC_SELECTOR_REFERENCES_.26: - .quad l_OBJC_METH_VAR_NAME_.25 +_OBJC_SELECTOR_REFERENCES_.34: + .quad l_OBJC_METH_VAR_NAME_.33 .section __TEXT,__objc_classname,cstring_literals l_OBJC_CLASS_NAME_: @@ -1327,11 +1723,11 @@ _OBJC_METACLASS_$_MACHView: .quad __OBJC_METACLASS_RO_$_MACHView .section __TEXT,__objc_classname,cstring_literals -l_OBJC_CLASS_NAME_.27: - .asciz "\n" +l_OBJC_CLASS_NAME_.35: + .asciz "\f" .section __TEXT,__objc_methname,cstring_literals -l_OBJC_METH_VAR_NAME_.28: +l_OBJC_METH_VAR_NAME_.36: .asciz "canBecomeKeyView" .section __TEXT,__objc_methtype,cstring_literals @@ -1339,259 +1735,323 @@ l_OBJC_METH_VAR_TYPE_: .asciz "B16@0:8" .section __TEXT,__objc_methname,cstring_literals -l_OBJC_METH_VAR_NAME_.29: +l_OBJC_METH_VAR_NAME_.37: .asciz "acceptsFirstResponder" -l_OBJC_METH_VAR_NAME_.30: + .section __TEXT,__objc_methtype,cstring_literals +l_OBJC_METH_VAR_TYPE_.38: + .asciz "v16@0:8" + + .section __TEXT,__objc_methname,cstring_literals +l_OBJC_METH_VAR_NAME_.39: .asciz "keyDown:" .section __TEXT,__objc_methtype,cstring_literals -l_OBJC_METH_VAR_TYPE_.31: +l_OBJC_METH_VAR_TYPE_.40: .asciz "v24@0:8@16" .section __TEXT,__objc_methname,cstring_literals -l_OBJC_METH_VAR_NAME_.32: +l_OBJC_METH_VAR_NAME_.41: .asciz "insertText:" -l_OBJC_METH_VAR_NAME_.33: +l_OBJC_METH_VAR_NAME_.42: .asciz "keyUp:" -l_OBJC_METH_VAR_NAME_.34: +l_OBJC_METH_VAR_NAME_.43: .asciz "flagsChanged:" -l_OBJC_METH_VAR_NAME_.35: +l_OBJC_METH_VAR_NAME_.44: .asciz "mouseMoved:" -l_OBJC_METH_VAR_NAME_.36: +l_OBJC_METH_VAR_NAME_.45: .asciz "mouseDragged:" -l_OBJC_METH_VAR_NAME_.37: +l_OBJC_METH_VAR_NAME_.46: .asciz "rightMouseDragged:" -l_OBJC_METH_VAR_NAME_.38: +l_OBJC_METH_VAR_NAME_.47: .asciz "otherMouseDragged:" -l_OBJC_METH_VAR_NAME_.39: +l_OBJC_METH_VAR_NAME_.48: .asciz "mouseDown:" -l_OBJC_METH_VAR_NAME_.40: +l_OBJC_METH_VAR_NAME_.49: .asciz "rightMouseDown:" -l_OBJC_METH_VAR_NAME_.41: +l_OBJC_METH_VAR_NAME_.50: .asciz "otherMouseDown:" -l_OBJC_METH_VAR_NAME_.42: +l_OBJC_METH_VAR_NAME_.51: .asciz "mouseUp:" -l_OBJC_METH_VAR_NAME_.43: +l_OBJC_METH_VAR_NAME_.52: .asciz "rightMouseUp:" -l_OBJC_METH_VAR_NAME_.44: +l_OBJC_METH_VAR_NAME_.53: .asciz "otherMouseUp:" -l_OBJC_METH_VAR_NAME_.45: +l_OBJC_METH_VAR_NAME_.54: .asciz "scrollWheel:" -l_OBJC_METH_VAR_NAME_.46: +l_OBJC_METH_VAR_NAME_.55: .asciz "magnifyWithEvent:" -l_OBJC_METH_VAR_NAME_.47: +l_OBJC_METH_VAR_NAME_.56: .asciz "doCommandBySelector:" .section __TEXT,__objc_methtype,cstring_literals -l_OBJC_METH_VAR_TYPE_.48: +l_OBJC_METH_VAR_TYPE_.57: .asciz "v24@0:8:16" -l_OBJC_METH_VAR_TYPE_.49: - .asciz "@48@0:8{CGRect={CGPoint=dd}{CGSize=dd}}16" - .section __TEXT,__objc_methname,cstring_literals -l_OBJC_METH_VAR_NAME_.50: - .asciz "updateTrackingAreas" +l_OBJC_METH_VAR_NAME_.58: + .asciz "initWithFrame:withRenderLoop:" .section __TEXT,__objc_methtype,cstring_literals -l_OBJC_METH_VAR_TYPE_.51: - .asciz "v16@0:8" +l_OBJC_METH_VAR_TYPE_.59: + .asciz "@52@0:8{CGRect={CGPoint=dd}{CGSize=dd}}16B48" + +l_OBJC_METH_VAR_TYPE_.60: + .asciz "@48@0:8{CGRect={CGPoint=dd}{CGSize=dd}}16" .section __TEXT,__objc_methname,cstring_literals -l_OBJC_METH_VAR_NAME_.52: +l_OBJC_METH_VAR_NAME_.61: .asciz ".cxx_destruct" .section __DATA,__objc_const .p2align 3, 0x0 __OBJC_$_INSTANCE_METHODS_MACHView: .long 24 - .long 22 - .quad l_OBJC_METH_VAR_NAME_.28 + .long 26 + .quad l_OBJC_METH_VAR_NAME_.36 .quad l_OBJC_METH_VAR_TYPE_ .quad "-[MACHView canBecomeKeyView]" - .quad l_OBJC_METH_VAR_NAME_.29 + .quad l_OBJC_METH_VAR_NAME_.37 .quad l_OBJC_METH_VAR_TYPE_ .quad "-[MACHView acceptsFirstResponder]" - .quad l_OBJC_METH_VAR_NAME_.30 - .quad l_OBJC_METH_VAR_TYPE_.31 + .quad l_OBJC_METH_VAR_NAME_.1 + .quad l_OBJC_METH_VAR_TYPE_.38 + .quad "-[MACHView dealloc]" + .quad l_OBJC_METH_VAR_NAME_.3 + .quad l_OBJC_METH_VAR_TYPE_.38 + .quad "-[MACHView viewDidMoveToWindow]" + .quad l_OBJC_METH_VAR_NAME_.7 + .quad l_OBJC_METH_VAR_TYPE_.38 + .quad "-[MACHView render]" + .quad l_OBJC_METH_VAR_NAME_ + .quad l_OBJC_METH_VAR_TYPE_.38 + .quad "-[MACHView stopRenderLoop]" + .quad l_OBJC_METH_VAR_NAME_.39 + .quad l_OBJC_METH_VAR_TYPE_.40 .quad "-[MACHView keyDown:]" - .quad l_OBJC_METH_VAR_NAME_.32 - .quad l_OBJC_METH_VAR_TYPE_.31 + .quad l_OBJC_METH_VAR_NAME_.41 + .quad l_OBJC_METH_VAR_TYPE_.40 .quad "-[MACHView insertText:]" - .quad l_OBJC_METH_VAR_NAME_.33 - .quad l_OBJC_METH_VAR_TYPE_.31 + .quad l_OBJC_METH_VAR_NAME_.42 + .quad l_OBJC_METH_VAR_TYPE_.40 .quad "-[MACHView keyUp:]" - .quad l_OBJC_METH_VAR_NAME_.34 - .quad l_OBJC_METH_VAR_TYPE_.31 + .quad l_OBJC_METH_VAR_NAME_.43 + .quad l_OBJC_METH_VAR_TYPE_.40 .quad "-[MACHView flagsChanged:]" - .quad l_OBJC_METH_VAR_NAME_.35 - .quad l_OBJC_METH_VAR_TYPE_.31 + .quad l_OBJC_METH_VAR_NAME_.44 + .quad l_OBJC_METH_VAR_TYPE_.40 .quad "-[MACHView mouseMoved:]" - .quad l_OBJC_METH_VAR_NAME_.36 - .quad l_OBJC_METH_VAR_TYPE_.31 + .quad l_OBJC_METH_VAR_NAME_.45 + .quad l_OBJC_METH_VAR_TYPE_.40 .quad "-[MACHView mouseDragged:]" - .quad l_OBJC_METH_VAR_NAME_.37 - .quad l_OBJC_METH_VAR_TYPE_.31 + .quad l_OBJC_METH_VAR_NAME_.46 + .quad l_OBJC_METH_VAR_TYPE_.40 .quad "-[MACHView rightMouseDragged:]" - .quad l_OBJC_METH_VAR_NAME_.38 - .quad l_OBJC_METH_VAR_TYPE_.31 + .quad l_OBJC_METH_VAR_NAME_.47 + .quad l_OBJC_METH_VAR_TYPE_.40 .quad "-[MACHView otherMouseDragged:]" - .quad l_OBJC_METH_VAR_NAME_.39 - .quad l_OBJC_METH_VAR_TYPE_.31 + .quad l_OBJC_METH_VAR_NAME_.48 + .quad l_OBJC_METH_VAR_TYPE_.40 .quad "-[MACHView mouseDown:]" - .quad l_OBJC_METH_VAR_NAME_.40 - .quad l_OBJC_METH_VAR_TYPE_.31 + .quad l_OBJC_METH_VAR_NAME_.49 + .quad l_OBJC_METH_VAR_TYPE_.40 .quad "-[MACHView rightMouseDown:]" - .quad l_OBJC_METH_VAR_NAME_.41 - .quad l_OBJC_METH_VAR_TYPE_.31 + .quad l_OBJC_METH_VAR_NAME_.50 + .quad l_OBJC_METH_VAR_TYPE_.40 .quad "-[MACHView otherMouseDown:]" - .quad l_OBJC_METH_VAR_NAME_.42 - .quad l_OBJC_METH_VAR_TYPE_.31 + .quad l_OBJC_METH_VAR_NAME_.51 + .quad l_OBJC_METH_VAR_TYPE_.40 .quad "-[MACHView mouseUp:]" - .quad l_OBJC_METH_VAR_NAME_.43 - .quad l_OBJC_METH_VAR_TYPE_.31 + .quad l_OBJC_METH_VAR_NAME_.52 + .quad l_OBJC_METH_VAR_TYPE_.40 .quad "-[MACHView rightMouseUp:]" - .quad l_OBJC_METH_VAR_NAME_.44 - .quad l_OBJC_METH_VAR_TYPE_.31 + .quad l_OBJC_METH_VAR_NAME_.53 + .quad l_OBJC_METH_VAR_TYPE_.40 .quad "-[MACHView otherMouseUp:]" - .quad l_OBJC_METH_VAR_NAME_.45 - .quad l_OBJC_METH_VAR_TYPE_.31 + .quad l_OBJC_METH_VAR_NAME_.54 + .quad l_OBJC_METH_VAR_TYPE_.40 .quad "-[MACHView scrollWheel:]" - .quad l_OBJC_METH_VAR_NAME_.46 - .quad l_OBJC_METH_VAR_TYPE_.31 + .quad l_OBJC_METH_VAR_NAME_.55 + .quad l_OBJC_METH_VAR_TYPE_.40 .quad "-[MACHView magnifyWithEvent:]" - .quad l_OBJC_METH_VAR_NAME_.47 - .quad l_OBJC_METH_VAR_TYPE_.48 + .quad l_OBJC_METH_VAR_NAME_.56 + .quad l_OBJC_METH_VAR_TYPE_.57 .quad "-[MACHView doCommandBySelector:]" - .quad l_OBJC_METH_VAR_NAME_.16 - .quad l_OBJC_METH_VAR_TYPE_.49 + .quad l_OBJC_METH_VAR_NAME_.58 + .quad l_OBJC_METH_VAR_TYPE_.59 + .quad "-[MACHView initWithFrame:withRenderLoop:]" + .quad l_OBJC_METH_VAR_NAME_.26 + .quad l_OBJC_METH_VAR_TYPE_.60 .quad "-[MACHView initWithFrame:]" - .quad l_OBJC_METH_VAR_NAME_.50 - .quad l_OBJC_METH_VAR_TYPE_.51 - .quad "-[MACHView updateTrackingAreas]" - .quad l_OBJC_METH_VAR_NAME_.52 - .quad l_OBJC_METH_VAR_TYPE_.51 + .quad l_OBJC_METH_VAR_NAME_.61 + .quad l_OBJC_METH_VAR_TYPE_.38 .quad "-[MACHView .cxx_destruct]" .section __TEXT,__objc_methname,cstring_literals -l_OBJC_METH_VAR_NAME_.53: +l_OBJC_METH_VAR_NAME_.62: .asciz "_keyDown_block" .section __TEXT,__objc_methtype,cstring_literals -l_OBJC_METH_VAR_TYPE_.54: +l_OBJC_METH_VAR_TYPE_.63: .asciz "@?" .section __TEXT,__objc_methname,cstring_literals -l_OBJC_METH_VAR_NAME_.55: +l_OBJC_METH_VAR_NAME_.64: .asciz "_keyUp_block" -l_OBJC_METH_VAR_NAME_.56: +l_OBJC_METH_VAR_NAME_.65: .asciz "_flagsChanged_block" -l_OBJC_METH_VAR_NAME_.57: +l_OBJC_METH_VAR_NAME_.66: .asciz "_mouseMoved_block" -l_OBJC_METH_VAR_NAME_.58: +l_OBJC_METH_VAR_NAME_.67: .asciz "_mouseDown_block" -l_OBJC_METH_VAR_NAME_.59: +l_OBJC_METH_VAR_NAME_.68: .asciz "_mouseUp_block" -l_OBJC_METH_VAR_NAME_.60: +l_OBJC_METH_VAR_NAME_.69: .asciz "_scrollWheel_block" -l_OBJC_METH_VAR_NAME_.61: +l_OBJC_METH_VAR_NAME_.70: .asciz "_magnify_block" -l_OBJC_METH_VAR_NAME_.62: +l_OBJC_METH_VAR_NAME_.71: .asciz "_insertText_block" -l_OBJC_METH_VAR_NAME_.63: +l_OBJC_METH_VAR_NAME_.72: + .asciz "_render_block" + +l_OBJC_METH_VAR_NAME_.73: .asciz "trackingArea" .section __TEXT,__objc_methtype,cstring_literals -l_OBJC_METH_VAR_TYPE_.64: +l_OBJC_METH_VAR_TYPE_.74: .asciz "@\"NSTrackingArea\"" + .section __TEXT,__objc_methname,cstring_literals +l_OBJC_METH_VAR_NAME_.75: + .asciz "m_displaySource" + + .section __TEXT,__objc_methtype,cstring_literals +l_OBJC_METH_VAR_TYPE_.76: + .asciz "@\"NSObject\"" + + .section __TEXT,__objc_methname,cstring_literals +l_OBJC_METH_VAR_NAME_.77: + .asciz "m_displayLink" + + .section __TEXT,__objc_methtype,cstring_literals +l_OBJC_METH_VAR_TYPE_.78: + .asciz "^{__CVDisplayLink=}" + + .section __TEXT,__objc_methname,cstring_literals +l_OBJC_METH_VAR_NAME_.79: + .asciz "_hasRenderLoop" + + .section __TEXT,__objc_methtype,cstring_literals +l_OBJC_METH_VAR_TYPE_.80: + .asciz "B" + .section __DATA,__objc_const .p2align 3, 0x0 __OBJC_$_INSTANCE_VARIABLES_MACHView: .long 32 - .long 10 + .long 14 .quad _OBJC_IVAR_$_MACHView._keyDown_block - .quad l_OBJC_METH_VAR_NAME_.53 - .quad l_OBJC_METH_VAR_TYPE_.54 + .quad l_OBJC_METH_VAR_NAME_.62 + .quad l_OBJC_METH_VAR_TYPE_.63 .long 3 .long 8 .quad _OBJC_IVAR_$_MACHView._keyUp_block - .quad l_OBJC_METH_VAR_NAME_.55 - .quad l_OBJC_METH_VAR_TYPE_.54 + .quad l_OBJC_METH_VAR_NAME_.64 + .quad l_OBJC_METH_VAR_TYPE_.63 .long 3 .long 8 .quad _OBJC_IVAR_$_MACHView._flagsChanged_block - .quad l_OBJC_METH_VAR_NAME_.56 - .quad l_OBJC_METH_VAR_TYPE_.54 + .quad l_OBJC_METH_VAR_NAME_.65 + .quad l_OBJC_METH_VAR_TYPE_.63 .long 3 .long 8 .quad _OBJC_IVAR_$_MACHView._mouseMoved_block - .quad l_OBJC_METH_VAR_NAME_.57 - .quad l_OBJC_METH_VAR_TYPE_.54 + .quad l_OBJC_METH_VAR_NAME_.66 + .quad l_OBJC_METH_VAR_TYPE_.63 .long 3 .long 8 .quad _OBJC_IVAR_$_MACHView._mouseDown_block - .quad l_OBJC_METH_VAR_NAME_.58 - .quad l_OBJC_METH_VAR_TYPE_.54 + .quad l_OBJC_METH_VAR_NAME_.67 + .quad l_OBJC_METH_VAR_TYPE_.63 .long 3 .long 8 .quad _OBJC_IVAR_$_MACHView._mouseUp_block - .quad l_OBJC_METH_VAR_NAME_.59 - .quad l_OBJC_METH_VAR_TYPE_.54 + .quad l_OBJC_METH_VAR_NAME_.68 + .quad l_OBJC_METH_VAR_TYPE_.63 .long 3 .long 8 .quad _OBJC_IVAR_$_MACHView._scrollWheel_block - .quad l_OBJC_METH_VAR_NAME_.60 - .quad l_OBJC_METH_VAR_TYPE_.54 + .quad l_OBJC_METH_VAR_NAME_.69 + .quad l_OBJC_METH_VAR_TYPE_.63 .long 3 .long 8 .quad _OBJC_IVAR_$_MACHView._magnify_block - .quad l_OBJC_METH_VAR_NAME_.61 - .quad l_OBJC_METH_VAR_TYPE_.54 + .quad l_OBJC_METH_VAR_NAME_.70 + .quad l_OBJC_METH_VAR_TYPE_.63 .long 3 .long 8 .quad _OBJC_IVAR_$_MACHView._insertText_block - .quad l_OBJC_METH_VAR_NAME_.62 - .quad l_OBJC_METH_VAR_TYPE_.54 + .quad l_OBJC_METH_VAR_NAME_.71 + .quad l_OBJC_METH_VAR_TYPE_.63 + .long 3 + .long 8 + .quad _OBJC_IVAR_$_MACHView._render_block + .quad l_OBJC_METH_VAR_NAME_.72 + .quad l_OBJC_METH_VAR_TYPE_.63 .long 3 .long 8 .quad _OBJC_IVAR_$_MACHView.trackingArea - .quad l_OBJC_METH_VAR_NAME_.63 - .quad l_OBJC_METH_VAR_TYPE_.64 + .quad l_OBJC_METH_VAR_NAME_.73 + .quad l_OBJC_METH_VAR_TYPE_.74 + .long 3 + .long 8 + .quad _OBJC_IVAR_$_MACHView.m_displaySource + .quad l_OBJC_METH_VAR_NAME_.75 + .quad l_OBJC_METH_VAR_TYPE_.76 .long 3 .long 8 + .quad _OBJC_IVAR_$_MACHView.m_displayLink + .quad l_OBJC_METH_VAR_NAME_.77 + .quad l_OBJC_METH_VAR_TYPE_.78 + .long 3 + .long 8 + .quad _OBJC_IVAR_$_MACHView._hasRenderLoop + .quad l_OBJC_METH_VAR_NAME_.79 + .quad l_OBJC_METH_VAR_TYPE_.80 + .long 0 + .long 1 .p2align 3, 0x0 __OBJC_CLASS_RO_$_MACHView: .long 388 .long 8 - .long 88 + .long 113 .space 4 - .quad l_OBJC_CLASS_NAME_.27 + .quad l_OBJC_CLASS_NAME_.35 .quad l_OBJC_CLASS_NAME_ .quad __OBJC_$_INSTANCE_METHODS_MACHView .quad 0 diff --git a/MACHView_x86_64_apple_macos12.s b/MACHView_x86_64_apple_macos12.s index e4614c5..23aaa8e 100644 --- a/MACHView_x86_64_apple_macos12.s +++ b/MACHView_x86_64_apple_macos12.s @@ -14,6 +14,233 @@ retq .cfi_endproc +"-[MACHView dealloc]": + + .cfi_startproc + pushq %rbx + .cfi_def_cfa_offset 16 + subq $16, %rsp + .cfi_def_cfa_offset 32 + .cfi_offset %rbx, -16 + movq %rdi, %rbx + movq _OBJC_IVAR_$_MACHView._hasRenderLoop(%rip), %rax + cmpb $0, (%rdi,%rax) + je LBB2_2 + movq _OBJC_SELECTOR_REFERENCES_(%rip), %rsi + movq %rbx, %rdi + callq *_objc_msgSend@GOTPCREL(%rip) +LBB2_2: + movq %rsp, %rdi + movq %rbx, (%rdi) + movq l_OBJC_CLASSLIST_SUP_REFS_$_(%rip), %rax + movq %rax, 8(%rdi) + movq _OBJC_SELECTOR_REFERENCES_.2(%rip), %rsi + callq _objc_msgSendSuper2 + addq $16, %rsp + popq %rbx + retq + .cfi_endproc + +"-[MACHView viewDidMoveToWindow]": + + .cfi_startproc + pushq %r15 + .cfi_def_cfa_offset 16 + pushq %r14 + .cfi_def_cfa_offset 24 + pushq %rbx + .cfi_def_cfa_offset 32 + subq $64, %rsp + .cfi_def_cfa_offset 96 + .cfi_offset %rbx, -32 + .cfi_offset %r14, -24 + .cfi_offset %r15, -16 + movq %rdi, %rbx + leaq 8(%rsp), %rdi + movq %rbx, (%rdi) + movq l_OBJC_CLASSLIST_SUP_REFS_$_(%rip), %rax + movq %rax, 8(%rdi) + movq _OBJC_SELECTOR_REFERENCES_.4(%rip), %rsi + callq _objc_msgSendSuper2 + movq _OBJC_IVAR_$_MACHView._hasRenderLoop(%rip), %rax + cmpb $0, (%rbx,%rax) + je LBB3_3 + movq _OBJC_SELECTOR_REFERENCES_(%rip), %rsi + movq _objc_msgSend@GOTPCREL(%rip), %r14 + movq %rbx, %rdi + callq *%r14 + movq _OBJC_SELECTOR_REFERENCES_.6(%rip), %rsi + movq %rbx, %rdi + callq *%r14 + movq %rax, %rdi + callq _objc_retainAutoreleasedReturnValue + movq %rax, %r14 + movq %rax, %rdi + callq *_objc_release@GOTPCREL(%rip) + testq %r14, %r14 + je LBB3_3 + movq __dispatch_source_type_data_add@GOTPCREL(%rip), %rdi + movq __dispatch_main_q@GOTPCREL(%rip), %rcx + xorl %esi, %esi + xorl %edx, %edx + callq _dispatch_source_create + movq _OBJC_IVAR_$_MACHView.m_displaySource(%rip), %r14 + movq (%rbx,%r14), %rdi + movq %rax, (%rbx,%r14) + callq *_objc_release@GOTPCREL(%rip) + movq (%rbx,%r14), %rdi + movq __NSConcreteStackBlock@GOTPCREL(%rip), %rax + leaq 24(%rsp), %rsi + movq %rax, (%rsi) + movl $3254779904, %eax + movq %rax, 8(%rsi) + leaq "___31-[MACHView viewDidMoveToWindow]_block_invoke"(%rip), %rax + movq %rax, 16(%rsi) + leaq "___block_descriptor_40_8_32s_e5_v8\x01?0l"(%rip), %rax + movq %rax, 24(%rsi) + movq %rbx, 32(%rsi) + callq _dispatch_source_set_event_handler + movq (%rbx,%r14), %rdi + callq _dispatch_resume + movq _OBJC_IVAR_$_MACHView.m_displayLink(%rip), %r15 + leaq (%rbx,%r15), %rdi + callq _CVDisplayLinkCreateWithActiveCGDisplays + movq (%rbx,%r15), %rdi + movq (%rbx,%r14), %rdx + leaq _displayLinkCallback(%rip), %rsi + callq _CVDisplayLinkSetOutputCallback + movq (%rbx,%r15), %rdi + callq _CVDisplayLinkStart +LBB3_3: + addq $64, %rsp + popq %rbx + popq %r14 + popq %r15 + retq + .cfi_endproc + +"___31-[MACHView viewDidMoveToWindow]_block_invoke": + + .cfi_startproc + movq 32(%rdi), %rdi + movq _OBJC_SELECTOR_REFERENCES_.8(%rip), %rsi + jmpq *_objc_msgSend@GOTPCREL(%rip) + .cfi_endproc + + .private_extern ___copy_helper_block_8_32s + .globl ___copy_helper_block_8_32s + .weak_def_can_be_hidden ___copy_helper_block_8_32s +___copy_helper_block_8_32s: + .cfi_startproc + movq 32(%rsi), %rdi + jmpq *_objc_retain@GOTPCREL(%rip) + .cfi_endproc + + .private_extern ___destroy_helper_block_8_32s + .globl ___destroy_helper_block_8_32s + .weak_def_can_be_hidden ___destroy_helper_block_8_32s +___destroy_helper_block_8_32s: + .cfi_startproc + movq 32(%rdi), %rdi + jmpq *_objc_release@GOTPCREL(%rip) + .cfi_endproc + +_displayLinkCallback: + + .cfi_startproc + pushq %r14 + .cfi_def_cfa_offset 16 + pushq %rbx + .cfi_def_cfa_offset 24 + pushq %rax + .cfi_def_cfa_offset 32 + .cfi_offset %rbx, -24 + .cfi_offset %r14, -16 + movq %r9, %rbx + callq _objc_autoreleasePoolPush + movq %rax, %r14 + movl $1, %esi + movq %rbx, %rdi + callq _dispatch_source_merge_data + movq %r14, %rdi + callq _objc_autoreleasePoolPop + xorl %eax, %eax + addq $8, %rsp + popq %rbx + popq %r14 + retq + .cfi_endproc + +"-[MACHView render]": + + .cfi_startproc + movq _OBJC_IVAR_$_MACHView._render_block(%rip), %rax + movq (%rdi,%rax), %rdi + testq %rdi, %rdi + je LBB8_1 + jmpq *16(%rdi) +LBB8_1: + retq + .cfi_endproc + +"-[MACHView stopRenderLoop]": + + .cfi_startproc + pushq %r14 + .cfi_def_cfa_offset 16 + pushq %rbx + .cfi_def_cfa_offset 24 + pushq %rax + .cfi_def_cfa_offset 32 + .cfi_offset %rbx, -24 + .cfi_offset %r14, -16 + movq %rdi, %rbx + movq _OBJC_IVAR_$_MACHView.m_displaySource(%rip), %r14 + movq (%rdi,%r14), %rdi + testq %rdi, %rdi + je LBB9_2 + callq _dispatch_source_cancel + movq (%rbx,%r14), %rdi + movq $0, (%rbx,%r14) + callq *_objc_release@GOTPCREL(%rip) +LBB9_2: + movq _OBJC_IVAR_$_MACHView.m_displayLink(%rip), %r14 + movq (%rbx,%r14), %rdi + testq %rdi, %rdi + je LBB9_4 + callq _CVDisplayLinkStop + movq (%rbx,%r14), %rdi + callq _CVDisplayLinkRelease + movq $0, (%rbx,%r14) +LBB9_4: + addq $8, %rsp + popq %rbx + popq %r14 + retq + .cfi_endproc + + .private_extern "-[MACHView setBlock_render:]" + .globl "-[MACHView setBlock_render:]" +"-[MACHView setBlock_render:]": + .cfi_startproc + pushq %rbx + .cfi_def_cfa_offset 16 + .cfi_offset %rbx, -16 + testq %rdi, %rdi + je LBB10_1 + movq %rdi, %rbx + movq %rsi, %rdi + callq _objc_retainBlock + movq _OBJC_IVAR_$_MACHView._render_block(%rip), %rcx + movq (%rbx,%rcx), %rdi + movq %rax, (%rbx,%rcx) + popq %rbx + jmpq *_objc_release@GOTPCREL(%rip) +LBB10_1: + popq %rbx + retq + .cfi_endproc + .private_extern "-[MACHView setBlock_keyDown:]" .globl "-[MACHView setBlock_keyDown:]" "-[MACHView setBlock_keyDown:]": @@ -22,7 +249,7 @@ .cfi_def_cfa_offset 16 .cfi_offset %rbx, -16 testq %rdi, %rdi - je LBB2_1 + je LBB11_1 movq %rdi, %rbx movq %rsi, %rdi callq _objc_retainBlock @@ -31,7 +258,7 @@ movq %rax, (%rbx,%rcx) popq %rbx jmpq *_objc_release@GOTPCREL(%rip) -LBB2_1: +LBB11_1: popq %rbx retq .cfi_endproc @@ -44,7 +271,7 @@ LBB2_1: .cfi_def_cfa_offset 16 .cfi_offset %rbx, -16 testq %rdi, %rdi - je LBB3_1 + je LBB12_1 movq %rdi, %rbx movq %rsi, %rdi callq _objc_retainBlock @@ -53,7 +280,7 @@ LBB2_1: movq %rax, (%rbx,%rcx) popq %rbx jmpq *_objc_release@GOTPCREL(%rip) -LBB3_1: +LBB12_1: popq %rbx retq .cfi_endproc @@ -66,7 +293,7 @@ LBB3_1: .cfi_def_cfa_offset 16 .cfi_offset %rbx, -16 testq %rdi, %rdi - je LBB4_1 + je LBB13_1 movq %rdi, %rbx movq %rsi, %rdi callq _objc_retainBlock @@ -75,7 +302,7 @@ LBB3_1: movq %rax, (%rbx,%rcx) popq %rbx jmpq *_objc_release@GOTPCREL(%rip) -LBB4_1: +LBB13_1: popq %rbx retq .cfi_endproc @@ -88,7 +315,7 @@ LBB4_1: .cfi_def_cfa_offset 16 .cfi_offset %rbx, -16 testq %rdi, %rdi - je LBB5_1 + je LBB14_1 movq %rdi, %rbx movq %rsi, %rdi callq _objc_retainBlock @@ -97,7 +324,7 @@ LBB4_1: movq %rax, (%rbx,%rcx) popq %rbx jmpq *_objc_release@GOTPCREL(%rip) -LBB5_1: +LBB14_1: popq %rbx retq .cfi_endproc @@ -110,7 +337,7 @@ LBB5_1: .cfi_def_cfa_offset 16 .cfi_offset %rbx, -16 testq %rdi, %rdi - je LBB6_1 + je LBB15_1 movq %rdi, %rbx movq %rsi, %rdi callq _objc_retainBlock @@ -119,7 +346,7 @@ LBB5_1: movq %rax, (%rbx,%rcx) popq %rbx jmpq *_objc_release@GOTPCREL(%rip) -LBB6_1: +LBB15_1: popq %rbx retq .cfi_endproc @@ -132,7 +359,7 @@ LBB6_1: .cfi_def_cfa_offset 16 .cfi_offset %rbx, -16 testq %rdi, %rdi - je LBB7_1 + je LBB16_1 movq %rdi, %rbx movq %rsi, %rdi callq _objc_retainBlock @@ -141,7 +368,7 @@ LBB6_1: movq %rax, (%rbx,%rcx) popq %rbx jmpq *_objc_release@GOTPCREL(%rip) -LBB7_1: +LBB16_1: popq %rbx retq .cfi_endproc @@ -154,7 +381,7 @@ LBB7_1: .cfi_def_cfa_offset 16 .cfi_offset %rbx, -16 testq %rdi, %rdi - je LBB8_1 + je LBB17_1 movq %rdi, %rbx movq %rsi, %rdi callq _objc_retainBlock @@ -163,7 +390,7 @@ LBB7_1: movq %rax, (%rbx,%rcx) popq %rbx jmpq *_objc_release@GOTPCREL(%rip) -LBB8_1: +LBB17_1: popq %rbx retq .cfi_endproc @@ -176,7 +403,7 @@ LBB8_1: .cfi_def_cfa_offset 16 .cfi_offset %rbx, -16 testq %rdi, %rdi - je LBB9_1 + je LBB18_1 movq %rdi, %rbx movq %rsi, %rdi callq _objc_retainBlock @@ -185,7 +412,7 @@ LBB8_1: movq %rax, (%rbx,%rcx) popq %rbx jmpq *_objc_release@GOTPCREL(%rip) -LBB9_1: +LBB18_1: popq %rbx retq .cfi_endproc @@ -198,7 +425,7 @@ LBB9_1: .cfi_def_cfa_offset 16 .cfi_offset %rbx, -16 testq %rdi, %rdi - je LBB10_1 + je LBB19_1 movq %rdi, %rbx movq %rsi, %rdi callq _objc_retainBlock @@ -207,7 +434,7 @@ LBB9_1: movq %rax, (%rbx,%rcx) popq %rbx jmpq *_objc_release@GOTPCREL(%rip) -LBB10_1: +LBB19_1: popq %rbx retq .cfi_endproc @@ -236,21 +463,21 @@ LBB10_1: movq _OBJC_IVAR_$_MACHView._keyDown_block(%rip), %rax movq (%r14,%rax), %rdi testq %rdi, %rdi - je LBB11_2 + je LBB20_2 movq %rbx, %rsi callq *16(%rdi) -LBB11_2: +LBB20_2: movq %rsp, %rdx movq %rbx, (%rdx) movq _OBJC_CLASSLIST_REFERENCES_$_(%rip), %rdi - movq _OBJC_SELECTOR_REFERENCES_(%rip), %rsi + movq _OBJC_SELECTOR_REFERENCES_.10(%rip), %rsi movq _objc_msgSend@GOTPCREL(%rip), %r12 movl $1, %ecx callq *%r12 movq %rax, %rdi callq _objc_retainAutoreleasedReturnValue movq %rax, %r15 - movq _OBJC_SELECTOR_REFERENCES_.2(%rip), %rsi + movq _OBJC_SELECTOR_REFERENCES_.12(%rip), %rsi movq %r14, %rdi movq %rax, %rdx callq *%r12 @@ -296,45 +523,45 @@ LBB11_2: movq %rax, %r14 movq _NSApp@GOTPCREL(%rip), %rax movq (%rax), %rdi - movq _OBJC_SELECTOR_REFERENCES_.4(%rip), %rsi + movq _OBJC_SELECTOR_REFERENCES_.14(%rip), %rsi movq _objc_msgSend@GOTPCREL(%rip), %rbx callq *%rbx movq %rax, %rdi callq _objc_retainAutoreleasedReturnValue movq %rax, 48(%rsp) - movq _OBJC_CLASSLIST_REFERENCES_$_.5(%rip), %rdi - movq _OBJC_SELECTOR_REFERENCES_.7(%rip), %rsi + movq _OBJC_CLASSLIST_REFERENCES_$_.15(%rip), %rdi + movq _OBJC_SELECTOR_REFERENCES_.17(%rip), %rsi callq *%rbx - movq _OBJC_SELECTOR_REFERENCES_.9(%rip), %rsi + movq _OBJC_SELECTOR_REFERENCES_.19(%rip), %rsi movq %r14, %rdi movq %rax, %rdx callq *%rbx testb %al, %al movq %r14, 72(%rsp) - je LBB12_2 - movq _OBJC_SELECTOR_REFERENCES_.11(%rip), %rsi + je LBB21_2 + movq _OBJC_SELECTOR_REFERENCES_.21(%rip), %rsi movq %r14, %rdi callq *_objc_msgSend@GOTPCREL(%rip) movq %rax, %rdi callq _objc_retainAutoreleasedReturnValue - jmp LBB12_3 -LBB12_2: + jmp LBB21_3 +LBB21_2: movq %r14, %rdi callq *_objc_retain@GOTPCREL(%rip) -LBB12_3: +LBB21_3: movq %rax, %r12 - movq _OBJC_SELECTOR_REFERENCES_.13(%rip), %rsi + movq _OBJC_SELECTOR_REFERENCES_.23(%rip), %rsi movq %rax, %rdi callq *_objc_msgSend@GOTPCREL(%rip) movq $0, 56(%rsp) movq %rax, 64(%rsp) testq %rax, %rax - je LBB12_10 - movq _OBJC_SELECTOR_REFERENCES_.15(%rip), %r13 + je LBB21_10 + movq _OBJC_SELECTOR_REFERENCES_.25(%rip), %r13 movq _OBJC_IVAR_$_MACHView._insertText_block(%rip), %r15 leaq 56(%rsp), %r14 leaq 44(%rsp), %rbp -LBB12_5: +LBB21_5: movl $0, 44(%rsp) movq 56(%rsp), %rax movq 64(%rsp), %rcx @@ -350,22 +577,22 @@ LBB12_5: xorl %r8d, %r8d callq *%rbx testb %al, %al - je LBB12_9 + je LBB21_9 movl 44(%rsp), %edx movl %edx, %eax andl $-256, %eax cmpl $63232, %eax - je LBB12_9 + je LBB21_9 movq 80(%rsp), %rax movq (%rax,%r15), %rdi testq %rdi, %rdi - je LBB12_9 + je LBB21_9 movq 48(%rsp), %rsi callq *16(%rdi) -LBB12_9: +LBB21_9: cmpq $0, 64(%rsp) - jne LBB12_5 -LBB12_10: + jne LBB21_5 +LBB21_10: movq _objc_release@GOTPCREL(%rip), %rbx movq 48(%rsp), %rdi callq *%rbx @@ -389,11 +616,11 @@ LBB12_10: movq _OBJC_IVAR_$_MACHView._keyUp_block(%rip), %rax movq (%rdi,%rax), %rdi testq %rdi, %rdi - je LBB13_1 + je LBB22_1 movq 16(%rdi), %rax movq %rdx, %rsi jmpq *%rax -LBB13_1: +LBB22_1: retq .cfi_endproc @@ -403,11 +630,11 @@ LBB13_1: movq _OBJC_IVAR_$_MACHView._flagsChanged_block(%rip), %rax movq (%rdi,%rax), %rdi testq %rdi, %rdi - je LBB14_1 + je LBB23_1 movq 16(%rdi), %rax movq %rdx, %rsi jmpq *%rax -LBB14_1: +LBB23_1: retq .cfi_endproc @@ -417,11 +644,11 @@ LBB14_1: movq _OBJC_IVAR_$_MACHView._mouseMoved_block(%rip), %rax movq (%rdi,%rax), %rdi testq %rdi, %rdi - je LBB15_1 + je LBB24_1 movq 16(%rdi), %rax movq %rdx, %rsi jmpq *%rax -LBB15_1: +LBB24_1: retq .cfi_endproc @@ -431,11 +658,11 @@ LBB15_1: movq _OBJC_IVAR_$_MACHView._mouseMoved_block(%rip), %rax movq (%rdi,%rax), %rdi testq %rdi, %rdi - je LBB16_1 + je LBB25_1 movq 16(%rdi), %rax movq %rdx, %rsi jmpq *%rax -LBB16_1: +LBB25_1: retq .cfi_endproc @@ -445,11 +672,11 @@ LBB16_1: movq _OBJC_IVAR_$_MACHView._mouseMoved_block(%rip), %rax movq (%rdi,%rax), %rdi testq %rdi, %rdi - je LBB17_1 + je LBB26_1 movq 16(%rdi), %rax movq %rdx, %rsi jmpq *%rax -LBB17_1: +LBB26_1: retq .cfi_endproc @@ -459,11 +686,11 @@ LBB17_1: movq _OBJC_IVAR_$_MACHView._mouseMoved_block(%rip), %rax movq (%rdi,%rax), %rdi testq %rdi, %rdi - je LBB18_1 + je LBB27_1 movq 16(%rdi), %rax movq %rdx, %rsi jmpq *%rax -LBB18_1: +LBB27_1: retq .cfi_endproc @@ -473,11 +700,11 @@ LBB18_1: movq _OBJC_IVAR_$_MACHView._mouseDown_block(%rip), %rax movq (%rdi,%rax), %rdi testq %rdi, %rdi - je LBB19_1 + je LBB28_1 movq 16(%rdi), %rax movq %rdx, %rsi jmpq *%rax -LBB19_1: +LBB28_1: retq .cfi_endproc @@ -487,11 +714,11 @@ LBB19_1: movq _OBJC_IVAR_$_MACHView._mouseDown_block(%rip), %rax movq (%rdi,%rax), %rdi testq %rdi, %rdi - je LBB20_1 + je LBB29_1 movq 16(%rdi), %rax movq %rdx, %rsi jmpq *%rax -LBB20_1: +LBB29_1: retq .cfi_endproc @@ -501,11 +728,11 @@ LBB20_1: movq _OBJC_IVAR_$_MACHView._mouseDown_block(%rip), %rax movq (%rdi,%rax), %rdi testq %rdi, %rdi - je LBB21_1 + je LBB30_1 movq 16(%rdi), %rax movq %rdx, %rsi jmpq *%rax -LBB21_1: +LBB30_1: retq .cfi_endproc @@ -515,11 +742,11 @@ LBB21_1: movq _OBJC_IVAR_$_MACHView._mouseUp_block(%rip), %rax movq (%rdi,%rax), %rdi testq %rdi, %rdi - je LBB22_1 + je LBB31_1 movq 16(%rdi), %rax movq %rdx, %rsi jmpq *%rax -LBB22_1: +LBB31_1: retq .cfi_endproc @@ -529,11 +756,11 @@ LBB22_1: movq _OBJC_IVAR_$_MACHView._mouseUp_block(%rip), %rax movq (%rdi,%rax), %rdi testq %rdi, %rdi - je LBB23_1 + je LBB32_1 movq 16(%rdi), %rax movq %rdx, %rsi jmpq *%rax -LBB23_1: +LBB32_1: retq .cfi_endproc @@ -543,11 +770,11 @@ LBB23_1: movq _OBJC_IVAR_$_MACHView._mouseUp_block(%rip), %rax movq (%rdi,%rax), %rdi testq %rdi, %rdi - je LBB24_1 + je LBB33_1 movq 16(%rdi), %rax movq %rdx, %rsi jmpq *%rax -LBB24_1: +LBB33_1: retq .cfi_endproc @@ -557,11 +784,11 @@ LBB24_1: movq _OBJC_IVAR_$_MACHView._scrollWheel_block(%rip), %rax movq (%rdi,%rax), %rdi testq %rdi, %rdi - je LBB25_1 + je LBB34_1 movq 16(%rdi), %rax movq %rdx, %rsi jmpq *%rax -LBB25_1: +LBB34_1: retq .cfi_endproc @@ -571,11 +798,11 @@ LBB25_1: movq _OBJC_IVAR_$_MACHView._magnify_block(%rip), %rax movq (%rdi,%rax), %rdi testq %rdi, %rdi - je LBB26_1 + je LBB35_1 movq 16(%rdi), %rax movq %rdx, %rsi jmpq *%rax -LBB26_1: +LBB35_1: retq .cfi_endproc @@ -585,6 +812,32 @@ LBB26_1: retq .cfi_endproc +"-[MACHView initWithFrame:withRenderLoop:]": + + .cfi_startproc + pushq %rbx + .cfi_def_cfa_offset 16 + subq $32, %rsp + .cfi_def_cfa_offset 48 + .cfi_offset %rbx, -16 + movl %edx, %ebx + movq _OBJC_SELECTOR_REFERENCES_.27(%rip), %rsi + movq 72(%rsp), %rax + movq %rax, 24(%rsp) + movq 64(%rsp), %rax + movq %rax, 16(%rsp) + movq 48(%rsp), %rax + movq 56(%rsp), %rcx + movq %rcx, 8(%rsp) + movq %rax, (%rsp) + callq *_objc_msgSend@GOTPCREL(%rip) + movq _OBJC_IVAR_$_MACHView._hasRenderLoop(%rip), %rcx + movb %bl, (%rax,%rcx) + addq $32, %rsp + popq %rbx + retq + .cfi_endproc + "-[MACHView initWithFrame:]": .cfi_startproc @@ -603,7 +856,7 @@ LBB26_1: movq %rdi, (%rax) movq l_OBJC_CLASSLIST_SUP_REFS_$_(%rip), %rcx movq %rcx, 8(%rax) - movq _OBJC_SELECTOR_REFERENCES_.17(%rip), %rsi + movq _OBJC_SELECTOR_REFERENCES_.27(%rip), %rsi movq 136(%rsp), %rcx movq %rcx, 24(%rsp) movq 128(%rsp), %rcx @@ -616,15 +869,15 @@ LBB26_1: callq _objc_msgSendSuper2 movq %rax, %rbx testq %rax, %rax - je LBB28_2 - movq _OBJC_SELECTOR_REFERENCES_.19(%rip), %rdx + je LBB38_2 + movq _OBJC_SELECTOR_REFERENCES_.29(%rip), %rdx leaq 48(%rsp), %r14 movq %r14, %rdi movq %rbx, %rsi callq _objc_msgSend_stret - movq _OBJC_CLASSLIST_REFERENCES_$_.20(%rip), %rdi + movq _OBJC_CLASSLIST_REFERENCES_$_.30(%rip), %rdi callq _objc_alloc - movq _OBJC_SELECTOR_REFERENCES_.22(%rip), %rsi + movq _OBJC_SELECTOR_REFERENCES_.32(%rip), %rsi movq 24(%r14), %rcx movq %rcx, 24(%rsp) movq 16(%r14), %rcx @@ -644,10 +897,10 @@ LBB26_1: movq %rax, (%rbx,%r15) callq *_objc_release@GOTPCREL(%rip) movq (%rbx,%r15), %rdx - movq _OBJC_SELECTOR_REFERENCES_.24(%rip), %rsi + movq _OBJC_SELECTOR_REFERENCES_.34(%rip), %rsi movq %rbx, %rdi callq *%r14 -LBB28_2: +LBB38_2: movq %rbx, %rax addq $80, %rsp popq %rbx @@ -656,65 +909,6 @@ LBB28_2: retq .cfi_endproc -"-[MACHView updateTrackingAreas]": - - .cfi_startproc - pushq %r15 - .cfi_def_cfa_offset 16 - pushq %r14 - .cfi_def_cfa_offset 24 - pushq %r12 - .cfi_def_cfa_offset 32 - pushq %rbx - .cfi_def_cfa_offset 40 - subq $72, %rsp - .cfi_def_cfa_offset 112 - .cfi_offset %rbx, -40 - .cfi_offset %r12, -32 - .cfi_offset %r14, -24 - .cfi_offset %r15, -16 - movq %rdi, %rbx - movq _OBJC_IVAR_$_MACHView.trackingArea(%rip), %r12 - movq (%rdi,%r12), %rdx - movq _OBJC_SELECTOR_REFERENCES_.26(%rip), %rsi - movq _objc_msgSend@GOTPCREL(%rip), %r15 - callq *%r15 - movq _OBJC_SELECTOR_REFERENCES_.19(%rip), %rdx - leaq 40(%rsp), %r14 - movq %r14, %rdi - movq %rbx, %rsi - callq _objc_msgSend_stret - movq _OBJC_CLASSLIST_REFERENCES_$_.20(%rip), %rdi - callq _objc_alloc - movq _OBJC_SELECTOR_REFERENCES_.22(%rip), %rsi - movq 24(%r14), %rcx - movq %rcx, 24(%rsp) - movq 16(%r14), %rcx - movq %rcx, 16(%rsp) - movq (%r14), %rcx - movq 8(%r14), %rdx - movq %rdx, 8(%rsp) - movq %rcx, (%rsp) - movl $67, %edx - movq %rax, %rdi - movq %rbx, %rcx - xorl %r8d, %r8d - callq *%r15 - movq (%rbx,%r12), %rdi - movq %rax, (%rbx,%r12) - callq *_objc_release@GOTPCREL(%rip) - movq (%rbx,%r12), %rdx - movq _OBJC_SELECTOR_REFERENCES_.24(%rip), %rsi - movq %rbx, %rdi - callq *%r15 - addq $72, %rsp - popq %rbx - popq %r12 - popq %r14 - popq %r15 - retq - .cfi_endproc - "-[MACHView .cxx_destruct]": .cfi_startproc @@ -722,10 +916,18 @@ LBB28_2: .cfi_def_cfa_offset 16 .cfi_offset %rbx, -16 movq %rdi, %rbx + movq _OBJC_IVAR_$_MACHView.m_displaySource(%rip), %rdi + addq %rbx, %rdi + xorl %esi, %esi + callq _objc_storeStrong movq _OBJC_IVAR_$_MACHView.trackingArea(%rip), %rdi addq %rbx, %rdi xorl %esi, %esi callq _objc_storeStrong + movq _OBJC_IVAR_$_MACHView._render_block(%rip), %rdi + addq %rbx, %rdi + xorl %esi, %esi + callq _objc_storeStrong movq _OBJC_IVAR_$_MACHView._insertText_block(%rip), %rdi addq %rbx, %rdi xorl %esi, %esi @@ -765,8 +967,111 @@ LBB28_2: jmp _objc_storeStrong .cfi_endproc - .private_extern _OBJC_IVAR_$_MACHView._keyDown_block + .private_extern _OBJC_IVAR_$_MACHView._hasRenderLoop + .section __DATA,__objc_ivar + .globl _OBJC_IVAR_$_MACHView._hasRenderLoop + .p2align 3, 0x0 +_OBJC_IVAR_$_MACHView._hasRenderLoop: + .quad 112 + + .section __TEXT,__objc_methname,cstring_literals +L_OBJC_METH_VAR_NAME_: + .asciz "stopRenderLoop" + + .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip + .p2align 3, 0x0 +_OBJC_SELECTOR_REFERENCES_: + .quad L_OBJC_METH_VAR_NAME_ + + .section __DATA,__objc_data + .globl _OBJC_CLASS_$_MACHView + .p2align 3, 0x0 +_OBJC_CLASS_$_MACHView: + .quad _OBJC_METACLASS_$_MACHView + .quad _OBJC_CLASS_$_NSView + .quad __objc_empty_cache + .quad 0 + .quad __OBJC_CLASS_RO_$_MACHView + + .section __DATA,__objc_superrefs,regular,no_dead_strip + .p2align 3, 0x0 +l_OBJC_CLASSLIST_SUP_REFS_$_: + .quad _OBJC_CLASS_$_MACHView + + .section __TEXT,__objc_methname,cstring_literals +L_OBJC_METH_VAR_NAME_.1: + .asciz "dealloc" + + .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip + .p2align 3, 0x0 +_OBJC_SELECTOR_REFERENCES_.2: + .quad L_OBJC_METH_VAR_NAME_.1 + + .section __TEXT,__objc_methname,cstring_literals +L_OBJC_METH_VAR_NAME_.3: + .asciz "viewDidMoveToWindow" + + .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip + .p2align 3, 0x0 +_OBJC_SELECTOR_REFERENCES_.4: + .quad L_OBJC_METH_VAR_NAME_.3 + + .section __TEXT,__objc_methname,cstring_literals +L_OBJC_METH_VAR_NAME_.5: + .asciz "window" + + .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip + .p2align 3, 0x0 +_OBJC_SELECTOR_REFERENCES_.6: + .quad L_OBJC_METH_VAR_NAME_.5 + + .private_extern _OBJC_IVAR_$_MACHView.m_displaySource .section __DATA,__objc_ivar + .globl _OBJC_IVAR_$_MACHView.m_displaySource + .p2align 3, 0x0 +_OBJC_IVAR_$_MACHView.m_displaySource: + .quad 96 + + .section __TEXT,__objc_methname,cstring_literals +L_OBJC_METH_VAR_NAME_.7: + .asciz "render" + + .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip + .p2align 3, 0x0 +_OBJC_SELECTOR_REFERENCES_.8: + .quad L_OBJC_METH_VAR_NAME_.7 + + .section __TEXT,__cstring,cstring_literals +L_.str: + .asciz "v8@?0" + + .private_extern "___block_descriptor_40_8_32s_e5_v8\x01?0l" + .section __DATA,__const + .globl "___block_descriptor_40_8_32s_e5_v8\x01?0l" + .weak_def_can_be_hidden "___block_descriptor_40_8_32s_e5_v8\x01?0l" + .p2align 3, 0x0 +"___block_descriptor_40_8_32s_e5_v8\x01?0l": + .quad 0 + .quad 40 + .quad ___copy_helper_block_8_32s + .quad ___destroy_helper_block_8_32s + .quad L_.str + .quad 256 + + .private_extern _OBJC_IVAR_$_MACHView.m_displayLink + .section __DATA,__objc_ivar + .globl _OBJC_IVAR_$_MACHView.m_displayLink + .p2align 3, 0x0 +_OBJC_IVAR_$_MACHView.m_displayLink: + .quad 104 + + .private_extern _OBJC_IVAR_$_MACHView._render_block + .globl _OBJC_IVAR_$_MACHView._render_block + .p2align 3, 0x0 +_OBJC_IVAR_$_MACHView._render_block: + .quad 80 + + .private_extern _OBJC_IVAR_$_MACHView._keyDown_block .globl _OBJC_IVAR_$_MACHView._keyDown_block .p2align 3, 0x0 _OBJC_IVAR_$_MACHView._keyDown_block: @@ -826,153 +1131,129 @@ _OBJC_CLASSLIST_REFERENCES_$_: .quad _OBJC_CLASS_$_NSArray .section __TEXT,__objc_methname,cstring_literals -L_OBJC_METH_VAR_NAME_: +L_OBJC_METH_VAR_NAME_.9: .asciz "arrayWithObjects:count:" .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip .p2align 3, 0x0 -_OBJC_SELECTOR_REFERENCES_: - .quad L_OBJC_METH_VAR_NAME_ +_OBJC_SELECTOR_REFERENCES_.10: + .quad L_OBJC_METH_VAR_NAME_.9 .section __TEXT,__objc_methname,cstring_literals -L_OBJC_METH_VAR_NAME_.1: +L_OBJC_METH_VAR_NAME_.11: .asciz "interpretKeyEvents:" .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip .p2align 3, 0x0 -_OBJC_SELECTOR_REFERENCES_.2: - .quad L_OBJC_METH_VAR_NAME_.1 +_OBJC_SELECTOR_REFERENCES_.12: + .quad L_OBJC_METH_VAR_NAME_.11 .section __TEXT,__objc_methname,cstring_literals -L_OBJC_METH_VAR_NAME_.3: +L_OBJC_METH_VAR_NAME_.13: .asciz "currentEvent" .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip .p2align 3, 0x0 -_OBJC_SELECTOR_REFERENCES_.4: - .quad L_OBJC_METH_VAR_NAME_.3 +_OBJC_SELECTOR_REFERENCES_.14: + .quad L_OBJC_METH_VAR_NAME_.13 .section __DATA,__objc_classrefs,regular,no_dead_strip .p2align 3, 0x0 -_OBJC_CLASSLIST_REFERENCES_$_.5: +_OBJC_CLASSLIST_REFERENCES_$_.15: .quad _OBJC_CLASS_$_NSAttributedString .section __TEXT,__objc_methname,cstring_literals -L_OBJC_METH_VAR_NAME_.6: +L_OBJC_METH_VAR_NAME_.16: .asciz "class" .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip .p2align 3, 0x0 -_OBJC_SELECTOR_REFERENCES_.7: - .quad L_OBJC_METH_VAR_NAME_.6 +_OBJC_SELECTOR_REFERENCES_.17: + .quad L_OBJC_METH_VAR_NAME_.16 .section __TEXT,__objc_methname,cstring_literals -L_OBJC_METH_VAR_NAME_.8: +L_OBJC_METH_VAR_NAME_.18: .asciz "isKindOfClass:" .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip .p2align 3, 0x0 -_OBJC_SELECTOR_REFERENCES_.9: - .quad L_OBJC_METH_VAR_NAME_.8 +_OBJC_SELECTOR_REFERENCES_.19: + .quad L_OBJC_METH_VAR_NAME_.18 .section __TEXT,__objc_methname,cstring_literals -L_OBJC_METH_VAR_NAME_.10: +L_OBJC_METH_VAR_NAME_.20: .asciz "string" .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip .p2align 3, 0x0 -_OBJC_SELECTOR_REFERENCES_.11: - .quad L_OBJC_METH_VAR_NAME_.10 +_OBJC_SELECTOR_REFERENCES_.21: + .quad L_OBJC_METH_VAR_NAME_.20 .section __TEXT,__objc_methname,cstring_literals -L_OBJC_METH_VAR_NAME_.12: +L_OBJC_METH_VAR_NAME_.22: .asciz "length" .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip .p2align 3, 0x0 -_OBJC_SELECTOR_REFERENCES_.13: - .quad L_OBJC_METH_VAR_NAME_.12 +_OBJC_SELECTOR_REFERENCES_.23: + .quad L_OBJC_METH_VAR_NAME_.22 .section __TEXT,__objc_methname,cstring_literals -L_OBJC_METH_VAR_NAME_.14: +L_OBJC_METH_VAR_NAME_.24: .asciz "getBytes:maxLength:usedLength:encoding:options:range:remainingRange:" .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip .p2align 3, 0x0 -_OBJC_SELECTOR_REFERENCES_.15: - .quad L_OBJC_METH_VAR_NAME_.14 - - .section __DATA,__objc_data - .globl _OBJC_CLASS_$_MACHView - .p2align 3, 0x0 -_OBJC_CLASS_$_MACHView: - .quad _OBJC_METACLASS_$_MACHView - .quad _OBJC_CLASS_$_NSView - .quad __objc_empty_cache - .quad 0 - .quad __OBJC_CLASS_RO_$_MACHView - - .section __DATA,__objc_superrefs,regular,no_dead_strip - .p2align 3, 0x0 -l_OBJC_CLASSLIST_SUP_REFS_$_: - .quad _OBJC_CLASS_$_MACHView +_OBJC_SELECTOR_REFERENCES_.25: + .quad L_OBJC_METH_VAR_NAME_.24 .section __TEXT,__objc_methname,cstring_literals -L_OBJC_METH_VAR_NAME_.16: +L_OBJC_METH_VAR_NAME_.26: .asciz "initWithFrame:" .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip .p2align 3, 0x0 -_OBJC_SELECTOR_REFERENCES_.17: - .quad L_OBJC_METH_VAR_NAME_.16 +_OBJC_SELECTOR_REFERENCES_.27: + .quad L_OBJC_METH_VAR_NAME_.26 .section __TEXT,__objc_methname,cstring_literals -L_OBJC_METH_VAR_NAME_.18: +L_OBJC_METH_VAR_NAME_.28: .asciz "visibleRect" .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip .p2align 3, 0x0 -_OBJC_SELECTOR_REFERENCES_.19: - .quad L_OBJC_METH_VAR_NAME_.18 +_OBJC_SELECTOR_REFERENCES_.29: + .quad L_OBJC_METH_VAR_NAME_.28 .section __DATA,__objc_classrefs,regular,no_dead_strip .p2align 3, 0x0 -_OBJC_CLASSLIST_REFERENCES_$_.20: +_OBJC_CLASSLIST_REFERENCES_$_.30: .quad _OBJC_CLASS_$_NSTrackingArea .section __TEXT,__objc_methname,cstring_literals -L_OBJC_METH_VAR_NAME_.21: +L_OBJC_METH_VAR_NAME_.31: .asciz "initWithRect:options:owner:userInfo:" .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip .p2align 3, 0x0 -_OBJC_SELECTOR_REFERENCES_.22: - .quad L_OBJC_METH_VAR_NAME_.21 +_OBJC_SELECTOR_REFERENCES_.32: + .quad L_OBJC_METH_VAR_NAME_.31 .private_extern _OBJC_IVAR_$_MACHView.trackingArea .section __DATA,__objc_ivar .globl _OBJC_IVAR_$_MACHView.trackingArea .p2align 3, 0x0 _OBJC_IVAR_$_MACHView.trackingArea: - .quad 80 + .quad 88 .section __TEXT,__objc_methname,cstring_literals -L_OBJC_METH_VAR_NAME_.23: +L_OBJC_METH_VAR_NAME_.33: .asciz "addTrackingArea:" .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip .p2align 3, 0x0 -_OBJC_SELECTOR_REFERENCES_.24: - .quad L_OBJC_METH_VAR_NAME_.23 - - .section __TEXT,__objc_methname,cstring_literals -L_OBJC_METH_VAR_NAME_.25: - .asciz "removeTrackingArea:" - - .section __DATA,__objc_selrefs,literal_pointers,no_dead_strip - .p2align 3, 0x0 -_OBJC_SELECTOR_REFERENCES_.26: - .quad L_OBJC_METH_VAR_NAME_.25 +_OBJC_SELECTOR_REFERENCES_.34: + .quad L_OBJC_METH_VAR_NAME_.33 .section __TEXT,__objc_classname,cstring_literals L_OBJC_CLASS_NAME_: @@ -1004,11 +1285,11 @@ _OBJC_METACLASS_$_MACHView: .quad __OBJC_METACLASS_RO_$_MACHView .section __TEXT,__objc_classname,cstring_literals -L_OBJC_CLASS_NAME_.27: - .asciz "\n" +L_OBJC_CLASS_NAME_.35: + .asciz "\f" .section __TEXT,__objc_methname,cstring_literals -L_OBJC_METH_VAR_NAME_.28: +L_OBJC_METH_VAR_NAME_.36: .asciz "canBecomeKeyView" .section __TEXT,__objc_methtype,cstring_literals @@ -1016,259 +1297,323 @@ L_OBJC_METH_VAR_TYPE_: .asciz "c16@0:8" .section __TEXT,__objc_methname,cstring_literals -L_OBJC_METH_VAR_NAME_.29: +L_OBJC_METH_VAR_NAME_.37: .asciz "acceptsFirstResponder" -L_OBJC_METH_VAR_NAME_.30: + .section __TEXT,__objc_methtype,cstring_literals +L_OBJC_METH_VAR_TYPE_.38: + .asciz "v16@0:8" + + .section __TEXT,__objc_methname,cstring_literals +L_OBJC_METH_VAR_NAME_.39: .asciz "keyDown:" .section __TEXT,__objc_methtype,cstring_literals -L_OBJC_METH_VAR_TYPE_.31: +L_OBJC_METH_VAR_TYPE_.40: .asciz "v24@0:8@16" .section __TEXT,__objc_methname,cstring_literals -L_OBJC_METH_VAR_NAME_.32: +L_OBJC_METH_VAR_NAME_.41: .asciz "insertText:" -L_OBJC_METH_VAR_NAME_.33: +L_OBJC_METH_VAR_NAME_.42: .asciz "keyUp:" -L_OBJC_METH_VAR_NAME_.34: +L_OBJC_METH_VAR_NAME_.43: .asciz "flagsChanged:" -L_OBJC_METH_VAR_NAME_.35: +L_OBJC_METH_VAR_NAME_.44: .asciz "mouseMoved:" -L_OBJC_METH_VAR_NAME_.36: +L_OBJC_METH_VAR_NAME_.45: .asciz "mouseDragged:" -L_OBJC_METH_VAR_NAME_.37: +L_OBJC_METH_VAR_NAME_.46: .asciz "rightMouseDragged:" -L_OBJC_METH_VAR_NAME_.38: +L_OBJC_METH_VAR_NAME_.47: .asciz "otherMouseDragged:" -L_OBJC_METH_VAR_NAME_.39: +L_OBJC_METH_VAR_NAME_.48: .asciz "mouseDown:" -L_OBJC_METH_VAR_NAME_.40: +L_OBJC_METH_VAR_NAME_.49: .asciz "rightMouseDown:" -L_OBJC_METH_VAR_NAME_.41: +L_OBJC_METH_VAR_NAME_.50: .asciz "otherMouseDown:" -L_OBJC_METH_VAR_NAME_.42: +L_OBJC_METH_VAR_NAME_.51: .asciz "mouseUp:" -L_OBJC_METH_VAR_NAME_.43: +L_OBJC_METH_VAR_NAME_.52: .asciz "rightMouseUp:" -L_OBJC_METH_VAR_NAME_.44: +L_OBJC_METH_VAR_NAME_.53: .asciz "otherMouseUp:" -L_OBJC_METH_VAR_NAME_.45: +L_OBJC_METH_VAR_NAME_.54: .asciz "scrollWheel:" -L_OBJC_METH_VAR_NAME_.46: +L_OBJC_METH_VAR_NAME_.55: .asciz "magnifyWithEvent:" -L_OBJC_METH_VAR_NAME_.47: +L_OBJC_METH_VAR_NAME_.56: .asciz "doCommandBySelector:" .section __TEXT,__objc_methtype,cstring_literals -L_OBJC_METH_VAR_TYPE_.48: +L_OBJC_METH_VAR_TYPE_.57: .asciz "v24@0:8:16" -L_OBJC_METH_VAR_TYPE_.49: - .asciz "@48@0:8{CGRect={CGPoint=dd}{CGSize=dd}}16" - .section __TEXT,__objc_methname,cstring_literals -L_OBJC_METH_VAR_NAME_.50: - .asciz "updateTrackingAreas" +L_OBJC_METH_VAR_NAME_.58: + .asciz "initWithFrame:withRenderLoop:" .section __TEXT,__objc_methtype,cstring_literals -L_OBJC_METH_VAR_TYPE_.51: - .asciz "v16@0:8" +L_OBJC_METH_VAR_TYPE_.59: + .asciz "@52@0:8{CGRect={CGPoint=dd}{CGSize=dd}}16c48" + +L_OBJC_METH_VAR_TYPE_.60: + .asciz "@48@0:8{CGRect={CGPoint=dd}{CGSize=dd}}16" .section __TEXT,__objc_methname,cstring_literals -L_OBJC_METH_VAR_NAME_.52: +L_OBJC_METH_VAR_NAME_.61: .asciz ".cxx_destruct" .section __DATA,__objc_const .p2align 3, 0x0 __OBJC_$_INSTANCE_METHODS_MACHView: .long 24 - .long 22 - .quad L_OBJC_METH_VAR_NAME_.28 + .long 26 + .quad L_OBJC_METH_VAR_NAME_.36 .quad L_OBJC_METH_VAR_TYPE_ .quad "-[MACHView canBecomeKeyView]" - .quad L_OBJC_METH_VAR_NAME_.29 + .quad L_OBJC_METH_VAR_NAME_.37 .quad L_OBJC_METH_VAR_TYPE_ .quad "-[MACHView acceptsFirstResponder]" - .quad L_OBJC_METH_VAR_NAME_.30 - .quad L_OBJC_METH_VAR_TYPE_.31 + .quad L_OBJC_METH_VAR_NAME_.1 + .quad L_OBJC_METH_VAR_TYPE_.38 + .quad "-[MACHView dealloc]" + .quad L_OBJC_METH_VAR_NAME_.3 + .quad L_OBJC_METH_VAR_TYPE_.38 + .quad "-[MACHView viewDidMoveToWindow]" + .quad L_OBJC_METH_VAR_NAME_.7 + .quad L_OBJC_METH_VAR_TYPE_.38 + .quad "-[MACHView render]" + .quad L_OBJC_METH_VAR_NAME_ + .quad L_OBJC_METH_VAR_TYPE_.38 + .quad "-[MACHView stopRenderLoop]" + .quad L_OBJC_METH_VAR_NAME_.39 + .quad L_OBJC_METH_VAR_TYPE_.40 .quad "-[MACHView keyDown:]" - .quad L_OBJC_METH_VAR_NAME_.32 - .quad L_OBJC_METH_VAR_TYPE_.31 + .quad L_OBJC_METH_VAR_NAME_.41 + .quad L_OBJC_METH_VAR_TYPE_.40 .quad "-[MACHView insertText:]" - .quad L_OBJC_METH_VAR_NAME_.33 - .quad L_OBJC_METH_VAR_TYPE_.31 + .quad L_OBJC_METH_VAR_NAME_.42 + .quad L_OBJC_METH_VAR_TYPE_.40 .quad "-[MACHView keyUp:]" - .quad L_OBJC_METH_VAR_NAME_.34 - .quad L_OBJC_METH_VAR_TYPE_.31 + .quad L_OBJC_METH_VAR_NAME_.43 + .quad L_OBJC_METH_VAR_TYPE_.40 .quad "-[MACHView flagsChanged:]" - .quad L_OBJC_METH_VAR_NAME_.35 - .quad L_OBJC_METH_VAR_TYPE_.31 + .quad L_OBJC_METH_VAR_NAME_.44 + .quad L_OBJC_METH_VAR_TYPE_.40 .quad "-[MACHView mouseMoved:]" - .quad L_OBJC_METH_VAR_NAME_.36 - .quad L_OBJC_METH_VAR_TYPE_.31 + .quad L_OBJC_METH_VAR_NAME_.45 + .quad L_OBJC_METH_VAR_TYPE_.40 .quad "-[MACHView mouseDragged:]" - .quad L_OBJC_METH_VAR_NAME_.37 - .quad L_OBJC_METH_VAR_TYPE_.31 + .quad L_OBJC_METH_VAR_NAME_.46 + .quad L_OBJC_METH_VAR_TYPE_.40 .quad "-[MACHView rightMouseDragged:]" - .quad L_OBJC_METH_VAR_NAME_.38 - .quad L_OBJC_METH_VAR_TYPE_.31 + .quad L_OBJC_METH_VAR_NAME_.47 + .quad L_OBJC_METH_VAR_TYPE_.40 .quad "-[MACHView otherMouseDragged:]" - .quad L_OBJC_METH_VAR_NAME_.39 - .quad L_OBJC_METH_VAR_TYPE_.31 + .quad L_OBJC_METH_VAR_NAME_.48 + .quad L_OBJC_METH_VAR_TYPE_.40 .quad "-[MACHView mouseDown:]" - .quad L_OBJC_METH_VAR_NAME_.40 - .quad L_OBJC_METH_VAR_TYPE_.31 + .quad L_OBJC_METH_VAR_NAME_.49 + .quad L_OBJC_METH_VAR_TYPE_.40 .quad "-[MACHView rightMouseDown:]" - .quad L_OBJC_METH_VAR_NAME_.41 - .quad L_OBJC_METH_VAR_TYPE_.31 + .quad L_OBJC_METH_VAR_NAME_.50 + .quad L_OBJC_METH_VAR_TYPE_.40 .quad "-[MACHView otherMouseDown:]" - .quad L_OBJC_METH_VAR_NAME_.42 - .quad L_OBJC_METH_VAR_TYPE_.31 + .quad L_OBJC_METH_VAR_NAME_.51 + .quad L_OBJC_METH_VAR_TYPE_.40 .quad "-[MACHView mouseUp:]" - .quad L_OBJC_METH_VAR_NAME_.43 - .quad L_OBJC_METH_VAR_TYPE_.31 + .quad L_OBJC_METH_VAR_NAME_.52 + .quad L_OBJC_METH_VAR_TYPE_.40 .quad "-[MACHView rightMouseUp:]" - .quad L_OBJC_METH_VAR_NAME_.44 - .quad L_OBJC_METH_VAR_TYPE_.31 + .quad L_OBJC_METH_VAR_NAME_.53 + .quad L_OBJC_METH_VAR_TYPE_.40 .quad "-[MACHView otherMouseUp:]" - .quad L_OBJC_METH_VAR_NAME_.45 - .quad L_OBJC_METH_VAR_TYPE_.31 + .quad L_OBJC_METH_VAR_NAME_.54 + .quad L_OBJC_METH_VAR_TYPE_.40 .quad "-[MACHView scrollWheel:]" - .quad L_OBJC_METH_VAR_NAME_.46 - .quad L_OBJC_METH_VAR_TYPE_.31 + .quad L_OBJC_METH_VAR_NAME_.55 + .quad L_OBJC_METH_VAR_TYPE_.40 .quad "-[MACHView magnifyWithEvent:]" - .quad L_OBJC_METH_VAR_NAME_.47 - .quad L_OBJC_METH_VAR_TYPE_.48 + .quad L_OBJC_METH_VAR_NAME_.56 + .quad L_OBJC_METH_VAR_TYPE_.57 .quad "-[MACHView doCommandBySelector:]" - .quad L_OBJC_METH_VAR_NAME_.16 - .quad L_OBJC_METH_VAR_TYPE_.49 + .quad L_OBJC_METH_VAR_NAME_.58 + .quad L_OBJC_METH_VAR_TYPE_.59 + .quad "-[MACHView initWithFrame:withRenderLoop:]" + .quad L_OBJC_METH_VAR_NAME_.26 + .quad L_OBJC_METH_VAR_TYPE_.60 .quad "-[MACHView initWithFrame:]" - .quad L_OBJC_METH_VAR_NAME_.50 - .quad L_OBJC_METH_VAR_TYPE_.51 - .quad "-[MACHView updateTrackingAreas]" - .quad L_OBJC_METH_VAR_NAME_.52 - .quad L_OBJC_METH_VAR_TYPE_.51 + .quad L_OBJC_METH_VAR_NAME_.61 + .quad L_OBJC_METH_VAR_TYPE_.38 .quad "-[MACHView .cxx_destruct]" .section __TEXT,__objc_methname,cstring_literals -L_OBJC_METH_VAR_NAME_.53: +L_OBJC_METH_VAR_NAME_.62: .asciz "_keyDown_block" .section __TEXT,__objc_methtype,cstring_literals -L_OBJC_METH_VAR_TYPE_.54: +L_OBJC_METH_VAR_TYPE_.63: .asciz "@?" .section __TEXT,__objc_methname,cstring_literals -L_OBJC_METH_VAR_NAME_.55: +L_OBJC_METH_VAR_NAME_.64: .asciz "_keyUp_block" -L_OBJC_METH_VAR_NAME_.56: +L_OBJC_METH_VAR_NAME_.65: .asciz "_flagsChanged_block" -L_OBJC_METH_VAR_NAME_.57: +L_OBJC_METH_VAR_NAME_.66: .asciz "_mouseMoved_block" -L_OBJC_METH_VAR_NAME_.58: +L_OBJC_METH_VAR_NAME_.67: .asciz "_mouseDown_block" -L_OBJC_METH_VAR_NAME_.59: +L_OBJC_METH_VAR_NAME_.68: .asciz "_mouseUp_block" -L_OBJC_METH_VAR_NAME_.60: +L_OBJC_METH_VAR_NAME_.69: .asciz "_scrollWheel_block" -L_OBJC_METH_VAR_NAME_.61: +L_OBJC_METH_VAR_NAME_.70: .asciz "_magnify_block" -L_OBJC_METH_VAR_NAME_.62: +L_OBJC_METH_VAR_NAME_.71: .asciz "_insertText_block" -L_OBJC_METH_VAR_NAME_.63: +L_OBJC_METH_VAR_NAME_.72: + .asciz "_render_block" + +L_OBJC_METH_VAR_NAME_.73: .asciz "trackingArea" .section __TEXT,__objc_methtype,cstring_literals -L_OBJC_METH_VAR_TYPE_.64: +L_OBJC_METH_VAR_TYPE_.74: .asciz "@\"NSTrackingArea\"" + .section __TEXT,__objc_methname,cstring_literals +L_OBJC_METH_VAR_NAME_.75: + .asciz "m_displaySource" + + .section __TEXT,__objc_methtype,cstring_literals +L_OBJC_METH_VAR_TYPE_.76: + .asciz "@\"NSObject\"" + + .section __TEXT,__objc_methname,cstring_literals +L_OBJC_METH_VAR_NAME_.77: + .asciz "m_displayLink" + + .section __TEXT,__objc_methtype,cstring_literals +L_OBJC_METH_VAR_TYPE_.78: + .asciz "^{__CVDisplayLink=}" + + .section __TEXT,__objc_methname,cstring_literals +L_OBJC_METH_VAR_NAME_.79: + .asciz "_hasRenderLoop" + + .section __TEXT,__objc_methtype,cstring_literals +L_OBJC_METH_VAR_TYPE_.80: + .asciz "c" + .section __DATA,__objc_const .p2align 3, 0x0 __OBJC_$_INSTANCE_VARIABLES_MACHView: .long 32 - .long 10 + .long 14 .quad _OBJC_IVAR_$_MACHView._keyDown_block - .quad L_OBJC_METH_VAR_NAME_.53 - .quad L_OBJC_METH_VAR_TYPE_.54 + .quad L_OBJC_METH_VAR_NAME_.62 + .quad L_OBJC_METH_VAR_TYPE_.63 .long 3 .long 8 .quad _OBJC_IVAR_$_MACHView._keyUp_block - .quad L_OBJC_METH_VAR_NAME_.55 - .quad L_OBJC_METH_VAR_TYPE_.54 + .quad L_OBJC_METH_VAR_NAME_.64 + .quad L_OBJC_METH_VAR_TYPE_.63 .long 3 .long 8 .quad _OBJC_IVAR_$_MACHView._flagsChanged_block - .quad L_OBJC_METH_VAR_NAME_.56 - .quad L_OBJC_METH_VAR_TYPE_.54 + .quad L_OBJC_METH_VAR_NAME_.65 + .quad L_OBJC_METH_VAR_TYPE_.63 .long 3 .long 8 .quad _OBJC_IVAR_$_MACHView._mouseMoved_block - .quad L_OBJC_METH_VAR_NAME_.57 - .quad L_OBJC_METH_VAR_TYPE_.54 + .quad L_OBJC_METH_VAR_NAME_.66 + .quad L_OBJC_METH_VAR_TYPE_.63 .long 3 .long 8 .quad _OBJC_IVAR_$_MACHView._mouseDown_block - .quad L_OBJC_METH_VAR_NAME_.58 - .quad L_OBJC_METH_VAR_TYPE_.54 + .quad L_OBJC_METH_VAR_NAME_.67 + .quad L_OBJC_METH_VAR_TYPE_.63 .long 3 .long 8 .quad _OBJC_IVAR_$_MACHView._mouseUp_block - .quad L_OBJC_METH_VAR_NAME_.59 - .quad L_OBJC_METH_VAR_TYPE_.54 + .quad L_OBJC_METH_VAR_NAME_.68 + .quad L_OBJC_METH_VAR_TYPE_.63 .long 3 .long 8 .quad _OBJC_IVAR_$_MACHView._scrollWheel_block - .quad L_OBJC_METH_VAR_NAME_.60 - .quad L_OBJC_METH_VAR_TYPE_.54 + .quad L_OBJC_METH_VAR_NAME_.69 + .quad L_OBJC_METH_VAR_TYPE_.63 .long 3 .long 8 .quad _OBJC_IVAR_$_MACHView._magnify_block - .quad L_OBJC_METH_VAR_NAME_.61 - .quad L_OBJC_METH_VAR_TYPE_.54 + .quad L_OBJC_METH_VAR_NAME_.70 + .quad L_OBJC_METH_VAR_TYPE_.63 .long 3 .long 8 .quad _OBJC_IVAR_$_MACHView._insertText_block - .quad L_OBJC_METH_VAR_NAME_.62 - .quad L_OBJC_METH_VAR_TYPE_.54 + .quad L_OBJC_METH_VAR_NAME_.71 + .quad L_OBJC_METH_VAR_TYPE_.63 + .long 3 + .long 8 + .quad _OBJC_IVAR_$_MACHView._render_block + .quad L_OBJC_METH_VAR_NAME_.72 + .quad L_OBJC_METH_VAR_TYPE_.63 .long 3 .long 8 .quad _OBJC_IVAR_$_MACHView.trackingArea - .quad L_OBJC_METH_VAR_NAME_.63 - .quad L_OBJC_METH_VAR_TYPE_.64 + .quad L_OBJC_METH_VAR_NAME_.73 + .quad L_OBJC_METH_VAR_TYPE_.74 + .long 3 + .long 8 + .quad _OBJC_IVAR_$_MACHView.m_displaySource + .quad L_OBJC_METH_VAR_NAME_.75 + .quad L_OBJC_METH_VAR_TYPE_.76 .long 3 .long 8 + .quad _OBJC_IVAR_$_MACHView.m_displayLink + .quad L_OBJC_METH_VAR_NAME_.77 + .quad L_OBJC_METH_VAR_TYPE_.78 + .long 3 + .long 8 + .quad _OBJC_IVAR_$_MACHView._hasRenderLoop + .quad L_OBJC_METH_VAR_NAME_.79 + .quad L_OBJC_METH_VAR_TYPE_.80 + .long 0 + .long 1 .p2align 3, 0x0 __OBJC_CLASS_RO_$_MACHView: .long 388 .long 8 - .long 88 + .long 113 .space 4 - .quad L_OBJC_CLASS_NAME_.27 + .quad L_OBJC_CLASS_NAME_.35 .quad L_OBJC_CLASS_NAME_ .quad __OBJC_$_INSTANCE_METHODS_MACHView .quad 0 diff --git a/app_kit_manual.zig b/app_kit_manual.zig index bccfee4..e5a188a 100644 --- a/app_kit_manual.zig +++ b/app_kit_manual.zig @@ -54,3 +54,5 @@ pub const NibName = *String; pub const WindowFrameAutosaveName = *String; pub const AccessibilityParameterizedAttributeName = *String; pub const UserInterfaceItemIdentifier = *String; + +pub extern const NSDefaultRunLoopMode: RunLoopMode; diff --git a/build.zig.zon b/build.zig.zon index 11eae62..893421c 100644 --- a/build.zig.zon +++ b/build.zig.zon @@ -1,6 +1,7 @@ .{ .name = "mach-objc", .version = "0.0.0", + .mach_zig_version = "2024.11.0-mach", .paths = .{ "src", "build.zig", diff --git a/core_video_manual.zig b/core_video_manual.zig new file mode 100644 index 0000000..7b8d5df --- /dev/null +++ b/core_video_manual.zig @@ -0,0 +1,64 @@ +const cf = @import("core_foundation.zig"); +const ns = @import("foundation.zig"); + +// ------------------------------------------------------------------------------------------------ +// Types + +// CVDisplayLink.h +pub const CGDirectDisplayID = u32; +pub const CVDisplayLinkRef = opaque {}; +pub const CVReturn = i32; +pub const CVTime = extern struct { + flags: i32, + timeScale: i32, + timeValue: i64, +}; +pub const CVTimeStamp = extern struct { + flags: u64, + hostTime: u64, + rateScalar: f32, + reserved: u64, + smpteTime: CVSMPTETime, + version: u32, + videoRefreshPeriod: i64, + videoTime: i64, + videoTimeScale: i32, +}; + +pub const CVSMPTETime = extern struct { + counter: u32, + flags: u32, + frames: i16, + hours: i16, + minutes: i16, + seconds: i16, + subframeDivisor: i16, + subframes: i16, + type: i32, +}; +pub const CGError = i32; + +// ------------------------------------------------------------------------------------------------ +// Functions + +// CVDisplayLink.h +extern fn CVDisplayLinkCreateWithCGDisplay(CGDirectDisplayID, *CVDisplayLinkRef) CVReturn; +pub const displayLinkWithCGDisplay = CVDisplayLinkCreateWithCGDisplay; + +extern fn CVDisplayLinkGetNominalOutputVideoRefreshPeriod(*CVDisplayLinkRef) CVTime; +pub const getNominalOutputVideoRefreshPeriod = CVDisplayLinkGetNominalOutputVideoRefreshPeriod; + +extern fn CGGetOnlineDisplayList(i32, ?[*]CGDirectDisplayID, *i32) CGError; +pub const getOnlineDisplayList = CGGetOnlineDisplayList; + +extern fn CGMainDisplayID() CGDirectDisplayID; +pub const mainDisplayID = CGMainDisplayID; + +extern fn CVDisplayLinkSetOutputCallback( + *CVDisplayLinkRef, + *const fn (*CVDisplayLinkRef, *CVTimeStamp, *CVTimeStamp, u64, *u64, ?*anyopaque) callconv(.C) void, +) CVReturn; +pub const setOutputCallback = CVDisplayLinkSetOutputCallback; + +extern fn CVDisplayLinkStart(*CVDisplayLinkRef) CVReturn; +pub const displayLinkStart = CVDisplayLinkStart; diff --git a/generator.zig b/generator.zig index b55671d..5b05ccf 100644 --- a/generator.zig +++ b/generator.zig @@ -942,7 +942,7 @@ pub const Converter = struct { // ------------------------------------------------------------------------------------------------ -const prefixes = [_][]const u8{ "CA", "CF", "CG", "MTK", "MTL", "NS" }; +const prefixes = [_][]const u8{ "CA", "CF", "CG", "MTK", "MTL", "NS", "CV" }; pub fn getNamespace(id: []const u8) []const u8 { for (prefixes) |prefix| { @@ -1911,6 +1911,13 @@ fn generateCoreMIDI(generator: anytype) !void { // TODO: generate everything needed to replace https://github.com/hexops/mach/pull/1196/files#diff-0bf7b1323cd692a01ead7d43a082b7dec001f9b2fc0ded1b1c0bd6d750578456 } +fn generateCoreVideo(generator: anytype) !void { + generator.namespace = "CV"; + generator.allow_methods = &.{ + //[2][]const u8{ "NS", "copy" }, + }; +} + fn generateAppKit(generator: anytype) !void { generator.namespace = "NS"; generator.allow_methods = &.{ @@ -1923,6 +1930,7 @@ fn generateAppKit(generator: anytype) !void { [2][]const u8{ "NSApplication", "run" }, [2][]const u8{ "NSApplication", "setActivationPolicy" }, [2][]const u8{ "NSApplication", "activateIgnoringOtherApps" }, + [2][]const u8{ "NSApplication", "nextEventMatchingMask:untilDate:inMode:dequeue" }, [2][]const u8{ "NSWindow", "initWithContentRect:styleMask:backing:defer:screen" }, [2][]const u8{ "NSWindow", "isReleasedWhenClosed" }, @@ -1995,6 +2003,8 @@ fn generateAppKit(generator: anytype) !void { [2][]const u8{ "NSEvent", "phase" }, [2][]const u8{ "NSEvent", "addLocalMonitorForEventsMatchingMask:handler" }, + [2][]const u8{ "NSDate", "dateWithTimeIntervalSinceNow" }, + [2][]const u8{ "NSDictionary", "" }, [2][]const u8{ "NSScreen", "screens" }, @@ -2031,7 +2041,7 @@ fn generateAppKit(generator: anytype) !void { // try generator.addInterface("NSDockTile"); try generator.addInterface("NSAppearance"); try generator.addInterface("NSEvent"); - // try generator.addInterface("NSDate"); + try generator.addInterface("NSDate"); // try generator.addInterface("NSGraphicsContext"); // try generator.addInterface("NSDocument"); // try generator.addInterface("NSData"); @@ -2116,6 +2126,7 @@ fn generateAppKit(generator: anytype) !void { // try generator.addInterface("NSTouch"); try generator.addInterface("NSTrackingArea"); try generator.addEnum("NSTrackingAreaOptions"); + try generator.addEnum("NSRunLoopMode"); // try generator.addInterface("NSURLHandle"); // try generator.addInterface("NSUndoManager"); // try generator.addInterface("NSWindowController"); @@ -2256,7 +2267,7 @@ fn usage() void { \\mach-objc-generator [options] \\ \\Options: - \\ --framework Metal,AVFAudio,CoreMIDI,AppKit which code to generate + \\ --framework Metal,AVFAudio,CoreMIDI,AppKit,CoreVideo which code to generate \\ --help \\ , .{}); @@ -2267,6 +2278,7 @@ const Framework = enum { avf_audio, core_midi, app_kit, + core_video, }; pub fn main() anyerror!void { @@ -2292,6 +2304,7 @@ pub fn main() anyerror!void { if (std.mem.eql(u8, args[i], "AVFAudio")) break :blk .avf_audio; if (std.mem.eql(u8, args[i], "CoreMIDI")) break :blk .core_midi; if (std.mem.eql(u8, args[i], "AppKit")) break :blk .app_kit; + if (std.mem.eql(u8, args[i], "CoreVideo")) break :blk .core_video; usage(); std.process.exit(1); }; @@ -2343,6 +2356,7 @@ pub fn main() anyerror!void { .avf_audio => try generateAVFAudio(&generator), .core_midi => try generateCoreMIDI(&generator), .app_kit => try generateAppKit(&generator), + .core_video => try generateCoreVideo(&generator), } try generator.generate(); } diff --git a/src/app_kit.zig b/src/app_kit.zig index e05a50a..2c6fa60 100644 --- a/src/app_kit.zig +++ b/src/app_kit.zig @@ -3,7 +3,6 @@ const cf = @import("core_foundation.zig"); const ns = @import("foundation.zig"); const cg = @import("core_graphics.zig"); const objc = @import("objc.zig"); -const std = @import("std"); pub const applicationMain = NSApplicationMain; extern fn NSApplicationMain(argc: c_int, argv: [*]*c_char) c_int; @@ -37,6 +36,7 @@ pub const PrintInfoAttributeKey = *String; pub const Rect = cg.Rect; pub const Point = cg.Point; pub const Size = cg.Size; +pub const RunLoopMode = *String; pub const PrinterPaperName = *String; pub const PrintJobDispositionValue = *String; pub const InterfaceStyle = UInteger; @@ -55,7 +55,6 @@ pub const WindowFrameAutosaveName = *String; pub const AccessibilityParameterizedAttributeName = *String; pub const UserInterfaceItemIdentifier = *String; -pub const RunLoopMode = *String; pub extern const NSDefaultRunLoopMode: RunLoopMode; pub const TrackingAreaOptions = UInteger; @@ -109,7 +108,7 @@ pub const EventMaskSmartMagnify: EventMask = 4294967296; pub const EventMaskPressure: EventMask = 17179869184; pub const EventMaskDirectTouch: EventMask = 137438953472; pub const EventMaskChangeMode: EventMask = 274877906944; -pub const EventMaskAny: EventMask = std.math.maxInt(UInteger); +pub const EventMaskAny: EventMask = 0; pub const BackingStoreType = UInteger; pub const BackingStoreRetained: BackingStoreType = 0; @@ -136,42 +135,6 @@ pub const EventPhaseEnded: EventPhase = 8; pub const EventPhaseCancelled: EventPhase = 16; pub const EventPhaseMayBegin: EventPhase = 32; -pub const EventType = UInteger; -pub const EventTypeLeftMouseDown: EventType = 1; -pub const EventTypeLeftMouseUp: EventType = 2; -pub const EventTypeRightMouseDown: EventType = 3; -pub const EventTypeRightMouseUp: EventType = 4; -pub const EventTypeMouseMoved: EventType = 5; -pub const EventTypeLeftMouseDragged: EventType = 6; -pub const EventTypeRightMouseDragged: EventType = 7; -pub const EventTypeMouseEntered: EventType = 8; -pub const EventTypeMouseExited: EventType = 9; -pub const EventTypeKeyDown: EventType = 10; -pub const EventTypeKeyUp: EventType = 11; -pub const EventTypeFlagsChanged: EventType = 12; -pub const EventTypeAppKitDefined: EventType = 13; -pub const EventTypeSystemDefined: EventType = 14; -pub const EventTypeApplicationDefined: EventType = 15; -pub const EventTypePeriodic: EventType = 16; -pub const EventTypeCursorUpdate: EventType = 17; -pub const EventTypeScrollWheel: EventType = 22; -pub const EventTypeTabletPoint: EventType = 23; -pub const EventTypeTabletProximity: EventType = 24; -pub const EventTypeOtherMouseDown: EventType = 25; -pub const EventTypeOtherMouseUp: EventType = 26; -pub const EventTypeOtherMouseDragged: EventType = 27; -pub const EventTypeGesture: EventType = 29; -pub const EventTypeMagnify: EventType = 30; -pub const EventTypeSwipe: EventType = 31; -pub const EventTypeRotate: EventType = 18; -pub const EventTypeBeginGesture: EventType = 19; -pub const EventTypeEndGesture: EventType = 20; -pub const EventTypeSmartMagnify: EventType = 32; -pub const EventTypeQuickLook: EventType = 33; -pub const EventTypePressure: EventType = 34; -pub const EventTypeDirectTouch: EventType = 37; -pub const EventTypeChangeMode: EventType = 38; - pub const WindowStyleMask = UInteger; pub const WindowStyleMaskBorderless: WindowStyleMask = 0; pub const WindowStyleMaskTitled: WindowStyleMask = 1; @@ -209,17 +172,11 @@ pub const Application = opaque { pub fn sharedApplication() *Application { return objc.msgSend(@This().InternalInfo.class(), "sharedApplication", *Application, .{}); } - pub fn delegate(self_: *@This()) ?*ApplicationDelegate { - return objc.msgSend(self_, "delegate", ?*ApplicationDelegate, .{}); - } pub fn setDelegate(self_: *@This(), delegate_: ?*ApplicationDelegate) void { return objc.msgSend(self_, "setDelegate:", void, .{delegate_}); } - pub fn nextEventMatchingMask(self_: *@This(), mask_: EventMask, expiration_: ?*Date, run_loop_mode_: RunLoopMode, dequeue_: bool) ?*Event { - return objc.msgSend(self_, "nextEventMatchingMask:untilDate:inMode:dequeue:", ?*Event, .{mask_, expiration_, run_loop_mode_, dequeue_}); - } - pub fn sendEvent(self_: *@This(), event_: *Event) void { - return objc.msgSend(self_, "sendEvent:", void, .{event_}); + pub fn nextEventMatchingMask_untilDate_inMode_dequeue(self_: *@This(), mask_: EventMask, expiration_: ?*Date, mode_: RunLoopMode, deqFlag_: bool) ?*Event { + return objc.msgSend(self_, "nextEventMatchingMask:untilDate:inMode:dequeue:", ?*Event, .{ mask_, expiration_, mode_, deqFlag_ }); } }; @@ -234,22 +191,6 @@ pub const Responder = opaque { pub const allocInit = InternalInfo.allocInit; }; -pub const Date = opaque { - pub const InternalInfo = objc.ExternClass("NSDate", @This(), Responder, &.{}); - pub const as = InternalInfo.as; - pub const retain = InternalInfo.retain; - pub const release = InternalInfo.release; - pub const autorelease = InternalInfo.autorelease; - pub const new = InternalInfo.new; - pub const alloc = InternalInfo.alloc; - pub const allocInit = InternalInfo.allocInit; - - - pub fn distantPast() *Date { - return objc.msgSend(@This().InternalInfo.class(), "distantPast", *Date, .{}); - } -}; - pub const Window = opaque { pub const InternalInfo = objc.ExternClass("NSWindow", @This(), Responder, &.{}); pub const as = InternalInfo.as; @@ -436,9 +377,6 @@ pub const Event = opaque { pub fn phase(self_: *@This()) EventPhase { return objc.msgSend(self_, "phase", EventPhase, .{}); } - pub fn getType(self_: *@This()) EventType { - return objc.msgSend(self_, "type", EventType, .{}); - } pub fn T_modifierFlags() EventModifierFlags { return objc.msgSend(@This().InternalInfo.class(), "modifierFlags", EventModifierFlags, .{}); } @@ -447,6 +385,21 @@ pub const Event = opaque { } }; +pub const Date = opaque { + pub const InternalInfo = objc.ExternClass("NSDate", @This(), ObjectInterface, &.{}); + pub const as = InternalInfo.as; + pub const retain = InternalInfo.retain; + pub const release = InternalInfo.release; + pub const autorelease = InternalInfo.autorelease; + pub const new = InternalInfo.new; + pub const alloc = InternalInfo.alloc; + pub const allocInit = InternalInfo.allocInit; + + pub fn dateWithTimeIntervalSinceNow(secs_: TimeInterval) *@This() { + return objc.msgSend(@This().InternalInfo.class(), "dateWithTimeIntervalSinceNow:", *@This(), .{secs_}); + } +}; + pub const View = opaque { pub const InternalInfo = objc.ExternClass("NSView", @This(), Responder, &.{}); pub const as = InternalInfo.as; @@ -457,21 +410,6 @@ pub const View = opaque { pub const alloc = InternalInfo.alloc; pub const allocInit = InternalInfo.allocInit; - pub fn addSubView(self_: *@This(), subView_: *@This()) void { - return objc.msgSend(self_, "addSubview:", void, .{subView_}); - } - pub fn setFrameOrigin(self_: *@This(), point_: Point) void { - return objc.msgSend(self_, "setFrameOrigin:", void, .{point_}); - } - pub fn setFrameSize(self_: *@This(), size_: Size) void { - return objc.msgSend(self_, "setFrameSize:", void, .{size_}); - } - pub fn setBoundsOrigin(self_: *@This(), point_: Point) void { - return objc.msgSend(self_, "setBoundsOrigin:", void, .{point_}); - } - pub fn setBoundsSize(self_: *@This(), size_: Size) void { - return objc.msgSend(self_, "setBoundsSize:", void, .{size_}); - } pub fn initWithFrame(self_: *@This(), frameRect_: Rect) *@This() { return objc.msgSend(self_, "initWithFrame:", *@This(), .{frameRect_}); } @@ -481,12 +419,6 @@ pub const View = opaque { pub fn setLayer(self_: *@This(), layer_: *ca.Layer) void { return objc.msgSend(self_, "setLayer:", void, .{layer_}); } - pub fn setWantsLayer(self_: *@This(), wants_layer_: bool) void { - return objc.msgSend(self_, "setWantsLayer:", void, .{wants_layer_}); - } - pub fn window(self_: *@This()) *Window { - return objc.msgSend(self_, "window", *Window, .{}); - } }; pub const Color = opaque { diff --git a/src/core_graphics.zig b/src/core_graphics.zig index 561672e..2494462 100644 --- a/src/core_graphics.zig +++ b/src/core_graphics.zig @@ -1,6 +1,7 @@ const builtin = @import("builtin"); pub const ColorSpaceRef = *opaque {}; +pub const CGDisplayModeRef = *opaque {}; pub const Float = if (builtin.target.ptrBitWidth() == 64) f64 else f32; @@ -18,3 +19,5 @@ pub const Rect = extern struct { origin: Point, size: Size, }; + +extern fn CGDisplayModeGetRefreshRate(CGDisplayModeRef) Float; diff --git a/src/core_video.zig b/src/core_video.zig new file mode 100644 index 0000000..7b8d5df --- /dev/null +++ b/src/core_video.zig @@ -0,0 +1,64 @@ +const cf = @import("core_foundation.zig"); +const ns = @import("foundation.zig"); + +// ------------------------------------------------------------------------------------------------ +// Types + +// CVDisplayLink.h +pub const CGDirectDisplayID = u32; +pub const CVDisplayLinkRef = opaque {}; +pub const CVReturn = i32; +pub const CVTime = extern struct { + flags: i32, + timeScale: i32, + timeValue: i64, +}; +pub const CVTimeStamp = extern struct { + flags: u64, + hostTime: u64, + rateScalar: f32, + reserved: u64, + smpteTime: CVSMPTETime, + version: u32, + videoRefreshPeriod: i64, + videoTime: i64, + videoTimeScale: i32, +}; + +pub const CVSMPTETime = extern struct { + counter: u32, + flags: u32, + frames: i16, + hours: i16, + minutes: i16, + seconds: i16, + subframeDivisor: i16, + subframes: i16, + type: i32, +}; +pub const CGError = i32; + +// ------------------------------------------------------------------------------------------------ +// Functions + +// CVDisplayLink.h +extern fn CVDisplayLinkCreateWithCGDisplay(CGDirectDisplayID, *CVDisplayLinkRef) CVReturn; +pub const displayLinkWithCGDisplay = CVDisplayLinkCreateWithCGDisplay; + +extern fn CVDisplayLinkGetNominalOutputVideoRefreshPeriod(*CVDisplayLinkRef) CVTime; +pub const getNominalOutputVideoRefreshPeriod = CVDisplayLinkGetNominalOutputVideoRefreshPeriod; + +extern fn CGGetOnlineDisplayList(i32, ?[*]CGDirectDisplayID, *i32) CGError; +pub const getOnlineDisplayList = CGGetOnlineDisplayList; + +extern fn CGMainDisplayID() CGDirectDisplayID; +pub const mainDisplayID = CGMainDisplayID; + +extern fn CVDisplayLinkSetOutputCallback( + *CVDisplayLinkRef, + *const fn (*CVDisplayLinkRef, *CVTimeStamp, *CVTimeStamp, u64, *u64, ?*anyopaque) callconv(.C) void, +) CVReturn; +pub const setOutputCallback = CVDisplayLinkSetOutputCallback; + +extern fn CVDisplayLinkStart(*CVDisplayLinkRef) CVReturn; +pub const displayLinkStart = CVDisplayLinkStart; diff --git a/src/main.zig b/src/main.zig index 1ad4173..a0b0268 100644 --- a/src/main.zig +++ b/src/main.zig @@ -8,6 +8,7 @@ pub const foundation = @import("foundation.zig"); pub const metal = @import("metal.zig"); pub const quartz_core = @import("quartz_core.zig"); pub const app_kit = @import("app_kit.zig"); +pub const core_video = @import("core_video.zig"); pub const mach = struct { pub const AppDelegate = opaque { @@ -70,6 +71,14 @@ pub const mach = struct { return objc.msgSend(self_, "initWithFrame:", *@This(), .{frameRect_}); } + pub fn initWithFrame_withRenderLoop(self_: *@This(), frameRect_: app_kit.Rect, withRenderLoop_: bool) *@This() { + return objc.msgSend(self_, "initWithFrame:withRenderLoop:", *@This(), .{ frameRect_, withRenderLoop_ }); + } + + pub fn stopRenderLoop(self_: *@This()) void { + return objc.msgSend(self_, "stopRenderLoop", void, .{}); + } + pub fn currentDrawable(self_: *@This()) ?*quartz_core.MetalDrawable { return objc.msgSend(self_, "currentDrawable", ?*quartz_core.MetalDrawable, .{}); } @@ -81,6 +90,14 @@ pub const mach = struct { return objc.msgSend(self_, "setLayer:", void, .{layer_}); } + pub fn setBlock_render(self: *View, block: *foundation.Block(fn () void)) void { + method_render(self, block); + } + const method_render = @extern( + *const fn (*View, *foundation.Block(fn () void)) callconv(.C) void, + .{ .name = "\x01-[MACHView setBlock_render:]" }, + ); + pub fn setBlock_keyDown(self: *View, block: *foundation.Block(fn (*app_kit.Event) void)) void { method_keyDown(self, block); } diff --git a/update.sh b/update.sh index 98a88e0..e6c6185 100755 --- a/update.sh +++ b/update.sh @@ -60,6 +60,16 @@ cat app_kit_manual.zig > src/app_kit.zig ./zig-out/bin/generator --framework AppKit >> src/app_kit.zig rm headers.json headers.m +rm -f src/core_video.zig +echo "Generating CoreVideo" +echo " +#include +" > headers.m +clang headers.m -F ./xcode-frameworks/Frameworks -Xclang -ast-dump=json -fsyntax-only -Wno-deprecated-declarations -Wno-availability > headers.json +cat core_video_manual.zig > src/core_video.zig +./zig-out/bin/generator --framework CoreVideo >> src/core_video.zig +rm headers.json headers.m + zig fmt . # TODO: generate src/foundation/ns.zig