Ok,Here i am sending you my RenderScene function which is continuous call. I am loading image Once only.The other are text,Line,Point and 3D object.
Void RenderScene()
{
glClear(GL_COLOR_BUFFER_BIT| GL_DEPTH_BUFFER_BIT );
float R = (float)GetRValue(m\_s3DDispManagerSetting.dwScreenBkColor)/255.0;
float G = (float)GetGValue(m\_s3DDispManagerSetting.dwScreenBkColor)/255.0;
float B = (float)GetBValue(m\_s3DDispManagerSetting.dwScreenBkColor)/255.0;
::glClearColor(R, G, B, 0.0f);
glPushMatrix();
glLoadIdentity();
glShadeModel(GL\_FLAT) ;
glEnable(GL\_NORMALIZE) ;
multimap::iterator it;
//Scalling as per user selection
glScalef(m\_fScale, m\_fScale, m\_fScale);
//3D rotation angle
glRotated(m\_fRAngle\[0\],1.0, 0.0, 0.0);
glRotated(m\_fRAngle\[1\],0.0,1.0, 0.0);
glRotated(m\_fRAngle\[2\],0.0,0.0,1.0);
glDepthMask(GL\_TRUE);
for(it = m\_sMapObjectInfo.begin(); it != m\_sMapObjectInfo.end(); it++)
{
stObjectInfo sObjectInfo = (\*it).second;
if(sObjectInfo.eObjectType == OBJECT\_LINE)
glCallList((\*it).first);
}
for(it = m\_sMapObjectInfo.begin(); it != m\_sMapObjectInfo.end(); it++)
{
stObjectInfo sObjectInfo = (\*it).second;
if(sObjectInfo.eObjectType == OBJECT\_POINT)
glCallList((\*it).first);
}
for(it = m\_sMapObjectInfo.begin(); it != m\_sMapObjectInfo.end(); it++)
{
stObjectInfo sObjectInfo = (\*it).second;
if(sObjectInfo.eObjectType == OBJECT\_TEXT)
glCallList((\*it).first);
}
for(it = m\_sMapObjectInfo.begin(); it != m\_sMapObjectInfo.end(); it++)
{
stObjectInfo sObjectInfo = (\*it).second;
if(sObjectInfo.eObjectType == OBJECT\_IMAGE)
glCallList((\*it).first);
}
for(it = m\_sMapObjectInfo.begin(); it != m\_sMapObjectInfo.end(); it++)
glEnable(GL\_CULL\_FACE);
glCullFace(GL\_BACK);
glFrontFace(GL\_CW);
for(it = m\_sMapObjectInfo.begin(); it != m\_sMapObjectInfo.end(); it++)
{
stObjectInfo sObjectInfo = (\*it).second;
if(sObjectInfo.eObjectType == OBJECT\_3D)
{
glMaterialfv(GL\_FRONT\_AND\_BACK , GL\_DIFFUSE, sObjectInfo.fIntensity);
glCallList((\*it).first);
}
}
glDisable(GL\_CULL\_FACE);
glDisable(GL\_BLEND);
glPopMatrix();
}