Before you call anything in gl, do you need to set a glContext? What happens if you do not? For example, what would happen if I called glDeleteTextures(1,p) and I hadn't selected a gl context? Is the texture name globally unique? If you call glGetError() without a context, what happens?

Mazy

02-25-2003, 05:35 AM

the glDeleteTextures shouldnt delete any texture ( those are context specific ) ans gor the glGetError, is it har to try it yourself?? http://www.opengl.org/discussion_boards/ubb/smile.gif

mr_coolio

02-25-2003, 06:02 AM

Originally posted by Mazy:
is it har to try it yourself?? http://www.opengl.org/discussion_boards/ubb/smile.gif

This situation is not one I'd want to 'try myself' because there are too many unknowns. For instance, if GetError doesn't work outside a context, then DeleteTextures would apparently not cause an error etc.
I think it's more complex than you realize.

[This message has been edited by mr_coolio (edited 02-25-2003).]

Deiussum

02-25-2003, 07:25 AM

#include <GL/gl.h>
#include <iostream>

using namespace std;

void main()
{
cout << "0x" << hex << glGetError() << endl;
}

Output:
0x502

Looking in gl.h you find:
#define GL_INVALID_OPERATION 0x0502

Man... was that tough to try out myself.

gator

02-25-2003, 11:48 AM

I don't know if this has to do with anything, but I've experienced
problems before with setting the context, but only at the point of
destructing a RC.

Like, for example, I have 4 viewports, each with their own RC.
When I go to quit, I delete everything in OnDestroy(). But if
I try to do, something like:
wglMakeCurrent( m_pDC->GetSafeHdc(), m_hRC );

in OnDestroy before deleting all my textures and display lists,
the program immediately crashes at this line, every time. For
some reason, it works fine if I comment that line out. Both the
HDC and RC are perfectly valid, as I do test for NULL pointers.