簡體   English   中英

使用GLKit在-glkView:drawInRect中檢測-snapshot調用

[英]Detect -snapshot call in -glkView:drawInRect: using GLKit

我在尋找-glkView:drawInRect:可以檢測到它正在為-snapshot方法繪制,而不是正常的視圖向用戶顯示的方式。 這樣我就可以檢測到如何正確繪制視圖。 我嘗試檢測視圖的差異是將傳遞給-glkView:drawInRect:的視圖與GLKViewController的視圖進行比較:

// standard function GLKViewController
- (void)glkView:(GLKView *)view drawInRect:(CGRect)rect
{
    if ((self.view != view)) NSLog(@"drawing for snapshot");
    // draw code ...
}

但是沒有運氣。 我正在考慮的另一種方法是創建時,將設置一個布爾變量-snapshot被調用, -glkView:drawInRect:它已經引起了快照特定視圖后會重置。 但這似乎很臟,並且可能會導致多個錯誤,尤其是在以60 fps的速度繪制時。

您是否提供任何建議或示例來檢測-glkView:drawInRect:是否正在繪制-snapshot方法?

提前致謝

子類GLKView並將snapshot方法覆蓋為類似以下內容:

- (UIImage *)snapshot
{
    self.isDrawingSnapshot = YES;

    UIImage *result = [super snapshot];

    self.isDrawingSnapshot = NO;
    return result;
}

除了屬性,您還可以使用自定義委托來通知您的視圖控制器或發布NSNotification

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM