- Fixed: After the previous screenwipe changes, the melt type no longer worked

properly in letterboxed modes.
- Added another surface to receive a copy of the top back buffer immediately
  before it is presented. This effectively produces a copy of the front
  buffer without the performance penalty of GetFrontBufferData, so fullscreen
  wipe preparation and screenshots are faster now. At lower resolutions,
  always copying the backbuffer does incur a slight FPS hit, but it's
  practically free at higher resolutions.


SVN r2013 (trunk)
This commit is contained in:
Randy Heit 2009-12-02 05:02:40 +00:00
commit d924575b1e
4 changed files with 80 additions and 97 deletions

View file

@ -459,10 +459,9 @@ bool D3DFB::Wiper_Melt::Run(int ticks, D3DFB *fb)
dpt.x = i * fbwidth / WIDTH;
dpt.y = MAX(0, y[i] * fbheight / HEIGHT);
rect.left = dpt.x;
rect.top = fb->LBOffsetI;
rect.top = 0;
rect.right = (i + 1) * fbwidth / WIDTH;
rect.bottom = fbheight - dpt.y + fb->LBOffsetI;
dpt.y += fb->LBOffsetI;
rect.bottom = fbheight - dpt.y;
if (rect.bottom > rect.top)
{
fb->CheckQuadBatch();
@ -485,8 +484,8 @@ bool D3DFB::Wiper_Melt::Run(int ticks, D3DFB *fb)
float x0 = float(rect.left) - 0.5f;
float x1 = float(rect.right) - 0.5f;
float y0 = float(dpt.y) - 0.5f;
float y1 = float(fbheight) - 0.5f;
float y0 = float(dpt.y + fb->LBOffsetI) - 0.5f;
float y1 = float(fbheight + fb->LBOffsetI) - 0.5f;
vert[0].x = x0;
vert[0].y = y0;