Update SwiftShader to April code dump.

April code dump from Transgaming. Adds new shader compiler.
diff --git a/src/Main/FrameBufferDD.cpp b/src/Main/FrameBufferDD.cpp
index 0ec2d79..fa579f7 100644
--- a/src/Main/FrameBufferDD.cpp
+++ b/src/Main/FrameBufferDD.cpp
@@ -1,6 +1,6 @@
 // SwiftShader Software Renderer
 //
-// Copyright(c) 2005-2011 TransGaming Inc.
+// Copyright(c) 2005-2012 TransGaming Inc.
 //
 // All rights reserved. No part of this software may be copied, distributed, transmitted,
 // transcribed, stored in a retrieval system, translated into any human or computer
@@ -29,7 +29,7 @@
 		return 1;
 	}
 
-	FrameBufferDD::FrameBufferDD(HWND windowHandle, int width, int height, bool fullscreen) : FrameBuffer(windowHandle, width, height, fullscreen)
+	FrameBufferDD::FrameBufferDD(HWND windowHandle, int width, int height, bool fullscreen, bool topLeftOrigin) : FrameBuffer(windowHandle, width, height, fullscreen, topLeftOrigin)
 	{
 		directDraw = 0;
 		frontBuffer = 0;
@@ -104,20 +104,22 @@
 
 			if((result != DD_OK && result != DDERR_PRIMARYSURFACEALREADYEXISTS) || (bitDepth != 32 && bitDepth != 24 && bitDepth != 16))
 			{
-				gracefulExit("Failed to initialize graphics: incompatible display mode. Aborting application.", result);
+				assert(!"Failed to initialize graphics: Incompatible display mode.");
 			}
+			else
+			{
+				ddsd.dwFlags = DDSD_CAPS | DDSD_WIDTH | DDSD_HEIGHT;
+				ddsd.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN;
+				ddsd.dwWidth = width;
+				ddsd.dwHeight = height;
 
-			ddsd.dwFlags = DDSD_CAPS | DDSD_WIDTH | DDSD_HEIGHT;	   
-			ddsd.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN;
-			ddsd.dwWidth = width;
-			ddsd.dwHeight = height;
+				directDraw->CreateSurface(&ddsd, &backBuffer, 0);
 
-			directDraw->CreateSurface(&ddsd, &backBuffer, 0);
-
-			directDraw->CreateClipper(0, &clipper, 0);
-			clipper->SetHWnd(0, windowHandle);
-			frontBuffer->SetClipper(clipper);
-			clipper->Release();
+				directDraw->CreateClipper(0, &clipper, 0);
+				clipper->SetHWnd(0, windowHandle);
+				frontBuffer->SetClipper(clipper);
+				clipper->Release();
+			}
 		}
 	}
 
@@ -209,7 +211,7 @@
 
 					if(result == DDERR_INVALIDMODE)
 					{
-						gracefulExit("Failed to initialize graphics: display mode unsupported. Aborting application.", result);
+						assert(!"Failed to initialize graphics: Display mode not supported.");
 					}
 				}
 			}
@@ -286,10 +288,10 @@
 
 		if(destRect)
 		{
-			dRect.bottom = bounds.top + destRect->bottom;
-			dRect.left = bounds.left + destRect->left;
-			dRect.right = bounds.left + destRect->right;
-			dRect.top = bounds.top + destRect->top;
+			dRect.bottom = bounds.top + destRect->y1;
+			dRect.left = bounds.left + destRect->x0;
+			dRect.right = bounds.left + destRect->x1;
+			dRect.top = bounds.top + destRect->y0;
 		}
 		else
 		{