FROM : Troy Stephens
DATE : Thu Mar 27 22:09:38 2008
On Mar 26, 2008, at 2:54 PM, Duncan Champney wrote:
> I need to find out the amount of total VRAM and available VRAM in
> the current renderer before creating a large renderbuffer object, to
> make sure I don't choke the system in doing it.
>
> I know how to find the current renderer for a given display, but I
> want the current renderer for my NSOpenGLView. I can get to the core
> graphics context like this:
>
> //code is from my NSOpenGLView object, so self refers to an
> NSOpenGLView
> NSOpenGLContext* theContext = [self openGLContext];
> void* the_CGLContext = [theContext CGLContextObj];
>
> But that still doesn't get me to the renderer. What I want to to is
> get a handle to the current renderer's CGLRendererInfoObj, then use
> the call:
>
> CGLDescribeRenderer (theRendererInfoObj, theRendererInex,
> kCGLRPVideoMemory,
> &deviceVRAM);
>
> But I can't for the life of me figure out how to get from my
> NSOpenGLView to the renderer's CGLRendererInfoObj. I don't want to
> assume that the openGL view is on the main display, as all the
> example code I can find does.
>
> Can somebody help me here? I'm going in circles with the
> documentation, and can't find an answer to this.
On 10.5, you can get the CGLContext's CGLPixelFormat using
CGLGetPixelFormat(), and get the CGLPixelFormat's kCGLPFARendererID
using CGLDescribePixelFormat(). From that I think you should be able
to identify the applicable renderer from among those available.
That's the most direct route that I'm aware of, but you may be able to
get a better recommendation from the experts on the Mac-OpenGL list.
--
Troy Stephens
Cocoa Frameworks
Apple, Inc.
DATE : Thu Mar 27 22:09:38 2008
On Mar 26, 2008, at 2:54 PM, Duncan Champney wrote:
> I need to find out the amount of total VRAM and available VRAM in
> the current renderer before creating a large renderbuffer object, to
> make sure I don't choke the system in doing it.
>
> I know how to find the current renderer for a given display, but I
> want the current renderer for my NSOpenGLView. I can get to the core
> graphics context like this:
>
> //code is from my NSOpenGLView object, so self refers to an
> NSOpenGLView
> NSOpenGLContext* theContext = [self openGLContext];
> void* the_CGLContext = [theContext CGLContextObj];
>
> But that still doesn't get me to the renderer. What I want to to is
> get a handle to the current renderer's CGLRendererInfoObj, then use
> the call:
>
> CGLDescribeRenderer (theRendererInfoObj, theRendererInex,
> kCGLRPVideoMemory,
> &deviceVRAM);
>
> But I can't for the life of me figure out how to get from my
> NSOpenGLView to the renderer's CGLRendererInfoObj. I don't want to
> assume that the openGL view is on the main display, as all the
> example code I can find does.
>
> Can somebody help me here? I'm going in circles with the
> documentation, and can't find an answer to this.
On 10.5, you can get the CGLContext's CGLPixelFormat using
CGLGetPixelFormat(), and get the CGLPixelFormat's kCGLPFARendererID
using CGLDescribePixelFormat(). From that I think you should be able
to identify the applicable renderer from among those available.
That's the most direct route that I'm aware of, but you may be able to
get a better recommendation from the experts on the Mac-OpenGL list.
--
Troy Stephens
Cocoa Frameworks
Apple, Inc.
| Related mails | Author | Date |
|---|---|---|
| Duncan Champney | Mar 26, 22:54 | |
| Troy Stephens | Mar 27, 22:09 |






Cocoa mail archive

