[prev in list] [next in list] [prev in thread] [next in thread] 

List:       helix-video-cvs
Subject:    [Video-cvs] sitelib basesurf.cpp,1.18.4.1,1.18.4.2
From:       tzupan () helixcommunity ! org
Date:       2005-12-13 19:36:59
[Download RAW message or body]

Update of /cvsroot/video/sitelib
In directory cvs:/tmp/cvs-serv24811

Modified Files:
      Tag: hxclient_1_5_0_cayenne
	basesurf.cpp 
Log Message:
fixed issue with scaling factors

Index: basesurf.cpp
===================================================================
RCS file: /cvsroot/video/sitelib/basesurf.cpp,v
retrieving revision 1.18.4.1
retrieving revision 1.18.4.2
diff -u -d -r1.18.4.1 -r1.18.4.2
--- basesurf.cpp	8 Jul 2005 05:30:29 -0000	1.18.4.1
+++ basesurf.cpp	13 Dec 2005 19:36:54 -0000	1.18.4.2
@@ -1672,6 +1672,25 @@
                 int nSizeX = (int)(((double)(m_bmiLastImage.biWidth))/scaleX+.5);
                 int nSizeY = (int)(((double)(m_bmiLastImage.biHeight))/scaleY+.5);
 
+				//-> sometimes we get invalid scaling factors because the values haven't
+				//-> been updated yet, when that happens, recalculate them
+				if((nSizeX != pSite->m_pVideoSurface->m_surfaceSize.cx)||
+				   (nSizeY != pSite->m_pVideoSurface->m_surfaceSize.cy))
+				{
+					int nDestDX = rDestRect.right  - rDestRect.left;
+					int nSrcDX  = pSite->m_pVideoSurface->m_surfaceSize.cx;
+					int nDestDY = rDestRect.bottom - rDestRect.top;
+					int nSrcDY  = pSite->m_pVideoSurface->m_surfaceSize.cy;
+
+					pSite->m_pVideoSurface->m_scaleFactorX = (double)nDestDX/(double)nSrcDX;
+					pSite->m_pVideoSurface->m_scaleFactorY = (double)nDestDY/(double)nSrcDY;
+
+	                scaleX = pSite->m_pVideoSurface->m_scaleFactorX/m_scaleFactorX;
+		            scaleY = pSite->m_pVideoSurface->m_scaleFactorY/m_scaleFactorY;
+					nSizeX = (int)(((double)(m_bmiLastImage.biWidth))/scaleX+.5);
+	                nSizeY = (int)(((double)(m_bmiLastImage.biHeight))/scaleY+.5);
+				}
+
                 //Fix non mod quad sizes
                 nSizeX = (nSizeX+3)&~3;
                 nSizeY = (nSizeY+1)&~1;



[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic