mirror of
https://github.com/isledecomp/isle-portable.git
synced 2024-11-22 23:48:12 -05:00
LegoTextureContainer::AddToList bugfix
This commit is contained in:
parent
06fadd922e
commit
7d0957aa3c
1 changed files with 5 additions and 4 deletions
|
@ -30,16 +30,17 @@ LegoTextureInfo* LegoTextureContainer::AddToList(LegoTextureInfo* p_textureInfo)
|
||||||
for (LegoTextureList::iterator it = m_list.begin(); it != m_list.end(); it++) {
|
for (LegoTextureList::iterator it = m_list.begin(); it != m_list.end(); it++) {
|
||||||
if ((*it).second == FALSE && (*it).first->m_texture->AddRef() != 0 && (*it).first->m_texture->Release() == 1) {
|
if ((*it).second == FALSE && (*it).first->m_texture->AddRef() != 0 && (*it).first->m_texture->Release() == 1) {
|
||||||
if (!strcmp((*it).first->m_name, p_textureInfo->m_name)) {
|
if (!strcmp((*it).first->m_name, p_textureInfo->m_name)) {
|
||||||
|
LPDIRECTDRAWSURFACE surface = (*it).first->m_surface;
|
||||||
memset(&newDesc, 0, sizeof(newDesc));
|
memset(&newDesc, 0, sizeof(newDesc));
|
||||||
newDesc.dwSize = sizeof(newDesc);
|
newDesc.dwSize = sizeof(newDesc);
|
||||||
|
|
||||||
if ((*it).first->m_surface->Lock(NULL, &newDesc, DDLOCK_SURFACEMEMORYPTR, NULL) == DD_OK) {
|
if (surface->Lock(NULL, &newDesc, DDLOCK_SURFACEMEMORYPTR, NULL) == DD_OK) {
|
||||||
BOOL und = FALSE;
|
BOOL und = FALSE;
|
||||||
if (newDesc.dwWidth == width && newDesc.dwHeight == height) {
|
if (newDesc.dwWidth == width && newDesc.dwHeight == height) {
|
||||||
und = TRUE;
|
und = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
(*it).first->m_surface->Unlock(newDesc.lpSurface);
|
surface->Unlock(newDesc.lpSurface);
|
||||||
|
|
||||||
if (und) {
|
if (und) {
|
||||||
(*it).second = TRUE;
|
(*it).second = TRUE;
|
||||||
|
@ -69,8 +70,8 @@ LegoTextureInfo* LegoTextureContainer::AddToList(LegoTextureInfo* p_textureInfo)
|
||||||
if (VideoManager()->GetDirect3D()->DirectDraw()->CreateSurface(&newDesc, &textureInfo->m_surface, NULL) == DD_OK) {
|
if (VideoManager()->GetDirect3D()->DirectDraw()->CreateSurface(&newDesc, &textureInfo->m_surface, NULL) == DD_OK) {
|
||||||
RECT rect;
|
RECT rect;
|
||||||
rect.left = 0;
|
rect.left = 0;
|
||||||
rect.top = newDesc.dwWidth - 1;
|
rect.right = newDesc.dwWidth - 1;
|
||||||
rect.right = 0;
|
rect.top = 0;
|
||||||
rect.bottom = newDesc.dwHeight - 1;
|
rect.bottom = newDesc.dwHeight - 1;
|
||||||
|
|
||||||
textureInfo->m_surface->SetPalette(textureInfo->m_palette);
|
textureInfo->m_surface->SetPalette(textureInfo->m_palette);
|
||||||
|
|
Loading…
Reference in a new issue