Wrap SkStreams in IStreams instead of copying data around.
http://codereview.appspot.com/4630062/


git-svn-id: http://skia.googlecode.com/svn/trunk@1694 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/gyp/images.gyp b/gyp/images.gyp
index 8f0a06b..dad4361 100644
--- a/gyp/images.gyp
+++ b/gyp/images.gyp
@@ -6,6 +6,9 @@
     {
       'target_name': 'images',
       'type': 'static_library',
+      'dependencies': [
+        'utils.gyp:utils',
+      ],
       'include_dirs': [
         '../include/config',
         '../include/core',
diff --git a/gyp/utils.gyp b/gyp/utils.gyp
index 8845d9a..9a3683f 100644
--- a/gyp/utils.gyp
+++ b/gyp/utils.gyp
@@ -12,6 +12,7 @@
         '../include/utils',
         '../include/utils/mac',
         '../include/utils/unix',
+        '../include/utils/win',
         '../include/views',
         '../include/effects',
         '../include/xml',
@@ -59,22 +60,32 @@
         '../src/utils/SkSfntUtils.cpp',
         '../src/utils/SkUnitMappers.cpp',
 
+        #mac
         '../include/utils/mac/SkCGUtils.h',
         '../src/utils/mac/SkCreateCGImageRef.cpp',
         '../src/utils/mac/SkEGLContext_mac.cpp',
         '../src/utils/mac/skia_mac.cpp',
         '../src/utils/mac/SkOSWindow_Mac.cpp',
 
+        #mesa
         '../src/utils/mesa/SkEGLContext_Mesa.cpp',
 
+        #sdl
         '../src/utils/SDL/SkOSWindow_SDL.cpp',
 
+        #*nix
         '../src/utils/unix/keysym2ucs.c',
         '../src/utils/unix/SkEGLContext_Unix.cpp',
         '../src/utils/unix/SkOSWindow_Unix.cpp',
         
+        #windows
+        '../include/utils/win/SkAutoCoInitialize.h',
+        '../include/utils/win/SkIStream.h',
+        '../include/utils/win/SkTScopedComPtr.h',
+        '../src/utils/win/SkAutoCoInitialize.cpp',
         '../src/utils/win/skia_win.cpp',
         '../src/utils/win/SkEGLContext_Win.cpp',
+        '../src/utils/win/SkIStream.cpp',
         '../src/utils/win/SkOSWindow_Win.cpp',
       ],
       'sources!': [
@@ -82,18 +93,6 @@
           '../src/utils/SDL/SkOSWindow_SDL.cpp',
       ],
       'conditions': [
-        [ 'OS != "mac"', {
-          'sources!': [
-            '../include/utils/mac/SkCGUtils.h',
-            '../src/utils/mac/SkCreateCGImageRef.cpp',
-            '../src/utils/mac/SkEGLContext_mac.cpp',
-            '../src/utils/mac/skia_mac.cpp',
-            '../src/utils/mac/SkOSWindow_Mac.cpp',
-          ],
-          'include_dirs!': [
-            '../include/utils/mac',
-          ],
-        }],
         [ 'OS == "mac"', {
           'sources!': [
             '../src/utils/SkEGLContext_none.cpp',
@@ -103,18 +102,19 @@
               '$(SDKROOT)/System/Library/Frameworks/AGL.framework',
             ],
           },
-        }],
-        [ 'OS != "linux" and OS != "freebsd" and OS != "openbsd" and OS != "solaris"', {
-          'sources!': [
-            '../src/utils/unix/keysym2ucs.c',
-            '../src/utils/unix/SkEGLContext_Unix.cpp',
-            '../src/utils/unix/SkOSWindow_Unix.cpp',
-          ],
+        },{ #else if 'OS != "mac"'
           'include_dirs!': [
-            '../include/utils/unix',
+            '../include/utils/mac',
+          ],
+          'sources!': [
+            '../include/utils/mac/SkCGUtils.h',
+            '../src/utils/mac/SkCreateCGImageRef.cpp',
+            '../src/utils/mac/SkEGLContext_mac.cpp',
+            '../src/utils/mac/skia_mac.cpp',
+            '../src/utils/mac/SkOSWindow_Mac.cpp',
           ],
         }],
-        [ 'OS == "linux" or OS == "freebsd" or OS == "openbsd" or OS == "solaris"', {
+        [ 'OS in ["linux", "freebsd", "openbsd", "solaris"]', {
           'sources!': [
             '../src/utils/SkEGLContext_none.cpp',
           ],
@@ -124,18 +124,39 @@
               '-lGLU',
             ],
           },
-        }],
-        [ 'OS != "win"', {
+        },{ #else if 'OS not in ["linux", "freebsd", "openbsd", "solaris"]'
+          'include_dirs!': [
+            '../include/utils/unix',
+          ],
           'sources!': [
-            '../src/utils/win/skia_win.cpp',
-            '../src/utils/win/SkEGLContext_Win.cpp',
-            '../src/utils/win/SkOSWindow_Win.cpp',
+            '../src/utils/unix/keysym2ucs.c',
+            '../src/utils/unix/SkEGLContext_Unix.cpp',
+            '../src/utils/unix/SkOSWindow_Unix.cpp',
           ],
         }],
         [ 'OS == "win"', {
           'sources!': [
             '../src/utils/SkEGLContext_none.cpp',
           ],
+          'direct_dependent_settings': {
+            'include_dirs': [
+              '../include/utils/win',
+            ],
+          },
+        },{ #else if 'OS != "win"'
+          'include_dirs!': [
+            '../include/utils/win',
+          ],
+          'sources!': [
+            '../include/utils/win/SkAutoCoInitialize.h',
+            '../include/utils/win/SkIStream.h',
+            '../include/utils/win/SkTScopedComPtr.h',
+            '../src/utils/win/SkAutoCoInitialize.cpp',
+            '../src/utils/win/skia_win.cpp',
+            '../src/utils/win/SkEGLContext_Win.cpp',
+            '../src/utils/win/SkIStream.cpp',
+            '../src/utils/win/SkOSWindow_Win.cpp',
+          ],
         }],
       ],
       'direct_dependent_settings': {