Fix XInput polling in UWP apps. Should help #9555

This commit is contained in:
Henrik Rydgard 2017-04-05 14:13:25 +02:00
parent 5ce73f7264
commit fc730b76df
6 changed files with 13 additions and 7 deletions

1
.gitignore vendored
View file

@ -36,6 +36,7 @@ PPSSPPWindows.exe.manifest
PPSSPPDebug64.exe.manifest
PPSSPPDebug.exe.manifest
assets/flash0
UWP/icph
# For Mac
.DS_Store

View file

@ -329,7 +329,7 @@ void NativeInit(int argc, const char *argv[], const char *savegame_dir, const ch
VFSRegister("", new DirectoryAssetReader("assets/"));
VFSRegister("", new DirectoryAssetReader(savegame_dir));
#if defined(MOBILE_DEVICE) || !defined(USING_QT_UI)
#if defined(MOBILE_DEVICE) || !defined(USING_QT_UI) && !PPSSPP_PLATFORM(UWP)
host = new NativeHost();
#endif
@ -1060,7 +1060,9 @@ void NativeShutdown() {
delete screenManager;
screenManager = 0;
#if !PPSSPP_PLATFORM(UWP)
delete host;
#endif
host = 0;
g_Config.Save();
LogManager::Shutdown();

View file

@ -128,9 +128,11 @@ PPSSPP_UWPMain::PPSSPP_UWPMain(App ^app, const std::shared_ptr<DX::DeviceResourc
int height = m_deviceResources->GetScreenViewport().Height;
ctx_->GetDrawContext()->HandleEvent(Draw::Event::GOT_BACKBUFFER, width, height, m_deviceResources->GetBackBufferRenderTargetView());
InputDevice::BeginPolling();
}
PPSSPP_UWPMain::~PPSSPP_UWPMain() {
InputDevice::StopPolling();
ctx_->GetDrawContext()->HandleEvent(Draw::Event::LOST_BACKBUFFER, 0, 0, nullptr);
NativeShutdownGraphics();
NativeShutdown();

View file

@ -178,7 +178,7 @@ copy AssetsNormal\*.* Assets /Y
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
<Link>
<AdditionalDependencies>libavcodec.a;libavformat.a;libavutil.a;libswresample.a;libswscale.a;d2d1.lib; d3d11.lib; dxgi.lib; windowscodecs.lib; dwrite.lib; %(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies>xinputuap.lib;libavcodec.a;libavformat.a;libavutil.a;libswresample.a;libswscale.a;d2d1.lib; d3d11.lib; dxgi.lib; windowscodecs.lib; dwrite.lib; %(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>../ffmpeg/Windows10/ARM/lib;%(AdditionalLibraryDirectories); $(VCInstallDir)\lib\store\arm; $(VCInstallDir)\lib\arm</AdditionalLibraryDirectories>
</Link>
<ClCompile>
@ -241,7 +241,7 @@ copy AssetsNormal\*.* Assets /Y
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Link>
<AdditionalDependencies>libavcodec.a;libavformat.a;libavutil.a;libswresample.a;libswscale.a;d2d1.lib; d3d11.lib; dxgi.lib; windowscodecs.lib; dwrite.lib; %(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies>xinputuap.lib;libavcodec.a;libavformat.a;libavutil.a;libswresample.a;libswscale.a;d2d1.lib; d3d11.lib; dxgi.lib; windowscodecs.lib; dwrite.lib; %(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>../ffmpeg/Windows10/x86/lib;%(AdditionalLibraryDirectories); $(VCInstallDir)\lib\store; $(VCInstallDir)\lib</AdditionalLibraryDirectories>
</Link>
<ClCompile>
@ -304,7 +304,7 @@ copy AssetsNormal\*.* Assets /Y
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Link>
<AdditionalDependencies>libavcodec.a;libavformat.a;libavutil.a;libswresample.a;libswscale.a;d2d1.lib; d3d11.lib; dxgi.lib; windowscodecs.lib; dwrite.lib; %(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies>xinputuap.lib;libavcodec.a;libavformat.a;libavutil.a;libswresample.a;libswscale.a;d2d1.lib; d3d11.lib; dxgi.lib; windowscodecs.lib; dwrite.lib; %(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>../ffmpeg/Windows10/x64/lib;%(AdditionalLibraryDirectories); $(VCInstallDir)\lib\store\amd64; $(VCInstallDir)\lib\amd64</AdditionalLibraryDirectories>
</Link>
<ClCompile>
@ -378,6 +378,7 @@ copy AssetsGold\*.* Assets /Y
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\ppsspp_config.h" />
<ClInclude Include="..\Windows\InputDevice.h" />
<ClInclude Include="..\Windows\XinputDevice.h" />
<ClInclude Include="App.h" />
<ClInclude Include="Common\DeviceResources.h" />
@ -403,6 +404,7 @@ copy AssetsGold\*.* Assets /Y
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='UWP Gold|x64'">NotUsing</PrecompiledHeader>
</ClCompile>
<ClCompile Include="..\Windows\InputDevice.cpp" />
<ClCompile Include="..\Windows\XinputDevice.cpp" />
<ClCompile Include="App.cpp" />
<ClCompile Include="Common\DeviceResources.cpp" />

View file

@ -50,6 +50,7 @@
<ClCompile Include="UWPHost.cpp" />
<ClCompile Include="..\Windows\XinputDevice.cpp" />
<ClCompile Include="StorageFolderBrowser.cpp" />
<ClCompile Include="..\Windows\InputDevice.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="App.h" />
@ -63,6 +64,7 @@
<ClInclude Include="..\Windows\XinputDevice.h" />
<ClInclude Include="UWPUtil.h" />
<ClInclude Include="StorageFolderBrowser.h" />
<ClInclude Include="..\Windows\InputDevice.h" />
</ItemGroup>
<ItemGroup>
<Image Include="Assets\StoreLogo.png">

View file

@ -25,9 +25,6 @@
#include "Core/Config.h"
#include "Core/Host.h"
#include "Windows/InputDevice.h"
#include "Windows/XinputDevice.h"
#include "Windows/DinputDevice.h"
#include "Windows/KeyboardDevice.h"
#include "Windows/WindowsHost.h"
static volatile bool inputThreadStatus = false;