From a303eea709a74bc83d30640f5b54c1b67c10f1e7 Mon Sep 17 00:00:00 2001 From: walbourn_cp Date: Thu, 27 Jun 2013 21:17:46 -0700 Subject: [PATCH] DirectXTex: when building for WinRT, use InMemoryRandomAccessStream instead CreateStreamOnHGlobal --- DirectXTex/DirectXTexWIC.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/DirectXTex/DirectXTexWIC.cpp b/DirectXTex/DirectXTexWIC.cpp index fc3caec..ff9ff0c 100644 --- a/DirectXTex/DirectXTexWIC.cpp +++ b/DirectXTex/DirectXTexWIC.cpp @@ -15,6 +15,11 @@ #include "directxtexp.h" +#ifdef __cplusplus_winrt +#include +#pragma comment(lib,"shcore.lib") +#endif + //------------------------------------------------------------------------------------- // WIC Pixel Format nearest conversion table //------------------------------------------------------------------------------------- @@ -918,7 +923,12 @@ HRESULT SaveToWICMemory( const Image& image, DWORD flags, REFGUID containerForma blob.Release(); ScopedObject stream; +#ifdef __cplusplus_winrt + auto randomAccessStream = ref new Windows::Storage::Streams::InMemoryRandomAccessStream(); + HRESULT hr = CreateStreamOverRandomAccessStream( randomAccessStream, __uuidof(IStream), reinterpret_cast( &stream ) ); +#else HRESULT hr = CreateStreamOnHGlobal( 0, TRUE, &stream ); +#endif if ( FAILED(hr) ) return hr; @@ -965,7 +975,12 @@ HRESULT SaveToWICMemory( const Image* images, size_t nimages, DWORD flags, REFGU blob.Release(); ScopedObject stream; +#ifdef __cplusplus_winrt + auto randomAccessStream = ref new Windows::Storage::Streams::InMemoryRandomAccessStream(); + HRESULT hr = CreateStreamOverRandomAccessStream( randomAccessStream, __uuidof(IStream), reinterpret_cast( &stream ) ); +#else HRESULT hr = CreateStreamOnHGlobal( 0, TRUE, &stream ); +#endif if ( FAILED(hr) ) return hr;