Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to initialize glut with fake parameters?

I'm using opengl, using the GLUT and GLEW libraries to create a plugin for a certain application.

This plugin doesn't start with a simple int main(argc, argv). So i can't pass these values to glutInit().

I tried something like this:

glutInit(0, NULL); <--- Crash
GLenum err = glewInit();

But i crashed when it tried to call the glutInit() function. Can i reconstruct those params some how, so that it won't crash and still be able to use the Glut library..??

like image 894
w00 Avatar asked Dec 09 '22 03:12

w00


2 Answers

You can do it like this :

#include <GL/freeglut.h>

int main()
{
  char fakeParam[] = "fake";
  char *fakeargv[] = { fakeParam, NULL };
  int fakeargc = 1;

  glutInit( &fakeargc, fakeargv );

  //...
}

but take a note that it is an ugly hack.

like image 128
BЈовић Avatar answered Dec 22 '22 07:12

BЈовић


You might have to call glutInit with a valid argv parameter, even if you don't have any:

char *my_argv[] = { "myprogram", NULL };
int   my_argc = 1;
glutInit(&my_argc, my_argv);

Edit

It might also be that the first parameter is a pointer to an int, and it can't be NULL? Then it might be enough to only pass a valid argc parameter:

int my_argc = 0;
glutInit(&my_argc, NULL);
like image 21
Some programmer dude Avatar answered Dec 22 '22 07:12

Some programmer dude