From 0bbee8c588acaeccf9ff2efc6ea1d29ae6253e68 Mon Sep 17 00:00:00 2001 From: Chuck Walbourn Date: Thu, 1 Sep 2016 16:54:42 -0700 Subject: [PATCH] Code review feedback --- DirectXTex/DirectXTexUtil.cpp | 51 ++++++++++--------------- ScreenGrab/ScreenGrab.cpp | 36 +++++++---------- ScreenGrab/ScreenGrab12.cpp | 25 +++++------- WICTextureLoader/WICTextureLoader.cpp | 36 +++++++---------- WICTextureLoader/WICTextureLoader12.cpp | 25 +++++------- 5 files changed, 67 insertions(+), 106 deletions(-) diff --git a/DirectXTex/DirectXTexUtil.cpp b/DirectXTex/DirectXTexUtil.cpp index 9f103bd..d724971 100644 --- a/DirectXTex/DirectXTexUtil.cpp +++ b/DirectXTex/DirectXTexUtil.cpp @@ -229,31 +229,33 @@ REFGUID GetWICCodec( WICCodecs codec ) //------------------------------------------------------------------------------------- // Singleton function for WIC factory //------------------------------------------------------------------------------------- -IWICImagingFactory* GetWICFactory(bool& iswic2) +IWICImagingFactory* GetWICFactory( bool& iswic2 ) { - if (g_Factory) + if ( g_Factory ) { iswic2 = g_WIC2; return g_Factory; } static INIT_ONCE s_initOnce = INIT_ONCE_STATIC_INIT; + InitOnceExecuteOnce(&s_initOnce, - [](PINIT_ONCE, PVOID, PVOID *) -> BOOL + [](PINIT_ONCE, PVOID, PVOID *factory) -> BOOL { -#if(_WIN32_WINNT >= _WIN32_WINNT_WIN8) || defined(_WIN7_PLATFORM_UPDATE) + #if (_WIN32_WINNT >= _WIN32_WINNT_WIN8) || defined(_WIN7_PLATFORM_UPDATE) HRESULT hr = CoCreateInstance( CLSID_WICImagingFactory2, nullptr, CLSCTX_INPROC_SERVER, __uuidof(IWICImagingFactory2), - (LPVOID*)&g_Factory - ); + factory + ); if (SUCCEEDED(hr)) { - // WIC2 is available on Windows 8 and Windows 7 SP1 with KB 2670838 installed + // WIC2 is available on Windows 10, Windows 8.x, and Windows 7 SP1 with KB 2670838 installed g_WIC2 = true; + return TRUE; } else { @@ -263,33 +265,22 @@ IWICImagingFactory* GetWICFactory(bool& iswic2) CLSID_WICImagingFactory1, nullptr, CLSCTX_INPROC_SERVER, - IID_PPV_ARGS(&g_Factory) - ); - - if (FAILED(hr)) - { - g_Factory = nullptr; - return FALSE; - } + __uuidof(IWICImagingFactory), + factory + ); + return SUCCEEDED(hr) ? TRUE : FALSE; } -#else - HRESULT hr = CoCreateInstance( + #else + g_WIC2 = false; + + return SUCCEEDED( CoCreateInstance( CLSID_WICImagingFactory, nullptr, CLSCTX_INPROC_SERVER, - IID_PPV_ARGS(&g_Factory) - ); - - g_WIC2 = false; - - if (FAILED(hr)) - { - g_Factory = nullptr; - return FALSE; - } -#endif - return TRUE; - }, nullptr, nullptr); + __uuidof(IWICImagingFactory), + factory) ) ? TRUE : FALSE; + #endif + }, nullptr, reinterpret_cast(&g_Factory) ); iswic2 = g_WIC2; return g_Factory; diff --git a/ScreenGrab/ScreenGrab.cpp b/ScreenGrab/ScreenGrab.cpp index b8c062b..12f1493 100644 --- a/ScreenGrab/ScreenGrab.cpp +++ b/ScreenGrab/ScreenGrab.cpp @@ -701,15 +701,15 @@ namespace IWICImagingFactory* _GetWIC() { - static IWICImagingFactory* s_Factory = nullptr; + static ComPtr s_Factory; if ( s_Factory ) - return s_Factory; + return s_Factory.Get(); static INIT_ONCE s_initOnce = INIT_ONCE_STATIC_INIT; InitOnceExecuteOnce(&s_initOnce, - [](PINIT_ONCE, PVOID, PVOID *) -> BOOL + [](PINIT_ONCE, PVOID, PVOID *factory) -> BOOL { #if (_WIN32_WINNT >= _WIN32_WINNT_WIN8) || defined(_WIN7_PLATFORM_UPDATE) HRESULT hr = CoCreateInstance( @@ -717,13 +717,14 @@ namespace nullptr, CLSCTX_INPROC_SERVER, __uuidof(IWICImagingFactory2), - (LPVOID*)&s_Factory + factory ); if ( SUCCEEDED(hr) ) { // WIC2 is available on Windows 10, Windows 8.x, and Windows 7 SP1 with KB 2670838 installed g_WIC2 = true; + return TRUE; } else { @@ -731,33 +732,22 @@ namespace CLSID_WICImagingFactory1, nullptr, CLSCTX_INPROC_SERVER, - IID_PPV_ARGS(&s_Factory) + __uuidof(IWICImagingFactory), + factory ); - - if ( FAILED(hr) ) - { - s_Factory = nullptr; - return FALSE; - } + return SUCCEEDED(hr) ? TRUE : FALSE; } #else - HRESULT hr = CoCreateInstance( + return SUCCEEDED( CoCreateInstance( CLSID_WICImagingFactory, nullptr, CLSCTX_INPROC_SERVER, - IID_PPV_ARGS(&s_Factory) - ); - - if ( FAILED(hr) ) - { - s_Factory = nullptr; - return FALSE; - } + __uuidof(IWICImagingFactory), + factory) ) ? TRUE : FALSE; #endif - return TRUE; - }, nullptr, nullptr); + }, nullptr, reinterpret_cast(s_Factory.GetAddressOf())); - return s_Factory; + return s_Factory.Get(); } } // anonymous namespace diff --git a/ScreenGrab/ScreenGrab12.cpp b/ScreenGrab/ScreenGrab12.cpp index a56f137..2528532 100644 --- a/ScreenGrab/ScreenGrab12.cpp +++ b/ScreenGrab/ScreenGrab12.cpp @@ -781,30 +781,25 @@ namespace IWICImagingFactory2* _GetWIC() { - static IWICImagingFactory2* s_Factory = nullptr; + static ComPtr s_Factory; - if (s_Factory) - return s_Factory; + if ( s_Factory ) + return s_Factory.Get(); static INIT_ONCE s_initOnce = INIT_ONCE_STATIC_INIT; - InitOnceExecuteOnce(&s_initOnce, - [](PINIT_ONCE, PVOID, PVOID *) -> BOOL + (void)InitOnceExecuteOnce(&s_initOnce, + [](PINIT_ONCE, PVOID, PVOID *factory) -> BOOL { - HRESULT hr = CoCreateInstance( + return SUCCEEDED( CoCreateInstance( CLSID_WICImagingFactory2, nullptr, CLSCTX_INPROC_SERVER, - IID_PPV_ARGS(&s_Factory)); - if (FAILED(hr)) - { - s_Factory = nullptr; - return FALSE; - } - return TRUE; - }, nullptr, nullptr); + __uuidof(IWICImagingFactory2), + factory) ) ? TRUE : FALSE; + }, nullptr, reinterpret_cast(s_Factory.GetAddressOf())); - return s_Factory; + return s_Factory.Get(); } } // anonymous namespace diff --git a/WICTextureLoader/WICTextureLoader.cpp b/WICTextureLoader/WICTextureLoader.cpp index 70e4269..f2b2245 100644 --- a/WICTextureLoader/WICTextureLoader.cpp +++ b/WICTextureLoader/WICTextureLoader.cpp @@ -168,15 +168,15 @@ namespace //-------------------------------------------------------------------------------------- IWICImagingFactory* _GetWIC() { - static IWICImagingFactory* s_Factory = nullptr; + static ComPtr s_Factory; if ( s_Factory ) - return s_Factory; + return s_Factory.Get(); static INIT_ONCE s_initOnce = INIT_ONCE_STATIC_INIT; InitOnceExecuteOnce(&s_initOnce, - [](PINIT_ONCE, PVOID, PVOID *) -> BOOL + [](PINIT_ONCE, PVOID, PVOID *factory) -> BOOL { #if (_WIN32_WINNT >= _WIN32_WINNT_WIN8) || defined(_WIN7_PLATFORM_UPDATE) HRESULT hr = CoCreateInstance( @@ -184,13 +184,14 @@ namespace nullptr, CLSCTX_INPROC_SERVER, __uuidof(IWICImagingFactory2), - (LPVOID*)&s_Factory + factory ); if ( SUCCEEDED(hr) ) { // WIC2 is available on Windows 10, Windows 8.x, and Windows 7 SP1 with KB 2670838 installed g_WIC2 = true; + return TRUE; } else { @@ -198,33 +199,22 @@ namespace CLSID_WICImagingFactory1, nullptr, CLSCTX_INPROC_SERVER, - IID_PPV_ARGS(&s_Factory) + __uuidof(IWICImagingFactory), + factory ); - - if ( FAILED(hr) ) - { - s_Factory = nullptr; - return FALSE; - } + return SUCCEEDED(hr) ? TRUE : FALSE; } #else - HRESULT hr = CoCreateInstance( + return SUCCEEDED( CoCreateInstance( CLSID_WICImagingFactory, nullptr, CLSCTX_INPROC_SERVER, - IID_PPV_ARGS(&s_Factory) - ); - - if ( FAILED(hr) ) - { - s_Factory = nullptr; - return FALSE; - } + __uuidof(IWICImagingFactory), + factory) ) ? TRUE : FALSE; #endif - return TRUE; - }, nullptr, nullptr); + }, nullptr, reinterpret_cast(s_Factory.GetAddressOf())); - return s_Factory; + return s_Factory.Get(); } //--------------------------------------------------------------------------------- diff --git a/WICTextureLoader/WICTextureLoader12.cpp b/WICTextureLoader/WICTextureLoader12.cpp index 2ef7312..acc86ef 100644 --- a/WICTextureLoader/WICTextureLoader12.cpp +++ b/WICTextureLoader/WICTextureLoader12.cpp @@ -149,30 +149,25 @@ namespace IWICImagingFactory2* _GetWIC() { - static IWICImagingFactory2* s_Factory = nullptr; + static ComPtr s_Factory; - if (s_Factory) - return s_Factory; + if ( s_Factory ) + return s_Factory.Get(); static INIT_ONCE s_initOnce = INIT_ONCE_STATIC_INIT; - InitOnceExecuteOnce(&s_initOnce, - [](PINIT_ONCE, PVOID, PVOID *) -> BOOL + (void)InitOnceExecuteOnce(&s_initOnce, + [](PINIT_ONCE, PVOID, PVOID *factory) -> BOOL { - HRESULT hr = CoCreateInstance( + return SUCCEEDED( CoCreateInstance( CLSID_WICImagingFactory2, nullptr, CLSCTX_INPROC_SERVER, - IID_PPV_ARGS(&s_Factory)); - if (FAILED(hr)) - { - s_Factory = nullptr; - return FALSE; - } - return TRUE; - }, nullptr, nullptr); + __uuidof(IWICImagingFactory2), + factory) ) ? TRUE : FALSE; + }, nullptr, reinterpret_cast(s_Factory.GetAddressOf())); - return s_Factory; + return s_Factory.Get(); } //---------------------------------------------------------------------------------