NSOpenGLView Class Reference

Inherits from
Conforms to
Framework
/System/Library/Frameworks/AppKit.framework
Availability
Available in OS X v10.0 and later.
Companion guide
Declared in
NSOpenGLView.h
Related sample code

Overview

An NSOpenGLView object maintains an NSOpenGLPixelFormat and NSOpenGLContext object into which OpenGL calls can be rendered. The view provides methods for accessing and managing the NSOpenGLPixelFormat and NSOpenGLContext objects, as well as notifications of visible region changes.

An NSOpenGLView object cannot have subviews. You can, however, divide a single NSOpenGLView into multiple rendering areas using the glViewport function.

When creating an NSOpenGLView object in Interface Builder, you use the inspector window to specify the pixel format attributes you want for the view. Only those attributes listed in the Interface Builder inspector are set when the view is instantiated.

Tasks

Initializing an NSOpenGLView

Managing the NSOpenGLPixelFormat

Managing the NSOpenGLContext

Managing the Visible Region

Displaying

Class Methods

defaultPixelFormat

Returns a default NSOpenGLPixelFormat object.

+ (NSOpenGLPixelFormat *)defaultPixelFormat
Return Value

A pixel format object with no attributes set.

Discussion

Typically used with the initializer initWithFrame:pixelFormat:, this object has no attributes set.

Availability
  • Available in OS X v10.0 and later.
Declared In
NSOpenGLView.h

Instance Methods

clearGLContext

Releases the NSOpenGLContext object associated with the view.

- (void)clearGLContext
Discussion

If necessary, this method calls the clearDrawable method of the context object before releasing it.

Availability
  • Available in OS X v10.0 and later.
Declared In
NSOpenGLView.h

initWithFrame:pixelFormat:

Returns an NSOpenGLView object initialized with the specified frame rectangle and pixel format.

- (id)initWithFrame:(NSRect)frameRect pixelFormat:(NSOpenGLPixelFormat *)format
Parameters
frameRect

The frame rectangle for the view, specified in the coordinate system of its parent view.

format

The pixel format to use when creating the view's NSOpenGLContext object.

Return Value

An initialized NSOpenGLView object, or nil if the object could not be initialized.

Availability
  • Available in OS X v10.0 and later.
Declared In
NSOpenGLView.h

isOpaque

Returns a Boolean value that indicates whether the view is opaque.

- (BOOL)isOpaque
Return Value

The NSOpenGLView class returns YES, overriding the default behavior of the NSView class.

Discussion

An OpenGL view completely covers its frame rectangle when drawing itself.

See Also
  • – opaqueAncestor
  • – displayRectIgnoringOpacity:
  • – displayIfNeededIgnoringOpacity
  • – displayIfNeededInRectIgnoringOpacity:

openGLContext

Returns the NSOpenGLContext object associated with the receiver.

- (NSOpenGLContext *)openGLContext
Return Value

The OpenGL context object of the receiver.

Discussion

If the receiver has no associated context object, a new NSOpenGLContext object is created and returned. The new object is initialized with the receiver’s pixel format information.

Availability
  • Available in OS X v10.0 and later.
Declared In
NSOpenGLView.h

pixelFormat

Returns the NSOpenGLPixelFormat object associated with the receiver.

- (NSOpenGLPixelFormat *)pixelFormat
Return Value

The receiver's pixel format object.

Availability
  • Available in OS X v10.0 and later.
Declared In
NSOpenGLView.h

prepareOpenGL

Used by subclasses to initialize OpenGL state.

- (void)prepareOpenGL
Discussion

This method is called only once after the OpenGL context is made the current context. Subclasses that implement this method can use it to configure the Open GL state in preparation for drawing.

Availability
  • Available in OS X v10.3 and later.
Declared In
NSOpenGLView.h

reshape

Called by Cocoa when the view's visible rectangle or bounds change.

- (void)reshape
Discussion

Cocoa typically calls this method during scrolling and resize operations but may call it in other situations when the view's rectangles change. The default implementation does nothing. You can override this method if you need to adjust the viewport and display frustum.

Availability
  • Available in OS X v10.0 and later.
Declared In
NSOpenGLView.h

setOpenGLContext:

Sets the NSOpenGLContext object associated with the receiver.

- (void)setOpenGLContext:(NSOpenGLContext *)context
Parameters
context

The OpenGL context object to associate with the receiver.

Discussion

This method releases the current OpenGL context, if one already exists. You must also call the setView: method of the context object to synchronize the context with the view.

Availability
  • Available in OS X v10.0 and later.
Declared In
NSOpenGLView.h

setPixelFormat:

Sets the receiver’s NSOpenGLPixelFormat object to the specified object.

- (void)setPixelFormat:(NSOpenGLPixelFormat *)pixelFormat
Parameters
pixelFormat

The new pixel format object for the receiver.

Availability
  • Available in OS X v10.0 and later.
Declared In
NSOpenGLView.h

update

Called by Cocoa when the view’s window moves or when the view itself moves or is resized.

- (void)update
Discussion

The default implementation simply calls the update method of NSOpenGLContext. You can override this method to perform additional update operations on the context or if you need to add locks for multithreaded access to multiple contexts.

Availability
  • Available in OS X v10.0 and later.
Declared In
NSOpenGLView.h