graphicsdeviceinterface/screendriver/sgeneric/scdraw.inl
branchRCL_3
changeset 7 5e51caaeeb72
parent 2 5e30ef2e26cb
child 19 bbf46f59e123
equal deleted inserted replaced
6:de3d5b6102ac 7:5e51caaeeb72
   173 		{
   173 		{
   174 		return EFalse;
   174 		return EFalse;
   175 		}
   175 		}
   176 
   176 
   177 	// Need to update size, scan line size, etc.
   177 	// Need to update size, scan line size, etc.
       
   178 	CGenericScreenDevice::SetSize(newSize);
       
   179 	
       
   180 	// Setting iScanLineWords MUST occur after the call to SetSize because SetSize itself
       
   181 	// sets iScanLineBytes to support offscreen bitmaps and may do so incorrectly for hardware devices
       
   182 	// as it just uses the width, whereas BytesPerScanline takes into account any extra bytes needed
       
   183 	// as defined by the hardware.
   178 	CGenericScreenDevice::iScanLineWords = CGenericScreenDevice::iHelper.BytesPerScanline() / 4;	 //presumption here that BPS is always mod4.
   184 	CGenericScreenDevice::iScanLineWords = CGenericScreenDevice::iHelper.BytesPerScanline() / 4;	 //presumption here that BPS is always mod4.
   179 	CGenericScreenDevice::iBits = (TUint32*)CGenericScreenDevice::iHelper.AddressFirstPixel();
   185 	CGenericScreenDevice::iBits = (TUint32*)CGenericScreenDevice::iHelper.AddressFirstPixel();
   180 	__ASSERT_ALWAYS(CGenericScreenDevice::iScanLineWords && CGenericScreenDevice::iBits,Panic(EScreenDriverPanicInvalidHalValue));
   186 	__ASSERT_ALWAYS(CGenericScreenDevice::iScanLineWords && CGenericScreenDevice::iBits,Panic(EScreenDriverPanicInvalidHalValue));
   181 	CGenericScreenDevice::SetSize(newSize);
       
   182 
   187 
   183 	return ETrue;
   188 	return ETrue;
   184 	}
   189 	}
   185 
   190 
   186 	
   191 	
   214 		{
   219 		{
   215 		return EFalse;
   220 		return EFalse;
   216 		}
   221 		}
   217 
   222 
   218 	// Need to update size, scan line size, etc.
   223 	// Need to update size, scan line size, etc.
       
   224 	CGenericScreenDevice::SetSize(newSize);
       
   225 	
       
   226 	// Setting iScanLineWords MUST occur after the call to SetSize because SetSize itself
       
   227 	// sets iScanLineBytes to support offscreen bitmaps and may do so incorrectly for hardware devices
       
   228 	// as it just uses the width, whereas BytesPerScanline takes into account any extra bytes needed
       
   229 	// as defined by the hardware.
   219 	CGenericScreenDevice::iScanLineWords = CGenericScreenDevice::iHelper.BytesPerScanline() / 4;	 //presumption here that BPS is always mod4.
   230 	CGenericScreenDevice::iScanLineWords = CGenericScreenDevice::iHelper.BytesPerScanline() / 4;	 //presumption here that BPS is always mod4.
   220 	CGenericScreenDevice::iBits = (TUint32*)CGenericScreenDevice::iHelper.AddressFirstPixel();
   231 	CGenericScreenDevice::iBits = (TUint32*)CGenericScreenDevice::iHelper.AddressFirstPixel();
   221 	__ASSERT_ALWAYS(CGenericScreenDevice::iScanLineWords && CGenericScreenDevice::iBits,Panic(EScreenDriverPanicInvalidHalValue));
   232 	__ASSERT_ALWAYS(CGenericScreenDevice::iScanLineWords && CGenericScreenDevice::iBits,Panic(EScreenDriverPanicInvalidHalValue));
   222 	CGenericScreenDevice::SetSize(newSize);
       
   223 
   233 
   224 	return ETrue;
   234 	return ETrue;
   225 	}
   235 	}
   226 
   236 
   227 
   237