Esempio n. 1
0
INLINE 
void  wxeReturn::add(wxArrayInt val) {
    unsigned int len = val.GetCount();

    for (unsigned int i = 0; i< len; i++) {
        addInt(val[i]);       
    }
    endList(len);
}
Esempio n. 2
0
INLINE 
void wxeReturn::add(const wxString s) {
    int strLen = s.Len();
    wxCharBuffer resultCB = s.mb_str(utfConverter);
    int * resultPtr = (int *) resultCB.data();

    for (int i = 0; i < strLen; i++, resultPtr++) {
        addInt(*resultPtr);
    }
    endList(strLen);       
}
Esempio n. 3
0
GLuint SGLFlObj::Compile(bool draw,bool free)
{
	is_free=free;
	GLboolean	restoreCullFaces=false;// ,doBlend=false ;
	GLint		CullFace;
	int i;
	bool EnableClip[5];

	SGLFlMetaObj *meta=dynamic_cast<SGLFlMetaObj*>(this);
	if(meta)
		meta->compileSubObjects();

	if(!VisMode)
	{
		GLint MasterPolyMode[2];
		glGetIntegerv(GL_POLYGON_MODE,MasterPolyMode);
		VisMode=GLenum(MasterPolyMode[0]);
	}

	GLuint error=0;
	while((error=glGetError()))
	{
		SGLprintError("%s [GLerror] vor dem Zeichnen von %s",gluErrorString(GLenum(error)),guesType());
	}

	//NVIDIA optimiert Setzoperationen komplett raus aus den Listen, wenn der Wert schon gesetzt ist
	//Deshalb bringt das vorsorgliche glPolygonMode nix mehr (es kann nicht garantiert werden, da�es
	//auch in der Liste landet)
	//Behandle GL_FILL jetzt als Normfall, und alle anderen setzen ihren Modus UND nehmen ihn auch
	//wieder raus
	beginList(draw);
		for(i=0;i<5;i++)
			if((EnableClip[i]=(IgnoreClip && glIsEnabled(GLenum(GL_CLIP_PLANE0+i)))))
				glDisable(GLenum(GL_CLIP_PLANE0+i));
		if(IgnoreLight)glDisable(GL_LIGHTING);

		if(VisMode!=GL_FILL)
		{
			glPolygonMode(GL_FRONT_AND_BACK,VisMode);
		}

		if(	glIsEnabled(GL_CULL_FACE) &&
			(VisMode!=GL_FILL || twoSideRender)
		)
		{
			glGetIntegerv(GL_CULL_FACE_MODE,&CullFace);
			glDisable(GL_CULL_FACE);restoreCullFaces=true;
		}

		if(Mat)
		{
			//Wenn Lightning aus ist, scheint er Material-Settings zu ignorieren
			if(IgnoreLight)// @todo nochmal überlegen wie Textur, Material und Farbe sich untereinander verhalten
			{
				
				if(Mat->tex)
					Mat->tex->loadTex();
				else 
				{
					glColor4f(
					Mat->Aussen.Farbe.Glow[0],
					Mat->Aussen.Farbe.Glow[1],
					Mat->Aussen.Farbe.Glow[2],
					1-Mat->Transparenz);//Wenn Selbstleuchtend, und keine Textur
					SGLMaterial::MatLoaded=true; //really dirty Hack :-) (sorgt dafür, daß er denkt er hätte ein Mat. -> DrawVertex heult nich rum)
				}
			}
			else Mat->loadMat();
		}
		metaGenerate();
		if(Mat)
		{
			//Wenn Lightning aus ist, scheint er Material-Settings zu ignorieren
			if(IgnoreLight)// @todo Tex NUR hier laden - is sauberer
			{
				if(Mat->tex)Mat->tex->unloadTex();
				SGLMaterial::MatLoaded=false; //yadh (yet another dirty Hack) :-)
			}
			else Mat->unloadMat();
		}

		if(VisMode!=GL_FILL)
		{
			glPolygonMode(GL_FRONT,GL_FILL);
			glPolygonMode(GL_BACK,GL_FILL);
		}
		if(restoreCullFaces)
		{
			glEnable(GL_CULL_FACE);
			glCullFace(GLenum(CullFace));
		}
		if(IgnoreLight)glEnable(GL_LIGHTING);
		for(i=0;i<5;i++)if(EnableClip[i])
			glDisable(GLenum(GL_CLIP_PLANE0+i));
		glColor4f(1,1,1,1);
	endList();

	while((error=glGetError()))
	{
		SGLprintError("%s [GLerror] beim Zeichnen von %s",gluErrorString(GLenum(error)),guesType());
	}
	return ID;
}
Esempio n. 4
0
//
// endList  -- const char * version
//
void XHTMLR::endList(const char *key){
	
	std::string k(key);
	endList(k);
	
}