Texturen CRC erstellen und filtern
-
Hi,
also ich will gerade ein paar objekte in einem beispielprogramm das ich mir gemacht hab nach einer CRC filtern und dann eben anmalen
bool Rainbow::Draw( int NumVert, IDirect3DDevice8 *m_pD3Ddev ){ for ( int p = 0; p < 8; p++ ){ if ( NumVert >= ( Pos + ( p * oldRange ) ) && NumVert < ( Pos + ( ( p + 1 ) * oldRange ) ) ){ //add_log("Num vert inside"); //add_log(IntToString(NumVert)); bis hierhin gibt er logs // finde texture im interface, erstelle CRC, pushe CRC in container ! IDirect3DBaseTexture8** ppTexture; for ( int m = 0; m < 8; m++ ){ if ( m_pD3Ddev->GetTexture(m,ppTexture) != D3D_OK ){ add_log("Get Texture failed."); continue; } hkIDirect3DTexture8 * hTexture = _FindText(*ppTexture); //hkIDirect3DTexture8 * hTexture = (hkIDirect3DTexture8 *)*ppTexture; if ( hTexture ){ add_log("Texture found"); int Size = ( sizeof(UINT) * 2 ) + sizeof(D3DFORMAT); BYTE * Buffer = new BYTE[Size]; std::copy(Buffer,Buffer+sizeof(UINT),(char*)&hTexture->m_Height); std::copy(Buffer+sizeof(UINT),Buffer+(sizeof(UINT)*2),(char*)&hTexture->m_Width); std::copy(Buffer+(sizeof(UINT)*2),Buffer+Size,(char*)&hTexture->m_Format); VertCRC myCRC; myCRC.CRC = ~crc32_calc(Buffer, Size, ~0U); add_log("CRC:"); add_log(IntToString(myCRC.CRC)); myCRC.Vertice = NumVert; delete[] Buffer; if ( !this->FindCRC(myCRC) )CRCS.push_back(myCRC); else add_log("CRC already in"); for ( int m = 0; m < 8; m++ )m_pD3Ddev->SetTexture(m,Colors[p]); }else{ add_log("Texture not found"); } } } } return true; }
mein problem bei dem ich jetzt nicht weiterkomme ist das, das er bis zum anfang der zweiten forschleife definitiv kommt, und sich dann ürgentwo verliert wo ichs nicht sehe oO an beiden enden sind log ausgaben, aber nichts kommt an...
-
was meinst du mit
dann ürgentwo
also du stepst mit dem debugger eins weiter und der ist irgendwo in assembler? oder nem kernel bereich oder...?