Skip to content

Instantly share code, notes, and snippets.

@superjohan
Created March 6, 2018 19:06
Show Gist options
  • Save superjohan/44dc83e5dabe4983d12afaf079e4c8d6 to your computer and use it in GitHub Desktop.
Save superjohan/44dc83e5dabe4983d12afaf079e4c8d6 to your computer and use it in GitHub Desktop.
little snippet for saving every frame in a scenekit render loop
if !self.shouldRender {
return
}
if self.imageCount == 4 * 60 {
self.showGroupLogo(showBoolean: NSNumber.init(value: true))
} else if self.imageCount == 6 * 60 {
self.showGroupLogo(showBoolean: NSNumber.init(value: false))
} else if self.imageCount == 10 * 60 {
self.setErrorState(errorStateBoolean: NSNumber.init(value: true))
} else if self.imageCount == 12 * 60 {
self.setErrorState(errorStateBoolean: NSNumber.init(value: false))
} else if self.imageCount == 16 * 60 {
self.showNameLogo(showBoolean: NSNumber.init(value: true))
} else if self.imageCount == 18 * 60 {
self.showNameLogo(showBoolean: NSNumber.init(value: false))
} else if self.imageCount == 22 * 60 {
self.setErrorState(errorStateBoolean: NSNumber.init(value: true))
} else if self.imageCount == 24 * 60 {
self.setErrorState(errorStateBoolean: NSNumber.init(value: false))
} else if self.imageCount == 28 * 60 {
self.setSilent1State(silentStateBoolean: NSNumber.init(value: true))
} else if self.imageCount == 30 * 60 {
self.setSilent1State(silentStateBoolean: NSNumber.init(value: false))
} else if self.imageCount == 32 * 60 {
self.setSilent2State(silentStateBoolean: NSNumber.init(value: true))
} else if self.imageCount == 34 * 60 {
self.setSilent2State(silentStateBoolean: NSNumber.init(value: false))
} else if self.imageCount == 36 * 60 {
self.endItAll()
self.shouldRender = false
}
if self.imageCount % 60 == 0 {
print("time to render a second: \(Date.timeIntervalSinceReferenceDate - self.secondStart)")
self.secondStart = Date.timeIntervalSinceReferenceDate
}
UIGraphicsBeginImageContextWithOptions(self.view.bounds.size, self.view.isOpaque, 0.0)
self.view.drawHierarchy(in: self.view.bounds, afterScreenUpdates: false)
let snapshotImageFromMyView = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
if let image = snapshotImageFromMyView {
if let data = UIImagePNGRepresentation(image) {
print("image \(self.imageCount)")
let paths = NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.documentDirectory, FileManager.SearchPathDomainMask.userDomainMask, true)
let path = URL(fileURLWithPath: paths[0]).appendingPathComponent("\(self.imageCount).png")
do {
try data.write(to: path)
} catch {}
}
}
self.imageCount += 1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment