Add SwiftShader dump from Feb 6 2013
diff --git a/src/Main/FrameBufferWin.cpp b/src/Main/FrameBufferWin.cpp
new file mode 100644
index 0000000..53cda59
--- /dev/null
+++ b/src/Main/FrameBufferWin.cpp
@@ -0,0 +1,49 @@
+// SwiftShader Software Renderer
+//
+// 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
+// language by any means, or disclosed to third parties without the explicit written
+// agreement of TransGaming Inc. Without such an agreement, no rights or licenses, express
+// or implied, including but not limited to any patent rights, are granted to you.
+//
+
+#include "FrameBufferWin.hpp"
+
+namespace sw
+{
+ FrameBufferWin::FrameBufferWin(HWND windowHandle, int width, int height, bool fullscreen, bool topLeftOrigin) : FrameBuffer(width, height, fullscreen, topLeftOrigin), windowHandle(windowHandle)
+ {
+ if(!windowed)
+ {
+ // Force fullscreen window style (no borders)
+ originalWindowStyle = GetWindowLong(windowHandle, GWL_STYLE);
+ SetWindowLong(windowHandle, GWL_STYLE, WS_POPUP);
+ }
+ }
+
+ FrameBufferWin::~FrameBufferWin()
+ {
+ if(!windowed && GetWindowLong(windowHandle, GWL_STYLE) == WS_POPUP)
+ {
+ SetWindowLong(windowHandle, GWL_STYLE, originalWindowStyle);
+ }
+ }
+
+ void FrameBufferWin::updateBounds(HWND windowOverride)
+ {
+ HWND window = windowOverride ? windowOverride : windowHandle;
+
+ if(windowed)
+ {
+ GetClientRect(window, &bounds);
+ ClientToScreen(window, (POINT*)&bounds);
+ ClientToScreen(window, (POINT*)&bounds + 1);
+ }
+ else
+ {
+ SetRect(&bounds, 0, 0, GetSystemMetrics(SM_CXSCREEN), GetSystemMetrics(SM_CYSCREEN));
+ }
+ }
+}