Mercurial > mm7
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); |