CTexturePtr Graphics::LoadTexture(const std::wstring& szFileName ) { // ищем текстуру среди уже загруженных vecTextures::iterator itr = m_vecTextures.begin(); while(itr!=m_vecTextures.end()) { if ( (*itr)->GetSrc().compare(szFileName)==0 ) return *itr; // нашли itr++; } // не нашли, пробуем загрузить текстуру LPDIRECT3DTEXTURE9 pTex = NULL; if (FAILED(D3DXCreateTextureFromFile(m_pd3dDevice, szFileName.c_str(), &pTex))) return NULL; // создаЄм наш собственный обект текстуры CTexturePtr pTexPtr = new CTexture(); pTexPtr->SetSrc(szFileName); pTexPtr->SetTexture(pTex); m_vecTextures.push_back(pTexPtr); return pTexPtr; // возвращаем (указатель на) новую текстуру }