70 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			70 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
|  | #ifdef KINC_METAL
 | ||
|  | #import <MetalKit/MTKView.h>
 | ||
|  | #else
 | ||
|  | #import <Cocoa/Cocoa.h>
 | ||
|  | #import <OpenGL/CGLContext.h>
 | ||
|  | #import <OpenGL/OpenGL.h>
 | ||
|  | #import <OpenGL/gl.h>
 | ||
|  | #import <OpenGL/glext.h>
 | ||
|  | #import <OpenGL/glu.h>
 | ||
|  | #endif
 | ||
|  | 
 | ||
|  | #ifdef KINC_METAL
 | ||
|  | 
 | ||
|  | struct kinc_g5_render_target; | ||
|  | 
 | ||
|  | @interface BasicOpenGLView : MTKView { | ||
|  | @private | ||
|  | 	id<MTLDevice> device; | ||
|  | 	id<MTLCommandQueue> commandQueue; | ||
|  | 	id<MTLLibrary> library; | ||
|  | } | ||
|  | 
 | ||
|  | #else
 | ||
|  | 
 | ||
|  | // (DK) context sharing
 | ||
|  | // www.cocoabuilder.com/archive/cocoa/29573-sharing-opengl-context.html
 | ||
|  | // basically:
 | ||
|  | //  -don't use NSOpenGLView, but implement all that by hand
 | ||
|  | //  -use -initWithFormat:shareContext: (NSOpenGLContext) to setup the shared contexts
 | ||
|  | @interface BasicOpenGLView : NSOpenGLView { | ||
|  | } | ||
|  | 
 | ||
|  | #endif
 | ||
|  | 
 | ||
|  | #ifdef KINC_METAL
 | ||
|  | - (CAMetalLayer *)metalLayer; | ||
|  | - (id<MTLDevice>)metalDevice; | ||
|  | - (id<MTLLibrary>)metalLibrary; | ||
|  | - (id<MTLCommandQueue>)metalQueue; | ||
|  | #else
 | ||
|  | - (void)prepareOpenGL; | ||
|  | - (void)switchBuffers; | ||
|  | + (NSOpenGLPixelFormat *)basicPixelFormat; | ||
|  | #endif
 | ||
|  | 
 | ||
|  | - (void)keyDown:(NSEvent *)theEvent; | ||
|  | - (void)keyUp:(NSEvent *)theEvent; | ||
|  | 
 | ||
|  | - (void)mouseDown:(NSEvent *)theEvent; | ||
|  | - (void)mouseUp:(NSEvent *)theEvent; | ||
|  | - (void)mouseMoved:(NSEvent *)theEvent; | ||
|  | - (void)mouseDragged:(NSEvent *)theEvent; | ||
|  | - (void)rightMouseDown:(NSEvent *)theEvent; | ||
|  | - (void)rightMouseUp:(NSEvent *)theEvent; | ||
|  | - (void)rightMouseDragged:(NSEvent *)theEvent; | ||
|  | - (void)scrollWheel:(NSEvent *)theEvent; | ||
|  | - (NSDragOperation)draggingEntered:(id<NSDraggingInfo>)sender; | ||
|  | - (BOOL)performDragOperation:(id<NSDraggingInfo>)sender; | ||
|  | 
 | ||
|  | - (void)update; // moved or resized
 | ||
|  | 
 | ||
|  | - (BOOL)acceptsFirstResponder; | ||
|  | - (BOOL)becomeFirstResponder; | ||
|  | - (BOOL)resignFirstResponder; | ||
|  | 
 | ||
|  | - (id)initWithFrame:(NSRect)frameRect; | ||
|  | - (void)resize:(NSSize)size; | ||
|  | 
 | ||
|  | @end |