comparison UI/UIPopup.cpp @ 2155:0a1438c16c2b

Render decoupling.
author Nomad
date Thu, 09 Jan 2014 17:29:17 +0200
parents 9bd7522cdbbb
children 385040580292
comparison
equal deleted inserted replaced
2154:9bd7522cdbbb 2155:0a1438c16c2b
525 pRenderer->SetRasterClipRect(0, 0, 639, 479); 525 pRenderer->SetRasterClipRect(0, 0, 639, 479);
526 pRenderer->RasterLine2D(v106.uViewportX - 1, v106.uViewportY - 1, v106.uViewportX + 129, v106.uViewportY - 1, Color16(0xE1u, 255, 0x9Bu));//горизонтальная верхняя линия 526 pRenderer->RasterLine2D(v106.uViewportX - 1, v106.uViewportY - 1, v106.uViewportX + 129, v106.uViewportY - 1, Color16(0xE1u, 255, 0x9Bu));//горизонтальная верхняя линия
527 pRenderer->RasterLine2D(v106.uViewportX - 1, v106.uViewportW + 1, v106.uViewportX - 1, v106.uViewportY - 1, Color16(0xE1u, 255, 0x9Bu));//горизонтальная нижняя линия 527 pRenderer->RasterLine2D(v106.uViewportX - 1, v106.uViewportW + 1, v106.uViewportX - 1, v106.uViewportY - 1, Color16(0xE1u, 255, 0x9Bu));//горизонтальная нижняя линия
528 pRenderer->RasterLine2D(v106.uViewportX + 129, v106.uViewportW + 1, v106.uViewportX - 1, v106.uViewportW + 1, Color16(0xE1u, 255, 0x9Bu));//левая вертикальная линия 528 pRenderer->RasterLine2D(v106.uViewportX + 129, v106.uViewportW + 1, v106.uViewportX - 1, v106.uViewportW + 1, Color16(0xE1u, 255, 0x9Bu));//левая вертикальная линия
529 pRenderer->RasterLine2D(v106.uViewportX + 129, v106.uViewportY - 1, v106.uViewportX + 129, v106.uViewportW + 1, Color16(0xE1u, 255, 0x9Bu));//правая вертикальная линия 529 pRenderer->RasterLine2D(v106.uViewportX + 129, v106.uViewportY - 1, v106.uViewportX + 129, v106.uViewportW + 1, Color16(0xE1u, 255, 0x9Bu));//правая вертикальная линия
530 if ( pRenderer->pRenderD3D ) 530 //if ( pRenderer->pRenderD3D )
531 { 531 {
532 v106.uScreenSpaceY = v115 + v106.uViewportY + pSprites_LOD->pHardwareSprites[v10->pHwSpriteIDs[0]].uBufferHeight; 532 v106.uScreenSpaceY = v115 + v106.uViewportY + pSprites_LOD->pHardwareSprites[v10->pHwSpriteIDs[0]].uBufferHeight;
533 memset(&Dst, 0, 0x64u); 533 memset(&Dst, 0, 0x64u);
534 Dst.dwSize = 100; 534 Dst.dwSize = 100;
535 Dst.dwFillColor = 0; 535 Dst.dwFillColor = 0;
556 } 556 }
557 if (dst_z > v106.uViewportZ) 557 if (dst_z > v106.uViewportZ)
558 dst_z = v106.uViewportZ; 558 dst_z = v106.uViewportZ;
559 if (dst_w > v106.uViewportW) 559 if (dst_w > v106.uViewportW)
560 dst_w = v106.uViewportW; 560 dst_w = v106.uViewportW;
561 pRenderer->FillRectFast(v106.uViewportX, v106.uViewportY, v106.uViewportZ - v106.uViewportX, v106.uViewportW - v106.uViewportY, pRenderer->uTargetBMask | pRenderer->uTargetGMask); 561 pRenderer->FillRectFast(v106.uViewportX, v106.uViewportY, v106.uViewportZ - v106.uViewportX, v106.uViewportW - v106.uViewportY, 0x7FF);
562 pRenderer->FillRectFast(v106.uViewportX, v106.uViewportY, v106.uViewportZ - v106.uViewportX, v106.uViewportW - v106.uViewportY, pRenderer->uTargetBMask | pRenderer->uTargetGMask); 562 pRenderer->FillRectFast(v106.uViewportX, v106.uViewportY, v106.uViewportZ - v106.uViewportX, v106.uViewportW - v106.uViewportY, 0x7FF);
563 v84.left = v106.uViewportX; 563 v84.left = v106.uViewportX;
564 v84.top = v106.uViewportY; 564 v84.top = v106.uViewportY;
565 v84.right = v106.uViewportZ; 565 v84.right = v106.uViewportZ;
566 v84.bottom = v106.uViewportW; 566 v84.bottom = v106.uViewportW;
567 ErrD3D(pRenderer->pBackBuffer4->Blt(&v84, 0, 0, 16778240u, &Dst)); 567 ErrD3D(pRenderer->pBackBuffer4->Blt(&v84, 0, 0, 16778240u, &Dst));
568 if ( pRenderer->uTargetGBits == 5 ) 568 /*if ( pRenderer->uTargetGBits == 5 )
569 { 569 {
570 __debugbreak(); // no monster popup for r5g5b5 will be 570 __debugbreak(); // no monster popup for r5g5b5 will be
571 memset(&pDesc, 0, 0x7Cu); 571 memset(&pDesc, 0, 0x7Cu);
572 pDesc.dwSize = 124; 572 pDesc.dwSize = 124;
573 if ( pRenderer->LockSurface_DDraw4(pSprites_LOD->pHardwareSprites[v10->pHwSpriteIDs[0]].pTextureSurface, &pDesc, DDLOCK_WAIT)) 573 if ( pRenderer->LockSurface_DDraw4(pSprites_LOD->pHardwareSprites[v10->pHwSpriteIDs[0]].pTextureSurface, &pDesc, DDLOCK_WAIT))
610 } 610 }
611 } 611 }
612 pSprites_LOD->pHardwareSprites[v10->pHwSpriteIDs[0]].pTextureSurface->Unlock(0); 612 pSprites_LOD->pHardwareSprites[v10->pHwSpriteIDs[0]].pTextureSurface->Unlock(0);
613 } 613 }
614 } 614 }
615 else 615 else*/
616 { 616 {
617 memset(&pDesc, 0, 0x7Cu); 617 memset(&pDesc, 0, 0x7Cu);
618 pDesc.dwSize = 124; 618 pDesc.dwSize = 124;
619 if ( pRenderer->LockSurface_DDraw4(pSprites_LOD->pHardwareSprites[v10->pHwSpriteIDs[0]].pTextureSurface, &pDesc, DDLOCK_WAIT) ) 619 if ( pRenderer->LockSurface_DDraw4(pSprites_LOD->pHardwareSprites[v10->pHwSpriteIDs[0]].pTextureSurface, &pDesc, DDLOCK_WAIT) )
620 { 620 {
638 } 638 }
639 pSprites_LOD->pHardwareSprites[v10->pHwSpriteIDs[0]].pTextureSurface->Unlock(0); 639 pSprites_LOD->pHardwareSprites[v10->pHwSpriteIDs[0]].pTextureSurface->Unlock(0);
640 } 640 }
641 } 641 }
642 } 642 }
643 else 643 /*else
644 { 644 {
645 pRenderer->FillRectFast(v106.uViewportX, v106.uViewportY, v106.uViewportZ - v106.uViewportX, v106.uViewportW - v106.uViewportY, 0); 645 pRenderer->FillRectFast(v106.uViewportX, v106.uViewportY, v106.uViewportZ - v106.uViewportX, v106.uViewportW - v106.uViewportY, 0);
646 if ( v10->pHwSpriteIDs[0] >= 0 ) 646 if ( v10->pHwSpriteIDs[0] >= 0 )
647 pSprites_LOD->pSpriteHeaders[v10->pHwSpriteIDs[0]].DrawSprite_sw(&v106, 0); 647 pSprites_LOD->pSpriteHeaders[v10->pHwSpriteIDs[0]].DrawSprite_sw(&v106, 0);
648 } 648 }*/
649 //name and profession 649 //name and profession
650 if ( pActors[uActorID].sNPC_ID ) 650 if ( pActors[uActorID].sNPC_ID )
651 { 651 {
652 if (GetNPCData(pActors[uActorID].sNPC_ID)->uProfession) 652 if (GetNPCData(pActors[uActorID].sNPC_ID)->uProfession)
653 sprintfex(pTmpBuf.data(), pGlobalTXT_LocalizationStrings[429], GetNPCData(pActors[uActorID].sNPC_ID)->pName, aNPCProfessionNames[GetNPCData(pActors[uActorID].sNPC_ID)->uProfession]); // "%s the %s" / ^Pi[%s] %s 653 sprintfex(pTmpBuf.data(), pGlobalTXT_LocalizationStrings[429], GetNPCData(pActors[uActorID].sNPC_ID)->pName, aNPCProfessionNames[GetNPCData(pActors[uActorID].sNPC_ID)->uProfession]); // "%s the %s" / ^Pi[%s] %s
1307 } 1307 }
1308 else 1308 else
1309 { 1309 {
1310 pMouse->GetClickPos(&pX, &pY); 1310 pMouse->GetClickPos(&pX, &pY);
1311 } 1311 }
1312 if ( pRenderer->bWindowMode ) 1312 //if ( pRenderer->bWindowMode )
1313 { 1313 {
1314 GetCursorPos(&Point); 1314 GetCursorPos(&Point);
1315 ScreenToClient(window->GetApiHandle(), &Point); 1315 ScreenToClient(window->GetApiHandle(), &Point);
1316 if ( Point.x < 1 || Point.y < 1 || Point.x > 638 || Point.y > 478 ) 1316 if ( Point.x < 1 || Point.y < 1 || Point.x > 638 || Point.y > 478 )
1317 { 1317 {
1426 popup_window.uFrameHeight = 320; 1426 popup_window.uFrameHeight = 320;
1427 popup_window.uFrameX = pX - 350; 1427 popup_window.uFrameX = pX - 350;
1428 if ( (signed int)pX <= 320 ) 1428 if ( (signed int)pX <= 320 )
1429 popup_window.uFrameX = pX + 30; 1429 popup_window.uFrameX = pX + 30;
1430 popup_window.uFrameY = 40; 1430 popup_window.uFrameY = 40;
1431 if ( pRenderer->pRenderD3D ) 1431 //if ( pRenderer->pRenderD3D )
1432 LOWORD(v5) = pGame->pVisInstance->get_picked_object_zbuf_val(); 1432 v5 = pGame->pVisInstance->get_picked_object_zbuf_val();
1433 else 1433 /*else
1434 v5 = pRenderer->pActiveZBuffer[pX + pSRZBufferLineOffsets[pY]]; 1434 v5 = pRenderer->pActiveZBuffer[pX + pSRZBufferLineOffsets[pY]];*/
1435 if (PID_TYPE((unsigned __int16)v5) == OBJECT_Actor) 1435 if (PID_TYPE((unsigned __int16)v5) == OBJECT_Actor)
1436 { 1436 {
1437 /*if ( pRenderer->uNumSceneBegins ) 1437 /*if ( pRenderer->uNumSceneBegins )
1438 { 1438 {
1439 popup_window.DrawMessageBox(1); 1439 popup_window.DrawMessageBox(1);