aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2011-09-29 18:08:18 +0000
committerGravatar bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2011-09-29 18:08:18 +0000
commit9d12f5c11b56ef51ba2c95db721ae7e5bab27023 (patch)
tree61cce930350f9ca04a8beb8dea581033baf63b3b
parent6f92f18b6266098a74cd90ff7b88328acc439d17 (diff)
Fix some VS2010 warnings
Review URL: http://codereview.appspot.com/5155043 git-svn-id: http://skia.googlecode.com/svn/trunk@2380 2bbb7eff-a529-9590-31e7-b0007b416f81
-rw-r--r--gm/texdata.cpp4
-rw-r--r--gpu/src/GrContext.cpp23
-rw-r--r--gpu/src/GrGLProgram.h2
-rw-r--r--gpu/src/GrGpuGL.cpp2
-rw-r--r--gpu/src/GrGpuGLShaders.cpp11
-rw-r--r--src/animator/SkDisplayXMLParser.cpp4
-rw-r--r--src/animator/SkScriptTokenizer.cpp2
-rw-r--r--src/gpu/SkGpuDevice.cpp3
-rwxr-xr-xsrc/pdf/SkBitSet.cpp2
-rw-r--r--src/utils/SkMatrix44.cpp22
-rw-r--r--src/utils/SkNinePatch.cpp4
-rw-r--r--src/utils/win/SkIStream.cpp12
-rw-r--r--src/utils/win/skia_win.cpp388
-rw-r--r--src/views/SkWindow.cpp1
14 files changed, 248 insertions, 232 deletions
diff --git a/gm/texdata.cpp b/gm/texdata.cpp
index 2563faddcf..af0a122814 100644
--- a/gm/texdata.cpp
+++ b/gm/texdata.cpp
@@ -103,7 +103,9 @@ protected:
paint.fDstBlendCoeff = kISA_BlendCoeff;
GrMatrix vm;
if (i) {
- vm.setRotate(90, S , S);
+ vm.setRotate(90 * SK_Scalar1,
+ S * SK_Scalar1,
+ S * SK_Scalar1);
} else {
vm.reset();
}
diff --git a/gpu/src/GrContext.cpp b/gpu/src/GrContext.cpp
index 6aaa28bb92..e0c7b5559f 100644
--- a/gpu/src/GrContext.cpp
+++ b/gpu/src/GrContext.cpp
@@ -856,8 +856,8 @@ void GrContext::doOffscreenAAPass2(GrDrawTarget* target,
scale * GR_Scalar1 / src->height());
sampler.setMatrix(sampleM);
target->setSamplerState(kOffscreenStage, sampler);
- GrRect rect = SkRect::MakeWH(scale * tileRect.width(),
- scale * tileRect.height());
+ GrRect rect = SkRect::MakeWH(SkIntToScalar(scale * tileRect.width()),
+ SkIntToScalar(scale * tileRect.height()));
target->drawSimpleRect(rect, NULL, 1 << kOffscreenStage);
src = record->fOffscreen1.texture();
@@ -896,7 +896,8 @@ void GrContext::doOffscreenAAPass2(GrDrawTarget* target,
sampleM.setScale(scale * GR_Scalar1 / src->width(),
scale * GR_Scalar1 / src->height());
sampler.setMatrix(sampleM);
- sampleM.setTranslate(-tileRect.fLeft, -tileRect.fTop);
+ sampleM.setTranslate(SkIntToScalar(-tileRect.fLeft),
+ SkIntToScalar(-tileRect.fTop));
sampler.preConcatMatrix(sampleM);
target->setSamplerState(kOffscreenStage, sampler);
@@ -1506,23 +1507,23 @@ void GrContext::drawPath(const GrPaint& paint, const GrPath& path,
GrDrawTarget::AutoDeviceCoordDraw adcd(target, stageMask);
GrRect rect;
if (clipIBounds.fTop < bound.fTop) {
- rect.setLTRB(clipIBounds.fLeft, clipIBounds.fTop,
- clipIBounds.fRight, bound.fTop);
+ rect.iset(clipIBounds.fLeft, clipIBounds.fTop,
+ clipIBounds.fRight, bound.fTop);
target->drawSimpleRect(rect, NULL, stageMask);
}
if (clipIBounds.fLeft < bound.fLeft) {
- rect.setLTRB(clipIBounds.fLeft, bound.fTop,
- bound.fLeft, bound.fBottom);
+ rect.iset(clipIBounds.fLeft, bound.fTop,
+ bound.fLeft, bound.fBottom);
target->drawSimpleRect(rect, NULL, stageMask);
}
if (clipIBounds.fRight > bound.fRight) {
- rect.setLTRB(bound.fRight, bound.fTop,
- clipIBounds.fRight, bound.fBottom);
+ rect.iset(bound.fRight, bound.fTop,
+ clipIBounds.fRight, bound.fBottom);
target->drawSimpleRect(rect, NULL, stageMask);
}
if (clipIBounds.fBottom > bound.fBottom) {
- rect.setLTRB(clipIBounds.fLeft, bound.fBottom,
- clipIBounds.fRight, clipIBounds.fBottom);
+ rect.iset(clipIBounds.fLeft, bound.fBottom,
+ clipIBounds.fRight, clipIBounds.fBottom);
target->drawSimpleRect(rect, NULL, stageMask);
}
}
diff --git a/gpu/src/GrGLProgram.h b/gpu/src/GrGLProgram.h
index c186ba1fe3..ced3e6135c 100644
--- a/gpu/src/GrGLProgram.h
+++ b/gpu/src/GrGLProgram.h
@@ -125,7 +125,7 @@ private:
uint8_t fKernelWidth;
inline bool isEnabled() const {
- return fOptFlags & kIsEnabled_OptFlagBit;
+ return 0 != (fOptFlags & kIsEnabled_OptFlagBit);
}
inline void setEnabled(bool newValue) {
if (newValue) {
diff --git a/gpu/src/GrGpuGL.cpp b/gpu/src/GrGpuGL.cpp
index 16321d0e64..ffbb557170 100644
--- a/gpu/src/GrGpuGL.cpp
+++ b/gpu/src/GrGpuGL.cpp
@@ -432,7 +432,7 @@ void GrGpuGL::initCaps() {
probe_for_npot_render_target_support(fGL, fCaps.fNPOTTextureSupport);
} else {
GrAssert(expectNPOTTargets == 0 || expectNPOTTargets == 1);
- fCaps.fNPOTRenderTargetSupport = static_cast<bool>(expectNPOTTargets);
+ fCaps.fNPOTRenderTargetSupport = (0 != expectNPOTTargets);
}
GR_GL_GetIntegerv(fGL, GR_GL_MAX_TEXTURE_SIZE, &fCaps.fMaxTextureSize);
diff --git a/gpu/src/GrGpuGLShaders.cpp b/gpu/src/GrGpuGLShaders.cpp
index ea528f8412..20ecca53c8 100644
--- a/gpu/src/GrGpuGLShaders.cpp
+++ b/gpu/src/GrGpuGLShaders.cpp
@@ -238,7 +238,9 @@ bool GrGpuGLShaders::programUnitTest() {
}
pdesc.fEdgeAANumEdges = 0;
} else {
- pdesc.fEdgeAANumEdges = random.nextF() * this->getMaxEdges() + 1;
+ pdesc.fEdgeAANumEdges =
+ static_cast<int8_t>(1 + random.nextF() *
+ this->getMaxEdges());
pdesc.fEdgeAAConcave = random.nextF() > .5f;
}
} else {
@@ -279,7 +281,7 @@ bool GrGpuGLShaders::programUnitTest() {
stage.fOptFlags |= StageDesc::kNoPerspective_OptFlagBit;
}
stage.setEnabled(VertexUsesStage(s, pdesc.fVertexLayout));
- stage.fKernelWidth = 4 * random.nextF() + 2;
+ stage.fKernelWidth = static_cast<int8_t>(4 * random.nextF() + 2);
}
CachedData cachedData;
if (!program.genProgram(this->glInterface(),
@@ -562,7 +564,8 @@ void GrGpuGLShaders::flushEdgeAAData() {
int count = fCurrDrawState.fEdgeAANumEdges;
Edge edges[kMaxEdges];
// Flip the edges in Y
- float height = fCurrDrawState.fRenderTarget->height();
+ float height =
+ static_cast<float>(fCurrDrawState.fRenderTarget->height());
for (int i = 0; i < count; ++i) {
edges[i] = fCurrDrawState.fEdgeAAEdges[i];
float b = edges[i].fY;
@@ -822,7 +825,7 @@ void GrGpuGLShaders::buildProgram(GrPrimitiveType type) {
desc.fEmitsPointSize = kPoints_PrimitiveType == type;
- bool requiresAttributeColors = desc.fVertexLayout & kColor_VertexLayoutBit;
+ bool requiresAttributeColors = 0 != (desc.fVertexLayout & kColor_VertexLayoutBit);
// fColorType records how colors are specified for the program. Strip
// the bit from the layout to avoid false negatives when searching for an
// existing program in the cache.
diff --git a/src/animator/SkDisplayXMLParser.cpp b/src/animator/SkDisplayXMLParser.cpp
index 8a70ab4b0e..68dc259c6c 100644
--- a/src/animator/SkDisplayXMLParser.cpp
+++ b/src/animator/SkDisplayXMLParser.cpp
@@ -157,8 +157,8 @@ bool SkDisplayXMLParser::onAddAttributeLen(const char attrName[], const char att
}
#if defined(SK_BUILD_FOR_WIN32)
- #define SK_strcasecmp stricmp
- #define SK_strncasecmp strnicmp
+ #define SK_strcasecmp _stricmp
+ #define SK_strncasecmp _strnicmp
#else
#define SK_strcasecmp strcasecmp
#define SK_strncasecmp strncasecmp
diff --git a/src/animator/SkScriptTokenizer.cpp b/src/animator/SkScriptTokenizer.cpp
index b7c163403c..6502c34b83 100644
--- a/src/animator/SkScriptTokenizer.cpp
+++ b/src/animator/SkScriptTokenizer.cpp
@@ -603,7 +603,7 @@ scalarCommon:
}
if (ch == '.') {
if (fTokenLength == 0) {
- SkScriptValue2 scriptValue;
+ SkDEBUGCODE(SkScriptValue2 scriptValue);
SkDEBUGCODE(scriptValue.fOperand.fObject = NULL);
int tokenLength = token_length(++script);
const char* token = script;
diff --git a/src/gpu/SkGpuDevice.cpp b/src/gpu/SkGpuDevice.cpp
index 66b4936a9b..8dadc0b0bc 100644
--- a/src/gpu/SkGpuDevice.cpp
+++ b/src/gpu/SkGpuDevice.cpp
@@ -984,7 +984,8 @@ static bool drawWithMaskFilter(GrContext* context, const SkPath& path,
GrIntToScalar(dstM.fBounds.fBottom));
GrMatrix m;
- m.setTranslate(-dstM.fBounds.fLeft, -dstM.fBounds.fTop);
+ m.setTranslate(-dstM.fBounds.fLeft*SK_Scalar1,
+ -dstM.fBounds.fTop*SK_Scalar1);
m.postIDiv(texture->width(), texture->height());
grp->getMaskSampler(MASK_IDX)->setMatrix(m);
diff --git a/src/pdf/SkBitSet.cpp b/src/pdf/SkBitSet.cpp
index c10c100de7..b47bce2fdb 100755
--- a/src/pdf/SkBitSet.cpp
+++ b/src/pdf/SkBitSet.cpp
@@ -67,7 +67,7 @@ void SkBitSet::setBit(int index, bool value) {
bool SkBitSet::isBitSet(int index) const {
uint32_t mask = 1 << (index % 32);
- return (*internalGet(index) & mask);
+ return 0 != (*internalGet(index) & mask);
}
bool SkBitSet::orBits(const SkBitSet& source) {
diff --git a/src/utils/SkMatrix44.cpp b/src/utils/SkMatrix44.cpp
index a57f9b117a..47478882b5 100644
--- a/src/utils/SkMatrix44.cpp
+++ b/src/utils/SkMatrix44.cpp
@@ -164,9 +164,9 @@ void SkMatrix44::setRotateAbout(SkMScalar x, SkMScalar y, SkMScalar z,
return;
}
double scale = 1 / sqrt(len2);
- x *= scale;
- y *= scale;
- z *= scale;
+ x = SkDoubleToMScalar(x * scale);
+ y = SkDoubleToMScalar(y * scale);
+ z = SkDoubleToMScalar(z * scale);
}
this->setRotateAboutUnit(x, y, z, radians);
}
@@ -187,9 +187,17 @@ void SkMatrix44::setRotateAboutUnit(SkMScalar x, SkMScalar y, SkMScalar z,
double zxC = z * xC;
// if you're looking at wikipedia, remember that we're column major.
- this->set3x3(x * xC + c, xyC + zs, zxC - ys,
- xyC - zs, y * yC + c, yzC + xs,
- zxC + ys, yzC - xs, z * zC + c);
+ this->set3x3(SkDoubleToMScalar(x * xC + c), // scale x
+ SkDoubleToMScalar(xyC + zs), // skew x
+ SkDoubleToMScalar(zxC - ys), // trans x
+
+ SkDoubleToMScalar(xyC - zs), // skew y
+ SkDoubleToMScalar(y * yC + c), // scale y
+ SkDoubleToMScalar(yzC + xs), // trans y
+
+ SkDoubleToMScalar(zxC + ys), // persp x
+ SkDoubleToMScalar(yzC - xs), // persp y
+ SkDoubleToMScalar(z * zC + c)); // persp 2
}
///////////////////////////////////////////////////////////////////////////////
@@ -211,7 +219,7 @@ void SkMatrix44::setConcat(const SkMatrix44& a, const SkMatrix44& b) {
///////////////////////////////////////////////////////////////////////////////
static inline SkMScalar det2x2(double m00, double m01, double m10, double m11) {
- return m00 * m11 - m10 * m01;
+ return SkDoubleToMScalar(m00 * m11 - m10 * m01);
}
static inline double det3x3(double m00, double m01, double m02,
diff --git a/src/utils/SkNinePatch.cpp b/src/utils/SkNinePatch.cpp
index 6ee96848a0..9729a13807 100644
--- a/src/utils/SkNinePatch.cpp
+++ b/src/utils/SkNinePatch.cpp
@@ -143,7 +143,7 @@ void SkNinePatch::DrawMesh(SkCanvas* canvas, const SkRect& bounds,
stretchX = (bounds.width() - SkIntToScalar(fixed)) / numXStretch;
if (stretchX < 0) {
// reuse stretchX, but keep it negative as a signal
- stretchX = -bitmap.width() / fixed;
+ stretchX = -SkIntToScalar(bitmap.width()) / fixed;
}
}
@@ -156,7 +156,7 @@ void SkNinePatch::DrawMesh(SkCanvas* canvas, const SkRect& bounds,
stretchY = (bounds.height() - SkIntToScalar(fixed)) / numYStretch;
if (stretchY < 0) {
// reuse stretchY, but keep it negative as a signal
- stretchY = -bitmap.height() / fixed;
+ stretchY = -SkIntToScalar(bitmap.height()) / fixed;
}
}
diff --git a/src/utils/win/SkIStream.cpp b/src/utils/win/SkIStream.cpp
index 8c9e180b89..fce015cf21 100644
--- a/src/utils/win/SkIStream.cpp
+++ b/src/utils/win/SkIStream.cpp
@@ -153,7 +153,7 @@ HRESULT STDMETHODCALLTYPE SkIStream::Seek(LARGE_INTEGER liDistanceToMove
hr = E_FAIL;
} else {
size_t skipped = this->fSkStream->skip(
- liDistanceToMove.QuadPart
+ static_cast<size_t>(liDistanceToMove.QuadPart)
);
this->fLocation.QuadPart = skipped;
if (skipped != liDistanceToMove.QuadPart) {
@@ -163,7 +163,9 @@ HRESULT STDMETHODCALLTYPE SkIStream::Seek(LARGE_INTEGER liDistanceToMove
break;
}
case STREAM_SEEK_CUR: {
- size_t skipped = this->fSkStream->skip(liDistanceToMove.QuadPart);
+ size_t skipped = this->fSkStream->skip(
+ static_cast<size_t>(liDistanceToMove.QuadPart)
+ );
this->fLocation.QuadPart += skipped;
if (skipped != liDistanceToMove.QuadPart) {
hr = E_FAIL;
@@ -176,7 +178,7 @@ HRESULT STDMETHODCALLTYPE SkIStream::Seek(LARGE_INTEGER liDistanceToMove
} else {
LONGLONG skip = this->fSkStream->getLength()
+ liDistanceToMove.QuadPart;
- size_t skipped = this->fSkStream->skip(skip);
+ size_t skipped = this->fSkStream->skip(static_cast<size_t>(skip));
this->fLocation.QuadPart = skipped;
if (skipped != skip) {
hr = E_FAIL;
@@ -198,7 +200,7 @@ HRESULT STDMETHODCALLTYPE SkIStream::Seek(LARGE_INTEGER liDistanceToMove
HRESULT STDMETHODCALLTYPE SkIStream::Stat(STATSTG* pStatstg
, DWORD grfStatFlag)
{
- if (0 == grfStatFlag & STATFLAG_NONAME) {
+ if (0 == (grfStatFlag & STATFLAG_NONAME)) {
return STG_E_INVALIDFLAG;
}
pStatstg->pwcsName = NULL;
@@ -256,7 +258,7 @@ HRESULT STDMETHODCALLTYPE SkWIStream::Commit(DWORD) {
HRESULT STDMETHODCALLTYPE SkWIStream::Stat(STATSTG* pStatstg
, DWORD grfStatFlag)
{
- if (0 == grfStatFlag & STATFLAG_NONAME) {
+ if (0 == (grfStatFlag & STATFLAG_NONAME)) {
return STG_E_INVALIDFLAG;
}
pStatstg->pwcsName = NULL;
diff --git a/src/utils/win/skia_win.cpp b/src/utils/win/skia_win.cpp
index 0fbc7fc05c..2643cc8799 100644
--- a/src/utils/win/skia_win.cpp
+++ b/src/utils/win/skia_win.cpp
@@ -5,197 +5,197 @@
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
-#include <Windows.h>
-#include <tchar.h>
-#define MAX_LOADSTRING 100
-
-// Global Variables:
-HINSTANCE hInst; // current instance
-TCHAR szTitle[] = _T("SampleApp"); // The title bar text
-TCHAR szWindowClass[] = _T("SAMPLEAPP"); // the main window class name
-
-// Forward declarations of functions included in this code module:
-ATOM MyRegisterClass(HINSTANCE hInstance);
-BOOL InitInstance(HINSTANCE, int, LPTSTR);
-LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
-INT_PTR CALLBACK About(HWND, UINT, WPARAM, LPARAM);
-
-int APIENTRY _tWinMain(HINSTANCE hInstance,
- HINSTANCE hPrevInstance,
- LPTSTR lpCmdLine,
- int nCmdShow)
-{
- UNREFERENCED_PARAMETER(hPrevInstance);
-
- MSG msg;
-
- // Initialize global strings
- MyRegisterClass(hInstance);
-
- // Perform application initialization:
- if (!InitInstance (hInstance, nCmdShow, lpCmdLine))
- {
- return FALSE;
- }
-
- // Main message loop:
- while (GetMessage(&msg, NULL, 0, 0))
- {
- if (true)
- {
- TranslateMessage(&msg);
- DispatchMessage(&msg);
- }
- }
-
- return (int) msg.wParam;
-}
-
-
-
-//
-// FUNCTION: MyRegisterClass()
-//
-// PURPOSE: Registers the window class.
-//
-// COMMENTS:
-//
-// This function and its usage are only necessary if you want this code
-// to be compatible with Win32 systems prior to the 'RegisterClassEx'
-// function that was added to Windows 95. It is important to call this function
-// so that the application will get 'well formed' small icons associated
-// with it.
-//
-ATOM MyRegisterClass(HINSTANCE hInstance)
-{
- WNDCLASSEX wcex;
-
- wcex.cbSize = sizeof(WNDCLASSEX);
-
- wcex.style = CS_HREDRAW | CS_VREDRAW;
- wcex.lpfnWndProc = WndProc;
- wcex.cbClsExtra = 0;
- wcex.cbWndExtra = 0;
- wcex.hInstance = hInstance;
- wcex.hIcon = NULL;
- wcex.hCursor = NULL;
- wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
- wcex.lpszMenuName = NULL;
- wcex.lpszClassName = szWindowClass;
- wcex.hIconSm = NULL;
-
- return RegisterClassEx(&wcex);
-}
-
-#include "SkOSWindow_Win.h"
-extern SkOSWindow* create_sk_window(void* hwnd, int argc, char** argv);
-
-static SkOSWindow* gSkWind;
-
-char* tchar_to_utf8(const TCHAR* str) {
-#ifdef _UNICODE
- int size = WideCharToMultiByte(CP_UTF8, 0, str, wcslen(str), NULL, 0, NULL, NULL);
- char* str8 = (char*) malloc(size+1);
- WideCharToMultiByte(CP_UTF8, 0, str, wcslen(str), str8, size, NULL, NULL);
- str8[size] = '\0';
- return str8;
-#else
- return strdup(str);
-#endif
-}
-
-//
-// FUNCTION: InitInstance(HINSTANCE, int, LPTSTR)
-//
-// PURPOSE: Saves instance handle and creates main window
-//
-// COMMENTS:
-//
-// In this function, we save the instance handle in a global variable and
-// create and display the main program window.
-//
-
-
-BOOL InitInstance(HINSTANCE hInstance, int nCmdShow, LPTSTR lpCmdLine)
-{
- HWND hWnd;
-
- hInst = hInstance; // Store instance handle in our global variable
-
- hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,
- CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);
-
- if (!hWnd)
- {
- return FALSE;
- }
-
- char* argv[4096];
- int argc = 0;
- TCHAR exename[1024], *next;
- int exenameLen = GetModuleFileName(NULL, exename, 1024);
- argv[argc++] = tchar_to_utf8(exename);
- TCHAR* arg = _tcstok_s(lpCmdLine, _T(" "), &next);
- while (arg != NULL) {
- argv[argc++] = tchar_to_utf8(arg);
- arg = _tcstok_s(NULL, _T(" "), &next);
- }
-
- gSkWind = create_sk_window(hWnd, argc, argv);
- for (int i = 0; i < argc; ++i) {
- free(argv[i]);
- }
-
- ShowWindow(hWnd, nCmdShow);
- UpdateWindow(hWnd);
-
- return TRUE;
-}
-
-//
-// FUNCTION: WndProc(HWND, UINT, WPARAM, LPARAM)
-//
-// PURPOSE: Processes messages for the main window.
-//
-// WM_COMMAND - process the application menu
-// WM_PAINT - Paint the main window
-// WM_DESTROY - post a quit message and return
-//
-//
-LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
-{
- switch (message) {
- case WM_COMMAND:
- return DefWindowProc(hWnd, message, wParam, lParam);
- case WM_DESTROY:
- PostQuitMessage(0);
- break;
- default:
- if (gSkWind->wndProc(hWnd, message, wParam, lParam)) {
- return 0;
- } else {
- return DefWindowProc(hWnd, message, wParam, lParam);
- }
- }
- return 0;
-}
-
-// Message handler for about box.
-INT_PTR CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
-{
- UNREFERENCED_PARAMETER(lParam);
- switch (message)
- {
- case WM_INITDIALOG:
- return (INT_PTR)TRUE;
-
- case WM_COMMAND:
- if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL)
- {
- EndDialog(hDlg, LOWORD(wParam));
- return (INT_PTR)TRUE;
- }
- break;
- }
- return (INT_PTR)FALSE;
-}
+#include <Windows.h>
+#include <tchar.h>
+#define MAX_LOADSTRING 100
+
+// Global Variables:
+HINSTANCE hInst; // current instance
+TCHAR szTitle[] = _T("SampleApp"); // The title bar text
+TCHAR szWindowClass[] = _T("SAMPLEAPP"); // the main window class name
+
+// Forward declarations of functions included in this code module:
+ATOM MyRegisterClass(HINSTANCE hInstance);
+BOOL InitInstance(HINSTANCE, int, LPTSTR);
+LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
+INT_PTR CALLBACK About(HWND, UINT, WPARAM, LPARAM);
+
+int APIENTRY _tWinMain(HINSTANCE hInstance,
+ HINSTANCE hPrevInstance,
+ LPTSTR lpCmdLine,
+ int nCmdShow)
+{
+ UNREFERENCED_PARAMETER(hPrevInstance);
+
+ MSG msg;
+
+ // Initialize global strings
+ MyRegisterClass(hInstance);
+
+ // Perform application initialization:
+ if (!InitInstance (hInstance, nCmdShow, lpCmdLine))
+ {
+ return FALSE;
+ }
+
+ // Main message loop:
+ while (GetMessage(&msg, NULL, 0, 0))
+ {
+ if (true)
+ {
+ TranslateMessage(&msg);
+ DispatchMessage(&msg);
+ }
+ }
+
+ return (int) msg.wParam;
+}
+
+
+
+//
+// FUNCTION: MyRegisterClass()
+//
+// PURPOSE: Registers the window class.
+//
+// COMMENTS:
+//
+// This function and its usage are only necessary if you want this code
+// to be compatible with Win32 systems prior to the 'RegisterClassEx'
+// function that was added to Windows 95. It is important to call this function
+// so that the application will get 'well formed' small icons associated
+// with it.
+//
+ATOM MyRegisterClass(HINSTANCE hInstance)
+{
+ WNDCLASSEX wcex;
+
+ wcex.cbSize = sizeof(WNDCLASSEX);
+
+ wcex.style = CS_HREDRAW | CS_VREDRAW;
+ wcex.lpfnWndProc = WndProc;
+ wcex.cbClsExtra = 0;
+ wcex.cbWndExtra = 0;
+ wcex.hInstance = hInstance;
+ wcex.hIcon = NULL;
+ wcex.hCursor = NULL;
+ wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
+ wcex.lpszMenuName = NULL;
+ wcex.lpszClassName = szWindowClass;
+ wcex.hIconSm = NULL;
+
+ return RegisterClassEx(&wcex);
+}
+
+#include "SkOSWindow_Win.h"
+extern SkOSWindow* create_sk_window(void* hwnd, int argc, char** argv);
+
+static SkOSWindow* gSkWind;
+
+char* tchar_to_utf8(const TCHAR* str) {
+#ifdef _UNICODE
+ int size = WideCharToMultiByte(CP_UTF8, 0, str, wcslen(str), NULL, 0, NULL, NULL);
+ char* str8 = (char*) malloc(size+1);
+ WideCharToMultiByte(CP_UTF8, 0, str, wcslen(str), str8, size, NULL, NULL);
+ str8[size] = '\0';
+ return str8;
+#else
+ return _strdup(str);
+#endif
+}
+
+//
+// FUNCTION: InitInstance(HINSTANCE, int, LPTSTR)
+//
+// PURPOSE: Saves instance handle and creates main window
+//
+// COMMENTS:
+//
+// In this function, we save the instance handle in a global variable and
+// create and display the main program window.
+//
+
+
+BOOL InitInstance(HINSTANCE hInstance, int nCmdShow, LPTSTR lpCmdLine)
+{
+ HWND hWnd;
+
+ hInst = hInstance; // Store instance handle in our global variable
+
+ hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,
+ CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);
+
+ if (!hWnd)
+ {
+ return FALSE;
+ }
+
+ char* argv[4096];
+ int argc = 0;
+ TCHAR exename[1024], *next;
+ int exenameLen = GetModuleFileName(NULL, exename, 1024);
+ argv[argc++] = tchar_to_utf8(exename);
+ TCHAR* arg = _tcstok_s(lpCmdLine, _T(" "), &next);
+ while (arg != NULL) {
+ argv[argc++] = tchar_to_utf8(arg);
+ arg = _tcstok_s(NULL, _T(" "), &next);
+ }
+
+ gSkWind = create_sk_window(hWnd, argc, argv);
+ for (int i = 0; i < argc; ++i) {
+ free(argv[i]);
+ }
+
+ ShowWindow(hWnd, nCmdShow);
+ UpdateWindow(hWnd);
+
+ return TRUE;
+}
+
+//
+// FUNCTION: WndProc(HWND, UINT, WPARAM, LPARAM)
+//
+// PURPOSE: Processes messages for the main window.
+//
+// WM_COMMAND - process the application menu
+// WM_PAINT - Paint the main window
+// WM_DESTROY - post a quit message and return
+//
+//
+LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
+{
+ switch (message) {
+ case WM_COMMAND:
+ return DefWindowProc(hWnd, message, wParam, lParam);
+ case WM_DESTROY:
+ PostQuitMessage(0);
+ break;
+ default:
+ if (gSkWind->wndProc(hWnd, message, wParam, lParam)) {
+ return 0;
+ } else {
+ return DefWindowProc(hWnd, message, wParam, lParam);
+ }
+ }
+ return 0;
+}
+
+// Message handler for about box.
+INT_PTR CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
+{
+ UNREFERENCED_PARAMETER(lParam);
+ switch (message)
+ {
+ case WM_INITDIALOG:
+ return (INT_PTR)TRUE;
+
+ case WM_COMMAND:
+ if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL)
+ {
+ EndDialog(hDlg, LOWORD(wParam));
+ return (INT_PTR)TRUE;
+ }
+ break;
+ }
+ return (INT_PTR)FALSE;
+}
diff --git a/src/views/SkWindow.cpp b/src/views/SkWindow.cpp
index f6054dfe54..c952a61b6d 100644
--- a/src/views/SkWindow.cpp
+++ b/src/views/SkWindow.cpp
@@ -174,7 +174,6 @@ bool SkWindow::update(SkIRect* updateArea, SkCanvas* canvas)
#endif
SkCanvas rasterCanvas;
- SkDevice* device;
if (NULL == canvas) {
canvas = &rasterCanvas;