diff --git a/.gitignore b/.gitignore
index 802b826..a4a36b5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,5 +1,6 @@
## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
+.vs/
# User-specific files
*.suo
@@ -13,7 +14,10 @@
x64/
build/
bld/
-[Bb]in/
+[Bb]in/*.dll
+[Bb]in/*.exe
+[Bb]in/*.exp
+[Bb]in/*.lib
[Oo]bj/
# MSTest test Results
diff --git a/README.md b/README.md
index bb40fc2..cbc2da2 100644
--- a/README.md
+++ b/README.md
@@ -4,14 +4,6 @@ ofDxSharedTextureExample
This example shows how to use the the WGL_NV_DX_interop extension (see [here](http://developer.download.nvidia.com/opengl/specs/WGL_NV_DX_interop.txt)) to share the content of a D3D texture with openFrameworks.
This is not an end in itself but should be seen as a stepping stone to achieve more advanced goals (accelerated rendering using windows technology, hardware video decoding using Media Foundation, ...). Indeed most of the time the proper way of accessing hardware accelerated capabilities (DXVA, Windows H264 decoder, ...) you need to go through a Direct3D surface which has hindered the development of hardware accelerated path for openGL applications in Windows.
-#Prerequisites
-
-This extension is supported by the latest release of GLEW but not the one shipped with openFrameworks.
-Prior to compiling this example you need to replace the GLEW headers and libraries from your of\libs foler by the one present in the lib folder of this repository.
-
-On top of that this addon is built against the Direct X SDK of June 2010. You'll need to install it to have the headers required for compiling the example. At the time of writing, you can download it on the [Microsoft website](http://www.microsoft.com/en-us/download/details.aspx?id=6812)
-
-
#Description of the example
This application first creates a D3D window in a spearate thread, and ensure synchronization between the two threads.
@@ -27,9 +19,13 @@ This extension can be used with D3D9, D3D10 and D3D11.
#Compatibility
+OpenFrameworks 0.10.0, Visual Studio 2017, Windows 10
+
This is an NVIDIA extension but AMD/ATI cards claims they support it was well, even though sometimes it gets more finicky.
Feedbacks on working/not working cards and drivers are more than welcomed.
+
+
diff --git a/addons.make b/addons.make
new file mode 100644
index 0000000..c041aeb
--- /dev/null
+++ b/addons.make
@@ -0,0 +1,2 @@
+ofxIO
+ofxPoco
diff --git a/bin/Tutorial04.fx b/bin/Tutorial04.fx
new file mode 100644
index 0000000..d14b7ce
--- /dev/null
+++ b/bin/Tutorial04.fx
@@ -0,0 +1,44 @@
+//--------------------------------------------------------------------------------------
+// File: Tutorial04.fx
+//
+// Copyright (c) Microsoft Corporation. All rights reserved.
+//--------------------------------------------------------------------------------------
+
+//--------------------------------------------------------------------------------------
+// Constant Buffer Variables
+//--------------------------------------------------------------------------------------
+cbuffer ConstantBuffer : register( b0 )
+{
+ matrix World;
+ matrix View;
+ matrix Projection;
+}
+
+//--------------------------------------------------------------------------------------
+struct VS_OUTPUT
+{
+ float4 Pos : SV_POSITION;
+ float4 Color : COLOR0;
+};
+
+//--------------------------------------------------------------------------------------
+// Vertex Shader
+//--------------------------------------------------------------------------------------
+VS_OUTPUT VS( float4 Pos : POSITION, float4 Color : COLOR )
+{
+ VS_OUTPUT output = (VS_OUTPUT)0;
+ output.Pos = mul( Pos, World );
+ output.Pos = mul( output.Pos, View );
+ output.Pos = mul( output.Pos, Projection );
+ output.Color = Color;
+ return output;
+}
+
+
+//--------------------------------------------------------------------------------------
+// Pixel Shader
+//--------------------------------------------------------------------------------------
+float4 PS( VS_OUTPUT input ) : SV_Target
+{
+ return input.Color;
+}
\ No newline at end of file
diff --git a/emptyExample.vcxproj b/emptyExample.vcxproj
deleted file mode 100644
index 67c0973..0000000
--- a/emptyExample.vcxproj
+++ /dev/null
@@ -1,116 +0,0 @@
-
-
-
-
- Debug
- Win32
-
-
- Release
- Win32
-
-
-
- {7FD42DF7-442E-479A-BA76-D0022F99702A}
- Win32Proj
- emptyExample
- ofDxSharedTextureExample
-
-
-
- Application
- Unicode
- v110
-
-
- Application
- Unicode
- true
- v110
-
-
-
-
-
-
-
-
-
-
-
-
- bin\
- obj\$(Configuration)\
- $(ProjectName)_debug
- false
- true
- $(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(DXSDK_DIR)Include;;$(WindowsSDK_IncludePath);
- $(WindowsSDK_LibraryPath_x86);$(VCInstallDir)lib;$(VCInstallDir)atlmfc\lib;$(DXSDK_DIR)Lib\x86;
-
-
- bin\
- obj\$(Configuration)\
- false
- $(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(DXSDK_DIR)Include;;$(WindowsSDK_IncludePath);
- $(WindowsSDK_LibraryPath_x86);$(VCInstallDir)lib;$(VCInstallDir)atlmfc\lib;$(DXSDK_DIR)Lib\x86;
-
-
-
- Disabled
- true
- EnableFastChecks
- _XM_NO_INTRINSICS_;%(PreprocessorDefinitions)
- MultiThreadedDebugDLL
- Level3
- EditAndContinue
- $(DXSDK_DIR)Include;%(AdditionalIncludeDirectories);src
- CompileAsCpp
-
-
- true
- Console
- false
- %(AdditionalDependencies);d3d11.lib;d3dcompiler.lib;d3dx11d.lib;d3dx9d.lib;dxerr.lib;dxguid.lib;winmm.lib;comctl32.lib;
- %(AdditionalLibraryDirectories)
- msimg32.lib;PocoFoundationmdd.lib;atlthunk.lib;msvcrt;libcmt;LIBC;LIBCMTD;
- false
- false
-
-
-
-
- false
- _XM_NO_INTRINSICS_;%(PreprocessorDefinitions)
- MultiThreadedDLL
- Level3
- $(DXSDK_DIR)Include;%(AdditionalIncludeDirectories);src
- CompileAsCpp
-
-
- false
- true
- Console
- true
- true
- false
- %(AdditionalDependencies);d3d11.lib;d3dcompiler.lib;d3dx11d.lib;d3dx9d.lib;dxerr.lib;dxguid.lib;winmm.lib;comctl32.lib;
- %(AdditionalLibraryDirectories)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {5837595d-aca9-485c-8e76-729040ce4b0b}
-
-
-
-
\ No newline at end of file
diff --git a/emptyExample.vcxproj.filters b/emptyExample.vcxproj.filters
deleted file mode 100644
index 9e6bc1b..0000000
--- a/emptyExample.vcxproj.filters
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
-
-
- src
-
-
- src
-
-
- src
-
-
-
-
- {d8376475-7454-4a24-b08a-aac121d3ad6f}
-
-
-
-
- src
-
-
- src
-
-
- src
-
-
-
\ No newline at end of file
diff --git a/icon.rc b/icon.rc
index 97f3db2..7e26eb3 100644
--- a/icon.rc
+++ b/icon.rc
@@ -2,7 +2,7 @@
#define MAIN_ICON 102
#if defined(_DEBUG)
-MAIN_ICON ICON "..\..\..\libs\openFrameworksCompiled\project\vs\icon_debug.ico"
+MAIN_ICON ICON "icon_debug.ico"
#else
-MAIN_ICON ICON "..\..\..\libs\openFrameworksCompiled\project\vs\icon.ico"
+MAIN_ICON ICON "icon.ico"
#endif
diff --git a/libs/glew-1.10.0-win32.zip b/libs/glew-1.10.0-win32.zip
deleted file mode 100644
index aa0840b..0000000
Binary files a/libs/glew-1.10.0-win32.zip and /dev/null differ
diff --git a/ofDXsharedTextureExample.filters b/ofDXsharedTextureExample.filters
new file mode 100644
index 0000000..3383116
--- /dev/null
+++ b/ofDXsharedTextureExample.filters
@@ -0,0 +1,612 @@
+
+
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ addons\ofxIO\libs\brotli\src\common
+
+
+ addons\ofxIO\libs\brotli\src\dec
+
+
+ addons\ofxIO\libs\brotli\src\dec
+
+
+ addons\ofxIO\libs\brotli\src\dec
+
+
+ addons\ofxIO\libs\brotli\src\dec
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\lz4\src
+
+
+ addons\ofxIO\libs\ofxIO\src
+
+
+ addons\ofxIO\libs\ofxIO\src
+
+
+ addons\ofxIO\libs\ofxIO\src
+
+
+ addons\ofxIO\libs\ofxIO\src
+
+
+ addons\ofxIO\libs\ofxIO\src
+
+
+ addons\ofxIO\libs\ofxIO\src
+
+
+ addons\ofxIO\libs\ofxIO\src
+
+
+ addons\ofxIO\libs\ofxIO\src
+
+
+ addons\ofxIO\libs\ofxIO\src
+
+
+ addons\ofxIO\libs\ofxIO\src
+
+
+ addons\ofxIO\libs\ofxIO\src
+
+
+ addons\ofxIO\libs\ofxIO\src
+
+
+ addons\ofxIO\libs\ofxIO\src
+
+
+ addons\ofxIO\libs\ofxIO\src
+
+
+ addons\ofxIO\libs\ofxIO\src
+
+
+ addons\ofxIO\libs\ofxIO\src
+
+
+ addons\ofxIO\libs\ofxIO\src
+
+
+ addons\ofxIO\libs\ofxIO\src
+
+
+ addons\ofxIO\libs\ofxIO\src
+
+
+ addons\ofxIO\libs\ofxIO\src
+
+
+ addons\ofxIO\libs\ofxIO\src
+
+
+ addons\ofxIO\libs\ofxIO\src
+
+
+ addons\ofxIO\libs\ofxIO\src
+
+
+ addons\ofxIO\libs\ofxIO\src
+
+
+ addons\ofxIO\libs\ofxIO\src
+
+
+ addons\ofxIO\libs\ofxIO\src
+
+
+ addons\ofxIO\libs\ofxIO\src
+
+
+ addons\ofxIO\libs\ofxIO\src
+
+
+ addons\ofxIO\libs\ofxIO\src
+
+
+ addons\ofxIO\libs\ofxIO\src
+
+
+ addons\ofxIO\libs\ofxIO\src
+
+
+ addons\ofxIO\libs\ofxIO\src
+
+
+ addons\ofxIO\libs\ofxIO\src
+
+
+ addons\ofxIO\libs\snappy\src
+
+
+ addons\ofxIO\libs\snappy\src
+
+
+ addons\ofxIO\libs\snappy\src
+
+
+ addons\ofxIO\libs\snappy\src
+
+
+ addons\ofxPoco\src
+
+
+ src
+
+
+
+
+ {d8376475-7454-4a24-b08a-aac121d3ad6f}
+
+
+ {71834F65-F3A9-211E-73B8-DC85}
+
+
+ {48B8D9CB-CC4C-1B00-6588-D3A1}
+
+
+ {6813DA12-42A1-A4EE-BCA3-07D7}
+
+
+ {57E40924-CBBB-EBB8-B83E-54E8}
+
+
+ {CDF09F22-4242-5549-389C-157E}
+
+
+ {84333A72-79E1-2EAF-EA52-633A}
+
+
+ {0677E59E-4A96-8DBE-AA1C-6186}
+
+
+ {2075B7F8-01E4-1557-B00A-778D}
+
+
+ {F02822E5-83D7-951C-4138-82E0}
+
+
+ {CEF5BDB0-EDC0-946E-7943-04D0}
+
+
+ {C169BC4E-811E-FBE9-E3A5-7721}
+
+
+ {ED6824B9-7280-B093-D52B-45A5}
+
+
+ {CD8E5EE9-E861-19A2-C99E-A1D8}
+
+
+ {4699AB23-ACC4-DA3D-D325-19E8}
+
+
+ {88E3B8FF-C114-67AE-0946-7844}
+
+
+ {9EC4E0DB-2AF5-99A4-6089-A4A3}
+
+
+ {6AE3C651-7161-D412-8F80-E439}
+
+
+ {53B75BEF-81B2-6EEE-3C27-E6FF}
+
+
+ {7BBBDCCA-0FD0-364F-0E8A-66DF}
+
+
+ {7188EC88-B3EF-DCF2-52BA-A67D}
+
+
+ {A132540E-8F45-87AF-7038-AE3D}
+
+
+ {3256AE3E-9B29-EA27-C842-CE6B}
+
+
+ {C7D4269D-D8A9-A7BB-531B-98DA}
+
+
+
+
+ src
+
+
+ src
+
+
+ addons\ofxIO\src
+
+
+ addons\ofxIO\libs\alphanum\include
+
+
+ addons\ofxIO\libs\brotli\src\common
+
+
+ addons\ofxIO\libs\brotli\src\common
+
+
+ addons\ofxIO\libs\brotli\src\common
+
+
+ addons\ofxIO\libs\brotli\src\common
+
+
+ addons\ofxIO\libs\brotli\src\dec
+
+
+ addons\ofxIO\libs\brotli\src\dec
+
+
+ addons\ofxIO\libs\brotli\src\dec
+
+
+ addons\ofxIO\libs\brotli\src\dec
+
+
+ addons\ofxIO\libs\brotli\src\dec
+
+
+ addons\ofxIO\libs\brotli\src\dec
+
+
+ addons\ofxIO\libs\brotli\src\dec
+
+
+ addons\ofxIO\libs\brotli\src\dec
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\tools
+
+
+ addons\ofxIO\libs\lz4\src
+
+
+ addons\ofxIO\libs\ofxIO\include\ofx
+
+
+ addons\ofxIO\libs\ofxIO\include\ofx
+
+
+ addons\ofxIO\libs\ofxIO\include\ofx\IO
+
+
+ addons\ofxIO\libs\ofxIO\include\ofx\IO
+
+
+ addons\ofxIO\libs\ofxIO\include\ofx\IO
+
+
+ addons\ofxIO\libs\ofxIO\include\ofx\IO
+
+
+ addons\ofxIO\libs\ofxIO\include\ofx\IO
+
+
+ addons\ofxIO\libs\ofxIO\include\ofx\IO
+
+
+ addons\ofxIO\libs\ofxIO\include\ofx\IO
+
+
+ addons\ofxIO\libs\ofxIO\include\ofx\IO
+
+
+ addons\ofxIO\libs\ofxIO\include\ofx\IO
+
+
+ addons\ofxIO\libs\ofxIO\include\ofx\IO
+
+
+ addons\ofxIO\libs\ofxIO\include\ofx\IO
+
+
+ addons\ofxIO\libs\ofxIO\include\ofx\IO
+
+
+ addons\ofxIO\libs\ofxIO\include\ofx\IO
+
+
+ addons\ofxIO\libs\ofxIO\include\ofx\IO
+
+
+ addons\ofxIO\libs\ofxIO\include\ofx\IO
+
+
+ addons\ofxIO\libs\ofxIO\include\ofx\IO
+
+
+ addons\ofxIO\libs\ofxIO\include\ofx\IO
+
+
+ addons\ofxIO\libs\ofxIO\include\ofx\IO
+
+
+ addons\ofxIO\libs\ofxIO\include\ofx\IO
+
+
+ addons\ofxIO\libs\ofxIO\include\ofx\IO
+
+
+ addons\ofxIO\libs\ofxIO\include\ofx\IO
+
+
+ addons\ofxIO\libs\ofxIO\include\ofx\IO
+
+
+ addons\ofxIO\libs\ofxIO\include\ofx\IO
+
+
+ addons\ofxIO\libs\ofxIO\include\ofx\IO
+
+
+ addons\ofxIO\libs\ofxIO\include\ofx\IO
+
+
+ addons\ofxIO\libs\ofxIO\include\ofx\IO
+
+
+ addons\ofxIO\libs\ofxIO\include\ofx\IO
+
+
+ addons\ofxIO\libs\ofxIO\include\ofx\IO
+
+
+ addons\ofxIO\libs\ofxIO\include\ofx\IO
+
+
+ addons\ofxIO\libs\ofxIO\include\ofx\IO
+
+
+ addons\ofxIO\libs\ofxIO\include\ofx\IO
+
+
+ addons\ofxIO\libs\ofxIO\include\ofx\IO
+
+
+ addons\ofxIO\libs\ofxIO\include\ofx\IO
+
+
+ addons\ofxIO\libs\ofxIO\include\ofx\IO
+
+
+ addons\ofxIO\libs\ofxIO\include\ofx
+
+
+ addons\ofxIO\libs\ofxIO\include\ofx
+
+
+ addons\ofxIO\libs\ofxIO\include\ofx
+
+
+ addons\ofxIO\libs\ofxIO\include\ofx
+
+
+ addons\ofxIO\libs\ofxIO\include\ofx
+
+
+ addons\ofxIO\libs\ofxIO\include\ofx
+
+
+ addons\ofxIO\libs\snappy\src
+
+
+ addons\ofxIO\libs\snappy\src
+
+
+ addons\ofxIO\libs\snappy\src
+
+
+ addons\ofxIO\libs\snappy\src
+
+
+ addons\ofxIO\libs\snappy\src
+
+
+ addons\ofxIO\libs\snappy\src
+
+
+ addons\ofxPoco\src
+
+
+ src
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ofDxSharedTextureExample.sln b/ofDxSharedTextureExample.sln
index 197d7ae..177bc6d 100644
--- a/ofDxSharedTextureExample.sln
+++ b/ofDxSharedTextureExample.sln
@@ -1,23 +1,33 @@
Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 2012
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "emptyExample", "emptyExample.vcxproj", "{7FD42DF7-442E-479A-BA76-D0022F99702A}"
+# Visual Studio 15
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ofDxSharedTextureExample", "ofDxSharedTextureExample.vcxproj", "{7FD42DF7-442E-479A-BA76-D0022F99702A}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "openframeworksLib", "..\..\..\libs\openFrameworksCompiled\project\vs\openframeworksLib.vcxproj", "{5837595D-ACA9-485C-8E76-729040CE4B0B}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
+ Debug|x64 = Debug|x64
Release|Win32 = Release|Win32
+ Release|x64 = Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{7FD42DF7-442E-479A-BA76-D0022F99702A}.Debug|Win32.ActiveCfg = Debug|Win32
{7FD42DF7-442E-479A-BA76-D0022F99702A}.Debug|Win32.Build.0 = Debug|Win32
+ {7FD42DF7-442E-479A-BA76-D0022F99702A}.Debug|x64.ActiveCfg = Debug|x64
+ {7FD42DF7-442E-479A-BA76-D0022F99702A}.Debug|x64.Build.0 = Debug|x64
{7FD42DF7-442E-479A-BA76-D0022F99702A}.Release|Win32.ActiveCfg = Release|Win32
{7FD42DF7-442E-479A-BA76-D0022F99702A}.Release|Win32.Build.0 = Release|Win32
+ {7FD42DF7-442E-479A-BA76-D0022F99702A}.Release|x64.ActiveCfg = Release|x64
+ {7FD42DF7-442E-479A-BA76-D0022F99702A}.Release|x64.Build.0 = Release|x64
{5837595D-ACA9-485C-8E76-729040CE4B0B}.Debug|Win32.ActiveCfg = Debug|Win32
{5837595D-ACA9-485C-8E76-729040CE4B0B}.Debug|Win32.Build.0 = Debug|Win32
+ {5837595D-ACA9-485C-8E76-729040CE4B0B}.Debug|x64.ActiveCfg = Debug|x64
+ {5837595D-ACA9-485C-8E76-729040CE4B0B}.Debug|x64.Build.0 = Debug|x64
{5837595D-ACA9-485C-8E76-729040CE4B0B}.Release|Win32.ActiveCfg = Release|Win32
{5837595D-ACA9-485C-8E76-729040CE4B0B}.Release|Win32.Build.0 = Release|Win32
+ {5837595D-ACA9-485C-8E76-729040CE4B0B}.Release|x64.ActiveCfg = Release|x64
+ {5837595D-ACA9-485C-8E76-729040CE4B0B}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/ofDxSharedTextureExample.vcxproj b/ofDxSharedTextureExample.vcxproj
new file mode 100644
index 0000000..26ebbfb
--- /dev/null
+++ b/ofDxSharedTextureExample.vcxproj
@@ -0,0 +1,381 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Debug
+ x64
+
+
+ Release
+ Win32
+
+
+ Release
+ x64
+
+
+
+ $([Microsoft.Build.Utilities.ToolLocationHelper]::GetLatestSDKTargetPlatformVersion('Windows', '10.0'))
+ $(LatestTargetPlatformVersion)
+ $(WindowsTargetPlatformVersion)
+
+
+ {7FD42DF7-442E-479A-BA76-D0022F99702A}
+ Win32Proj
+ ofDxSharedTextureExample
+
+
+
+ Application
+ Unicode
+ v141
+
+
+ Application
+ Unicode
+ v141
+
+
+ Application
+ Unicode
+ true
+ v141
+
+
+ Application
+ Unicode
+ true
+ v141
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ bin\
+ obj\$(Configuration)\
+ $(ProjectName)_debug
+ true
+ true
+
+
+ bin\
+ obj\$(Configuration)\
+ $(ProjectName)_debug
+ true
+ true
+
+
+ bin\
+ obj\$(Configuration)\
+ false
+
+
+ bin\
+ obj\$(Configuration)\
+ false
+
+
+
+ Disabled
+ EnableFastChecks
+ %(PreprocessorDefinitions)
+ MultiThreadedDebugDLL
+ Level3
+ %(AdditionalIncludeDirectories);src;..\..\..\addons\ofxIO\libs;..\..\..\addons\ofxIO\libs\alphanum;..\..\..\addons\ofxIO\libs\alphanum\include;..\..\..\addons\ofxIO\libs\brotli;..\..\..\addons\ofxIO\libs\brotli\src;..\..\..\addons\ofxIO\libs\brotli\src\common;..\..\..\addons\ofxIO\libs\brotli\src\dec;..\..\..\addons\ofxIO\libs\brotli\src\enc;..\..\..\addons\ofxIO\libs\brotli\src\tools;..\..\..\addons\ofxIO\libs\lz4;..\..\..\addons\ofxIO\libs\lz4\src;..\..\..\addons\ofxIO\libs\ofxIO;..\..\..\addons\ofxIO\libs\ofxIO\include;..\..\..\addons\ofxIO\libs\ofxIO\include\ofx;..\..\..\addons\ofxIO\libs\ofxIO\include\ofx\IO;..\..\..\addons\ofxIO\libs\ofxIO\src;..\..\..\addons\ofxIO\libs\snappy;..\..\..\addons\ofxIO\libs\snappy\src;..\..\..\addons\ofxIO\src;..\..\..\addons\ofxPoco\libs\poco\include;..\..\..\addons\ofxPoco\src
+ CompileAsCpp
+ $(IntDir)/%(RelativeDir)/
+ -DPOCO_STATIC
+
+
+ true
+ Console
+ false
+ %(AdditionalDependencies);PocoCryptomdd.lib;PocoDatamdd.lib;PocoDataSQLitemdd.lib;PocoFoundationmdd.lib;PocoJSONmdd.lib;PocoNetmdd.lib;PocoNetSSLmdd.lib;PocoPDFmdd.lib;PocoUtilmdd.lib;PocoXMLmdd.lib;PocoZipmdd.lib;iphlpapi.lib
+ %(AdditionalLibraryDirectories);..\..\..\addons\ofxPoco\libs\poco\lib\vs\Win32\Debug;..\..\..\addons\ofxPoco
+
+
+
+
+
+ Disabled
+ EnableFastChecks
+ %(PreprocessorDefinitions)
+ MultiThreadedDebugDLL
+ Level3
+ %(AdditionalIncludeDirectories);src;..\..\..\addons\ofxIO\libs;..\..\..\addons\ofxIO\libs\alphanum;..\..\..\addons\ofxIO\libs\alphanum\include;..\..\..\addons\ofxIO\libs\brotli;..\..\..\addons\ofxIO\libs\brotli\src;..\..\..\addons\ofxIO\libs\brotli\src\common;..\..\..\addons\ofxIO\libs\brotli\src\dec;..\..\..\addons\ofxIO\libs\brotli\src\enc;..\..\..\addons\ofxIO\libs\brotli\src\tools;..\..\..\addons\ofxIO\libs\lz4;..\..\..\addons\ofxIO\libs\lz4\src;..\..\..\addons\ofxIO\libs\ofxIO;..\..\..\addons\ofxIO\libs\ofxIO\include;..\..\..\addons\ofxIO\libs\ofxIO\include\ofx;..\..\..\addons\ofxIO\libs\ofxIO\include\ofx\IO;..\..\..\addons\ofxIO\libs\ofxIO\src;..\..\..\addons\ofxIO\libs\snappy;..\..\..\addons\ofxIO\libs\snappy\src;..\..\..\addons\ofxIO\src;..\..\..\addons\ofxPoco\libs\poco\include;..\..\..\addons\ofxPoco\src
+ CompileAsCpp
+ $(IntDir)/%(RelativeDir)/
+ true
+ -DPOCO_STATIC
+
+
+ true
+ Console
+ false
+ %(AdditionalDependencies);PocoCryptomdd.lib;PocoDatamdd.lib;PocoDataSQLitemdd.lib;PocoFoundationmdd.lib;PocoJSONmdd.lib;PocoNetmdd.lib;PocoNetSSLmdd.lib;PocoPDFmdd.lib;PocoUtilmdd.lib;PocoXMLmdd.lib;PocoZipmdd.lib;iphlpapi.lib
+ %(AdditionalLibraryDirectories);..\..\..\addons\ofxPoco\libs\poco\lib\vs\x64\Debug;..\..\..\addons\ofxPoco
+
+
+
+
+
+ false
+ %(PreprocessorDefinitions)
+ MultiThreadedDLL
+ Level3
+ %(AdditionalIncludeDirectories);src;..\..\..\addons\ofxIO\libs;..\..\..\addons\ofxIO\libs\alphanum;..\..\..\addons\ofxIO\libs\alphanum\include;..\..\..\addons\ofxIO\libs\brotli;..\..\..\addons\ofxIO\libs\brotli\src;..\..\..\addons\ofxIO\libs\brotli\src\common;..\..\..\addons\ofxIO\libs\brotli\src\dec;..\..\..\addons\ofxIO\libs\brotli\src\enc;..\..\..\addons\ofxIO\libs\brotli\src\tools;..\..\..\addons\ofxIO\libs\lz4;..\..\..\addons\ofxIO\libs\lz4\src;..\..\..\addons\ofxIO\libs\ofxIO;..\..\..\addons\ofxIO\libs\ofxIO\include;..\..\..\addons\ofxIO\libs\ofxIO\include\ofx;..\..\..\addons\ofxIO\libs\ofxIO\include\ofx\IO;..\..\..\addons\ofxIO\libs\ofxIO\src;..\..\..\addons\ofxIO\libs\snappy;..\..\..\addons\ofxIO\libs\snappy\src;..\..\..\addons\ofxIO\src;..\..\..\addons\ofxPoco\libs\poco\include;..\..\..\addons\ofxPoco\src
+ CompileAsCpp
+ $(IntDir)/%(RelativeDir)/
+ true
+ -DPOCO_STATIC
+
+
+ false
+ false
+ Console
+ true
+ true
+ false
+ %(AdditionalDependencies);PocoCryptomd.lib;PocoDatamd.lib;PocoDataSQLitemd.lib;PocoFoundationmd.lib;PocoJSONmd.lib;PocoNetmd.lib;PocoNetSSLmd.lib;PocoPDFmd.lib;PocoUtilmd.lib;PocoXMLmd.lib;PocoZipmd.lib;iphlpapi.lib
+ %(AdditionalLibraryDirectories);..\..\..\addons\ofxPoco\libs\poco\lib\vs\Win32\Release;..\..\..\addons\ofxPoco
+
+
+
+
+
+ false
+ %(PreprocessorDefinitions)
+ MultiThreadedDLL
+ Level3
+ %(AdditionalIncludeDirectories);src;..\..\..\addons\ofxIO\libs;..\..\..\addons\ofxIO\libs\alphanum;..\..\..\addons\ofxIO\libs\alphanum\include;..\..\..\addons\ofxIO\libs\brotli;..\..\..\addons\ofxIO\libs\brotli\src;..\..\..\addons\ofxIO\libs\brotli\src\common;..\..\..\addons\ofxIO\libs\brotli\src\dec;..\..\..\addons\ofxIO\libs\brotli\src\enc;..\..\..\addons\ofxIO\libs\brotli\src\tools;..\..\..\addons\ofxIO\libs\lz4;..\..\..\addons\ofxIO\libs\lz4\src;..\..\..\addons\ofxIO\libs\ofxIO;..\..\..\addons\ofxIO\libs\ofxIO\include;..\..\..\addons\ofxIO\libs\ofxIO\include\ofx;..\..\..\addons\ofxIO\libs\ofxIO\include\ofx\IO;..\..\..\addons\ofxIO\libs\ofxIO\src;..\..\..\addons\ofxIO\libs\snappy;..\..\..\addons\ofxIO\libs\snappy\src;..\..\..\addons\ofxIO\src;..\..\..\addons\ofxPoco\libs\poco\include;..\..\..\addons\ofxPoco\src
+ CompileAsCpp
+ $(IntDir)/%(RelativeDir)/
+ -DPOCO_STATIC
+
+
+ false
+ false
+ Console
+ true
+ true
+ false
+ %(AdditionalDependencies);PocoCryptomd.lib;PocoDatamd.lib;PocoDataSQLitemd.lib;PocoFoundationmd.lib;PocoJSONmd.lib;PocoNetmd.lib;PocoNetSSLmd.lib;PocoPDFmd.lib;PocoUtilmd.lib;PocoXMLmd.lib;PocoZipmd.lib;iphlpapi.lib
+ %(AdditionalLibraryDirectories);..\..\..\addons\ofxPoco\libs\poco\lib\vs\x64\Release;..\..\..\addons\ofxPoco
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {5837595d-aca9-485c-8e76-729040ce4b0b}
+
+
+
+
+ /D_DEBUG %(AdditionalOptions)
+ /D_DEBUG %(AdditionalOptions)
+ $(OF_ROOT)\libs\openFrameworksCompiled\project\vs
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ofDxSharedTextureExample.vcxproj.filters b/ofDxSharedTextureExample.vcxproj.filters
new file mode 100644
index 0000000..847667b
--- /dev/null
+++ b/ofDxSharedTextureExample.vcxproj.filters
@@ -0,0 +1,606 @@
+
+
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ src
+
+
+ addons\ofxIO\libs\brotli\src\common
+
+
+ addons\ofxIO\libs\brotli\src\dec
+
+
+ addons\ofxIO\libs\brotli\src\dec
+
+
+ addons\ofxIO\libs\brotli\src\dec
+
+
+ addons\ofxIO\libs\brotli\src\dec
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\lz4\src
+
+
+ addons\ofxIO\libs\ofxIO\src
+
+
+ addons\ofxIO\libs\ofxIO\src
+
+
+ addons\ofxIO\libs\ofxIO\src
+
+
+ addons\ofxIO\libs\ofxIO\src
+
+
+ addons\ofxIO\libs\ofxIO\src
+
+
+ addons\ofxIO\libs\ofxIO\src
+
+
+ addons\ofxIO\libs\ofxIO\src
+
+
+ addons\ofxIO\libs\ofxIO\src
+
+
+ addons\ofxIO\libs\ofxIO\src
+
+
+ addons\ofxIO\libs\ofxIO\src
+
+
+ addons\ofxIO\libs\ofxIO\src
+
+
+ addons\ofxIO\libs\ofxIO\src
+
+
+ addons\ofxIO\libs\ofxIO\src
+
+
+ addons\ofxIO\libs\ofxIO\src
+
+
+ addons\ofxIO\libs\ofxIO\src
+
+
+ addons\ofxIO\libs\ofxIO\src
+
+
+ addons\ofxIO\libs\ofxIO\src
+
+
+ addons\ofxIO\libs\ofxIO\src
+
+
+ addons\ofxIO\libs\ofxIO\src
+
+
+ addons\ofxIO\libs\ofxIO\src
+
+
+ addons\ofxIO\libs\ofxIO\src
+
+
+ addons\ofxIO\libs\ofxIO\src
+
+
+ addons\ofxIO\libs\ofxIO\src
+
+
+ addons\ofxIO\libs\ofxIO\src
+
+
+ addons\ofxIO\libs\ofxIO\src
+
+
+ addons\ofxIO\libs\ofxIO\src
+
+
+ addons\ofxIO\libs\ofxIO\src
+
+
+ addons\ofxIO\libs\ofxIO\src
+
+
+ addons\ofxIO\libs\ofxIO\src
+
+
+ addons\ofxIO\libs\ofxIO\src
+
+
+ addons\ofxIO\libs\ofxIO\src
+
+
+ addons\ofxIO\libs\ofxIO\src
+
+
+ addons\ofxIO\libs\ofxIO\src
+
+
+ addons\ofxIO\libs\snappy\src
+
+
+ addons\ofxIO\libs\snappy\src
+
+
+ addons\ofxIO\libs\snappy\src
+
+
+ addons\ofxIO\libs\snappy\src
+
+
+ addons\ofxPoco\src
+
+
+
+
+ {d8376475-7454-4a24-b08a-aac121d3ad6f}
+
+
+ {71834F65-F3A9-211E-73B8-DC85}
+
+
+ {48B8D9CB-CC4C-1B00-6588-D3A1}
+
+
+ {6813DA12-42A1-A4EE-BCA3-07D7}
+
+
+ {57E40924-CBBB-EBB8-B83E-54E8}
+
+
+ {CDF09F22-4242-5549-389C-157E}
+
+
+ {84333A72-79E1-2EAF-EA52-633A}
+
+
+ {0677E59E-4A96-8DBE-AA1C-6186}
+
+
+ {2075B7F8-01E4-1557-B00A-778D}
+
+
+ {F02822E5-83D7-951C-4138-82E0}
+
+
+ {CEF5BDB0-EDC0-946E-7943-04D0}
+
+
+ {C169BC4E-811E-FBE9-E3A5-7721}
+
+
+ {ED6824B9-7280-B093-D52B-45A5}
+
+
+ {CD8E5EE9-E861-19A2-C99E-A1D8}
+
+
+ {4699AB23-ACC4-DA3D-D325-19E8}
+
+
+ {88E3B8FF-C114-67AE-0946-7844}
+
+
+ {9EC4E0DB-2AF5-99A4-6089-A4A3}
+
+
+ {6AE3C651-7161-D412-8F80-E439}
+
+
+ {53B75BEF-81B2-6EEE-3C27-E6FF}
+
+
+ {7BBBDCCA-0FD0-364F-0E8A-66DF}
+
+
+ {7188EC88-B3EF-DCF2-52BA-A67D}
+
+
+ {A132540E-8F45-87AF-7038-AE3D}
+
+
+ {3256AE3E-9B29-EA27-C842-CE6B}
+
+
+ {C7D4269D-D8A9-A7BB-531B-98DA}
+
+
+
+
+ src
+
+
+ src
+
+
+ addons\ofxIO\src
+
+
+ addons\ofxIO\libs\alphanum\include
+
+
+ addons\ofxIO\libs\brotli\src\common
+
+
+ addons\ofxIO\libs\brotli\src\common
+
+
+ addons\ofxIO\libs\brotli\src\common
+
+
+ addons\ofxIO\libs\brotli\src\common
+
+
+ addons\ofxIO\libs\brotli\src\dec
+
+
+ addons\ofxIO\libs\brotli\src\dec
+
+
+ addons\ofxIO\libs\brotli\src\dec
+
+
+ addons\ofxIO\libs\brotli\src\dec
+
+
+ addons\ofxIO\libs\brotli\src\dec
+
+
+ addons\ofxIO\libs\brotli\src\dec
+
+
+ addons\ofxIO\libs\brotli\src\dec
+
+
+ addons\ofxIO\libs\brotli\src\dec
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\enc
+
+
+ addons\ofxIO\libs\brotli\src\tools
+
+
+ addons\ofxIO\libs\lz4\src
+
+
+ addons\ofxIO\libs\ofxIO\include\ofx
+
+
+ addons\ofxIO\libs\ofxIO\include\ofx
+
+
+ addons\ofxIO\libs\ofxIO\include\ofx\IO
+
+
+ addons\ofxIO\libs\ofxIO\include\ofx\IO
+
+
+ addons\ofxIO\libs\ofxIO\include\ofx\IO
+
+
+ addons\ofxIO\libs\ofxIO\include\ofx\IO
+
+
+ addons\ofxIO\libs\ofxIO\include\ofx\IO
+
+
+ addons\ofxIO\libs\ofxIO\include\ofx\IO
+
+
+ addons\ofxIO\libs\ofxIO\include\ofx\IO
+
+
+ addons\ofxIO\libs\ofxIO\include\ofx\IO
+
+
+ addons\ofxIO\libs\ofxIO\include\ofx\IO
+
+
+ addons\ofxIO\libs\ofxIO\include\ofx\IO
+
+
+ addons\ofxIO\libs\ofxIO\include\ofx\IO
+
+
+ addons\ofxIO\libs\ofxIO\include\ofx\IO
+
+
+ addons\ofxIO\libs\ofxIO\include\ofx\IO
+
+
+ addons\ofxIO\libs\ofxIO\include\ofx\IO
+
+
+ addons\ofxIO\libs\ofxIO\include\ofx\IO
+
+
+ addons\ofxIO\libs\ofxIO\include\ofx\IO
+
+
+ addons\ofxIO\libs\ofxIO\include\ofx\IO
+
+
+ addons\ofxIO\libs\ofxIO\include\ofx\IO
+
+
+ addons\ofxIO\libs\ofxIO\include\ofx\IO
+
+
+ addons\ofxIO\libs\ofxIO\include\ofx\IO
+
+
+ addons\ofxIO\libs\ofxIO\include\ofx\IO
+
+
+ addons\ofxIO\libs\ofxIO\include\ofx\IO
+
+
+ addons\ofxIO\libs\ofxIO\include\ofx\IO
+
+
+ addons\ofxIO\libs\ofxIO\include\ofx\IO
+
+
+ addons\ofxIO\libs\ofxIO\include\ofx\IO
+
+
+ addons\ofxIO\libs\ofxIO\include\ofx\IO
+
+
+ addons\ofxIO\libs\ofxIO\include\ofx\IO
+
+
+ addons\ofxIO\libs\ofxIO\include\ofx\IO
+
+
+ addons\ofxIO\libs\ofxIO\include\ofx\IO
+
+
+ addons\ofxIO\libs\ofxIO\include\ofx\IO
+
+
+ addons\ofxIO\libs\ofxIO\include\ofx\IO
+
+
+ addons\ofxIO\libs\ofxIO\include\ofx\IO
+
+
+ addons\ofxIO\libs\ofxIO\include\ofx\IO
+
+
+ addons\ofxIO\libs\ofxIO\include\ofx\IO
+
+
+ addons\ofxIO\libs\ofxIO\include\ofx
+
+
+ addons\ofxIO\libs\ofxIO\include\ofx
+
+
+ addons\ofxIO\libs\ofxIO\include\ofx
+
+
+ addons\ofxIO\libs\ofxIO\include\ofx
+
+
+ addons\ofxIO\libs\ofxIO\include\ofx
+
+
+ addons\ofxIO\libs\ofxIO\include\ofx
+
+
+ addons\ofxIO\libs\snappy\src
+
+
+ addons\ofxIO\libs\snappy\src
+
+
+ addons\ofxIO\libs\snappy\src
+
+
+ addons\ofxIO\libs\snappy\src
+
+
+ addons\ofxIO\libs\snappy\src
+
+
+ addons\ofxIO\libs\snappy\src
+
+
+ addons\ofxPoco\src
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Resource.h b/src/Resource.h
deleted file mode 100644
index 83f5169..0000000
--- a/src/Resource.h
+++ /dev/null
@@ -1,29 +0,0 @@
-//{{NO_DEPENDENCIES}}
-// Microsoft Visual C++ generated include file.
-// Used by Tutorial04.rc
-//
-
-#define IDS_APP_TITLE 103
-
-#define IDR_MAINFRAME 128
-#define IDD_TUTORIAL1_DIALOG 102
-#define IDD_ABOUTBOX 103
-#define IDM_ABOUT 104
-#define IDM_EXIT 105
-#define IDI_TUTORIAL1 107
-#define IDI_SMALL 108
-#define IDC_TUTORIAL1 109
-#define IDC_MYICON 2
-#define IDC_STATIC -1
-// Next default values for new objects
-//
-#ifdef APSTUDIO_INVOKED
-#ifndef APSTUDIO_READONLY_SYMBOLS
-
-#define _APS_NO_MFC 130
-#define _APS_NEXT_RESOURCE_VALUE 129
-#define _APS_NEXT_COMMAND_VALUE 32771
-#define _APS_NEXT_CONTROL_VALUE 1000
-#define _APS_NEXT_SYMED_VALUE 110
-#endif
-#endif
diff --git a/src/Tutorial04.rc b/src/Tutorial04.rc
deleted file mode 100644
index 12441d1..0000000
--- a/src/Tutorial04.rc
+++ /dev/null
@@ -1,127 +0,0 @@
-//Microsoft Visual C++ generated resource script.
-//
-#include "resource.h"
-
-#define APSTUDIO_READONLY_SYMBOLS
-/////////////////////////////////////////////////////////////////////////////
-//
-// Generated from the TEXTINCLUDE 2 resource.
-//
-#define APSTUDIO_HIDDEN_SYMBOLS
-#include "windows.h"
-#undef APSTUDIO_HIDDEN_SYMBOLS
-/////////////////////////////////////////////////////////////////////////////
-#undef APSTUDIO_READONLY_SYMBOLS
-
-#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
-LANGUAGE 9, 1
-#pragma code_page(1252)
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Icon
-//
-
-// Icon with lowest ID value placed first to ensure application icon
-// remains consistent on all systems.
-
-IDI_TUTORIAL1 ICON "directx.ico"
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Menu
-//
-
-IDC_TUTORIAL1 MENU
-BEGIN
- POPUP "&File"
- BEGIN
- MENUITEM "E&xit", IDM_EXIT
- END
- POPUP "&Help"
- BEGIN
- MENUITEM "&About ...", IDM_ABOUT
- END
-END
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Accelerator
-//
-
-IDC_TUTORIAL1 ACCELERATORS
-BEGIN
- "?", IDM_ABOUT, ASCII, ALT
- "/", IDM_ABOUT, ASCII, ALT
-END
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Dialog
-//
-
-IDD_ABOUTBOX DIALOG 22, 17, 230, 75
-STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
-CAPTION "About"
-FONT 8, "System"
-BEGIN
- ICON IDI_TUTORIAL1,IDC_MYICON,14,9,16,16
- LTEXT "Tutorial04 Version 1.0",IDC_STATIC,49,10,119,8,SS_NOPREFIX
- LTEXT "Copyright (C) 2005",IDC_STATIC,49,20,119,8
- DEFPUSHBUTTON "OK",IDOK,195,6,30,11,WS_GROUP
-END
-
-
-#ifdef APSTUDIO_INVOKED
-/////////////////////////////////////////////////////////////////////////////
-//
-// TEXTINCLUDE
-//
-1 TEXTINCLUDE
-BEGIN
- "resource.h\0"
-END
-
-2 TEXTINCLUDE
-BEGIN
- "#define APSTUDIO_HIDDEN_SYMBOLS\r\n"
- "#include ""windows.h""\r\n"
- "#undef APSTUDIO_HIDDEN_SYMBOLS\r\n"
- "\0"
-END
-
-3 TEXTINCLUDE
-BEGIN
- "\r\n"
- "\0"
-END
-
-#endif // APSTUDIO_INVOKED
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// String Table
-//
-
-STRINGTABLE
-BEGIN
- IDC_TUTORIAL1 "Tutorial04"
- IDS_APP_TITLE "Tutorial04"
-END
-
-#endif
-/////////////////////////////////////////////////////////////////////////////
-
-
-
-#ifndef APSTUDIO_INVOKED
-/////////////////////////////////////////////////////////////////////////////
-//
-// Generated from the TEXTINCLUDE 3 resource.
-//
-
-
-/////////////////////////////////////////////////////////////////////////////
-#endif // not APSTUDIO_INVOKED
diff --git a/src/dxThread.cpp b/src/dxThread.cpp
index 3ee352a..e7a7737 100644
--- a/src/dxThread.cpp
+++ b/src/dxThread.cpp
@@ -160,12 +160,12 @@ HRESULT myDxThread::InitWindow( HINSTANCE hInstance, int nCmdShow )
wcex.cbClsExtra = 0;
wcex.cbWndExtra = 0;
wcex.hInstance = hInstance;
- wcex.hIcon = LoadIcon( hInstance, ( LPCTSTR )IDI_TUTORIAL1 );
+ wcex.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wcex.hCursor = LoadCursor( NULL, IDC_ARROW );
wcex.hbrBackground = ( HBRUSH )( COLOR_WINDOW + 1 );
wcex.lpszMenuName = NULL;
wcex.lpszClassName = L"TutorialWindowClass";
- wcex.hIconSm = LoadIcon( wcex.hInstance, ( LPCTSTR )IDI_TUTORIAL1 );
+ wcex.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
if( !RegisterClassEx( &wcex ) )
return E_FAIL;
@@ -184,42 +184,59 @@ HRESULT myDxThread::InitWindow( HINSTANCE hInstance, int nCmdShow )
return S_OK;
}
-
//--------------------------------------------------------------------------------------
-// Helper for compiling shaders with D3DX11
+// Helper for compiling shader
//--------------------------------------------------------------------------------------
-HRESULT CompileShaderFromFile( WCHAR* szFileName, LPCSTR szEntryPoint, LPCSTR szShaderModel, ID3DBlob** ppBlobOut )
+#pragma comment(lib,"d3dcompiler.lib")
+HRESULT CompileShaderFromFile(_In_ LPCWSTR srcFile, _In_ LPCSTR entryPoint, _In_ LPCSTR profile, _Outptr_ ID3DBlob** blob)
{
- HRESULT hr = S_OK;
+ if (!srcFile || !entryPoint || !profile || !blob)
+ return E_INVALIDARG;
+
+ *blob = nullptr;
- DWORD dwShaderFlags = D3DCOMPILE_ENABLE_STRICTNESS;
+ UINT flags = D3DCOMPILE_ENABLE_STRICTNESS;
#if defined( DEBUG ) || defined( _DEBUG )
- // Set the D3DCOMPILE_DEBUG flag to embed debug information in the shaders.
- // Setting this flag improves the shader debugging experience, but still allows
- // the shaders to be optimized and to run exactly the way they will run in
- // the release configuration of this program.
- dwShaderFlags |= D3DCOMPILE_DEBUG;
+ flags |= D3DCOMPILE_DEBUG;
#endif
- ID3DBlob* pErrorBlob;
- hr = D3DX11CompileFromFile( szFileName, NULL, NULL, szEntryPoint, szShaderModel,
- dwShaderFlags, 0, NULL, ppBlobOut, &pErrorBlob, NULL );
- if( FAILED(hr) )
+ const D3D_SHADER_MACRO defines[] =
+ {
+ "EXAMPLE_DEFINE", "1",
+ NULL, NULL
+ };
+
+ ID3DBlob* shaderBlob = nullptr;
+ ID3DBlob* errorBlob = nullptr;
+ HRESULT hr = D3DCompileFromFile(srcFile, defines, D3D_COMPILE_STANDARD_FILE_INCLUDE,
+ entryPoint, profile,
+ flags, 0, &shaderBlob, &errorBlob);
+ if (FAILED(hr))
{
- if( pErrorBlob != NULL )
- OutputDebugStringA( (char*)pErrorBlob->GetBufferPointer() );
- if( pErrorBlob ) pErrorBlob->Release();
+ if (errorBlob)
+ {
+ string err = (char*)errorBlob->GetBufferPointer();
+ cout << err << endl;
+ OutputDebugStringA((char*)errorBlob->GetBufferPointer());
+ errorBlob->Release();
+ }
+
+ if (shaderBlob)
+ shaderBlob->Release();
+
return hr;
}
- if( pErrorBlob ) pErrorBlob->Release();
- return S_OK;
+ *blob = shaderBlob;
+
+ return hr;
}
//--------------------------------------------------------------------------------------
// Create Direct3D device and swap chain
//--------------------------------------------------------------------------------------
+#pragma comment(lib,"D3D11.lib")
HRESULT myDxThread::InitDevice()
{
HRESULT hr = S_OK;
diff --git a/src/dxThread.h b/src/dxThread.h
index 4ccfcc7..6b33a25 100644
--- a/src/dxThread.h
+++ b/src/dxThread.h
@@ -4,16 +4,19 @@
#include "ofMain.h"
#include
-#include
-#include
+#include
+//#include
#include
-#include
-#include "resource.h"
+#include
+#include
+//#include
+#include
//PL: causes weird crash on my laptop if the following is not defined.... Only when running in ofThread though
#define _XM_NO_INTRINSICS_
+using namespace DirectX;
class myDxThread : public ofThread
{
@@ -23,7 +26,7 @@ private :
Poco::Event dxReady;
Poco::Event glReady;
- //--------------------------------------------------------------------------------------
+//--------------------------------------------------------------------------------------
// Global Variables
//--------------------------------------------------------------------------------------
public :
diff --git a/src/main.cpp b/src/main.cpp
index 0201775..9fc7d9d 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -3,12 +3,11 @@
//========================================================================
int main( ){
-
- ofSetupOpenGL(1024,768, OF_WINDOW); // <-------- setup the GL context
+ ofSetupOpenGL(640, 480,OF_WINDOW); // <-------- setup the GL context
// this kicks off the running of my app
// can be OF_WINDOW or OF_FULLSCREEN
// pass in width and height too:
- ofRunApp( new testApp());
+ ofRunApp(new ofApp());
}
diff --git a/src/testApp.cpp b/src/testApp.cpp
index fabcca3..6164e9b 100644
--- a/src/testApp.cpp
+++ b/src/testApp.cpp
@@ -1,19 +1,7 @@
-//ofDxSharedTexture example written by Philippe Laulheret for Second Story (secondstory.com)
-//Simple example to use nv_interop extension
-//Based on microsoft dx sdk sample
-//MIT Licensing
-
-
#include "testApp.h"
-#include "dxThread.h"
-
-#include "GL\wglew.h"
-
-
-
//--------------------------------------------------------------
-void testApp::setup(){
+void ofApp::setup(){
ofSetFrameRate(55);
@@ -21,45 +9,46 @@ void testApp::setup(){
handle_shared_texture = NULL;
gl_device = NULL;
+ ofLogToConsole();
+ ofSetLogLevel(OF_LOG_VERBOSE);
//We run direct3d rendering in a separate thread to be closer to a real life situation
- dxThread = new myDxThread();
- dxThread->startThread(true,false);
+ dxThread = new myDxThread();
+ dxThread->startThread(false);
// With D3D11, we need to be sure nothing is being rendered on the device/texture while we open it up.
// So here's some simple synchronization mechanism to make sure of it
- dxThread->waitForDxReady();
+ dxThread->waitForDxReady();
gl_device = wglDXOpenDeviceNV(dxThread->g_pd3dDevice);
- if (! gl_device) ofLogError("dxTest","Error while opening shared device");
-
+ if (!gl_device) ofLogError("dxTest", "Error while opening shared device");
+
ID3D11Texture2D* p_backBuffer;
- dxThread->g_pSwapChain->GetBuffer(0, __uuidof(ID3D11Texture2D), (LPVOID *)&p_backBuffer);
+ dxThread->g_pSwapChain->GetBuffer(0, __uuidof(ID3D11Texture2D), (LPVOID *) &p_backBuffer);
- sharedTexture.allocate(640,480,GL_RGBA); //put the size of your window
- handle_shared_texture = wglDXRegisterObjectNV(gl_device,p_backBuffer,sharedTexture.texData.textureID,GL_TEXTURE_RECTANGLE_ARB,WGL_ACCESS_READ_ONLY_NV);
- if (!handle_shared_texture) ofLogError("dxTest","Error while opening shared texture");
+ sharedTexture.allocate(640, 480, GL_RGBA); //put the size of your window
+ handle_shared_texture = wglDXRegisterObjectNV(gl_device, p_backBuffer, sharedTexture.texData.textureID, GL_TEXTURE_RECTANGLE_ARB, WGL_ACCESS_READ_ONLY_NV);
+ if (!handle_shared_texture) ofLogError("dxTest", "Error while opening shared texture");
//Once we're done creating our thing we can kick in the rendering on the D3D side
- dxThread->notifyGlReady();
+ dxThread->notifyGlReady();
}
//--------------------------------------------------------------
-void testApp::update(){
- ofSetWindowTitle("FPS: " +ofToString(ofGetFrameRate()));
-
+void ofApp::update(){
+ ofSetWindowTitle("FPS: " + ofToString(ofGetFrameRate()));
}
//--------------------------------------------------------------
-void testApp::draw(){
- ofBackground(0,0,0);
+void ofApp::draw(){
+ ofBackground(0, 0, 0);
//Here I'm reusing the previous synchronization object to assure that nothing is being rendered onto the surface while it's being used in openGL.
@@ -68,25 +57,21 @@ void testApp::draw(){
//But for the sake of simplicity, we stick for the current synced solution for this example.
dxThread->waitForDxReady();
- wglDXLockObjectsNV(gl_device,1,&handle_shared_texture); //you shouldnt use this if the opening of the device/texture failed.....
- sharedTexture.draw(0,0);
- wglDXUnlockObjectsNV(gl_device,1,&handle_shared_texture); //It appears that everything works fine if you don't unlock your object. But that's not what the specs says, so be careful.
+ wglDXLockObjectsNV(gl_device, 1, &handle_shared_texture); //you shouldnt use this if the opening of the device/texture failed.....
+ sharedTexture.draw(0, 0);
+ wglDXUnlockObjectsNV(gl_device, 1, &handle_shared_texture); //It appears that everything works fine if you don't unlock your object. But that's not what the specs says, so be careful.
dxThread->notifyGlReady();
}
-
-void testApp:: exit(ofEventArgs & args)
-{
+void ofApp::exit(ofEventArgs & args) {
cleanUp();
}
-void testApp::cleanUp()
-{
+void ofApp::cleanUp() {
//We should probably have some lock here as well.
- if (gl_device)
- {
- if (handle_shared_texture) wglDXUnregisterObjectNV(gl_device,handle_shared_texture);
+ if (gl_device) {
+ if (handle_shared_texture) wglDXUnregisterObjectNV(gl_device, handle_shared_texture);
wglDXCloseDeviceNV(gl_device);
}
gl_device = NULL;
@@ -94,47 +79,56 @@ void testApp::cleanUp()
}
//--------------------------------------------------------------
-void testApp::keyPressed(int key){
+void ofApp::keyPressed(int key){
}
//--------------------------------------------------------------
-void testApp::keyReleased(int key){
+void ofApp::keyReleased(int key){
}
//--------------------------------------------------------------
-void testApp::mouseMoved(int x, int y){
+void ofApp::mouseMoved(int x, int y ){
}
//--------------------------------------------------------------
-void testApp::mouseDragged(int x, int y, int button){
+void ofApp::mouseDragged(int x, int y, int button){
}
//--------------------------------------------------------------
-void testApp::mousePressed(int x, int y, int button){
+void ofApp::mousePressed(int x, int y, int button){
}
//--------------------------------------------------------------
-void testApp::mouseReleased(int x, int y, int button){
+void ofApp::mouseReleased(int x, int y, int button){
}
//--------------------------------------------------------------
-void testApp::windowResized(int w, int h){
+void ofApp::mouseEntered(int x, int y){
}
//--------------------------------------------------------------
-void testApp::gotMessage(ofMessage msg){
+void ofApp::mouseExited(int x, int y){
}
//--------------------------------------------------------------
-void testApp::dragEvent(ofDragInfo dragInfo){
+void ofApp::windowResized(int w, int h){
}
+//--------------------------------------------------------------
+void ofApp::gotMessage(ofMessage msg){
+
+}
+
+//--------------------------------------------------------------
+void ofApp::dragEvent(ofDragInfo dragInfo){
+
+}
diff --git a/src/testApp.h b/src/testApp.h
index 33460ea..659d548 100644
--- a/src/testApp.h
+++ b/src/testApp.h
@@ -1,19 +1,11 @@
-//ofDxSharedTexture example written by Philippe Laulheret for Second Story
-//Simple example to use nv_interop extension
-//Based on microsoft dx sdk sample
-//MIT Licensing
-
#pragma once
#include "ofMain.h"
-
#include "dxThread.h"
-class testApp : public ofBaseApp{
-
+class ofApp : public ofBaseApp{
public:
-
ofTexture sharedTexture;
HANDLE gl_device;
HANDLE handle_shared_texture;
@@ -21,19 +13,21 @@ class testApp : public ofBaseApp{
myDxThread *dxThread;
void cleanUp();
-
void setup();
void update();
void draw();
void exit(ofEventArgs & args);
-
+
void keyPressed(int key);
void keyReleased(int key);
- void mouseMoved(int x, int y);
+ void mouseMoved(int x, int y );
void mouseDragged(int x, int y, int button);
void mousePressed(int x, int y, int button);
void mouseReleased(int x, int y, int button);
+ void mouseEntered(int x, int y);
+ void mouseExited(int x, int y);
void windowResized(int w, int h);
void dragEvent(ofDragInfo dragInfo);
void gotMessage(ofMessage msg);
+
};