How to tell if a 3D point will be hidden

Started by
11 comments, last by BigEfromTheVillages 10 years, 3 months ago

So i want to try the occlusion method. My program uses OpenGL without the glut routines. So i added the headers and libraries from the game_dev example to my program. But when i try to generate the queries with a call to: glGenQueriesARB() I get -

First-chance exception at 0x00000000 in ePost.exe: 0xC0000005: Access violation at location 0x0000000000000000.

Maybe i am not initiating the glut libraries and routines correctly.

The game-dev sample is below. The question is, which of these do i need to call before beginning the queries? Right now i am not calling any of them.


	glutInit(&argc, argv);
	glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH | GLUT_RGB );
        glutInitWindowSize(512, 512);
	glutCreateWindow("ARB_occlusion_query example");

	glut_helpers_initialize();

	glutDisplayFunc(display);
	glutMainLoop();
        glh_init_extensions("GL_ARB_occlusion_query ") 
Advertisement


which of these do i need to call before beginning the queries? Right now i am not calling any of them.

glh_init_extensions is probably what you need to be calling, so that your function pointers get set up properly. Otherwise your glGenQueriesARB is just a null pointer.

However, the query interface has been core since OpenGL 1.5, so you don't need to be using any extensions. You can use glGenQueries() et al. without the ARB and you'll avoid having to initialize any extensions.

Thank yo to everyone for their help. As you can tell, this is not my area of expertise. I have OpenGL version 4.4, so i should have what i need, I don't keep up on opengl as much as i should, so i am sure i have some extraneous files included, so any advice would be appreciated. I am running on a 64 bit machine, and this is a 64 bit application.

Right now the include files i am using are:

#include <gl/glew.h>
#include <gl/gl.h>
#include <gl/glu.h>
#define GL_GLEXT_PROTOTYPES
#include <gl/glext.h>

And i am using the following libraries: (i'm sure i have more referenced than i need)

binlib.lib
libifcoremd.lib
libifportmd.lib
opengl32.lib
glu32.lib
htmlhelp.lib
winmm.lib
iphlpapi.lib
ws2_32.lib
glut32.lib
odbc32.lib
odbccp32.lib
glew32.lib
glew32s.lib
I get no unsatisfied externals and everything compiles fine,
However, when i try to call glGenQuieries

GLuint nodeQuiery[8],elemQuery[6]; 
void COpenGL::SetUpOcclusion()
{
    glGenQueries(8, nodeQuiery);
    glGenQueries(6, elemQuery);
}
i get:
First-chance exception at 0x00000000 in ePost.exe: 0xC0000005: Access violation at location 0x0000000000000000.
I apparently am missing something, but i don't know what.

This topic is closed to new replies.

Advertisement