PDA

View Full Version : How to get rid of unused indices in Display List



durgesh
04-06-2011, 04:21 AM
Hello Everyone,

This being my first question, please bear with me if i am not making sense.

Now the question is, Can i delete the indices which will not be used anymore, but they have been used in other Index.
For example:

GLuint firstIndex = glGenLists(1);
glNewList(firstIndex, GL_COMPILE);
//Some operations
glEndList();

//Now suppose i want a transformed version of this in my drawing, and i create a new genLists

GLuint secondIndex = glGenLists(1);
glNewList(secondIndex, GL_COMPILE);
glPushMatrix();
glTranslate(10,10,10);
glCallList(firstIndex);
glPopMatrix();
glEndList();

Now after this statement if i do glDeleteList with firstIndex as parameter, secondIndex also doesn't display anything. Is there any way i can clean these unwanted index from list?

ZbuffeR
04-06-2011, 04:36 AM
You can't.

durgesh
04-06-2011, 06:08 AM
Okay, So will my application have more memory consumption if i have lots of cases like this?

mhagain
04-06-2011, 06:26 AM
It depends on what's stored in each display list. Display lists, by their nature, can be more memory intensive than anything else, but that's something you need to accept as part of the trade-off.

Looking at what's stored in a display list we can see that - in a simplified form - it's just commands and data. Depending on how many commands and how much data you use, the memory requirements will vary.

Remember also that we're talking about modern (or at worst, relatively modern) hardware here too. That means that memory is a cheap and plentiful resource that is there to be used. The days when you had to agonise over every few bytes are over. If you have the memory available, then use it - it's going to waste otherwise. Using less memory doesn't necessarily make a program faster or better. In fact it's often slower as it may need to page from disk, compute things on the fly, or use formats that are not optimal, and more complex and/or fragile owing to the code setup needed for these things.

I'm thinking that sweating over memory usage at this early stage is a form of premature optimization. You likely don't yet know the final memory usage of your program, so go ahead and use display lists like this. I think you'll find that the memory overhead is going to be tiny compared to something like a 1024x1024 texture.

_arts_
04-06-2011, 08:09 AM
Why putting transformations inside display lists ? I don't know what you really want to do, but as far as I can see, I don't see any good reason to do so.

durgesh
04-06-2011, 11:01 PM
Let me try to explain. Suppose i have drawn a component(say component 'A') at origin which is just a part of my final drawing. Now using this component 'A' i have created one more list, or rather an array of list which contains many transformed version of component 'A'.

Is there any way other than applying transformation in list, i can do this?

_arts_
04-07-2011, 12:24 AM
yes, simply apply transformation out from the list, this turns out. And it's more quick to do so (no need to build display lists again).