ios :: NitGLKView
ios :: NitGLKView :: content_scale_factor
Scale factor from logical coordinate space to the device coordinate spaceios :: NitGLKView :: defaultinit
ios :: NitGLKView :: multiple_touch_enabled
Is multi-touch supported?ios :: NitGLKView :: multiple_touch_enabled=
Is multi-touch supported?ios :: NitGLKView :: should_autorotate
Should the view auto rotate to follow the device orientation?ios :: NitGLKView :: supported_interface_orientations
Ifshould_autorotate, what are the supported interface orientations?
			ios :: NitGLKView :: touches_began
Hook on a new touch eventios :: NitGLKView :: touches_cancelled
Hook on a touch event cancellationios :: NitGLKView :: touches_ended
Hook on the end of a touch eventios :: NitGLKView :: touches_moved
Hook when a touch movesios :: NitGLKView :: view_will_transition_to_size
Hook when size of the view is about to change towidth by height
			ios $ NitGLKView :: SELF
Type of this instance, automatically specialized in every classgamnit :: input_ios $ NitGLKView :: content_scale_factor
Scale factor from logical coordinate space to the device coordinate spacegamnit :: input_ios $ NitGLKView :: touches_began
Hook on a new touch eventgamnit :: input_ios $ NitGLKView :: touches_ended
Hook on the end of a touch eventgamnit :: input_ios $ NitGLKView :: touches_moved
Hook when a touch movescore :: Object :: class_factory
Implementation used byget_class to create the specific class.
			ios :: NitGLKView :: content_scale_factor
Scale factor from logical coordinate space to the device coordinate spacecore :: Object :: defaultinit
ios :: NitGLKView :: defaultinit
core :: Object :: is_same_instance
Return true ifself and other are the same instance (i.e. same identity).
			core :: Object :: is_same_serialized
Isself the same as other in a serialization context?
			core :: Object :: is_same_type
Return true ifself and other have the same dynamic type.
			ios :: NitGLKView :: multiple_touch_enabled
Is multi-touch supported?ios :: NitGLKView :: multiple_touch_enabled=
Is multi-touch supported?core :: Object :: output_class_name
Display class name on stdout (debug only).ios :: NitGLKView :: should_autorotate
Should the view auto rotate to follow the device orientation?ios :: NitGLKView :: supported_interface_orientations
Ifshould_autorotate, what are the supported interface orientations?
			ios :: NitGLKView :: touches_began
Hook on a new touch eventios :: NitGLKView :: touches_cancelled
Hook on a touch event cancellationios :: NitGLKView :: touches_ended
Hook on the end of a touch eventios :: NitGLKView :: touches_moved
Hook when a touch movesios :: NitGLKView :: view_will_transition_to_size
Hook when size of the view is about to change towidth by height
			
# OpenGL view controller
class NitGLKView
	private var native: NativeGLKViewController = setup(app.app_delegate)
	# Scale factor from logical coordinate space to the device coordinate space
	fun content_scale_factor: Float do return native.content_scale_factor
	# Width of the underlying framebuffer
	fun drawable_width: Int do return native.drawable_width
	# Height of the underlying framebuffer
	fun drawable_height: Int do return native.drawable_height
	# Bind the view framebuffer
	fun bind_drawable do native.bind_drawable
	private fun setup(app_delegate: AppDelegate): NativeGLKViewController
	import touches_began, touches_moved, touches_ended, touches_cancelled,
	update, should_autorotate, supported_interface_orientations,
	view_will_transition_to_size in "ObjC" `{
		app_delegate.window = [[UIWindow alloc] initWithFrame: [[UIScreen mainScreen] bounds]];
		app_delegate.window.backgroundColor = [UIColor whiteColor]; // TODO make configurable
		// Create EAGL context and view
		EAGLContext * context = [[EAGLContext alloc] initWithAPI: kEAGLRenderingAPIOpenGLES2];
		GLKView *view = [[GLKView alloc] initWithFrame: [[UIScreen mainScreen] bounds]];
		view.context = context;
		// Ask for antialiasing
		view.drawableMultisample = GLKViewDrawableMultisample4X;
		view.drawableDepthFormat = GLKViewDrawableDepthFormat24;
		GameViewController *cont = [[GameViewController alloc] init];
		cont.view = view;
		// Setup callbacks
		NitGLKView_incr_ref(self);
		cont.nit_glk_view = self;
		// Make our controller the root
		view.delegate = cont;
		[app_delegate.window setRootViewController: cont];
		// Enable the context
		[app_delegate.window makeKeyAndVisible];
		[EAGLContext setCurrentContext: context];
		[view bindDrawable];
		return cont;
	`}
	# Is multi-touch supported?
	fun multiple_touch_enabled: Bool do return native.multiple_touch_enabled
	# Is multi-touch supported?
	fun multiple_touch_enabled=(val: Bool) do native.multiple_touch_enabled = val
	# Should the view auto rotate to follow the device orientation?
	#
	# Defaults to `true`.
	fun should_autorotate: Bool do return true
	# If `should_autorotate`, what are the supported interface orientations?
	#
	# Redef to return values of Objective-C `UIInterfaceOrientationMask`
	fun supported_interface_orientations: Int do return 0
	# Hook to update the view content, called once per frame
	fun update do end
	# Hook on a new touch event
	fun touches_began(touches: NSSet_UITouch, event: UIEvent) do end
	# Hook when a touch moves
	fun touches_moved(touches: NSSet_UITouch, event: UIEvent) do end
	# Hook on the end of a touch event
	fun touches_ended(touches: NSSet_UITouch, event: UIEvent) do end
	# Hook on a touch event cancellation
	fun touches_cancelled(touches: NSSet_UITouch, event: UIEvent) do end
	# Hook when size of the view is about to change to `width` by `height`
	fun view_will_transition_to_size(width, height: Float) do end
end
					lib/ios/glkit.nit:93,1--178,3
				
redef class NitGLKView
	redef var content_scale_factor = super is lazy
	redef fun touches_began(touches, event)
	do app.accept_event(new GamnitIOSPointerEvent(event, touches.any_object, content_scale_factor, true, false))
	redef fun touches_moved(touches, event)
	do app.accept_event(new GamnitIOSPointerEvent(event, touches.any_object, content_scale_factor, true, true))
	redef fun touches_ended(touches, event)
	do app.accept_event(new GamnitIOSPointerEvent(event, touches.any_object, content_scale_factor, false, false))
	# TODO handle cancel
	#redef fun touches_cancelled(touches_event) do
	#do app.accept_event(new GamnitIOSPointerEvent(event, false, false))
end
					lib/gamnit/input_ios.nit:43,1--59,3