INLINE void wxeReturn::add(wxArrayInt val) { unsigned int len = val.GetCount(); for (unsigned int i = 0; i< len; i++) { addInt(val[i]); } endList(len); }
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); }
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; }
// // endList -- const char * version // void XHTMLR::endList(const char *key){ std::string k(key); endList(k); }