dolphin/Source/Plugins/Plugin_VideoMerge/Plugin_VideoMerge.vcproj
Jordan Woyak 194493cc04 Some work on merging the video plugins: Added a new plugin to the solution(shouldn't build by default) which combines the DX9, DX11, and OGL plugins with their common code merged (and some things temporarily removed). In it's current state the plugin is hardly usable. Perhaps someone with knowledge of the video plugins will be able to fix the things I have broken more easily than me(or point me in the right direction). I will continue to work on it as well.
Main Issues:
DX11 is functional with a ~2MB/s mem leak.
OpenGL/DirectX9 have a black display while game runs. (DirectX 9 flashes good display on emulation stop)
Too many virtual function calls. (once everything is working, I will work on removing them)
Won't build on non-Windows in its current state. (mainly EmuWindow will need changes for Linux/OS X)
Probably other stuff.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6219 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-09-20 21:45:47 +00:00

809 lines
20 KiB
XML

<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="9.00"
Name="Plugin_VideoMerge"
ProjectGUID="{CA7F67A1-7DD9-4C49-94B8-F62AF3D4C72E}"
RootNamespace="Plugin_VideoMerge"
Keyword="Win32Proj"
TargetFrameworkVersion="196613"
>
<Platforms>
<Platform
Name="Win32"
/>
<Platform
Name="x64"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
ConfigurationType="2"
CharacterSet="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="../../PluginSpecs;../../Core/Common/Src;../../Core/InputCommon/Src;../../Core/VideoCommon/Src;./Src;./Src/Windows;../../../Externals;..\..\..\Externals\libjpeg;..\..\..\Externals\wxWidgets\Include;..\..\..\Externals\wxWidgets\Include\msvc;..\..\..\Externals\Glew\include;..\..\..\Externals\CLRun\include"
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;_WIN32;_CRT_SECURE_NO_DEPRECATE;_SECURE_SCL=0"
MinimalRebuild="false"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
UsePrecompiledHeader="0"
PrecompiledHeaderThrough="stdafx.h"
PrecompiledHeaderFile="$(IntDir)/VideoMerge.pch"
AssemblerListingLocation="$(IntDir)\"
ProgramDataBaseFileName="$(IntDir)\"
WarningLevel="3"
DebugInformationFormat="3"
ForcedIncludeFiles="stdafx.h"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
IgnoreImportLibrary="false"
AdditionalDependencies="odbc32.lib odbccp32.lib comctl32.lib winmm.lib cg.lib cgGL.lib opengl32.lib glew32s.lib glu32.lib rpcrt4.lib"
OutputFile="..\..\..\Binary\Win32/Plugins\Plugin_VideoMergeD.dll"
LinkIncremental="1"
AdditionalLibraryDirectories="&quot;..\..\core\common\$(PlatformName)\$(ConfigurationName)&quot;;..\..\..\Externals\Cg;..\..\..\Externals\GLew;..\..\..\Externals\libjpeg;&quot;..\..\..\Externals\wxWidgets\lib\vc_lib\$(PlatformName)&quot;"
IgnoreDefaultLibraryNames=""
GenerateDebugInformation="true"
ProgramDatabaseFile="$(PlatformName)\$(ConfigurationName)\$(TargetName).pdb"
SubSystem="0"
RandomizedBaseAddress="1"
DataExecutionPrevention="0"
ImportLibrary="$(PlatformName)\$(ConfigurationName)\$(TargetName).lib"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Debug|x64"
OutputDirectory="$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
ConfigurationType="2"
CharacterSet="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
TargetEnvironment="3"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="../../PluginSpecs;../../Core/Common/Src;../../Core/InputCommon/Src;../../Core/VideoCommon/Src;./Src;./Src/Windows;../../../Externals;..\..\..\Externals\libjpeg;..\..\..\Externals\wxWidgets\Include;..\..\..\Externals\wxWidgets\Include\msvc;..\..\..\Externals\Glew\include;..\..\..\Externals\CLRun\include"
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;_WIN32;_CRT_SECURE_NO_DEPRECATE;_SECURE_SCL=0"
MinimalRebuild="false"
BasicRuntimeChecks="3"
RuntimeLibrary="1"
UsePrecompiledHeader="0"
PrecompiledHeaderThrough="stdafx.h"
PrecompiledHeaderFile="$(IntDir)/VideoMerge.pch"
AssemblerListingLocation="$(IntDir)\"
ProgramDataBaseFileName="$(IntDir)\"
WarningLevel="3"
DebugInformationFormat="3"
ForcedIncludeFiles="stdafx.h"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
IgnoreImportLibrary="false"
AdditionalDependencies="odbc32.lib odbccp32.lib comctl32.lib winmm.lib cg.lib cgGL.lib opengl32.lib glew64s.lib glu32.lib rpcrt4.lib"
OutputFile="..\..\..\Binary\x64\Plugins\Plugin_VideoMergeD.dll"
LinkIncremental="1"
AdditionalLibraryDirectories="&quot;..\..\core\common\$(PlatformName)\$(ConfigurationName)&quot;;..\..\..\Externals\Cg64;..\..\..\Externals\GLew;..\..\..\Externals\libjpeg;&quot;..\..\..\Externals\wxWidgets\lib\vc_lib\$(PlatformName)&quot;"
IgnoreAllDefaultLibraries="false"
IgnoreDefaultLibraryNames=""
GenerateDebugInformation="true"
ProgramDatabaseFile="$(PlatformName)\$(ConfigurationName)\$(TargetName).pdb"
SubSystem="0"
RandomizedBaseAddress="1"
DataExecutionPrevention="0"
ImportLibrary="$(PlatformName)\$(ConfigurationName)\$(TargetName).lib"
TargetMachine="17"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
ConfigurationType="2"
CharacterSet="1"
WholeProgramOptimization="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="2"
EnableIntrinsicFunctions="true"
AdditionalIncludeDirectories="../../PluginSpecs;../../Core/Common/Src;../../Core/InputCommon/Src;../../Core/VideoCommon/Src;./Src;./Src/Windows;../../../Externals;..\..\..\Externals\libjpeg;..\..\..\Externals\wxWidgets\Include;..\..\..\Externals\wxWidgets\Include\msvc;..\..\..\Externals\Glew\include;..\..\..\Externals\CLRun\include"
PreprocessorDefinitions="WIN32;_WINDOWS;_USRDLL;_WIN32;PLUGIN_VIDEOSOFTWARE_EXPORTS;_CRT_SECURE_NO_DEPRECATE;_SECURE_SCL=0"
RuntimeLibrary="0"
EnableFunctionLevelLinking="true"
UsePrecompiledHeader="0"
PrecompiledHeaderThrough="stdafx.h"
PrecompiledHeaderFile="$(IntDir)/VideoMerge.pch"
WarningLevel="3"
DebugInformationFormat="3"
ForcedIncludeFiles="stdafx.h"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
IgnoreImportLibrary="false"
AdditionalDependencies="odbc32.lib odbccp32.lib comctl32.lib winmm.lib cg.lib cgGL.lib opengl32.lib glew32s.lib glu32.lib rpcrt4.lib libjpeg.lib"
OutputFile="..\..\..\Binary\Win32/Plugins\Plugin_VideoMerge.dll"
LinkIncremental="1"
AdditionalLibraryDirectories="&quot;..\..\core\common\$(PlatformName)\$(ConfigurationName)&quot;;..\..\..\Externals\Cg;..\..\..\Externals\GLew;..\..\..\Externals\libjpeg;&quot;..\..\..\Externals\wxWidgets\lib\vc_lib\$(PlatformName)&quot;"
IgnoreAllDefaultLibraries="false"
IgnoreDefaultLibraryNames=""
GenerateDebugInformation="true"
ProgramDatabaseFile="$(PlatformName)\$(ConfigurationName)\$(TargetName).pdb"
SubSystem="2"
OptimizeReferences="2"
EnableCOMDATFolding="2"
ImportLibrary="$(PlatformName)\$(ConfigurationName)\$(TargetName).lib"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|x64"
OutputDirectory="$(PlatformName)\$(ConfigurationName)"
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
ConfigurationType="2"
CharacterSet="1"
WholeProgramOptimization="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
TargetEnvironment="3"
/>
<Tool
Name="VCCLCompilerTool"
AdditionalOptions="/MP"
Optimization="2"
EnableIntrinsicFunctions="true"
AdditionalIncludeDirectories="../../PluginSpecs;../../Core/Common/Src;../../Core/InputCommon/Src;../../Core/VideoCommon/Src;./Src;./Src/Windows;../../../Externals;..\..\..\Externals\libjpeg;..\..\..\Externals\wxWidgets\Include;..\..\..\Externals\wxWidgets\Include\msvc;..\..\..\Externals\Glew\include;..\..\..\Externals\CLRun\include"
PreprocessorDefinitions="WIN32;_WINDOWS;_USRDLL;_WIN32;PLUGIN_VIDEOSOFTWARE_EXPORTS;_CRT_SECURE_NO_DEPRECATE;_SECURE_SCL=0"
RuntimeLibrary="0"
EnableFunctionLevelLinking="true"
UsePrecompiledHeader="0"
PrecompiledHeaderThrough="stdafx.h"
PrecompiledHeaderFile="$(IntDir)/VideoMerge.pch"
WarningLevel="3"
DebugInformationFormat="3"
ForcedIncludeFiles="stdafx.h"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
IgnoreImportLibrary="false"
AdditionalDependencies="odbc32.lib odbccp32.lib comctl32.lib winmm.lib cg.lib cgGL.lib opengl32.lib glew64s.lib glu32.lib rpcrt4.lib libjpeg64.lib"
OutputFile="..\..\..\Binary\x64\Plugins\Plugin_VideoMerge.dll"
LinkIncremental="1"
AdditionalLibraryDirectories="&quot;..\..\core\common\$(PlatformName)\$(ConfigurationName)&quot;;..\..\..\Externals\Cg64;..\..\..\Externals\GLew;..\..\..\Externals\libjpeg;&quot;..\..\..\Externals\wxWidgets\lib\vc_lib\$(PlatformName)&quot;"
IgnoreAllDefaultLibraries="false"
IgnoreDefaultLibraryNames=""
GenerateDebugInformation="true"
ProgramDatabaseFile="$(PlatformName)\$(ConfigurationName)\$(TargetName).pdb"
SubSystem="2"
OptimizeReferences="2"
EnableCOMDATFolding="2"
ImportLibrary="$(PlatformName)\$(ConfigurationName)\$(TargetName).lib"
TargetMachine="17"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Render"
>
<File
RelativePath=".\Src\BPFunctions.cpp"
>
</File>
<File
RelativePath=".\Src\FramebufferManager.cpp"
>
</File>
<File
RelativePath=".\Src\FramebufferManager.h"
>
</File>
<File
RelativePath=".\Src\PixelShaderCache.cpp"
>
</File>
<File
RelativePath=".\Src\PixelShaderCache.h"
>
</File>
<File
RelativePath=".\Src\Renderer.cpp"
>
</File>
<File
RelativePath=".\Src\Renderer.h"
>
</File>
<File
RelativePath=".\Src\TextureCache.cpp"
>
</File>
<File
RelativePath=".\Src\TextureCache.h"
>
</File>
<File
RelativePath=".\Src\VertexManager.cpp"
>
</File>
<File
RelativePath=".\Src\VertexManager.h"
>
</File>
<File
RelativePath=".\Src\VertexShaderCache.cpp"
>
</File>
<File
RelativePath=".\Src\VertexShaderCache.h"
>
</File>
</Filter>
<Filter
Name="OGL"
>
<File
RelativePath=".\Src\OGL\OGL_RasterFont.cpp"
>
</File>
<File
RelativePath=".\Src\OGL\OGL_RasterFont.h"
>
</File>
<Filter
Name="GL"
>
<File
RelativePath=".\Src\OGL\OGL_GLUtil.cpp"
>
</File>
<File
RelativePath=".\Src\OGL\OGL_GLUtil.h"
>
</File>
<File
RelativePath=".\Src\OGL\OGL_GLWindow.h"
>
</File>
<File
RelativePath=".\Src\OGL\OGL_TextureConverter.cpp"
>
</File>
<File
RelativePath=".\Src\OGL\OGL_TextureConverter.h"
>
</File>
</Filter>
<Filter
Name="Render"
>
<File
RelativePath=".\Src\OGL\OGL_FramebufferManager.cpp"
>
</File>
<File
RelativePath=".\Src\OGL\OGL_FramebufferManager.h"
>
</File>
<File
RelativePath=".\Src\OGL\OGL_PixelShaderCache.cpp"
>
</File>
<File
RelativePath=".\Src\OGL\OGL_PixelShaderCache.h"
>
</File>
<File
RelativePath=".\Src\OGL\OGL_PostProcessing.cpp"
>
</File>
<File
RelativePath=".\Src\OGL\OGL_PostProcessing.h"
>
</File>
<File
RelativePath=".\Src\OGL\OGL_Render.cpp"
>
</File>
<File
RelativePath=".\Src\OGL\OGL_Render.h"
>
</File>
<File
RelativePath=".\Src\OGL\OGL_VertexShaderCache.cpp"
>
</File>
<File
RelativePath=".\Src\OGL\OGL_VertexShaderCache.h"
>
</File>
<File
RelativePath=".\Src\OGL\OGL_XFB.cpp"
>
</File>
<File
RelativePath=".\Src\OGL\OGL_XFB.h"
>
</File>
</Filter>
<Filter
Name="Decoder"
>
<File
RelativePath=".\Src\OGL\OGL_NativeVertexFormat.cpp"
>
</File>
<File
RelativePath=".\Src\OGL\OGL_TextureCache.cpp"
>
</File>
<File
RelativePath=".\Src\OGL\OGL_TextureCache.h"
>
</File>
<File
RelativePath=".\Src\OGL\OGL_VertexManager.cpp"
>
</File>
<File
RelativePath=".\Src\OGL\OGL_VertexManager.h"
>
</File>
</Filter>
</Filter>
<Filter
Name="DX11"
>
<File
RelativePath=".\Src\DX11\DX11_GfxState.cpp"
>
</File>
<File
RelativePath=".\Src\DX11\DX11_GfxState.h"
>
</File>
<Filter
Name="D3D"
>
<File
RelativePath=".\Src\DX11\DX11_D3DBase.cpp"
>
</File>
<File
RelativePath=".\Src\DX11\DX11_D3DBase.h"
>
</File>
<File
RelativePath=".\Src\DX11\DX11_D3DBlob.cpp"
>
</File>
<File
RelativePath=".\Src\DX11\DX11_D3DBlob.h"
>
</File>
<File
RelativePath=".\Src\DX11\DX11_D3DShader.cpp"
>
</File>
<File
RelativePath=".\Src\DX11\DX11_D3DShader.h"
>
</File>
<File
RelativePath=".\Src\DX11\DX11_D3DTexture.cpp"
>
</File>
<File
RelativePath=".\Src\DX11\DX11_D3DTexture.h"
>
</File>
<File
RelativePath=".\Src\DX11\DX11_D3DUtil.cpp"
>
</File>
<File
RelativePath=".\Src\DX11\DX11_D3DUtil.h"
>
</File>
</Filter>
<Filter
Name="Render"
>
<File
RelativePath=".\Src\DX11\DX11_FramebufferManager.cpp"
>
</File>
<File
RelativePath=".\Src\DX11\DX11_FramebufferManager.h"
>
</File>
<File
RelativePath=".\Src\DX11\DX11_PixelShaderCache.cpp"
>
</File>
<File
RelativePath=".\Src\DX11\DX11_PixelShaderCache.h"
>
</File>
<File
RelativePath=".\Src\DX11\DX11_Render.cpp"
>
</File>
<File
RelativePath=".\Src\DX11\DX11_Render.h"
>
</File>
<File
RelativePath=".\Src\DX11\DX11_VertexShaderCache.cpp"
>
</File>
<File
RelativePath=".\Src\DX11\DX11_VertexShaderCache.h"
>
</File>
</Filter>
<Filter
Name="Decoder"
>
<File
RelativePath=".\Src\DX11\DX11_NativeVertexFormat.cpp"
>
</File>
<File
RelativePath=".\Src\DX11\DX11_TextureCache.cpp"
>
</File>
<File
RelativePath=".\Src\DX11\DX11_TextureCache.h"
>
</File>
<File
RelativePath=".\Src\DX11\DX11_VertexManager.cpp"
>
</File>
<File
RelativePath=".\Src\DX11\DX11_VertexManager.h"
>
</File>
</Filter>
</Filter>
<Filter
Name="DX9"
>
<Filter
Name="D3D"
>
<File
RelativePath=".\Src\DX9\DX9_D3DBase.cpp"
>
</File>
<File
RelativePath=".\Src\DX9\DX9_D3DBase.h"
>
</File>
<File
RelativePath=".\Src\DX9\DX9_D3DShader.cpp"
>
</File>
<File
RelativePath=".\Src\DX9\DX9_D3DShader.h"
>
</File>
<File
RelativePath=".\Src\DX9\DX9_D3DTexture.cpp"
>
</File>
<File
RelativePath=".\Src\DX9\DX9_D3DTexture.h"
>
</File>
<File
RelativePath=".\Src\DX9\DX9_D3DUtil.cpp"
>
</File>
<File
RelativePath=".\Src\DX9\DX9_D3DUtil.h"
>
</File>
</Filter>
<Filter
Name="Render"
>
<File
RelativePath=".\Src\DX9\DX9_FramebufferManager.cpp"
>
</File>
<File
RelativePath=".\Src\DX9\DX9_FramebufferManager.h"
>
</File>
<File
RelativePath=".\Src\DX9\DX9_PixelShaderCache.cpp"
>
</File>
<File
RelativePath=".\Src\DX9\DX9_PixelShaderCache.h"
>
</File>
<File
RelativePath=".\Src\DX9\DX9_Render.cpp"
>
</File>
<File
RelativePath=".\Src\DX9\DX9_Render.h"
>
</File>
<File
RelativePath=".\Src\DX9\DX9_VertexShaderCache.cpp"
>
</File>
<File
RelativePath=".\Src\DX9\DX9_VertexShaderCache.h"
>
</File>
</Filter>
<Filter
Name="Decoder"
>
<File
RelativePath=".\Src\DX9\DX9_NativeVertexFormat.cpp"
>
</File>
<File
RelativePath=".\Src\DX9\DX9_TextureCache.cpp"
>
</File>
<File
RelativePath=".\Src\DX9\DX9_TextureCache.h"
>
</File>
<File
RelativePath=".\Src\DX9\DX9_TextureConverter.cpp"
>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
/>
</FileConfiguration>
</File>
<File
RelativePath=".\Src\DX9\DX9_TextureConverter.h"
>
</File>
<File
RelativePath=".\Src\DX9\DX9_VertexManager.cpp"
>
</File>
<File
RelativePath=".\Src\DX9\DX9_VertexManager.h"
>
</File>
</Filter>
</Filter>
<Filter
Name="ConfigDiag"
>
<File
RelativePath=".\Src\VideoConfigDiag.cpp"
>
</File>
<File
RelativePath=".\Src\VideoConfigDiag.h"
>
</File>
</Filter>
<File
RelativePath=".\Src\EmuWindow.cpp"
>
</File>
<File
RelativePath=".\Src\EmuWindow.h"
>
</File>
<File
RelativePath=".\Src\Main.cpp"
>
</File>
<File
RelativePath=".\Src\Main.h"
>
</File>
<File
RelativePath="..\..\PluginSpecs\pluginspecs_video.h"
>
</File>
</Files>
<Globals>
</Globals>
</VisualStudioProject>