This commit is contained in:
gabest
2008-07-31 23:40:42 +00:00
parent c2cfec2aaa
commit 5c6e1ddd82
4 changed files with 17 additions and 6 deletions

View File

@@ -183,6 +183,9 @@ public:
, m_now(0)
{
m_output.Attach(new GSSourceOutputPin(m_size, m_atpf, this, this, hr));
// FIXME
if(fps == 60) m_atpf = 166834; // = 10000000i64 / 59.94
}
DECLARE_IUNKNOWN;

View File

@@ -372,9 +372,9 @@ void GSState::GIFPackedRegHandlerRGBA(GIFPackedReg* r)
{
#if _M_SSE >= 0x301
GSVector4i mask(_mm_cvtsi32_si128(0x0c080400));
GSVector4i mask = GSVector4i::load(0x0c080400);
GSVector4i v = GSVector4i::load<false>(r).shuffle8(mask);
m_v.RGBAQ.ai32[0] = _mm_cvtsi128_si32(v);
m_v.RGBAQ.ai32[0] = (UINT32)GSVector4i::store(v);
#elif _M_SSE >= 0x200
@@ -419,12 +419,12 @@ void GSState::GIFPackedRegHandlerUV(GIFPackedReg* r)
#if _M_SSE >= 0x401
GSVector4i v = GSVector4i::loadl(r);
m_v.UV.ai32[0] = (DWORD)GSVector4i::store(v.pu32(v)) & 0x3fff3fff;
m_v.UV.ai32[0] = (UINT32)GSVector4i::store(v.pu32(v)) & 0x3fff3fff;
#elif _M_SSE >= 0x200
GSVector4i v = GSVector4i::loadl(r) & GSVector4i::x00003fff();
m_v.UV.ai32[0] = _mm_cvtsi128_si32(v.ps32(v));
m_v.UV.ai32[0] = (UINT32)GSVector4i::store(v.ps32(v));
#else
@@ -1166,7 +1166,7 @@ void GSState::Move()
InvalidateLocalMem(m_env.BITBLTBUF, CRect(CPoint(sx, sy), CSize(w, h)));
InvalidateVideoMem(m_env.BITBLTBUF, CRect(CPoint(dx, dy), CSize(w, h)));
// TODO: use rowOffset like SwizzleTextureX
// TODO: use rowOffset
for(int y = 0; y < h; y++, sy += yinc, dy += yinc, sx -= xinc*w, dx -= xinc*w)
for(int x = 0; x < w; x++, sx += xinc, dx += xinc)

View File

@@ -43,6 +43,12 @@ bool GSWnd::Create(LPCTSTR title)
CSize s(r.Width() / 3, r.Width() / 4);
if(!GetSystemMetrics(SM_REMOTESESSION))
{
s.cx *= 2;
s.cy *= 2;
}
r = CRect(r.CenterPoint() - CSize(s.cx / 2, s.cy / 2), s);
LPCTSTR wc = AfxRegisterWndClass(CS_VREDRAW|CS_HREDRAW|CS_DBLCLKS, AfxGetApp()->LoadStandardCursor(IDC_ARROW), 0, 0);

View File

@@ -489,7 +489,9 @@ PS_OUTPUT ps_main(PS_INPUT input)
if(AOUT == 1) // 16 bit output
{
c.a = FBA == 1 ? 0.5 : step(0.5, c.a) * 0.5;
float a = 128.0f / 255; // alpha output will be 0x80
c.a = FBA == 1 ? a : step(0.5, c.a) * a;
}
else if(FBA == 1)
{