Class CGL
- java.lang.Object
-
- org.lwjgl.opengl.CGL
-
public class CGL extends java.lang.Object
Native bindings to CGL.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class and Description static class
CGL.Functions
Contains the function pointers loaded fromGL.getFunctionProvider()
.
-
Field Summary
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method and Description static int
CGLChoosePixelFormat(int[] attribs, org.lwjgl.PointerBuffer pix, int[] npix)
Array version of:ChoosePixelFormat
static int
CGLChoosePixelFormat(java.nio.IntBuffer attribs, org.lwjgl.PointerBuffer pix, java.nio.IntBuffer npix)
Creates a pixel format object that satisfies the constraints of the specified buffer and renderer attributes.static int
CGLClearDrawable(long ctx)
Disassociates a rendering context from any drawable objects attached to it.static int
CGLCopyContext(long src, long dst, int mask)
Copies the specified state variables from one rendering context to another.static int
CGLCreateContext(long pix, long share, org.lwjgl.PointerBuffer ctx)
Creates a CGL rendering context.static int
CGLCreatePBuffer(int width, int height, int target, int internalFormat, int max_level, org.lwjgl.PointerBuffer pbuffer)
Creates a pixel buffer of the specified size, compatible with the specified texture target.static int
CGLDescribePBuffer(long obj, int[] width, int[] height, int[] target, int[] internalFormat, int[] mipmap)
Array version of:DescribePBuffer
static int
CGLDescribePBuffer(long obj, java.nio.IntBuffer width, java.nio.IntBuffer height, java.nio.IntBuffer target, java.nio.IntBuffer internalFormat, java.nio.IntBuffer mipmap)
Retrieves information that describes the specified pixel buffer object.static int
CGLDescribePixelFormat(long pix, int pix_num, int attrib, int[] value)
Array version of:DescribePixelFormat
static int
CGLDescribePixelFormat(long pix, int pix_num, int attrib, java.nio.IntBuffer value)
Retrieves the values of an attribute associated with a pixel format object.static int
CGLDescribeRenderer(long rend, int rend_num, int prop, int[] value)
Array version of:DescribeRenderer
static int
CGLDescribeRenderer(long rend, int rend_num, int prop, java.nio.IntBuffer value)
Obtains the value associated with a renderer property.static int
CGLDestroyContext(long ctx)
Frees the resources associated with a rendering context.static int
CGLDestroyPBuffer(long pbuffer)
Releases the resources associated with a pixel buffer object.static int
CGLDestroyPixelFormat(long pix)
Frees the memory associated with a pixel format object.static int
CGLDestroyRendererInfo(long rend)
Frees resources associated with a renderer information object.static int
CGLDisable(long ctx, int pname)
Disables an option for a rendering context.static int
CGLEnable(long ctx, int pname)
Enables an option for a rendering context.static java.lang.String
CGLErrorString(int error)
Returns a string that describes the specified result code.static int
CGLFlushDrawable(long ctx)
Copies the back buffer of a double-buffered context to the front buffer.static int
CGLGetContextRetainCount(long ctx)
Returns the current retain count of a CGL rendering context.static long
CGLGetCurrentContext()
Returns the current rendering context.static int
CGLGetGlobalOption(int pname, int[] params)
Array version of:GetGlobalOption
static int
CGLGetGlobalOption(int pname, java.nio.IntBuffer params)
Retrieves the value of a global option.static int
CGLGetOffScreen(long ctx, int[] width, int[] height, int[] rowbytes, org.lwjgl.PointerBuffer baseaddr)
Array version of:GetOffScreen
static int
CGLGetOffScreen(long ctx, java.nio.IntBuffer width, java.nio.IntBuffer height, java.nio.IntBuffer rowbytes, org.lwjgl.PointerBuffer baseaddr)
Retrieves an offscreen buffer and its parameters for a specified rendering context.static int
CGLGetParameter(long ctx, int pname, int[] params)
Array version of:GetParameter
static int
CGLGetParameter(long ctx, int pname, java.nio.IntBuffer params)
Retrieves the value of a rendering context parameter.static int
CGLGetPBuffer(long ctx, org.lwjgl.PointerBuffer pbuffer, int[] face, int[] level, int[] screen)
Array version of:GetPBuffer
static int
CGLGetPBuffer(long ctx, org.lwjgl.PointerBuffer pbuffer, java.nio.IntBuffer face, java.nio.IntBuffer level, java.nio.IntBuffer screen)
Retrieves a pixel buffer and its parameters for a specified rendering context.static int
CGLGetPBufferRetainCount(long pbuffer)
Returns the retain count of a pixel buffer object.static long
CGLGetPixelFormat(long ctx)
Retrieves the current pixel format associated with a CGL rendering context.static int
CGLGetPixelFormatRetainCount(long pix)
Returns the retain count of a pixel format object.static long
CGLGetShareGroup(long ctx)
Returns the sharegroup of the specified rendering context.static void
CGLGetVersion(int[] majorvers, int[] minorvers)
Array version of:GetVersion
static void
CGLGetVersion(java.nio.IntBuffer majorvers, java.nio.IntBuffer minorvers)
Gets the major and minor version numbers of the CGL library.static int
CGLGetVirtualScreen(long ctx, int[] screen)
Array version of:GetVirtualScreen
static int
CGLGetVirtualScreen(long ctx, java.nio.IntBuffer screen)
Gets the current virtual screen number associated with a rendering context.static int
CGLIsEnabled(long ctx, int pname, int[] enable)
Array version of:IsEnabled
static int
CGLIsEnabled(long ctx, int pname, java.nio.IntBuffer enable)
Reports whether an option is enabled for a rendering context.static int
CGLLockContext(long context)
Locks a CGL rendering context.static int
CGLQueryRendererInfo(int display_mask, org.lwjgl.PointerBuffer rend, int[] nrend)
Array version of:QueryRendererInfo
static int
CGLQueryRendererInfo(int display_mask, org.lwjgl.PointerBuffer rend, java.nio.IntBuffer nrend)
Creates a renderer information object that contains properties and values for renderers able to drive all the specified displays in a given display mask.static void
CGLReleaseContext(long ctx)
Decrements the retain count on a CGL rendering context.static void
CGLReleasePBuffer(long pbuffer)
Releases the resources associated with a pixel buffer object.static void
CGLReleasePixelFormat(long pix)
Decrements the reference count of a pixel format object.static long
CGLRetainContext(long ctx)
Increments the retain count on a CGL rendering context.static long
CGLRetainPBuffer(long pbuffer)
Increments the retain count on a pixel buffer object.static long
CGLRetainPixelFormat(long pix)
Increments the receiver's reference count.static int
CGLSetCurrentContext(long context)
Sets the specified rendering context as the current rendering context.static int
CGLSetFullScreen(long ctx)
Attaches a rendering context to its full-screen drawable object.static int
CGLSetFullScreenOnDisplay(long ctx, int display_mask)
Attaches a rendering context to a full-screen drawable object." +static int
CGLSetGlobalOption(int pname, int param)
Sets the value of a global option.static int
CGLSetGlobalOption(int pname, int[] params)
Array version of:SetGlobalOption
static int
CGLSetGlobalOption(int pname, java.nio.IntBuffer params)
Sets the value of a global option.static int
CGLSetOffScreen(long ctx, int width, int height, int rowbytes, java.nio.ByteBuffer baseaddr)
Attaches a rendering context to an offscreen buffer.static int
CGLSetParameter(long ctx, int pname, int param)
Sets the value of a rendering context parameter.static int
CGLSetParameter(long ctx, int pname, int[] params)
Array version of:SetParameter
static int
CGLSetParameter(long ctx, int pname, java.nio.IntBuffer params)
Sets the value of a rendering context parameter.static int
CGLSetPBuffer(long ctx, long pbuffer, int face, int level, int screen)
Attaches a pixel buffer object to a rendering context.static int
CGLSetVirtualScreen(long ctx, int screen)
Forces subsequent OpenGL commands to the specified virtual screen.static int
CGLTexImagePBuffer(long ctx, long pbuffer, int source)
Binds the contents of a pixel buffer to a data source for a texture object.static int
CGLUnlockContext(long context)
Unlocks a CGL rendering context.static int
CGLUpdateContext(long ctx)
Synchronizes new renderer state to that of the application context
-
-
-
Field Detail
-
kCGLPFAAllRenderers, kCGLPFATripleBuffer, kCGLPFADoubleBuffer, kCGLPFAStereo, kCGLPFAColorSize, kCGLPFAAlphaSize, kCGLPFADepthSize, kCGLPFAStencilSize, kCGLPFAMinimumPolicy, kCGLPFAMaximumPolicy, kCGLPFASampleBuffers, kCGLPFASamples, kCGLPFAColorFloat, kCGLPFAMultisample, kCGLPFASupersample, kCGLPFASampleAlpha, kCGLPFARendererID, kCGLPFASingleRenderer, kCGLPFANoRecovery, kCGLPFAAccelerated, kCGLPFAClosestPolicy, kCGLPFABackingStore, kCGLPFABackingVolatile, kCGLPFADisplayMask, kCGLPFAAllowOfflineRenderers, kCGLPFAAcceleratedCompute, kCGLPFAOpenGLProfile, kCGLPFASupportsAutomaticGraphicsSwitching, kCGLPFAVirtualScreenCount, kCGLPFAAuxBuffers, kCGLPFAAccumSize, kCGLPFAOffScreen, kCGLPFAAuxDepthStencil, kCGLPFAWindow, kCGLPFACompliant, kCGLPFAPBuffer, kCGLPFARemotePBuffer, kCGLPFARobust, kCGLPFAMPSafe, kCGLPFAMultiScreen, kCGLPFAFullScreen
Attribute names forChoosePixelFormat
andDescribePixelFormat
.
-
kCGLRPOffScreen, kCGLRPRendererID, kCGLRPAccelerated, kCGLRPBackingStore, kCGLRPWindow, kCGLRPCompliant, kCGLRPDisplayMask, kCGLRPBufferModes, kCGLRPColorModes, kCGLRPAccumModes, kCGLRPDepthModes, kCGLRPStencilModes, kCGLRPMaxAuxBuffers, kCGLRPMaxSampleBuffers, kCGLRPMaxSamples, kCGLRPSampleModes, kCGLRPSampleAlpha, kCGLRPVideoMemory, kCGLRPTextureMemory, kCGLRPGPUVertProcCapable, kCGLRPGPUFragProcCapable, kCGLRPRendererCount, kCGLRPOnline, kCGLRPAcceleratedCompute, kCGLRPVideoMemoryMegabytes, kCGLRPTextureMemoryMegabytes, kCGLRPRobust, kCGLRPMPSafe, kCGLRPMultiScreen, kCGLRPFullScreen
Property names forDescribeRenderer
.
-
kCGLCESwapRectangle, kCGLCESwapLimit, kCGLCERasterization, kCGLCEStateValidation, kCGLCESurfaceBackingSize, kCGLCEDisplayListOptimization, kCGLCEMPEngine
-
kCGLCPSwapRectangle, kCGLCPSwapInterval, kCGLCPDispatchTableSize, kCGLCPClientStorage, kCGLCPSurfaceTexture, kCGLCPSurfaceOrder, kCGLCPSurfaceOpacity, kCGLCPSurfaceBackingSize, kCGLCPSurfaceSurfaceVolatile, kCGLCPReclaimResources, kCGLCPCurrentRendererID, kCGLCPGPUVertexProcessing, kCGLCPGPUFragmentProcessing, kCGLCPHasDrawable, kCGLCPMPSwapsInFlight
Parameter names forSetParameter
andGetParameter
.
-
kCGLGOFormatCacheSize, kCGLGOClearFormatCache, kCGLGORetainRenderers, kCGLGOResetLibrary, kCGLGOUseErrorHandler, kCGLGOUseBuildCache
Option names forSetGlobalOption
andGetGlobalOption
.
-
kCGLOGLPVersion_Legacy, kCGLOGLPVersion_3_2_Core
OpenGL Implementation Profiles.
-
kCGLNoError, kCGLBadAttribute, kCGLBadProperty, kCGLBadPixelFormat, kCGLBadRendererInfo, kCGLBadContext, kCGLBadDrawable, kCGLBadDisplay, kCGLBadState, kCGLBadValue, kCGLBadMatch, kCGLBadEnumeration, kCGLBadOffScreen, kCGLBadFullScreen, kCGLBadWindow, kCGLBadAddress, kCGLBadCodeModule, kCGLBadAlloc, kCGLBadConnection
CGL error return values.
-
kCGLMonoscopicBit, kCGLStereoscopicBit, kCGLSingleBufferBit, kCGLDoubleBufferBit, kCGLTripleBufferBit
Buffer modes.
-
kCGL0Bit, kCGL1Bit, kCGL2Bit, kCGL3Bit, kCGL4Bit, kCGL5Bit, kCGL6Bit, kCGL8Bit, kCGL10Bit, kCGL12Bit, kCGL16Bit, kCGL24Bit, kCGL32Bit, kCGL48Bit, kCGL64Bit, kCGL96Bit, kCGL128Bit
Depth and stencil buffer depths.
-
kCGLRGB444Bit, kCGLARGB4444Bit, kCGLRGB444A8Bit, kCGLRGB555Bit, kCGLARGB1555Bit, kCGLRGB555A8Bit, kCGLRGB565Bit, kCGLRGB565A8Bit, kCGLRGB888Bit, kCGLARGB8888Bit, kCGLRGB888A8Bit, kCGLRGB101010Bit, kCGLARGB2101010Bit, kCGLRGB101010_A8Bit, kCGLRGB121212Bit, kCGLARGB12121212Bit, kCGLRGB161616Bit, kCGLRGBA16161616Bit, kCGLRGBFloat64Bit, kCGLRGBAFloat64Bit, kCGLRGBFloat128Bit, kCGLRGBAFloat128Bit, kCGLRGBFloat256Bit, kCGLRGBAFloat256Bit
Color and accumulation buffer formats.
-
kCGLSupersampleBit, kCGLMultisampleBit
Sampling modes.
-
-
Method Detail
-
CGLGetCurrentContext
public static long CGLGetCurrentContext()
Returns the current rendering context. If there is none, returnsNULL
.
-
CGLSetCurrentContext
public static int CGLSetCurrentContext(long context)
Sets the specified rendering context as the current rendering context.There can be only one current rendering context. Subsequent OpenGL rendering calls operate on the current rendering context to modify the drawable object associated with it.
You can use AGL macros to bypass the current rendering context mechanism and maintain your own current rendering context.
A context is current on a per-thread basis. Multiple threads must serialize calls into the same context.
- Parameters:
context
- the rendering context to set as the current rendering context. PassNULL
to release the current rendering context without assigning a new one.
-
CGLGetShareGroup
public static long CGLGetShareGroup(long ctx)
Returns the sharegroup of the specified rendering context.- Parameters:
ctx
- a rendering context
-
CGLChoosePixelFormat
public static int CGLChoosePixelFormat(java.nio.IntBuffer attribs, org.lwjgl.PointerBuffer pix, java.nio.IntBuffer npix)
Creates a pixel format object that satisfies the constraints of the specified buffer and renderer attributes.- Parameters:
attribs
- a 0 terminated array that contains a list of buffer and renderer attributes. Attributes can be Boolean or integer. If an attribute is integer, you must supply the desired value immediately following the attribute. If the attribute is Boolean, do not supply a value because its presence in the attributes array implies a true value. One of:pix
- the memory address of a pixel format object. On return, points to a new pixel format object that contains pixel format information and a list of virtual screens. If there are no pixel formats or virtual screens that satisfy the constraints of the buffer and renderer attributes, the value of pix is set toNULL
.npix
- on return, points to the number of virtual screens referenced by pix. If pix isNULL
, the value ofnpix
is set to 0.
-
CGLDestroyPixelFormat
public static int CGLDestroyPixelFormat(long pix)
Frees the memory associated with a pixel format object. Calling this function is equivalent to callingReleasePixelFormat
.- Parameters:
pix
- the pixel format object to destroy
-
CGLDescribePixelFormat
public static int CGLDescribePixelFormat(long pix, int pix_num, int attrib, java.nio.IntBuffer value)
Retrieves the values of an attribute associated with a pixel format object.- Parameters:
pix
- the pixel format object to querypix_num
- the virtual screen number whose attribute value you want to retrieve. This value must be between 0 and the number of virtual screens minus one.attrib
- the attribute whose value you want to obtain. One of:value
- on return, points to the value of the attribute
-
CGLReleasePixelFormat
public static void CGLReleasePixelFormat(long pix)
Decrements the reference count of a pixel format object.The system retains the pixel format object when you call the function
CreateContext
, so you can release a pixel format object immediately after passing it to the context creation function.Each call to CGLReleasePixelFormat decreases the reference count by 1. If the reference count reaches 0, the pixel format object is destroyed.
- Parameters:
pix
- the pixel format object whose reference count should be decremented
-
CGLRetainPixelFormat
public static long CGLRetainPixelFormat(long pix)
Increments the receiver's reference count.Each call to CGLRetainPixelFormat increases the reference count by 1. Each call to CGLRetainPixelFormat must be matched with a call to
ReleasePixelFormat
.- Parameters:
pix
- the pixel format object whose reference count should be incremented
-
CGLGetPixelFormatRetainCount
public static int CGLGetPixelFormatRetainCount(long pix)
Returns the retain count of a pixel format object.- Parameters:
pix
- a pixel format object
-
CGLQueryRendererInfo
public static int CGLQueryRendererInfo(int display_mask, org.lwjgl.PointerBuffer rend, java.nio.IntBuffer nrend)
Creates a renderer information object that contains properties and values for renderers able to drive all the specified displays in a given display mask.- Parameters:
display_mask
- a bit field that contains the bitwise OR of OpenGL display masks returned by the CGDisplayIDToOpenGLDisplayMask function. If you want to obtain information for all renderers in the system you must call CGLQueryRendererInfo once for each display bit.rend
- the memory address of a renderer information object. On return, points to a renderer information object that describes all renderers that are able to drive the displays specified by thedisplay_mask
parameter. Ifdisplay_mask
does not specify any displays, the value ofrend
is set toNULL
. You must callDestroyRendererInfo
when you no longer need this object.nrend
- on return, points to the number of renderers described in the renderer information object. Ifdisplay_mask
does not specify any displays, the value ofnrend
is set to 0.
-
CGLDestroyRendererInfo
public static int CGLDestroyRendererInfo(long rend)
Frees resources associated with a renderer information object.- Parameters:
rend
- the renderer information object to destroy
-
CGLDescribeRenderer
public static int CGLDescribeRenderer(long rend, int rend_num, int prop, java.nio.IntBuffer value)
Obtains the value associated with a renderer property.- Parameters:
rend
- an opaque renderer information object that contains a description of the renderer capabilities you want to inspect. You can obtain a renderer information object by calling the functionQueryRendererInfo
. You must callDestroyRendererInfo
when you no longer need this object.rend_num
- the index of the renderer inside the renderer information object — a value between 0 and the number of renderers minus one. The number of renderers can be obtained by callingDescribeRenderer
, passing inrend
, renderer number 0, and the renderer propertyRPRendererCount
.prop
- the renderer property whose value you want to obtain. One of:value
- on return, points to the value of the requested property
-
CGLCreateContext
public static int CGLCreateContext(long pix, long share, org.lwjgl.PointerBuffer ctx)
Creates a CGL rendering context.- Parameters:
pix
- a pixel format object created by calling the functionChoosePixelFormat
share
- the rendering context with which to share the OpenGL object state — including texture objects, programs and shader display lists, vertex array objects, vertex buffer objects, pixel buffer objects, and frame buffer objects — and the object state associated which each of these object types. PassNULL
to indicate that no sharing is to take place.ctx
- the memory address of a context object. On return, points to a new context object with the buffers and attributes specified by thepix
parameter. If the context can not be created as specified, the value ofctx
is set toNULL
.
-
CGLDestroyContext
public static int CGLDestroyContext(long ctx)
Frees the resources associated with a rendering context.Starting in Mac OS 10.5, CGL rendering contexts are reference counted. For compatibility reasons, calling CGLDestroyContext clears the drawable associated with the rendering context. Calling CGLDestroyContext is the equivalent of calling both
ClearDrawable
andReleaseContext
.- Parameters:
ctx
- the rendering context to destroy
-
CGLCopyContext
public static int CGLCopyContext(long src, long dst, int mask)
Copies the specified state variables from one rendering context to another.- Parameters:
src
- the source rendering contextdst
- the destination rendering contextmask
- a mask that specifies the state variables to copy. Pass a bit field that contains the bitwise OR of the state variable names that you want to copy. Use the symbolic mask constants that are passed to the OpenGL functionPushAttrib
. To copy as many state variables as possible, supply the constantALL_ATTRIB_BITS
.
-
CGLRetainContext
public static long CGLRetainContext(long ctx)
Increments the retain count on a CGL rendering context.Each call to CGLRetainContext increases the retain count by 1. To prevent memory leaks, each retain call must be balanced with a call to
ReleaseContext
.- Parameters:
ctx
- the rendering context to be retained- Returns:
- the same context that was passed into the function.
-
CGLReleaseContext
public static void CGLReleaseContext(long ctx)
Decrements the retain count on a CGL rendering context.Each call to CGLReleaseContext decreases the retain count by 1.
When the retain count reaches 0, all resources associated with the rendering context are freed. If the rendering context that you pass is the current rendering context and it is freed, the current context is set to
NULL
and there is no current rendering context after the function executes. After the context is freed, you must make sure you do not use the destroyed rendering context. This includes using CGL macros in which the rendering context is explicitly passed to OpenGL.- Parameters:
ctx
- the rendering context to be released
-
CGLGetContextRetainCount
public static int CGLGetContextRetainCount(long ctx)
Returns the current retain count of a CGL rendering context.- Parameters:
ctx
- the CGL rendering context whose retain count you wish to discover
-
CGLGetPixelFormat
public static long CGLGetPixelFormat(long ctx)
Retrieves the current pixel format associated with a CGL rendering context.The pixel format object is not retained before being returned to your application. If your application needs to maintain this object, it should call
RetainPixelFormat
.- Parameters:
ctx
- the CGL rendering context whose format you want to receive
-
CGLCreatePBuffer
public static int CGLCreatePBuffer(int width, int height, int target, int internalFormat, int max_level, org.lwjgl.PointerBuffer pbuffer)
Creates a pixel buffer of the specified size, compatible with the specified texture target.This function does not have any knowledge of OpenGL contexts or pixel format objects and does not specifically allocate the storage needed for the actual pixel buffer. These operations occur when you call the function
SetPBuffer
.You can determine the dimensional limits of a pixel buffer by calling the OpenGL function glGetInteger. You can find the maximum size supported by querying GL_MAX_VIEWPORT_DIMS and the minimum size by querying GL_MIN_PBUFFER_VIEWPORT_DIMS_APPLE, which returns two integer values (similar to GL_MAX_VIEWPORT_DIMS). All pixel buffer dimensions that you request with the function aglCreatePBuffer should fall within these limits (inclusively) and should comply with any limitations imposed by the texture target you select.
The maximum viewport size supported in OS X is quite large. You should take into consideration the amount of video or system memory required to support the requested pixel buffer size, including additional memory needed for multiple buffers and options such as multisampling.
Starting in OS X v10.5, pixel buffer objects are reference counted. Pixel buffer objects are created with a reference count of 1 and are destroyed when the last reference to the object is released.
Deprecated in OS X v10.7.
- Parameters:
width
- the width, in pixels, of the pixel bufferheight
- the height, in pixels, of the pixel buffertarget
- a constant that specifies the type of the pixel buffer target texture. One of:TEXTURE_2D
TEXTURE_CUBE_MAP
TEXTURE_RECTANGLE
internalFormat
- a constant that specifies the internal color format of the pixel buffer. The format controls whether the alpha channel of the pixel buffer is used for texturing operations. One of:RGB
GL11.GL_RGBA
max_level
- the maximum level of mipmap detail allowable. Pass 0 for a pixel buffer that is not using mipmaps. The value passed should never exceed the actual maximum number of mipmap levels that can be represented with the given width and height.pbuffer
- on return, points to a new pixel buffer object
-
CGLDestroyPBuffer
public static int CGLDestroyPBuffer(long pbuffer)
Releases the resources associated with a pixel buffer object.Starting in OS X v10.5, pixel buffer objects are reference counted. Calling this function is equivalent to calling
ReleasePBuffer
.Deprecated in OS X v10.7.
- Parameters:
pbuffer
- the pixel buffer object whose resources you want to release
-
CGLDescribePBuffer
public static int CGLDescribePBuffer(long obj, java.nio.IntBuffer width, java.nio.IntBuffer height, java.nio.IntBuffer target, java.nio.IntBuffer internalFormat, java.nio.IntBuffer mipmap)
Retrieves information that describes the specified pixel buffer object.The width, height, texture target, and internal texture color format of a pixel buffer object are set at its creation and cannot be changed without destroying and recreating the object. The level is set when the pixel buffer object is attached to a rendering context by calling the function
SetPBuffer
.Deprecated in OS X v10.7.
- Parameters:
obj
- a pointer to the pixel buffer objectwidth
- on return, points to the width, in pixels, of the pixel bufferheight
- on return, points to the height, in pixels, of the pixel buffertarget
- on return, points to a constant that specifies the pixel buffer texture targetinternalFormat
- on return, points to a constant that specifies the internal color format of the pixel buffermipmap
- on return, points to the mipmap level of the pixel buffer or 0 if it doesn't use mipmaps
-
CGLTexImagePBuffer
public static int CGLTexImagePBuffer(long ctx, long pbuffer, int source)
Binds the contents of a pixel buffer to a data source for a texture object.You must generate and bind a texture name (using standard OpenGL texturing calls) that is compatible with the pixel buffer texture target. Don't supply a texture object that was used previously for nonpixel buffer texturing operations unless you first call glDeleteTextures to regenerate the texture name.
If you modify the content of a pixel buffer that uses mipmap levels, you must call this function again before drawing with the pixel buffer, to ensure that the content is synchronized with OpenGL. For pixel buffers without mipmaps, simply rebind to the texture object to synchronize content.
No OpenGL texturing calls that modify a pixel buffer texture content are permitted (such as glTexSubImage2D or glCopyTexImage2D) with the pixel buffer texture as the destination. It is permitted to use texturing commands to read data from a pixel buffer texture, such as glCopyTexImage2D, with the pixel buffer texture as the source. It is also legal to use OpenGL functions such as glReadPixels to read the contents of a pixel buffer directly through the pixel buffer context.
Note that texturing with the CGLTexImagePBuffer function can fail to produce the intended results without error in the same way other OpenGL texturing commands can normally fail. The function fails if you set an incompatible filter mode, do not enable the proper texture target, or other conditions described in the OpenGL specification.
You don't need to share a context to use a pixel buffer object as a texture source. You can use independent pixel format objects and OpenGL contexts for both the pixel buffer and the target drawable object without sharing resources, and still texture using a pixel buffer in the target context.
Deprecated in OS X v10.7.
- Parameters:
ctx
- a rendering context, which is the target context for the texture operation. This is the context that you plan to render content to. This is not the context attached to the pixel buffer.pbuffer
- a pixel buffer objectsource
- the source buffer to get the texture from, which should be a valid OpenGL buffer such as GL_FRONT or GL_BACK and should be compatible with the buffer and renderer attributes that you used to create the rendering context attached to the pixel buffer. This means that the pixel buffer must possess the buffer in question for the texturing operation to succeed.
-
CGLRetainPBuffer
public static long CGLRetainPBuffer(long pbuffer)
Increments the retain count on a pixel buffer object.Each call to CGLRetainPBuffer increases the retain count by 1. To prevent the pixel buffer object from being leaked, each retain call must be matched with a call to
ReleasePBuffer
.Deprecated in OS X v10.7.
- Parameters:
pbuffer
- the pixel buffer object whose retain count you wish to increment
-
CGLReleasePBuffer
public static void CGLReleasePBuffer(long pbuffer)
Releases the resources associated with a pixel buffer object.Starting in OS X v10.5, pixel buffer objects are reference counted. Calling this function is equivalent to calling CGLReleasePBuffer.
Deprecated in OS X v10.7.
- Parameters:
pbuffer
- the pixel buffer object whose resources you want to release
-
CGLGetPBufferRetainCount
public static int CGLGetPBufferRetainCount(long pbuffer)
Returns the retain count of a pixel buffer object.Deprecated in OS X v10.7.
- Parameters:
pbuffer
- the pixel buffer object whose retain count you wish to retrieve
-
CGLSetOffScreen
public static int CGLSetOffScreen(long ctx, int width, int height, int rowbytes, java.nio.ByteBuffer baseaddr)
Attaches a rendering context to an offscreen buffer.Before calling this function, you must set up the rendering context using a pixel format object created with the kCGLPFAOffScreen attribute. For more information about kCGLPFAOffScreen, see Buffer and Renderer Attributes.
After calling this function, subsequent OpenGL drawing is rendered into the offscreen buffer and the viewport of the rendering context is set to the full size of the offscreen area.
To exit offscreen mode, call
ClearDrawable
.To obtain functionality similar to offscreen mode on renderers that do not support it, attach the context to a hidden window and use the OpenGL function glReadPixels.
Deprecated in OS X v10.7.
- Parameters:
ctx
- a rendering contextwidth
- the width, in pixels, of the offscreen bufferheight
- the height, in pixels, of the offscreen bufferrowbytes
- the number of bytes per row of the offscreen buffer, which must be greater than or equal to width times bytes per pixelbaseaddr
- a pointer to a block of memory to use as the offscreen buffer. The size of the memory must be at leastrowbytes*height
bytes.
-
CGLGetOffScreen
public static int CGLGetOffScreen(long ctx, java.nio.IntBuffer width, java.nio.IntBuffer height, java.nio.IntBuffer rowbytes, org.lwjgl.PointerBuffer baseaddr)
Retrieves an offscreen buffer and its parameters for a specified rendering context.Deprecated in OS X v10.7.
- Parameters:
ctx
- a rendering contextwidth
- on return, points to the width, in pixels, of the offscreen buffer. If the rendering context is not attached to an offscreen drawable object, the value of width is set to 0.height
- on return, points to the height, in pixels, of the offscreen buffer. If the rendering context is not attached to an offscreen drawable object, the value of height is set to 0.rowbytes
- on return, points to the number of bytes per row of the offscreen buffer. If the context is not attached to an offscreen drawable object, the value of rowbytes is set to 0.baseaddr
- on return, points to the base address of the offscreen buffer. If the context is not attached to an offscreen drawable object, the value ofbaseaddr
is set toNULL
.
-
CGLSetFullScreen
public static int CGLSetFullScreen(long ctx)
Attaches a rendering context to its full-screen drawable object.Before calling this function, you must set up the rendering context using a pixel format object created with the kCGLPFAFullScreen attribute (see Buffer and Renderer Attributes). Some OpenGL renderers, such as the software renderer, do not support full-screen mode. After you call the function
ChoosePixelFormat
with the full-screen attribute, you need to check whether the pixel format object is created successfully.You must capture the display prior to entering full-screen mode and release it after exiting. After calling this function, subsequent OpenGL drawing is rendered into the entire screen. For more information, see OpenGL Programming Guide for Mac.
To exit full-screen mode, call
ClearDrawable
.Deprecated in OS X v10.7. Use
SetFullScreenOnDisplay
instead.- Parameters:
ctx
- a rendering context
-
CGLSetFullScreenOnDisplay
public static int CGLSetFullScreenOnDisplay(long ctx, int display_mask)
Attaches a rendering context to a full-screen drawable object." +This function obtains a drawable object that covers an entire screen and attaches it to the rendering context. A full-screen rendering context may allow the underlying renderer to provide better performance compared to a context associated with a window that partially covers the screen.
Prior to calling this function, your application should ensure that the context is capable of rendering to this display by querying the appropriate renderer properties. For more information, see
QueryRendererInfo
. Note that some renderers, including the software renderer, do not support full-screen mode.You must capture the screen prior to entering full-screen mode and release it after exiting. After calling this function, subsequent OpenGL drawing is rendered into the entire screen. For more information, see OpenGL Programming Guide for Mac.
To exit full-screen mode, call
ClearDrawable
.In OS X v10.6 or later, this function is not deprecated, but is usually not necessary. If your application creates a window that completely covers the screen, the system implicitly creates a full-screen instance, for the same potential performance benefit.
Deprecated in OS X v10.7.
- Parameters:
ctx
- a rendering contextdisplay_mask
- a bit field that contains the OpenGL display mask for the screen you wish the context to cover
-
CGLSetPBuffer
public static int CGLSetPBuffer(long ctx, long pbuffer, int face, int level, int screen)
Attaches a pixel buffer object to a rendering context.The first time you call this function for a specific pixel buffer object, the system creates the necessary buffers. The buffers are created to support the attributes dictated by the pixel format object used to create the rendering context and by the parameters used to create the pixel buffer object. The storage requirements for pixel buffer objects, which can be quite large, are very similar to the requirements for windows or views with OpenGL contexts attached. All drawable objects compete for the same scarce resources. This function can fail is there is not enough contiguous VRAM for each buffer. It's best to code defensively with a scheme that reduces resource consumption without causing the application to resort to failure. Unless, of course, failure is the only viable alternative.
The ability to attach a pixel buffer to a context is supported only on renderers that export GL_APPLE_pixel_buffer in the GL_EXTENSIONS string. Before calling this function, you should programmatically determine if it’s possible to attach a pixel buffer to a context by querying GL_EXTENSIONS in the context and looking for GL_APPLE_pixel_buffer. If that extension is not present, the renderer won’t allow setting the pixel buffer.
In order of performance, these are the renderers you should consider using when setting up a rendering context to attach to a pixel buffer:
- A hardware renderer.
- The generic render, but only with an offscreen pixel format and glTexSubImage.
- The Apple software renderer, which supports pixel buffers in OS X v10.4.8 and later.
Deprecated in OS X v10.7.
- Parameters:
ctx
- the rendering context to attach the pixel buffer topbuffer
- a pixel buffer objectface
- the cube map face to draw if the pixel buffer texture target type isTEXTURE_CUBE_MAP
; otherwise pass 0.level
- the mipmap level to draw. This must not exceed the maximum mipmap level set when the pixel buffer object was created. Pass 0 for a texture target that does not support mipmaps.screen
- a virtual screen value. The virtual screen determines the renderer OpenGL uses to draw to the pixel buffer object. For best performance, for a pixel buffer used as a texture source, you should supply the virtual screen value that results in using the same renderer used by the context that's the texturing target.
-
CGLGetPBuffer
public static int CGLGetPBuffer(long ctx, org.lwjgl.PointerBuffer pbuffer, java.nio.IntBuffer face, java.nio.IntBuffer level, java.nio.IntBuffer screen)
Retrieves a pixel buffer and its parameters for a specified rendering context.Deprecated in OS X v10.7.
- Parameters:
ctx
- a rendering contextpbuffer
- on return, points to the pixel buffer object attached to the rendering contextface
- on return, points to the cube map face that is set if the pixel buffer texture target type isTEXTURE_CUBE_MAP
; otherwise 0 for all other texture target types.level
- on return, points to the current mipmap level for drawingscreen
- on return, points to the current virtual screen number, as set by the last valid call toSetPBuffer
-
CGLClearDrawable
public static int CGLClearDrawable(long ctx)
Disassociates a rendering context from any drawable objects attached to it.- Parameters:
ctx
- a rendering context
-
CGLFlushDrawable
public static int CGLFlushDrawable(long ctx)
Copies the back buffer of a double-buffered context to the front buffer.To create a double-buffered context, specify the
PFADoubleBuffer
attribute when you create the pixel format object for the rendering context. If the backing store attribute is set to false, the buffers can be exchanged rather than copied. This is often the case in full-screen mode. If the receiver is not a double-buffered context, this call does nothing.If you set the swap interval attribute (
CPSwapInterval
) appropriately, the copy takes place during the vertical retrace of the display, rather than immediately after CGLFlushDrawable is called. An implicitFlush
operation is performed by CGLFlushDrawable before it returns. For optimal performance, an application should not call glFlush immediately before calling CGLFlushDrawable. Subsequent OpenGL commands can be issued immediately after calling CGLFlushDrawable, but are not executed until the buffer copy is completed.- Parameters:
ctx
- the context object
-
CGLEnable
public static int CGLEnable(long ctx, int pname)
Enables an option for a rendering context.- Parameters:
ctx
- a rendering contextpname
- the option to enable. One of:CESwapRectangle
CESwapLimit
CERasterization
CEStateValidation
CESurfaceBackingSize
CEDisplayListOptimization
CEMPEngine
-
CGLDisable
public static int CGLDisable(long ctx, int pname)
Disables an option for a rendering context.- Parameters:
ctx
- a rendering contextpname
- the option to disable. One of:CESwapRectangle
CESwapLimit
CERasterization
CEStateValidation
CESurfaceBackingSize
CEDisplayListOptimization
CEMPEngine
-
CGLIsEnabled
public static int CGLIsEnabled(long ctx, int pname, java.nio.IntBuffer enable)
Reports whether an option is enabled for a rendering context.- Parameters:
ctx
- a rendering contextpname
- the option to query. One of:CESwapRectangle
CESwapLimit
CERasterization
CEStateValidation
CESurfaceBackingSize
CEDisplayListOptimization
CEMPEngine
enable
- on return, enable is set to true if the option is enabled
-
CGLSetParameter
public static int CGLSetParameter(long ctx, int pname, java.nio.IntBuffer params)
Sets the value of a rendering context parameter.- Parameters:
ctx
- a rendering contextpname
- the parameter whose value you want to set. One of:params
- a pointer to the value to set the parameter to
-
CGLSetParameter
public static int CGLSetParameter(long ctx, int pname, int param)
Sets the value of a rendering context parameter.- Parameters:
ctx
- a rendering contextpname
- the parameter whose value you want to set. One of:
-
CGLGetParameter
public static int CGLGetParameter(long ctx, int pname, java.nio.IntBuffer params)
Retrieves the value of a rendering context parameter.- Parameters:
ctx
- a rendering contextpname
- the parameter whose value you want to retrieve. One of:params
- on return, points to the value of the parameter
-
CGLSetVirtualScreen
public static int CGLSetVirtualScreen(long ctx, int screen)
Forces subsequent OpenGL commands to the specified virtual screen.Setting the virtual screen forces the renderer associated with the virtual screen to process OpenGL commands issued to the specified context. Changing the virtual screen changes the current renderer. You should use this function only when it is necessary to override the default behavior. The current virtual screen is normally set automatically. Because the current virtual screen determines which OpenGL renderer is processing commands, the return values of all glGetXXX functions can be affected by the current virtual screen.
- Parameters:
ctx
- a rendering contextscreen
- a virtual screen number, which must be a value between 0 and the number of virtual screens minus one. The number of virtual screens available in a context can be obtained by calling the functionDescribePixelFormat
, passing in the pixel format object used to create the rendering context, 0 for the virtual screen number (pix_num
parameter), and the attribute constantPFAVirtualScreenCount
.
-
CGLGetVirtualScreen
public static int CGLGetVirtualScreen(long ctx, java.nio.IntBuffer screen)
Gets the current virtual screen number associated with a rendering context.The current virtual screen can change when a drawable object is moved or resized across graphics device boundaries. A change in the current virtual screen can affect the return values of some OpenGL functions and in most cases also means that the renderer has changed.
- Parameters:
ctx
- a rendering contextscreen
- on return, points to the virtual screen associated with the context. The value is always 0 on a single-display system and –1 if the function fails for any reason.
-
CGLUpdateContext
public static int CGLUpdateContext(long ctx)
Synchronizes new renderer state to that of the application context- Parameters:
ctx
- a rendering context
-
CGLSetGlobalOption
public static int CGLSetGlobalOption(int pname, java.nio.IntBuffer params)
Sets the value of a global option.- Parameters:
pname
- the name of the option whose value you want to set. One of:GOFormatCacheSize
GOClearFormatCache
GORetainRenderers
GOResetLibrary
GOUseErrorHandler
GOUseBuildCache
params
- the value to set the option to
-
CGLSetGlobalOption
public static int CGLSetGlobalOption(int pname, int param)
Sets the value of a global option.- Parameters:
pname
- the name of the option whose value you want to set. One of:GOFormatCacheSize
GOClearFormatCache
GORetainRenderers
GOResetLibrary
GOUseErrorHandler
GOUseBuildCache
-
CGLGetGlobalOption
public static int CGLGetGlobalOption(int pname, java.nio.IntBuffer params)
Retrieves the value of a global option.- Parameters:
pname
- the name of the option whose value you want to get. One of:GOFormatCacheSize
GOClearFormatCache
GORetainRenderers
GOResetLibrary
GOUseErrorHandler
GOUseBuildCache
params
- on return, a pointer to the value of the option
-
CGLLockContext
public static int CGLLockContext(long context)
Locks a CGL rendering context.The function CGLLockContext blocks the thread it is on until all other threads have unlocked the same context using the function
UnlockContext
. You can use CGLLockContext recursively. Context-specific CGL calls by themselves do not require locking, but you can guarantee serial processing for a group of calls by surrounding them with CGLLockContext and CGLUnlockContext. Keep in mind that calls from the OpenGL API (the API provided by the Architecture Review Board) require locking.Applications that use NSOpenGL classes with multithreading can lock contexts using the functions CGLLockContext and CGLUnlockContext. To perform rendering in a thread other than the main one, you can lock the context that you want to access and safely execute OpenGL commands. The locking calls must be placed around all OpenGL calls in all threads.
- Parameters:
context
- a rendering context
-
CGLUnlockContext
public static int CGLUnlockContext(long context)
Unlocks a CGL rendering context.- Parameters:
context
- the CGL context to unlock
-
CGLGetVersion
public static void CGLGetVersion(java.nio.IntBuffer majorvers, java.nio.IntBuffer minorvers)
Gets the major and minor version numbers of the CGL library.- Parameters:
majorvers
- on return, points to the major version number of the CGL libraryminorvers
- on return, points to the minor version number of the CGL library
-
CGLErrorString
public static java.lang.String CGLErrorString(int error)
Returns a string that describes the specified result code.- Parameters:
error
- the CGL result code constant returned from a CGL function. One of:
-
CGLChoosePixelFormat
public static int CGLChoosePixelFormat(int[] attribs, org.lwjgl.PointerBuffer pix, int[] npix)
Array version of:ChoosePixelFormat
-
CGLDescribePixelFormat
public static int CGLDescribePixelFormat(long pix, int pix_num, int attrib, int[] value)
Array version of:DescribePixelFormat
-
CGLQueryRendererInfo
public static int CGLQueryRendererInfo(int display_mask, org.lwjgl.PointerBuffer rend, int[] nrend)
Array version of:QueryRendererInfo
-
CGLDescribeRenderer
public static int CGLDescribeRenderer(long rend, int rend_num, int prop, int[] value)
Array version of:DescribeRenderer
-
CGLDescribePBuffer
public static int CGLDescribePBuffer(long obj, int[] width, int[] height, int[] target, int[] internalFormat, int[] mipmap)
Array version of:DescribePBuffer
-
CGLGetOffScreen
public static int CGLGetOffScreen(long ctx, int[] width, int[] height, int[] rowbytes, org.lwjgl.PointerBuffer baseaddr)
Array version of:GetOffScreen
-
CGLGetPBuffer
public static int CGLGetPBuffer(long ctx, org.lwjgl.PointerBuffer pbuffer, int[] face, int[] level, int[] screen)
Array version of:GetPBuffer
-
CGLIsEnabled
public static int CGLIsEnabled(long ctx, int pname, int[] enable)
Array version of:IsEnabled
-
CGLSetParameter
public static int CGLSetParameter(long ctx, int pname, int[] params)
Array version of:SetParameter
-
CGLGetParameter
public static int CGLGetParameter(long ctx, int pname, int[] params)
Array version of:GetParameter
-
CGLGetVirtualScreen
public static int CGLGetVirtualScreen(long ctx, int[] screen)
Array version of:GetVirtualScreen
-
CGLSetGlobalOption
public static int CGLSetGlobalOption(int pname, int[] params)
Array version of:SetGlobalOption
-
CGLGetGlobalOption
public static int CGLGetGlobalOption(int pname, int[] params)
Array version of:GetGlobalOption
-
CGLGetVersion
public static void CGLGetVersion(int[] majorvers, int[] minorvers)
Array version of:GetVersion
-
-