Can somebody please translate the techno babble into English?
GLint display_list = glGenLists(5);
Am I building range of lists or SINGE list of x items “named” GLint "display_list"?
What do I tell glCallList(listName_id); as listName_id ?
3, glNewList(++display_list,GL_COMPILE_AND_EXECUTE);
Am I Adding to SINGLE ( display_list ) or to multiple lists ?
( I know II should not EXECUTE and let display callback to do that).
GLuint glGenLists ( GLsizei range )
Parameters
range
Specifies the number of contiguous empty display lists (?) to be generated.
Description
glGenLists has one argument, range . It returns an integer n such that rangecontiguous empty display lists, named n , n +1, …, n + range -1, are created. If range is 0, if there is no group of range contiguous names available, or if any error is generated, no display lists are generated, and 0 is returned.
It generates 5 display lists, whose names (IDs, handles) range from display_list to display_list+4 inclusive. All of the other glGen* functions take an array of GLuints which is populated by the function. But glGenLists always allocates a contiguous range of names; this allows the use of glListBase and glCallLists to use a predefined array of offsets (e.g. a string).
Note that display lists are very much a legacy feature; they don’t exist in OpenGL 3.2+ core profile, OpenGL ES (any version) or WebGL. And if you aren’t using X11 indirect rendering (which is fairly uncommon nowadays, as it doesn’t support OpenGL 2+), they don’t offer any performance benefit.
Each glNewList/glEndList pair defines a single display list.
On more serous note - I am still not sure how to verify that “display”
function call to glCallList(listName_id); is actually redrawing my list.
But I’ll get it to work eventually.
I see few "deprecated " notes on stuff I am trying to do.
Is my guess in “range” if I say that that OpenGL trend is to simplify
“game coding” and crude access to window is just allowed to exists for time being?
In other words - did I pick wrong technology - again ?
Assuming that you meant that literally, it’s a constraint violation to modify a variable more than once between two sequence points.
In any case, glNewList/glEndList modifies the display list whose name is passed to glNewList.
OpenGL’s purpose is to provide an interface to graphics hardware. Modern graphics hardware bears little relation to the hardware for which OpenGL 1.0 was designed. Modern OpenGL (i.e. 3.2+ core profile) is designed around modern hardware.
I am not trying to be an a…, but “modern” application SHOULD not do THIS gem.
The
printf("\nZoom state %i function %s @line %d ", zoom_state,
__FUNCTION__,
__LINE__);
is not being executed.
And this is NOT only time two consecutive printf won’t work .
And NO , it is probably IDE or Linux “problem” or GCC or…
(As is customary, blame it on somebody else ).
Bloc#ifdef OPEN_GL
static int single_entry = 0;
if (single_entry == 0) {
printf("\nENTER function %s @line %d ", __FUNCTION__,
__LINE__);
single_entry++; // track
}
#endif
// verify zoom idle
if (zoom_state == ZOOM_IDLE) {
// TOK
// changed to single shot
static int single_entry = 0;
if (single_entry == 0) {
printf("\nENTER function %s @line %d ", __FUNCTION__,
__LINE__);
single_entry++; // track
printf("\nZoom state %i function %s @line %d ", zoom_state,
__FUNCTION__,
__LINE__);
}
return;
}
kquote
**TOK initially ENTER function OpenGL_createMenu @line 1555
menu_id 8 function OpenGL_createMenu @line 1620
ENTER function OpenGL_reshape @line 1289
ENTER function TEMP_OpenGL_display @line 3046
RUN list *** function TEMP_OpenGL_display @line 3059
get list_size = glGenLists (listName_id) 0 function TEMP_OpenGL_display @line 3067 OpenGL function socket_read @line 5838
ENTER function OpenGL_mouse_track_passive @line 408
ENTER function OpenGL_mouse_track_passive @line 419
**