Skip to content

Instantly share code, notes, and snippets.

@tad-iizuka
Created September 27, 2017 04:53
Show Gist options
  • Save tad-iizuka/0b8401378f3deec826875400994591db to your computer and use it in GitHub Desktop.
Save tad-iizuka/0b8401378f3deec826875400994591db to your computer and use it in GitHub Desktop.
GLKView delegate
func glkView(_ view: GLKView, drawIn rect: CGRect) {
if isSimulator() {
return
}
let start = NSDate()
glClearColor(0.0, 0.0, 0.0, 1.0)
glClear(GLbitfield(GL_COLOR_BUFFER_BIT))
glEnable(GLenum(GL_BLEND))
glBlendFunc(GLenum(GL_ONE), GLenum(GL_ONE_MINUS_SRC_ALPHA))
let contentScaledRect = rect.applying(CGAffineTransform(scaleX: view.contentScaleFactor, y: view.contentScaleFactor))
let scale = min(contentScaledRect.width / self.nativeSize.width, contentScaledRect.height / self.nativeSize.height)
self.ciFilter.setValue(scale, forKey: kCIInputScaleFactorKey)
var displayRect : CGRect! = CGRect(x:0, y:0, width:self.nativeSize.width, height:self.nativeSize.height).applying(CGAffineTransform(scaleX: scale, y: scale))
displayRect.origin.x = (contentScaledRect.width - displayRect.width) / 2.0
displayRect.origin.y = (contentScaledRect.height - displayRect.height) / 2.0
self.ciFilter.setValue(self.temperature.value, forKey: kCIInputNeutralTemperatureKey)
self.ciFilter.setValue(self.tint.value, forKey: kCIInputNeutralTintKey)
let filter = CIFilter(name: "CIColorControls")
filter?.setValue(self.ciFilter.outputImage!, forKey: kCIInputImageKey)
filter?.setValue(self.saturation.value, forKey: kCIInputSaturationKey)
filter?.setValue(self.brightness.value, forKey: kCIInputBrightnessKey)
filter?.setValue(self.contrast.value, forKey: kCIInputContrastKey)
self.renderedImage = (filter?.outputImage)!
self.ciContext.draw(self.renderedImage, in:displayRect, from:(self.renderedImage.extent))
print(NSDate().timeIntervalSince(start as Date))
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment