summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ARMFCaptureD3D/ARAnalyse.cpp1244
-rw-r--r--ARMFCaptureD3D/ARAnalyse.h143
-rw-r--r--ARMFCaptureD3D/ARMFCaptureD3D.apsbin0 -> 65600 bytes
-rw-r--r--ARMFCaptureD3D/ARMFCaptureD3D.h52
-rw-r--r--ARMFCaptureD3D/ARMFCaptureD3D.opensdfbin0 -> 24 bytes
-rw-r--r--ARMFCaptureD3D/ARMFCaptureD3D.rc198
-rw-r--r--ARMFCaptureD3D/ARMFCaptureD3D.sdfbin0 -> 48779264 bytes
-rw-r--r--ARMFCaptureD3D/ARMFCaptureD3D.sln73
-rw-r--r--ARMFCaptureD3D/ARMFCaptureD3D.sln.cache241
-rw-r--r--ARMFCaptureD3D/ARMFCaptureD3D.suobin0 -> 82944 bytes
-rw-r--r--ARMFCaptureD3D/BufferLock.h125
-rw-r--r--ARMFCaptureD3D/Calibration.cpp254
-rw-r--r--ARMFCaptureD3D/Calibration.h31
-rw-r--r--ARMFCaptureD3D/ConfigFile/AntBlueMaize.jpgbin0 -> 6533 bytes
-rw-r--r--ARMFCaptureD3D/ConfigFile/ArrowHome.gifbin0 -> 187 bytes
-rw-r--r--ARMFCaptureD3D/ConfigFile/ConfigFile.cpp142
-rw-r--r--ARMFCaptureD3D/ConfigFile/ConfigFile.h253
-rw-r--r--ARMFCaptureD3D/ConfigFile/ConfigFile.html72
-rw-r--r--ARMFCaptureD3D/ConfigFile/Makefile24
-rw-r--r--ARMFCaptureD3D/ConfigFile/README57
-rw-r--r--ARMFCaptureD3D/ConfigFile/Triplet.h34
-rw-r--r--ARMFCaptureD3D/ConfigFile/example.cpp111
-rw-r--r--ARMFCaptureD3D/ConfigFile/example.inp14
-rw-r--r--ARMFCaptureD3D/ConfigFile/main.css37
-rw-r--r--ARMFCaptureD3D/ConfigFile/test.inp83
-rw-r--r--ARMFCaptureD3D/ConfigFile/tester.cpp331
-rw-r--r--ARMFCaptureD3D/Debug/ARAnalyse.objbin0 -> 1292265 bytes
-rw-r--r--ARMFCaptureD3D/Debug/ARMFCaptureD3D.Build.CppClean.log125
-rw-r--r--ARMFCaptureD3D/Debug/ARMFCaptureD3D.exebin0 -> 873472 bytes
-rw-r--r--ARMFCaptureD3D/Debug/ARMFCaptureD3D.exe.embed.manifest15
-rw-r--r--ARMFCaptureD3D/Debug/ARMFCaptureD3D.exe.embed.manifest.resbin0 -> 744 bytes
-rw-r--r--ARMFCaptureD3D/Debug/ARMFCaptureD3D.exe.intermediate.manifest15
-rw-r--r--ARMFCaptureD3D/Debug/ARMFCaptureD3D.ilkbin0 -> 6546468 bytes
-rw-r--r--ARMFCaptureD3D/Debug/ARMFCaptureD3D.lastbuildstate2
-rw-r--r--ARMFCaptureD3D/Debug/ARMFCaptureD3D.pdbbin0 -> 6614016 bytes
-rw-r--r--ARMFCaptureD3D/Debug/ARMFCaptureD3D.resbin0 -> 668 bytes
-rw-r--r--ARMFCaptureD3D/Debug/ARMFCaptureD3D.write.1.tlog0
-rw-r--r--ARMFCaptureD3D/Debug/ARMFCaptureD3D_manifest.rcbin0 -> 218 bytes
-rw-r--r--ARMFCaptureD3D/Debug/ARToolKitPlus.dllbin0 -> 657920 bytes
-rw-r--r--ARMFCaptureD3D/Debug/ARToolKitPlus.expbin0 -> 45324 bytes
-rw-r--r--ARMFCaptureD3D/Debug/ARToolKitPlus.ilkbin0 -> 4061144 bytes
-rw-r--r--ARMFCaptureD3D/Debug/ARToolKitPlus.libbin0 -> 76238 bytes
-rw-r--r--ARMFCaptureD3D/Debug/ARToolKitPlus.pdbbin0 -> 2665472 bytes
-rw-r--r--ARMFCaptureD3D/Debug/CL.read.1.tlogbin0 -> 238784 bytes
-rw-r--r--ARMFCaptureD3D/Debug/CL.write.1.tlogbin0 -> 19216 bytes
-rw-r--r--ARMFCaptureD3D/Debug/Calibration.objbin0 -> 173762 bytes
-rw-r--r--ARMFCaptureD3D/Debug/ConfigFile.objbin0 -> 794939 bytes
-rw-r--r--ARMFCaptureD3D/Debug/Ivy.bscbin0 -> 11264 bytes
-rw-r--r--ARMFCaptureD3D/Debug/Ivy.dllbin0 -> 314368 bytes
-rw-r--r--ARMFCaptureD3D/Debug/Ivy.expbin0 -> 17114 bytes
-rw-r--r--ARMFCaptureD3D/Debug/Ivy.ilkbin0 -> 1395312 bytes
-rw-r--r--ARMFCaptureD3D/Debug/Ivy.libbin0 -> 28202 bytes
-rw-r--r--ARMFCaptureD3D/Debug/Ivy.pdbbin0 -> 2878464 bytes
-rw-r--r--ARMFCaptureD3D/Debug/MFCaptureD3D.exebin0 -> 72704 bytes
-rw-r--r--ARMFCaptureD3D/Debug/MFCaptureD3D.lastbuildstate2
-rw-r--r--ARMFCaptureD3D/Debug/MFCaptureD3D.libbin0 -> 2308 bytes
-rw-r--r--ARMFCaptureD3D/Debug/MFCaptureD3D.log59
-rw-r--r--ARMFCaptureD3D/Debug/MFCaptureD3D.unsuccessfulbuild0
-rw-r--r--ARMFCaptureD3D/Debug/ResolveAssemblyReference.cachebin0 -> 1520 bytes
-rw-r--r--ARMFCaptureD3D/Debug/cl.command.1.tlogbin0 -> 8922 bytes
-rw-r--r--ARMFCaptureD3D/Debug/debug.objbin0 -> 215105 bytes
-rw-r--r--ARMFCaptureD3D/Debug/link-cvtres.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link-cvtres.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.1424-cvtres.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.1424-cvtres.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.1424.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.1424.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.2360-cvtres.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.2360-cvtres.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.2360.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.2360.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.2364-cvtres.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.2364-cvtres.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.2364.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.2364.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.2468-cvtres.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.2468-cvtres.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.2468.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.2468.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.2948-cvtres.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.2948-cvtres.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.2948.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.2948.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.3132-cvtres.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.3132-cvtres.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.3132.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.3132.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.3244-cvtres.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.3244-cvtres.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.3244.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.3244.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.3672-cvtres.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.3672-cvtres.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.3672.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.3672.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.3720-cvtres.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.3720-cvtres.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.3720.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.3720.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.3844-cvtres.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.3844-cvtres.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.3844.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.3844.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.4036-cvtres.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.4036-cvtres.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.4036.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.4036.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.4200-cvtres.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.4200-cvtres.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.4200.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.4200.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.4460-cvtres.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.4460-cvtres.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.4460.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.4460.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.4716-cvtres.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.4716-cvtres.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.4716.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.4716.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.4948-cvtres.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.4948-cvtres.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.4948.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.4948.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.5368-cvtres.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.5368-cvtres.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.5368.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.5368.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.5624-cvtres.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.5624-cvtres.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.5624.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.5624.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.5656-cvtres.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.5656-cvtres.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.5656.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.5656.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.5752-cvtres.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.5752-cvtres.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.5752.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.5752.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.5868-cvtres.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.5868-cvtres.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.5868.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.5868.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.6132-cvtres.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.6132-cvtres.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.6132.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.6132.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.6264-cvtres.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.6264-cvtres.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.6264.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.6264.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.6468-cvtres.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.6468-cvtres.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.6468.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.6468.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.6716-cvtres.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.6716-cvtres.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.6716.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.6716.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.6724-cvtres.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.6724-cvtres.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.6724.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.6724.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.6772-cvtres.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.6772-cvtres.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.6772.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.6772.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.6844-cvtres.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.6844-cvtres.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.6844.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.6844.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.6928-cvtres.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.6928-cvtres.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.6928.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.6928.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.6968-cvtres.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.6968-cvtres.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.6968.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.6968.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.6996-cvtres.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.6996-cvtres.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.6996.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.6996.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.7096-cvtres.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.7096-cvtres.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.7096.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.7096.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.7232-cvtres.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.7232-cvtres.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.7232.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.7232.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.7240-cvtres.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.7240-cvtres.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.7240.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.7240.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.7416-cvtres.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.7416-cvtres.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.7416.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.7416.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.7960-cvtres.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.7960-cvtres.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.7960.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.7960.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/Debug/link.command.1.tlogbin0 -> 4428 bytes
-rw-r--r--ARMFCaptureD3D/Debug/link.read.1.tlogbin0 -> 7762 bytes
-rw-r--r--ARMFCaptureD3D/Debug/link.write.1.tlogbin0 -> 2948 bytes
-rw-r--r--ARMFCaptureD3D/Debug/mt.command.1.tlogbin0 -> 480 bytes
-rw-r--r--ARMFCaptureD3D/Debug/mt.read.1.tlogbin0 -> 554 bytes
-rw-r--r--ARMFCaptureD3D/Debug/mt.write.1.tlogbin0 -> 454 bytes
-rw-r--r--ARMFCaptureD3D/Debug/options.objbin0 -> 225747 bytes
-rw-r--r--ARMFCaptureD3D/Debug/pcre.bscbin0 -> 11264 bytes
-rw-r--r--ARMFCaptureD3D/Debug/pcre.dllbin0 -> 265728 bytes
-rw-r--r--ARMFCaptureD3D/Debug/pcre.expbin0 -> 38611 bytes
-rw-r--r--ARMFCaptureD3D/Debug/pcre.ilkbin0 -> 606476 bytes
-rw-r--r--ARMFCaptureD3D/Debug/pcre.libbin0 -> 63630 bytes
-rw-r--r--ARMFCaptureD3D/Debug/pcre.pdbbin0 -> 896000 bytes
-rw-r--r--ARMFCaptureD3D/Debug/rc.command.1.tlogbin0 -> 1380 bytes
-rw-r--r--ARMFCaptureD3D/Debug/rc.read.1.tlogbin0 -> 3280 bytes
-rw-r--r--ARMFCaptureD3D/Debug/rc.write.1.tlogbin0 -> 798 bytes
-rw-r--r--ARMFCaptureD3D/Debug/sgetopt.objbin0 -> 28610 bytes
-rw-r--r--ARMFCaptureD3D/Debug/vc100.idbbin0 -> 1174528 bytes
-rw-r--r--ARMFCaptureD3D/Debug/vc100.pdbbin0 -> 1200128 bytes
-rw-r--r--ARMFCaptureD3D/MFCaptureD3D.apsbin0 -> 62088 bytes
-rw-r--r--ARMFCaptureD3D/MFCaptureD3D.sdfbin0 -> 45043712 bytes
-rw-r--r--ARMFCaptureD3D/MFCaptureD3D.vcproj393
-rw-r--r--ARMFCaptureD3D/MFCaptureD3D.vcxproj219
-rw-r--r--ARMFCaptureD3D/MFCaptureD3D.vcxproj.filters89
-rw-r--r--ARMFCaptureD3D/MFCaptureD3D.vcxproj.user19
-rw-r--r--ARMFCaptureD3D/MinMaxAvg.cpp31
-rw-r--r--ARMFCaptureD3D/MinMaxAvg.h18
-rw-r--r--ARMFCaptureD3D/Release/ARMFCaptureD3D.exebin0 -> 109568 bytes
-rw-r--r--ARMFCaptureD3D/Release/ARMFCaptureD3D.exe.intermediate.manifest15
-rw-r--r--ARMFCaptureD3D/Release/ARMFCaptureD3D.expbin0 -> 1006 bytes
-rw-r--r--ARMFCaptureD3D/Release/ARMFCaptureD3D.lastbuildstate2
-rw-r--r--ARMFCaptureD3D/Release/ARMFCaptureD3D.libbin0 -> 2336 bytes
-rw-r--r--ARMFCaptureD3D/Release/ARMFCaptureD3D.pdbbin0 -> 1420288 bytes
-rw-r--r--ARMFCaptureD3D/Release/ARMFCaptureD3D.resbin0 -> 668 bytes
-rw-r--r--ARMFCaptureD3D/Release/ARMFCaptureD3D.write.1.tlog15
-rw-r--r--ARMFCaptureD3D/Release/ARToolKitPlus.dllbin0 -> 188416 bytes
-rw-r--r--ARMFCaptureD3D/Release/ARToolKitPlus.expbin0 -> 45048 bytes
-rw-r--r--ARMFCaptureD3D/Release/ARToolKitPlus.libbin0 -> 75772 bytes
-rw-r--r--ARMFCaptureD3D/Release/CL.read.1.tlogbin0 -> 176572 bytes
-rw-r--r--ARMFCaptureD3D/Release/CL.write.1.tlogbin0 -> 5840 bytes
-rw-r--r--ARMFCaptureD3D/Release/Calibration.objbin0 -> 968849 bytes
-rw-r--r--ARMFCaptureD3D/Release/ConfigFile.objbin0 -> 875046 bytes
-rw-r--r--ARMFCaptureD3D/Release/MFCaptureD3D.log19
-rw-r--r--ARMFCaptureD3D/Release/cl.command.1.tlogbin0 -> 8168 bytes
-rw-r--r--ARMFCaptureD3D/Release/debug.objbin0 -> 1016215 bytes
-rw-r--r--ARMFCaptureD3D/Release/device.objbin0 -> 994643 bytes
-rw-r--r--ARMFCaptureD3D/Release/link-cvtres.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/Release/link-cvtres.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/Release/link.command.1.tlogbin0 -> 4064 bytes
-rw-r--r--ARMFCaptureD3D/Release/link.read.1.tlogbin0 -> 7342 bytes
-rw-r--r--ARMFCaptureD3D/Release/link.write.1.tlogbin0 -> 2412 bytes
-rw-r--r--ARMFCaptureD3D/Release/mt.command.1.tlogbin0 -> 626 bytes
-rw-r--r--ARMFCaptureD3D/Release/mt.read.1.tlogbin0 -> 990 bytes
-rw-r--r--ARMFCaptureD3D/Release/mt.write.1.tlogbin0 -> 432 bytes
-rw-r--r--ARMFCaptureD3D/Release/options.objbin0 -> 654713 bytes
-rw-r--r--ARMFCaptureD3D/Release/preview.objbin0 -> 1349578 bytes
-rw-r--r--ARMFCaptureD3D/Release/rc.command.1.tlogbin0 -> 684 bytes
-rw-r--r--ARMFCaptureD3D/Release/rc.read.1.tlogbin0 -> 2756 bytes
-rw-r--r--ARMFCaptureD3D/Release/rc.write.1.tlogbin0 -> 370 bytes
-rw-r--r--ARMFCaptureD3D/Release/vc100.pdbbin0 -> 667648 bytes
-rw-r--r--ARMFCaptureD3D/Release/winmain.objbin0 -> 1134140 bytes
-rw-r--r--ARMFCaptureD3D/Setup/Release/Install ARIvy X64.msibin0 -> 1049088 bytes
-rw-r--r--ARMFCaptureD3D/Setup/Release/setup.exebin0 -> 437760 bytes
-rw-r--r--ARMFCaptureD3D/Setup/Setup.vdproj1009
-rw-r--r--ARMFCaptureD3D/UpgradeLog.XML16
-rw-r--r--ARMFCaptureD3D/UpgradeLog2.XML17
-rw-r--r--ARMFCaptureD3D/UpgradeLog3.XML15
-rw-r--r--ARMFCaptureD3D/_UpgradeReport_Files/UpgradeReport.css207
-rw-r--r--ARMFCaptureD3D/_UpgradeReport_Files/UpgradeReport.xslt232
-rw-r--r--ARMFCaptureD3D/_UpgradeReport_Files/UpgradeReport_Minus.gifbin0 -> 69 bytes
-rw-r--r--ARMFCaptureD3D/_UpgradeReport_Files/UpgradeReport_Plus.gifbin0 -> 71 bytes
-rw-r--r--ARMFCaptureD3D/data/Logitech_Notebook_Pro.cal2
-rw-r--r--ARMFCaptureD3D/data/One.cfg10
-rw-r--r--ARMFCaptureD3D/data/config.inp20
-rw-r--r--ARMFCaptureD3D/data/markerboard_480-499.cfg165
-rw-r--r--ARMFCaptureD3D/data/no_distortion.cal2
-rw-r--r--ARMFCaptureD3D/debug.cpp384
-rw-r--r--ARMFCaptureD3D/debug.h32
-rw-r--r--ARMFCaptureD3D/device.cpp1280
-rw-r--r--ARMFCaptureD3D/device.h93
-rw-r--r--ARMFCaptureD3D/ipch/mfcaptured3d-28a9326a/armfcaptured3d-1ab7d59.ipchbin0 -> 73334784 bytes
-rw-r--r--ARMFCaptureD3D/options.cpp1146
-rw-r--r--ARMFCaptureD3D/options.h496
-rw-r--r--ARMFCaptureD3D/preview.cpp701
-rw-r--r--ARMFCaptureD3D/preview.h97
-rw-r--r--ARMFCaptureD3D/readme.txt51
-rw-r--r--ARMFCaptureD3D/resource.h66
-rw-r--r--ARMFCaptureD3D/ribbon1.mfcribbon-ms20
-rw-r--r--ARMFCaptureD3D/toolbar1.bmpbin0 -> 238 bytes
-rw-r--r--ARMFCaptureD3D/winmain.cpp1416
-rw-r--r--ARMFCaptureD3D/x64/Debug/ARAnalyse.objbin0 -> 1427372 bytes
-rw-r--r--ARMFCaptureD3D/x64/Debug/ARMFCaptureD3D.Build.CppClean.log51
-rw-r--r--ARMFCaptureD3D/x64/Debug/ARMFCaptureD3D.exebin0 -> 457728 bytes
-rw-r--r--ARMFCaptureD3D/x64/Debug/ARMFCaptureD3D.exe.embed.manifest15
-rw-r--r--ARMFCaptureD3D/x64/Debug/ARMFCaptureD3D.exe.embed.manifest.resbin0 -> 744 bytes
-rw-r--r--ARMFCaptureD3D/x64/Debug/ARMFCaptureD3D.exe.intermediate.manifest15
-rw-r--r--ARMFCaptureD3D/x64/Debug/ARMFCaptureD3D.expbin0 -> 1030 bytes
-rw-r--r--ARMFCaptureD3D/x64/Debug/ARMFCaptureD3D.ilkbin0 -> 2485968 bytes
-rw-r--r--ARMFCaptureD3D/x64/Debug/ARMFCaptureD3D.lastbuildstate2
-rw-r--r--ARMFCaptureD3D/x64/Debug/ARMFCaptureD3D.libbin0 -> 2364 bytes
-rw-r--r--ARMFCaptureD3D/x64/Debug/ARMFCaptureD3D.pdbbin0 -> 2673664 bytes
-rw-r--r--ARMFCaptureD3D/x64/Debug/ARMFCaptureD3D.resbin0 -> 1400 bytes
-rw-r--r--ARMFCaptureD3D/x64/Debug/ARMFCaptureD3D.write.1.tlog5
-rw-r--r--ARMFCaptureD3D/x64/Debug/ARMFCaptureD3D_manifest.rcbin0 -> 228 bytes
-rw-r--r--ARMFCaptureD3D/x64/Debug/ARToolKitPlus.dllbin0 -> 868864 bytes
-rw-r--r--ARMFCaptureD3D/x64/Debug/ARToolKitPlus.libbin0 -> 78280 bytes
-rw-r--r--ARMFCaptureD3D/x64/Debug/CL.read.1.tlogbin0 -> 196296 bytes
-rw-r--r--ARMFCaptureD3D/x64/Debug/CL.write.1.tlogbin0 -> 6254 bytes
-rw-r--r--ARMFCaptureD3D/x64/Debug/Calibration.objbin0 -> 996284 bytes
-rw-r--r--ARMFCaptureD3D/x64/Debug/ConfigFile.objbin0 -> 912727 bytes
-rw-r--r--ARMFCaptureD3D/x64/Debug/Ivy.dllbin0 -> 382976 bytes
-rw-r--r--ARMFCaptureD3D/x64/Debug/Ivy.libbin0 -> 28938 bytes
-rw-r--r--ARMFCaptureD3D/x64/Debug/MFCaptureD3D.Build.CppClean.log34
-rw-r--r--ARMFCaptureD3D/x64/Debug/MFCaptureD3D.lastbuildstate2
-rw-r--r--ARMFCaptureD3D/x64/Debug/MFCaptureD3D.libbin0 -> 2336 bytes
-rw-r--r--ARMFCaptureD3D/x64/Debug/MFCaptureD3D.log254
-rw-r--r--ARMFCaptureD3D/x64/Debug/MFCaptureD3D.unsuccessfulbuild0
-rw-r--r--ARMFCaptureD3D/x64/Debug/MinMaxAvg.objbin0 -> 5729 bytes
-rw-r--r--ARMFCaptureD3D/x64/Debug/ResolveAssemblyReference.cachebin0 -> 920 bytes
-rw-r--r--ARMFCaptureD3D/x64/Debug/cl.command.1.tlogbin0 -> 9870 bytes
-rw-r--r--ARMFCaptureD3D/x64/Debug/debug.objbin0 -> 174197 bytes
-rw-r--r--ARMFCaptureD3D/x64/Debug/device.objbin0 -> 280886 bytes
-rw-r--r--ARMFCaptureD3D/x64/Debug/link-cvtres.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Debug/link-cvtres.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Debug/link.3816-cvtres.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Debug/link.3816-cvtres.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Debug/link.3816.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Debug/link.3816.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Debug/link.command.1.tlogbin0 -> 5284 bytes
-rw-r--r--ARMFCaptureD3D/x64/Debug/link.read.1.tlogbin0 -> 9946 bytes
-rw-r--r--ARMFCaptureD3D/x64/Debug/link.write.1.tlogbin0 -> 3434 bytes
-rw-r--r--ARMFCaptureD3D/x64/Debug/mt.command.1.tlogbin0 -> 504 bytes
-rw-r--r--ARMFCaptureD3D/x64/Debug/mt.read.1.tlogbin0 -> 344 bytes
-rw-r--r--ARMFCaptureD3D/x64/Debug/mt.write.1.tlogbin0 -> 470 bytes
-rw-r--r--ARMFCaptureD3D/x64/Debug/options.objbin0 -> 109877 bytes
-rw-r--r--ARMFCaptureD3D/x64/Debug/pcre.dllbin0 -> 344576 bytes
-rw-r--r--ARMFCaptureD3D/x64/Debug/pcre.libbin0 -> 65226 bytes
-rw-r--r--ARMFCaptureD3D/x64/Debug/preview.objbin0 -> 205415 bytes
-rw-r--r--ARMFCaptureD3D/x64/Debug/rc.command.1.tlogbin0 -> 1436 bytes
-rw-r--r--ARMFCaptureD3D/x64/Debug/rc.read.1.tlogbin0 -> 3296 bytes
-rw-r--r--ARMFCaptureD3D/x64/Debug/rc.write.1.tlogbin0 -> 822 bytes
-rw-r--r--ARMFCaptureD3D/x64/Debug/vc100.idbbin0 -> 1190912 bytes
-rw-r--r--ARMFCaptureD3D/x64/Debug/vc100.pdbbin0 -> 921600 bytes
-rw-r--r--ARMFCaptureD3D/x64/Debug/winmain.objbin0 -> 674374 bytes
-rw-r--r--ARMFCaptureD3D/x64/Release/ARAnalyse.objbin0 -> 1368090 bytes
-rw-r--r--ARMFCaptureD3D/x64/Release/ARMFCaptureD3D.exebin0 -> 164352 bytes
-rw-r--r--ARMFCaptureD3D/x64/Release/ARMFCaptureD3D.exe - Raccourci.lnkbin0 -> 1349 bytes
-rw-r--r--ARMFCaptureD3D/x64/Release/ARMFCaptureD3D.exe.intermediate.manifest15
-rw-r--r--ARMFCaptureD3D/x64/Release/ARMFCaptureD3D.expbin0 -> 1032 bytes
-rw-r--r--ARMFCaptureD3D/x64/Release/ARMFCaptureD3D.lastbuildstate2
-rw-r--r--ARMFCaptureD3D/x64/Release/ARMFCaptureD3D.libbin0 -> 2364 bytes
-rw-r--r--ARMFCaptureD3D/x64/Release/ARMFCaptureD3D.pdbbin0 -> 1477632 bytes
-rw-r--r--ARMFCaptureD3D/x64/Release/ARMFCaptureD3D.resbin0 -> 1400 bytes
-rw-r--r--ARMFCaptureD3D/x64/Release/ARMFCaptureD3D.write.1.tlog645
-rw-r--r--ARMFCaptureD3D/x64/Release/ARToolKitPlus.dllbin0 -> 244224 bytes
-rw-r--r--ARMFCaptureD3D/x64/Release/ARToolKitPlus.expbin0 -> 46554 bytes
-rw-r--r--ARMFCaptureD3D/x64/Release/ARToolKitPlus.libbin0 -> 78280 bytes
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.1180.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.1180.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.1284.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.1284.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.1464.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.1464.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.2096.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.2096.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.2124.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.2124.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.3024.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.3024.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.3092.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.3092.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.3364.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.3364.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.3384.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.3384.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.3544.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.3544.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.3916.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.3916.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.3924.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.3924.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.4284.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.4284.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.4332.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.4332.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.4604.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.4604.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.4640.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.4640.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.5060.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.5060.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.5172.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.5172.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.5288.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.5288.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.5404.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.5404.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.5472.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.5472.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.5488.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.5488.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.5716.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.5716.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.5736.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.5736.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.5752.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.5752.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.5804.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.5804.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.5900.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.5900.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.5956.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.5956.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.6228.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.6228.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.6368.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.6368.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.6400.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.6400.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.6428.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.6428.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.6488.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.6488.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.6748.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.6748.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.7112.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.7112.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.7176.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.7176.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.7352.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.7352.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.7400.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.7400.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.748.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.748.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.8132.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.8132.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.8248.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.8248.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.8296.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.8296.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.8776.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.8776.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.8824.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.8824.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.8856.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.8856.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.8904.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.8904.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.9148.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.9148.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.read.1.tlogbin0 -> 197208 bytes
-rw-r--r--ARMFCaptureD3D/x64/Release/CL.write.1.tlogbin0 -> 17388 bytes
-rw-r--r--ARMFCaptureD3D/x64/Release/Calibration.objbin0 -> 1182125 bytes
-rw-r--r--ARMFCaptureD3D/x64/Release/ConfigFile.objbin0 -> 875020 bytes
-rw-r--r--ARMFCaptureD3D/x64/Release/Ivy.dllbin0 -> 87040 bytes
-rw-r--r--ARMFCaptureD3D/x64/Release/Ivy.expbin0 -> 17577 bytes
-rw-r--r--ARMFCaptureD3D/x64/Release/Ivy.libbin0 -> 28938 bytes
-rw-r--r--ARMFCaptureD3D/x64/Release/MFCaptureD3D.log231
-rw-r--r--ARMFCaptureD3D/x64/Release/MinMaxAvg.objbin0 -> 7475 bytes
-rw-r--r--ARMFCaptureD3D/x64/Release/cl.command.1.tlogbin0 -> 10014 bytes
-rw-r--r--ARMFCaptureD3D/x64/Release/debug.objbin0 -> 313458 bytes
-rw-r--r--ARMFCaptureD3D/x64/Release/device.objbin0 -> 1026980 bytes
-rw-r--r--ARMFCaptureD3D/x64/Release/link-cvtres.read.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/link-cvtres.write.1.tlog1
-rw-r--r--ARMFCaptureD3D/x64/Release/link.command.1.tlogbin0 -> 5128 bytes
-rw-r--r--ARMFCaptureD3D/x64/Release/link.read.1.tlogbin0 -> 8992 bytes
-rw-r--r--ARMFCaptureD3D/x64/Release/link.write.1.tlogbin0 -> 3070 bytes
-rw-r--r--ARMFCaptureD3D/x64/Release/mt.command.1.tlogbin0 -> 650 bytes
-rw-r--r--ARMFCaptureD3D/x64/Release/mt.read.1.tlogbin0 -> 1006 bytes
-rw-r--r--ARMFCaptureD3D/x64/Release/mt.write.1.tlogbin0 -> 448 bytes
-rw-r--r--ARMFCaptureD3D/x64/Release/options.objbin0 -> 653125 bytes
-rw-r--r--ARMFCaptureD3D/x64/Release/pcre.dllbin0 -> 131072 bytes
-rw-r--r--ARMFCaptureD3D/x64/Release/pcre.expbin0 -> 39593 bytes
-rw-r--r--ARMFCaptureD3D/x64/Release/pcre.libbin0 -> 65226 bytes
-rw-r--r--ARMFCaptureD3D/x64/Release/pcre.pdbbin0 -> 699392 bytes
-rw-r--r--ARMFCaptureD3D/x64/Release/preview.objbin0 -> 1001408 bytes
-rw-r--r--ARMFCaptureD3D/x64/Release/rc.command.1.tlogbin0 -> 700 bytes
-rw-r--r--ARMFCaptureD3D/x64/Release/rc.read.1.tlogbin0 -> 2756 bytes
-rw-r--r--ARMFCaptureD3D/x64/Release/rc.write.1.tlogbin0 -> 378 bytes
-rw-r--r--ARMFCaptureD3D/x64/Release/vc100.pdbbin0 -> 733184 bytes
-rw-r--r--ARMFCaptureD3D/x64/Release/winmain.objbin0 -> 1160966 bytes
485 files changed, 13551 insertions, 0 deletions
diff --git a/ARMFCaptureD3D/ARAnalyse.cpp b/ARMFCaptureD3D/ARAnalyse.cpp
new file mode 100644
index 0000000..71b22b8
--- /dev/null
+++ b/ARMFCaptureD3D/ARAnalyse.cpp
@@ -0,0 +1,1244 @@
+
+
+#include "debug.h"
+#include <algorithm>
+
+#include "ConfigFile\ConfigFile.h"
+
+#include "ARAnalyse.h"
+extern char* narrow( const std::wstring& str );
+extern ConfigFile *g_config;
+extern std::wstring g_camera_name;
+extern int g_camera_instance;
+extern int g_ThresholdMin;
+extern int g_ThresholdMax;
+extern bool g_read_calibrationfile;
+
+// Filtrage regexp IVY !!! a mettre en concordance avec les SendMsg effectué !!!
+const char *ivy_filters[] = {"MarkerAdd", "MarkerMove", "MarkerMoveCalibrated", "MarkerRemove" };
+
+//-------------------------------------------------------------------
+// constructor
+//-------------------------------------------------------------------
+
+ARAnalyse::ARAnalyse() :
+ m_calibration(NULL),
+ m_tracker(NULL)
+{
+ MarkerMoveThreshold = 0.001;
+ MarkerAbsenceCount = 10;
+ MarkerWidth = 20;
+ m_calibrated = false;
+ m_calibration_enabled = false;
+ FrameCount = 0;
+ bus = NULL;
+ m_gray = NULL;
+ m_blur0 = NULL;
+ m_blur1 = NULL;
+ DownSample = 8;
+ BlurPass = 2;
+ Display = ARAnalyse::Diff;
+ filter = ARAnalyse::FMoyen;
+
+ MarkerWidth = g_config->read<double>("MarkerWidth");
+ MarkerMoveThreshold = g_config->read<double>("MarkerMoveThreshold");
+ MarkerAbsenceCount = g_config->read<double>("MarkerAbsenceCount");
+ MarkerSeekingThreshold = g_config->read<double>("MarkerSeekingThreshold");
+ CameraParameterFile = g_config->read<string>("CameraParameterFile","data\\no_distortion.cal");
+ MarkerSetConfigFile = g_config->read<string>("MarkerSetConfigFile", "data\\One.cfg");
+ CalibrationFile = g_config->read<string>("CalibrationFile", "data/savedCalibration.dat");
+ MarkerBorderPercentage = g_config->read<float>("MarkerBorderPercentage",0.125f);
+ MarkerSeekingThreshold = g_config->read<int>("MarkerSeekingThreshold",160);
+ MarkerType = (ARToolKitPlus::MARKER_MODE) g_config->read<int>("MarkerTraditionalOrSimpleOrBCH",ARToolKitPlus::MARKER_ID_BCH);
+
+ m_calibration = new Calibration(1.0, 1.0);
+ // intialize Calibration
+ int id;
+ id = g_config->read<int>("CalibrationID_TopLeft");
+ m_IdToCorner[id] = Calibration::TopLeft;
+ m_calibration_ids.insert( id );
+ id = g_config->read<int>("CalibrationID_TopRight");
+ m_IdToCorner[id] = Calibration::TopRight;
+ m_calibration_ids.insert( id );
+ id = g_config->read<int>("CalibrationID_BottomLeft");
+ m_IdToCorner[id] = Calibration::BottomLeft;
+ m_calibration_ids.insert( id );
+ id = g_config->read<int>("CalibrationID_BottomRight");
+ m_IdToCorner[id] = Calibration::BottomRight;
+ m_calibration_ids.insert( id );
+ if ( g_read_calibrationfile )
+ {
+ m_calibrated = m_calibration->RestoreCalibration( CalibrationFile );
+ }
+}
+
+//-------------------------------------------------------------------
+// destructor
+//-------------------------------------------------------------------
+
+ARAnalyse::~ARAnalyse()
+{
+ if ( m_calibration ) delete m_calibration;
+ if ( bus )
+ {
+ bus->stop();
+ delete bus;
+ }
+}
+void ARAnalyse::IvyInit(const char *domain)
+{
+ // start Ivy
+ bus = new Ivy( "ARIvy", NULL, NULL );
+ bus->SetFilter( sizeof( ivy_filters ) /sizeof( char *), ivy_filters );
+ bus->start(domain);
+}
+bool ARAnalyse::Calibrate( )
+{
+ if ( m_calibration )
+ m_calibrated = m_calibration->Calibrate();
+ return m_calibrated;
+}
+void ARAnalyse::SaveCalibration( )
+{
+ if ( m_calibration )
+ m_calibration->SaveCalibration(CalibrationFile);
+}
+void ARAnalyse::RestoreCalibration( )
+{
+ if ( m_calibration )
+ m_calibrated = m_calibration->RestoreCalibration(CalibrationFile);
+}
+bool ARAnalyse::ToggleAutoThreshold()
+{
+ if ( m_tracker->isAutoThresholdActivated() )
+ {
+ // try to set manually
+ if ( MarkerSeekingThreshold > 0 )
+ {
+ m_tracker->activateAutoThreshold( false );
+ m_tracker->setThreshold( MarkerSeekingThreshold );
+ }
+ }
+ else
+ {
+ m_tracker->activateAutoThreshold( true );
+ }
+ return m_tracker->isAutoThresholdActivated();
+}
+
+bool ARAnalyse::IsCalibrationID( int ident )
+{
+ return m_calibration_ids.find( ident ) != m_calibration_ids.end();
+}
+
+bool ARAnalyse::InitialiseTracker( int width, int height, int sample_size)
+{
+ first_calibration_done = false;
+ camera = narrow( g_camera_name );
+ int pixel_size = sample_size / width /height;
+ m_width = width;
+ m_height = height;
+ nb_pixel = width * height;
+ m_gray = new pixel_type[nb_pixel];
+ // on alloue au max pur eviter de se prendre la tete avec le malloc free , et le changement de DownSample
+ m_blur0 = new pixel_type[nb_pixel /*width /DownSample * height /DownSample*/];
+ m_blur1 = new pixel_type[nb_pixel /*width /DownSample * height /DownSample*/];
+ m_filter_h = new pixel_type[nb_pixel /*width /DownSample * height /DownSample*/];
+ m_filter_v = new pixel_type[nb_pixel /*width /DownSample * height /DownSample*/];
+
+ nb_images = 5;
+ m_sum = new float[nb_pixel];
+ for ( int i = 0; i < nb_pixel ; i++ )
+ {
+ m_sum[i] = 0.0;
+ }
+ m_images = new float*[nb_images];
+ for ( int i = 0 ; i < nb_images; i++ )
+ m_images[i] = new float[nb_pixel];
+ m_first_image = 0;
+ m_last_image = 0;
+
+
+ if ( m_tracker ) delete m_tracker;
+ // create a tracker that does:
+ // - 6x6 sized marker images (required for binary markers)
+ // - samples at a maximum of 6x6
+ // - works with luminance (gray) images
+ // - can load a maximum of 0 non-binary pattern
+ // - can detect a maximum of 8 patterns in one image
+ m_tracker = new TrackerMultiMarker(width, height, 4096, 6, 6, 6, 0);
+ // poor man pixel format chooser
+ switch ( pixel_size )
+ {
+ case 1:
+ m_tracker->setPixelFormat(ARToolKitPlus::PIXEL_FORMAT_LUM);
+ break;
+ case 2:
+ m_tracker->setPixelFormat(ARToolKitPlus::PIXEL_FORMAT_YUY2);
+ break;
+ case 3:
+ m_tracker->setPixelFormat(ARToolKitPlus::PIXEL_FORMAT_RGB);
+ break;
+ }
+ // load a camera file.
+ if (!m_tracker->init(CameraParameterFile.c_str(),
+ MarkerSetConfigFile.c_str(),
+ 0.0f, 3000.0f))
+ {
+ DBGMSG(TEXT("ERROR: InitialiseTracker() failed\n"));
+ delete m_tracker;
+ m_tracker = NULL;
+ return false;
+ }
+
+ //m_tracker->getCamera()->printSettings();
+ m_tracker->setNumAutoThresholdRetries(2);
+ //if ( MarkerSeekingThreshold > 0 )
+ //{
+ // m_tracker->activateAutoThreshold( false );
+ // m_tracker->setThreshold( MarkerSeekingThreshold );
+ //}
+ //else
+ //{
+ m_tracker->activateAutoThreshold( true );
+ //}
+ m_tracker->setImageProcessingMode(ARToolKitPlus::IMAGE_FULL_RES);
+ m_tracker->setPoseEstimator(ARToolKitPlus::POSE_ESTIMATOR_RPP);
+ //m_tracker->setPoseEstimator(ARToolKitPlus::POSE_ESTIMATOR_ORIGINAL_CONT);
+ // the marker in the BCH test image has a thiner border...
+ m_tracker->setBorderWidth(MarkerBorderPercentage);
+
+ // set a threshold. we could also activate automatic thresholding
+ //m_tracker->setThreshold(MarkerSeekingThreshold);
+
+ // let's use lookup-table undistortion for high-speed
+ // note: LUT only works with images up to 1024x1024
+ //m_tracker->setUndistortionMode(ARToolKitPlus::UNDIST_LUT);
+ m_tracker->setUndistortionMode(ARToolKitPlus::UNDIST_NONE);
+ m_tracker->setUseDetectLite(false);
+ // switch to simple ID based markers
+ // use the tool in tools/IdPatGen to generate markers
+ m_tracker->setMarkerMode(MarkerType);
+ // HULL mode
+ m_tracker->setHullMode(ARToolKitPlus::HULL_FULL);
+
+ // do the OpenGL camera setup
+ //glMatrixMode(GL_PROJECTION)
+ //glLoadMatrixf(m_tracker->getProjectionMatrix());
+
+ return true;
+}
+
+void ARAnalyse::Analyse( double SampleTime, const unsigned char * cameraBuffer, int size )
+{
+ static double StartTime = -1;
+ static double LastFrameTime = 0;
+
+
+ extern HWND g_hTrack; // Quick & Dirty !!!!
+
+ double delay = 0;
+ if ( StartTime < 0 )
+ {
+ StartTime = SampleTime;
+ LastFrameTime = SampleTime;
+ }
+ else
+ {
+ delay = SampleTime - LastFrameTime;
+ }
+ FrameCount++;
+ if ( FrameCount > 30 ) // skip first frames in calc avg Wait first Seconds video
+ {
+ frame_per_seconds.SetValue( FrameCount / ( SampleTime - StartTime ) );
+ frame_delay.SetValue( delay );
+ }
+ LastFrameTime = SampleTime;
+
+ if ( !m_tracker) return;
+ // here we go, just one call to find the camera pose
+ int numDetected = m_tracker->calc(cameraBuffer);
+
+ //DBGMSG(TEXT("\n tracker Threshold %d \n"), m_tracker->getThreshold());
+ if ( m_tracker->isAutoThresholdActivated() && FrameCount %10 == 0 )
+ {
+ SendMessage(g_hTrack, TBM_SETPOS,
+ (WPARAM) TRUE, // redraw flag
+ (LPARAM) m_tracker->getThreshold());
+ }
+ // use the result of calc() to setup the OpenGL transformation
+ //glMatrixMode(GL_MODELVIEW)
+ //glLoadMatrixf(m_tracker->getModelViewMatrix());
+ //if ( numDetected )
+ // DBGMSG(TEXT("\n%d good Markers found and used for pose estimation.\n"), numDetected);
+#ifdef DUMP_MATRIX
+ if ( numDetected )
+ {
+ DBGMSG(TEXT("Pose-Matrix:\n "));
+ const ARFloat*matrix = m_tracker->getModelViewMatrix();
+ if ( matrix )
+ for (int i = 0; i < 16; i++)
+ DBGMSG(TEXT("%.2f %s"), matrix[i], (i % 4 == 3) ? TEXT("\n ") : TEXT(" "));
+ }
+#endif
+ std::set<int> new_ids;
+ confidence.Raz();
+
+ for (int i = 0; i < numDetected; i++) {
+ ARToolKitPlus::ARMarkerInfo markerInfo = m_tracker->getDetectedMarker(i);
+
+ if (new_ids.find(markerInfo.id) != new_ids.end()) {
+ DBGMSG(TEXT("One id for one marker please!!\n"));
+ continue;
+ }
+ // calculate min max confidence
+ confidence.SetValue( markerInfo.cf );
+
+ new_ids.insert(markerInfo.id);
+
+ if (markers.find(markerInfo.id) == markers.end() )
+ {
+ // Adding new marker
+ markers[markerInfo.id].id = markerInfo.id;
+ DBGMSG(TEXT("MarkerAdd cam=%s_%d id=%d\n"), g_camera_name.c_str(), g_camera_instance, markerInfo.id);
+ // filtrage des ID de calibration
+ if ( bus && !IsCalibrationID(markerInfo.id) ) bus->SendMsg("MarkerAdd cam=%s_%d id=%d", camera, g_camera_instance, markerInfo.id);
+ }
+ MyMakerInfo & info = markers[markerInfo.id];
+ info.id = markerInfo.id;
+ info.absent = 0;
+ info.confidence = markerInfo.cf;
+ info.area = markerInfo.area;
+ info.dir = markerInfo.dir;
+
+ info.time = SampleTime - StartTime;
+ ARFloat center[2] ;
+ ARFloat matrix[3][4];
+ center[0] = 0.0f;
+ center[1] = 0.0f;
+ //ARFloat retTransMat = m_tracker->arGetTransMat(tracker, markerInfoPtr, center, (ARFloat)Properties.Settings.Default.MarkerWidth, matrix);
+ ARFloat retTransMat = m_tracker->arGetTransMatCont( &markerInfo, info.prev_matrix, center, (ARFloat)MarkerWidth, matrix);
+ //ARFloat retTransMat = m_tracker->rppGetTransMat(tracker, markerInfoPtr, center, (ARFloat)Properties.Settings.Default.MarkerWidth, matrix);
+ if (retTransMat < 0)
+ {
+ DBGMSG(TEXT("Marker Skip id={0} bad transfrm{1}\n"), info.id, retTransMat);
+ continue;
+ }
+ memcpy(info.prev_matrix, matrix, sizeof(matrix));
+ double dx = info.x - markerInfo.pos[0];
+ double dy = info.y - markerInfo.pos[1];
+ double dist = dx*dx + dy*dy; // Square Length distance
+
+ info.x = markerInfo.pos[0];
+ info.y = markerInfo.pos[1];
+ if ( dist >= MarkerMoveThreshold)
+ {
+ DBGMSG(TEXT("MarkerMove cam=%s_%d id=%d time=%.03f confidence=%.03f area=%d dir=%d x=%.03f y=%.03f distance=%.03f \n"),
+ g_camera_name.c_str(), g_camera_instance, info.id, info.time, info.confidence, info.area, info.dir, info.x, info.y, dist);
+ if ( bus && !IsCalibrationID(markerInfo.id))
+ bus->SendMsg("MarkerMove cam=%s_%d id=%d time=%.03f confidence=%.03f area=%d dir=%d x=%.03f y=%.03f distance=%.03f",
+ camera, g_camera_instance, info.id, info.time, info.confidence, info.area, info.dir, info.x, info.y, dist);
+ if (m_calibrated)
+ {
+ double cal_x, cal_y;
+ m_calibration->translateCoords(info.x, info.y, &cal_x, &cal_y);
+ DBGMSG(TEXT("MarkerMoveCalibrated cam=%s_%d id=%d time=%.03f confidence=%.03f area=%d dir=%d x=%.03f y=%.03f\n"), g_camera_name.c_str(), g_camera_instance, info.id, info.time, info.confidence, info.area, info.dir, cal_x, cal_y);
+ if ( bus && !IsCalibrationID(markerInfo.id))
+ bus->SendMsg("MarkerMoveCalibrated cam=%s_%d id=%d time=%.03f confidence=%.03f area=%d dir=%d x=%.03f y=%.03f", camera, g_camera_instance, info.id, info.time, info.confidence, info.area, info.dir, cal_x, cal_y);
+
+ }
+ }
+
+ }
+ // remove OLD markers
+ std::set<int> old_ids;
+ for (MarkersMap::iterator iter = markers.begin(); iter != markers.end(); iter++)
+ {
+ int id = iter->first;
+ if ( new_ids.find( id ) == new_ids.end() )
+ old_ids.insert( id );
+ }
+ for (std::set<int>::iterator iter = old_ids.begin(); iter != old_ids.end(); iter++)
+ {
+ int id = *iter;
+ markers[id].absent += 1;
+ if ( markers[id].absent > MarkerAbsenceCount)
+ {
+ markers.erase(id);
+ DBGMSG(TEXT("Marker Remove cam=%s_%d id=%d\n"), g_camera_name.c_str(), g_camera_instance, id);
+ if ( bus && !IsCalibrationID(id)) bus->SendMsg("MarkerRemove cam=%s_%d id=%d", camera, g_camera_instance, id);
+ }
+ }
+ /*if (titleText.Equals("")) {
+ titleText ="Markers with ID \""
+ +String.Join(", ", new_ids.Select(id => id.ToString("000")).ToArray())
+ +"\" are found!!";
+ }*/
+
+
+
+ // calibration point
+ m_calibration_enabled = false;
+ if (includes(new_ids.begin(), new_ids.end(), m_calibration_ids.begin(), m_calibration_ids.end() ))
+ {
+ for (std::set<int>::iterator iter = m_calibration_ids.begin(); iter != m_calibration_ids.end() ; iter++)
+ {
+ int id = *iter;
+ MyMakerInfo marker = markers[id];
+ m_calibration->SetCalibrationPoint(m_IdToCorner[id], marker.x, marker.y);
+ }
+ //all calibration points OK
+ m_calibration_enabled = true;
+ if ( !first_calibration_done )
+ {
+ first_calibration_done = Calibrate();
+ m_calibrated = first_calibration_done;
+ }
+
+ }
+
+
+ bool showConfig = false;
+
+ if (showConfig) {
+ const ARToolKitPlus::ARMultiMarkerInfoT *artkpConfig = m_tracker->getMultiMarkerConfig();
+ DBGMSG(TEXT("%d markers defined in multi marker cfg\n"), artkpConfig->marker_num);
+
+ printf("marker matrices:\n");
+ for (int multiMarkerCounter = 0; multiMarkerCounter < artkpConfig->marker_num; multiMarkerCounter++) {
+ DBGMSG(TEXT("marker %d, id %d:\n"), multiMarkerCounter, artkpConfig->marker[multiMarkerCounter].patt_id);
+ for (int row = 0; row < 3; row++) {
+ for (int column = 0; column < 4; column++)
+ DBGMSG(TEXT("%.2f "), artkpConfig->marker[multiMarkerCounter].trans[row][column]);
+ DBGMSG(TEXT("\n"));
+ }
+ }
+ }
+}
+
+#define MAX(a,b) ((a) > (b) ? (a) : (b))
+#define MIN(a,b) ((a) < (b) ? (a) : (b))
+static void RGB2HSL(unsigned char * rgb, double& h, double& s, double& l)
+ {
+
+ double r = (double)rgb[0] / 255.0;
+ double g = (double)rgb[1] / 255.0;
+ double b = (double)rgb[2] / 255.0;
+ double v;
+ double m;
+ double vm;
+ double r2, g2, b2;
+
+ h = 0; // default to black
+ s = 0;
+ l = 0;
+
+ v = MAX(r, g);
+ v = MAX(v, b);
+ m = MIN(r, g);
+ m = MIN(m, b);
+ l = (m + v) / 2.0;
+ if (l <= 0.0)
+ {
+ return;
+ }
+
+ vm = v - m;
+ s = vm;
+ if (s > 0.0)
+ {
+ s /= (l <= 0.5) ? (v + m) : (2.0 - v - m);
+ }
+ else
+ {
+ return;
+ }
+
+ r2 = (v - r) / vm;
+ g2 = (v - g) / vm;
+ b2 = (v - b) / vm;
+ if (r == v)
+ {
+ h = (g == m ? 5.0 + b2 : 1.0 - g2);
+ }
+
+ else if (g == v)
+ {
+ h = (b == m ? 1.0 + r2 : 3.0 - b2);
+ }
+ else
+ {
+ h = (r == m ? 3.0 + g2 : 5.0 - r2);
+ }
+ h /= 6.0;
+ }
+int CircularDistance(int index1, int index2, int steps)
+ { //circular distance
+ int dist = abs(index1 - index2);
+ return MIN(dist, abs(dist - steps));
+ }
+#ifdef TRANSFORM_COLOR
+ void ARAnalyse::Transform( unsigned char * cameraBuffer, int size, bool moyen)
+ {
+ float min = FLT_MAX;
+ float max = FLT_MIN;
+ pixel_type *dst = m_blur0;
+ // Gray Image
+ {
+ for ( int i = 0; i < nb_pixel ; i++ )
+ {
+
+ unsigned char * pixel = &cameraBuffer[i*3];
+ value_type val = pixel[0] * 0.3 + pixel[1] * 0.59 + pixel[2] * 0.11;
+ m_gray[i] = val;
+ {
+ if ( val > max )
+ max = val;
+ else if ( val < min )
+ min = val;
+ }
+ if ( !moyen )
+ m_sum[i] = 0;
+ }
+ float a = 1.0;
+ float b = 0.0;
+ float c = (max - min);
+ if ( c != 0.0)
+ {
+ a = 1.0 / c;
+ b = - min / c;
+ }
+ a *= 255.0;
+ b *= 255.0;
+ #pragma omp parallel for
+ for ( int i = 0; i < nb_pixel ; i++ )
+ {
+ m_gray[i] = m_gray[i] * a + b;
+ }
+ // Image moyenne
+ if ( moyen )
+ CalcMoyen();
+ }
+
+ const int steps = 10;
+ const int chromaHistoLength = steps +1;
+
+ int chromaHisto[chromaHistoLength];
+ double hue[1920];
+
+ // chroma histogram 10 steps
+ // find the 2 max
+ //if the 2 max> 1 the threashold = min (2 max) + (max2 - max1)/2
+
+ //Horizontal line
+ for (int y = 0; y < m_height; y++)
+ {
+ //Find min max mean median
+ for (int i = 0; i < chromaHistoLength; i++)
+ chromaHisto[i] = 0;
+ for (int x = 0; x < m_width; x++)
+ {
+ long index = (x + y * m_width);
+ unsigned char * pixel = &cameraBuffer[index*3];
+ double h,s,l;
+ RGB2HSL( pixel, h,s,l );
+ hue[x] = h;
+ int histIndexChroma = (int)(h * steps);
+ chromaHisto[histIndexChroma]++;
+ }
+
+ //Find the two max
+ int max1 = -1;
+ int chroma1 = -1;
+ int max2 = -1;
+ int chroma2 = -1;
+
+ //Find max1
+ for (int i = 0; i < chromaHistoLength; i++)
+ {
+ if ((chromaHisto[i] > max1) && (chromaHisto[i] != 0))
+ {
+ max1 = chromaHisto[i];
+ chroma1 = i;
+ }
+ }
+ //find max2
+ for (int i = 0; i < chromaHistoLength; i++)
+ {
+ if (CircularDistance(i, chroma1, steps) > (steps / 3))
+ if ((chromaHisto[i] > max2) && (chromaHisto[i] != 0))
+ {
+ max2 = chromaHisto[i];
+ chroma2 = i;
+ }
+ }
+
+ int peak = chroma1;
+ if ((max1 != -1) && (max2 != -1) && (chromaHisto[chroma2] > chromaHisto[chroma1])) peak = chroma2;
+ double delta = 3;
+
+ //binaries
+ if ((max1 != -1) && (max2 != -1)) //found a max1 and max 2 ?
+ {
+ for (int x = 0; x < m_width; x++)
+ {
+ int index = (x + y * m_width);
+ int histIndexChroma = (int)(hue[x] * steps);
+ if ( CircularDistance(histIndexChroma, peak, steps) < delta)
+ dst[index] = 255; //White
+ else
+ dst[index] = 0; //Black
+ }
+
+ }
+ else
+ for (int x = 0; x < m_width; x++)
+ {
+ int index = (x + y * m_width);
+ dst[index] = 127.0f; //no relevant histogram
+ }
+ }
+
+ switch ( Display )
+ {
+ case ARAnalyse::GrayScale:
+ DisplayGrayScale(cameraBuffer, m_gray );
+ break;
+ case ARAnalyse::Blur:
+ DisplayBlur(cameraBuffer, dst );
+ break;
+ case ARAnalyse::Diff:
+ DisplayDiff(cameraBuffer, dst );
+ break;
+ case ARAnalyse::Threshold:
+ DisplayThreshold(cameraBuffer, dst );
+ break;
+ case ARAnalyse::Moyen:
+ DisplayMoyen(cameraBuffer, NULL );
+ break;
+ }
+
+ }
+
+
+#endif
+#ifdef TRANSFORM_HUE
+void ARAnalyse::Transform( unsigned char * cameraBuffer, int size, bool moyen)
+{
+ pixel_type *src;
+ pixel_type *dst;
+ float min = FLT_MAX;
+ float max = FLT_MIN;
+ //#pragma omp parallel //default(none) shared (cameraBuffer,pixel_size, max, min )
+ {
+ //#pragma omp parallel for
+ for ( int i = 0; i < nb_pixel ; i++ )
+ {
+ unsigned char * pixel = &cameraBuffer[i*3];
+ value_type rgb_min = MIN(pixel[0], pixel[1], pixel[2]);
+ value_type rgb_max = MAX(pixel[0], pixel[1], pixel[2]);
+
+ value_type val = pixel[0] * 0.3 + pixel[1] * 0.59 + pixel[2] * 0.11;
+ //
+ //if ( pixel[0] > pixel[1] && pixel[0] > pixel[2] )
+ // val = 255;
+ //if ( pixel[2] > pixel[0] && pixel[2] > pixel[1] )
+ // val = 0;
+ //m_gray[i] = val;
+
+ /* Compute hue */
+ //value_type hue;
+ //if (rgb_max == pixel[0]) {
+ // hue = 0 + 43*(pixel[1] - pixel[2])/(rgb_max - rgb_min);
+ //} else if (rgb_max == pixel[1]) {
+ // hue = 85 + 43*(pixel[2] - pixel[0])/(rgb_max - rgb_min);
+ //} else /* rgb_max == rgb.b */ {
+ // hue = 171 + 43*(pixel[0] - pixel[1])/(rgb_max - rgb_min);
+ //}
+ double h,s,l;
+ RGB2HSL( pixel, h,s,l );
+ m_gray[i] = h * 255.0;
+ //#pragma omp critical
+ {
+ if ( val > max )
+ max = val;
+ else
+ if ( val < min )
+ min = val;
+ }
+ if ( !moyen )
+ m_sum[i] = 0;
+ }
+
+ float a = 1.0;
+ float b = 0.0;
+ float c = (max - min);
+ if ( c != 0.0)
+ {
+ a = 1.0 / c;
+ b = - min / c;
+ }
+ a *= 255.0;
+ b *= 255.0;
+ #pragma omp parallel for
+ for ( int i = 0; i < nb_pixel ; i++ )
+ {
+ m_gray[i] = m_gray[i] * a + b;
+ }
+ }
+ if ( moyen )
+ CalcMoyen();
+ // Down sample
+ int width = m_width / DownSample;
+ int height = m_height / DownSample;
+
+ #pragma omp parallel //default(none) shared (width,height)
+ {
+ #pragma omp parallel for
+ for ( int y = 0; y < height ; y++ )
+ {
+ //#pragma omp for
+ for ( int x = 0; x < width ; x++ )
+ {
+ long yy = y * width + x;
+ value_type val = 0;
+ for ( int i = 0 ; i < DownSample ; i++ )
+ for ( int j = 0; j < DownSample ; j++ )
+ {
+ int index = (y*DownSample+i) * m_width + x*DownSample+j;
+ val += m_gray[index];
+ }
+ val /= DownSample*DownSample;
+ //assert( val <= 255 );
+ m_blur0[yy] = val;
+ m_blur1[yy] = val;
+ }
+ }
+ }
+ // blur
+ dst = m_blur0;
+#define BLUR
+#ifdef BLUR
+ #pragma omp parallel //default(none) shared (width,height,src,dst)
+ {
+
+ static const float moyen[] = {
+ 1/9.0,1/9.0,1/9.0,
+ 1/9.0,1/9.0,1/9.0,
+ 1/9.0,1/9.0,1/9.0
+ };
+ static const float laplacien4[] = {
+ 0,-1,0,
+ -1,4,-1,
+ 0,-1,0
+ };
+
+ static const float laplacien8[] = {
+ -1,-1,-1,
+ -1,8,-1,
+ -1,-1,-1
+ };
+
+ static const float laplaciend[] = {
+ 1,-2,1,
+ -2,4,-2,
+ 1,-2,1
+ };
+
+ static const float sobelv[] = {
+ 1,0,-1,
+ 2,0,-2,
+ 1,0,-1
+ };
+ static const float sobelh[] = {
+ 1,2,1,
+ 0,0,0,
+ -1,2,-1
+ };
+
+ static const float prewittv[] = {
+ 1,0,-1,
+ 1,0,-1,
+ 1,0,-1
+ };
+ static const float prewitth[] = {
+ 1,1,1,
+ 0,0,0,
+ -1,-1,-1
+ };
+ //5x5 Gaussian filter
+ static const float gaussian[] = {
+ 2/159.0, 4/159.0, 5/159.0, 4/159.0, 2/159.0,
+ 4/159.0, 9/159.0, 12/159.0, 9/159.0, 4/159.0,
+ 5/159.0, 12/159.0, 15/159.0, 12/159.0, 5/159.0,
+ 4/159.0, 9/159.0, 12/159.0, 9/159.0, 4/159.0,
+ 2/159.0, 4/159.0, 5/159.0, 4/159.0, 2/159.0
+ };
+ for ( int pass = 0 ; pass < BlurPass ; pass++ )
+ {
+ if ( (pass & 1) ==0 )
+ {
+ src = m_blur0;
+ dst = m_blur1;
+ }
+ else
+ {
+ src = m_blur1;
+ dst = m_blur0;
+ }
+ switch ( filter )
+ {
+ case FMoyen:
+ Filter( moyen,3, src, dst );
+ break;
+ case FLaplacien4:
+ Filter( laplacien4,3, src, dst );
+ break;
+ case FLaplacien8:
+ Filter( laplacien8, 3, src, dst );
+ break;
+ case FLaplaciend:
+ Filter( laplaciend, 3, src, dst );
+ break;
+ case FSobel:
+ Filter( sobelv, 3, src, m_filter_v );
+ Filter( sobelh, 3, src, m_filter_h );
+ CombineFilter( m_filter_v, m_filter_h, dst );
+ break;
+ case FPrewitt:
+ Filter( prewittv, 3, src, m_filter_v );
+ Filter( prewitth, 3, src, m_filter_h );
+ CombineFilter( m_filter_v, m_filter_h, dst );
+ case FGaussian:
+ Filter( gaussian, 5, src, dst );
+ break;
+ }
+
+ }
+ }
+#endif
+ switch ( Display )
+ {
+ case ARAnalyse::GrayScale:
+ DisplayGrayScale(cameraBuffer, dst );
+ break;
+ case ARAnalyse::Blur:
+ DisplayBlur(cameraBuffer, dst );
+ break;
+ case ARAnalyse::Diff:
+ DisplayDiff(cameraBuffer, dst );
+ break;
+ case ARAnalyse::Threshold:
+ DisplayThreshold(cameraBuffer, dst );
+ break;
+ case ARAnalyse::Moyen:
+ DisplayMoyen(cameraBuffer, dst );
+ break;
+ }
+
+}
+#endif
+#define GRAY
+#ifdef GRAY
+// Gray scale & threshold
+void ARAnalyse::Transform( unsigned char * cameraBuffer, int size, bool moyen)
+{
+ pixel_type *src;
+ pixel_type *dst;
+ float min = FLT_MAX;
+ float max = FLT_MIN;
+ //#pragma omp parallel //default(none) shared (cameraBuffer,pixel_size, max, min )
+ {
+ //#pragma omp parallel for
+ for ( int i = 0; i < nb_pixel ; i++ )
+ {
+ unsigned char * pixel = &cameraBuffer[i*3];
+ value_type val = pixel[0] * 0.3 + pixel[1] * 0.59 + pixel[2] * 0.11;
+ m_gray[i] = val ;
+ //#pragma omp critical
+ {
+ if ( val > max )
+ max = val;
+ else
+ if ( val < min )
+ min = val;
+ }
+ if ( !moyen )
+ m_sum[i] = 0;
+ }
+
+ float a = 1.0;
+ float b = 0.0;
+ float c = (max - min);
+ if ( c != 0.0)
+ {
+ a = 1.0 / c;
+ b = - min / c;
+ }
+ a *= 255.0;
+ b *= 255.0;
+ #pragma omp parallel for
+ for ( int i = 0; i < nb_pixel ; i++ )
+ {
+ m_gray[i] = m_gray[i] * a + b;
+ }
+ }
+ if ( moyen )
+ CalcMoyen();
+ // Down sample
+ int width = m_width / DownSample;
+ int height = m_height / DownSample;
+
+ #pragma omp parallel //default(none) shared (width,height)
+ {
+ #pragma omp parallel for
+ for ( int y = 0; y < height ; y++ )
+ {
+ //#pragma omp for
+ for ( int x = 0; x < width ; x++ )
+ {
+ long yy = y * width + x;
+ value_type val = 0;
+ for ( int i = 0 ; i < DownSample ; i++ )
+ for ( int j = 0; j < DownSample ; j++ )
+ {
+ int index = (y*DownSample+i) * m_width + x*DownSample+j;
+ val += m_gray[index];
+ }
+ val /= DownSample*DownSample;
+ //assert( val <= 255 );
+ m_blur0[yy] = val;
+ m_blur1[yy] = val;
+ }
+ }
+ }
+ // blur
+ dst = m_blur0;
+#define BLUR
+#ifdef BLUR
+ #pragma omp parallel //default(none) shared (width,height,src,dst)
+ {
+
+ static const float moyen[] = {
+ 1/9.0,1/9.0,1/9.0,
+ 1/9.0,1/9.0,1/9.0,
+ 1/9.0,1/9.0,1/9.0
+ };
+ static const float laplacien4[] = {
+ 0,-1,0,
+ -1,4,-1,
+ 0,-1,0
+ };
+
+ static const float laplacien8[] = {
+ -1,-1,-1,
+ -1,8,-1,
+ -1,-1,-1
+ };
+
+ static const float laplaciend[] = {
+ 1,-2,1,
+ -2,4,-2,
+ 1,-2,1
+ };
+
+ static const float sobelv[] = {
+ 1,0,-1,
+ 2,0,-2,
+ 1,0,-1
+ };
+ static const float sobelh[] = {
+ 1,2,1,
+ 0,0,0,
+ -1,2,-1
+ };
+
+ static const float prewittv[] = {
+ 1,0,-1,
+ 1,0,-1,
+ 1,0,-1
+ };
+ static const float prewitth[] = {
+ 1,1,1,
+ 0,0,0,
+ -1,-1,-1
+ };
+ //5x5 Gaussian filter
+ static const float gaussian[] = {
+ 2/159.0, 4/159.0, 5/159.0, 4/159.0, 2/159.0,
+ 4/159.0, 9/159.0, 12/159.0, 9/159.0, 4/159.0,
+ 5/159.0, 12/159.0, 15/159.0, 12/159.0, 5/159.0,
+ 4/159.0, 9/159.0, 12/159.0, 9/159.0, 4/159.0,
+ 2/159.0, 4/159.0, 5/159.0, 4/159.0, 2/159.0
+ };
+ for ( int pass = 0 ; pass < BlurPass ; pass++ )
+ {
+ if ( (pass & 1) ==0 )
+ {
+ src = m_blur0;
+ dst = m_blur1;
+ }
+ else
+ {
+ src = m_blur1;
+ dst = m_blur0;
+ }
+ switch ( filter )
+ {
+ case FMoyen:
+ Filter( moyen,3, src, dst );
+ break;
+ case FLaplacien4:
+ Filter( laplacien4,3, src, dst );
+ break;
+ case FLaplacien8:
+ Filter( laplacien8, 3, src, dst );
+ break;
+ case FLaplaciend:
+ Filter( laplaciend, 3, src, dst );
+ break;
+ case FSobel:
+ Filter( sobelv, 3, src, m_filter_v );
+ Filter( sobelh, 3, src, m_filter_h );
+ CombineFilter( m_filter_v, m_filter_h, dst );
+ break;
+ case FPrewitt:
+ Filter( prewittv, 3, src, m_filter_v );
+ Filter( prewitth, 3, src, m_filter_h );
+ CombineFilter( m_filter_v, m_filter_h, dst );
+ case FGaussian:
+ Filter( gaussian, 5, src, dst );
+ break;
+ }
+
+ }
+ }
+#endif
+ switch ( Display )
+ {
+ case ARAnalyse::GrayScale:
+ DisplayGrayScale(cameraBuffer, dst );
+ break;
+ case ARAnalyse::Blur:
+ DisplayBlur(cameraBuffer, dst );
+ break;
+ case ARAnalyse::Diff:
+ DisplayDiff(cameraBuffer, dst );
+ break;
+ case ARAnalyse::Threshold:
+ DisplayThreshold(cameraBuffer, dst );
+ break;
+ case ARAnalyse::Moyen:
+ DisplayMoyen(cameraBuffer, dst );
+ break;
+ }
+
+}
+#endif
+void ARAnalyse::CombineFilter ( pixel_type *src_h, pixel_type *src_v, pixel_type *dst )
+{
+ int width = m_width / DownSample;
+ int height = m_height / DownSample;
+ #pragma omp for
+ for ( int y = height-2 ; y > 0 ; y-- )
+ {
+ //#pragma omp for
+ for ( int x = width-2; x > 0 ; x-- )
+ {
+ long yy;
+ value_type val = 0;
+ // kernel sum
+ yy = y * width + x;
+
+ val += src_h[ yy ] * src_h[ yy ];
+ val += src_v[ yy ] * src_v[ yy ];
+
+ dst[yy] = sqrt(val);
+
+ }
+ }
+}
+void ARAnalyse::Filter ( const float *krn, int k_size, pixel_type *src, pixel_type *dst )
+{
+ int width = m_width / DownSample;
+ int height = m_height / DownSample;
+ const float *krn_ptr;
+ int half_kernel = k_size / 2;
+ #pragma omp for
+ for ( int y = height-1-half_kernel ; y >= half_kernel ; y-- )
+ {
+ //#pragma omp for
+ for ( int x = width-1-half_kernel; x >= half_kernel ; x-- )
+ {
+ long yy;
+ value_type val = 0;
+ // kernel sum
+ krn_ptr = krn;
+ yy = (y - half_kernel) * width + x ;
+ for ( int j = 0; j < k_size ; j++ )
+ {
+ for ( int i = 0; i < k_size ; i++ )
+ val += src[ yy - half_kernel + i ] * *krn_ptr++;
+ yy += width ;
+ }
+
+ dst[y * width + x] = val;
+
+ }
+ }
+}
+
+void ARAnalyse::DisplayGrayScale (unsigned char * cameraBuffer, pixel_type * dest)
+{
+ #pragma omp parallel //default(none) shared( cameraBuffer, width,height,dst )
+ {
+ #pragma omp for
+ for ( int y = 0; y < m_height ; y++ )
+ {
+ //#pragma omp for
+ for ( int x = 0; x < m_width ; x++ )
+ {
+ long index = (y * m_width + x);
+ unsigned char * pixel = &cameraBuffer[index*3];
+ value_type val = m_gray[index]; //display gray scale
+ pixel[0] = (unsigned char)(int)(val);
+ pixel[1] = (unsigned char)(int)(val);
+ pixel[2] = (unsigned char)(int)(val);
+ }
+ }
+ }
+}
+void ARAnalyse::DisplayBlur (unsigned char * cameraBuffer, pixel_type * dest)
+{
+ // Down sample
+ int width = m_width / DownSample;
+ int height = m_height / DownSample;
+ #pragma omp parallel //default(none) shared( cameraBuffer, width,height,dst )
+ {
+ #pragma omp for
+ for ( int y = 0; y < m_height ; y++ )
+ {
+ //#pragma omp for
+ for ( int x = 0; x < m_width ; x++ )
+ {
+ long index = (y * m_width + x);
+ unsigned char * pixel = &cameraBuffer[index*3];
+ value_type blur = dest[((y/DownSample) * width + (x/DownSample))];
+ value_type val=0;
+ val = blur; // display BLUR
+
+ pixel[0] = (unsigned char)(int)(val);
+ pixel[1] = (unsigned char)(int)(val);
+ pixel[2] = (unsigned char)(int)(val);
+ }
+ }
+ }
+}
+void ARAnalyse::DisplayDiff (unsigned char * cameraBuffer, pixel_type * dest)
+{
+ // Down sample
+ int width = m_width / DownSample;
+ int height = m_height / DownSample;
+ #pragma omp parallel //default(none) shared( cameraBuffer, width,height,dst )
+ {
+ #pragma omp for
+ for ( int y = 0; y < m_height ; y++ )
+ {
+ //#pragma omp for
+ for ( int x = 0; x < m_width ; x++ )
+ {
+ long index = (y * m_width + x);
+ unsigned char * pixel = &cameraBuffer[index*3];
+ value_type blur = dest[((y/DownSample) * width + (x/DownSample))];
+ value_type val=0;
+ val = m_gray[index] - blur;
+ val += 127;
+ if ( val < 0 ) val = 0;
+ else if ( val > 255 ) val = 255;
+
+ pixel[0] = (unsigned char)(int)(val);
+ pixel[1] = (unsigned char)(int)(val);
+ pixel[2] = (unsigned char)(int)(val);
+ }
+ }
+ }
+}
+void ARAnalyse::DisplayThreshold (unsigned char * cameraBuffer, pixel_type * dest)
+{
+ // Down sample
+ int width = m_width / DownSample;
+ int height = m_height / DownSample;
+ #pragma omp parallel //default(none) shared( cameraBuffer, width,height,dst )
+ {
+ #pragma omp for
+ for ( int y = 0; y < m_height ; y++ )
+ {
+ //#pragma omp for
+ for ( int x = 0; x < m_width ; x++ )
+ {
+ long index = (y * m_width + x);
+ unsigned char * pixel = &cameraBuffer[index*3];
+ value_type blur = dest[((y/DownSample) * width + (x/DownSample))];
+ value_type val=0;
+ val = m_gray[index] - blur * 0.9;
+ //val = val < 0 ? 0 : 255;
+ val += 127;
+ if ( val < g_ThresholdMin ) val = 0;
+ else if ( val > g_ThresholdMax ) val = 255;
+ else val = 127;
+
+ pixel[0] = (unsigned char)(int)(val);
+ pixel[1] = (unsigned char)(int)(val);
+ pixel[2] = (unsigned char)(int)(val);
+ }
+ }
+ }
+}
+void ARAnalyse::DisplayMoyen (unsigned char * cameraBuffer, pixel_type * dest)
+{
+ #pragma omp parallel //default(none) shared( cameraBuffer, width,height,dst )
+ {
+ #pragma omp for
+ for ( int y = 0; y < m_height ; y++ )
+ {
+ //#pragma omp for
+ for ( int x = 0; x < m_width ; x++ )
+ {
+ long index = (y * m_width + x);
+ unsigned char * pixel = &cameraBuffer[index*3];
+ value_type val = (m_sum[index] / nb_images);
+ pixel[0] = (unsigned char)(int)(val);
+ pixel[1] = (unsigned char)(int)(val);
+ pixel[2] = (unsigned char)(int)(val);
+ }
+ }
+ }
+}
+
+void ARAnalyse::CalcMoyen()
+{
+ //DBGMSG(TEXT("Before CalcMoyen Frame %d first %d, last %d:\n"), FrameCount, m_first_image, m_last_image);
+
+ // calcul sum - first
+ if ( FrameCount > (nb_images-1) )
+ {
+ pixel_type *first_image = m_images[m_first_image];
+ for ( int i = 0; i < nb_pixel ; i++ )
+ {
+ m_sum[i] -= first_image[i];
+ }
+ m_first_image++;
+ if ( m_first_image >= nb_images ) m_first_image = 0;
+ }
+ // calcul sum + last = m_gray !
+ for ( int i = 0; i < nb_pixel ; i++ )
+ {
+ m_sum[i] += m_gray[i];
+ m_images[m_last_image][i] = m_gray[i]; // copy input to last image
+ m_gray[i] = m_sum[i]/nb_images; // copy and calculate moyen
+ }
+ m_last_image++;
+ if ( m_last_image >= nb_images ) m_last_image = 0;
+ //DBGMSG(TEXT("After CalcMoyen first %d, last %d:\n"), m_first_image, m_last_image);
+
+} \ No newline at end of file
diff --git a/ARMFCaptureD3D/ARAnalyse.h b/ARMFCaptureD3D/ARAnalyse.h
new file mode 100644
index 0000000..0d8a61b
--- /dev/null
+++ b/ARMFCaptureD3D/ARAnalyse.h
@@ -0,0 +1,143 @@
+
+#pragma once
+#include <cstdio>
+#include <map>
+#include <vector>
+#include <set>
+#include <ARToolKitPlus/TrackerMultiMarker.h>
+#include <Ivy.h>
+#include "Calibration.h"
+#include "MinMaxAvg.h"
+
+using ARToolKitPlus::TrackerMultiMarker;
+#pragma comment (lib, "ARToolKitPlus.lib")
+
+class MyMakerInfo
+{
+public:
+ int id;
+ ARFloat confidence;
+ ARFloat x;
+ ARFloat y;
+ int area;
+ int dir;
+ ARFloat prev_matrix[3][4];
+ int absent; // count of marker absence if > 10 ==> remove
+ double time;
+};
+
+class ARAnalyse
+{
+public:
+ ARAnalyse();
+ ~ARAnalyse();
+ bool InitialiseTracker( int width, int height, int sample_size);
+ void Transform( unsigned char * cameraBuffer, int size, bool moyen );
+ void Analyse( double SampleTime, const unsigned char * cameraBuffer, int size );
+ bool Calibrate();
+ void SaveCalibration();
+ void RestoreCalibration();
+
+ bool IsCalibrationEnabled()
+ {
+ return m_calibration_enabled;
+ }
+ bool IsCalibrated()
+ {
+ return m_calibrated;
+ }
+ void IvyInit(const char *domain);
+ typedef std::map<int, MyMakerInfo> MarkersMap;
+ MarkersMap markers;
+ ARToolKitPlus::ARMarkerInfo getDetectedMarker(int i)
+ {
+ return m_tracker->getDetectedMarker(i);
+ }
+ const ARFloat* getModelViewMatrix() const
+ {
+ return m_tracker->getModelViewMatrix();
+ }
+ const ARFloat* getProjectionMatrix() const
+ {
+ return m_tracker->getProjectionMatrix();
+ }
+ bool ToggleAutoThreshold();
+ void setThreshold( int thr )
+ {
+ if ( ! m_tracker->isAutoThresholdActivated() )
+ m_tracker->setThreshold( thr );
+ }
+ int getThreshold()
+ {
+ return m_tracker->getThreshold();
+ }
+ bool IsCalibrationID( int id );
+ MinMaxAvg confidence;
+ MinMaxAvg frame_per_seconds;
+ MinMaxAvg frame_delay;
+
+ int DownSample;
+ int BlurPass;
+ typedef enum { GrayScale, Blur, Diff, Threshold, Moyen } DisplayType;
+ typedef enum { FMoyen, FLaplacien4, FLaplacien8, FLaplaciend, FSobel, FPrewitt, FGaussian } FilterType;
+
+ DisplayType Display;
+ FilterType filter;
+
+protected:
+ // Ivy;
+ Ivy* bus;
+ char * camera;
+ // For calibration Process
+ std::set<int> m_calibration_ids;
+ std::map<int,Calibration::Corners> m_IdToCorner;
+ Calibration *m_calibration;
+ bool m_calibrated;
+
+ bool m_calibration_enabled;
+ bool first_calibration_done;
+
+ TrackerMultiMarker *m_tracker; // Manages ARToolkit tracker
+
+ int m_width, m_height; // image size
+ int nb_pixel;
+
+ typedef float pixel_type;
+ typedef float value_type;
+ pixel_type *m_gray;
+ pixel_type *m_blur0;
+ pixel_type *m_blur1;
+ pixel_type *m_filter_v;
+ pixel_type *m_filter_h;
+
+ // filtre moyen sur plusieurs images
+ void CalcMoyen();
+
+ void DisplayGrayScale(unsigned char * cameraBuffer, pixel_type * dest);
+ void DisplayBlur(unsigned char * cameraBuffer, pixel_type * dest);
+ void DisplayDiff(unsigned char * cameraBuffer, pixel_type * dest);
+ void DisplayThreshold(unsigned char * cameraBuffer, pixel_type * dest);
+ void DisplayMoyen(unsigned char * cameraBuffer, pixel_type * dest);
+ void Filter ( const float *k, int k_size, pixel_type *src, pixel_type *dst );
+
+ void CombineFilter ( pixel_type *src_h, pixel_type *src_v, pixel_type *dst );
+
+ float *m_sum;
+ pixel_type **m_images;
+ int m_first_image;
+ int m_last_image;
+ int nb_images;
+
+ long FrameCount;
+ double MarkerWidth;
+ ARToolKitPlus::MARKER_MODE MarkerType;
+ std::string CameraParameterFile;
+ std::string MarkerSetConfigFile;
+ std::string CalibrationFile;
+ double MarkerMoveThreshold;
+ int MarkerSeekingThreshold;
+ float MarkerBorderPercentage;
+ int MarkerAbsenceCount;
+
+
+}; \ No newline at end of file
diff --git a/ARMFCaptureD3D/ARMFCaptureD3D.aps b/ARMFCaptureD3D/ARMFCaptureD3D.aps
new file mode 100644
index 0000000..6d3164d
--- /dev/null
+++ b/ARMFCaptureD3D/ARMFCaptureD3D.aps
Binary files differ
diff --git a/ARMFCaptureD3D/ARMFCaptureD3D.h b/ARMFCaptureD3D/ARMFCaptureD3D.h
new file mode 100644
index 0000000..35b2d6d
--- /dev/null
+++ b/ARMFCaptureD3D/ARMFCaptureD3D.h
@@ -0,0 +1,52 @@
+//////////////////////////////////////////////////////////////////////////
+//
+// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
+// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
+// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
+// PARTICULAR PURPOSE.
+//
+// Copyright (c) Microsoft Corporation. All rights reserved.
+//
+//////////////////////////////////////////////////////////////////////////
+#pragma once
+
+#include <new>
+#include <windows.h>
+#include <windowsx.h>
+#include <commctrl.h>
+#ifdef DX9
+#include <d3d9.h>
+#include <d3d9types.h>
+// include the Direct3D Library files
+#pragma comment (lib, "d3d9.lib")
+#else
+#include <D3D11.h>
+// include the Direct3D Library files
+#pragma comment (lib, "d3d10.lib")
+#endif
+
+#include <mfapi.h>
+#include <mfidl.h>
+#include <mfreadwrite.h>
+#include <mferror.h>
+
+#include <strsafe.h>
+#include <assert.h>
+
+#include <ks.h>
+#include <ksmedia.h>
+#include <Dbt.h>
+
+template <class T> void SafeRelease(T **ppT)
+{
+ if (*ppT)
+ {
+ (*ppT)->Release();
+ *ppT = NULL;
+ }
+}
+
+
+#include "device.h"
+#include "preview.h"
+
diff --git a/ARMFCaptureD3D/ARMFCaptureD3D.opensdf b/ARMFCaptureD3D/ARMFCaptureD3D.opensdf
new file mode 100644
index 0000000..ffd8cbb
--- /dev/null
+++ b/ARMFCaptureD3D/ARMFCaptureD3D.opensdf
Binary files differ
diff --git a/ARMFCaptureD3D/ARMFCaptureD3D.rc b/ARMFCaptureD3D/ARMFCaptureD3D.rc
new file mode 100644
index 0000000..1f95676
--- /dev/null
+++ b/ARMFCaptureD3D/ARMFCaptureD3D.rc
@@ -0,0 +1,198 @@
+// Microsoft Visual C++ generated resource script.
+//
+#include "resource.h"
+
+#define APSTUDIO_READONLY_SYMBOLS
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 2 resource.
+//
+#include "windows.h"
+
+/////////////////////////////////////////////////////////////////////////////
+#undef APSTUDIO_READONLY_SYMBOLS
+
+/////////////////////////////////////////////////////////////////////////////
+// Anglais (États-Unis) resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
+#pragma code_page(1252)
+
+#ifdef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// TEXTINCLUDE
+//
+
+1 TEXTINCLUDE
+BEGIN
+ "resource.h\0"
+END
+
+2 TEXTINCLUDE
+BEGIN
+ "#include ""windows.h""\r\n"
+ "\0"
+END
+
+3 TEXTINCLUDE
+BEGIN
+ "\r\n"
+ "\0"
+END
+
+#endif // APSTUDIO_INVOKED
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Menu
+//
+
+IDR_MENU1 MENU
+BEGIN
+ POPUP "Action"
+ BEGIN
+ MENUITEM "Choose &Device", ID_ACTION_CHOOSEDEVICE
+ MENUITEM "Choose Format", ID_ACTION_CHOOSEFORMAT
+ MENUITEM "Auto Threshold", ID_ACTION_AUTOTHRESHOLD, CHECKED
+ MENUITEM "Display Video", ID_ACTION_DISPLAYVIDEO, CHECKED
+ MENUITEM "Calibrate", ID_ACTION_CALIBRATE
+ MENUITEM "Transform", ID_ACTION_TRANSFORM
+ MENUITEM "CalcMoyen", ID_ACTION_CALCMOYEN
+ MENUITEM "Save Calibration", ID_ACTION_SAVEPROJECTIONDATA
+ END
+ POPUP "DownSample"
+ BEGIN
+ MENUITEM "Facteur 1", ID_DOWNSAMPLE_FACTEUR1
+ MENUITEM "Facteur 2", ID_DOWNSAMPLE_FACTEUR2
+ MENUITEM "Facteur 4", ID_DOWNSAMPLE_FACTEUR4
+ MENUITEM "Facteur 8", ID_DOWNSAMPLE_FACTEUR8
+ END
+ POPUP "Filter"
+ BEGIN
+ MENUITEM "Moyen", ID_FILTER_MOYEN
+ MENUITEM "Laplacien 4", ID_FILTER_LAPLACIEN4
+ MENUITEM "Laplacien 8", ID_FILTER_LAPLACIEN8
+ MENUITEM "Laplacien D", ID_FILTER_LAPLACIEND
+ MENUITEM "Sobel", ID_FILTER_SOBEL
+ MENUITEM "Prewitt", ID_FILTER_PREWITT
+ MENUITEM "Gaussian", ID_FILTER_GAUSSIAN
+ END
+ POPUP "Filter Passe"
+ BEGIN
+ MENUITEM "0 Passes", ID_BLURPASSE_0PASS
+ MENUITEM "1 Passes", ID_BLURPASSE_1PASS
+ MENUITEM "2 Passes", ID_BLURPASSE_2PASS
+ MENUITEM "3 Passes", ID_BLURPASSE_3PASS
+ MENUITEM "4 Passes", ID_BLURPASSE_4PASS
+ MENUITEM "5 Passes", ID_BLURPASSE_5PASS
+ MENUITEM "6 Passes", ID_BLURPASSE_6PASS
+ MENUITEM "10 Passes", ID_BLURPASSE_10PASS
+ END
+ POPUP "Affichage"
+ BEGIN
+ MENUITEM "GrayScale", ID_AFFICHAGE_GRAYSCALE
+ MENUITEM "Blur", ID_AFFICHAGE_BLUR
+ MENUITEM "Diff", ID_AFFICHAGE_DIFF
+ MENUITEM "Threshold", ID_AFFICHAGE_THRESHOLD
+ MENUITEM "Moyen", ID_AFFICHAGE_MOYEN
+ END
+END
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Dialog
+//
+
+IDD_CHOOSE_DEVICE DIALOGEX 0, 0, 186, 90
+STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "Select Device"
+FONT 8, "MS Shell Dlg", 400, 0, 0x1
+BEGIN
+ DEFPUSHBUTTON "OK",IDOK,129,7,50,14
+ PUSHBUTTON "Cancel",IDCANCEL,129,24,50,14
+ LISTBOX IDC_DEVICE_LIST,7,7,110,76,LBS_SORT | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP
+END
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// DESIGNINFO
+//
+
+#ifdef APSTUDIO_INVOKED
+GUIDELINES DESIGNINFO
+BEGIN
+ IDD_CHOOSE_DEVICE, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 179
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 83
+ END
+END
+#endif // APSTUDIO_INVOKED
+
+#endif // Anglais (États-Unis) resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+/////////////////////////////////////////////////////////////////////////////
+// Français (France) resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_FRA)
+LANGUAGE LANG_FRENCH, SUBLANG_FRENCH
+#pragma code_page(1252)
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Dialog
+//
+
+IDD_CHOOSE_VIDEO DIALOGEX 0, 0, 316, 183
+STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "Dialog"
+FONT 8, "MS Shell Dlg", 400, 0, 0x1
+BEGIN
+ DEFPUSHBUTTON "OK",IDOK,259,14,50,14
+ PUSHBUTTON "Annuler",IDCANCEL,259,42,50,14
+ LISTBOX IDC_VIDEO_LIST,7,7,245,169,LBS_SORT | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP
+END
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// DESIGNINFO
+//
+
+#ifdef APSTUDIO_INVOKED
+GUIDELINES DESIGNINFO
+BEGIN
+ IDD_CHOOSE_VIDEO, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 309
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 176
+ END
+END
+#endif // APSTUDIO_INVOKED
+
+#endif // Français (France) resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+
+#ifndef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 3 resource.
+//
+
+
+/////////////////////////////////////////////////////////////////////////////
+#endif // not APSTUDIO_INVOKED
+
diff --git a/ARMFCaptureD3D/ARMFCaptureD3D.sdf b/ARMFCaptureD3D/ARMFCaptureD3D.sdf
new file mode 100644
index 0000000..d41eb73
--- /dev/null
+++ b/ARMFCaptureD3D/ARMFCaptureD3D.sdf
Binary files differ
diff --git a/ARMFCaptureD3D/ARMFCaptureD3D.sln b/ARMFCaptureD3D/ARMFCaptureD3D.sln
new file mode 100644
index 0000000..f43098f
--- /dev/null
+++ b/ARMFCaptureD3D/ARMFCaptureD3D.sln
@@ -0,0 +1,73 @@
+
+Microsoft Visual Studio Solution File, Format Version 11.00
+# Visual Studio 2010
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ARMFCaptureD3D", "MFCaptureD3D.vcxproj", "{42CC2BCD-AAD2-4C3C-87BB-0B42F2848E17}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ARToolKitPlus", "..\ArToolKitPlus\ARToolKitPlus.vcxproj", "{CCF160AF-4F7E-8012-1926-AC4C742CC14F}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Ivy", "..\Bus\Ivy\Ivy.vcxproj", "{9818D652-CC05-463E-880D-AFCA2C7BFABE}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pcre", "..\..\pcre\pcre.vcxproj", "{D79FC143-498E-4342-B2C7-BDAD1B8D0E6B}"
+EndProject
+Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "Setup", "Setup\Setup.vdproj", "{D99892D1-064D-498E-A96A-9686FAE8CD1D}"
+EndProject
+Global
+ GlobalSection(SourceCodeControl) = preSolution
+ SccNumberOfProjects = 2
+ SccProjectUniqueName0 = ..\\Bus\\Ivy\\Ivy.vcxproj
+ SccProjectName0 = \u0022$/Bus/Ivy\u0022,\u0020QPEAAAAA
+ SccLocalPath0 = ..\\Bus\\Ivy
+ SccProvider0 = MSSCCI:Microsoft\u0020Visual\u0020SourceSafe
+ SccProjectUniqueName1 = ..\\..\\pcre\\pcre.vcxproj
+ SccProjectName1 = \u0022$/pcre\u0022,\u0020KSHAAAAA
+ SccLocalPath1 = ..\\..\\pcre
+ SccProvider1 = MSSCCI:Microsoft\u0020Visual\u0020SourceSafe
+ EndGlobalSection
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Win32 = Debug|Win32
+ Debug|x64 = Debug|x64
+ Release|Win32 = Release|Win32
+ Release|x64 = Release|x64
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {42CC2BCD-AAD2-4C3C-87BB-0B42F2848E17}.Debug|Win32.ActiveCfg = Debug|Win32
+ {42CC2BCD-AAD2-4C3C-87BB-0B42F2848E17}.Debug|Win32.Build.0 = Debug|Win32
+ {42CC2BCD-AAD2-4C3C-87BB-0B42F2848E17}.Debug|x64.ActiveCfg = Debug|x64
+ {42CC2BCD-AAD2-4C3C-87BB-0B42F2848E17}.Debug|x64.Build.0 = Debug|x64
+ {42CC2BCD-AAD2-4C3C-87BB-0B42F2848E17}.Release|Win32.ActiveCfg = Release|Win32
+ {42CC2BCD-AAD2-4C3C-87BB-0B42F2848E17}.Release|Win32.Build.0 = Release|Win32
+ {42CC2BCD-AAD2-4C3C-87BB-0B42F2848E17}.Release|x64.ActiveCfg = Release|x64
+ {42CC2BCD-AAD2-4C3C-87BB-0B42F2848E17}.Release|x64.Build.0 = Release|x64
+ {CCF160AF-4F7E-8012-1926-AC4C742CC14F}.Debug|Win32.ActiveCfg = Debug|Win32
+ {CCF160AF-4F7E-8012-1926-AC4C742CC14F}.Debug|Win32.Build.0 = Debug|Win32
+ {CCF160AF-4F7E-8012-1926-AC4C742CC14F}.Debug|x64.ActiveCfg = Debug|x64
+ {CCF160AF-4F7E-8012-1926-AC4C742CC14F}.Debug|x64.Build.0 = Debug|x64
+ {CCF160AF-4F7E-8012-1926-AC4C742CC14F}.Release|Win32.ActiveCfg = Release|Win32
+ {CCF160AF-4F7E-8012-1926-AC4C742CC14F}.Release|Win32.Build.0 = Release|Win32
+ {CCF160AF-4F7E-8012-1926-AC4C742CC14F}.Release|x64.ActiveCfg = Release|x64
+ {CCF160AF-4F7E-8012-1926-AC4C742CC14F}.Release|x64.Build.0 = Release|x64
+ {9818D652-CC05-463E-880D-AFCA2C7BFABE}.Debug|Win32.ActiveCfg = Debug|Win32
+ {9818D652-CC05-463E-880D-AFCA2C7BFABE}.Debug|Win32.Build.0 = Debug|Win32
+ {9818D652-CC05-463E-880D-AFCA2C7BFABE}.Debug|x64.ActiveCfg = Debug|x64
+ {9818D652-CC05-463E-880D-AFCA2C7BFABE}.Debug|x64.Build.0 = Debug|x64
+ {9818D652-CC05-463E-880D-AFCA2C7BFABE}.Release|Win32.ActiveCfg = Release|Win32
+ {9818D652-CC05-463E-880D-AFCA2C7BFABE}.Release|Win32.Build.0 = Release|Win32
+ {9818D652-CC05-463E-880D-AFCA2C7BFABE}.Release|x64.ActiveCfg = Release|x64
+ {9818D652-CC05-463E-880D-AFCA2C7BFABE}.Release|x64.Build.0 = Release|x64
+ {D79FC143-498E-4342-B2C7-BDAD1B8D0E6B}.Debug|Win32.ActiveCfg = Debug|Win32
+ {D79FC143-498E-4342-B2C7-BDAD1B8D0E6B}.Debug|Win32.Build.0 = Debug|Win32
+ {D79FC143-498E-4342-B2C7-BDAD1B8D0E6B}.Debug|x64.ActiveCfg = Debug|x64
+ {D79FC143-498E-4342-B2C7-BDAD1B8D0E6B}.Debug|x64.Build.0 = Debug|x64
+ {D79FC143-498E-4342-B2C7-BDAD1B8D0E6B}.Release|Win32.ActiveCfg = Release|Win32
+ {D79FC143-498E-4342-B2C7-BDAD1B8D0E6B}.Release|Win32.Build.0 = Release|Win32
+ {D79FC143-498E-4342-B2C7-BDAD1B8D0E6B}.Release|x64.ActiveCfg = Release|x64
+ {D79FC143-498E-4342-B2C7-BDAD1B8D0E6B}.Release|x64.Build.0 = Release|x64
+ {D99892D1-064D-498E-A96A-9686FAE8CD1D}.Debug|Win32.ActiveCfg = Debug
+ {D99892D1-064D-498E-A96A-9686FAE8CD1D}.Debug|x64.ActiveCfg = Debug
+ {D99892D1-064D-498E-A96A-9686FAE8CD1D}.Release|Win32.ActiveCfg = Release
+ {D99892D1-064D-498E-A96A-9686FAE8CD1D}.Release|x64.ActiveCfg = Release
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/ARMFCaptureD3D/ARMFCaptureD3D.sln.cache b/ARMFCaptureD3D/ARMFCaptureD3D.sln.cache
new file mode 100644
index 0000000..5f63143
--- /dev/null
+++ b/ARMFCaptureD3D/ARMFCaptureD3D.sln.cache
@@ -0,0 +1,241 @@
+<Project DefaultTargets="Build" ToolsVersion="3.5" InitialTargets="ValidateSolutionConfiguration;ValidateToolsVersions" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup>
+ <_SolutionProjectConfiguration>Debug|Win32</_SolutionProjectConfiguration>
+ <_SolutionProjectToolsVersion>3.5</_SolutionProjectToolsVersion>
+ <_SolutionProjectCacheVersion>3.5</_SolutionProjectCacheVersion>
+ </PropertyGroup>
+ <ItemGroup>
+ <_SolutionProjectProjects Include="..\..\pcre\pcre.vcxproj" />
+ <_SolutionProjectProjects Include="..\ArToolKitPlus\ARToolKitPlus.vcxproj" />
+ <_SolutionProjectProjects Include="..\Bus\Ivy\Ivy.vcxproj" />
+ <_SolutionProjectProjects Include="MFCaptureD3D.vcxproj" />
+ <_SolutionProjectProjects Include="Setup\Setup.vdproj" />
+ </ItemGroup>
+ <UsingTask TaskName="Microsoft.Build.Tasks.CreateTemporaryVCProject" AssemblyName="Microsoft.Build.Tasks.v3.5, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+ <UsingTask TaskName="Microsoft.Build.Tasks.ResolveVCProjectOutput" AssemblyName="Microsoft.Build.Tasks.v3.5, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+ <PropertyGroup Condition=" '$(Configuration)' == '' ">
+ <Configuration>Debug</Configuration>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Platform)' == '' ">
+ <Platform>Win32</Platform>
+ </PropertyGroup>
+ <PropertyGroup Condition=" ('$(AspNetConfiguration)' == '') ">
+ <AspNetConfiguration>$(Configuration)</AspNetConfiguration>
+ </PropertyGroup>
+ <PropertyGroup>
+ <SolutionDir>C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\</SolutionDir>
+ <SolutionExt>.sln</SolutionExt>
+ <SolutionFileName>ARMFCaptureD3D.sln</SolutionFileName>
+ <SolutionName>ARMFCaptureD3D</SolutionName>
+ <SolutionPath>C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\ARMFCaptureD3D.sln</SolutionPath>
+ </PropertyGroup>
+ <PropertyGroup>
+ <TargetFrameworkVersion Condition="'$(TargetFrameworkVersion)' == '' and '$(MSBuildToolsVersion)' == '2.0'">v2.0</TargetFrameworkVersion>
+ <TargetFrameworkVersion Condition="'$(TargetFrameworkVersion)' == '' and '$(MSBuildToolsVersion)' != '2.0'">v3.5</TargetFrameworkVersion>
+ </PropertyGroup>
+ <PropertyGroup Condition=" ('$(Configuration)' == 'Debug') and ('$(Platform)' == 'Win32') ">
+ <CurrentSolutionConfigurationContents>
+ <SolutionConfiguration xmlns="">
+ <ProjectConfiguration Project="{42CC2BCD-AAD2-4C3C-87BB-0B42F2848E17}">Debug|Win32</ProjectConfiguration>
+ <ProjectConfiguration Project="{CCF160AF-4F7E-8012-1926-AC4C742CC14F}">Debug|Win32</ProjectConfiguration>
+ <ProjectConfiguration Project="{9818D652-CC05-463E-880D-AFCA2C7BFABE}">Debug|Win32</ProjectConfiguration>
+ <ProjectConfiguration Project="{D79FC143-498E-4342-B2C7-BDAD1B8D0E6B}">Debug|Win32</ProjectConfiguration>
+ <ProjectConfiguration Project="{D99892D1-064D-498E-A96A-9686FAE8CD1D}">Debug</ProjectConfiguration>
+ </SolutionConfiguration>
+ </CurrentSolutionConfigurationContents>
+ </PropertyGroup>
+ <PropertyGroup Condition=" ('$(Configuration)' == 'Debug') and ('$(Platform)' == 'x64') ">
+ <CurrentSolutionConfigurationContents>
+ <SolutionConfiguration xmlns="">
+ <ProjectConfiguration Project="{42CC2BCD-AAD2-4C3C-87BB-0B42F2848E17}">Debug|x64</ProjectConfiguration>
+ <ProjectConfiguration Project="{CCF160AF-4F7E-8012-1926-AC4C742CC14F}">Debug|x64</ProjectConfiguration>
+ <ProjectConfiguration Project="{9818D652-CC05-463E-880D-AFCA2C7BFABE}">Debug|x64</ProjectConfiguration>
+ <ProjectConfiguration Project="{D79FC143-498E-4342-B2C7-BDAD1B8D0E6B}">Debug|x64</ProjectConfiguration>
+ <ProjectConfiguration Project="{D99892D1-064D-498E-A96A-9686FAE8CD1D}">Debug</ProjectConfiguration>
+ </SolutionConfiguration>
+ </CurrentSolutionConfigurationContents>
+ </PropertyGroup>
+ <PropertyGroup Condition=" ('$(Configuration)' == 'Release') and ('$(Platform)' == 'Win32') ">
+ <CurrentSolutionConfigurationContents>
+ <SolutionConfiguration xmlns="">
+ <ProjectConfiguration Project="{42CC2BCD-AAD2-4C3C-87BB-0B42F2848E17}">Release|Win32</ProjectConfiguration>
+ <ProjectConfiguration Project="{CCF160AF-4F7E-8012-1926-AC4C742CC14F}">Release|Win32</ProjectConfiguration>
+ <ProjectConfiguration Project="{9818D652-CC05-463E-880D-AFCA2C7BFABE}">Release|Win32</ProjectConfiguration>
+ <ProjectConfiguration Project="{D79FC143-498E-4342-B2C7-BDAD1B8D0E6B}">Release|Win32</ProjectConfiguration>
+ <ProjectConfiguration Project="{D99892D1-064D-498E-A96A-9686FAE8CD1D}">Release</ProjectConfiguration>
+ </SolutionConfiguration>
+ </CurrentSolutionConfigurationContents>
+ </PropertyGroup>
+ <PropertyGroup Condition=" ('$(Configuration)' == 'Release') and ('$(Platform)' == 'x64') ">
+ <CurrentSolutionConfigurationContents>
+ <SolutionConfiguration xmlns="">
+ <ProjectConfiguration Project="{42CC2BCD-AAD2-4C3C-87BB-0B42F2848E17}">Release|x64</ProjectConfiguration>
+ <ProjectConfiguration Project="{CCF160AF-4F7E-8012-1926-AC4C742CC14F}">Release|x64</ProjectConfiguration>
+ <ProjectConfiguration Project="{9818D652-CC05-463E-880D-AFCA2C7BFABE}">Release|x64</ProjectConfiguration>
+ <ProjectConfiguration Project="{D79FC143-498E-4342-B2C7-BDAD1B8D0E6B}">Release|x64</ProjectConfiguration>
+ <ProjectConfiguration Project="{D99892D1-064D-498E-A96A-9686FAE8CD1D}">Release</ProjectConfiguration>
+ </SolutionConfiguration>
+ </CurrentSolutionConfigurationContents>
+ </PropertyGroup>
+ <Target Name="ValidateSolutionConfiguration">
+ <Error Text="The specified solution configuration &quot;$(Configuration)|$(Platform)&quot; is invalid. Please specify a valid solution configuration using the Configuration and Platform properties (e.g. MSBuild.exe Solution.sln /p:Configuration=Debug /p:Platform=&quot;Any CPU&quot;) or leave those properties blank to use the default solution configuration." Code="MSB4126" HelpKeyword="MSBuild.SolutionInvalidSolutionConfiguration" Condition="('$(CurrentSolutionConfigurationContents)' == '') and ('$(SkipInvalidConfigurations)' != 'true')" />
+ <Warning Text="The specified solution configuration &quot;$(Configuration)|$(Platform)&quot; is invalid. Please specify a valid solution configuration using the Configuration and Platform properties (e.g. MSBuild.exe Solution.sln /p:Configuration=Debug /p:Platform=&quot;Any CPU&quot;) or leave those properties blank to use the default solution configuration." Code="MSB4126" HelpKeyword="MSBuild.SolutionInvalidSolutionConfiguration" Condition="('$(CurrentSolutionConfigurationContents)' == '') and ('$(SkipInvalidConfigurations)' == 'true')" />
+ <Message Text="Building solution configuration &quot;$(Configuration)|$(Platform)&quot;." Condition="'$(CurrentSolutionConfigurationContents)' != ''" />
+ </Target>
+ <Target Name="ValidateToolsVersions">
+ <Error Text="The tools version &quot;$(MSBuildToolsVersion)&quot; of the solution does not support building projects with a different tools version." Code="MSB4149" HelpKeyword="MSBuild.SolutionToolsVersionDoesNotSupportProjectToolsVersion" Condition="'$(MSBuildToolsVersion)' == '2.0' and ('$(ProjectToolsVersion)' != '2.0' and '$(ProjectToolsVersion)' != '')" />
+ </Target>
+ <Target Name="ARMFCaptureD3D" Condition="'$(CurrentSolutionConfigurationContents)' != ''">
+ <VCBuild Projects="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj" ToolPath="$(VCBuildToolPath)" Configuration="Debug|Win32" SolutionFile="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\ARMFCaptureD3D.sln" Override="$(VCBuildOverride)" AdditionalLibPaths="$(VCBuildAdditionalLibPaths)" AdditionalLinkLibraryPaths="$(VCBuildAdditionalLinkLibraryPaths)" UseEnvironment="$(VCBuildUseEnvironment)" UserEnvironment="$(VCBuildUserEnvironment)" AdditionalOptions="$(VCBuildAdditionalOptions)" Condition=" ('$(Configuration)' == 'Debug') and ('$(Platform)' == 'Win32') " />
+ <VCBuild Projects="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj" ToolPath="$(VCBuildToolPath)" Configuration="Debug|x64" SolutionFile="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\ARMFCaptureD3D.sln" Override="$(VCBuildOverride)" AdditionalLibPaths="$(VCBuildAdditionalLibPaths)" AdditionalLinkLibraryPaths="$(VCBuildAdditionalLinkLibraryPaths)" UseEnvironment="$(VCBuildUseEnvironment)" UserEnvironment="$(VCBuildUserEnvironment)" AdditionalOptions="$(VCBuildAdditionalOptions)" Condition=" ('$(Configuration)' == 'Debug') and ('$(Platform)' == 'x64') " />
+ <VCBuild Projects="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj" ToolPath="$(VCBuildToolPath)" Configuration="Release|Win32" SolutionFile="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\ARMFCaptureD3D.sln" Override="$(VCBuildOverride)" AdditionalLibPaths="$(VCBuildAdditionalLibPaths)" AdditionalLinkLibraryPaths="$(VCBuildAdditionalLinkLibraryPaths)" UseEnvironment="$(VCBuildUseEnvironment)" UserEnvironment="$(VCBuildUserEnvironment)" AdditionalOptions="$(VCBuildAdditionalOptions)" Condition=" ('$(Configuration)' == 'Release') and ('$(Platform)' == 'Win32') " />
+ <VCBuild Projects="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj" ToolPath="$(VCBuildToolPath)" Configuration="Release|x64" SolutionFile="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\ARMFCaptureD3D.sln" Override="$(VCBuildOverride)" AdditionalLibPaths="$(VCBuildAdditionalLibPaths)" AdditionalLinkLibraryPaths="$(VCBuildAdditionalLinkLibraryPaths)" UseEnvironment="$(VCBuildUseEnvironment)" UserEnvironment="$(VCBuildUserEnvironment)" AdditionalOptions="$(VCBuildAdditionalOptions)" Condition=" ('$(Configuration)' == 'Release') and ('$(Platform)' == 'x64') " />
+ </Target>
+ <Target Name="ARMFCaptureD3D:Clean" Condition="'$(CurrentSolutionConfigurationContents)' != ''">
+ <VCBuild Projects="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj" ToolPath="$(VCBuildToolPath)" Configuration="Debug|Win32" SolutionFile="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\ARMFCaptureD3D.sln" Clean="true" Override="$(VCBuildOverride)" AdditionalLibPaths="$(VCBuildAdditionalLibPaths)" AdditionalLinkLibraryPaths="$(VCBuildAdditionalLinkLibraryPaths)" UseEnvironment="$(VCBuildUseEnvironment)" UserEnvironment="$(VCBuildUserEnvironment)" AdditionalOptions="$(VCBuildAdditionalOptions)" Condition=" ('$(Configuration)' == 'Debug') and ('$(Platform)' == 'Win32') " />
+ <VCBuild Projects="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj" ToolPath="$(VCBuildToolPath)" Configuration="Debug|x64" SolutionFile="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\ARMFCaptureD3D.sln" Clean="true" Override="$(VCBuildOverride)" AdditionalLibPaths="$(VCBuildAdditionalLibPaths)" AdditionalLinkLibraryPaths="$(VCBuildAdditionalLinkLibraryPaths)" UseEnvironment="$(VCBuildUseEnvironment)" UserEnvironment="$(VCBuildUserEnvironment)" AdditionalOptions="$(VCBuildAdditionalOptions)" Condition=" ('$(Configuration)' == 'Debug') and ('$(Platform)' == 'x64') " />
+ <VCBuild Projects="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj" ToolPath="$(VCBuildToolPath)" Configuration="Release|Win32" SolutionFile="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\ARMFCaptureD3D.sln" Clean="true" Override="$(VCBuildOverride)" AdditionalLibPaths="$(VCBuildAdditionalLibPaths)" AdditionalLinkLibraryPaths="$(VCBuildAdditionalLinkLibraryPaths)" UseEnvironment="$(VCBuildUseEnvironment)" UserEnvironment="$(VCBuildUserEnvironment)" AdditionalOptions="$(VCBuildAdditionalOptions)" Condition=" ('$(Configuration)' == 'Release') and ('$(Platform)' == 'Win32') " />
+ <VCBuild Projects="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj" ToolPath="$(VCBuildToolPath)" Configuration="Release|x64" SolutionFile="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\ARMFCaptureD3D.sln" Clean="true" Override="$(VCBuildOverride)" AdditionalLibPaths="$(VCBuildAdditionalLibPaths)" AdditionalLinkLibraryPaths="$(VCBuildAdditionalLinkLibraryPaths)" UseEnvironment="$(VCBuildUseEnvironment)" UserEnvironment="$(VCBuildUserEnvironment)" AdditionalOptions="$(VCBuildAdditionalOptions)" Condition=" ('$(Configuration)' == 'Release') and ('$(Platform)' == 'x64') " />
+ </Target>
+ <Target Name="ARMFCaptureD3D:Rebuild" Condition="'$(CurrentSolutionConfigurationContents)' != ''">
+ <VCBuild Projects="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj" ToolPath="$(VCBuildToolPath)" Configuration="Debug|Win32" SolutionFile="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\ARMFCaptureD3D.sln" Rebuild="true" Override="$(VCBuildOverride)" AdditionalLibPaths="$(VCBuildAdditionalLibPaths)" AdditionalLinkLibraryPaths="$(VCBuildAdditionalLinkLibraryPaths)" UseEnvironment="$(VCBuildUseEnvironment)" UserEnvironment="$(VCBuildUserEnvironment)" AdditionalOptions="$(VCBuildAdditionalOptions)" Condition=" ('$(Configuration)' == 'Debug') and ('$(Platform)' == 'Win32') " />
+ <VCBuild Projects="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj" ToolPath="$(VCBuildToolPath)" Configuration="Debug|x64" SolutionFile="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\ARMFCaptureD3D.sln" Rebuild="true" Override="$(VCBuildOverride)" AdditionalLibPaths="$(VCBuildAdditionalLibPaths)" AdditionalLinkLibraryPaths="$(VCBuildAdditionalLinkLibraryPaths)" UseEnvironment="$(VCBuildUseEnvironment)" UserEnvironment="$(VCBuildUserEnvironment)" AdditionalOptions="$(VCBuildAdditionalOptions)" Condition=" ('$(Configuration)' == 'Debug') and ('$(Platform)' == 'x64') " />
+ <VCBuild Projects="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj" ToolPath="$(VCBuildToolPath)" Configuration="Release|Win32" SolutionFile="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\ARMFCaptureD3D.sln" Rebuild="true" Override="$(VCBuildOverride)" AdditionalLibPaths="$(VCBuildAdditionalLibPaths)" AdditionalLinkLibraryPaths="$(VCBuildAdditionalLinkLibraryPaths)" UseEnvironment="$(VCBuildUseEnvironment)" UserEnvironment="$(VCBuildUserEnvironment)" AdditionalOptions="$(VCBuildAdditionalOptions)" Condition=" ('$(Configuration)' == 'Release') and ('$(Platform)' == 'Win32') " />
+ <VCBuild Projects="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj" ToolPath="$(VCBuildToolPath)" Configuration="Release|x64" SolutionFile="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\ARMFCaptureD3D.sln" Rebuild="true" Override="$(VCBuildOverride)" AdditionalLibPaths="$(VCBuildAdditionalLibPaths)" AdditionalLinkLibraryPaths="$(VCBuildAdditionalLinkLibraryPaths)" UseEnvironment="$(VCBuildUseEnvironment)" UserEnvironment="$(VCBuildUserEnvironment)" AdditionalOptions="$(VCBuildAdditionalOptions)" Condition=" ('$(Configuration)' == 'Release') and ('$(Platform)' == 'x64') " />
+ </Target>
+ <Target Name="ARMFCaptureD3D:Publish" Condition="'$(CurrentSolutionConfigurationContents)' != ''">
+ <Warning Text="VC projects do not support the &quot;Publish&quot; target." Code="MSB4076" HelpKeyword="MSBuild.SolutionVCProjectNoPublish" />
+ <VCBuild Projects="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj" ToolPath="$(VCBuildToolPath)" Configuration="Debug|Win32" SolutionFile="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\ARMFCaptureD3D.sln" Override="$(VCBuildOverride)" AdditionalLibPaths="$(VCBuildAdditionalLibPaths)" AdditionalLinkLibraryPaths="$(VCBuildAdditionalLinkLibraryPaths)" UseEnvironment="$(VCBuildUseEnvironment)" UserEnvironment="$(VCBuildUserEnvironment)" AdditionalOptions="$(VCBuildAdditionalOptions)" Condition=" ('$(Configuration)' == 'Debug') and ('$(Platform)' == 'Win32') " />
+ <VCBuild Projects="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj" ToolPath="$(VCBuildToolPath)" Configuration="Debug|x64" SolutionFile="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\ARMFCaptureD3D.sln" Override="$(VCBuildOverride)" AdditionalLibPaths="$(VCBuildAdditionalLibPaths)" AdditionalLinkLibraryPaths="$(VCBuildAdditionalLinkLibraryPaths)" UseEnvironment="$(VCBuildUseEnvironment)" UserEnvironment="$(VCBuildUserEnvironment)" AdditionalOptions="$(VCBuildAdditionalOptions)" Condition=" ('$(Configuration)' == 'Debug') and ('$(Platform)' == 'x64') " />
+ <VCBuild Projects="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj" ToolPath="$(VCBuildToolPath)" Configuration="Release|Win32" SolutionFile="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\ARMFCaptureD3D.sln" Override="$(VCBuildOverride)" AdditionalLibPaths="$(VCBuildAdditionalLibPaths)" AdditionalLinkLibraryPaths="$(VCBuildAdditionalLinkLibraryPaths)" UseEnvironment="$(VCBuildUseEnvironment)" UserEnvironment="$(VCBuildUserEnvironment)" AdditionalOptions="$(VCBuildAdditionalOptions)" Condition=" ('$(Configuration)' == 'Release') and ('$(Platform)' == 'Win32') " />
+ <VCBuild Projects="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj" ToolPath="$(VCBuildToolPath)" Configuration="Release|x64" SolutionFile="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\ARMFCaptureD3D.sln" Override="$(VCBuildOverride)" AdditionalLibPaths="$(VCBuildAdditionalLibPaths)" AdditionalLinkLibraryPaths="$(VCBuildAdditionalLinkLibraryPaths)" UseEnvironment="$(VCBuildUseEnvironment)" UserEnvironment="$(VCBuildUserEnvironment)" AdditionalOptions="$(VCBuildAdditionalOptions)" Condition=" ('$(Configuration)' == 'Release') and ('$(Platform)' == 'x64') " />
+ </Target>
+ <Target Name="ARToolKitPlus" Condition="'$(CurrentSolutionConfigurationContents)' != ''">
+ <VCBuild Projects="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\..\ArToolKitPlus\ARToolKitPlus.vcxproj" ToolPath="$(VCBuildToolPath)" Configuration="Debug|Win32" SolutionFile="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\ARMFCaptureD3D.sln" Override="$(VCBuildOverride)" AdditionalLibPaths="$(VCBuildAdditionalLibPaths)" AdditionalLinkLibraryPaths="$(VCBuildAdditionalLinkLibraryPaths)" UseEnvironment="$(VCBuildUseEnvironment)" UserEnvironment="$(VCBuildUserEnvironment)" AdditionalOptions="$(VCBuildAdditionalOptions)" Condition=" ('$(Configuration)' == 'Debug') and ('$(Platform)' == 'Win32') " />
+ <VCBuild Projects="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\..\ArToolKitPlus\ARToolKitPlus.vcxproj" ToolPath="$(VCBuildToolPath)" Configuration="Debug|x64" SolutionFile="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\ARMFCaptureD3D.sln" Override="$(VCBuildOverride)" AdditionalLibPaths="$(VCBuildAdditionalLibPaths)" AdditionalLinkLibraryPaths="$(VCBuildAdditionalLinkLibraryPaths)" UseEnvironment="$(VCBuildUseEnvironment)" UserEnvironment="$(VCBuildUserEnvironment)" AdditionalOptions="$(VCBuildAdditionalOptions)" Condition=" ('$(Configuration)' == 'Debug') and ('$(Platform)' == 'x64') " />
+ <VCBuild Projects="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\..\ArToolKitPlus\ARToolKitPlus.vcxproj" ToolPath="$(VCBuildToolPath)" Configuration="Release|Win32" SolutionFile="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\ARMFCaptureD3D.sln" Override="$(VCBuildOverride)" AdditionalLibPaths="$(VCBuildAdditionalLibPaths)" AdditionalLinkLibraryPaths="$(VCBuildAdditionalLinkLibraryPaths)" UseEnvironment="$(VCBuildUseEnvironment)" UserEnvironment="$(VCBuildUserEnvironment)" AdditionalOptions="$(VCBuildAdditionalOptions)" Condition=" ('$(Configuration)' == 'Release') and ('$(Platform)' == 'Win32') " />
+ <VCBuild Projects="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\..\ArToolKitPlus\ARToolKitPlus.vcxproj" ToolPath="$(VCBuildToolPath)" Configuration="Release|x64" SolutionFile="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\ARMFCaptureD3D.sln" Override="$(VCBuildOverride)" AdditionalLibPaths="$(VCBuildAdditionalLibPaths)" AdditionalLinkLibraryPaths="$(VCBuildAdditionalLinkLibraryPaths)" UseEnvironment="$(VCBuildUseEnvironment)" UserEnvironment="$(VCBuildUserEnvironment)" AdditionalOptions="$(VCBuildAdditionalOptions)" Condition=" ('$(Configuration)' == 'Release') and ('$(Platform)' == 'x64') " />
+ </Target>
+ <Target Name="ARToolKitPlus:Clean" Condition="'$(CurrentSolutionConfigurationContents)' != ''">
+ <VCBuild Projects="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\..\ArToolKitPlus\ARToolKitPlus.vcxproj" ToolPath="$(VCBuildToolPath)" Configuration="Debug|Win32" SolutionFile="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\ARMFCaptureD3D.sln" Clean="true" Override="$(VCBuildOverride)" AdditionalLibPaths="$(VCBuildAdditionalLibPaths)" AdditionalLinkLibraryPaths="$(VCBuildAdditionalLinkLibraryPaths)" UseEnvironment="$(VCBuildUseEnvironment)" UserEnvironment="$(VCBuildUserEnvironment)" AdditionalOptions="$(VCBuildAdditionalOptions)" Condition=" ('$(Configuration)' == 'Debug') and ('$(Platform)' == 'Win32') " />
+ <VCBuild Projects="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\..\ArToolKitPlus\ARToolKitPlus.vcxproj" ToolPath="$(VCBuildToolPath)" Configuration="Debug|x64" SolutionFile="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\ARMFCaptureD3D.sln" Clean="true" Override="$(VCBuildOverride)" AdditionalLibPaths="$(VCBuildAdditionalLibPaths)" AdditionalLinkLibraryPaths="$(VCBuildAdditionalLinkLibraryPaths)" UseEnvironment="$(VCBuildUseEnvironment)" UserEnvironment="$(VCBuildUserEnvironment)" AdditionalOptions="$(VCBuildAdditionalOptions)" Condition=" ('$(Configuration)' == 'Debug') and ('$(Platform)' == 'x64') " />
+ <VCBuild Projects="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\..\ArToolKitPlus\ARToolKitPlus.vcxproj" ToolPath="$(VCBuildToolPath)" Configuration="Release|Win32" SolutionFile="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\ARMFCaptureD3D.sln" Clean="true" Override="$(VCBuildOverride)" AdditionalLibPaths="$(VCBuildAdditionalLibPaths)" AdditionalLinkLibraryPaths="$(VCBuildAdditionalLinkLibraryPaths)" UseEnvironment="$(VCBuildUseEnvironment)" UserEnvironment="$(VCBuildUserEnvironment)" AdditionalOptions="$(VCBuildAdditionalOptions)" Condition=" ('$(Configuration)' == 'Release') and ('$(Platform)' == 'Win32') " />
+ <VCBuild Projects="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\..\ArToolKitPlus\ARToolKitPlus.vcxproj" ToolPath="$(VCBuildToolPath)" Configuration="Release|x64" SolutionFile="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\ARMFCaptureD3D.sln" Clean="true" Override="$(VCBuildOverride)" AdditionalLibPaths="$(VCBuildAdditionalLibPaths)" AdditionalLinkLibraryPaths="$(VCBuildAdditionalLinkLibraryPaths)" UseEnvironment="$(VCBuildUseEnvironment)" UserEnvironment="$(VCBuildUserEnvironment)" AdditionalOptions="$(VCBuildAdditionalOptions)" Condition=" ('$(Configuration)' == 'Release') and ('$(Platform)' == 'x64') " />
+ </Target>
+ <Target Name="ARToolKitPlus:Rebuild" Condition="'$(CurrentSolutionConfigurationContents)' != ''">
+ <VCBuild Projects="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\..\ArToolKitPlus\ARToolKitPlus.vcxproj" ToolPath="$(VCBuildToolPath)" Configuration="Debug|Win32" SolutionFile="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\ARMFCaptureD3D.sln" Rebuild="true" Override="$(VCBuildOverride)" AdditionalLibPaths="$(VCBuildAdditionalLibPaths)" AdditionalLinkLibraryPaths="$(VCBuildAdditionalLinkLibraryPaths)" UseEnvironment="$(VCBuildUseEnvironment)" UserEnvironment="$(VCBuildUserEnvironment)" AdditionalOptions="$(VCBuildAdditionalOptions)" Condition=" ('$(Configuration)' == 'Debug') and ('$(Platform)' == 'Win32') " />
+ <VCBuild Projects="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\..\ArToolKitPlus\ARToolKitPlus.vcxproj" ToolPath="$(VCBuildToolPath)" Configuration="Debug|x64" SolutionFile="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\ARMFCaptureD3D.sln" Rebuild="true" Override="$(VCBuildOverride)" AdditionalLibPaths="$(VCBuildAdditionalLibPaths)" AdditionalLinkLibraryPaths="$(VCBuildAdditionalLinkLibraryPaths)" UseEnvironment="$(VCBuildUseEnvironment)" UserEnvironment="$(VCBuildUserEnvironment)" AdditionalOptions="$(VCBuildAdditionalOptions)" Condition=" ('$(Configuration)' == 'Debug') and ('$(Platform)' == 'x64') " />
+ <VCBuild Projects="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\..\ArToolKitPlus\ARToolKitPlus.vcxproj" ToolPath="$(VCBuildToolPath)" Configuration="Release|Win32" SolutionFile="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\ARMFCaptureD3D.sln" Rebuild="true" Override="$(VCBuildOverride)" AdditionalLibPaths="$(VCBuildAdditionalLibPaths)" AdditionalLinkLibraryPaths="$(VCBuildAdditionalLinkLibraryPaths)" UseEnvironment="$(VCBuildUseEnvironment)" UserEnvironment="$(VCBuildUserEnvironment)" AdditionalOptions="$(VCBuildAdditionalOptions)" Condition=" ('$(Configuration)' == 'Release') and ('$(Platform)' == 'Win32') " />
+ <VCBuild Projects="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\..\ArToolKitPlus\ARToolKitPlus.vcxproj" ToolPath="$(VCBuildToolPath)" Configuration="Release|x64" SolutionFile="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\ARMFCaptureD3D.sln" Rebuild="true" Override="$(VCBuildOverride)" AdditionalLibPaths="$(VCBuildAdditionalLibPaths)" AdditionalLinkLibraryPaths="$(VCBuildAdditionalLinkLibraryPaths)" UseEnvironment="$(VCBuildUseEnvironment)" UserEnvironment="$(VCBuildUserEnvironment)" AdditionalOptions="$(VCBuildAdditionalOptions)" Condition=" ('$(Configuration)' == 'Release') and ('$(Platform)' == 'x64') " />
+ </Target>
+ <Target Name="ARToolKitPlus:Publish" Condition="'$(CurrentSolutionConfigurationContents)' != ''">
+ <Warning Text="VC projects do not support the &quot;Publish&quot; target." Code="MSB4076" HelpKeyword="MSBuild.SolutionVCProjectNoPublish" />
+ <VCBuild Projects="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\..\ArToolKitPlus\ARToolKitPlus.vcxproj" ToolPath="$(VCBuildToolPath)" Configuration="Debug|Win32" SolutionFile="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\ARMFCaptureD3D.sln" Override="$(VCBuildOverride)" AdditionalLibPaths="$(VCBuildAdditionalLibPaths)" AdditionalLinkLibraryPaths="$(VCBuildAdditionalLinkLibraryPaths)" UseEnvironment="$(VCBuildUseEnvironment)" UserEnvironment="$(VCBuildUserEnvironment)" AdditionalOptions="$(VCBuildAdditionalOptions)" Condition=" ('$(Configuration)' == 'Debug') and ('$(Platform)' == 'Win32') " />
+ <VCBuild Projects="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\..\ArToolKitPlus\ARToolKitPlus.vcxproj" ToolPath="$(VCBuildToolPath)" Configuration="Debug|x64" SolutionFile="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\ARMFCaptureD3D.sln" Override="$(VCBuildOverride)" AdditionalLibPaths="$(VCBuildAdditionalLibPaths)" AdditionalLinkLibraryPaths="$(VCBuildAdditionalLinkLibraryPaths)" UseEnvironment="$(VCBuildUseEnvironment)" UserEnvironment="$(VCBuildUserEnvironment)" AdditionalOptions="$(VCBuildAdditionalOptions)" Condition=" ('$(Configuration)' == 'Debug') and ('$(Platform)' == 'x64') " />
+ <VCBuild Projects="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\..\ArToolKitPlus\ARToolKitPlus.vcxproj" ToolPath="$(VCBuildToolPath)" Configuration="Release|Win32" SolutionFile="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\ARMFCaptureD3D.sln" Override="$(VCBuildOverride)" AdditionalLibPaths="$(VCBuildAdditionalLibPaths)" AdditionalLinkLibraryPaths="$(VCBuildAdditionalLinkLibraryPaths)" UseEnvironment="$(VCBuildUseEnvironment)" UserEnvironment="$(VCBuildUserEnvironment)" AdditionalOptions="$(VCBuildAdditionalOptions)" Condition=" ('$(Configuration)' == 'Release') and ('$(Platform)' == 'Win32') " />
+ <VCBuild Projects="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\..\ArToolKitPlus\ARToolKitPlus.vcxproj" ToolPath="$(VCBuildToolPath)" Configuration="Release|x64" SolutionFile="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\ARMFCaptureD3D.sln" Override="$(VCBuildOverride)" AdditionalLibPaths="$(VCBuildAdditionalLibPaths)" AdditionalLinkLibraryPaths="$(VCBuildAdditionalLinkLibraryPaths)" UseEnvironment="$(VCBuildUseEnvironment)" UserEnvironment="$(VCBuildUserEnvironment)" AdditionalOptions="$(VCBuildAdditionalOptions)" Condition=" ('$(Configuration)' == 'Release') and ('$(Platform)' == 'x64') " />
+ </Target>
+ <Target Name="Ivy" Condition="'$(CurrentSolutionConfigurationContents)' != ''">
+ <VCBuild Projects="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\..\Bus\Ivy\Ivy.vcxproj" ToolPath="$(VCBuildToolPath)" Configuration="Debug|Win32" SolutionFile="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\ARMFCaptureD3D.sln" Override="$(VCBuildOverride)" AdditionalLibPaths="$(VCBuildAdditionalLibPaths)" AdditionalLinkLibraryPaths="$(VCBuildAdditionalLinkLibraryPaths)" UseEnvironment="$(VCBuildUseEnvironment)" UserEnvironment="$(VCBuildUserEnvironment)" AdditionalOptions="$(VCBuildAdditionalOptions)" Condition=" ('$(Configuration)' == 'Debug') and ('$(Platform)' == 'Win32') " />
+ <VCBuild Projects="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\..\Bus\Ivy\Ivy.vcxproj" ToolPath="$(VCBuildToolPath)" Configuration="Debug|x64" SolutionFile="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\ARMFCaptureD3D.sln" Override="$(VCBuildOverride)" AdditionalLibPaths="$(VCBuildAdditionalLibPaths)" AdditionalLinkLibraryPaths="$(VCBuildAdditionalLinkLibraryPaths)" UseEnvironment="$(VCBuildUseEnvironment)" UserEnvironment="$(VCBuildUserEnvironment)" AdditionalOptions="$(VCBuildAdditionalOptions)" Condition=" ('$(Configuration)' == 'Debug') and ('$(Platform)' == 'x64') " />
+ <VCBuild Projects="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\..\Bus\Ivy\Ivy.vcxproj" ToolPath="$(VCBuildToolPath)" Configuration="Release|Win32" SolutionFile="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\ARMFCaptureD3D.sln" Override="$(VCBuildOverride)" AdditionalLibPaths="$(VCBuildAdditionalLibPaths)" AdditionalLinkLibraryPaths="$(VCBuildAdditionalLinkLibraryPaths)" UseEnvironment="$(VCBuildUseEnvironment)" UserEnvironment="$(VCBuildUserEnvironment)" AdditionalOptions="$(VCBuildAdditionalOptions)" Condition=" ('$(Configuration)' == 'Release') and ('$(Platform)' == 'Win32') " />
+ <VCBuild Projects="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\..\Bus\Ivy\Ivy.vcxproj" ToolPath="$(VCBuildToolPath)" Configuration="Release|x64" SolutionFile="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\ARMFCaptureD3D.sln" Override="$(VCBuildOverride)" AdditionalLibPaths="$(VCBuildAdditionalLibPaths)" AdditionalLinkLibraryPaths="$(VCBuildAdditionalLinkLibraryPaths)" UseEnvironment="$(VCBuildUseEnvironment)" UserEnvironment="$(VCBuildUserEnvironment)" AdditionalOptions="$(VCBuildAdditionalOptions)" Condition=" ('$(Configuration)' == 'Release') and ('$(Platform)' == 'x64') " />
+ </Target>
+ <Target Name="Ivy:Clean" Condition="'$(CurrentSolutionConfigurationContents)' != ''">
+ <VCBuild Projects="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\..\Bus\Ivy\Ivy.vcxproj" ToolPath="$(VCBuildToolPath)" Configuration="Debug|Win32" SolutionFile="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\ARMFCaptureD3D.sln" Clean="true" Override="$(VCBuildOverride)" AdditionalLibPaths="$(VCBuildAdditionalLibPaths)" AdditionalLinkLibraryPaths="$(VCBuildAdditionalLinkLibraryPaths)" UseEnvironment="$(VCBuildUseEnvironment)" UserEnvironment="$(VCBuildUserEnvironment)" AdditionalOptions="$(VCBuildAdditionalOptions)" Condition=" ('$(Configuration)' == 'Debug') and ('$(Platform)' == 'Win32') " />
+ <VCBuild Projects="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\..\Bus\Ivy\Ivy.vcxproj" ToolPath="$(VCBuildToolPath)" Configuration="Debug|x64" SolutionFile="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\ARMFCaptureD3D.sln" Clean="true" Override="$(VCBuildOverride)" AdditionalLibPaths="$(VCBuildAdditionalLibPaths)" AdditionalLinkLibraryPaths="$(VCBuildAdditionalLinkLibraryPaths)" UseEnvironment="$(VCBuildUseEnvironment)" UserEnvironment="$(VCBuildUserEnvironment)" AdditionalOptions="$(VCBuildAdditionalOptions)" Condition=" ('$(Configuration)' == 'Debug') and ('$(Platform)' == 'x64') " />
+ <VCBuild Projects="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\..\Bus\Ivy\Ivy.vcxproj" ToolPath="$(VCBuildToolPath)" Configuration="Release|Win32" SolutionFile="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\ARMFCaptureD3D.sln" Clean="true" Override="$(VCBuildOverride)" AdditionalLibPaths="$(VCBuildAdditionalLibPaths)" AdditionalLinkLibraryPaths="$(VCBuildAdditionalLinkLibraryPaths)" UseEnvironment="$(VCBuildUseEnvironment)" UserEnvironment="$(VCBuildUserEnvironment)" AdditionalOptions="$(VCBuildAdditionalOptions)" Condition=" ('$(Configuration)' == 'Release') and ('$(Platform)' == 'Win32') " />
+ <VCBuild Projects="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\..\Bus\Ivy\Ivy.vcxproj" ToolPath="$(VCBuildToolPath)" Configuration="Release|x64" SolutionFile="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\ARMFCaptureD3D.sln" Clean="true" Override="$(VCBuildOverride)" AdditionalLibPaths="$(VCBuildAdditionalLibPaths)" AdditionalLinkLibraryPaths="$(VCBuildAdditionalLinkLibraryPaths)" UseEnvironment="$(VCBuildUseEnvironment)" UserEnvironment="$(VCBuildUserEnvironment)" AdditionalOptions="$(VCBuildAdditionalOptions)" Condition=" ('$(Configuration)' == 'Release') and ('$(Platform)' == 'x64') " />
+ </Target>
+ <Target Name="Ivy:Rebuild" Condition="'$(CurrentSolutionConfigurationContents)' != ''">
+ <VCBuild Projects="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\..\Bus\Ivy\Ivy.vcxproj" ToolPath="$(VCBuildToolPath)" Configuration="Debug|Win32" SolutionFile="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\ARMFCaptureD3D.sln" Rebuild="true" Override="$(VCBuildOverride)" AdditionalLibPaths="$(VCBuildAdditionalLibPaths)" AdditionalLinkLibraryPaths="$(VCBuildAdditionalLinkLibraryPaths)" UseEnvironment="$(VCBuildUseEnvironment)" UserEnvironment="$(VCBuildUserEnvironment)" AdditionalOptions="$(VCBuildAdditionalOptions)" Condition=" ('$(Configuration)' == 'Debug') and ('$(Platform)' == 'Win32') " />
+ <VCBuild Projects="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\..\Bus\Ivy\Ivy.vcxproj" ToolPath="$(VCBuildToolPath)" Configuration="Debug|x64" SolutionFile="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\ARMFCaptureD3D.sln" Rebuild="true" Override="$(VCBuildOverride)" AdditionalLibPaths="$(VCBuildAdditionalLibPaths)" AdditionalLinkLibraryPaths="$(VCBuildAdditionalLinkLibraryPaths)" UseEnvironment="$(VCBuildUseEnvironment)" UserEnvironment="$(VCBuildUserEnvironment)" AdditionalOptions="$(VCBuildAdditionalOptions)" Condition=" ('$(Configuration)' == 'Debug') and ('$(Platform)' == 'x64') " />
+ <VCBuild Projects="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\..\Bus\Ivy\Ivy.vcxproj" ToolPath="$(VCBuildToolPath)" Configuration="Release|Win32" SolutionFile="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\ARMFCaptureD3D.sln" Rebuild="true" Override="$(VCBuildOverride)" AdditionalLibPaths="$(VCBuildAdditionalLibPaths)" AdditionalLinkLibraryPaths="$(VCBuildAdditionalLinkLibraryPaths)" UseEnvironment="$(VCBuildUseEnvironment)" UserEnvironment="$(VCBuildUserEnvironment)" AdditionalOptions="$(VCBuildAdditionalOptions)" Condition=" ('$(Configuration)' == 'Release') and ('$(Platform)' == 'Win32') " />
+ <VCBuild Projects="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\..\Bus\Ivy\Ivy.vcxproj" ToolPath="$(VCBuildToolPath)" Configuration="Release|x64" SolutionFile="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\ARMFCaptureD3D.sln" Rebuild="true" Override="$(VCBuildOverride)" AdditionalLibPaths="$(VCBuildAdditionalLibPaths)" AdditionalLinkLibraryPaths="$(VCBuildAdditionalLinkLibraryPaths)" UseEnvironment="$(VCBuildUseEnvironment)" UserEnvironment="$(VCBuildUserEnvironment)" AdditionalOptions="$(VCBuildAdditionalOptions)" Condition=" ('$(Configuration)' == 'Release') and ('$(Platform)' == 'x64') " />
+ </Target>
+ <Target Name="Ivy:Publish" Condition="'$(CurrentSolutionConfigurationContents)' != ''">
+ <Warning Text="VC projects do not support the &quot;Publish&quot; target." Code="MSB4076" HelpKeyword="MSBuild.SolutionVCProjectNoPublish" />
+ <VCBuild Projects="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\..\Bus\Ivy\Ivy.vcxproj" ToolPath="$(VCBuildToolPath)" Configuration="Debug|Win32" SolutionFile="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\ARMFCaptureD3D.sln" Override="$(VCBuildOverride)" AdditionalLibPaths="$(VCBuildAdditionalLibPaths)" AdditionalLinkLibraryPaths="$(VCBuildAdditionalLinkLibraryPaths)" UseEnvironment="$(VCBuildUseEnvironment)" UserEnvironment="$(VCBuildUserEnvironment)" AdditionalOptions="$(VCBuildAdditionalOptions)" Condition=" ('$(Configuration)' == 'Debug') and ('$(Platform)' == 'Win32') " />
+ <VCBuild Projects="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\..\Bus\Ivy\Ivy.vcxproj" ToolPath="$(VCBuildToolPath)" Configuration="Debug|x64" SolutionFile="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\ARMFCaptureD3D.sln" Override="$(VCBuildOverride)" AdditionalLibPaths="$(VCBuildAdditionalLibPaths)" AdditionalLinkLibraryPaths="$(VCBuildAdditionalLinkLibraryPaths)" UseEnvironment="$(VCBuildUseEnvironment)" UserEnvironment="$(VCBuildUserEnvironment)" AdditionalOptions="$(VCBuildAdditionalOptions)" Condition=" ('$(Configuration)' == 'Debug') and ('$(Platform)' == 'x64') " />
+ <VCBuild Projects="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\..\Bus\Ivy\Ivy.vcxproj" ToolPath="$(VCBuildToolPath)" Configuration="Release|Win32" SolutionFile="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\ARMFCaptureD3D.sln" Override="$(VCBuildOverride)" AdditionalLibPaths="$(VCBuildAdditionalLibPaths)" AdditionalLinkLibraryPaths="$(VCBuildAdditionalLinkLibraryPaths)" UseEnvironment="$(VCBuildUseEnvironment)" UserEnvironment="$(VCBuildUserEnvironment)" AdditionalOptions="$(VCBuildAdditionalOptions)" Condition=" ('$(Configuration)' == 'Release') and ('$(Platform)' == 'Win32') " />
+ <VCBuild Projects="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\..\Bus\Ivy\Ivy.vcxproj" ToolPath="$(VCBuildToolPath)" Configuration="Release|x64" SolutionFile="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\ARMFCaptureD3D.sln" Override="$(VCBuildOverride)" AdditionalLibPaths="$(VCBuildAdditionalLibPaths)" AdditionalLinkLibraryPaths="$(VCBuildAdditionalLinkLibraryPaths)" UseEnvironment="$(VCBuildUseEnvironment)" UserEnvironment="$(VCBuildUserEnvironment)" AdditionalOptions="$(VCBuildAdditionalOptions)" Condition=" ('$(Configuration)' == 'Release') and ('$(Platform)' == 'x64') " />
+ </Target>
+ <Target Name="pcre" Condition="'$(CurrentSolutionConfigurationContents)' != ''">
+ <VCBuild Projects="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\..\..\pcre\pcre.vcxproj" ToolPath="$(VCBuildToolPath)" Configuration="Debug|Win32" SolutionFile="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\ARMFCaptureD3D.sln" Override="$(VCBuildOverride)" AdditionalLibPaths="$(VCBuildAdditionalLibPaths)" AdditionalLinkLibraryPaths="$(VCBuildAdditionalLinkLibraryPaths)" UseEnvironment="$(VCBuildUseEnvironment)" UserEnvironment="$(VCBuildUserEnvironment)" AdditionalOptions="$(VCBuildAdditionalOptions)" Condition=" ('$(Configuration)' == 'Debug') and ('$(Platform)' == 'Win32') " />
+ <VCBuild Projects="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\..\..\pcre\pcre.vcxproj" ToolPath="$(VCBuildToolPath)" Configuration="Debug|x64" SolutionFile="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\ARMFCaptureD3D.sln" Override="$(VCBuildOverride)" AdditionalLibPaths="$(VCBuildAdditionalLibPaths)" AdditionalLinkLibraryPaths="$(VCBuildAdditionalLinkLibraryPaths)" UseEnvironment="$(VCBuildUseEnvironment)" UserEnvironment="$(VCBuildUserEnvironment)" AdditionalOptions="$(VCBuildAdditionalOptions)" Condition=" ('$(Configuration)' == 'Debug') and ('$(Platform)' == 'x64') " />
+ <VCBuild Projects="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\..\..\pcre\pcre.vcxproj" ToolPath="$(VCBuildToolPath)" Configuration="Release|Win32" SolutionFile="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\ARMFCaptureD3D.sln" Override="$(VCBuildOverride)" AdditionalLibPaths="$(VCBuildAdditionalLibPaths)" AdditionalLinkLibraryPaths="$(VCBuildAdditionalLinkLibraryPaths)" UseEnvironment="$(VCBuildUseEnvironment)" UserEnvironment="$(VCBuildUserEnvironment)" AdditionalOptions="$(VCBuildAdditionalOptions)" Condition=" ('$(Configuration)' == 'Release') and ('$(Platform)' == 'Win32') " />
+ <VCBuild Projects="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\..\..\pcre\pcre.vcxproj" ToolPath="$(VCBuildToolPath)" Configuration="Release|x64" SolutionFile="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\ARMFCaptureD3D.sln" Override="$(VCBuildOverride)" AdditionalLibPaths="$(VCBuildAdditionalLibPaths)" AdditionalLinkLibraryPaths="$(VCBuildAdditionalLinkLibraryPaths)" UseEnvironment="$(VCBuildUseEnvironment)" UserEnvironment="$(VCBuildUserEnvironment)" AdditionalOptions="$(VCBuildAdditionalOptions)" Condition=" ('$(Configuration)' == 'Release') and ('$(Platform)' == 'x64') " />
+ </Target>
+ <Target Name="pcre:Clean" Condition="'$(CurrentSolutionConfigurationContents)' != ''">
+ <VCBuild Projects="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\..\..\pcre\pcre.vcxproj" ToolPath="$(VCBuildToolPath)" Configuration="Debug|Win32" SolutionFile="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\ARMFCaptureD3D.sln" Clean="true" Override="$(VCBuildOverride)" AdditionalLibPaths="$(VCBuildAdditionalLibPaths)" AdditionalLinkLibraryPaths="$(VCBuildAdditionalLinkLibraryPaths)" UseEnvironment="$(VCBuildUseEnvironment)" UserEnvironment="$(VCBuildUserEnvironment)" AdditionalOptions="$(VCBuildAdditionalOptions)" Condition=" ('$(Configuration)' == 'Debug') and ('$(Platform)' == 'Win32') " />
+ <VCBuild Projects="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\..\..\pcre\pcre.vcxproj" ToolPath="$(VCBuildToolPath)" Configuration="Debug|x64" SolutionFile="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\ARMFCaptureD3D.sln" Clean="true" Override="$(VCBuildOverride)" AdditionalLibPaths="$(VCBuildAdditionalLibPaths)" AdditionalLinkLibraryPaths="$(VCBuildAdditionalLinkLibraryPaths)" UseEnvironment="$(VCBuildUseEnvironment)" UserEnvironment="$(VCBuildUserEnvironment)" AdditionalOptions="$(VCBuildAdditionalOptions)" Condition=" ('$(Configuration)' == 'Debug') and ('$(Platform)' == 'x64') " />
+ <VCBuild Projects="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\..\..\pcre\pcre.vcxproj" ToolPath="$(VCBuildToolPath)" Configuration="Release|Win32" SolutionFile="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\ARMFCaptureD3D.sln" Clean="true" Override="$(VCBuildOverride)" AdditionalLibPaths="$(VCBuildAdditionalLibPaths)" AdditionalLinkLibraryPaths="$(VCBuildAdditionalLinkLibraryPaths)" UseEnvironment="$(VCBuildUseEnvironment)" UserEnvironment="$(VCBuildUserEnvironment)" AdditionalOptions="$(VCBuildAdditionalOptions)" Condition=" ('$(Configuration)' == 'Release') and ('$(Platform)' == 'Win32') " />
+ <VCBuild Projects="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\..\..\pcre\pcre.vcxproj" ToolPath="$(VCBuildToolPath)" Configuration="Release|x64" SolutionFile="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\ARMFCaptureD3D.sln" Clean="true" Override="$(VCBuildOverride)" AdditionalLibPaths="$(VCBuildAdditionalLibPaths)" AdditionalLinkLibraryPaths="$(VCBuildAdditionalLinkLibraryPaths)" UseEnvironment="$(VCBuildUseEnvironment)" UserEnvironment="$(VCBuildUserEnvironment)" AdditionalOptions="$(VCBuildAdditionalOptions)" Condition=" ('$(Configuration)' == 'Release') and ('$(Platform)' == 'x64') " />
+ </Target>
+ <Target Name="pcre:Rebuild" Condition="'$(CurrentSolutionConfigurationContents)' != ''">
+ <VCBuild Projects="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\..\..\pcre\pcre.vcxproj" ToolPath="$(VCBuildToolPath)" Configuration="Debug|Win32" SolutionFile="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\ARMFCaptureD3D.sln" Rebuild="true" Override="$(VCBuildOverride)" AdditionalLibPaths="$(VCBuildAdditionalLibPaths)" AdditionalLinkLibraryPaths="$(VCBuildAdditionalLinkLibraryPaths)" UseEnvironment="$(VCBuildUseEnvironment)" UserEnvironment="$(VCBuildUserEnvironment)" AdditionalOptions="$(VCBuildAdditionalOptions)" Condition=" ('$(Configuration)' == 'Debug') and ('$(Platform)' == 'Win32') " />
+ <VCBuild Projects="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\..\..\pcre\pcre.vcxproj" ToolPath="$(VCBuildToolPath)" Configuration="Debug|x64" SolutionFile="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\ARMFCaptureD3D.sln" Rebuild="true" Override="$(VCBuildOverride)" AdditionalLibPaths="$(VCBuildAdditionalLibPaths)" AdditionalLinkLibraryPaths="$(VCBuildAdditionalLinkLibraryPaths)" UseEnvironment="$(VCBuildUseEnvironment)" UserEnvironment="$(VCBuildUserEnvironment)" AdditionalOptions="$(VCBuildAdditionalOptions)" Condition=" ('$(Configuration)' == 'Debug') and ('$(Platform)' == 'x64') " />
+ <VCBuild Projects="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\..\..\pcre\pcre.vcxproj" ToolPath="$(VCBuildToolPath)" Configuration="Release|Win32" SolutionFile="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\ARMFCaptureD3D.sln" Rebuild="true" Override="$(VCBuildOverride)" AdditionalLibPaths="$(VCBuildAdditionalLibPaths)" AdditionalLinkLibraryPaths="$(VCBuildAdditionalLinkLibraryPaths)" UseEnvironment="$(VCBuildUseEnvironment)" UserEnvironment="$(VCBuildUserEnvironment)" AdditionalOptions="$(VCBuildAdditionalOptions)" Condition=" ('$(Configuration)' == 'Release') and ('$(Platform)' == 'Win32') " />
+ <VCBuild Projects="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\..\..\pcre\pcre.vcxproj" ToolPath="$(VCBuildToolPath)" Configuration="Release|x64" SolutionFile="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\ARMFCaptureD3D.sln" Rebuild="true" Override="$(VCBuildOverride)" AdditionalLibPaths="$(VCBuildAdditionalLibPaths)" AdditionalLinkLibraryPaths="$(VCBuildAdditionalLinkLibraryPaths)" UseEnvironment="$(VCBuildUseEnvironment)" UserEnvironment="$(VCBuildUserEnvironment)" AdditionalOptions="$(VCBuildAdditionalOptions)" Condition=" ('$(Configuration)' == 'Release') and ('$(Platform)' == 'x64') " />
+ </Target>
+ <Target Name="pcre:Publish" Condition="'$(CurrentSolutionConfigurationContents)' != ''">
+ <Warning Text="VC projects do not support the &quot;Publish&quot; target." Code="MSB4076" HelpKeyword="MSBuild.SolutionVCProjectNoPublish" />
+ <VCBuild Projects="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\..\..\pcre\pcre.vcxproj" ToolPath="$(VCBuildToolPath)" Configuration="Debug|Win32" SolutionFile="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\ARMFCaptureD3D.sln" Override="$(VCBuildOverride)" AdditionalLibPaths="$(VCBuildAdditionalLibPaths)" AdditionalLinkLibraryPaths="$(VCBuildAdditionalLinkLibraryPaths)" UseEnvironment="$(VCBuildUseEnvironment)" UserEnvironment="$(VCBuildUserEnvironment)" AdditionalOptions="$(VCBuildAdditionalOptions)" Condition=" ('$(Configuration)' == 'Debug') and ('$(Platform)' == 'Win32') " />
+ <VCBuild Projects="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\..\..\pcre\pcre.vcxproj" ToolPath="$(VCBuildToolPath)" Configuration="Debug|x64" SolutionFile="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\ARMFCaptureD3D.sln" Override="$(VCBuildOverride)" AdditionalLibPaths="$(VCBuildAdditionalLibPaths)" AdditionalLinkLibraryPaths="$(VCBuildAdditionalLinkLibraryPaths)" UseEnvironment="$(VCBuildUseEnvironment)" UserEnvironment="$(VCBuildUserEnvironment)" AdditionalOptions="$(VCBuildAdditionalOptions)" Condition=" ('$(Configuration)' == 'Debug') and ('$(Platform)' == 'x64') " />
+ <VCBuild Projects="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\..\..\pcre\pcre.vcxproj" ToolPath="$(VCBuildToolPath)" Configuration="Release|Win32" SolutionFile="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\ARMFCaptureD3D.sln" Override="$(VCBuildOverride)" AdditionalLibPaths="$(VCBuildAdditionalLibPaths)" AdditionalLinkLibraryPaths="$(VCBuildAdditionalLinkLibraryPaths)" UseEnvironment="$(VCBuildUseEnvironment)" UserEnvironment="$(VCBuildUserEnvironment)" AdditionalOptions="$(VCBuildAdditionalOptions)" Condition=" ('$(Configuration)' == 'Release') and ('$(Platform)' == 'Win32') " />
+ <VCBuild Projects="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\..\..\pcre\pcre.vcxproj" ToolPath="$(VCBuildToolPath)" Configuration="Release|x64" SolutionFile="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\ARMFCaptureD3D.sln" Override="$(VCBuildOverride)" AdditionalLibPaths="$(VCBuildAdditionalLibPaths)" AdditionalLinkLibraryPaths="$(VCBuildAdditionalLinkLibraryPaths)" UseEnvironment="$(VCBuildUseEnvironment)" UserEnvironment="$(VCBuildUserEnvironment)" AdditionalOptions="$(VCBuildAdditionalOptions)" Condition=" ('$(Configuration)' == 'Release') and ('$(Platform)' == 'x64') " />
+ </Target>
+ <Target Name="Setup" Condition="'$(CurrentSolutionConfigurationContents)' != ''">
+ <Message Text="The project &quot;Setup&quot; is not selected for building in solution configuration &quot;Debug|Win32&quot;." Condition=" ('$(Configuration)' == 'Debug') and ('$(Platform)' == 'Win32') " />
+ <Message Text="The project &quot;Setup&quot; is not selected for building in solution configuration &quot;Debug|x64&quot;." Condition=" ('$(Configuration)' == 'Debug') and ('$(Platform)' == 'x64') " />
+ <Message Text="The project &quot;Setup&quot; is not selected for building in solution configuration &quot;Release|Win32&quot;." Condition=" ('$(Configuration)' == 'Release') and ('$(Platform)' == 'Win32') " />
+ <Message Text="The project &quot;Setup&quot; is not selected for building in solution configuration &quot;Release|x64&quot;." Condition=" ('$(Configuration)' == 'Release') and ('$(Platform)' == 'x64') " />
+ </Target>
+ <Target Name="Setup:Clean" Condition="'$(CurrentSolutionConfigurationContents)' != ''">
+ <Message Text="The project &quot;Setup&quot; is not selected for building in solution configuration &quot;Debug|Win32&quot;." Condition=" ('$(Configuration)' == 'Debug') and ('$(Platform)' == 'Win32') " />
+ <Message Text="The project &quot;Setup&quot; is not selected for building in solution configuration &quot;Debug|x64&quot;." Condition=" ('$(Configuration)' == 'Debug') and ('$(Platform)' == 'x64') " />
+ <Message Text="The project &quot;Setup&quot; is not selected for building in solution configuration &quot;Release|Win32&quot;." Condition=" ('$(Configuration)' == 'Release') and ('$(Platform)' == 'Win32') " />
+ <Message Text="The project &quot;Setup&quot; is not selected for building in solution configuration &quot;Release|x64&quot;." Condition=" ('$(Configuration)' == 'Release') and ('$(Platform)' == 'x64') " />
+ </Target>
+ <Target Name="Setup:Rebuild" Condition="'$(CurrentSolutionConfigurationContents)' != ''">
+ <Message Text="The project &quot;Setup&quot; is not selected for building in solution configuration &quot;Debug|Win32&quot;." Condition=" ('$(Configuration)' == 'Debug') and ('$(Platform)' == 'Win32') " />
+ <Message Text="The project &quot;Setup&quot; is not selected for building in solution configuration &quot;Debug|x64&quot;." Condition=" ('$(Configuration)' == 'Debug') and ('$(Platform)' == 'x64') " />
+ <Message Text="The project &quot;Setup&quot; is not selected for building in solution configuration &quot;Release|Win32&quot;." Condition=" ('$(Configuration)' == 'Release') and ('$(Platform)' == 'Win32') " />
+ <Message Text="The project &quot;Setup&quot; is not selected for building in solution configuration &quot;Release|x64&quot;." Condition=" ('$(Configuration)' == 'Release') and ('$(Platform)' == 'x64') " />
+ </Target>
+ <Target Name="Setup:Publish" Condition="'$(CurrentSolutionConfigurationContents)' != ''">
+ <Message Text="The project &quot;Setup&quot; is not selected for building in solution configuration &quot;Debug|Win32&quot;." Condition=" ('$(Configuration)' == 'Debug') and ('$(Platform)' == 'Win32') " />
+ <Message Text="The project &quot;Setup&quot; is not selected for building in solution configuration &quot;Debug|x64&quot;." Condition=" ('$(Configuration)' == 'Debug') and ('$(Platform)' == 'x64') " />
+ <Message Text="The project &quot;Setup&quot; is not selected for building in solution configuration &quot;Release|Win32&quot;." Condition=" ('$(Configuration)' == 'Release') and ('$(Platform)' == 'Win32') " />
+ <Message Text="The project &quot;Setup&quot; is not selected for building in solution configuration &quot;Release|x64&quot;." Condition=" ('$(Configuration)' == 'Release') and ('$(Platform)' == 'x64') " />
+ </Target>
+ <Target Name="Build" Condition="'$(CurrentSolutionConfigurationContents)' != ''" Outputs="@(CollectedBuildOutput)">
+ <MSBuild Condition="@(BuildLevel0) != ''" Projects="@(BuildLevel0)" Properties="Configuration=%(Configuration); Platform=%(Platform); BuildingSolutionFile=true; CurrentSolutionConfigurationContents=$(CurrentSolutionConfigurationContents); SolutionDir=$(SolutionDir); SolutionExt=$(SolutionExt); SolutionFileName=$(SolutionFileName); SolutionName=$(SolutionName); SolutionPath=$(SolutionPath)" ToolsVersion="$(ProjectToolsVersion)" BuildInParallel="true" UnloadProjectsOnCompletion="$(UnloadProjectsOnCompletion)" UseResultsCache="$(UseResultsCache)">
+ <Output TaskParameter="TargetOutputs" ItemName="CollectedBuildOutput" />
+ </MSBuild>
+ <Message Text="The project &quot;%(SkipLevel0.Identity)&quot; is not selected for building in solution configuration &quot;$(Configuration)|$(Platform)&quot;." Condition="@(SkipLevel0) != ''" />
+ <Warning Text="The project configuration for project &quot;%(MissingConfigLevel0.Identity)&quot; was not specified in the solution file for the solution configuration &quot;$(Configuration)|$(Platform)&quot;." Code="MSB4121" HelpKeyword="MSBuild.SolutionProjectConfigurationMissing" Condition="@(MissingConfigLevel0) != ''" />
+ <CallTarget Targets="ARMFCaptureD3D;ARToolKitPlus;Ivy;pcre;Setup" RunEachTargetSeparately="true" />
+ </Target>
+ <Target Name="Clean" Condition="'$(CurrentSolutionConfigurationContents)' != ''">
+ <MSBuild Condition="@(BuildLevel0) != ''" Projects="@(BuildLevel0)" Properties="Configuration=%(Configuration); Platform=%(Platform); BuildingSolutionFile=true; CurrentSolutionConfigurationContents=$(CurrentSolutionConfigurationContents); SolutionDir=$(SolutionDir); SolutionExt=$(SolutionExt); SolutionFileName=$(SolutionFileName); SolutionName=$(SolutionName); SolutionPath=$(SolutionPath)" Targets="Clean" ToolsVersion="$(ProjectToolsVersion)" BuildInParallel="true" UnloadProjectsOnCompletion="$(UnloadProjectsOnCompletion)" UseResultsCache="$(UseResultsCache)" />
+ <Message Text="The project &quot;%(SkipLevel0.Identity)&quot; is not selected for building in solution configuration &quot;$(Configuration)|$(Platform)&quot;." Condition="@(SkipLevel0) != ''" />
+ <Warning Text="The project configuration for project &quot;%(MissingConfigLevel0.Identity)&quot; was not specified in the solution file for the solution configuration &quot;$(Configuration)|$(Platform)&quot;." Code="MSB4121" HelpKeyword="MSBuild.SolutionProjectConfigurationMissing" Condition="@(MissingConfigLevel0) != ''" />
+ <CallTarget Targets="ARMFCaptureD3D:Clean;ARToolKitPlus:Clean;Ivy:Clean;pcre:Clean;Setup:Clean" RunEachTargetSeparately="true" />
+ <Delete Files="ARMFCaptureD3D.sln.cache" />
+ </Target>
+ <Target Name="Rebuild" Condition="'$(CurrentSolutionConfigurationContents)' != ''" Outputs="@(CollectedBuildOutput)">
+ <MSBuild Condition="@(BuildLevel0) != ''" Projects="@(BuildLevel0)" Properties="Configuration=%(Configuration); Platform=%(Platform); BuildingSolutionFile=true; CurrentSolutionConfigurationContents=$(CurrentSolutionConfigurationContents); SolutionDir=$(SolutionDir); SolutionExt=$(SolutionExt); SolutionFileName=$(SolutionFileName); SolutionName=$(SolutionName); SolutionPath=$(SolutionPath)" Targets="Rebuild" ToolsVersion="$(ProjectToolsVersion)" BuildInParallel="true" UnloadProjectsOnCompletion="$(UnloadProjectsOnCompletion)" UseResultsCache="$(UseResultsCache)">
+ <Output TaskParameter="TargetOutputs" ItemName="CollectedBuildOutput" />
+ </MSBuild>
+ <Message Text="The project &quot;%(SkipLevel0.Identity)&quot; is not selected for building in solution configuration &quot;$(Configuration)|$(Platform)&quot;." Condition="@(SkipLevel0) != ''" />
+ <Warning Text="The project configuration for project &quot;%(MissingConfigLevel0.Identity)&quot; was not specified in the solution file for the solution configuration &quot;$(Configuration)|$(Platform)&quot;." Code="MSB4121" HelpKeyword="MSBuild.SolutionProjectConfigurationMissing" Condition="@(MissingConfigLevel0) != ''" />
+ <CallTarget Targets="ARMFCaptureD3D:Rebuild;ARToolKitPlus:Rebuild;Ivy:Rebuild;pcre:Rebuild;Setup:Rebuild" RunEachTargetSeparately="true" />
+ </Target>
+ <Target Name="Publish" Condition="'$(CurrentSolutionConfigurationContents)' != ''">
+ <MSBuild Condition="@(BuildLevel0) != ''" Projects="@(BuildLevel0)" Properties="Configuration=%(Configuration); Platform=%(Platform); BuildingSolutionFile=true; CurrentSolutionConfigurationContents=$(CurrentSolutionConfigurationContents); SolutionDir=$(SolutionDir); SolutionExt=$(SolutionExt); SolutionFileName=$(SolutionFileName); SolutionName=$(SolutionName); SolutionPath=$(SolutionPath)" Targets="Publish" ToolsVersion="$(ProjectToolsVersion)" BuildInParallel="true" UnloadProjectsOnCompletion="$(UnloadProjectsOnCompletion)" UseResultsCache="$(UseResultsCache)" />
+ <Message Text="The project &quot;%(SkipLevel0.Identity)&quot; is not selected for building in solution configuration &quot;$(Configuration)|$(Platform)&quot;." Condition="@(SkipLevel0) != ''" />
+ <Warning Text="The project configuration for project &quot;%(MissingConfigLevel0.Identity)&quot; was not specified in the solution file for the solution configuration &quot;$(Configuration)|$(Platform)&quot;." Code="MSB4121" HelpKeyword="MSBuild.SolutionProjectConfigurationMissing" Condition="@(MissingConfigLevel0) != ''" />
+ <CallTarget Targets="ARMFCaptureD3D:Publish;ARToolKitPlus:Publish;Ivy:Publish;pcre:Publish;Setup:Publish" RunEachTargetSeparately="true" />
+ </Target>
+</Project> \ No newline at end of file
diff --git a/ARMFCaptureD3D/ARMFCaptureD3D.suo b/ARMFCaptureD3D/ARMFCaptureD3D.suo
new file mode 100644
index 0000000..4f842f7
--- /dev/null
+++ b/ARMFCaptureD3D/ARMFCaptureD3D.suo
Binary files differ
diff --git a/ARMFCaptureD3D/BufferLock.h b/ARMFCaptureD3D/BufferLock.h
new file mode 100644
index 0000000..d566d5b
--- /dev/null
+++ b/ARMFCaptureD3D/BufferLock.h
@@ -0,0 +1,125 @@
+//////////////////////////////////////////////////////////////////////////
+//
+// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
+// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
+// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
+// PARTICULAR PURPOSE.
+//
+// Copyright (c) Microsoft Corporation. All rights reserved.
+//
+//////////////////////////////////////////////////////////////////////////
+
+
+
+#pragma once
+
+
+//-------------------------------------------------------------------
+// VideoBufferLock class
+//
+// Locks a video buffer that might or might not support IMF2DBuffer.
+//
+//-------------------------------------------------------------------
+
+class VideoBufferLock
+{
+public:
+ VideoBufferLock(IMFMediaBuffer *pBuffer) : m_p2DBuffer(NULL), m_bLocked(FALSE)
+ {
+ m_pBuffer = pBuffer;
+ m_pBuffer->AddRef();
+
+ // Query for the 2-D buffer interface. OK if this fails.
+ (void)m_pBuffer->QueryInterface(IID_PPV_ARGS(&m_p2DBuffer));
+ }
+
+ ~VideoBufferLock()
+ {
+ UnlockBuffer();
+ SafeRelease(&m_pBuffer);
+ SafeRelease(&m_p2DBuffer);
+ }
+
+ //-------------------------------------------------------------------
+ // LockBuffer
+ //
+ // Locks the buffer. Returns a pointer to scan line 0 and returns the stride.
+ //
+ // The caller must provide the default stride as an input parameter, in case
+ // the buffer does not expose IMF2DBuffer. You can calculate the default stride
+ // from the media type.
+ //-------------------------------------------------------------------
+
+ HRESULT LockBuffer(
+ LONG lDefaultStride, // Minimum stride (with no padding).
+ DWORD dwHeightInPixels, // Height of the image, in pixels.
+ BYTE **ppbScanLine0, // Receives a pointer to the start of scan line 0.
+ LONG *plStride // Receives the actual stride.
+ )
+ {
+ HRESULT hr = S_OK;
+ DWORD cbMaxLength;
+ DWORD cbCurrentLength;
+
+ // Use the 2-D version if available.
+ if (m_p2DBuffer)
+ {
+ hr = m_p2DBuffer->Lock2D(ppbScanLine0, plStride);
+ }
+ else
+ {
+ // Use non-2D version.
+ BYTE *pData = NULL;
+
+ hr = m_pBuffer->Lock(&pData, &cbMaxLength, &cbCurrentLength);
+ if (SUCCEEDED(hr))
+ {
+ *plStride = lDefaultStride;
+ if (lDefaultStride < 0)
+ {
+ // Bottom-up orientation. Return a pointer to the start of the
+ // last row *in memory* which is the top row of the image.
+ *ppbScanLine0 = pData + abs(lDefaultStride) * (dwHeightInPixels - 1);
+ }
+ else
+ {
+ // Top-down orientation. Return a pointer to the start of the
+ // buffer.
+ *ppbScanLine0 = pData;
+ }
+ }
+ }
+
+ m_bLocked = (SUCCEEDED(hr));
+
+ return hr;
+ }
+
+ //-------------------------------------------------------------------
+ // UnlockBuffer
+ //
+ // Unlocks the buffer. Called automatically by the destructor.
+ //-------------------------------------------------------------------
+
+ void UnlockBuffer()
+ {
+ if (m_bLocked)
+ {
+ if (m_p2DBuffer)
+ {
+ (void)m_p2DBuffer->Unlock2D();
+ }
+ else
+ {
+ (void)m_pBuffer->Unlock();
+ }
+ m_bLocked = FALSE;
+ }
+ }
+
+private:
+ IMFMediaBuffer *m_pBuffer;
+ IMF2DBuffer *m_p2DBuffer;
+
+ BOOL m_bLocked;
+};
diff --git a/ARMFCaptureD3D/Calibration.cpp b/ARMFCaptureD3D/Calibration.cpp
new file mode 100644
index 0000000..a843e50
--- /dev/null
+++ b/ARMFCaptureD3D/Calibration.cpp
@@ -0,0 +1,254 @@
+#include "ARMFCaptureD3D.h"
+#include "Calibration.h"
+#include <math.h>
+#include <assert.h>
+#include "debug.h"
+#include "ConfigFile\ConfigFile.h"
+
+#define DUMP_CALIBRATION
+
+Calibration::Calibration(double width, double height, double calibInset)
+{
+ //dot is the original calibration image
+ dots[TopLeft][0] = calibInset; //top left X
+ dots[TopLeft][1] = calibInset; //top left Y
+ dots[TopRight][0] = width - calibInset; //top right
+ dots[TopRight][1] = calibInset; //top right
+ dots[BottomLeft][0] = calibInset; //bot left
+ dots[BottomLeft][1] = height - calibInset; //bot left
+ dots[BottomRight][0] = width - calibInset; //bot right
+ dots[BottomRight][1] = height - calibInset; //bot right
+ RazCalibration();
+}
+void Calibration::SetCalibrationPoint(Corners i, double x, double y)
+{
+ cal[i][0] = x;
+ cal[i][1] = y;
+ cal_set[i] = true;
+ calib_points_ok = true;
+ for ( int j = 0; j <4; j++ )
+ if ( !cal_set[j] )
+ {
+ calib_points_ok = false;
+ break;
+ }
+}
+void Calibration::RazCalibration()
+{
+ a1 = b1 = c1 = a3 = b3 = a2 = b2 = c2 = 0.0;
+ for ( int i = 0; i <4; i++ )
+ cal_set[i] = false;
+ calib_points_ok = false;
+}
+void Calibration::translateCoords(double X, double Y, double *cx, double *cy)
+{
+ assert( calibrated == true );
+
+ *cx = (a1 * X + b1 * Y + c1) / (a3 * X + b3 * Y + 1.0);
+ *cy = (a2 * X + b2 * Y + c2) / (a3 * X + b3 * Y + 1.0);
+}
+bool Calibration::Calibrate()
+{
+#ifdef DUMP_CALIBRATION
+ DBGMSG(TEXT("running calibration\n"));
+#endif
+ if ( !calib_points_ok ) return false;
+
+ RazCalibration();
+
+ double matrix[8][8] =
+ {
+ { -1, -1, -1, -1, 0, 0, 0, 0 },
+
+ { -cal[0][0], -cal[1][0], -cal[2][0], -cal[3][0], 0, 0, 0, 0 },
+ { -cal[0][1], -cal[1][1], -cal[2][1], -cal[3][1], 0,0,0,0 },
+ { 0,0,0,0,-1,-1,-1,-1 },
+ { 0,0,0,0, -cal[0][0], -cal[1][0], -cal[2][0], -cal[3][0] },
+ { 0,0,0,0, -cal[0][1], -cal[1][1], -cal[2][1], -cal[3][1] },
+ { cal[0][0] * dots[0][0], cal[1][0] * dots[1][0], cal[2][0] * dots[2][0], cal[3][0] * dots[3][0], cal[0][0] * dots[0][1], cal[1][0] * dots[1][1], cal[2][0] * dots[2][1], cal[3][0] * dots[3][1] },
+ { cal[0][1] * dots[0][0], cal[1][1] * dots[1][0], cal[2][1] * dots[2][0], cal[3][1] * dots[3][0], cal[0][1] * dots[0][1], cal[1][1] * dots[1][1], cal[2][1] * dots[2][1], cal[3][1] * dots[3][1] },
+ };
+
+
+ double bb[] = { -dots[0][0], -dots[1][0], -dots[2][0], -dots[3][0], -dots[0][1], -dots[1][1], -dots[2][1], -dots[3][1] };
+
+ // gauß-elimination
+
+ for (int j = 1; j < 4; j++)
+ {
+
+ for (int i = 1; i < 8; i++)
+ {
+ matrix[i][j] = -matrix[i][j] + matrix[i][0];
+ }
+ bb[j] = -bb[j] + bb[0];
+ matrix[0][j] = 0;
+
+ }
+
+
+ for (int i = 2; i < 8; i++)
+ {
+ matrix[i][2] = -matrix[i][2] / matrix[1][2] * matrix[1][1] + matrix[i][1];
+ }
+ bb[2] = -bb[2] / matrix[1][2] * matrix[1][1] + bb[1];
+ matrix[1][2] = 0;
+
+
+ for (int i = 2; i < 8; i++)
+ {
+ matrix[i][3] = -matrix[i][3] / matrix[1][3] * matrix[1][1] + matrix[i][1];
+ }
+ bb[3] = -bb[3] / matrix[1][3] * matrix[1][1] + bb[1];
+ matrix[1][3] = 0;
+
+
+
+ for (int i = 3; i < 8; i++)
+ {
+ matrix[i][3] = -matrix[i][3] / matrix[2][3] * matrix[2][2] + matrix[i][2];
+ }
+ bb[3] = -bb[3] / matrix[2][3] * matrix[2][2] + bb[2];
+ matrix[2][3] = 0;
+#ifdef DUMP_CALIBRATION
+ DBGMSG(TEXT("var57, var56, var55\n"));
+ DBGMSG(TEXT("%0.3f %0.3f %03.f\n"),matrix[4][6], matrix[4][5] , + matrix[4][4]);
+#endif
+ for (int j = 5; j < 8; j++)
+ {
+ for (int i = 4; i < 8; i++)
+ {
+ matrix[i][j] = -matrix[i][j] + matrix[i][4];
+ }
+ bb[j] = -bb[j] + bb[4];
+ matrix[3][j] = 0;
+ }
+
+
+ for (int i = 5; i < 8; i++)
+ {
+ matrix[i][6] = -matrix[i][6] / matrix[4][6] * matrix[4][5] + matrix[i][5];
+ }
+
+ bb[6] = -bb[6] / matrix[4][6] * matrix[4][5] + bb[5];
+ matrix[4][6] = 0;
+
+
+ for (int i = 5; i < 8; i++)
+ {
+ matrix[i][7] = -matrix[i][7] / matrix[4][7] * matrix[4][5] + matrix[i][5];
+ }
+ bb[7] = -bb[7] / matrix[4][7] * matrix[4][5] + bb[5];
+ matrix[4][7] = 0;
+
+
+ for (int i = 6; i < 8; i++)
+ {
+ matrix[i][7] = -matrix[i][7] / matrix[5][7] * matrix[5][6] + matrix[i][6];
+ }
+ bb[7] = -bb[7] / matrix[5][7] * matrix[5][6] + bb[6];
+ matrix[5][7] = 0;
+
+
+
+ matrix[7][7] = -matrix[7][7] / matrix[6][7] * matrix[6][3] + matrix[7][3];
+ bb[7] = -bb[7] / matrix[6][7] * matrix[6][3] + bb[3];
+ matrix[6][7] = 0;
+#ifdef DUMP_CALIBRATION
+
+ DBGMSG(TEXT("data dump\n"));
+ for (int i = 0; i < 8; i++)
+ {
+ for (int j = 0; j < 8; j++)
+ {
+ DBGMSG(TEXT("%0.3f,"),matrix[i][j]);
+ }
+ DBGMSG(TEXT("\n"));
+ }
+
+ DBGMSG(TEXT("bb\n"));
+ for (int j = 0; j < 8; j++)
+ {
+ DBGMSG(TEXT("%0.3f,"),bb[j]);
+ }
+
+ DBGMSG(TEXT("\n"));
+#endif
+ b3 = bb[7] / matrix[7][7];
+ b2 = (bb[6] - (matrix[7][6] * b3 + matrix[6][6] * a3)) / matrix[5][6];
+ a2 = (bb[5] - (matrix[7][5] * b3 + matrix[6][5] * a3 + matrix[5][5] * b2)) / matrix[4][5];
+ c2 = (bb[4] - (matrix[7][4] * b3 + matrix[6][5] * a3 + matrix[5][4] * b2 + matrix[4][4] * a2)) / matrix[3][4];
+ a3 = (bb[3] - (matrix[7][3] * b3)) / matrix[6][3];
+ b1 = (bb[2] - (matrix[7][2] * b3 + matrix[6][2] * a3 + matrix[5][2] * b2 + matrix[4][2] * a2 + matrix[3][2] * c2)) / matrix[2][2];
+ a1 = (bb[1] - (matrix[7][1] * b3 + matrix[6][1] * a3 + matrix[5][1] * b2 + matrix[4][1] * a2 + matrix[3][1] * c2 + matrix[2][1] * b1)) / matrix[1][1];
+ c1 = (bb[0] - (matrix[7][0] * b3 + matrix[6][0] * a3 + matrix[5][0] * b2 + matrix[4][0] * a2 + matrix[3][0] * c2 + matrix[2][0] * b1 + matrix[1][0] * a1)) / matrix[0][0];
+
+ if ( _isnan(b3)|| _isnan(b2)|| _isnan(a2)|| _isnan(c2)|| _isnan(a3)|| _isnan(b1)|| _isnan(a1)|| _isnan(c1) )
+ {
+
+#ifdef DUMP_CALIBRATION
+ DBGMSG(TEXT("calibrated BAd Result NAN!!\n"));
+#endif
+ calibrated = false;
+ }
+ else
+ {
+#ifdef DUMP_CALIBRATION
+ DBGMSG(TEXT("calibrated OK\n"));
+#endif
+ calibrated = true;
+ }
+ return calibrated ;
+}
+
+
+
+void Calibration::SaveCalibration( string filename )
+{
+ ConfigFile config;
+ config.add<double>("A1",a1);
+ config.add<double>("B1",b1);
+ config.add<double>("C1",c1);
+ config.add<double>("A2",a2);
+ config.add<double>("B2",b2);
+ config.add<double>("C2",c2);
+ config.add<double>("A3",a3);
+ config.add<double>("B3",b3);
+
+ // Construct a ConfigFile, write keys and values from given file
+ std::ofstream out( filename.c_str() );
+
+ //if( !out ) throw file_not_found( filename );
+
+ out << config;
+ out.close();
+}
+bool Calibration::RestoreCalibration(string filename)
+{
+ try
+ {
+ ConfigFile config(filename);
+ a1 = config.read<double>("A1");
+ b1 = config.read<double>("B1");
+ c1 = config.read<double>("C1");
+ a2 = config.read<double>("A2");
+ b2 = config.read<double>("B2");
+ c2 = config.read<double>("C2");
+ a3 = config.read<double>("A3");
+ b3 = config.read<double>("B3");
+ calibrated = true;
+ return true;
+ }
+ catch(ConfigFile::file_not_found ex)
+ {
+ WCHAR msg[MAX_PATH];
+ HRESULT hr = S_OK;
+ hr = StringCbPrintfW(msg, sizeof(msg), L"Fichier de Calibration not trouve: %S", ex.filename.c_str());
+
+ if (SUCCEEDED(hr))
+ {
+ MessageBox(NULL, msg, L"Error", MB_ICONERROR);
+ }
+ return false;
+ }
+} \ No newline at end of file
diff --git a/ARMFCaptureD3D/Calibration.h b/ARMFCaptureD3D/Calibration.h
new file mode 100644
index 0000000..a7c5c6e
--- /dev/null
+++ b/ARMFCaptureD3D/Calibration.h
@@ -0,0 +1,31 @@
+
+#pragma once
+#include <cstdio>
+#include <map>
+#include <vector>
+#include <set>
+
+class Calibration
+{
+
+ double a1, b1, c1, a3, b3, a2, b2, c2;
+ double cal[4][2];
+ double dots[4][2];
+ bool cal_set[4];
+ bool calib_points_ok;
+ bool calibrated;
+ void RazCalibration();
+
+public:
+ typedef enum { TopLeft, TopRight, BottomLeft, BottomRight } Corners;
+
+ Calibration(double width, double height, double calibInset = 0);
+ void SetCalibrationPoint(Corners i, double x, double y);
+
+ void translateCoords(double X, double Y, double *cx, double *cy);
+ bool Calibrate();
+ void SaveCalibration( std::string filename );
+ bool RestoreCalibration(std::string filename);
+
+};
+
diff --git a/ARMFCaptureD3D/ConfigFile/AntBlueMaize.jpg b/ARMFCaptureD3D/ConfigFile/AntBlueMaize.jpg
new file mode 100644
index 0000000..3dc2845
--- /dev/null
+++ b/ARMFCaptureD3D/ConfigFile/AntBlueMaize.jpg
Binary files differ
diff --git a/ARMFCaptureD3D/ConfigFile/ArrowHome.gif b/ARMFCaptureD3D/ConfigFile/ArrowHome.gif
new file mode 100644
index 0000000..b38dd5b
--- /dev/null
+++ b/ARMFCaptureD3D/ConfigFile/ArrowHome.gif
Binary files differ
diff --git a/ARMFCaptureD3D/ConfigFile/ConfigFile.cpp b/ARMFCaptureD3D/ConfigFile/ConfigFile.cpp
new file mode 100644
index 0000000..f041064
--- /dev/null
+++ b/ARMFCaptureD3D/ConfigFile/ConfigFile.cpp
@@ -0,0 +1,142 @@
+// ConfigFile.cpp
+
+#include "ConfigFile.h"
+
+using std::string;
+
+ConfigFile::ConfigFile( string filename, string delimiter,
+ string comment, string sentry )
+ : myDelimiter(delimiter), myComment(comment), mySentry(sentry)
+{
+ // Construct a ConfigFile, getting keys and values from given file
+
+ std::ifstream in( filename.c_str() );
+
+ if( !in ) throw file_not_found( filename );
+
+ in >> (*this);
+}
+
+
+ConfigFile::ConfigFile()
+ : myDelimiter( string(1,'=') ), myComment( string(1,'#') )
+{
+ // Construct a ConfigFile without a file; empty
+}
+
+
+void ConfigFile::remove( const string& key )
+{
+ // Remove key and its value
+ myContents.erase( myContents.find( key ) );
+ return;
+}
+
+
+bool ConfigFile::keyExists( const string& key ) const
+{
+ // Indicate whether key is found
+ mapci p = myContents.find( key );
+ return ( p != myContents.end() );
+}
+
+
+/* static */
+void ConfigFile::trim( string& s )
+{
+ // Remove leading and trailing whitespace
+ static const char whitespace[] = " \n\t\v\r\f";
+ s.erase( 0, s.find_first_not_of(whitespace) );
+ s.erase( s.find_last_not_of(whitespace) + 1U );
+}
+
+
+std::ostream& operator<<( std::ostream& os, const ConfigFile& cf )
+{
+ // Save a ConfigFile to os
+ for( ConfigFile::mapci p = cf.myContents.begin();
+ p != cf.myContents.end();
+ ++p )
+ {
+ os << p->first << " " << cf.myDelimiter << " ";
+ os << p->second << std::endl;
+ }
+ return os;
+}
+
+
+std::istream& operator>>( std::istream& is, ConfigFile& cf )
+{
+ // Load a ConfigFile from is
+ // Read in keys and values, keeping internal whitespace
+ typedef string::size_type pos;
+ const string& delim = cf.myDelimiter; // separator
+ const string& comm = cf.myComment; // comment
+ const string& sentry = cf.mySentry; // end of file sentry
+ const pos skip = delim.length(); // length of separator
+
+ string nextline = ""; // might need to read ahead to see where value ends
+
+ while( is || nextline.length() > 0 )
+ {
+ // Read an entire line at a time
+ string line;
+ if( nextline.length() > 0 )
+ {
+ line = nextline; // we read ahead; use it now
+ nextline = "";
+ }
+ else
+ {
+ std::getline( is, line );
+ }
+
+ // Ignore comments
+ line = line.substr( 0, line.find(comm) );
+
+ // Check for end of file sentry
+ if( sentry != "" && line.find(sentry) != string::npos ) return is;
+
+ // Parse the line if it contains a delimiter
+ pos delimPos = line.find( delim );
+ if( delimPos < string::npos )
+ {
+ // Extract the key
+ string key = line.substr( 0, delimPos );
+ line.replace( 0, delimPos+skip, "" );
+
+ // See if value continues on the next line
+ // Stop at blank line, next line with a key, end of stream,
+ // or end of file sentry
+ bool terminate = false;
+ while( !terminate && is )
+ {
+ std::getline( is, nextline );
+ terminate = true;
+
+ string nlcopy = nextline;
+ ConfigFile::trim(nlcopy);
+ if( nlcopy == "" ) continue;
+
+ nextline = nextline.substr( 0, nextline.find(comm) );
+ if( nextline.find(delim) != string::npos )
+ continue;
+ if( sentry != "" && nextline.find(sentry) != string::npos )
+ continue;
+
+ nlcopy = nextline;
+ ConfigFile::trim(nlcopy);
+ if( nlcopy != "" ) line += "\n";
+ line += nextline;
+ terminate = false;
+ }
+
+ // Store key and value
+ ConfigFile::trim(key);
+ ConfigFile::trim(line);
+ cf.myContents[key] = line; // overwrites if key is repeated
+ }
+ }
+
+ return is;
+}
diff --git a/ARMFCaptureD3D/ConfigFile/ConfigFile.h b/ARMFCaptureD3D/ConfigFile/ConfigFile.h
new file mode 100644
index 0000000..82b099a
--- /dev/null
+++ b/ARMFCaptureD3D/ConfigFile/ConfigFile.h
@@ -0,0 +1,253 @@
+// ConfigFile.h
+// Class for reading named values from configuration files
+// Richard J. Wagner v2.1 24 May 2004 wagnerr@umich.edu
+
+// Copyright (c) 2004 Richard J. Wagner
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to
+// deal in the Software without restriction, including without limitation the
+// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+// sell copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+// IN THE SOFTWARE.
+
+// Typical usage
+// -------------
+//
+// Given a configuration file "settings.inp":
+// atoms = 25
+// length = 8.0 # nanometers
+// name = Reece Surcher
+//
+// Named values are read in various ways, with or without default values:
+// ConfigFile config( "settings.inp" );
+// int atoms = config.read<int>( "atoms" );
+// double length = config.read( "length", 10.0 );
+// string author, title;
+// config.readInto( author, "name" );
+// config.readInto( title, "title", string("Untitled") );
+//
+// See file example.cpp for more examples.
+
+#ifndef CONFIGFILE_H
+#define CONFIGFILE_H
+
+#include <string>
+#include <map>
+#include <iostream>
+#include <fstream>
+#include <sstream>
+
+using std::string;
+
+class ConfigFile {
+// Data
+protected:
+ string myDelimiter; // separator between key and value
+ string myComment; // separator between value and comments
+ string mySentry; // optional string to signal end of file
+ std::map<string,string> myContents; // extracted keys and values
+
+ typedef std::map<string,string>::iterator mapi;
+ typedef std::map<string,string>::const_iterator mapci;
+
+// Methods
+public:
+ ConfigFile( string filename,
+ string delimiter = "=",
+ string comment = "#",
+ string sentry = "EndConfigFile" );
+ ConfigFile();
+
+ // Search for key and read value or optional default value
+ template<class T> T read( const string& key ) const; // call as read<T>
+ template<class T> T read( const string& key, const T& value ) const;
+ template<class T> bool readInto( T& var, const string& key ) const;
+ template<class T>
+ bool readInto( T& var, const string& key, const T& value ) const;
+
+ // Modify keys and values
+ template<class T> void add( string key, const T& value );
+ void remove( const string& key );
+
+ // Check whether key exists in configuration
+ bool keyExists( const string& key ) const;
+
+ // Check or change configuration syntax
+ string getDelimiter() const { return myDelimiter; }
+ string getComment() const { return myComment; }
+ string getSentry() const { return mySentry; }
+ string setDelimiter( const string& s )
+ { string old = myDelimiter; myDelimiter = s; return old; }
+ string setComment( const string& s )
+ { string old = myComment; myComment = s; return old; }
+
+ // Write or read configuration
+ friend std::ostream& operator<<( std::ostream& os, const ConfigFile& cf );
+ friend std::istream& operator>>( std::istream& is, ConfigFile& cf );
+
+protected:
+ template<class T> static string T_as_string( const T& t );
+ template<class T> static T string_as_T( const string& s );
+ static void trim( string& s );
+
+
+// Exception types
+public:
+ struct file_not_found {
+ string filename;
+ file_not_found( const string& filename_ = string() )
+ : filename(filename_) {} };
+ struct key_not_found { // thrown only by T read(key) variant of read()
+ string key;
+ key_not_found( const string& key_ = string() )
+ : key(key_) {} };
+};
+
+
+/* static */
+template<class T>
+string ConfigFile::T_as_string( const T& t )
+{
+ // Convert from a T to a string
+ // Type T must support << operator
+ std::ostringstream ost;
+ ost << t;
+ return ost.str();
+}
+
+
+/* static */
+template<class T>
+T ConfigFile::string_as_T( const string& s )
+{
+ // Convert from a string to a T
+ // Type T must support >> operator
+ T t;
+ std::istringstream ist(s);
+ ist >> t;
+ return t;
+}
+
+
+/* static */
+template<>
+inline string ConfigFile::string_as_T<string>( const string& s )
+{
+ // Convert from a string to a string
+ // In other words, do nothing
+ return s;
+}
+
+
+/* static */
+template<>
+inline bool ConfigFile::string_as_T<bool>( const string& s )
+{
+ // Convert from a string to a bool
+ // Interpret "false", "F", "no", "n", "0" as false
+ // Interpret "true", "T", "yes", "y", "1", "-1", or anything else as true
+ bool b = true;
+ string sup = s;
+ for( string::iterator p = sup.begin(); p != sup.end(); ++p )
+ *p = (char)toupper(*p); // make string all caps
+ if( sup==string("FALSE") || sup==string("F") ||
+ sup==string("NO") || sup==string("N") ||
+ sup==string("0") || sup==string("NONE") )
+ b = false;
+ return b;
+}
+
+
+template<class T>
+T ConfigFile::read( const string& key ) const
+{
+ // Read the value corresponding to key
+ mapci p = myContents.find(key);
+ if( p == myContents.end() ) throw key_not_found(key);
+ return string_as_T<T>( p->second );
+}
+
+
+template<class T>
+T ConfigFile::read( const string& key, const T& value ) const
+{
+ // Return the value corresponding to key or given default value
+ // if key is not found
+ mapci p = myContents.find(key);
+ if( p == myContents.end() ) return value;
+ return string_as_T<T>( p->second );
+}
+
+
+template<class T>
+bool ConfigFile::readInto( T& var, const string& key ) const
+{
+ // Get the value corresponding to key and store in var
+ // Return true if key is found
+ // Otherwise leave var untouched
+ mapci p = myContents.find(key);
+ bool found = ( p != myContents.end() );
+ if( found ) var = string_as_T<T>( p->second );
+ return found;
+}
+
+
+template<class T>
+bool ConfigFile::readInto( T& var, const string& key, const T& value ) const
+{
+ // Get the value corresponding to key and store in var
+ // Return true if key is found
+ // Otherwise set var to given default
+ mapci p = myContents.find(key);
+ bool found = ( p != myContents.end() );
+ if( found )
+ var = string_as_T<T>( p->second );
+ else
+ var = value;
+ return found;
+}
+
+
+template<class T>
+void ConfigFile::add( string key, const T& value )
+{
+ // Add a key with given value
+ string v = T_as_string( value );
+ trim(key);
+ trim(v);
+ myContents[key] = v;
+ return;
+}
+
+#endif // CONFIGFILE_H
+
+// Release notes:
+// v1.0 21 May 1999
+// + First release
+// + Template read() access only through non-member readConfigFile()
+// + ConfigurationFileBool is only built-in helper class
+//
+// v2.0 3 May 2002
+// + Shortened name from ConfigurationFile to ConfigFile
+// + Implemented template member functions
+// + Changed default comment separator from % to #
+// + Enabled reading of multiple-line values
+//
+// v2.1 24 May 2004
+// + Made template specializations inline to avoid compiler-dependent linkage
+// + Allowed comments within multiple-line values
+// + Enabled blank line termination for multiple-line values
+// + Added optional sentry to detect end of configuration file
+// + Rewrote messy trimWhitespace() function as elegant trim()
diff --git a/ARMFCaptureD3D/ConfigFile/ConfigFile.html b/ARMFCaptureD3D/ConfigFile/ConfigFile.html
new file mode 100644
index 0000000..2f29e41
--- /dev/null
+++ b/ARMFCaptureD3D/ConfigFile/ConfigFile.html
@@ -0,0 +1,72 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+
+<head>
+ <meta name="Author" content="Richard Joseph Wagner">
+ <meta name="Description" content="C++ class for configuration file reader">
+ <meta name="Keywords" content="configuration,file,reader,input,text,C++,class,ConfigFile,data,type,datatype">
+ <link href="main.css" rel="stylesheet" type="text/css">
+ <style type="text/css">
+ body { background: url("AntBlueMaize.jpg"); }
+ tr { text-indent: 2em }
+ </style>
+ <title>Configuration File Reader for C++</title>
+</head>
+
+<body>
+
+<h1>Configuration File Reader for C++</h1>
+
+ConfigFile is a C++ class for reading configuration files. Such files are handy, for example, in running computer simulations. The simulation program can be set to read its input parameters and settings from a configuration file. Then, changing the simulation conditions is as easy as editing text in the configuration file rather than editing and recompiling the source code.
+
+<p>With this purpose in mind, ConfigFile is designed to be convenient, portable, and free. Take a look at the
+<a href="ConfigFile.h">class header</a>,
+<a href="ConfigFile.cpp">class definition</a>,
+<a href="example.cpp">example program<a>, and
+<a href="example.inp">sample input<a>.
+Or, download the complete package in
+<a href="ConfigFile-2.1.zip">zip</a>
+or
+<a href="ConfigFile-2.1.tar.gz">tarball</a>
+format.
+
+<p>Features:
+<ul>
+ <li>Human-readable configuration files:
+ <ul>
+ <li><code>atoms = 250</code>
+ <li><code>length = 8.0 &nbsp;# nanometers</code>
+ <li><code>name = Reece Surcher</code>
+ </ul>
+ <li>Simple file opening with <code>ConfigFile config( "config.inp" );</code>
+ <li>Convenient reading of any data type:
+ <ul>
+ <li><code>int atoms = config.read&lt;int&gt;( "atoms" );</code>
+ <li><code>double length = config.read( "length", 10.0 );</code>
+ <li><code>string author = config.read&lt;string&gt;( "name", "none" );</code>
+ </ul>
+ <li>Ability to modify and save configuration files
+ <li>Thorough example program
+ <li>Validation tests
+ <li>Open source code under MIT License
+</ul>
+
+<p>If you like this software, also try my version of the
+<a href="http://www-personal.engin.umich.edu/~wagnerr/MersenneTwister.html">Mersenne Twister</a>
+random number generator.
+
+<!-- counter included only in online version -->
+
+<p><table align=center><tr>
+ <td><a href="http://www-personal.engin.umich.edu/~wagnerr/index.html">
+ <img class="nav" src="ArrowHome.gif" alt="^ home" height=16 width=16 border=0>
+ </a></td>
+ <td><span class="center"><address>
+ Rick Wagner (
+ <a href="mailto:wagnerr@umich.edu">wagnerr@umich.edu</a>
+ ) 26 May 04
+ </address></span></td>
+</table>
+
+</body>
+</html>
diff --git a/ARMFCaptureD3D/ConfigFile/Makefile b/ARMFCaptureD3D/ConfigFile/Makefile
new file mode 100644
index 0000000..fd503f8
--- /dev/null
+++ b/ARMFCaptureD3D/ConfigFile/Makefile
@@ -0,0 +1,24 @@
+# Makefile for ConfigFile class
+
+CC = g++
+CFLAGS = -Wall -ansi
+
+all: example tester
+
+example: example.cpp ConfigFile.cpp
+ $(CC) $(CFLAGS) -o example example.cpp ConfigFile.cpp
+
+tester: tester.cpp ConfigFile.cpp
+ $(CC) $(CFLAGS) -o tester tester.cpp ConfigFile.cpp
+
+run: example
+ ./example | tee example.out
+
+test: tester
+ ./tester | tee test.out
+
+tidy:
+ @ rm -f *.o
+
+clean: tidy
+ @ rm -f example tester example.out test.out core*
diff --git a/ARMFCaptureD3D/ConfigFile/README b/ARMFCaptureD3D/ConfigFile/README
new file mode 100644
index 0000000..27406cf
--- /dev/null
+++ b/ARMFCaptureD3D/ConfigFile/README
@@ -0,0 +1,57 @@
+README for ConfigFile distribution
+Richard J. Wagner v2.1 24 May 2004
+
+Instructions
+------------
+
+The only necessary files for using this configuration file reader are
+"ConfigFile.h" and "ConfigFile.cpp". The class name is ConfigFile.
+
+Usage examples are in "example.cpp". Linux or Unix users can type "make" to
+compile and then type "make run" to run the example program.
+
+The test program in "tester.cpp" will check that the class properly reads
+a variety of simple and complex configuration file entries. To run the test
+program type "make test".
+
+When you are done with the examples and the test program, type "make clean"
+to get rid of temporary files.
+
+For Windows or Mac users with a compiler such as Metrowerks CodeWarrior or
+Microsoft Visual C++, simply add "example.cpp" and "ConfigFile.cpp" to an
+empty C++ console application. Compile and run to see the configuration
+file reader in action. Do likewise with "tester.cpp" to check that the
+code works properly with your compiler.
+
+If you encounter any problems, please e-mail a copy of the output and a
+description of the test system to me at "wagnerr@umich.edu". Any other
+feedback is welcome too.
+
+
+Installation
+------------
+
+Just copy the files "ConfigFile.h" and "ConfigFile.cpp" to your working
+directory or some other place where your compiler can find them. Add
+"ConfigFile.cpp" to your project and put the following line at the top of
+your program to access the ConfigFile class:
+
+#include "ConfigFile.h"
+
+
+Contents
+--------
+
+README - this file
+ConfigFile.h - declaration of ConfigFile class
+ConfigFile.cpp - definitions of ConfigFile class
+example.cpp - examples of using ConfigFile
+tester.cpp - tests ConfigFile class
+example.inp - configuration file for example program
+test.inp - configuration file for tester program
+Triplet.h - sample user-defined data type
+Makefile - instructions used by "make" command
+ConfigFile.html - Web page about ConfigFile
+AntBlueMaize.jpg - background for ConfigFile.html
+ArrowHome.gif - home icon for ConfigFile.html
+main.css - style sheet for ConfigFile.html
diff --git a/ARMFCaptureD3D/ConfigFile/Triplet.h b/ARMFCaptureD3D/ConfigFile/Triplet.h
new file mode 100644
index 0000000..e26dc47
--- /dev/null
+++ b/ARMFCaptureD3D/ConfigFile/Triplet.h
@@ -0,0 +1,34 @@
+// Triplet.h
+// A sample user-defined data type for illustrating ConfigFile
+// Operators << and >> are defined to allow writing to and reading from files
+// Richard J. Wagner 24 May 2004
+
+#include <iostream>
+
+struct Triplet
+{
+ int a, b, c;
+
+ Triplet() {}
+ Triplet( int u, int v, int w ) : a(u), b(v), c(w) {}
+ Triplet( const Triplet& orig ) : a(orig.a), b(orig.b), c(orig.c) {}
+
+ Triplet& operator=( const Triplet& orig )
+ { a = orig.a; b = orig.b; c = orig.c; return *this; }
+};
+
+
+std::ostream& operator<<( std::ostream& os, const Triplet& t )
+{
+ // Save a triplet to os
+ os << t.a << " " << t.b << " " << t.c;
+ return os;
+}
+
+
+std::istream& operator>>( std::istream& is, Triplet& t )
+{
+ // Load a triplet from is
+ is >> t.a >> t.b >> t.c;
+ return is;
+}
diff --git a/ARMFCaptureD3D/ConfigFile/example.cpp b/ARMFCaptureD3D/ConfigFile/example.cpp
new file mode 100644
index 0000000..e0d24c0
--- /dev/null
+++ b/ARMFCaptureD3D/ConfigFile/example.cpp
@@ -0,0 +1,111 @@
+// example.cpp
+// Program to demonstrate ConfigFile class
+
+#include <string>
+#include <iostream>
+#include "ConfigFile.h"
+#include "Triplet.h"
+
+using std::string;
+using std::cout;
+using std::endl;
+
+int main( void )
+{
+ // A configuration file can be loaded with a simple
+
+ ConfigFile config( "example.inp" );
+
+ // Values can be read from the file by name
+
+ int apples;
+ config.readInto( apples, "apples" );
+ cout << "The number of apples is " << apples << endl;
+
+ double price;
+ config.readInto( price, "price" );
+ cout << "The price is $" << price << endl;
+
+ string title;
+ config.readInto( title, "title" );
+ cout << "The title of the song is " << title << endl;
+
+ // We can provide default values in case the name is not found
+
+ int oranges;
+ config.readInto( oranges, "oranges", 0 );
+ cout << "The number of oranges is " << oranges << endl;
+
+ int fruit = 0;
+ fruit += config.read( "apples", 0 );
+ fruit += config.read( "pears", 0 );
+ fruit += config.read( "oranges", 0 );
+ cout << "The total number of apples, pears, and oranges is ";
+ cout << fruit << endl;
+
+ // Sometimes we must tell the compiler what data type we want to
+ // read when it's not clear from arguments given to read()
+
+ int pears = config.read<int>( "pears" );
+ cout << "The number of pears is " << pears;
+ cout << ", but you knew that already" << endl;
+
+ // The value is interpreted as the requested data type
+
+ cout << "The weight is ";
+ cout << config.read<string>("weight");
+ cout << " as a string" << endl;
+
+ cout << "The weight is ";
+ cout << config.read<double>("weight");
+ cout << " as a double" << endl;
+
+ cout << "The weight is ";
+ cout << config.read<int>("weight");
+ cout << " as an integer" << endl;
+
+ // When reading boolean values, a wide variety of words are
+ // recognized, including "true", "yes", and "1"
+
+ if( config.read( "sale", false ) )
+ cout << "The fruit is on sale" << endl;
+ else
+ cout << "The fruit is full price" << endl;
+
+ // We can also read user-defined types, as long as the input and
+ // output operators, >> and <<, are defined
+
+ Triplet point;
+ config.readInto( point, "zone" );
+ cout << "The first point in the zone is " << point << endl;
+
+ // The readInto() functions report whether the named value was found
+
+ int pommes = 0;
+ if( config.readInto( pommes, "pommes" ) )
+ cout << "The input file is in French: ";
+ else if( config.readInto( pommes, "apples" ) )
+ cout << "The input file is in English: ";
+ cout << "The number of pommes (apples) is " << pommes << endl;
+
+ // Named values can be added to a ConfigFile
+
+ config.add( "zucchini", 12 );
+ int zucchini = config.read( "zucchini", 0 );
+ cout << "The number of zucchini was set to " << zucchini << endl;
+
+ // And values can be removed
+
+ config.remove( "pears" );
+ if( config.readInto( pears, "pears" ) )
+ cout << "The pears are ready" << endl;
+ else
+ cout << "The pears have been eaten" << endl;
+
+ // An entire ConfigFile can written (and restored)
+
+ cout << "Here is the modified configuration file:" << endl;
+ cout << config;
+
+ return 0;
+}
diff --git a/ARMFCaptureD3D/ConfigFile/example.inp b/ARMFCaptureD3D/ConfigFile/example.inp
new file mode 100644
index 0000000..503fb1b
--- /dev/null
+++ b/ARMFCaptureD3D/ConfigFile/example.inp
@@ -0,0 +1,14 @@
+# example.inp
+# Example configuration file for ConfigFile class
+
+apples = 7 # comment after apples
+pears = 3 # comment after pears
+price = 1.99 # comment after price
+sale = true # comment after sale
+title = one fine day # comment after title
+weight = 2.5 kg # comment after weight
+zone = 1 2 3 # comment after 1st point
+ 4 5 6 # comment after 2nd point
+ 7 8 9 # comment after 3rd point
+
+This is also a comment since it has no equals sign and follows a blank line.
diff --git a/ARMFCaptureD3D/ConfigFile/main.css b/ARMFCaptureD3D/ConfigFile/main.css
new file mode 100644
index 0000000..08bbd90
--- /dev/null
+++ b/ARMFCaptureD3D/ConfigFile/main.css
@@ -0,0 +1,37 @@
+body { text-align: justify;
+ margin: 0.5em 1.5em;
+ color: #002244;
+ background-color: white;
+ background: url("AntGreenWhite.jpg");
+ font-family: "new century schoolbook", serif }
+
+a:link { color: #0055cc }
+a:visited { color: #303077 }
+a:active { color: #aaaa00 }
+
+h1 { text-align: center; font-size: 200%; margin: 0em 0em 0.2em; color: #000066 }
+h2 { text-align: left; font-size: 150%; margin: 0em 0em 0.4em; color: #000000 }
+h3 { text-align: left; font-size: 120%; margin: 0em 0em 0.4em; color: #000000 }
+li { margin: 0em 0em 0.2em }
+
+.left { text-align: left }
+.center { text-align: center }
+.right { text-align: right }
+.justify { text-align: justify }
+.top { vertical-align: top }
+.middle { vertical-align: middle }
+.bottom { vertical-align: bottom }
+.bold { font-weight: bold }
+
+.caption { text-align: center; font-size: 90%; font-style: italic }
+.preview { vertical-align: top; margin: 0.2em 3.0em 0.2em 2.0em }
+.clear { clear: both }
+a.plain { text-decoration: none; font-size: larger; font-weight: bold }
+
+.in0 { text-indent: 0.000em; line-height: 110% }
+.in1 { text-indent: 0.143em; line-height: 110% }
+.in2 { text-indent: 0.518em; line-height: 110% }
+.in3 { text-indent: 0.982em; line-height: 110% }
+.in4 { text-indent: 1.357em; line-height: 110% }
+.in5 { text-indent: 1.500em; line-height: 110% }
+
diff --git a/ARMFCaptureD3D/ConfigFile/test.inp b/ARMFCaptureD3D/ConfigFile/test.inp
new file mode 100644
index 0000000..1370918
--- /dev/null
+++ b/ARMFCaptureD3D/ConfigFile/test.inp
@@ -0,0 +1,83 @@
+# test.inp
+# Test configuration file for ConfigFile class
+
+################################
+# Run through the basic syntax #
+################################
+
+integer = 7 # comment after apples
+double = 1.99 # comment after double
+boolean = true # comment after bool
+string = one fine day # comment after string
+weight = 2.5 kg # comment after weight
+triplets = 1 2 3 # comment after 1st triplet
+ 4 5 6 # comment after 2nd triplet
+ 7 8 9 # comment after 3rd triplet
+
+This is also a comment since it has no equals sign and follows a blank line.
+
+
+##########################################
+# Run through some more difficult syntax #
+##########################################
+
+# Repeated keys should overwrite previous values
+repeated = 1
+repeated = 2
+
+# Key recognition should be case-sensitive
+oneStall = 1
+onesTall = 111
+
+# Keys with embedded spaces should be recognized
+space key = true
+
+# An all-space value should be legal
+noValue =
+
+# An all-space key, though weird, should be legal too
+= 5
+
+# On a line with two delimiters, the second should belong to the value
+equation = y = mx + b
+
+# Blank lines should terminate multiple-line values
+multilinePause =
+ first
+ second
+ third
+
+ fourth
+
+# But comments should not terminate multiple-line values
+multilineComment =
+ first # 1st
+ second # 2nd
+ third # 3rd
+ fourth # 4th
+
+# Commented lines in multiple-line values should simply be skipped
+multilineSkip =
+ first
+ second
+# third
+ fourth
+
+# Assignments within comments should be ignored
+# postComment = 9
+
+# Alternative delimiters should be recognized
+atDelimiter @ 7
+
+# Alternative comment separators should be recognized
+! alternateComment = 9
+
+# A space should work as an alternative delimiter
+spaceDelimiter 7
+
+# Assignments after an active end of file sentry should be ignored
+end = before commented sentry
+# EndConfigFile
+end = before uncommented sentry
+EndConfigFile
+end = before EOF
diff --git a/ARMFCaptureD3D/ConfigFile/tester.cpp b/ARMFCaptureD3D/ConfigFile/tester.cpp
new file mode 100644
index 0000000..ff82c27
--- /dev/null
+++ b/ARMFCaptureD3D/ConfigFile/tester.cpp
@@ -0,0 +1,331 @@
+// tester.cpp
+// Program to test ConfigFile class
+
+#include <string>
+#include <iostream>
+#include "ConfigFile.h"
+#include "Triplet.h"
+
+using std::string;
+using std::cout;
+using std::endl;
+
+string title = "";
+bool success = true;
+int errors = 0;
+
+void announce( const string& name )
+{
+ title = name;
+ success = true;
+ cout << "Test " << title << ":" << endl;
+}
+
+void judge()
+{
+ if( success )
+ {
+ cout << "Passed " << title << "." << endl << endl;
+ return;
+ }
+ cout << "Error - Failed " << title << "." << endl << endl;
+ ++errors;
+}
+
+void evaluate( const bool& test )
+{
+ success = success && test;
+}
+
+int main( void )
+{
+ cout << "This is a test of the ConfigFile class." << endl;
+
+ try {
+
+ ConfigFile cf( "test.inp" );
+
+ cout << "Here is the configuration read from test.inp:" << endl;
+ cout << cf << endl;
+
+ // Test reading of basic types
+
+ announce("reading of basic types");
+
+ int valInt = cf.read<int>( "integer", 0 );
+ cout << "Value of 'integer' is " << valInt << endl;
+ evaluate( valInt == 7 );
+
+ double valDbl = cf.read<double>( "double", 0.0 );
+ cout << "Value of 'double' is " << valDbl << endl;
+ evaluate( valDbl == 1.99 );
+
+ bool valBoo = cf.read<bool>( "boolean", false );
+ cout << "Value of 'boolean' is " << valBoo << endl;
+ evaluate( valBoo );
+
+ string valStr = cf.read<string>( "string", "nothing" );
+ cout << "Value of 'string' is " << valStr << endl;
+ evaluate( valStr == "one fine day" );
+
+ judge();
+
+ // Test reading by different methods
+
+ announce("reading by different methods");
+
+ int methodExplicit = cf.read<int>( "integer" );
+ cout << "Read integer explicitly as " << methodExplicit << endl;
+ evaluate( methodExplicit == 7 );
+
+ int methodDefault = cf.read( "integer", 0 );
+ cout << "Read integer with default as " << methodDefault << endl;
+ evaluate( methodDefault == 7 );
+
+ int valInto = 0;
+ bool methodInto = cf.readInto( valInto, "integer" );
+ cout << "Read integer into variable as " << valInto << endl;
+ evaluate( methodInto );
+
+ methodInto = cf.readInto( valInto, "integer", 0 );
+ cout << "Read integer into variable with default as " << valInto << endl;
+ evaluate( methodInto );
+
+ judge();
+
+ // Test interpretation as different types
+
+ announce("interpretation as different types");
+
+ string typeStr = cf.read<string>( "weight", "nothing" );
+ cout << "Value of weight as a string is " << typeStr << endl;
+ evaluate( typeStr == "2.5 kg" );
+
+ double typeDbl = cf.read<double>( "weight", 0.0 );
+ cout << "Value of weight as a double is " << typeDbl << endl;
+ evaluate( typeDbl == 2.5 );
+
+ int typeInt = cf.read<int>( "weight", 0 );
+ cout << "Value of weight as an integer is " << typeInt << endl;
+ evaluate( typeInt == 2 );
+
+ judge();
+
+ // Test reading of user-defined types
+
+ announce("reading of user-defined types");
+
+ Triplet trip = cf.read<Triplet>( "triplets" );
+ cout << "First Triplet in 'triplets' is " << trip << endl;
+ evaluate( trip.a==1 && trip.b==2 && trip.c==3 );
+
+ judge();
+
+ // Test reading of repeated keys
+
+ announce("reading of repeated keys");
+
+ int repeat = cf.read<int>( "repeated" );
+ cout << "Value of 'repeated' is " << repeat << endl;
+ evaluate( repeat == 2 );
+
+ judge();
+
+ // Test case-sensitivity of key recognition
+
+ announce("case-sensitivity of key recognition");
+
+ int oneStall = cf.read<int>( "oneStall" );
+ cout << "Value of oneStall is " << oneStall << endl;
+ evaluate( oneStall == 1 );
+
+ int onesTall = cf.read<int>( "onesTall" );
+ cout << "Value of onesTall is " << onesTall << endl;
+ evaluate( onesTall == 111 );
+
+ judge();
+
+ // Test recognition of keys with embedded spaces
+
+ announce("recognition of keys with embedded spaces");
+
+ bool spaceInKey = cf.read<bool>( "space key", false );
+ cout << "Value of 'space key' is " << spaceInKey << endl;
+ evaluate( spaceInKey );
+
+ judge();
+
+ // Test legality of all-space values
+
+ announce("legality of all-space values");
+
+ string noValue = cf.read<string>( "noValue", "something" );
+ cout << "Value of 'noValue' is " << noValue << endl;
+ evaluate( noValue == "" );
+
+ judge();
+
+ // Test legality of all-space keys
+
+ announce("legality of all-space keys");
+
+ int spaceKey = cf.read<int>( "" );
+ cout << "Value of nothing is " << spaceKey << endl;
+ evaluate( spaceKey == 5 );
+
+ judge();
+
+ // Test reading of values that include a delimiter
+
+ announce("reading of values that include a delimiter");
+
+ string equation = cf.read<string>( "equation" );
+ cout << "Value of 'equation' is " << equation << endl;
+ evaluate( equation == "y = mx + b" );
+
+ judge();
+
+ // Test termination of multiple-line values by blank lines
+
+ announce("termination of multiple-line values by blank lines");
+
+ string multiPause = cf.read<string>( "multilinePause" );
+ cout << "Value of 'multilinePause' is " << multiPause << endl;
+ evaluate( multiPause.find("third") != string::npos &&
+ multiPause.find("fourth") == string::npos );
+
+ judge();
+
+ // Test continuation of multiple-line values after comments
+
+ announce("continuation of multiple-line values after comments");
+
+ string multiComment = cf.read<string>( "multilineComment" );
+ cout << "Value of 'multilineComment' is " << multiComment << endl;
+ evaluate( multiComment.find("fourth") != string::npos );
+
+ judge();
+
+ // Test skipping of commented lines in multiple-line values
+
+ announce("skipping of commented lines in multiple-line values");
+
+ string multiSkip = cf.read<string>( "multilineSkip" );
+ cout << "Value of 'multilineSkip' is " << multiSkip << endl;
+ evaluate( multiSkip.find("third") == string::npos &&
+ multiSkip.find("fourth") != string::npos );
+
+ judge();
+
+ // Test skipping of assignments within comments
+
+ announce("skipping of assignments within comments");
+
+ int postComment = cf.read<int>( "postComment", 0 );
+ cout << "Value of 'postComment' is " << postComment << endl;
+ evaluate( postComment == 0 );
+
+ judge();
+
+ // Test alternative delimiters
+
+ announce("alternative delimiters");
+ string cfDelim = cf.getDelimiter();
+
+ int atDelimiter = cf.read<int>( "atDelimiter", 0 );
+ cout << "Value of 'atDelimiter' with '" << cfDelim;
+ cout << "' delimiter is " << atDelimiter << endl;
+ evaluate( atDelimiter == 0 );
+
+ ConfigFile atcf( "test.inp", "@" );
+ atDelimiter = atcf.read<int>( "atDelimiter", 0 );
+ cout << "Value of 'atDelimiter' with '" << atcf.getDelimiter();
+ cout << "' delimiter is " << atDelimiter << endl;
+ evaluate( atDelimiter == 7 );
+
+ judge();
+
+ // Test alternative comment separators
+
+ announce("alternative comment separators");
+ string cfComm = cf.getComment();
+
+ int altComment = cf.read<int>( "! alternateComment", 0 );
+ cout << "Value of '! alternateComment' with '" << cfComm;
+ cout << "' comment separator is " << altComment << endl;
+ evaluate( altComment == 9 );
+
+ altComment = cf.read<int>( "alternateComment", 0 );
+ cout << "Value of 'alternateComment' with '" << cfComm;
+ cout << "' comment separator is " << altComment << endl;
+ evaluate( altComment == 0 );
+
+ ConfigFile excf( "test.inp", cf.getDelimiter(), "!" );
+ altComment = excf.read<int>( "! alternateComment", 0 );
+ cout << "Value of '! alternateComment' with '" << excf.getComment();
+ cout << "' comment separator is " << altComment << endl;
+ evaluate( altComment == 0 );
+
+ altComment = excf.read<int>( "alternateComment", 0 );
+ cout << "Value of 'alternateComment' with '" << excf.getComment();
+ cout << "' comment separator is " << altComment << endl;
+ evaluate( altComment == 0 );
+
+ judge();
+
+ // Test legality of a space as a delimiter
+
+ announce("legality of a space as a delimiter");
+
+ int spaceDelimiter = cf.read<int>( "spaceDelimiter", 0 );
+ cout << "Value of 'spaceDelimiter' with '" << cfDelim;
+ cout << "' delimiter is " << spaceDelimiter << endl;
+ evaluate( spaceDelimiter == 0 );
+
+ ConfigFile spcf( "test.inp", " " );
+ spaceDelimiter = spcf.read<int>( "spaceDelimiter", 0 );
+ cout << "Value of 'spaceDelimiter' with '" << spcf.getDelimiter();
+ cout << "' delimiter is " << spaceDelimiter << endl;
+ evaluate( spaceDelimiter == 7 );
+
+ judge();
+
+ // Test interaction of assignments with end of file sentry
+
+ announce("interaction of assignments with end of file sentry");
+
+ string endStr = cf.read<string>( "end" );
+ cout << "Value of 'end' with '" << cf.getSentry();
+ cout << "' sentry is " << endStr << endl;
+ evaluate( endStr == "before uncommented sentry" );
+
+ ConfigFile eofcf( "test.inp", cfDelim, cfComm, "" );
+ endStr = eofcf.read<string>( "end" );
+ cout << "Value of 'end' with '" << eofcf.getSentry();
+ cout << "' sentry is " << endStr << endl;
+ evaluate( endStr == "before EOF" );
+ judge();
+
+ // Report results
+
+ } catch( ConfigFile::file_not_found& e ) {
+ cout << "Error - File '" << e.filename << "' not found.";
+ cout << endl << endl;
+ ++errors;
+ } catch( ConfigFile::key_not_found& e ) {
+ cout << "Error - Key '" << e.key << "' not found.";
+ cout << endl << endl;
+ ++errors;
+ }
+
+ if( errors > 0 )
+ {
+ cout << "Failed " << errors << " tests of ConfigFile.\n";
+ cout << "Please send a copy of this output to wagnerr@umich.edu.\n";
+ return 1;
+ }
+
+ cout << "Passed all tests of ConfigFile." << endl;
+
+ return 0;
+}
diff --git a/ARMFCaptureD3D/Debug/ARAnalyse.obj b/ARMFCaptureD3D/Debug/ARAnalyse.obj
new file mode 100644
index 0000000..0982aec
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/ARAnalyse.obj
Binary files differ
diff --git a/ARMFCaptureD3D/Debug/ARMFCaptureD3D.Build.CppClean.log b/ARMFCaptureD3D/Debug/ARMFCaptureD3D.Build.CppClean.log
new file mode 100644
index 0000000..c4bddcb
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/ARMFCaptureD3D.Build.CppClean.log
@@ -0,0 +1,125 @@
+C:\USERS\FCOLIN\DOCUMENTS\PROJECTS VISUAL STUDIO\CPP\ARMFCAPTURED3D\DEBUG\ARMFCAPTURED3D.EXE
+C:\USERS\FCOLIN\DOCUMENTS\PROJECTS VISUAL STUDIO\CPP\ARMFCAPTURED3D\DEBUG\ARMFCAPTURED3D.EXE.EMBED.MANIFEST
+C:\USERS\FCOLIN\DOCUMENTS\PROJECTS VISUAL STUDIO\CPP\ARMFCAPTURED3D\DEBUG\ARMFCAPTURED3D.EXE.EMBED.MANIFEST.RES
+C:\USERS\FCOLIN\DOCUMENTS\PROJECTS VISUAL STUDIO\CPP\ARMFCAPTURED3D\DEBUG\ARMFCAPTURED3D.EXE.INTERMEDIATE.MANIFEST
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\ARMFCaptureD3D.exp
+C:\USERS\FCOLIN\DOCUMENTS\PROJECTS VISUAL STUDIO\CPP\ARMFCAPTURED3D\DEBUG\ARMFCAPTURED3D.ILK
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\ARMFCaptureD3D.lib
+C:\USERS\FCOLIN\DOCUMENTS\PROJECTS VISUAL STUDIO\CPP\ARMFCAPTURED3D\DEBUG\ARMFCAPTURED3D.PDB
+C:\USERS\FCOLIN\DOCUMENTS\PROJECTS VISUAL STUDIO\CPP\ARMFCAPTURED3D\DEBUG\ARMFCAPTURED3D.RES
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\ARMFCaptureD3D.write.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\ARMFCaptureD3D_manifest.rc
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\ARToolKitPlus.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\ARToolKitPlus.ilk
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\ARToolKitPlus.pdb
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\cl.command.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\CL.read.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\CL.write.1.tlog
+C:\USERS\FCOLIN\DOCUMENTS\PROJECTS VISUAL STUDIO\CPP\ARMFCAPTURED3D\DEBUG\DEBUG.OBJ
+C:\USERS\FCOLIN\DOCUMENTS\PROJECTS VISUAL STUDIO\CPP\ARMFCAPTURED3D\DEBUG\DEVICE.OBJ
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\Ivy.bsc
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\Ivy.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\Ivy.ilk
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\Ivy.pdb
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\link.2676.read.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\link.2676.write.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\link.2676-cvtres.read.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\link.2676-cvtres.write.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\link.2732.read.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\link.2732.write.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\link.2732-cvtres.read.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\link.2732-cvtres.write.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\link.4152.read.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\link.4152.write.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\link.4152-cvtres.read.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\link.4152-cvtres.write.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\link.4424.read.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\link.4424.write.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\link.4424-cvtres.read.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\link.4424-cvtres.write.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\link.4640.read.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\link.4640.write.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\link.4640-cvtres.read.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\link.4640-cvtres.write.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\link.5748.read.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\link.5748.write.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\link.5748-cvtres.read.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\link.5748-cvtres.write.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\link.5988.read.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\link.5988.write.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\link.5988-cvtres.read.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\link.5988-cvtres.write.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\link.6080.read.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\link.6080.write.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\link.6080-cvtres.read.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\link.6080-cvtres.write.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\link.6364.read.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\link.6364.write.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\link.6364-cvtres.read.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\link.6364-cvtres.write.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\link.7352.read.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\link.7352.write.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\link.7352-cvtres.read.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\link.7352-cvtres.write.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\link.7488.read.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\link.7488.write.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\link.7488-cvtres.read.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\link.7488-cvtres.write.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\link.7652.read.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\link.7652.write.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\link.7652-cvtres.read.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\link.7652-cvtres.write.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\link.7936.read.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\link.7936.write.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\link.7936-cvtres.read.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\link.7936-cvtres.write.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\link.8000.read.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\link.8000.write.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\link.8000-cvtres.read.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\link.8000-cvtres.write.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\link.8088.read.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\link.8088.write.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\link.8088-cvtres.read.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\link.8088-cvtres.write.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\link.8220.read.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\link.8220.write.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\link.8220-cvtres.read.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\link.8220-cvtres.write.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\link.8536.read.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\link.8536.write.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\link.8536-cvtres.read.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\link.8536-cvtres.write.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\link.8612.read.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\link.8612.write.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\link.8612-cvtres.read.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\link.8612-cvtres.write.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\link.8732.read.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\link.8732.write.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\link.8732-cvtres.read.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\link.8732-cvtres.write.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\link.8940.read.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\link.8940.write.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\link.9004.read.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\link.9004.write.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\link.9004-cvtres.read.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\link.9004-cvtres.write.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\link.command.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\link.read.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\link.write.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\link-cvtres.read.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\link-cvtres.write.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\mt.command.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\mt.read.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\mt.write.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\pcre.bsc
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\pcre.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\pcre.ilk
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\pcre.pdb
+C:\USERS\FCOLIN\DOCUMENTS\PROJECTS VISUAL STUDIO\CPP\ARMFCAPTURED3D\DEBUG\PREVIEW.OBJ
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\rc.command.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\rc.read.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\rc.write.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\ResolveAssemblyReference.cache
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Debug\vc100.idb
+C:\USERS\FCOLIN\DOCUMENTS\PROJECTS VISUAL STUDIO\CPP\ARMFCAPTURED3D\DEBUG\VC100.PDB
+C:\USERS\FCOLIN\DOCUMENTS\PROJECTS VISUAL STUDIO\CPP\ARMFCAPTURED3D\DEBUG\WINMAIN.OBJ
diff --git a/ARMFCaptureD3D/Debug/ARMFCaptureD3D.exe b/ARMFCaptureD3D/Debug/ARMFCaptureD3D.exe
new file mode 100644
index 0000000..fcaa306
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/ARMFCaptureD3D.exe
Binary files differ
diff --git a/ARMFCaptureD3D/Debug/ARMFCaptureD3D.exe.embed.manifest b/ARMFCaptureD3D/Debug/ARMFCaptureD3D.exe.embed.manifest
new file mode 100644
index 0000000..9032d50
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/ARMFCaptureD3D.exe.embed.manifest
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
+ <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
+ <security>
+ <requestedPrivileges>
+ <requestedExecutionLevel level="asInvoker" uiAccess="false"></requestedExecutionLevel>
+ </requestedPrivileges>
+ </security>
+ </trustInfo>
+ <dependency>
+ <dependentAssembly>
+ <assemblyIdentity type="Win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="*" publicKeyToken="6595b64144ccf1df" language="*"></assemblyIdentity>
+ </dependentAssembly>
+ </dependency>
+</assembly> \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/ARMFCaptureD3D.exe.embed.manifest.res b/ARMFCaptureD3D/Debug/ARMFCaptureD3D.exe.embed.manifest.res
new file mode 100644
index 0000000..b6fdff3
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/ARMFCaptureD3D.exe.embed.manifest.res
Binary files differ
diff --git a/ARMFCaptureD3D/Debug/ARMFCaptureD3D.exe.intermediate.manifest b/ARMFCaptureD3D/Debug/ARMFCaptureD3D.exe.intermediate.manifest
new file mode 100644
index 0000000..43cc1f5
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/ARMFCaptureD3D.exe.intermediate.manifest
@@ -0,0 +1,15 @@
+<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
+<assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'>
+ <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
+ <security>
+ <requestedPrivileges>
+ <requestedExecutionLevel level='asInvoker' uiAccess='false' />
+ </requestedPrivileges>
+ </security>
+ </trustInfo>
+ <dependency>
+ <dependentAssembly>
+ <assemblyIdentity type='Win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*' />
+ </dependentAssembly>
+ </dependency>
+</assembly>
diff --git a/ARMFCaptureD3D/Debug/ARMFCaptureD3D.ilk b/ARMFCaptureD3D/Debug/ARMFCaptureD3D.ilk
new file mode 100644
index 0000000..ef54be2
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/ARMFCaptureD3D.ilk
Binary files differ
diff --git a/ARMFCaptureD3D/Debug/ARMFCaptureD3D.lastbuildstate b/ARMFCaptureD3D/Debug/ARMFCaptureD3D.lastbuildstate
new file mode 100644
index 0000000..6b5532a
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/ARMFCaptureD3D.lastbuildstate
@@ -0,0 +1,2 @@
+#v4.0:v100
+Debug|Win32|C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\|
diff --git a/ARMFCaptureD3D/Debug/ARMFCaptureD3D.pdb b/ARMFCaptureD3D/Debug/ARMFCaptureD3D.pdb
new file mode 100644
index 0000000..c5d4f85
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/ARMFCaptureD3D.pdb
Binary files differ
diff --git a/ARMFCaptureD3D/Debug/ARMFCaptureD3D.res b/ARMFCaptureD3D/Debug/ARMFCaptureD3D.res
new file mode 100644
index 0000000..0740831
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/ARMFCaptureD3D.res
Binary files differ
diff --git a/ARMFCaptureD3D/Debug/ARMFCaptureD3D.write.1.tlog b/ARMFCaptureD3D/Debug/ARMFCaptureD3D.write.1.tlog
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/ARMFCaptureD3D.write.1.tlog
diff --git a/ARMFCaptureD3D/Debug/ARMFCaptureD3D_manifest.rc b/ARMFCaptureD3D/Debug/ARMFCaptureD3D_manifest.rc
new file mode 100644
index 0000000..51101ba
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/ARMFCaptureD3D_manifest.rc
Binary files differ
diff --git a/ARMFCaptureD3D/Debug/ARToolKitPlus.dll b/ARMFCaptureD3D/Debug/ARToolKitPlus.dll
new file mode 100644
index 0000000..96f283d
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/ARToolKitPlus.dll
Binary files differ
diff --git a/ARMFCaptureD3D/Debug/ARToolKitPlus.exp b/ARMFCaptureD3D/Debug/ARToolKitPlus.exp
new file mode 100644
index 0000000..6a57b20
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/ARToolKitPlus.exp
Binary files differ
diff --git a/ARMFCaptureD3D/Debug/ARToolKitPlus.ilk b/ARMFCaptureD3D/Debug/ARToolKitPlus.ilk
new file mode 100644
index 0000000..23dbc7b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/ARToolKitPlus.ilk
Binary files differ
diff --git a/ARMFCaptureD3D/Debug/ARToolKitPlus.lib b/ARMFCaptureD3D/Debug/ARToolKitPlus.lib
new file mode 100644
index 0000000..a272d57
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/ARToolKitPlus.lib
Binary files differ
diff --git a/ARMFCaptureD3D/Debug/ARToolKitPlus.pdb b/ARMFCaptureD3D/Debug/ARToolKitPlus.pdb
new file mode 100644
index 0000000..2b68ee5
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/ARToolKitPlus.pdb
Binary files differ
diff --git a/ARMFCaptureD3D/Debug/CL.read.1.tlog b/ARMFCaptureD3D/Debug/CL.read.1.tlog
new file mode 100644
index 0000000..33a8a23
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/CL.read.1.tlog
Binary files differ
diff --git a/ARMFCaptureD3D/Debug/CL.write.1.tlog b/ARMFCaptureD3D/Debug/CL.write.1.tlog
new file mode 100644
index 0000000..4f41f9b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/CL.write.1.tlog
Binary files differ
diff --git a/ARMFCaptureD3D/Debug/Calibration.obj b/ARMFCaptureD3D/Debug/Calibration.obj
new file mode 100644
index 0000000..748120f
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/Calibration.obj
Binary files differ
diff --git a/ARMFCaptureD3D/Debug/ConfigFile.obj b/ARMFCaptureD3D/Debug/ConfigFile.obj
new file mode 100644
index 0000000..7d5bc33
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/ConfigFile.obj
Binary files differ
diff --git a/ARMFCaptureD3D/Debug/Ivy.bsc b/ARMFCaptureD3D/Debug/Ivy.bsc
new file mode 100644
index 0000000..543d5d0
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/Ivy.bsc
Binary files differ
diff --git a/ARMFCaptureD3D/Debug/Ivy.dll b/ARMFCaptureD3D/Debug/Ivy.dll
new file mode 100644
index 0000000..abfadcc
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/Ivy.dll
Binary files differ
diff --git a/ARMFCaptureD3D/Debug/Ivy.exp b/ARMFCaptureD3D/Debug/Ivy.exp
new file mode 100644
index 0000000..277d80c
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/Ivy.exp
Binary files differ
diff --git a/ARMFCaptureD3D/Debug/Ivy.ilk b/ARMFCaptureD3D/Debug/Ivy.ilk
new file mode 100644
index 0000000..eda3fe1
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/Ivy.ilk
Binary files differ
diff --git a/ARMFCaptureD3D/Debug/Ivy.lib b/ARMFCaptureD3D/Debug/Ivy.lib
new file mode 100644
index 0000000..39df773
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/Ivy.lib
Binary files differ
diff --git a/ARMFCaptureD3D/Debug/Ivy.pdb b/ARMFCaptureD3D/Debug/Ivy.pdb
new file mode 100644
index 0000000..3825a7d
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/Ivy.pdb
Binary files differ
diff --git a/ARMFCaptureD3D/Debug/MFCaptureD3D.exe b/ARMFCaptureD3D/Debug/MFCaptureD3D.exe
new file mode 100644
index 0000000..5aa45b8
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/MFCaptureD3D.exe
Binary files differ
diff --git a/ARMFCaptureD3D/Debug/MFCaptureD3D.lastbuildstate b/ARMFCaptureD3D/Debug/MFCaptureD3D.lastbuildstate
new file mode 100644
index 0000000..6b5532a
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/MFCaptureD3D.lastbuildstate
@@ -0,0 +1,2 @@
+#v4.0:v100
+Debug|Win32|C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\|
diff --git a/ARMFCaptureD3D/Debug/MFCaptureD3D.lib b/ARMFCaptureD3D/Debug/MFCaptureD3D.lib
new file mode 100644
index 0000000..f1c9b3f
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/MFCaptureD3D.lib
Binary files differ
diff --git a/ARMFCaptureD3D/Debug/MFCaptureD3D.log b/ARMFCaptureD3D/Debug/MFCaptureD3D.log
new file mode 100644
index 0000000..ce28349
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/MFCaptureD3D.log
@@ -0,0 +1,59 @@
+La génération a démarré 12/08/2011 10:17:50.
+ 1>Projet "C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj" sur le nœud 2 (build cible(s)).
+ 1>InitializeBuildStatus:
+ Création de "Debug\MFCaptureD3D.unsuccessfulbuild", car "AlwaysCreate" a été spécifié.
+ ClCompile:
+ c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\CL.exe /c /ZI /nologo /W4 /WX /Od /Oy- /D WIN32 /D _DEBUG /D _WINDOWS /D _UNICODE /D UNICODE /Gm /EHsc /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Fo"Debug\\" /Fd"Debug\vc100.pdb" /Gd /TP /analyze- /errorReport:prompt device.cpp preview.cpp winmain.cpp
+ winmain.cpp
+ 1>c:\program files (x86)\microsoft visual studio 10.0\vc\include\cstdio(48): error C2220: avertissement considéré comme une erreur - aucun fichier 'object' généré
+ 1>c:\program files (x86)\microsoft visual studio 10.0\vc\include\cstdio(48): warning C4995: 'gets' : le nom a été marqué comme #pragma deprecated
+ 1>c:\program files (x86)\microsoft visual studio 10.0\vc\include\cstdio(52): warning C4995: 'sprintf' : le nom a été marqué comme #pragma deprecated
+ 1>c:\program files (x86)\microsoft visual studio 10.0\vc\include\cstdio(55): warning C4995: 'vsprintf' : le nom a été marqué comme #pragma deprecated
+ 1>c:\program files (x86)\microsoft visual studio 10.0\vc\include\cstring(21): warning C4995: 'strcat' : le nom a été marqué comme #pragma deprecated
+ 1>c:\program files (x86)\microsoft visual studio 10.0\vc\include\cstring(22): warning C4995: 'strcpy' : le nom a été marqué comme #pragma deprecated
+ 1>c:\program files (x86)\microsoft visual studio 10.0\vc\include\cwchar(30): warning C4995: 'swprintf' : le nom a été marqué comme #pragma deprecated
+ 1>c:\program files (x86)\microsoft visual studio 10.0\vc\include\cwchar(31): warning C4995: 'vswprintf' : le nom a été marqué comme #pragma deprecated
+ 1>c:\program files (x86)\microsoft visual studio 10.0\vc\include\cwchar(33): warning C4995: 'wcscat' : le nom a été marqué comme #pragma deprecated
+ 1>c:\program files (x86)\microsoft visual studio 10.0\vc\include\cwchar(35): warning C4995: 'wcscpy' : le nom a été marqué comme #pragma deprecated
+ 1>c:\program files (x86)\microsoft visual studio 10.0\vc\include\string(757): warning C4995: 'swprintf' : le nom a été marqué comme #pragma deprecated
+ 1>c:\program files (x86)\microsoft visual studio 10.0\vc\include\string(766): warning C4995: 'swprintf' : le nom a été marqué comme #pragma deprecated
+ 1>c:\program files (x86)\microsoft visual studio 10.0\vc\include\string(775): warning C4995: 'swprintf' : le nom a été marqué comme #pragma deprecated
+ 1>c:\program files (x86)\microsoft visual studio 10.0\vc\include\intrin.h(1087): warning C4995: 'wcscat' : le nom a été marqué comme #pragma deprecated
+ 1>c:\program files (x86)\microsoft visual studio 10.0\vc\include\intrin.h(1089): warning C4995: 'wcscpy' : le nom a été marqué comme #pragma deprecated
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\armfcaptured3d\options.h(196): warning C4512: 'OptIstreamIter' : l'opérateur d'assignation n'a pas pu être généré
+ c:\users\fcolin\documents\projects visual studio\cpp\armfcaptured3d\options.h(172) : voir la déclaration de 'OptIstreamIter'
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\armfcaptured3d\aranalyse.h(7): fatal error C1083: Impossible d'ouvrir le fichier include : 'ARToolKitPlus/TrackerMultiMarker.h' : No such file or directory
+ preview.cpp
+ 1>c:\program files (x86)\microsoft visual studio 10.0\vc\include\cstdio(48): error C2220: avertissement considéré comme une erreur - aucun fichier 'object' généré
+ 1>c:\program files (x86)\microsoft visual studio 10.0\vc\include\cstdio(48): warning C4995: 'gets' : le nom a été marqué comme #pragma deprecated
+ 1>c:\program files (x86)\microsoft visual studio 10.0\vc\include\cstdio(52): warning C4995: 'sprintf' : le nom a été marqué comme #pragma deprecated
+ 1>c:\program files (x86)\microsoft visual studio 10.0\vc\include\cstdio(55): warning C4995: 'vsprintf' : le nom a été marqué comme #pragma deprecated
+ 1>c:\program files (x86)\microsoft visual studio 10.0\vc\include\cstring(21): warning C4995: 'strcat' : le nom a été marqué comme #pragma deprecated
+ 1>c:\program files (x86)\microsoft visual studio 10.0\vc\include\cstring(22): warning C4995: 'strcpy' : le nom a été marqué comme #pragma deprecated
+ 1>c:\program files (x86)\microsoft visual studio 10.0\vc\include\cwchar(30): warning C4995: 'swprintf' : le nom a été marqué comme #pragma deprecated
+ 1>c:\program files (x86)\microsoft visual studio 10.0\vc\include\cwchar(31): warning C4995: 'vswprintf' : le nom a été marqué comme #pragma deprecated
+ 1>c:\program files (x86)\microsoft visual studio 10.0\vc\include\cwchar(33): warning C4995: 'wcscat' : le nom a été marqué comme #pragma deprecated
+ 1>c:\program files (x86)\microsoft visual studio 10.0\vc\include\cwchar(35): warning C4995: 'wcscpy' : le nom a été marqué comme #pragma deprecated
+ 1>c:\program files (x86)\microsoft visual studio 10.0\vc\include\intrin.h(1087): warning C4995: 'wcscat' : le nom a été marqué comme #pragma deprecated
+ 1>c:\program files (x86)\microsoft visual studio 10.0\vc\include\intrin.h(1089): warning C4995: 'wcscpy' : le nom a été marqué comme #pragma deprecated
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\armfcaptured3d\aranalyse.h(7): fatal error C1083: Impossible d'ouvrir le fichier include : 'ARToolKitPlus/TrackerMultiMarker.h' : No such file or directory
+ device.cpp
+ 1>c:\program files (x86)\microsoft visual studio 10.0\vc\include\cstdio(48): error C2220: avertissement considéré comme une erreur - aucun fichier 'object' généré
+ 1>c:\program files (x86)\microsoft visual studio 10.0\vc\include\cstdio(48): warning C4995: 'gets' : le nom a été marqué comme #pragma deprecated
+ 1>c:\program files (x86)\microsoft visual studio 10.0\vc\include\cstdio(52): warning C4995: 'sprintf' : le nom a été marqué comme #pragma deprecated
+ 1>c:\program files (x86)\microsoft visual studio 10.0\vc\include\cstdio(55): warning C4995: 'vsprintf' : le nom a été marqué comme #pragma deprecated
+ 1>c:\program files (x86)\microsoft visual studio 10.0\vc\include\cstring(21): warning C4995: 'strcat' : le nom a été marqué comme #pragma deprecated
+ 1>c:\program files (x86)\microsoft visual studio 10.0\vc\include\cstring(22): warning C4995: 'strcpy' : le nom a été marqué comme #pragma deprecated
+ 1>c:\program files (x86)\microsoft visual studio 10.0\vc\include\cwchar(30): warning C4995: 'swprintf' : le nom a été marqué comme #pragma deprecated
+ 1>c:\program files (x86)\microsoft visual studio 10.0\vc\include\cwchar(31): warning C4995: 'vswprintf' : le nom a été marqué comme #pragma deprecated
+ 1>c:\program files (x86)\microsoft visual studio 10.0\vc\include\cwchar(33): warning C4995: 'wcscat' : le nom a été marqué comme #pragma deprecated
+ 1>c:\program files (x86)\microsoft visual studio 10.0\vc\include\cwchar(35): warning C4995: 'wcscpy' : le nom a été marqué comme #pragma deprecated
+ 1>c:\program files (x86)\microsoft visual studio 10.0\vc\include\intrin.h(1087): warning C4995: 'wcscat' : le nom a été marqué comme #pragma deprecated
+ 1>c:\program files (x86)\microsoft visual studio 10.0\vc\include\intrin.h(1089): warning C4995: 'wcscpy' : le nom a été marqué comme #pragma deprecated
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\armfcaptured3d\aranalyse.h(7): fatal error C1083: Impossible d'ouvrir le fichier include : 'ARToolKitPlus/TrackerMultiMarker.h' : No such file or directory
+ Génération de code en cours...
+ 1>Génération du projet "C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj" terminée (build cible(s)) -- ÉCHEC.
+
+ÉCHEC de la build.
+
+Temps écoulé 00:00:04.55
diff --git a/ARMFCaptureD3D/Debug/MFCaptureD3D.unsuccessfulbuild b/ARMFCaptureD3D/Debug/MFCaptureD3D.unsuccessfulbuild
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/MFCaptureD3D.unsuccessfulbuild
diff --git a/ARMFCaptureD3D/Debug/ResolveAssemblyReference.cache b/ARMFCaptureD3D/Debug/ResolveAssemblyReference.cache
new file mode 100644
index 0000000..7b6cf29
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/ResolveAssemblyReference.cache
Binary files differ
diff --git a/ARMFCaptureD3D/Debug/cl.command.1.tlog b/ARMFCaptureD3D/Debug/cl.command.1.tlog
new file mode 100644
index 0000000..c5f57e6
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/cl.command.1.tlog
Binary files differ
diff --git a/ARMFCaptureD3D/Debug/debug.obj b/ARMFCaptureD3D/Debug/debug.obj
new file mode 100644
index 0000000..50898f8
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/debug.obj
Binary files differ
diff --git a/ARMFCaptureD3D/Debug/link-cvtres.read.1.tlog b/ARMFCaptureD3D/Debug/link-cvtres.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link-cvtres.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link-cvtres.write.1.tlog b/ARMFCaptureD3D/Debug/link-cvtres.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link-cvtres.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.1424-cvtres.read.1.tlog b/ARMFCaptureD3D/Debug/link.1424-cvtres.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.1424-cvtres.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.1424-cvtres.write.1.tlog b/ARMFCaptureD3D/Debug/link.1424-cvtres.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.1424-cvtres.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.1424.read.1.tlog b/ARMFCaptureD3D/Debug/link.1424.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.1424.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.1424.write.1.tlog b/ARMFCaptureD3D/Debug/link.1424.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.1424.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.2360-cvtres.read.1.tlog b/ARMFCaptureD3D/Debug/link.2360-cvtres.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.2360-cvtres.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.2360-cvtres.write.1.tlog b/ARMFCaptureD3D/Debug/link.2360-cvtres.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.2360-cvtres.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.2360.read.1.tlog b/ARMFCaptureD3D/Debug/link.2360.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.2360.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.2360.write.1.tlog b/ARMFCaptureD3D/Debug/link.2360.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.2360.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.2364-cvtres.read.1.tlog b/ARMFCaptureD3D/Debug/link.2364-cvtres.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.2364-cvtres.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.2364-cvtres.write.1.tlog b/ARMFCaptureD3D/Debug/link.2364-cvtres.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.2364-cvtres.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.2364.read.1.tlog b/ARMFCaptureD3D/Debug/link.2364.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.2364.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.2364.write.1.tlog b/ARMFCaptureD3D/Debug/link.2364.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.2364.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.2468-cvtres.read.1.tlog b/ARMFCaptureD3D/Debug/link.2468-cvtres.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.2468-cvtres.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.2468-cvtres.write.1.tlog b/ARMFCaptureD3D/Debug/link.2468-cvtres.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.2468-cvtres.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.2468.read.1.tlog b/ARMFCaptureD3D/Debug/link.2468.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.2468.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.2468.write.1.tlog b/ARMFCaptureD3D/Debug/link.2468.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.2468.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.2948-cvtres.read.1.tlog b/ARMFCaptureD3D/Debug/link.2948-cvtres.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.2948-cvtres.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.2948-cvtres.write.1.tlog b/ARMFCaptureD3D/Debug/link.2948-cvtres.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.2948-cvtres.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.2948.read.1.tlog b/ARMFCaptureD3D/Debug/link.2948.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.2948.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.2948.write.1.tlog b/ARMFCaptureD3D/Debug/link.2948.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.2948.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.3132-cvtres.read.1.tlog b/ARMFCaptureD3D/Debug/link.3132-cvtres.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.3132-cvtres.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.3132-cvtres.write.1.tlog b/ARMFCaptureD3D/Debug/link.3132-cvtres.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.3132-cvtres.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.3132.read.1.tlog b/ARMFCaptureD3D/Debug/link.3132.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.3132.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.3132.write.1.tlog b/ARMFCaptureD3D/Debug/link.3132.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.3132.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.3244-cvtres.read.1.tlog b/ARMFCaptureD3D/Debug/link.3244-cvtres.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.3244-cvtres.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.3244-cvtres.write.1.tlog b/ARMFCaptureD3D/Debug/link.3244-cvtres.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.3244-cvtres.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.3244.read.1.tlog b/ARMFCaptureD3D/Debug/link.3244.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.3244.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.3244.write.1.tlog b/ARMFCaptureD3D/Debug/link.3244.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.3244.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.3672-cvtres.read.1.tlog b/ARMFCaptureD3D/Debug/link.3672-cvtres.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.3672-cvtres.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.3672-cvtres.write.1.tlog b/ARMFCaptureD3D/Debug/link.3672-cvtres.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.3672-cvtres.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.3672.read.1.tlog b/ARMFCaptureD3D/Debug/link.3672.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.3672.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.3672.write.1.tlog b/ARMFCaptureD3D/Debug/link.3672.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.3672.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.3720-cvtres.read.1.tlog b/ARMFCaptureD3D/Debug/link.3720-cvtres.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.3720-cvtres.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.3720-cvtres.write.1.tlog b/ARMFCaptureD3D/Debug/link.3720-cvtres.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.3720-cvtres.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.3720.read.1.tlog b/ARMFCaptureD3D/Debug/link.3720.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.3720.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.3720.write.1.tlog b/ARMFCaptureD3D/Debug/link.3720.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.3720.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.3844-cvtres.read.1.tlog b/ARMFCaptureD3D/Debug/link.3844-cvtres.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.3844-cvtres.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.3844-cvtres.write.1.tlog b/ARMFCaptureD3D/Debug/link.3844-cvtres.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.3844-cvtres.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.3844.read.1.tlog b/ARMFCaptureD3D/Debug/link.3844.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.3844.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.3844.write.1.tlog b/ARMFCaptureD3D/Debug/link.3844.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.3844.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.4036-cvtres.read.1.tlog b/ARMFCaptureD3D/Debug/link.4036-cvtres.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.4036-cvtres.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.4036-cvtres.write.1.tlog b/ARMFCaptureD3D/Debug/link.4036-cvtres.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.4036-cvtres.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.4036.read.1.tlog b/ARMFCaptureD3D/Debug/link.4036.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.4036.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.4036.write.1.tlog b/ARMFCaptureD3D/Debug/link.4036.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.4036.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.4200-cvtres.read.1.tlog b/ARMFCaptureD3D/Debug/link.4200-cvtres.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.4200-cvtres.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.4200-cvtres.write.1.tlog b/ARMFCaptureD3D/Debug/link.4200-cvtres.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.4200-cvtres.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.4200.read.1.tlog b/ARMFCaptureD3D/Debug/link.4200.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.4200.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.4200.write.1.tlog b/ARMFCaptureD3D/Debug/link.4200.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.4200.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.4460-cvtres.read.1.tlog b/ARMFCaptureD3D/Debug/link.4460-cvtres.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.4460-cvtres.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.4460-cvtres.write.1.tlog b/ARMFCaptureD3D/Debug/link.4460-cvtres.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.4460-cvtres.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.4460.read.1.tlog b/ARMFCaptureD3D/Debug/link.4460.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.4460.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.4460.write.1.tlog b/ARMFCaptureD3D/Debug/link.4460.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.4460.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.4716-cvtres.read.1.tlog b/ARMFCaptureD3D/Debug/link.4716-cvtres.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.4716-cvtres.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.4716-cvtres.write.1.tlog b/ARMFCaptureD3D/Debug/link.4716-cvtres.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.4716-cvtres.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.4716.read.1.tlog b/ARMFCaptureD3D/Debug/link.4716.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.4716.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.4716.write.1.tlog b/ARMFCaptureD3D/Debug/link.4716.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.4716.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.4948-cvtres.read.1.tlog b/ARMFCaptureD3D/Debug/link.4948-cvtres.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.4948-cvtres.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.4948-cvtres.write.1.tlog b/ARMFCaptureD3D/Debug/link.4948-cvtres.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.4948-cvtres.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.4948.read.1.tlog b/ARMFCaptureD3D/Debug/link.4948.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.4948.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.4948.write.1.tlog b/ARMFCaptureD3D/Debug/link.4948.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.4948.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.5368-cvtres.read.1.tlog b/ARMFCaptureD3D/Debug/link.5368-cvtres.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.5368-cvtres.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.5368-cvtres.write.1.tlog b/ARMFCaptureD3D/Debug/link.5368-cvtres.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.5368-cvtres.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.5368.read.1.tlog b/ARMFCaptureD3D/Debug/link.5368.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.5368.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.5368.write.1.tlog b/ARMFCaptureD3D/Debug/link.5368.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.5368.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.5624-cvtres.read.1.tlog b/ARMFCaptureD3D/Debug/link.5624-cvtres.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.5624-cvtres.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.5624-cvtres.write.1.tlog b/ARMFCaptureD3D/Debug/link.5624-cvtres.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.5624-cvtres.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.5624.read.1.tlog b/ARMFCaptureD3D/Debug/link.5624.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.5624.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.5624.write.1.tlog b/ARMFCaptureD3D/Debug/link.5624.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.5624.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.5656-cvtres.read.1.tlog b/ARMFCaptureD3D/Debug/link.5656-cvtres.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.5656-cvtres.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.5656-cvtres.write.1.tlog b/ARMFCaptureD3D/Debug/link.5656-cvtres.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.5656-cvtres.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.5656.read.1.tlog b/ARMFCaptureD3D/Debug/link.5656.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.5656.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.5656.write.1.tlog b/ARMFCaptureD3D/Debug/link.5656.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.5656.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.5752-cvtres.read.1.tlog b/ARMFCaptureD3D/Debug/link.5752-cvtres.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.5752-cvtres.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.5752-cvtres.write.1.tlog b/ARMFCaptureD3D/Debug/link.5752-cvtres.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.5752-cvtres.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.5752.read.1.tlog b/ARMFCaptureD3D/Debug/link.5752.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.5752.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.5752.write.1.tlog b/ARMFCaptureD3D/Debug/link.5752.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.5752.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.5868-cvtres.read.1.tlog b/ARMFCaptureD3D/Debug/link.5868-cvtres.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.5868-cvtres.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.5868-cvtres.write.1.tlog b/ARMFCaptureD3D/Debug/link.5868-cvtres.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.5868-cvtres.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.5868.read.1.tlog b/ARMFCaptureD3D/Debug/link.5868.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.5868.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.5868.write.1.tlog b/ARMFCaptureD3D/Debug/link.5868.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.5868.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.6132-cvtres.read.1.tlog b/ARMFCaptureD3D/Debug/link.6132-cvtres.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.6132-cvtres.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.6132-cvtres.write.1.tlog b/ARMFCaptureD3D/Debug/link.6132-cvtres.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.6132-cvtres.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.6132.read.1.tlog b/ARMFCaptureD3D/Debug/link.6132.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.6132.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.6132.write.1.tlog b/ARMFCaptureD3D/Debug/link.6132.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.6132.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.6264-cvtres.read.1.tlog b/ARMFCaptureD3D/Debug/link.6264-cvtres.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.6264-cvtres.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.6264-cvtres.write.1.tlog b/ARMFCaptureD3D/Debug/link.6264-cvtres.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.6264-cvtres.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.6264.read.1.tlog b/ARMFCaptureD3D/Debug/link.6264.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.6264.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.6264.write.1.tlog b/ARMFCaptureD3D/Debug/link.6264.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.6264.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.6468-cvtres.read.1.tlog b/ARMFCaptureD3D/Debug/link.6468-cvtres.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.6468-cvtres.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.6468-cvtres.write.1.tlog b/ARMFCaptureD3D/Debug/link.6468-cvtres.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.6468-cvtres.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.6468.read.1.tlog b/ARMFCaptureD3D/Debug/link.6468.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.6468.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.6468.write.1.tlog b/ARMFCaptureD3D/Debug/link.6468.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.6468.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.6716-cvtres.read.1.tlog b/ARMFCaptureD3D/Debug/link.6716-cvtres.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.6716-cvtres.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.6716-cvtres.write.1.tlog b/ARMFCaptureD3D/Debug/link.6716-cvtres.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.6716-cvtres.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.6716.read.1.tlog b/ARMFCaptureD3D/Debug/link.6716.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.6716.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.6716.write.1.tlog b/ARMFCaptureD3D/Debug/link.6716.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.6716.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.6724-cvtres.read.1.tlog b/ARMFCaptureD3D/Debug/link.6724-cvtres.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.6724-cvtres.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.6724-cvtres.write.1.tlog b/ARMFCaptureD3D/Debug/link.6724-cvtres.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.6724-cvtres.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.6724.read.1.tlog b/ARMFCaptureD3D/Debug/link.6724.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.6724.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.6724.write.1.tlog b/ARMFCaptureD3D/Debug/link.6724.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.6724.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.6772-cvtres.read.1.tlog b/ARMFCaptureD3D/Debug/link.6772-cvtres.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.6772-cvtres.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.6772-cvtres.write.1.tlog b/ARMFCaptureD3D/Debug/link.6772-cvtres.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.6772-cvtres.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.6772.read.1.tlog b/ARMFCaptureD3D/Debug/link.6772.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.6772.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.6772.write.1.tlog b/ARMFCaptureD3D/Debug/link.6772.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.6772.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.6844-cvtres.read.1.tlog b/ARMFCaptureD3D/Debug/link.6844-cvtres.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.6844-cvtres.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.6844-cvtres.write.1.tlog b/ARMFCaptureD3D/Debug/link.6844-cvtres.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.6844-cvtres.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.6844.read.1.tlog b/ARMFCaptureD3D/Debug/link.6844.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.6844.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.6844.write.1.tlog b/ARMFCaptureD3D/Debug/link.6844.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.6844.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.6928-cvtres.read.1.tlog b/ARMFCaptureD3D/Debug/link.6928-cvtres.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.6928-cvtres.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.6928-cvtres.write.1.tlog b/ARMFCaptureD3D/Debug/link.6928-cvtres.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.6928-cvtres.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.6928.read.1.tlog b/ARMFCaptureD3D/Debug/link.6928.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.6928.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.6928.write.1.tlog b/ARMFCaptureD3D/Debug/link.6928.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.6928.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.6968-cvtres.read.1.tlog b/ARMFCaptureD3D/Debug/link.6968-cvtres.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.6968-cvtres.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.6968-cvtres.write.1.tlog b/ARMFCaptureD3D/Debug/link.6968-cvtres.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.6968-cvtres.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.6968.read.1.tlog b/ARMFCaptureD3D/Debug/link.6968.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.6968.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.6968.write.1.tlog b/ARMFCaptureD3D/Debug/link.6968.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.6968.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.6996-cvtres.read.1.tlog b/ARMFCaptureD3D/Debug/link.6996-cvtres.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.6996-cvtres.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.6996-cvtres.write.1.tlog b/ARMFCaptureD3D/Debug/link.6996-cvtres.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.6996-cvtres.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.6996.read.1.tlog b/ARMFCaptureD3D/Debug/link.6996.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.6996.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.6996.write.1.tlog b/ARMFCaptureD3D/Debug/link.6996.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.6996.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.7096-cvtres.read.1.tlog b/ARMFCaptureD3D/Debug/link.7096-cvtres.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.7096-cvtres.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.7096-cvtres.write.1.tlog b/ARMFCaptureD3D/Debug/link.7096-cvtres.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.7096-cvtres.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.7096.read.1.tlog b/ARMFCaptureD3D/Debug/link.7096.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.7096.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.7096.write.1.tlog b/ARMFCaptureD3D/Debug/link.7096.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.7096.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.7232-cvtres.read.1.tlog b/ARMFCaptureD3D/Debug/link.7232-cvtres.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.7232-cvtres.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.7232-cvtres.write.1.tlog b/ARMFCaptureD3D/Debug/link.7232-cvtres.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.7232-cvtres.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.7232.read.1.tlog b/ARMFCaptureD3D/Debug/link.7232.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.7232.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.7232.write.1.tlog b/ARMFCaptureD3D/Debug/link.7232.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.7232.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.7240-cvtres.read.1.tlog b/ARMFCaptureD3D/Debug/link.7240-cvtres.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.7240-cvtres.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.7240-cvtres.write.1.tlog b/ARMFCaptureD3D/Debug/link.7240-cvtres.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.7240-cvtres.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.7240.read.1.tlog b/ARMFCaptureD3D/Debug/link.7240.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.7240.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.7240.write.1.tlog b/ARMFCaptureD3D/Debug/link.7240.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.7240.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.7416-cvtres.read.1.tlog b/ARMFCaptureD3D/Debug/link.7416-cvtres.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.7416-cvtres.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.7416-cvtres.write.1.tlog b/ARMFCaptureD3D/Debug/link.7416-cvtres.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.7416-cvtres.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.7416.read.1.tlog b/ARMFCaptureD3D/Debug/link.7416.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.7416.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.7416.write.1.tlog b/ARMFCaptureD3D/Debug/link.7416.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.7416.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.7960-cvtres.read.1.tlog b/ARMFCaptureD3D/Debug/link.7960-cvtres.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.7960-cvtres.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.7960-cvtres.write.1.tlog b/ARMFCaptureD3D/Debug/link.7960-cvtres.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.7960-cvtres.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.7960.read.1.tlog b/ARMFCaptureD3D/Debug/link.7960.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.7960.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.7960.write.1.tlog b/ARMFCaptureD3D/Debug/link.7960.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.7960.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Debug/link.command.1.tlog b/ARMFCaptureD3D/Debug/link.command.1.tlog
new file mode 100644
index 0000000..274a53c
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.command.1.tlog
Binary files differ
diff --git a/ARMFCaptureD3D/Debug/link.read.1.tlog b/ARMFCaptureD3D/Debug/link.read.1.tlog
new file mode 100644
index 0000000..c0d2402
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.read.1.tlog
Binary files differ
diff --git a/ARMFCaptureD3D/Debug/link.write.1.tlog b/ARMFCaptureD3D/Debug/link.write.1.tlog
new file mode 100644
index 0000000..9e8a237
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/link.write.1.tlog
Binary files differ
diff --git a/ARMFCaptureD3D/Debug/mt.command.1.tlog b/ARMFCaptureD3D/Debug/mt.command.1.tlog
new file mode 100644
index 0000000..4db1601
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/mt.command.1.tlog
Binary files differ
diff --git a/ARMFCaptureD3D/Debug/mt.read.1.tlog b/ARMFCaptureD3D/Debug/mt.read.1.tlog
new file mode 100644
index 0000000..b47fe1c
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/mt.read.1.tlog
Binary files differ
diff --git a/ARMFCaptureD3D/Debug/mt.write.1.tlog b/ARMFCaptureD3D/Debug/mt.write.1.tlog
new file mode 100644
index 0000000..d480324
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/mt.write.1.tlog
Binary files differ
diff --git a/ARMFCaptureD3D/Debug/options.obj b/ARMFCaptureD3D/Debug/options.obj
new file mode 100644
index 0000000..3326781
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/options.obj
Binary files differ
diff --git a/ARMFCaptureD3D/Debug/pcre.bsc b/ARMFCaptureD3D/Debug/pcre.bsc
new file mode 100644
index 0000000..4e253ae
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/pcre.bsc
Binary files differ
diff --git a/ARMFCaptureD3D/Debug/pcre.dll b/ARMFCaptureD3D/Debug/pcre.dll
new file mode 100644
index 0000000..d999c76
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/pcre.dll
Binary files differ
diff --git a/ARMFCaptureD3D/Debug/pcre.exp b/ARMFCaptureD3D/Debug/pcre.exp
new file mode 100644
index 0000000..ed22aa8
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/pcre.exp
Binary files differ
diff --git a/ARMFCaptureD3D/Debug/pcre.ilk b/ARMFCaptureD3D/Debug/pcre.ilk
new file mode 100644
index 0000000..ceba57f
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/pcre.ilk
Binary files differ
diff --git a/ARMFCaptureD3D/Debug/pcre.lib b/ARMFCaptureD3D/Debug/pcre.lib
new file mode 100644
index 0000000..486e22f
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/pcre.lib
Binary files differ
diff --git a/ARMFCaptureD3D/Debug/pcre.pdb b/ARMFCaptureD3D/Debug/pcre.pdb
new file mode 100644
index 0000000..37867b3
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/pcre.pdb
Binary files differ
diff --git a/ARMFCaptureD3D/Debug/rc.command.1.tlog b/ARMFCaptureD3D/Debug/rc.command.1.tlog
new file mode 100644
index 0000000..62ed914
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/rc.command.1.tlog
Binary files differ
diff --git a/ARMFCaptureD3D/Debug/rc.read.1.tlog b/ARMFCaptureD3D/Debug/rc.read.1.tlog
new file mode 100644
index 0000000..c8c9c4c
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/rc.read.1.tlog
Binary files differ
diff --git a/ARMFCaptureD3D/Debug/rc.write.1.tlog b/ARMFCaptureD3D/Debug/rc.write.1.tlog
new file mode 100644
index 0000000..bc88c4d
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/rc.write.1.tlog
Binary files differ
diff --git a/ARMFCaptureD3D/Debug/sgetopt.obj b/ARMFCaptureD3D/Debug/sgetopt.obj
new file mode 100644
index 0000000..6442835
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/sgetopt.obj
Binary files differ
diff --git a/ARMFCaptureD3D/Debug/vc100.idb b/ARMFCaptureD3D/Debug/vc100.idb
new file mode 100644
index 0000000..d76768d
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/vc100.idb
Binary files differ
diff --git a/ARMFCaptureD3D/Debug/vc100.pdb b/ARMFCaptureD3D/Debug/vc100.pdb
new file mode 100644
index 0000000..cfc13ba
--- /dev/null
+++ b/ARMFCaptureD3D/Debug/vc100.pdb
Binary files differ
diff --git a/ARMFCaptureD3D/MFCaptureD3D.aps b/ARMFCaptureD3D/MFCaptureD3D.aps
new file mode 100644
index 0000000..729df1b
--- /dev/null
+++ b/ARMFCaptureD3D/MFCaptureD3D.aps
Binary files differ
diff --git a/ARMFCaptureD3D/MFCaptureD3D.sdf b/ARMFCaptureD3D/MFCaptureD3D.sdf
new file mode 100644
index 0000000..b955825
--- /dev/null
+++ b/ARMFCaptureD3D/MFCaptureD3D.sdf
Binary files differ
diff --git a/ARMFCaptureD3D/MFCaptureD3D.vcproj b/ARMFCaptureD3D/MFCaptureD3D.vcproj
new file mode 100644
index 0000000..443d66c
--- /dev/null
+++ b/ARMFCaptureD3D/MFCaptureD3D.vcproj
@@ -0,0 +1,393 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9.00"
+ Name="MFCaptureD3D"
+ ProjectGUID="{42CC2BCD-AAD2-4C3C-87BB-0B42F2848E17}"
+ RootNamespace="MFCaptureD3D"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="131072"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ <Platform
+ Name="x64"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+ IntermediateDirectory="$(ConfigurationName)"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="0"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ WarnAsError="true"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="mfplat.lib mf.lib mfreadwrite.lib mfuuid.lib d3d9.lib shlwapi.lib"
+ LinkIncremental="2"
+ GenerateDebugInformation="true"
+ SubSystem="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ 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="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
+ IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
+ ConfigurationType="1"
+ CharacterSet="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TargetEnvironment="3"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="0"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ WarnAsError="true"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="mfplat.lib mf.lib mfreadwrite.lib mfuuid.lib d3d9.lib shlwapi.lib"
+ LinkIncremental="2"
+ GenerateDebugInformation="true"
+ SubSystem="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ 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="$(SolutionDir)$(ConfigurationName)"
+ IntermediateDirectory="$(ConfigurationName)"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ WarnAsError="true"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="mfplat.lib mf.lib mfreadwrite.lib mfuuid.lib d3d9.lib shlwapi.lib"
+ LinkIncremental="1"
+ GenerateDebugInformation="true"
+ SubSystem="2"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ 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="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
+ IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
+ ConfigurationType="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TargetEnvironment="3"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS"
+ RuntimeLibrary="2"
+ UsePrecompiledHeader="0"
+ WarningLevel="4"
+ WarnAsError="true"
+ Detect64BitPortabilityProblems="false"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="mfplat.lib mf.lib mfreadwrite.lib mfuuid.lib d3d9.lib shlwapi.lib"
+ LinkIncremental="1"
+ GenerateDebugInformation="true"
+ SubSystem="2"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ 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="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\device.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\preview.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\winmain.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath=".\BufferLock.h"
+ >
+ </File>
+ <File
+ RelativePath=".\device.h"
+ >
+ </File>
+ <File
+ RelativePath=".\MFCaptureD3D.h"
+ >
+ </File>
+ <File
+ RelativePath=".\preview.h"
+ >
+ </File>
+ <File
+ RelativePath=".\resource.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ <File
+ RelativePath=".\MFCaptureD3D.rc"
+ >
+ </File>
+ </Filter>
+ <File
+ RelativePath=".\readme.txt"
+ >
+ </File>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/ARMFCaptureD3D/MFCaptureD3D.vcxproj b/ARMFCaptureD3D/MFCaptureD3D.vcxproj
new file mode 100644
index 0000000..a6bed4a
--- /dev/null
+++ b/ARMFCaptureD3D/MFCaptureD3D.vcxproj
@@ -0,0 +1,219 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{42CC2BCD-AAD2-4C3C-87BB-0B42F2848E17}</ProjectGuid>
+ <RootNamespace>MFCaptureD3D</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ <ProjectName>ARMFCaptureD3D</ProjectName>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
+ <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
+ <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\$(Configuration)\</IntDir>
+ <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <TreatWarningAsError>true</TreatWarningAsError>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>mfplat.lib;mf.lib;mfreadwrite.lib;mfuuid.lib;d3d9.lib;shlwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Windows</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <Midl>
+ <TargetEnvironment>X64</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;DX9;_USE_DOUBLE_;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <TreatWarningAsError>false</TreatWarningAsError>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <AdditionalIncludeDirectories>C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARToolKitPlus-2.2.1\include;C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\Bus\Ivy;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>Comctl32.lib;mfplat.lib;mf.lib;mfreadwrite.lib;mfuuid.lib;d3d9.lib;shlwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Windows</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX64</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <TreatWarningAsError>true</TreatWarningAsError>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>mfplat.lib;mf.lib;mfreadwrite.lib;mfuuid.lib;d3d9.lib;shlwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Windows</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <Midl>
+ <TargetEnvironment>X64</TargetEnvironment>
+ </Midl>
+ <ClCompile>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;DX9;_USE_DOUBLE_;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <PrecompiledHeader>
+ </PrecompiledHeader>
+ <WarningLevel>Level4</WarningLevel>
+ <TreatWarningAsError>false</TreatWarningAsError>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <AdditionalIncludeDirectories>C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARToolKitPlus-2.2.1\include;C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\Bus\Ivy;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>Comctl32.lib;mfplat.lib;mf.lib;mfreadwrite.lib;mfuuid.lib;d3d9.lib;shlwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Windows</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX64</TargetMachine>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="ARAnalyse.cpp" />
+ <ClCompile Include="Calibration.cpp" />
+ <ClCompile Include="ConfigFile\ConfigFile.cpp" />
+ <ClCompile Include="debug.cpp" />
+ <ClCompile Include="device.cpp" />
+ <ClCompile Include="MinMaxAvg.cpp" />
+ <ClCompile Include="options.cpp" />
+ <ClCompile Include="preview.cpp" />
+ <ClCompile Include="winmain.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="ARAnalyse.h" />
+ <ClInclude Include="BufferLock.h" />
+ <ClInclude Include="Calibration.h" />
+ <ClInclude Include="ConfigFile\ConfigFile.h" />
+ <ClInclude Include="debug.h" />
+ <ClInclude Include="device.h" />
+ <ClInclude Include="MFCaptureD3D.h" />
+ <ClInclude Include="MinMaxAvg.h" />
+ <ClInclude Include="options.h" />
+ <ClInclude Include="preview.h" />
+ <ClInclude Include="resource.h" />
+ </ItemGroup>
+ <ItemGroup>
+ <ResourceCompile Include="ARMFCaptureD3D.rc" />
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="readme.txt" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\..\pcre\pcre.vcxproj">
+ <Project>{d79fc143-498e-4342-b2c7-bdad1b8d0e6b}</Project>
+ </ProjectReference>
+ <ProjectReference Include="..\ArToolKitPlus\ARToolKitPlus.vcxproj">
+ <Project>{ccf160af-4f7e-8012-1926-ac4c742cc14f}</Project>
+ </ProjectReference>
+ <ProjectReference Include="..\Bus\Ivy\Ivy.vcxproj">
+ <Project>{9818d652-cc05-463e-880d-afca2c7bfabe}</Project>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/ARMFCaptureD3D/MFCaptureD3D.vcxproj.filters b/ARMFCaptureD3D/MFCaptureD3D.vcxproj.filters
new file mode 100644
index 0000000..568a0f9
--- /dev/null
+++ b/ARMFCaptureD3D/MFCaptureD3D.vcxproj.filters
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="device.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="preview.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="winmain.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="options.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="ARAnalyse.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="debug.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="MinMaxAvg.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="Calibration.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="ConfigFile\ConfigFile.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="BufferLock.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="device.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="MFCaptureD3D.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="preview.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="resource.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="options.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="ARAnalyse.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="debug.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="MinMaxAvg.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="Calibration.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="ConfigFile\ConfigFile.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="readme.txt" />
+ </ItemGroup>
+ <ItemGroup>
+ <ResourceCompile Include="ARMFCaptureD3D.rc">
+ <Filter>Resource Files</Filter>
+ </ResourceCompile>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/ARMFCaptureD3D/MFCaptureD3D.vcxproj.user b/ARMFCaptureD3D/MFCaptureD3D.vcxproj.user
new file mode 100644
index 0000000..21b5a83
--- /dev/null
+++ b/ARMFCaptureD3D/MFCaptureD3D.vcxproj.user
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <LocalDebuggerCommandArguments>-cam Logitech -f 24</LocalDebuggerCommandArguments>
+ <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <LocalDebuggerCommandArguments>-f 24</LocalDebuggerCommandArguments>
+ <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <LocalDebuggerCommandArguments>-cam C910 -i 1 -f 24</LocalDebuggerCommandArguments>
+ <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <LocalDebuggerCommandArguments>-cam Logitech -f 24</LocalDebuggerCommandArguments>
+ <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
+ </PropertyGroup>
+</Project> \ No newline at end of file
diff --git a/ARMFCaptureD3D/MinMaxAvg.cpp b/ARMFCaptureD3D/MinMaxAvg.cpp
new file mode 100644
index 0000000..2cd21b0
--- /dev/null
+++ b/ARMFCaptureD3D/MinMaxAvg.cpp
@@ -0,0 +1,31 @@
+#include <float.h>
+#include "MinMaxAvg.h"
+
+
+MinMaxAvg::MinMaxAvg(void)
+{
+ Raz();
+}
+
+
+MinMaxAvg::~MinMaxAvg(void)
+{
+}
+void MinMaxAvg::Raz()
+{
+ min = FLT_MAX;
+ max = FLT_MIN;
+ sum = 0;
+ count = 0;
+}
+void MinMaxAvg::SetValue( float value )
+{
+ if ( value > max ) max = value;
+ else if ( value < min ) min = value;
+ sum += value;
+ count++;
+}
+float MinMaxAvg::Avg()
+{
+ return sum / count;
+} \ No newline at end of file
diff --git a/ARMFCaptureD3D/MinMaxAvg.h b/ARMFCaptureD3D/MinMaxAvg.h
new file mode 100644
index 0000000..9413ebc
--- /dev/null
+++ b/ARMFCaptureD3D/MinMaxAvg.h
@@ -0,0 +1,18 @@
+#pragma once
+class MinMaxAvg
+{
+protected:
+ float min;
+ float max;
+ float sum;
+ int count;
+public:
+ MinMaxAvg(void);
+ ~MinMaxAvg(void);
+ void Raz();
+ void SetValue( float value );
+ float Min() { return min; };
+ float Max() { return max; };
+ float Avg();
+};
+
diff --git a/ARMFCaptureD3D/Release/ARMFCaptureD3D.exe b/ARMFCaptureD3D/Release/ARMFCaptureD3D.exe
new file mode 100644
index 0000000..79f5536
--- /dev/null
+++ b/ARMFCaptureD3D/Release/ARMFCaptureD3D.exe
Binary files differ
diff --git a/ARMFCaptureD3D/Release/ARMFCaptureD3D.exe.intermediate.manifest b/ARMFCaptureD3D/Release/ARMFCaptureD3D.exe.intermediate.manifest
new file mode 100644
index 0000000..43cc1f5
--- /dev/null
+++ b/ARMFCaptureD3D/Release/ARMFCaptureD3D.exe.intermediate.manifest
@@ -0,0 +1,15 @@
+<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
+<assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'>
+ <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
+ <security>
+ <requestedPrivileges>
+ <requestedExecutionLevel level='asInvoker' uiAccess='false' />
+ </requestedPrivileges>
+ </security>
+ </trustInfo>
+ <dependency>
+ <dependentAssembly>
+ <assemblyIdentity type='Win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*' />
+ </dependentAssembly>
+ </dependency>
+</assembly>
diff --git a/ARMFCaptureD3D/Release/ARMFCaptureD3D.exp b/ARMFCaptureD3D/Release/ARMFCaptureD3D.exp
new file mode 100644
index 0000000..407bfde
--- /dev/null
+++ b/ARMFCaptureD3D/Release/ARMFCaptureD3D.exp
Binary files differ
diff --git a/ARMFCaptureD3D/Release/ARMFCaptureD3D.lastbuildstate b/ARMFCaptureD3D/Release/ARMFCaptureD3D.lastbuildstate
new file mode 100644
index 0000000..28d3bd1
--- /dev/null
+++ b/ARMFCaptureD3D/Release/ARMFCaptureD3D.lastbuildstate
@@ -0,0 +1,2 @@
+#v4.0:v100
+Release|Win32|C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\|
diff --git a/ARMFCaptureD3D/Release/ARMFCaptureD3D.lib b/ARMFCaptureD3D/Release/ARMFCaptureD3D.lib
new file mode 100644
index 0000000..3c23379
--- /dev/null
+++ b/ARMFCaptureD3D/Release/ARMFCaptureD3D.lib
Binary files differ
diff --git a/ARMFCaptureD3D/Release/ARMFCaptureD3D.pdb b/ARMFCaptureD3D/Release/ARMFCaptureD3D.pdb
new file mode 100644
index 0000000..71d1c8f
--- /dev/null
+++ b/ARMFCaptureD3D/Release/ARMFCaptureD3D.pdb
Binary files differ
diff --git a/ARMFCaptureD3D/Release/ARMFCaptureD3D.res b/ARMFCaptureD3D/Release/ARMFCaptureD3D.res
new file mode 100644
index 0000000..0740831
--- /dev/null
+++ b/ARMFCaptureD3D/Release/ARMFCaptureD3D.res
Binary files differ
diff --git a/ARMFCaptureD3D/Release/ARMFCaptureD3D.write.1.tlog b/ARMFCaptureD3D/Release/ARMFCaptureD3D.write.1.tlog
new file mode 100644
index 0000000..dce58b3
--- /dev/null
+++ b/ARMFCaptureD3D/Release/ARMFCaptureD3D.write.1.tlog
@@ -0,0 +1,15 @@
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Release\ARMFCaptureD3D.exp
diff --git a/ARMFCaptureD3D/Release/ARToolKitPlus.dll b/ARMFCaptureD3D/Release/ARToolKitPlus.dll
new file mode 100644
index 0000000..cd21182
--- /dev/null
+++ b/ARMFCaptureD3D/Release/ARToolKitPlus.dll
Binary files differ
diff --git a/ARMFCaptureD3D/Release/ARToolKitPlus.exp b/ARMFCaptureD3D/Release/ARToolKitPlus.exp
new file mode 100644
index 0000000..4e213b7
--- /dev/null
+++ b/ARMFCaptureD3D/Release/ARToolKitPlus.exp
Binary files differ
diff --git a/ARMFCaptureD3D/Release/ARToolKitPlus.lib b/ARMFCaptureD3D/Release/ARToolKitPlus.lib
new file mode 100644
index 0000000..ce78e1a
--- /dev/null
+++ b/ARMFCaptureD3D/Release/ARToolKitPlus.lib
Binary files differ
diff --git a/ARMFCaptureD3D/Release/CL.read.1.tlog b/ARMFCaptureD3D/Release/CL.read.1.tlog
new file mode 100644
index 0000000..08dbaec
--- /dev/null
+++ b/ARMFCaptureD3D/Release/CL.read.1.tlog
Binary files differ
diff --git a/ARMFCaptureD3D/Release/CL.write.1.tlog b/ARMFCaptureD3D/Release/CL.write.1.tlog
new file mode 100644
index 0000000..4489034
--- /dev/null
+++ b/ARMFCaptureD3D/Release/CL.write.1.tlog
Binary files differ
diff --git a/ARMFCaptureD3D/Release/Calibration.obj b/ARMFCaptureD3D/Release/Calibration.obj
new file mode 100644
index 0000000..7a39050
--- /dev/null
+++ b/ARMFCaptureD3D/Release/Calibration.obj
Binary files differ
diff --git a/ARMFCaptureD3D/Release/ConfigFile.obj b/ARMFCaptureD3D/Release/ConfigFile.obj
new file mode 100644
index 0000000..0ff4438
--- /dev/null
+++ b/ARMFCaptureD3D/Release/ConfigFile.obj
Binary files differ
diff --git a/ARMFCaptureD3D/Release/MFCaptureD3D.log b/ARMFCaptureD3D/Release/MFCaptureD3D.log
new file mode 100644
index 0000000..b08c281
--- /dev/null
+++ b/ARMFCaptureD3D/Release/MFCaptureD3D.log
@@ -0,0 +1,19 @@
+La génération a démarré 05/07/2011 09:47:00.
+ 1>Projet "C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj" sur le nœud 3 (build cible(s)).
+ 1>InitializeBuildStatus:
+ Création de "Release\ARMFCaptureD3D.unsuccessfulbuild", car "AlwaysCreate" a été spécifié.
+ ClCompile:
+ Toutes les sorties sont Ă  jour.
+ ResourceCompile:
+ Toutes les sorties sont Ă  jour.
+ Link:
+ Toutes les sorties sont Ă  jour.
+ MFCaptureD3D.vcxproj -> C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\Release\ARMFCaptureD3D.exe
+ FinalizeBuildStatus:
+ Suppression du fichier "Release\ARMFCaptureD3D.unsuccessfulbuild".
+ Mise Ă  jour de l'horodatage "Release\ARMFCaptureD3D.lastbuildstate".
+ 1>Génération du projet "C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj" terminée (build cible(s)).
+
+La génération a réussi.
+
+Temps écoulé 00:00:00.07
diff --git a/ARMFCaptureD3D/Release/cl.command.1.tlog b/ARMFCaptureD3D/Release/cl.command.1.tlog
new file mode 100644
index 0000000..f2e48dd
--- /dev/null
+++ b/ARMFCaptureD3D/Release/cl.command.1.tlog
Binary files differ
diff --git a/ARMFCaptureD3D/Release/debug.obj b/ARMFCaptureD3D/Release/debug.obj
new file mode 100644
index 0000000..741871c
--- /dev/null
+++ b/ARMFCaptureD3D/Release/debug.obj
Binary files differ
diff --git a/ARMFCaptureD3D/Release/device.obj b/ARMFCaptureD3D/Release/device.obj
new file mode 100644
index 0000000..5c73b62
--- /dev/null
+++ b/ARMFCaptureD3D/Release/device.obj
Binary files differ
diff --git a/ARMFCaptureD3D/Release/link-cvtres.read.1.tlog b/ARMFCaptureD3D/Release/link-cvtres.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Release/link-cvtres.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Release/link-cvtres.write.1.tlog b/ARMFCaptureD3D/Release/link-cvtres.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/Release/link-cvtres.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/Release/link.command.1.tlog b/ARMFCaptureD3D/Release/link.command.1.tlog
new file mode 100644
index 0000000..5e0abda
--- /dev/null
+++ b/ARMFCaptureD3D/Release/link.command.1.tlog
Binary files differ
diff --git a/ARMFCaptureD3D/Release/link.read.1.tlog b/ARMFCaptureD3D/Release/link.read.1.tlog
new file mode 100644
index 0000000..634fefb
--- /dev/null
+++ b/ARMFCaptureD3D/Release/link.read.1.tlog
Binary files differ
diff --git a/ARMFCaptureD3D/Release/link.write.1.tlog b/ARMFCaptureD3D/Release/link.write.1.tlog
new file mode 100644
index 0000000..7c837ef
--- /dev/null
+++ b/ARMFCaptureD3D/Release/link.write.1.tlog
Binary files differ
diff --git a/ARMFCaptureD3D/Release/mt.command.1.tlog b/ARMFCaptureD3D/Release/mt.command.1.tlog
new file mode 100644
index 0000000..3f3b404
--- /dev/null
+++ b/ARMFCaptureD3D/Release/mt.command.1.tlog
Binary files differ
diff --git a/ARMFCaptureD3D/Release/mt.read.1.tlog b/ARMFCaptureD3D/Release/mt.read.1.tlog
new file mode 100644
index 0000000..a586008
--- /dev/null
+++ b/ARMFCaptureD3D/Release/mt.read.1.tlog
Binary files differ
diff --git a/ARMFCaptureD3D/Release/mt.write.1.tlog b/ARMFCaptureD3D/Release/mt.write.1.tlog
new file mode 100644
index 0000000..74c551e
--- /dev/null
+++ b/ARMFCaptureD3D/Release/mt.write.1.tlog
Binary files differ
diff --git a/ARMFCaptureD3D/Release/options.obj b/ARMFCaptureD3D/Release/options.obj
new file mode 100644
index 0000000..048a450
--- /dev/null
+++ b/ARMFCaptureD3D/Release/options.obj
Binary files differ
diff --git a/ARMFCaptureD3D/Release/preview.obj b/ARMFCaptureD3D/Release/preview.obj
new file mode 100644
index 0000000..969e7cb
--- /dev/null
+++ b/ARMFCaptureD3D/Release/preview.obj
Binary files differ
diff --git a/ARMFCaptureD3D/Release/rc.command.1.tlog b/ARMFCaptureD3D/Release/rc.command.1.tlog
new file mode 100644
index 0000000..7fb3efa
--- /dev/null
+++ b/ARMFCaptureD3D/Release/rc.command.1.tlog
Binary files differ
diff --git a/ARMFCaptureD3D/Release/rc.read.1.tlog b/ARMFCaptureD3D/Release/rc.read.1.tlog
new file mode 100644
index 0000000..3fc68da
--- /dev/null
+++ b/ARMFCaptureD3D/Release/rc.read.1.tlog
Binary files differ
diff --git a/ARMFCaptureD3D/Release/rc.write.1.tlog b/ARMFCaptureD3D/Release/rc.write.1.tlog
new file mode 100644
index 0000000..bc7b925
--- /dev/null
+++ b/ARMFCaptureD3D/Release/rc.write.1.tlog
Binary files differ
diff --git a/ARMFCaptureD3D/Release/vc100.pdb b/ARMFCaptureD3D/Release/vc100.pdb
new file mode 100644
index 0000000..2f4203a
--- /dev/null
+++ b/ARMFCaptureD3D/Release/vc100.pdb
Binary files differ
diff --git a/ARMFCaptureD3D/Release/winmain.obj b/ARMFCaptureD3D/Release/winmain.obj
new file mode 100644
index 0000000..4593c9b
--- /dev/null
+++ b/ARMFCaptureD3D/Release/winmain.obj
Binary files differ
diff --git a/ARMFCaptureD3D/Setup/Release/Install ARIvy X64.msi b/ARMFCaptureD3D/Setup/Release/Install ARIvy X64.msi
new file mode 100644
index 0000000..6a547be
--- /dev/null
+++ b/ARMFCaptureD3D/Setup/Release/Install ARIvy X64.msi
Binary files differ
diff --git a/ARMFCaptureD3D/Setup/Release/setup.exe b/ARMFCaptureD3D/Setup/Release/setup.exe
new file mode 100644
index 0000000..22ebaf6
--- /dev/null
+++ b/ARMFCaptureD3D/Setup/Release/setup.exe
Binary files differ
diff --git a/ARMFCaptureD3D/Setup/Setup.vdproj b/ARMFCaptureD3D/Setup/Setup.vdproj
new file mode 100644
index 0000000..f482641
--- /dev/null
+++ b/ARMFCaptureD3D/Setup/Setup.vdproj
@@ -0,0 +1,1009 @@
+"DeployProject"
+{
+"VSVersion" = "3:800"
+"ProjectType" = "8:{978C614F-708E-4E1A-B201-565925725DBA}"
+"IsWebType" = "8:FALSE"
+"ProjectName" = "8:Install ARIvy X64"
+"LanguageId" = "3:1036"
+"CodePage" = "3:1252"
+"UILanguageId" = "3:1036"
+"SccProjectName" = "8:"
+"SccLocalPath" = "8:"
+"SccAuxPath" = "8:"
+"SccProvider" = "8:"
+ "Hierarchy"
+ {
+ "Entry"
+ {
+ "MsmKey" = "8:_03BE07867632004F18FE8CAF0A618CD6"
+ "OwnerKey" = "8:_D026679728EF474AAF107EA4BE481FA4"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
+ "MsmKey" = "8:_2893F9502BF64B19AA4C6C960CE69331"
+ "OwnerKey" = "8:_UNDEFINED"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
+ "MsmKey" = "8:_3DEBF6D0CCF5FEAAAA509CB45B7D7FD2"
+ "OwnerKey" = "8:_2893F9502BF64B19AA4C6C960CE69331"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
+ "MsmKey" = "8:_4077B199D26F455E93767B320FB454E4"
+ "OwnerKey" = "8:_UNDEFINED"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
+ "MsmKey" = "8:_60653F90D8C54EE6B6A3CC166B63F51D"
+ "OwnerKey" = "8:_2893F9502BF64B19AA4C6C960CE69331"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
+ "MsmKey" = "8:_60653F90D8C54EE6B6A3CC166B63F51D"
+ "OwnerKey" = "8:_D026679728EF474AAF107EA4BE481FA4"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
+ "MsmKey" = "8:_60653F90D8C54EE6B6A3CC166B63F51D"
+ "OwnerKey" = "8:_6A5948EA3E9A4953AF64CEE342F4BE14"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
+ "MsmKey" = "8:_60653F90D8C54EE6B6A3CC166B63F51D"
+ "OwnerKey" = "8:_4077B199D26F455E93767B320FB454E4"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
+ "MsmKey" = "8:_6A5948EA3E9A4953AF64CEE342F4BE14"
+ "OwnerKey" = "8:_UNDEFINED"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
+ "MsmKey" = "8:_92C20A89A1F7AA489569897AC0AB8257"
+ "OwnerKey" = "8:_2893F9502BF64B19AA4C6C960CE69331"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
+ "MsmKey" = "8:_D026679728EF474AAF107EA4BE481FA4"
+ "OwnerKey" = "8:_UNDEFINED"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
+ "MsmKey" = "8:_EC537C48738502909F644852EC089C1A"
+ "OwnerKey" = "8:_2893F9502BF64B19AA4C6C960CE69331"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ "Entry"
+ {
+ "MsmKey" = "8:_F37F0C84F36477726D082401D282BD50"
+ "OwnerKey" = "8:_2893F9502BF64B19AA4C6C960CE69331"
+ "MsmSig" = "8:_UNDEFINED"
+ }
+ }
+ "Configurations"
+ {
+ "Debug"
+ {
+ "DisplayName" = "8:Debug"
+ "IsDebugOnly" = "11:TRUE"
+ "IsReleaseOnly" = "11:FALSE"
+ "OutputFilename" = "8:Debug\\Setup.msi"
+ "PackageFilesAs" = "3:2"
+ "PackageFileSize" = "3:-2147483648"
+ "CabType" = "3:1"
+ "Compression" = "3:2"
+ "SignOutput" = "11:FALSE"
+ "CertificateFile" = "8:"
+ "PrivateKeyFile" = "8:"
+ "TimeStampServer" = "8:"
+ "InstallerBootstrapper" = "3:2"
+ }
+ "Release"
+ {
+ "DisplayName" = "8:Release"
+ "IsDebugOnly" = "11:FALSE"
+ "IsReleaseOnly" = "11:TRUE"
+ "OutputFilename" = "8:Release\\Install ARIvy X64.msi"
+ "PackageFilesAs" = "3:2"
+ "PackageFileSize" = "3:-2147483648"
+ "CabType" = "3:1"
+ "Compression" = "3:2"
+ "SignOutput" = "11:FALSE"
+ "CertificateFile" = "8:"
+ "PrivateKeyFile" = "8:"
+ "TimeStampServer" = "8:"
+ "InstallerBootstrapper" = "3:2"
+ }
+ }
+ "Deployable"
+ {
+ "CustomAction"
+ {
+ }
+ "DefaultFeature"
+ {
+ "Name" = "8:DefaultFeature"
+ "Title" = "8:"
+ "Description" = "8:"
+ }
+ "ExternalPersistence"
+ {
+ "LaunchCondition"
+ {
+ }
+ }
+ "File"
+ {
+ "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_03BE07867632004F18FE8CAF0A618CD6"
+ {
+ "SourcePath" = "8:WSOCK32.dll"
+ "TargetName" = "8:WSOCK32.dll"
+ "Tag" = "8:"
+ "Folder" = "8:_B57CC1BCBF544E629507680A37FD5F3F"
+ "Condition" = "8:"
+ "Transitive" = "11:FALSE"
+ "Vital" = "11:TRUE"
+ "ReadOnly" = "11:FALSE"
+ "Hidden" = "11:FALSE"
+ "System" = "11:FALSE"
+ "Permanent" = "11:FALSE"
+ "SharedLegacy" = "11:FALSE"
+ "PackageAs" = "3:1"
+ "Register" = "3:1"
+ "Exclude" = "11:TRUE"
+ "IsDependency" = "11:TRUE"
+ "IsolateTo" = "8:"
+ }
+ "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_3DEBF6D0CCF5FEAAAA509CB45B7D7FD2"
+ {
+ "SourcePath" = "8:MFPlat.DLL"
+ "TargetName" = "8:MFPlat.DLL"
+ "Tag" = "8:"
+ "Folder" = "8:_B57CC1BCBF544E629507680A37FD5F3F"
+ "Condition" = "8:"
+ "Transitive" = "11:FALSE"
+ "Vital" = "11:TRUE"
+ "ReadOnly" = "11:FALSE"
+ "Hidden" = "11:FALSE"
+ "System" = "11:FALSE"
+ "Permanent" = "11:FALSE"
+ "SharedLegacy" = "11:FALSE"
+ "PackageAs" = "3:1"
+ "Register" = "3:1"
+ "Exclude" = "11:TRUE"
+ "IsDependency" = "11:TRUE"
+ "IsolateTo" = "8:"
+ }
+ "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_92C20A89A1F7AA489569897AC0AB8257"
+ {
+ "SourcePath" = "8:MF.dll"
+ "TargetName" = "8:MF.dll"
+ "Tag" = "8:"
+ "Folder" = "8:_B57CC1BCBF544E629507680A37FD5F3F"
+ "Condition" = "8:"
+ "Transitive" = "11:FALSE"
+ "Vital" = "11:TRUE"
+ "ReadOnly" = "11:FALSE"
+ "Hidden" = "11:FALSE"
+ "System" = "11:FALSE"
+ "Permanent" = "11:FALSE"
+ "SharedLegacy" = "11:FALSE"
+ "PackageAs" = "3:1"
+ "Register" = "3:1"
+ "Exclude" = "11:TRUE"
+ "IsDependency" = "11:TRUE"
+ "IsolateTo" = "8:"
+ }
+ "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_EC537C48738502909F644852EC089C1A"
+ {
+ "SourcePath" = "8:d3d9.dll"
+ "TargetName" = "8:d3d9.dll"
+ "Tag" = "8:"
+ "Folder" = "8:_B57CC1BCBF544E629507680A37FD5F3F"
+ "Condition" = "8:"
+ "Transitive" = "11:FALSE"
+ "Vital" = "11:TRUE"
+ "ReadOnly" = "11:FALSE"
+ "Hidden" = "11:FALSE"
+ "System" = "11:FALSE"
+ "Permanent" = "11:FALSE"
+ "SharedLegacy" = "11:FALSE"
+ "PackageAs" = "3:1"
+ "Register" = "3:1"
+ "Exclude" = "11:TRUE"
+ "IsDependency" = "11:TRUE"
+ "IsolateTo" = "8:"
+ }
+ "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_F37F0C84F36477726D082401D282BD50"
+ {
+ "SourcePath" = "8:MFReadWrite.dll"
+ "TargetName" = "8:MFReadWrite.dll"
+ "Tag" = "8:"
+ "Folder" = "8:_B57CC1BCBF544E629507680A37FD5F3F"
+ "Condition" = "8:"
+ "Transitive" = "11:FALSE"
+ "Vital" = "11:TRUE"
+ "ReadOnly" = "11:FALSE"
+ "Hidden" = "11:FALSE"
+ "System" = "11:FALSE"
+ "Permanent" = "11:FALSE"
+ "SharedLegacy" = "11:FALSE"
+ "PackageAs" = "3:1"
+ "Register" = "3:1"
+ "Exclude" = "11:TRUE"
+ "IsDependency" = "11:TRUE"
+ "IsolateTo" = "8:"
+ }
+ }
+ "FileType"
+ {
+ }
+ "Folder"
+ {
+ "{1525181F-901A-416C-8A58-119130FE478E}:_65DB221D672F4F178AE163784C250F07"
+ {
+ "Name" = "8:#1919"
+ "AlwaysCreate" = "11:FALSE"
+ "Condition" = "8:"
+ "Transitive" = "11:FALSE"
+ "Property" = "8:ProgramMenuFolder"
+ "Folders"
+ {
+ }
+ }
+ "{1525181F-901A-416C-8A58-119130FE478E}:_740B4D6CAEB34C4B86B1486F70B15FDC"
+ {
+ "Name" = "8:#1916"
+ "AlwaysCreate" = "11:FALSE"
+ "Condition" = "8:"
+ "Transitive" = "11:FALSE"
+ "Property" = "8:DesktopFolder"
+ "Folders"
+ {
+ }
+ }
+ "{3C67513D-01DD-4637-8A68-80971EB9504F}:_B57CC1BCBF544E629507680A37FD5F3F"
+ {
+ "DefaultLocation" = "8:[ProgramFiles64Folder][Manufacturer]\\[ProductName]"
+ "Name" = "8:#1925"
+ "AlwaysCreate" = "11:FALSE"
+ "Condition" = "8:"
+ "Transitive" = "11:FALSE"
+ "Property" = "8:TARGETDIR"
+ "Folders"
+ {
+ }
+ }
+ }
+ "LaunchCondition"
+ {
+ }
+ "Locator"
+ {
+ }
+ "MsiBootstrapper"
+ {
+ "LangId" = "3:1036"
+ "RequiresElevation" = "11:FALSE"
+ }
+ "Product"
+ {
+ "Name" = "8:Microsoft Visual Studio"
+ "ProductName" = "8:ARMFCaptureD3D"
+ "ProductCode" = "8:{096ECDD0-A190-42C5-AD3F-2BDECDA0D286}"
+ "PackageCode" = "8:{51BD038D-BFC6-42F3-921C-66BBEA1127CB}"
+ "UpgradeCode" = "8:{5395DAE8-DD88-4383-8D1D-E3A8D0D77865}"
+ "AspNetVersion" = "8:4.0.30319.0"
+ "RestartWWWService" = "11:FALSE"
+ "RemovePreviousVersions" = "11:FALSE"
+ "DetectNewerInstalledVersion" = "11:TRUE"
+ "InstallAllUsers" = "11:TRUE"
+ "ProductVersion" = "8:1.0.0"
+ "Manufacturer" = "8:DTI R&D PII"
+ "ARPHELPTELEPHONE" = "8:"
+ "ARPHELPLINK" = "8:"
+ "Title" = "8:ARMFCaptureD3D"
+ "Subject" = "8:"
+ "ARPCONTACT" = "8:DTI R&D PII"
+ "Keywords" = "8:"
+ "ARPCOMMENTS" = "8:Interface Ivy ARToolKit"
+ "ARPURLINFOABOUT" = "8:"
+ "ARPPRODUCTICON" = "8:"
+ "ARPIconIndex" = "3:0"
+ "SearchPath" = "8:"
+ "UseSystemSearchPath" = "11:TRUE"
+ "TargetPlatform" = "3:1"
+ "PreBuildEvent" = "8:"
+ "PostBuildEvent" = "8:copy /y \"$(BuiltOuputPath)\" \"C:\\Users\\Public\\Install PII\""
+ "RunPostBuildEvent" = "3:0"
+ }
+ "Registry"
+ {
+ "HKLM"
+ {
+ "Keys"
+ {
+ "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_9EDE92678DAF4A9CACD84A620DCF8DB9"
+ {
+ "Name" = "8:Software"
+ "Condition" = "8:"
+ "AlwaysCreate" = "11:FALSE"
+ "DeleteAtUninstall" = "11:FALSE"
+ "Transitive" = "11:FALSE"
+ "Keys"
+ {
+ "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_178255032856453B9EF5008CB873777F"
+ {
+ "Name" = "8:[Manufacturer]"
+ "Condition" = "8:"
+ "AlwaysCreate" = "11:FALSE"
+ "DeleteAtUninstall" = "11:FALSE"
+ "Transitive" = "11:FALSE"
+ "Keys"
+ {
+ }
+ "Values"
+ {
+ }
+ }
+ }
+ "Values"
+ {
+ }
+ }
+ }
+ }
+ "HKCU"
+ {
+ "Keys"
+ {
+ "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_22BAB15C155D41D0BCB9EEE67432FDE2"
+ {
+ "Name" = "8:Software"
+ "Condition" = "8:"
+ "AlwaysCreate" = "11:FALSE"
+ "DeleteAtUninstall" = "11:FALSE"
+ "Transitive" = "11:FALSE"
+ "Keys"
+ {
+ "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_637126C090164C43B957B3879E3391CF"
+ {
+ "Name" = "8:[Manufacturer]"
+ "Condition" = "8:"
+ "AlwaysCreate" = "11:FALSE"
+ "DeleteAtUninstall" = "11:FALSE"
+ "Transitive" = "11:FALSE"
+ "Keys"
+ {
+ }
+ "Values"
+ {
+ }
+ }
+ }
+ "Values"
+ {
+ }
+ }
+ }
+ }
+ "HKCR"
+ {
+ "Keys"
+ {
+ }
+ }
+ "HKU"
+ {
+ "Keys"
+ {
+ }
+ }
+ "HKPU"
+ {
+ "Keys"
+ {
+ }
+ }
+ }
+ "Sequences"
+ {
+ }
+ "Shortcut"
+ {
+ "{970C0BB2-C7D0-45D7-ABFA-7EC378858BC0}:_32388B4DD63643FBA1FB59C214EDF9A3"
+ {
+ "Name" = "8:ARMFCaptureD3D Logitech HD"
+ "Arguments" = "8:-cam Logitech -f 24"
+ "Description" = "8:"
+ "ShowCmd" = "3:1"
+ "IconIndex" = "3:0"
+ "Transitive" = "11:FALSE"
+ "Target" = "8:_2893F9502BF64B19AA4C6C960CE69331"
+ "Folder" = "8:_65DB221D672F4F178AE163784C250F07"
+ "WorkingFolder" = "8:_B57CC1BCBF544E629507680A37FD5F3F"
+ "Icon" = "8:"
+ "Feature" = "8:"
+ }
+ "{970C0BB2-C7D0-45D7-ABFA-7EC378858BC0}:_40227BA01DFC4CE5AFCE49FEB41FECB6"
+ {
+ "Name" = "8:ARMFCaptureD3D"
+ "Arguments" = "8:"
+ "Description" = "8:"
+ "ShowCmd" = "3:1"
+ "IconIndex" = "3:0"
+ "Transitive" = "11:FALSE"
+ "Target" = "8:_2893F9502BF64B19AA4C6C960CE69331"
+ "Folder" = "8:_65DB221D672F4F178AE163784C250F07"
+ "WorkingFolder" = "8:_B57CC1BCBF544E629507680A37FD5F3F"
+ "Icon" = "8:"
+ "Feature" = "8:"
+ }
+ }
+ "UserInterface"
+ {
+ "{2479F3F5-0309-486D-8047-8187E2CE5BA0}:_0565A6F9455C404BB7BBF401039A2E71"
+ {
+ "UseDynamicProperties" = "11:FALSE"
+ "IsDependency" = "11:FALSE"
+ "SourcePath" = "8:<VsdDialogDir>\\VsdBasicDialogs.wim"
+ }
+ "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_27519B9A659A4AA7895DE12F249F2DB9"
+ {
+ "Name" = "8:#1901"
+ "Sequence" = "3:2"
+ "Attributes" = "3:2"
+ "Dialogs"
+ {
+ "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_8E6B579C830644DEBA2B1BDA051B7307"
+ {
+ "Sequence" = "3:100"
+ "DisplayName" = "8:Progression"
+ "UseDynamicProperties" = "11:TRUE"
+ "IsDependency" = "11:FALSE"
+ "SourcePath" = "8:<VsdDialogDir>\\VsdAdminProgressDlg.wid"
+ "Properties"
+ {
+ "BannerBitmap"
+ {
+ "Name" = "8:BannerBitmap"
+ "DisplayName" = "8:#1001"
+ "Description" = "8:#1101"
+ "Type" = "3:8"
+ "ContextData" = "8:Bitmap"
+ "Attributes" = "3:4"
+ "Setting" = "3:1"
+ "UsePlugInResources" = "11:TRUE"
+ }
+ "ShowProgress"
+ {
+ "Name" = "8:ShowProgress"
+ "DisplayName" = "8:#1009"
+ "Description" = "8:#1109"
+ "Type" = "3:5"
+ "ContextData" = "8:1;True=1;False=0"
+ "Attributes" = "3:0"
+ "Setting" = "3:0"
+ "Value" = "3:1"
+ "DefaultValue" = "3:1"
+ "UsePlugInResources" = "11:TRUE"
+ }
+ }
+ }
+ }
+ }
+ "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_45A1EAD363C948F0B2627FEEC97AE4AD"
+ {
+ "Name" = "8:#1900"
+ "Sequence" = "3:1"
+ "Attributes" = "3:1"
+ "Dialogs"
+ {
+ "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_929FDDB457D044E9AF11EBB67ABFEA86"
+ {
+ "Sequence" = "3:300"
+ "DisplayName" = "8:Confirmer l'installation"
+ "UseDynamicProperties" = "11:TRUE"
+ "IsDependency" = "11:FALSE"
+ "SourcePath" = "8:<VsdDialogDir>\\VsdConfirmDlg.wid"
+ "Properties"
+ {
+ "BannerBitmap"
+ {
+ "Name" = "8:BannerBitmap"
+ "DisplayName" = "8:#1001"
+ "Description" = "8:#1101"
+ "Type" = "3:8"
+ "ContextData" = "8:Bitmap"
+ "Attributes" = "3:4"
+ "Setting" = "3:1"
+ "UsePlugInResources" = "11:TRUE"
+ }
+ }
+ }
+ "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_E006A629465A4D7F8762CFAF4AB55CBC"
+ {
+ "Sequence" = "3:100"
+ "DisplayName" = "8:Bienvenue"
+ "UseDynamicProperties" = "11:TRUE"
+ "IsDependency" = "11:FALSE"
+ "SourcePath" = "8:<VsdDialogDir>\\VsdWelcomeDlg.wid"
+ "Properties"
+ {
+ "BannerBitmap"
+ {
+ "Name" = "8:BannerBitmap"
+ "DisplayName" = "8:#1001"
+ "Description" = "8:#1101"
+ "Type" = "3:8"
+ "ContextData" = "8:Bitmap"
+ "Attributes" = "3:4"
+ "Setting" = "3:1"
+ "UsePlugInResources" = "11:TRUE"
+ }
+ "CopyrightWarning"
+ {
+ "Name" = "8:CopyrightWarning"
+ "DisplayName" = "8:#1002"
+ "Description" = "8:#1102"
+ "Type" = "3:3"
+ "ContextData" = "8:"
+ "Attributes" = "3:0"
+ "Setting" = "3:1"
+ "Value" = "8:#1202"
+ "DefaultValue" = "8:#1202"
+ "UsePlugInResources" = "11:TRUE"
+ }
+ "Welcome"
+ {
+ "Name" = "8:Welcome"
+ "DisplayName" = "8:#1003"
+ "Description" = "8:#1103"
+ "Type" = "3:3"
+ "ContextData" = "8:"
+ "Attributes" = "3:0"
+ "Setting" = "3:1"
+ "Value" = "8:#1203"
+ "DefaultValue" = "8:#1203"
+ "UsePlugInResources" = "11:TRUE"
+ }
+ }
+ }
+ "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_EA07C802CB3249CCA3C8DC97560B656A"
+ {
+ "Sequence" = "3:200"
+ "DisplayName" = "8:Dossier d'installation"
+ "UseDynamicProperties" = "11:TRUE"
+ "IsDependency" = "11:FALSE"
+ "SourcePath" = "8:<VsdDialogDir>\\VsdFolderDlg.wid"
+ "Properties"
+ {
+ "BannerBitmap"
+ {
+ "Name" = "8:BannerBitmap"
+ "DisplayName" = "8:#1001"
+ "Description" = "8:#1101"
+ "Type" = "3:8"
+ "ContextData" = "8:Bitmap"
+ "Attributes" = "3:4"
+ "Setting" = "3:1"
+ "UsePlugInResources" = "11:TRUE"
+ }
+ "InstallAllUsersVisible"
+ {
+ "Name" = "8:InstallAllUsersVisible"
+ "DisplayName" = "8:#1059"
+ "Description" = "8:#1159"
+ "Type" = "3:5"
+ "ContextData" = "8:1;True=1;False=0"
+ "Attributes" = "3:0"
+ "Setting" = "3:0"
+ "Value" = "3:1"
+ "DefaultValue" = "3:1"
+ "UsePlugInResources" = "11:TRUE"
+ }
+ }
+ }
+ }
+ }
+ "{2479F3F5-0309-486D-8047-8187E2CE5BA0}:_5F1046C8F0D04A19B8463DE9BB49F784"
+ {
+ "UseDynamicProperties" = "11:FALSE"
+ "IsDependency" = "11:FALSE"
+ "SourcePath" = "8:<VsdDialogDir>\\VsdUserInterface.wim"
+ }
+ "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_BC2F567B32B64DCD9AD72E6EF4D8485C"
+ {
+ "Name" = "8:#1902"
+ "Sequence" = "3:2"
+ "Attributes" = "3:3"
+ "Dialogs"
+ {
+ "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_9AF7543F810C4255919DC8539A958948"
+ {
+ "Sequence" = "3:100"
+ "DisplayName" = "8:Terminé"
+ "UseDynamicProperties" = "11:TRUE"
+ "IsDependency" = "11:FALSE"
+ "SourcePath" = "8:<VsdDialogDir>\\VsdAdminFinishedDlg.wid"
+ "Properties"
+ {
+ "BannerBitmap"
+ {
+ "Name" = "8:BannerBitmap"
+ "DisplayName" = "8:#1001"
+ "Description" = "8:#1101"
+ "Type" = "3:8"
+ "ContextData" = "8:Bitmap"
+ "Attributes" = "3:4"
+ "Setting" = "3:1"
+ "UsePlugInResources" = "11:TRUE"
+ }
+ }
+ }
+ }
+ }
+ "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_CC275C10139745ED9EB25EB8B1498F62"
+ {
+ "Name" = "8:#1900"
+ "Sequence" = "3:2"
+ "Attributes" = "3:1"
+ "Dialogs"
+ {
+ "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_9CB5C12428D346B0A93F45677DFE1329"
+ {
+ "Sequence" = "3:200"
+ "DisplayName" = "8:Dossier d'installation"
+ "UseDynamicProperties" = "11:TRUE"
+ "IsDependency" = "11:FALSE"
+ "SourcePath" = "8:<VsdDialogDir>\\VsdAdminFolderDlg.wid"
+ "Properties"
+ {
+ "BannerBitmap"
+ {
+ "Name" = "8:BannerBitmap"
+ "DisplayName" = "8:#1001"
+ "Description" = "8:#1101"
+ "Type" = "3:8"
+ "ContextData" = "8:Bitmap"
+ "Attributes" = "3:4"
+ "Setting" = "3:1"
+ "UsePlugInResources" = "11:TRUE"
+ }
+ }
+ }
+ "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_C6E4378D41004B779E81ABB11D03A20D"
+ {
+ "Sequence" = "3:300"
+ "DisplayName" = "8:Confirmer l'installation"
+ "UseDynamicProperties" = "11:TRUE"
+ "IsDependency" = "11:FALSE"
+ "SourcePath" = "8:<VsdDialogDir>\\VsdAdminConfirmDlg.wid"
+ "Properties"
+ {
+ "BannerBitmap"
+ {
+ "Name" = "8:BannerBitmap"
+ "DisplayName" = "8:#1001"
+ "Description" = "8:#1101"
+ "Type" = "3:8"
+ "ContextData" = "8:Bitmap"
+ "Attributes" = "3:4"
+ "Setting" = "3:1"
+ "UsePlugInResources" = "11:TRUE"
+ }
+ }
+ }
+ "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_F407087E71234F259B46BA5749F9CB21"
+ {
+ "Sequence" = "3:100"
+ "DisplayName" = "8:Bienvenue"
+ "UseDynamicProperties" = "11:TRUE"
+ "IsDependency" = "11:FALSE"
+ "SourcePath" = "8:<VsdDialogDir>\\VsdAdminWelcomeDlg.wid"
+ "Properties"
+ {
+ "BannerBitmap"
+ {
+ "Name" = "8:BannerBitmap"
+ "DisplayName" = "8:#1001"
+ "Description" = "8:#1101"
+ "Type" = "3:8"
+ "ContextData" = "8:Bitmap"
+ "Attributes" = "3:4"
+ "Setting" = "3:1"
+ "UsePlugInResources" = "11:TRUE"
+ }
+ "CopyrightWarning"
+ {
+ "Name" = "8:CopyrightWarning"
+ "DisplayName" = "8:#1002"
+ "Description" = "8:#1102"
+ "Type" = "3:3"
+ "ContextData" = "8:"
+ "Attributes" = "3:0"
+ "Setting" = "3:1"
+ "Value" = "8:#1202"
+ "DefaultValue" = "8:#1202"
+ "UsePlugInResources" = "11:TRUE"
+ }
+ "Welcome"
+ {
+ "Name" = "8:Welcome"
+ "DisplayName" = "8:#1003"
+ "Description" = "8:#1103"
+ "Type" = "3:3"
+ "ContextData" = "8:"
+ "Attributes" = "3:0"
+ "Setting" = "3:1"
+ "Value" = "8:#1203"
+ "DefaultValue" = "8:#1203"
+ "UsePlugInResources" = "11:TRUE"
+ }
+ }
+ }
+ }
+ }
+ "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_EDE81B8B38E64A7CB13C2BAE2C2448A0"
+ {
+ "Name" = "8:#1901"
+ "Sequence" = "3:1"
+ "Attributes" = "3:2"
+ "Dialogs"
+ {
+ "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_B7B6272E0FE04CB6A7404B05E6A00B5A"
+ {
+ "Sequence" = "3:100"
+ "DisplayName" = "8:Progression"
+ "UseDynamicProperties" = "11:TRUE"
+ "IsDependency" = "11:FALSE"
+ "SourcePath" = "8:<VsdDialogDir>\\VsdProgressDlg.wid"
+ "Properties"
+ {
+ "BannerBitmap"
+ {
+ "Name" = "8:BannerBitmap"
+ "DisplayName" = "8:#1001"
+ "Description" = "8:#1101"
+ "Type" = "3:8"
+ "ContextData" = "8:Bitmap"
+ "Attributes" = "3:4"
+ "Setting" = "3:1"
+ "UsePlugInResources" = "11:TRUE"
+ }
+ "ShowProgress"
+ {
+ "Name" = "8:ShowProgress"
+ "DisplayName" = "8:#1009"
+ "Description" = "8:#1109"
+ "Type" = "3:5"
+ "ContextData" = "8:1;True=1;False=0"
+ "Attributes" = "3:0"
+ "Setting" = "3:0"
+ "Value" = "3:1"
+ "DefaultValue" = "3:1"
+ "UsePlugInResources" = "11:TRUE"
+ }
+ }
+ }
+ }
+ }
+ "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_F91267112B44495D8C5C25388A943EA6"
+ {
+ "Name" = "8:#1902"
+ "Sequence" = "3:1"
+ "Attributes" = "3:3"
+ "Dialogs"
+ {
+ "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_8E0A9F9469F446B1AD3A25F9A0EA3082"
+ {
+ "Sequence" = "3:100"
+ "DisplayName" = "8:Terminé"
+ "UseDynamicProperties" = "11:TRUE"
+ "IsDependency" = "11:FALSE"
+ "SourcePath" = "8:<VsdDialogDir>\\VsdFinishedDlg.wid"
+ "Properties"
+ {
+ "BannerBitmap"
+ {
+ "Name" = "8:BannerBitmap"
+ "DisplayName" = "8:#1001"
+ "Description" = "8:#1101"
+ "Type" = "3:8"
+ "ContextData" = "8:Bitmap"
+ "Attributes" = "3:4"
+ "Setting" = "3:1"
+ "UsePlugInResources" = "11:TRUE"
+ }
+ "UpdateText"
+ {
+ "Name" = "8:UpdateText"
+ "DisplayName" = "8:#1058"
+ "Description" = "8:#1158"
+ "Type" = "3:15"
+ "ContextData" = "8:"
+ "Attributes" = "3:0"
+ "Setting" = "3:1"
+ "Value" = "8:#1258"
+ "DefaultValue" = "8:#1258"
+ "UsePlugInResources" = "11:TRUE"
+ }
+ }
+ }
+ }
+ }
+ }
+ "MergeModule"
+ {
+ "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_60653F90D8C54EE6B6A3CC166B63F51D"
+ {
+ "UseDynamicProperties" = "11:TRUE"
+ "IsDependency" = "11:TRUE"
+ "SourcePath" = "8:Microsoft_VC100_CRT_x64.msm"
+ "Properties"
+ {
+ }
+ "LanguageId" = "3:0"
+ "Exclude" = "11:FALSE"
+ "Folder" = "8:"
+ "Feature" = "8:"
+ "IsolateTo" = "8:"
+ }
+ }
+ "ProjectOutput"
+ {
+ "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_2893F9502BF64B19AA4C6C960CE69331"
+ {
+ "SourcePath" = "8:..\\x64\\Release\\ARMFCaptureD3D.exe"
+ "TargetName" = "8:"
+ "Tag" = "8:"
+ "Folder" = "8:_B57CC1BCBF544E629507680A37FD5F3F"
+ "Condition" = "8:"
+ "Transitive" = "11:FALSE"
+ "Vital" = "11:TRUE"
+ "ReadOnly" = "11:FALSE"
+ "Hidden" = "11:FALSE"
+ "System" = "11:FALSE"
+ "Permanent" = "11:FALSE"
+ "SharedLegacy" = "11:FALSE"
+ "PackageAs" = "3:1"
+ "Register" = "3:1"
+ "Exclude" = "11:FALSE"
+ "IsDependency" = "11:FALSE"
+ "IsolateTo" = "8:"
+ "ProjectOutputGroupRegister" = "3:1"
+ "OutputConfiguration" = "8:"
+ "OutputGroupCanonicalName" = "8:Built"
+ "OutputProjectGuid" = "8:{42CC2BCD-AAD2-4C3C-87BB-0B42F2848E17}"
+ "ShowKeyOutput" = "11:TRUE"
+ "ExcludeFilters"
+ {
+ }
+ }
+ "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_4077B199D26F455E93767B320FB454E4"
+ {
+ "SourcePath" = "8:..\\x64\\Release\\ARToolKitPlus.dll"
+ "TargetName" = "8:"
+ "Tag" = "8:"
+ "Folder" = "8:_B57CC1BCBF544E629507680A37FD5F3F"
+ "Condition" = "8:"
+ "Transitive" = "11:FALSE"
+ "Vital" = "11:TRUE"
+ "ReadOnly" = "11:FALSE"
+ "Hidden" = "11:FALSE"
+ "System" = "11:FALSE"
+ "Permanent" = "11:FALSE"
+ "SharedLegacy" = "11:FALSE"
+ "PackageAs" = "3:1"
+ "Register" = "3:1"
+ "Exclude" = "11:FALSE"
+ "IsDependency" = "11:FALSE"
+ "IsolateTo" = "8:"
+ "ProjectOutputGroupRegister" = "3:1"
+ "OutputConfiguration" = "8:"
+ "OutputGroupCanonicalName" = "8:Built"
+ "OutputProjectGuid" = "8:{CCF160AF-4F7E-8012-1926-AC4C742CC14F}"
+ "ShowKeyOutput" = "11:TRUE"
+ "ExcludeFilters"
+ {
+ }
+ }
+ "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_6A5948EA3E9A4953AF64CEE342F4BE14"
+ {
+ "SourcePath" = "8:..\\x64\\Release\\pcre.dll"
+ "TargetName" = "8:"
+ "Tag" = "8:"
+ "Folder" = "8:_B57CC1BCBF544E629507680A37FD5F3F"
+ "Condition" = "8:"
+ "Transitive" = "11:FALSE"
+ "Vital" = "11:TRUE"
+ "ReadOnly" = "11:FALSE"
+ "Hidden" = "11:FALSE"
+ "System" = "11:FALSE"
+ "Permanent" = "11:FALSE"
+ "SharedLegacy" = "11:FALSE"
+ "PackageAs" = "3:1"
+ "Register" = "3:1"
+ "Exclude" = "11:FALSE"
+ "IsDependency" = "11:FALSE"
+ "IsolateTo" = "8:"
+ "ProjectOutputGroupRegister" = "3:1"
+ "OutputConfiguration" = "8:"
+ "OutputGroupCanonicalName" = "8:Built"
+ "OutputProjectGuid" = "8:{D79FC143-498E-4342-B2C7-BDAD1B8D0E6B}"
+ "ShowKeyOutput" = "11:TRUE"
+ "ExcludeFilters"
+ {
+ }
+ }
+ "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_AA13593FF538417984E75D7367A7B1A1"
+ {
+ "SourcePath" = "8:"
+ "TargetName" = "8:"
+ "Tag" = "8:"
+ "Folder" = "8:_B57CC1BCBF544E629507680A37FD5F3F"
+ "Condition" = "8:"
+ "Transitive" = "11:FALSE"
+ "Vital" = "11:TRUE"
+ "ReadOnly" = "11:FALSE"
+ "Hidden" = "11:FALSE"
+ "System" = "11:FALSE"
+ "Permanent" = "11:FALSE"
+ "SharedLegacy" = "11:FALSE"
+ "PackageAs" = "3:1"
+ "Register" = "3:1"
+ "Exclude" = "11:FALSE"
+ "IsDependency" = "11:FALSE"
+ "IsolateTo" = "8:"
+ "ProjectOutputGroupRegister" = "3:1"
+ "OutputConfiguration" = "8:"
+ "OutputGroupCanonicalName" = "8:ContentFiles"
+ "OutputProjectGuid" = "8:{42CC2BCD-AAD2-4C3C-87BB-0B42F2848E17}"
+ "ShowKeyOutput" = "11:TRUE"
+ "ExcludeFilters"
+ {
+ }
+ }
+ "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_D026679728EF474AAF107EA4BE481FA4"
+ {
+ "SourcePath" = "8:..\\x64\\Release\\Ivy.dll"
+ "TargetName" = "8:"
+ "Tag" = "8:"
+ "Folder" = "8:_B57CC1BCBF544E629507680A37FD5F3F"
+ "Condition" = "8:"
+ "Transitive" = "11:FALSE"
+ "Vital" = "11:TRUE"
+ "ReadOnly" = "11:FALSE"
+ "Hidden" = "11:FALSE"
+ "System" = "11:FALSE"
+ "Permanent" = "11:FALSE"
+ "SharedLegacy" = "11:FALSE"
+ "PackageAs" = "3:1"
+ "Register" = "3:1"
+ "Exclude" = "11:FALSE"
+ "IsDependency" = "11:FALSE"
+ "IsolateTo" = "8:"
+ "ProjectOutputGroupRegister" = "3:1"
+ "OutputConfiguration" = "8:"
+ "OutputGroupCanonicalName" = "8:Built"
+ "OutputProjectGuid" = "8:{9818D652-CC05-463E-880D-AFCA2C7BFABE}"
+ "ShowKeyOutput" = "11:TRUE"
+ "ExcludeFilters"
+ {
+ }
+ }
+ }
+ }
+}
diff --git a/ARMFCaptureD3D/UpgradeLog.XML b/ARMFCaptureD3D/UpgradeLog.XML
new file mode 100644
index 0000000..6dc6619
--- /dev/null
+++ b/ARMFCaptureD3D/UpgradeLog.XML
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type='text/xsl' href='_UpgradeReport_Files/UpgradeReport.xslt'?><UpgradeLog>
+<Properties><Property Name="Solution" Value="MFCaptureD3D">
+</Property><Property Name="Fichier solution" Value="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\MFCaptureD3D\MFCaptureD3D.sln">
+</Property><Property Name="Date" Value="mercredi 15 juin 2011">
+</Property><Property Name="Time" Value="10:30">
+</Property></Properties><Event ErrorLevel="0" Project="MFCaptureD3D" Source="MFCaptureD3D.vcproj" Description="Converting project file 'C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\MFCaptureD3D\MFCaptureD3D.vcproj'.">
+</Event><Event ErrorLevel="1" Project="MFCaptureD3D" Source="MFCaptureD3D.vcproj" Description="VCWebServiceProxyGeneratorTool is no longer supported. The tool has been removed from your project settings.">
+</Event><Event ErrorLevel="1" Project="MFCaptureD3D" Source="MFCaptureD3D.vcproj" Description="Attribute 'Detect64BitPortabilityProblems' of 'VCCLCompilerTool' is not supported in this version and has been removed during conversion.">
+</Event><Event ErrorLevel="1" Project="MFCaptureD3D" Source="MFCaptureD3D.vcproj" Description="Attribute 'Detect64BitPortabilityProblems' of 'VCCLCompilerTool' is not supported in this version and has been removed during conversion.">
+</Event><Event ErrorLevel="1" Project="MFCaptureD3D" Source="MFCaptureD3D.vcproj" Description="Attribute 'Detect64BitPortabilityProblems' of 'VCCLCompilerTool' is not supported in this version and has been removed during conversion.">
+</Event><Event ErrorLevel="1" Project="MFCaptureD3D" Source="MFCaptureD3D.vcproj" Description="Attribute 'Detect64BitPortabilityProblems' of 'VCCLCompilerTool' is not supported in this version and has been removed during conversion.">
+</Event><Event ErrorLevel="0" Project="MFCaptureD3D" Source="MFCaptureD3D.vcproj" Description="Done converting to new project file 'C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\MFCaptureD3D\MFCaptureD3D.vcxproj'.">
+</Event><Event ErrorLevel="3" Project="MFCaptureD3D" Source="MFCaptureD3D.vcproj" Description="Converted">
+</Event><Event ErrorLevel="2" Project="" Source="MFCaptureD3D.sln" Description="Impossible de convertir le fichier solution 'C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\MFCaptureD3D\MFCaptureD3D.sln', car il est en lecture seule sur le disque. Pour convertir la solution, changez les autorisations relatives au fichier solution de telle sorte qu'il puisse être modifié, puis rouvrez ce dernier.">
+</Event><Event ErrorLevel="3" Project="" Source="MFCaptureD3D.sln" Description="Non converti">
+</Event></UpgradeLog> \ No newline at end of file
diff --git a/ARMFCaptureD3D/UpgradeLog2.XML b/ARMFCaptureD3D/UpgradeLog2.XML
new file mode 100644
index 0000000..0f89cd3
--- /dev/null
+++ b/ARMFCaptureD3D/UpgradeLog2.XML
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type='text/xsl' href='_UpgradeReport_Files/UpgradeReport.xslt'?><UpgradeLog>
+<Properties><Property Name="Solution" Value="MFCaptureD3D">
+</Property><Property Name="Fichier solution" Value="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\MFCaptureD3D\MFCaptureD3D.sln">
+</Property><Property Name="Date" Value="mercredi 15 juin 2011">
+</Property><Property Name="Time" Value="10:31">
+</Property><Property Name="Numéro de journal" Value="2">
+</Property></Properties><Event ErrorLevel="0" Project="MFCaptureD3D" Source="MFCaptureD3D.vcproj" Description="Converting project file 'C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\MFCaptureD3D\MFCaptureD3D.vcproj'.">
+</Event><Event ErrorLevel="1" Project="MFCaptureD3D" Source="MFCaptureD3D.vcproj" Description="VCWebServiceProxyGeneratorTool is no longer supported. The tool has been removed from your project settings.">
+</Event><Event ErrorLevel="1" Project="MFCaptureD3D" Source="MFCaptureD3D.vcproj" Description="Attribute 'Detect64BitPortabilityProblems' of 'VCCLCompilerTool' is not supported in this version and has been removed during conversion.">
+</Event><Event ErrorLevel="1" Project="MFCaptureD3D" Source="MFCaptureD3D.vcproj" Description="Attribute 'Detect64BitPortabilityProblems' of 'VCCLCompilerTool' is not supported in this version and has been removed during conversion.">
+</Event><Event ErrorLevel="1" Project="MFCaptureD3D" Source="MFCaptureD3D.vcproj" Description="Attribute 'Detect64BitPortabilityProblems' of 'VCCLCompilerTool' is not supported in this version and has been removed during conversion.">
+</Event><Event ErrorLevel="1" Project="MFCaptureD3D" Source="MFCaptureD3D.vcproj" Description="Attribute 'Detect64BitPortabilityProblems' of 'VCCLCompilerTool' is not supported in this version and has been removed during conversion.">
+</Event><Event ErrorLevel="0" Project="MFCaptureD3D" Source="MFCaptureD3D.vcproj" Description="Done converting to new project file 'C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\MFCaptureD3D\MFCaptureD3D.vcxproj'.">
+</Event><Event ErrorLevel="3" Project="MFCaptureD3D" Source="MFCaptureD3D.vcproj" Description="Converted">
+</Event><Event ErrorLevel="0" Project="" Source="MFCaptureD3D.sln" Description="Solution correctement convertie">
+</Event><Event ErrorLevel="3" Project="" Source="MFCaptureD3D.sln" Description="Converted">
+</Event></UpgradeLog> \ No newline at end of file
diff --git a/ARMFCaptureD3D/UpgradeLog3.XML b/ARMFCaptureD3D/UpgradeLog3.XML
new file mode 100644
index 0000000..da99671
--- /dev/null
+++ b/ARMFCaptureD3D/UpgradeLog3.XML
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type='text/xsl' href='_UpgradeReport_Files/UpgradeReport.xslt'?><UpgradeLog>
+<Properties><Property Name="Solution" Value="MFCaptureD3D">
+</Property><Property Name="Fichier solution" Value="C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.sln">
+</Property><Property Name="Date" Value="vendredi 12 août 2011">
+</Property><Property Name="Time" Value="10:17:31">
+</Property><Property Name="Numéro de journal" Value="3">
+</Property></Properties><Event ErrorLevel="0" Project="MFCaptureD3D" Source="MFCaptureD3D.vcproj" Description="Converting project file 'C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcproj'.">
+</Event><Event ErrorLevel="1" Project="MFCaptureD3D" Source="MFCaptureD3D.vcproj" Description="VCWebServiceProxyGeneratorTool is no longer supported. The tool has been removed from your project settings.">
+</Event><Event ErrorLevel="1" Project="MFCaptureD3D" Source="MFCaptureD3D.vcproj" Description="Attribute 'Detect64BitPortabilityProblems' of 'VCCLCompilerTool' is not supported in this version and has been removed during conversion.">
+</Event><Event ErrorLevel="1" Project="MFCaptureD3D" Source="MFCaptureD3D.vcproj" Description="Attribute 'Detect64BitPortabilityProblems' of 'VCCLCompilerTool' is not supported in this version and has been removed during conversion.">
+</Event><Event ErrorLevel="1" Project="MFCaptureD3D" Source="MFCaptureD3D.vcproj" Description="Attribute 'Detect64BitPortabilityProblems' of 'VCCLCompilerTool' is not supported in this version and has been removed during conversion.">
+</Event><Event ErrorLevel="1" Project="MFCaptureD3D" Source="MFCaptureD3D.vcproj" Description="Attribute 'Detect64BitPortabilityProblems' of 'VCCLCompilerTool' is not supported in this version and has been removed during conversion.">
+</Event><Event ErrorLevel="0" Project="MFCaptureD3D" Source="MFCaptureD3D.vcproj" Description="Done converting to new project file 'C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj'.">
+</Event><Event ErrorLevel="3" Project="MFCaptureD3D" Source="MFCaptureD3D.vcproj" Description="Converted">
+</Event></UpgradeLog> \ No newline at end of file
diff --git a/ARMFCaptureD3D/_UpgradeReport_Files/UpgradeReport.css b/ARMFCaptureD3D/_UpgradeReport_Files/UpgradeReport.css
new file mode 100644
index 0000000..3411f63
--- /dev/null
+++ b/ARMFCaptureD3D/_UpgradeReport_Files/UpgradeReport.css
@@ -0,0 +1,207 @@
+BODY
+{
+ BACKGROUND-COLOR: white;
+ FONT-FAMILY: "Verdana", sans-serif;
+ FONT-SIZE: 100%;
+ MARGIN-LEFT: 0px;
+ MARGIN-TOP: 0px
+}
+P
+{
+ FONT-FAMILY: "Verdana", sans-serif;
+ FONT-SIZE: 70%;
+ LINE-HEIGHT: 12pt;
+ MARGIN-BOTTOM: 0px;
+ MARGIN-LEFT: 10px;
+ MARGIN-TOP: 10px
+}
+.note
+{
+ BACKGROUND-COLOR: #ffffff;
+ COLOR: #336699;
+ FONT-FAMILY: "Verdana", sans-serif;
+ FONT-SIZE: 100%;
+ MARGIN-BOTTOM: 0px;
+ MARGIN-LEFT: 0px;
+ MARGIN-TOP: 0px;
+ PADDING-RIGHT: 10px
+}
+.infotable
+{
+ BACKGROUND-COLOR: #f0f0e0;
+ BORDER-BOTTOM: #ffffff 0px solid;
+ BORDER-COLLAPSE: collapse;
+ BORDER-LEFT: #ffffff 0px solid;
+ BORDER-RIGHT: #ffffff 0px solid;
+ BORDER-TOP: #ffffff 0px solid;
+ FONT-SIZE: 70%;
+ MARGIN-LEFT: 10px
+}
+.issuetable
+{
+ BACKGROUND-COLOR: #ffffe8;
+ BORDER-COLLAPSE: collapse;
+ COLOR: #000000;
+ FONT-SIZE: 100%;
+ MARGIN-BOTTOM: 10px;
+ MARGIN-LEFT: 13px;
+ MARGIN-TOP: 0px
+}
+.issuetitle
+{
+ BACKGROUND-COLOR: #ffffff;
+ BORDER-BOTTOM: #dcdcdc 1px solid;
+ BORDER-TOP: #dcdcdc 1px;
+ COLOR: #003366;
+ FONT-WEIGHT: normal
+}
+.header
+{
+ BACKGROUND-COLOR: #cecf9c;
+ BORDER-BOTTOM: #ffffff 1px solid;
+ BORDER-LEFT: #ffffff 1px solid;
+ BORDER-RIGHT: #ffffff 1px solid;
+ BORDER-TOP: #ffffff 1px solid;
+ COLOR: #000000;
+ FONT-WEIGHT: bold
+}
+.issuehdr
+{
+ BACKGROUND-COLOR: #E0EBF5;
+ BORDER-BOTTOM: #dcdcdc 1px solid;
+ BORDER-TOP: #dcdcdc 1px solid;
+ COLOR: #000000;
+ FONT-WEIGHT: normal
+}
+.issuenone
+{
+ BACKGROUND-COLOR: #ffffff;
+ BORDER-BOTTOM: 0px;
+ BORDER-LEFT: 0px;
+ BORDER-RIGHT: 0px;
+ BORDER-TOP: 0px;
+ COLOR: #000000;
+ FONT-WEIGHT: normal
+}
+.content
+{
+ BACKGROUND-COLOR: #e7e7ce;
+ BORDER-BOTTOM: #ffffff 1px solid;
+ BORDER-LEFT: #ffffff 1px solid;
+ BORDER-RIGHT: #ffffff 1px solid;
+ BORDER-TOP: #ffffff 1px solid;
+ PADDING-LEFT: 3px
+}
+.issuecontent
+{
+ BACKGROUND-COLOR: #ffffff;
+ BORDER-BOTTOM: #dcdcdc 1px solid;
+ BORDER-TOP: #dcdcdc 1px solid;
+ PADDING-LEFT: 3px
+}
+A:link
+{
+ COLOR: #cc6633;
+ TEXT-DECORATION: underline
+}
+A:visited
+{
+ COLOR: #cc6633;
+}
+A:active
+{
+ COLOR: #cc6633;
+}
+A:hover
+{
+ COLOR: #cc3300;
+ TEXT-DECORATION: underline
+}
+H1
+{
+ BACKGROUND-COLOR: #003366;
+ BORDER-BOTTOM: #336699 6px solid;
+ COLOR: #ffffff;
+ FONT-SIZE: 130%;
+ FONT-WEIGHT: normal;
+ MARGIN: 0em 0em 0em -20px;
+ PADDING-BOTTOM: 8px;
+ PADDING-LEFT: 30px;
+ PADDING-TOP: 16px
+}
+H2
+{
+ COLOR: #000000;
+ FONT-SIZE: 80%;
+ FONT-WEIGHT: bold;
+ MARGIN-BOTTOM: 3px;
+ MARGIN-LEFT: 10px;
+ MARGIN-TOP: 20px;
+ PADDING-LEFT: 0px
+}
+H3
+{
+ COLOR: #000000;
+ FONT-SIZE: 80%;
+ FONT-WEIGHT: bold;
+ MARGIN-BOTTOM: -5px;
+ MARGIN-LEFT: 10px;
+ MARGIN-TOP: 20px
+}
+H4
+{
+ COLOR: #000000;
+ FONT-SIZE: 70%;
+ FONT-WEIGHT: bold;
+ MARGIN-BOTTOM: 0px;
+ MARGIN-TOP: 15px;
+ PADDING-BOTTOM: 0px
+}
+UL
+{
+ COLOR: #000000;
+ FONT-SIZE: 70%;
+ LIST-STYLE: square;
+ MARGIN-BOTTOM: 0pt;
+ MARGIN-TOP: 0pt
+}
+OL
+{
+ COLOR: #000000;
+ FONT-SIZE: 70%;
+ LIST-STYLE: square;
+ MARGIN-BOTTOM: 0pt;
+ MARGIN-TOP: 0pt
+}
+LI
+{
+ LIST-STYLE: square;
+ MARGIN-LEFT: 0px
+}
+.expandable
+{
+ CURSOR: hand
+}
+.expanded
+{
+ color: black
+}
+.collapsed
+{
+ DISPLAY: none
+}
+.foot
+{
+BACKGROUND-COLOR: #ffffff;
+BORDER-BOTTOM: #cecf9c 1px solid;
+BORDER-TOP: #cecf9c 2px solid
+}
+.settings
+{
+MARGIN-LEFT: 25PX;
+}
+.help
+{
+TEXT-ALIGN: right;
+margin-right: 10px;
+}
diff --git a/ARMFCaptureD3D/_UpgradeReport_Files/UpgradeReport.xslt b/ARMFCaptureD3D/_UpgradeReport_Files/UpgradeReport.xslt
new file mode 100644
index 0000000..d69d517
--- /dev/null
+++ b/ARMFCaptureD3D/_UpgradeReport_Files/UpgradeReport.xslt
@@ -0,0 +1,232 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt">
+
+ <xsl:key name="ProjectKey" match="Event" use="@Project"/>
+
+ <xsl:template match="Events" mode="createProjects">
+ <projects>
+ <xsl:for-each select="Event">
+ <!--xsl:sort select="@Project" order="descending"/-->
+ <xsl:if test="(1=position()) or (preceding-sibling::*[1]/@Project != @Project)">
+
+ <xsl:variable name="ProjectName" select="@Project"/>
+
+ <project>
+ <xsl:attribute name="name">
+ <xsl:value-of select="@Project"/>
+ </xsl:attribute>
+
+ <xsl:if test="@Project=''">
+ <xsl:attribute name="solution">
+ <xsl:value-of select="@Solution"/>
+ </xsl:attribute>
+ </xsl:if>
+
+ <xsl:for-each select="key('ProjectKey', $ProjectName)">
+ <!--xsl:sort select="@Source" /-->
+ <xsl:if test="(1=position()) or (preceding-sibling::*[1]/@Source != @Source)">
+
+ <source>
+ <xsl:attribute name="name">
+ <xsl:value-of select="@Source"/>
+ </xsl:attribute>
+
+ <xsl:variable name="Source">
+ <xsl:value-of select="@Source"/>
+ </xsl:variable>
+
+ <xsl:for-each select="key('ProjectKey', $ProjectName)[ @Source = $Source ]">
+
+ <event>
+ <xsl:attribute name="error-level">
+ <xsl:value-of select="@ErrorLevel"/>
+ </xsl:attribute>
+ <xsl:attribute name="description">
+ <xsl:value-of select="@Description"/>
+ </xsl:attribute>
+ </event>
+ </xsl:for-each>
+ </source>
+ </xsl:if>
+ </xsl:for-each>
+
+ </project>
+ </xsl:if>
+ </xsl:for-each>
+ </projects>
+ </xsl:template>
+
+ <xsl:template match="projects">
+ <xsl:for-each select="project">
+ <xsl:sort select="@Name" order="ascending"/>
+ <h2>
+ <xsl:if test="@solution"><a _locID="Solution">Solution</a>: <xsl:value-of select="@solution"/></xsl:if>
+ <xsl:if test="not(@solution)"><a _locID="Project">Projet</a>: <xsl:value-of select="@name"/>
+ <xsl:for-each select="source">
+ <xsl:variable name="Hyperlink" select="@name"/>
+ <xsl:for-each select="event[@error-level='4']">
+ <A class="note"><xsl:attribute name="HREF"><xsl:value-of select="$Hyperlink"/></xsl:attribute><xsl:value-of select="@description"/></A>
+ </xsl:for-each>
+ </xsl:for-each>
+ </xsl:if>
+ </h2>
+
+ <table cellpadding="2" cellspacing="0" width="98%" border="1" bordercolor="white" class="infotable">
+ <tr>
+ <td nowrap="1" class="header" _locID="Filename">Nom de fichier</td>
+ <td nowrap="1" class="header" _locID="Status">État</td>
+ <td nowrap="1" class="header" _locID="Errors">Erreurs</td>
+ <td nowrap="1" class="header" _locID="Warnings">Avertissements</td>
+ </tr>
+
+ <xsl:for-each select="source">
+ <xsl:sort select="@name" order="ascending"/>
+ <xsl:variable name="source-id" select="generate-id(.)"/>
+
+ <xsl:if test="count(event)!=count(event[@error-level='4'])">
+
+ <tr class="row">
+ <td class="content">
+ <A HREF="javascript:"><xsl:attribute name="onClick">javascript:document.images['<xsl:value-of select="$source-id"/>'].click()</xsl:attribute><IMG border="0" _locID="IMG.alt" _locAttrData="alt" alt="développer/réduire la section" class="expandable" height="11" onclick="changepic()" src="_UpgradeReport_Files/UpgradeReport_Plus.gif" width="9"><xsl:attribute name="name"><xsl:value-of select="$source-id"/></xsl:attribute><xsl:attribute name="child">src<xsl:value-of select="$source-id"/></xsl:attribute></IMG></A> <xsl:value-of select="@name"/>
+ </td>
+ <td class="content">
+ <xsl:if test="count(event[@error-level='3'])=1">
+ <xsl:for-each select="event[@error-level='3']">
+ <xsl:if test="@description='Converted'"><a _locID="Converted1">Converti</a></xsl:if>
+ <xsl:if test="@description!='Converted'"><xsl:value-of select="@description"/></xsl:if>
+ </xsl:for-each>
+ </xsl:if>
+ <xsl:if test="count(event[@error-level='3'])!=1 and count(event[@error-level='3' and @description='Converted'])!=0"><a _locID="Converted2">Converti</a>
+ </xsl:if>
+ </td>
+ <td class="content"><xsl:value-of select="count(event[@error-level='2'])"/></td>
+ <td class="content"><xsl:value-of select="count(event[@error-level='1'])"/></td>
+ </tr>
+
+ <tr class="collapsed" bgcolor="#ffffff">
+ <xsl:attribute name="id">src<xsl:value-of select="$source-id"/></xsl:attribute>
+
+ <td colspan="7">
+ <table width="97%" border="1" bordercolor="#dcdcdc" rules="cols" class="issuetable">
+ <tr>
+ <td colspan="7" class="issuetitle" _locID="ConversionIssues">Rapport de conversion - <xsl:value-of select="@name"/>:</td>
+ </tr>
+
+ <xsl:for-each select="event[@error-level!='3']">
+ <xsl:if test="@error-level!='4'">
+ <tr>
+ <td class="issuenone" style="border-bottom:solid 1 lightgray">
+ <xsl:value-of select="@description"/>
+ </td>
+ </tr>
+ </xsl:if>
+ </xsl:for-each>
+ </table>
+ </td>
+ </tr>
+ </xsl:if>
+ </xsl:for-each>
+
+ <tr valign="top">
+ <td class="foot">
+ <xsl:if test="count(source)!=1">
+ <xsl:value-of select="count(source)"/><a _locID="file1"> fichiers</a>
+ </xsl:if>
+ <xsl:if test="count(source)=1">
+ <a _locID="file2">1 fichier</a>
+ </xsl:if>
+ </td>
+ <td class="foot">
+ <a _locID="Converted3">Converti</a>: <xsl:value-of select="count(source/event[@error-level='3' and @description='Converted'])"/><BR/>
+ <a _locID="NotConverted">Non converti</a>: <xsl:value-of select="count(source) - count(source/event[@error-level='3' and @description='Converted'])"/>
+ </td>
+ <td class="foot"><xsl:value-of select="count(source/event[@error-level='2'])"/></td>
+ <td class="foot"><xsl:value-of select="count(source/event[@error-level='1'])"/></td>
+ </tr>
+ </table>
+ </xsl:for-each>
+ </xsl:template>
+
+ <xsl:template match="Property">
+ <xsl:if test="@Name!='Date' and @Name!='Time' and @Name!='LogNumber' and @Name!='Solution'">
+ <tr><td nowrap="1"><b><xsl:value-of select="@Name"/>: </b><xsl:value-of select="@Value"/></td></tr>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:template match="UpgradeLog">
+ <html>
+ <head>
+ <META HTTP-EQUIV="Content-Type" content="text/html; charset=utf-8"/>
+ <link rel="stylesheet" href="_UpgradeReport_Files\UpgradeReport.css"/>
+ <title _locID="ConversionReport0">Rapport de conversion
+ <xsl:if test="Properties/Property[@Name='LogNumber']">
+ <xsl:value-of select="Properties/Property[@Name='LogNumber']/@Value"/>
+ </xsl:if>
+ </title>
+ <script language="javascript">
+ function outliner () {
+ oMe = window.event.srcElement
+ //get child element
+ var child = document.all[event.srcElement.getAttribute("child",false)];
+ //if child element exists, expand or collapse it.
+ if (null != child)
+ child.className = child.className == "collapsed" ? "expanded" : "collapsed";
+ }
+
+ function changepic() {
+ uMe = window.event.srcElement;
+ var check = uMe.src.toLowerCase();
+ if (check.lastIndexOf("upgradereport_plus.gif") != -1)
+ {
+ uMe.src = "_UpgradeReport_Files/UpgradeReport_Minus.gif"
+ }
+ else
+ {
+ uMe.src = "_UpgradeReport_Files/UpgradeReport_Plus.gif"
+ }
+ }
+ </script>
+ </head>
+ <body topmargin="0" leftmargin="0" rightmargin="0" onclick="outliner();">
+ <h1 _locID="ConversionReport">Rapport de conversion - <xsl:value-of select="Properties/Property[@Name='Solution']/@Value"/></h1>
+
+ <p><span class="note">
+ <b _locID="TimeOfConversion">Heure de la conversion :</b> <xsl:value-of select="Properties/Property[@Name='Date']/@Value"/> <xsl:value-of select="Properties/Property[@Name='Time']/@Value"/><br/>
+ </span></p>
+
+ <xsl:variable name="SortedEvents">
+ <Events>
+ <xsl:for-each select="Event">
+ <xsl:sort select="@Project" order="ascending"/>
+ <xsl:sort select="@Source" order="ascending"/>
+ <xsl:sort select="@ErrorLevel" order="ascending"/>
+ <Event>
+ <xsl:attribute name="Project"><xsl:value-of select="@Project"/> </xsl:attribute>
+ <xsl:attribute name="Solution"><xsl:value-of select="/UpgradeLog/Properties/Property[@Name='Solution']/@Value"/> </xsl:attribute>
+ <xsl:attribute name="Source"><xsl:value-of select="@Source"/> </xsl:attribute>
+ <xsl:attribute name="ErrorLevel"><xsl:value-of select="@ErrorLevel"/> </xsl:attribute>
+ <xsl:attribute name="Description"><xsl:value-of select="@Description"/> </xsl:attribute>
+ </Event>
+ </xsl:for-each>
+ </Events>
+ </xsl:variable>
+
+ <xsl:variable name="Projects">
+ <xsl:apply-templates select="msxsl:node-set($SortedEvents)/*" mode="createProjects"/>
+ </xsl:variable>
+
+ <xsl:apply-templates select="msxsl:node-set($Projects)/*"/>
+
+ <p></p><p>
+ <table class="note">
+ <tr>
+ <td nowrap="1">
+ <b _locID="ConversionSettings">Paramètres de conversion</b>
+ </td>
+ </tr>
+ <xsl:apply-templates select="Properties"/>
+ </table></p>
+ </body>
+ </html>
+ </xsl:template>
+</xsl:stylesheet>
diff --git a/ARMFCaptureD3D/_UpgradeReport_Files/UpgradeReport_Minus.gif b/ARMFCaptureD3D/_UpgradeReport_Files/UpgradeReport_Minus.gif
new file mode 100644
index 0000000..17751cb
--- /dev/null
+++ b/ARMFCaptureD3D/_UpgradeReport_Files/UpgradeReport_Minus.gif
Binary files differ
diff --git a/ARMFCaptureD3D/_UpgradeReport_Files/UpgradeReport_Plus.gif b/ARMFCaptureD3D/_UpgradeReport_Files/UpgradeReport_Plus.gif
new file mode 100644
index 0000000..f6009ca
--- /dev/null
+++ b/ARMFCaptureD3D/_UpgradeReport_Files/UpgradeReport_Plus.gif
Binary files differ
diff --git a/ARMFCaptureD3D/data/Logitech_Notebook_Pro.cal b/ARMFCaptureD3D/data/Logitech_Notebook_Pro.cal
new file mode 100644
index 0000000..c93767a
--- /dev/null
+++ b/ARMFCaptureD3D/data/Logitech_Notebook_Pro.cal
@@ -0,0 +1,2 @@
+ARToolKitPlus_CamCal_Rev02
+640 480 330.27758683214108 228.10613100912309 891.32055276878066 888.496623076345940 -0.049480033893318 0.215863227944058 -0.001997733892605 -0.003151872552003 0.0 0.0 10
diff --git a/ARMFCaptureD3D/data/One.cfg b/ARMFCaptureD3D/data/One.cfg
new file mode 100644
index 0000000..3c42daa
--- /dev/null
+++ b/ARMFCaptureD3D/data/One.cfg
@@ -0,0 +1,10 @@
+#the number of patterns to be recognized
+1
+
+#marker 01
+0
+20.0
+0.0 0.0
+1.0000 0.0000 0.0000 0.0000
+0.0000 1.0000 0.0000 0.0000
+0.0000 0.0000 1.0000 0.0000
diff --git a/ARMFCaptureD3D/data/config.inp b/ARMFCaptureD3D/data/config.inp
new file mode 100644
index 0000000..98cbc16
--- /dev/null
+++ b/ARMFCaptureD3D/data/config.inp
@@ -0,0 +1,20 @@
+# config.inp
+# configuration file for ARIvy
+
+CameraResolution = -1
+CameraName =
+
+CameraParameterFile = data/no_distortion.cal
+MarkerSetConfigFile = data/One.cfg
+MarkerWidth = 20
+MarkerBorderPercentage = 0.250
+MarkerSeekingThreshold = 160
+
+MarkerTraditionalOrSimpleOrBCH = 2 # MARKER_ID_BCH=2 MAKER_ID_SIMPLE=1
+MarkerAbsenceCount = 5
+MarkerMoveThreshold = 1.0
+
+CalibrationID_TopRight = 4095
+CalibrationID_TopLeft = 4092
+CalibrationID_BottomLeft= 4093
+CalibrationID_BottomRight = 4094 \ No newline at end of file
diff --git a/ARMFCaptureD3D/data/markerboard_480-499.cfg b/ARMFCaptureD3D/data/markerboard_480-499.cfg
new file mode 100644
index 0000000..4ec0163
--- /dev/null
+++ b/ARMFCaptureD3D/data/markerboard_480-499.cfg
@@ -0,0 +1,165 @@
+# multimarker definition file for ARToolKit (format defined by ARToolKit)
+# dataset for test Painting application
+
+# number of markers
+20
+
+# marker 0
+480
+40.0
+0.0 0.0
+ 1.0000 0.0000 0.0000 -100.0
+ 0.0000 1.0000 0.0000 75.0
+ 0.0000 0.0000 1.0000 0.0
+
+# marker 1
+481
+40.0
+0.0 0.0
+ 1.0000 0.0000 0.0000 -50.0
+ 0.0000 1.0000 0.0000 75.0
+ 0.0000 0.0000 1.0000 0.0
+
+# marker 2
+482
+40.0
+0.0 0.0
+ 1.0000 0.0000 0.0000 0.0
+ 0.0000 1.0000 0.0000 75.0
+ 0.0000 0.0000 1.0000 0.0
+
+# marker 3
+483
+40.0
+0.0 0.0
+ 1.0000 0.0000 0.0000 50.0
+ 0.0000 1.0000 0.0000 75.0
+ 0.0000 0.0000 1.0000 0.0
+
+# marker 4
+484
+40.0
+0.0 0.0
+ 1.0000 0.0000 0.0000 100.0
+ 0.0000 1.0000 0.0000 75.0
+ 0.0000 0.0000 1.0000 0.0
+
+# marker 5
+485
+40.0
+0.0 0.0
+ 1.0000 0.0000 0.0000 -100.0
+ 0.0000 1.0000 0.0000 25.0
+ 0.0000 0.0000 1.0000 0.0
+
+# marker 6
+486
+40.0
+0.0 0.0
+ 1.0000 0.0000 0.0000 -50.0
+ 0.0000 1.0000 0.0000 25.0
+ 0.0000 0.0000 1.0000 0.0
+
+# marker 7
+487
+40.0
+0.0 0.0
+ 1.0000 0.0000 0.0000 0.0
+ 0.0000 1.0000 0.0000 25.0
+ 0.0000 0.0000 1.0000 0.0
+
+# marker 8
+488
+40.0
+0.0 0.0
+ 1.0000 0.0000 0.0000 50.0
+ 0.0000 1.0000 0.0000 25.0
+ 0.0000 0.0000 1.0000 0.0
+
+# marker 9
+489
+40.0
+0.0 0.0
+ 1.0000 0.0000 0.0000 100.0
+ 0.0000 1.0000 0.0000 25.0
+ 0.0000 0.0000 1.0000 0.0
+
+# marker 10
+490
+40.0
+0.0 0.0
+ 1.0000 0.0000 0.0000 -100.0
+ 0.0000 1.0000 0.0000 -25.0
+ 0.0000 0.0000 1.0000 0.0
+
+# marker 11
+491
+40.0
+0.0 0.0
+ 1.0000 0.0000 0.0000 -50.0
+ 0.0000 1.0000 0.0000 -25.0
+ 0.0000 0.0000 1.0000 0.0
+
+# marker 12
+492
+40.0
+0.0 0.0
+ 1.0000 0.0000 0.0000 0.0
+ 0.0000 1.0000 0.0000 -25.0
+ 0.0000 0.0000 1.0000 0.0
+
+# marker 33
+493
+40.0
+0.0 0.0
+ 1.0000 0.0000 0.0000 50.0
+ 0.0000 1.0000 0.0000 -25.0
+ 0.0000 0.0000 1.0000 0.0
+
+# marker 14
+494
+40.0
+0.0 0.0
+ 1.0000 0.0000 0.0000 100.0
+ 0.0000 1.0000 0.0000 -25.0
+ 0.0000 0.0000 1.0000 0.0
+
+# marker 15
+495
+40.0
+0.0 0.0
+ 1.0000 0.0000 0.0000 -100.0
+ 0.0000 1.0000 0.0000 -75.0
+ 0.0000 0.0000 1.0000 0.0
+
+# marker 16
+496
+40.0
+0.0 0.0
+ 1.0000 0.0000 0.0000 -50.0
+ 0.0000 1.0000 0.0000 -75.0
+ 0.0000 0.0000 1.0000 0.0
+
+# marker 17
+497
+40.0
+0.0 0.0
+ 1.0000 0.0000 0.0000 0.0
+ 0.0000 1.0000 0.0000 -75.0
+ 0.0000 0.0000 1.0000 0.0
+
+# marker 18
+498
+40.0
+0.0 0.0
+ 1.0000 0.0000 0.0000 50.0
+ 0.0000 1.0000 0.0000 -75.0
+ 0.0000 0.0000 1.0000 0.0
+
+# marker 19
+499
+40.0
+0.0 0.0
+ 1.0000 0.0000 0.0000 100.0
+ 0.0000 1.0000 0.0000 -75.0
+ 0.0000 0.0000 1.0000 0.0
diff --git a/ARMFCaptureD3D/data/no_distortion.cal b/ARMFCaptureD3D/data/no_distortion.cal
new file mode 100644
index 0000000..d92b030
--- /dev/null
+++ b/ARMFCaptureD3D/data/no_distortion.cal
@@ -0,0 +1,2 @@
+ARToolKitPlus_CamCal_Rev02
+640 480 320 240 1500.0 1500.0 0.0 0.0 0.0 0.0 0.0 0.0 0
diff --git a/ARMFCaptureD3D/debug.cpp b/ARMFCaptureD3D/debug.cpp
new file mode 100644
index 0000000..245dd50
--- /dev/null
+++ b/ARMFCaptureD3D/debug.cpp
@@ -0,0 +1,384 @@
+
+
+// The following code enables you to view the contents of a media type while
+// debugging.
+#include "ARMFCaptureD3D.h"
+#include <strsafe.h>
+
+LPCWSTR GetGUIDNameConst(const GUID& guid);
+HRESULT GetGUIDName(const GUID& guid, WCHAR **ppwsz);
+
+HRESULT LogAttributeValueByIndex(IMFAttributes *pAttr, DWORD index);
+HRESULT SpecialCaseAttributeValue(GUID guid, const PROPVARIANT& var);
+
+void DBGMSG(PCWSTR format, ...);
+
+HRESULT LogMediaType(IMFMediaType *pType)
+{
+ UINT32 count = 0;
+
+ HRESULT hr = pType->GetCount(&count);
+ if (FAILED(hr))
+ {
+ return hr;
+ }
+
+ if (count == 0)
+ {
+ DBGMSG(L"Empty media type.\n");
+ }
+
+ for (UINT32 i = 0; i < count; i++)
+ {
+ hr = LogAttributeValueByIndex(pType, i);
+ if (FAILED(hr))
+ {
+ break;
+ }
+ }
+ return hr;
+}
+
+HRESULT LogAttributeValueByIndex(IMFAttributes *pAttr, DWORD index)
+{
+ WCHAR *pGuidName = NULL;
+ WCHAR *pGuidValName = NULL;
+
+ GUID guid = { 0 };
+
+ PROPVARIANT var;
+ PropVariantInit(&var);
+
+ HRESULT hr = pAttr->GetItemByIndex(index, &guid, &var);
+ if (FAILED(hr))
+ {
+ goto done;
+ }
+
+ hr = GetGUIDName(guid, &pGuidName);
+ if (FAILED(hr))
+ {
+ goto done;
+ }
+
+ DBGMSG(L"\t%s\t", pGuidName);
+
+ hr = SpecialCaseAttributeValue(guid, var);
+ if (FAILED(hr))
+ {
+ goto done;
+ }
+ if (hr == S_FALSE)
+ {
+ switch (var.vt)
+ {
+ case VT_UI4:
+ DBGMSG(L"%d", var.ulVal);
+ break;
+
+ case VT_UI8:
+ DBGMSG(L"%I64d", var.uhVal);
+ break;
+
+ case VT_R8:
+ DBGMSG(L"%f", var.dblVal);
+ break;
+
+ case VT_CLSID:
+ hr = GetGUIDName(*var.puuid, &pGuidValName);
+ if (SUCCEEDED(hr))
+ {
+ DBGMSG(pGuidValName);
+ }
+ break;
+
+ case VT_LPWSTR:
+ DBGMSG(var.pwszVal);
+ break;
+
+ case VT_VECTOR | VT_UI1:
+ DBGMSG(L"<<byte array>>");
+ break;
+
+ case VT_UNKNOWN:
+ DBGMSG(L"IUnknown");
+ break;
+
+ default:
+ DBGMSG(L"Unexpected attribute type (vt = %d)", var.vt);
+ break;
+ }
+ }
+
+done:
+ DBGMSG(L"\n");
+ CoTaskMemFree(pGuidName);
+ CoTaskMemFree(pGuidValName);
+ PropVariantClear(&var);
+ return hr;
+}
+
+HRESULT GetGUIDName(const GUID& guid, WCHAR **ppwsz)
+{
+ HRESULT hr = S_OK;
+ WCHAR *pName = NULL;
+
+ LPCWSTR pcwsz = GetGUIDNameConst(guid);
+ if (pcwsz)
+ {
+ size_t cchLength = 0;
+
+ hr = StringCchLength(pcwsz, STRSAFE_MAX_CCH, &cchLength);
+ if (FAILED(hr))
+ {
+ goto done;
+ }
+
+ pName = (WCHAR*)CoTaskMemAlloc((cchLength + 1) * sizeof(WCHAR));
+
+ if (pName == NULL)
+ {
+ hr = E_OUTOFMEMORY;
+ goto done;
+ }
+
+ hr = StringCchCopy(pName, cchLength + 1, pcwsz);
+ if (FAILED(hr))
+ {
+ goto done;
+ }
+ }
+ else
+ {
+ hr = StringFromCLSID(guid, &pName);
+ }
+
+done:
+ if (FAILED(hr))
+ {
+ *ppwsz = NULL;
+ CoTaskMemFree(pName);
+ }
+ else
+ {
+ *ppwsz = pName;
+ }
+ return hr;
+}
+
+void LogUINT32AsUINT64(const PROPVARIANT& var)
+{
+ UINT32 uHigh = 0, uLow = 0;
+ Unpack2UINT32AsUINT64(var.uhVal.QuadPart, &uHigh, &uLow);
+ DBGMSG(L"%d x %d", uHigh, uLow);
+}
+
+float OffsetToFloat(const MFOffset& offset)
+{
+ return offset.value + (static_cast<float>(offset.fract) / 65536.0f);
+}
+
+HRESULT LogVideoArea(const PROPVARIANT& var)
+{
+ if (var.caub.cElems < sizeof(MFVideoArea))
+ {
+ return MF_E_BUFFERTOOSMALL;
+ }
+
+ MFVideoArea *pArea = (MFVideoArea*)var.caub.pElems;
+
+ DBGMSG(L"(%f,%f) (%d,%d)", OffsetToFloat(pArea->OffsetX), OffsetToFloat(pArea->OffsetY),
+ pArea->Area.cx, pArea->Area.cy);
+ return S_OK;
+}
+
+// Handle certain known special cases.
+HRESULT SpecialCaseAttributeValue(GUID guid, const PROPVARIANT& var)
+{
+ if ((guid == MF_MT_FRAME_RATE) || (guid == MF_MT_FRAME_RATE_RANGE_MAX) ||
+ (guid == MF_MT_FRAME_RATE_RANGE_MIN) || (guid == MF_MT_FRAME_SIZE) ||
+ (guid == MF_MT_PIXEL_ASPECT_RATIO))
+ {
+ // Attributes that contain two packed 32-bit values.
+ LogUINT32AsUINT64(var);
+ }
+ else if ((guid == MF_MT_GEOMETRIC_APERTURE) ||
+ (guid == MF_MT_MINIMUM_DISPLAY_APERTURE) ||
+ (guid == MF_MT_PAN_SCAN_APERTURE))
+ {
+ // Attributes that an MFVideoArea structure.
+ return LogVideoArea(var);
+ }
+ else
+ {
+ return S_FALSE;
+ }
+ return S_OK;
+}
+
+void DBGMSG(PCWSTR format, ...)
+{
+ va_list args;
+ va_start(args, format);
+
+ WCHAR msg[MAX_PATH];
+
+ if (SUCCEEDED(StringCbVPrintf(msg, sizeof(msg), format, args)))
+ {
+ OutputDebugString(msg);
+ }
+}
+
+#ifndef IF_EQUAL_RETURN
+#define IF_EQUAL_RETURN(param, val) if(val == param) return L#val
+#endif
+
+LPCWSTR GetGUIDNameConst(const GUID& guid)
+{
+ IF_EQUAL_RETURN(guid, MF_MT_MAJOR_TYPE);
+ IF_EQUAL_RETURN(guid, MF_MT_MAJOR_TYPE);
+ IF_EQUAL_RETURN(guid, MF_MT_SUBTYPE);
+ IF_EQUAL_RETURN(guid, MF_MT_ALL_SAMPLES_INDEPENDENT);
+ IF_EQUAL_RETURN(guid, MF_MT_FIXED_SIZE_SAMPLES);
+ IF_EQUAL_RETURN(guid, MF_MT_COMPRESSED);
+ IF_EQUAL_RETURN(guid, MF_MT_SAMPLE_SIZE);
+ IF_EQUAL_RETURN(guid, MF_MT_WRAPPED_TYPE);
+ IF_EQUAL_RETURN(guid, MF_MT_AUDIO_NUM_CHANNELS);
+ IF_EQUAL_RETURN(guid, MF_MT_AUDIO_SAMPLES_PER_SECOND);
+ IF_EQUAL_RETURN(guid, MF_MT_AUDIO_FLOAT_SAMPLES_PER_SECOND);
+ IF_EQUAL_RETURN(guid, MF_MT_AUDIO_AVG_BYTES_PER_SECOND);
+ IF_EQUAL_RETURN(guid, MF_MT_AUDIO_BLOCK_ALIGNMENT);
+ IF_EQUAL_RETURN(guid, MF_MT_AUDIO_BITS_PER_SAMPLE);
+ IF_EQUAL_RETURN(guid, MF_MT_AUDIO_VALID_BITS_PER_SAMPLE);
+ IF_EQUAL_RETURN(guid, MF_MT_AUDIO_SAMPLES_PER_BLOCK);
+ IF_EQUAL_RETURN(guid, MF_MT_AUDIO_CHANNEL_MASK);
+ IF_EQUAL_RETURN(guid, MF_MT_AUDIO_FOLDDOWN_MATRIX);
+ IF_EQUAL_RETURN(guid, MF_MT_AUDIO_WMADRC_PEAKREF);
+ IF_EQUAL_RETURN(guid, MF_MT_AUDIO_WMADRC_PEAKTARGET);
+ IF_EQUAL_RETURN(guid, MF_MT_AUDIO_WMADRC_AVGREF);
+ IF_EQUAL_RETURN(guid, MF_MT_AUDIO_WMADRC_AVGTARGET);
+ IF_EQUAL_RETURN(guid, MF_MT_AUDIO_PREFER_WAVEFORMATEX);
+ IF_EQUAL_RETURN(guid, MF_MT_AAC_PAYLOAD_TYPE);
+ IF_EQUAL_RETURN(guid, MF_MT_AAC_AUDIO_PROFILE_LEVEL_INDICATION);
+ IF_EQUAL_RETURN(guid, MF_MT_FRAME_SIZE);
+ IF_EQUAL_RETURN(guid, MF_MT_FRAME_RATE);
+ IF_EQUAL_RETURN(guid, MF_MT_FRAME_RATE_RANGE_MAX);
+ IF_EQUAL_RETURN(guid, MF_MT_FRAME_RATE_RANGE_MIN);
+ IF_EQUAL_RETURN(guid, MF_MT_PIXEL_ASPECT_RATIO);
+ IF_EQUAL_RETURN(guid, MF_MT_DRM_FLAGS);
+ IF_EQUAL_RETURN(guid, MF_MT_PAD_CONTROL_FLAGS);
+ IF_EQUAL_RETURN(guid, MF_MT_SOURCE_CONTENT_HINT);
+ IF_EQUAL_RETURN(guid, MF_MT_VIDEO_CHROMA_SITING);
+ IF_EQUAL_RETURN(guid, MF_MT_INTERLACE_MODE);
+ IF_EQUAL_RETURN(guid, MF_MT_TRANSFER_FUNCTION);
+ IF_EQUAL_RETURN(guid, MF_MT_VIDEO_PRIMARIES);
+ IF_EQUAL_RETURN(guid, MF_MT_CUSTOM_VIDEO_PRIMARIES);
+ IF_EQUAL_RETURN(guid, MF_MT_YUV_MATRIX);
+ IF_EQUAL_RETURN(guid, MF_MT_VIDEO_LIGHTING);
+ IF_EQUAL_RETURN(guid, MF_MT_VIDEO_NOMINAL_RANGE);
+ IF_EQUAL_RETURN(guid, MF_MT_GEOMETRIC_APERTURE);
+ IF_EQUAL_RETURN(guid, MF_MT_MINIMUM_DISPLAY_APERTURE);
+ IF_EQUAL_RETURN(guid, MF_MT_PAN_SCAN_APERTURE);
+ IF_EQUAL_RETURN(guid, MF_MT_PAN_SCAN_ENABLED);
+ IF_EQUAL_RETURN(guid, MF_MT_AVG_BITRATE);
+ IF_EQUAL_RETURN(guid, MF_MT_AVG_BIT_ERROR_RATE);
+ IF_EQUAL_RETURN(guid, MF_MT_MAX_KEYFRAME_SPACING);
+ IF_EQUAL_RETURN(guid, MF_MT_DEFAULT_STRIDE);
+ IF_EQUAL_RETURN(guid, MF_MT_PALETTE);
+ IF_EQUAL_RETURN(guid, MF_MT_USER_DATA);
+ IF_EQUAL_RETURN(guid, MF_MT_AM_FORMAT_TYPE);
+ IF_EQUAL_RETURN(guid, MF_MT_MPEG_START_TIME_CODE);
+ IF_EQUAL_RETURN(guid, MF_MT_MPEG2_PROFILE);
+ IF_EQUAL_RETURN(guid, MF_MT_MPEG2_LEVEL);
+ IF_EQUAL_RETURN(guid, MF_MT_MPEG2_FLAGS);
+ IF_EQUAL_RETURN(guid, MF_MT_MPEG_SEQUENCE_HEADER);
+ IF_EQUAL_RETURN(guid, MF_MT_DV_AAUX_SRC_PACK_0);
+ IF_EQUAL_RETURN(guid, MF_MT_DV_AAUX_CTRL_PACK_0);
+ IF_EQUAL_RETURN(guid, MF_MT_DV_AAUX_SRC_PACK_1);
+ IF_EQUAL_RETURN(guid, MF_MT_DV_AAUX_CTRL_PACK_1);
+ IF_EQUAL_RETURN(guid, MF_MT_DV_VAUX_SRC_PACK);
+ IF_EQUAL_RETURN(guid, MF_MT_DV_VAUX_CTRL_PACK);
+ IF_EQUAL_RETURN(guid, MF_MT_ARBITRARY_HEADER);
+ IF_EQUAL_RETURN(guid, MF_MT_ARBITRARY_FORMAT);
+ IF_EQUAL_RETURN(guid, MF_MT_IMAGE_LOSS_TOLERANT);
+ IF_EQUAL_RETURN(guid, MF_MT_MPEG4_SAMPLE_DESCRIPTION);
+ IF_EQUAL_RETURN(guid, MF_MT_MPEG4_CURRENT_SAMPLE_ENTRY);
+ IF_EQUAL_RETURN(guid, MF_MT_ORIGINAL_4CC);
+ IF_EQUAL_RETURN(guid, MF_MT_ORIGINAL_WAVE_FORMAT_TAG);
+
+ // Media types
+
+ IF_EQUAL_RETURN(guid, MFMediaType_Audio);
+ IF_EQUAL_RETURN(guid, MFMediaType_Video);
+ IF_EQUAL_RETURN(guid, MFMediaType_Protected);
+ IF_EQUAL_RETURN(guid, MFMediaType_SAMI);
+ IF_EQUAL_RETURN(guid, MFMediaType_Script);
+ IF_EQUAL_RETURN(guid, MFMediaType_Image);
+ IF_EQUAL_RETURN(guid, MFMediaType_HTML);
+ IF_EQUAL_RETURN(guid, MFMediaType_Binary);
+ IF_EQUAL_RETURN(guid, MFMediaType_FileTransfer);
+
+ IF_EQUAL_RETURN(guid, MFVideoFormat_AI44); // FCC('AI44')
+ IF_EQUAL_RETURN(guid, MFVideoFormat_ARGB32); // D3DFMT_A8R8G8B8
+ IF_EQUAL_RETURN(guid, MFVideoFormat_AYUV); // FCC('AYUV')
+ IF_EQUAL_RETURN(guid, MFVideoFormat_DV25); // FCC('dv25')
+ IF_EQUAL_RETURN(guid, MFVideoFormat_DV50); // FCC('dv50')
+ IF_EQUAL_RETURN(guid, MFVideoFormat_DVH1); // FCC('dvh1')
+ IF_EQUAL_RETURN(guid, MFVideoFormat_DVSD); // FCC('dvsd')
+ IF_EQUAL_RETURN(guid, MFVideoFormat_DVSL); // FCC('dvsl')
+ IF_EQUAL_RETURN(guid, MFVideoFormat_H264); // FCC('H264')
+ IF_EQUAL_RETURN(guid, MFVideoFormat_I420); // FCC('I420')
+ IF_EQUAL_RETURN(guid, MFVideoFormat_IYUV); // FCC('IYUV')
+ IF_EQUAL_RETURN(guid, MFVideoFormat_M4S2); // FCC('M4S2')
+ IF_EQUAL_RETURN(guid, MFVideoFormat_MJPG);
+ IF_EQUAL_RETURN(guid, MFVideoFormat_MP43); // FCC('MP43')
+ IF_EQUAL_RETURN(guid, MFVideoFormat_MP4S); // FCC('MP4S')
+ IF_EQUAL_RETURN(guid, MFVideoFormat_MP4V); // FCC('MP4V')
+ IF_EQUAL_RETURN(guid, MFVideoFormat_MPG1); // FCC('MPG1')
+ IF_EQUAL_RETURN(guid, MFVideoFormat_MSS1); // FCC('MSS1')
+ IF_EQUAL_RETURN(guid, MFVideoFormat_MSS2); // FCC('MSS2')
+ IF_EQUAL_RETURN(guid, MFVideoFormat_NV11); // FCC('NV11')
+ IF_EQUAL_RETURN(guid, MFVideoFormat_NV12); // FCC('NV12')
+ IF_EQUAL_RETURN(guid, MFVideoFormat_P010); // FCC('P010')
+ IF_EQUAL_RETURN(guid, MFVideoFormat_P016); // FCC('P016')
+ IF_EQUAL_RETURN(guid, MFVideoFormat_P210); // FCC('P210')
+ IF_EQUAL_RETURN(guid, MFVideoFormat_P216); // FCC('P216')
+ IF_EQUAL_RETURN(guid, MFVideoFormat_RGB24); // D3DFMT_R8G8B8
+ IF_EQUAL_RETURN(guid, MFVideoFormat_RGB32); // D3DFMT_X8R8G8B8
+ IF_EQUAL_RETURN(guid, MFVideoFormat_RGB555); // D3DFMT_X1R5G5B5
+ IF_EQUAL_RETURN(guid, MFVideoFormat_RGB565); // D3DFMT_R5G6B5
+ IF_EQUAL_RETURN(guid, MFVideoFormat_RGB8);
+ IF_EQUAL_RETURN(guid, MFVideoFormat_UYVY); // FCC('UYVY')
+ IF_EQUAL_RETURN(guid, MFVideoFormat_v210); // FCC('v210')
+ IF_EQUAL_RETURN(guid, MFVideoFormat_v410); // FCC('v410')
+ IF_EQUAL_RETURN(guid, MFVideoFormat_WMV1); // FCC('WMV1')
+ IF_EQUAL_RETURN(guid, MFVideoFormat_WMV2); // FCC('WMV2')
+ IF_EQUAL_RETURN(guid, MFVideoFormat_WMV3); // FCC('WMV3')
+ IF_EQUAL_RETURN(guid, MFVideoFormat_WVC1); // FCC('WVC1')
+ IF_EQUAL_RETURN(guid, MFVideoFormat_Y210); // FCC('Y210')
+ IF_EQUAL_RETURN(guid, MFVideoFormat_Y216); // FCC('Y216')
+ IF_EQUAL_RETURN(guid, MFVideoFormat_Y410); // FCC('Y410')
+ IF_EQUAL_RETURN(guid, MFVideoFormat_Y416); // FCC('Y416')
+ IF_EQUAL_RETURN(guid, MFVideoFormat_Y41P);
+ IF_EQUAL_RETURN(guid, MFVideoFormat_Y41T);
+ IF_EQUAL_RETURN(guid, MFVideoFormat_YUY2); // FCC('YUY2')
+ IF_EQUAL_RETURN(guid, MFVideoFormat_YV12); // FCC('YV12')
+ IF_EQUAL_RETURN(guid, MFVideoFormat_YVYU);
+
+ IF_EQUAL_RETURN(guid, MFAudioFormat_PCM); // WAVE_FORMAT_PCM
+ IF_EQUAL_RETURN(guid, MFAudioFormat_Float); // WAVE_FORMAT_IEEE_FLOAT
+ IF_EQUAL_RETURN(guid, MFAudioFormat_DTS); // WAVE_FORMAT_DTS
+ IF_EQUAL_RETURN(guid, MFAudioFormat_Dolby_AC3_SPDIF); // WAVE_FORMAT_DOLBY_AC3_SPDIF
+ IF_EQUAL_RETURN(guid, MFAudioFormat_DRM); // WAVE_FORMAT_DRM
+ IF_EQUAL_RETURN(guid, MFAudioFormat_WMAudioV8); // WAVE_FORMAT_WMAUDIO2
+ IF_EQUAL_RETURN(guid, MFAudioFormat_WMAudioV9); // WAVE_FORMAT_WMAUDIO3
+ IF_EQUAL_RETURN(guid, MFAudioFormat_WMAudio_Lossless); // WAVE_FORMAT_WMAUDIO_LOSSLESS
+ IF_EQUAL_RETURN(guid, MFAudioFormat_WMASPDIF); // WAVE_FORMAT_WMASPDIF
+ IF_EQUAL_RETURN(guid, MFAudioFormat_MSP1); // WAVE_FORMAT_WMAVOICE9
+ IF_EQUAL_RETURN(guid, MFAudioFormat_MP3); // WAVE_FORMAT_MPEGLAYER3
+ IF_EQUAL_RETURN(guid, MFAudioFormat_MPEG); // WAVE_FORMAT_MPEG
+ IF_EQUAL_RETURN(guid, MFAudioFormat_AAC); // WAVE_FORMAT_MPEG_HEAAC
+ IF_EQUAL_RETURN(guid, MFAudioFormat_ADTS); // WAVE_FORMAT_MPEG_ADTS_AAC
+
+ return NULL;
+} \ No newline at end of file
diff --git a/ARMFCaptureD3D/debug.h b/ARMFCaptureD3D/debug.h
new file mode 100644
index 0000000..21325ad
--- /dev/null
+++ b/ARMFCaptureD3D/debug.h
@@ -0,0 +1,32 @@
+
+
+// The following code enables you to view the contents of a media type while
+// debugging.
+#include "ARMFCaptureD3D.h"
+#include <strsafe.h>
+
+LPCWSTR GetGUIDNameConst(const GUID& guid);
+HRESULT GetGUIDName(const GUID& guid, WCHAR **ppwsz);
+
+HRESULT LogAttributeValueByIndex(IMFAttributes *pAttr, DWORD index);
+HRESULT SpecialCaseAttributeValue(GUID guid, const PROPVARIANT& var);
+
+#ifdef _DEBUG
+void DBGMSG(PCWSTR format, ...);
+HRESULT LogMediaType(IMFMediaType *pType);
+#else
+#define DBGMSG(...) /**/
+#define LogMediaType(a) /**/
+#endif
+
+HRESULT LogAttributeValueByIndex(IMFAttributes *pAttr, DWORD index);
+
+HRESULT GetGUIDName(const GUID& guid, WCHAR **ppwsz);
+
+void LogUINT32AsUINT64(const PROPVARIANT& var);
+
+float OffsetToFloat(const MFOffset& offset);
+HRESULT LogVideoArea(const PROPVARIANT& var);
+
+
+
diff --git a/ARMFCaptureD3D/device.cpp b/ARMFCaptureD3D/device.cpp
new file mode 100644
index 0000000..13ae7cc
--- /dev/null
+++ b/ARMFCaptureD3D/device.cpp
@@ -0,0 +1,1280 @@
+//////////////////////////////////////////////////////////////////////////
+//
+// device.cpp: Manages the Direct3D device
+//
+// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
+// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
+// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
+// PARTICULAR PURPOSE.
+//
+// Copyright (c) Microsoft Corporation. All rights reserved.
+//
+//////////////////////////////////////////////////////////////////////////
+
+#include "ARMFCaptureD3D.h"
+#include "BufferLock.h"
+#include "debug.h"
+#include "ARAnalyse.h"
+
+extern ARAnalyse *g_pAnalyse;
+
+void TransformImage_RGB24(
+ BYTE* pDest,
+ LONG lDestStride,
+ const BYTE* pSrc,
+ LONG lSrcStride,
+ DWORD dwWidthInPixels,
+ DWORD dwHeightInPixels
+ );
+
+void TransformImage_RGB32(
+ BYTE* pDest,
+ LONG lDestStride,
+ const BYTE* pSrc,
+ LONG lSrcStride,
+ DWORD dwWidthInPixels,
+ DWORD dwHeightInPixels
+ );
+
+void TransformImage_YUY2(
+ BYTE* pDest,
+ LONG lDestStride,
+ const BYTE* pSrc,
+ LONG lSrcStride,
+ DWORD dwWidthInPixels,
+ DWORD dwHeightInPixels
+ );
+
+void TransformImage_NV12(
+ BYTE* pDst,
+ LONG dstStride,
+ const BYTE* pSrc,
+ LONG srcStride,
+ DWORD dwWidthInPixels,
+ DWORD dwHeightInPixels
+ );
+
+
+RECT LetterBoxRect(const RECT& rcSrc, const RECT& rcDst);
+RECT CorrectAspectRatio(const RECT& src, const MFRatio& srcPAR);
+HRESULT GetDefaultStride(IMFMediaType *pType, LONG *plStride);
+
+
+inline LONG Width(const RECT& r)
+{
+ return r.right - r.left;
+}
+
+inline LONG Height(const RECT& r)
+{
+ return r.bottom - r.top;
+}
+
+
+// Static table of output formats and conversion functions.
+struct ConversionFunction
+{
+ GUID subtype;
+ IMAGE_TRANSFORM_FN xform;
+};
+
+
+ConversionFunction g_FormatConversions[] =
+{
+ { MFVideoFormat_RGB32, TransformImage_RGB32 },
+ { MFVideoFormat_RGB24, TransformImage_RGB24 },
+ { MFVideoFormat_YUY2, TransformImage_YUY2 },
+ { MFVideoFormat_NV12, TransformImage_NV12 }
+};
+
+const DWORD g_cFormats = ARRAYSIZE(g_FormatConversions);
+
+
+//-------------------------------------------------------------------
+// Constructor
+//-------------------------------------------------------------------
+
+DrawDevice::DrawDevice() :
+ m_hwnd(NULL),
+ m_pDevice(NULL),
+ m_pSwapChain(NULL),
+ m_pVertexBuffer(NULL),
+ m_pIndexBuffer(NULL),
+#ifdef DX9
+ m_pD3D(NULL),
+ m_format(D3DFMT_UNKNOWN),
+#else
+ m_format(DXGI_FORMAT_UNKNOWN),
+#endif
+ m_width(0),
+ m_height(0),
+ m_lDefaultStride(0),
+ m_interlace(MFVideoInterlace_Unknown),
+ m_convertFn(NULL)
+{
+ m_PixelAR.Denominator = m_PixelAR.Numerator = 1;
+
+ ZeroMemory(&m_d3dpp, sizeof(m_d3dpp));
+}
+
+
+//-------------------------------------------------------------------
+// Destructor
+//-------------------------------------------------------------------
+
+DrawDevice::~DrawDevice()
+{
+ DestroyDevice();
+}
+
+void DrawDevice::GetSize(UINT* width, UINT *height) const
+{
+ *width = m_width;
+ *height = m_height;
+}
+//-------------------------------------------------------------------
+// GetFormat
+//
+// Get a supported output format by index.
+//-------------------------------------------------------------------
+
+HRESULT DrawDevice::GetFormat(DWORD index, GUID *pSubtype) const
+{
+ if (index < g_cFormats)
+ {
+ *pSubtype = g_FormatConversions[index].subtype;
+ return S_OK;
+ }
+ return MF_E_NO_MORE_TYPES;
+}
+
+
+//-------------------------------------------------------------------
+// IsFormatSupported
+//
+// Query if a format is supported.
+//-------------------------------------------------------------------
+
+BOOL DrawDevice::IsFormatSupported(REFGUID subtype) const
+{
+ for (DWORD i = 0; i < g_cFormats; i++)
+ {
+ if (subtype == g_FormatConversions[i].subtype)
+ {
+ return TRUE;
+ }
+ }
+ return FALSE;
+}
+
+
+
+
+//-------------------------------------------------------------------
+// CreateDevice
+//
+// Create the Direct3D device.
+//-------------------------------------------------------------------
+
+HRESULT DrawDevice::CreateDevice(HWND hwnd)
+{
+ HRESULT hr = S_OK;
+ if (m_pDevice)
+ {
+ return S_OK;
+ }
+#ifdef DX9
+ // Create the Direct3D object.
+ if (m_pD3D == NULL)
+ {
+ m_pD3D = Direct3DCreate9(D3D_SDK_VERSION);
+
+ if (m_pD3D == NULL)
+ {
+ return E_FAIL;
+ }
+ }
+
+
+ D3DPRESENT_PARAMETERS pp = { 0 };
+ D3DDISPLAYMODE mode = { 0 };
+
+ pp.BackBufferFormat = D3DFMT_A8R8G8B8;
+ pp.SwapEffect = D3DSWAPEFFECT_FLIP;
+ pp.PresentationInterval = D3DPRESENT_INTERVAL_DEFAULT;
+ pp.Windowed = TRUE;
+ pp.hDeviceWindow = hwnd;
+
+ hr = m_pD3D->GetAdapterDisplayMode(
+ D3DADAPTER_DEFAULT,
+ &mode
+ );
+
+ if (FAILED(hr)) { goto done; }
+
+ hr = m_pD3D->CheckDeviceType(
+ D3DADAPTER_DEFAULT,
+ D3DDEVTYPE_HAL,
+ mode.Format,
+ pp.BackBufferFormat,
+ TRUE // windowed
+ );
+
+ if (FAILED(hr)) { goto done; }
+
+
+
+ hr = m_pD3D->CreateDevice(
+ D3DADAPTER_DEFAULT,
+ D3DDEVTYPE_HAL,
+ hwnd,
+ D3DCREATE_HARDWARE_VERTEXPROCESSING | D3DCREATE_FPU_PRESERVE,
+ &pp,
+ &m_pDevice
+ );
+#else
+
+ DXGI_SWAP_CHAIN_DESC pp = { 0 };
+ ZeroMemory( &pp, sizeof( pp ) );
+
+
+ pp.BufferCount = 1;
+ //pp.BufferDesc.Width = width;
+ //pp.BufferDesc.Height = height;
+ pp.BufferDesc.Format = DXGI_FORMAT_R8G8B8A8_UNORM;
+ pp.BufferDesc.RefreshRate.Numerator = 0; //users =0, originally 60
+ pp.BufferDesc.RefreshRate.Denominator = 0;
+ pp.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT;
+
+ //pp.SwapEffect = D3DSWAPEFFECT_COPY;
+ //pp.PresentationInterval = D3DPRESENT_INTERVAL_IMMEDIATE;
+ pp.Windowed = TRUE;
+ pp.OutputWindow = hwnd;
+
+ D3D_FEATURE_LEVEL FeatureLevels = D3D_FEATURE_LEVEL_11_0;
+
+
+ hr = D3D11CreateDevice( NULL,D3D_DRIVER_TYPE_HARDWARE, NULL, 0, &FeatureLevels, 1, D3D11_SDK_VERSION, &m_pDevice, &FeatureLevels, &m_pDeviceContext );
+
+#endif
+
+ if (FAILED(hr)) { goto done; }
+ // Turn on Blending
+ m_pDevice->SetRenderState(D3DRS_ALPHABLENDENABLE, TRUE);
+ m_pDevice->SetRenderState(D3DRS_BLENDOP, D3DBLENDOP_ADD);
+ m_pDevice->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA);
+ m_pDevice->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA);
+
+ m_hwnd = hwnd;
+ m_d3dpp = pp;
+
+done:
+ return hr;
+}
+
+//-------------------------------------------------------------------
+// SetConversionFunction
+//
+// Set the conversion function for the specified video format.
+//-------------------------------------------------------------------
+
+HRESULT DrawDevice::SetConversionFunction(REFGUID subtype)
+{
+ m_convertFn = NULL;
+
+ for (DWORD i = 0; i < g_cFormats; i++)
+ {
+ if (g_FormatConversions[i].subtype == subtype)
+ {
+ m_convertFn = g_FormatConversions[i].xform;
+ return S_OK;
+ }
+ }
+
+ return MF_E_INVALIDMEDIATYPE;
+}
+
+
+//-------------------------------------------------------------------
+// SetVideoType
+//
+// Set the video format.
+//-------------------------------------------------------------------
+
+HRESULT DrawDevice::SetVideoType(IMFMediaType *pType)
+{
+ HRESULT hr = S_OK;
+ GUID subtype = { 0 };
+ MFRatio PAR = { 0 };
+
+ // Find the video subtype.
+ hr = pType->GetGUID(MF_MT_SUBTYPE, &subtype);
+
+ if (FAILED(hr)) { goto done; }
+
+ // Choose a conversion function.
+ // (This also validates the format type.)
+
+ hr = SetConversionFunction(subtype);
+
+ if (FAILED(hr)) { goto done; }
+
+ //
+ // Get some video attributes.
+ //
+
+ // Get the frame size.
+ hr = MFGetAttributeSize(pType, MF_MT_FRAME_SIZE, &m_width, &m_height);
+
+ if (FAILED(hr)) { goto done; }
+
+
+ // Get the interlace mode. Default: assume progressive.
+ m_interlace = (MFVideoInterlaceMode)MFGetAttributeUINT32(
+ pType,
+ MF_MT_INTERLACE_MODE,
+ MFVideoInterlace_Progressive
+ );
+
+ // Get the image stride.
+ hr = GetDefaultStride(pType, &m_lDefaultStride);
+
+ if (FAILED(hr)) { goto done; }
+
+ // Get the pixel aspect ratio. Default: Assume square pixels (1:1)
+ hr = MFGetAttributeRatio(
+ pType,
+ MF_MT_PIXEL_ASPECT_RATIO,
+ (UINT32*)&PAR.Numerator,
+ (UINT32*)&PAR.Denominator
+ );
+
+ if (SUCCEEDED(hr))
+ {
+ m_PixelAR = PAR;
+ }
+ else
+ {
+ m_PixelAR.Numerator = m_PixelAR.Denominator = 1;
+ }
+#ifdef DX9
+ m_format = (D3DFORMAT)subtype.Data1;
+#else
+ m_format = (DXGI_FORMAT)subtype.Data1;
+#endif
+ // Create Direct3D swap chains.
+
+ hr = CreateSwapChains();
+
+ if (FAILED(hr)) { goto done; }
+
+
+ // Update the destination rectangle for the correct
+ // aspect ratio.
+
+ UpdateDestinationRect();
+
+done:
+ if (FAILED(hr))
+ {
+#ifdef DX9
+ m_format = D3DFMT_UNKNOWN;
+#else
+ m_format = DXGI_FORMAT_UNKNOWN;
+#endif
+ m_convertFn = NULL;
+ }
+ return hr;
+}
+
+//-------------------------------------------------------------------
+// UpdateDestinationRect
+//
+// Update the destination rectangle for the current window size.
+// The destination rectangle is letterboxed to preserve the
+// aspect ratio of the video image.
+//-------------------------------------------------------------------
+
+void DrawDevice::UpdateDestinationRect()
+{
+ RECT rcClient;
+ RECT rcSrc = { 0, 0, m_width, m_height };
+
+ GetClientRect(m_hwnd, &rcClient);
+
+ rcSrc = CorrectAspectRatio(rcSrc, m_PixelAR);
+
+ m_rcDest = LetterBoxRect(rcSrc, rcClient);
+}
+
+
+//-------------------------------------------------------------------
+// CreateSwapChains
+//
+// Create Direct3D swap chains.
+//-------------------------------------------------------------------
+
+HRESULT DrawDevice::CreateSwapChains()
+{
+ HRESULT hr = S_OK;
+#ifdef DX9
+ D3DPRESENT_PARAMETERS pp = { 0 };
+
+ SafeRelease(&m_pSwapChain);
+
+ pp.BackBufferWidth = m_width;
+ pp.BackBufferHeight = m_height;
+ pp.Windowed = TRUE;
+ pp.SwapEffect = D3DSWAPEFFECT_FLIP;
+ pp.hDeviceWindow = m_hwnd;
+ pp.BackBufferFormat = D3DFMT_A8R8G8B8;
+ pp.Flags =
+ D3DPRESENTFLAG_VIDEO | D3DPRESENTFLAG_DEVICECLIP |
+ D3DPRESENTFLAG_LOCKABLE_BACKBUFFER;
+ pp.PresentationInterval = D3DPRESENT_INTERVAL_DEFAULT;
+ //pp.PresentationInterval = D3DPRESENT_INTERVAL_IMMEDIATE;
+ pp.BackBufferCount = 2;
+
+ hr = m_pDevice->CreateAdditionalSwapChain(&pp, &m_pSwapChain);
+#else
+ DXGI_SWAP_CHAIN_DESC pp = { 0 };
+
+ SafeRelease(&m_pSwapChain);
+ pp.BufferCount = 1;
+ pp.BufferDesc.Width = m_width;
+ pp.BufferDesc.Height = m_height;
+ pp.BufferDesc.Format = DXGI_FORMAT_R8G8B8A8_UNORM;
+ pp.BufferDesc.RefreshRate.Numerator = 0; //users =0, originally 60
+ pp.BufferDesc.RefreshRate.Denominator = 0;
+ pp.Windowed = TRUE;
+ pp.SwapEffect = DXGI_SWAP_EFFECT_DISCARD; //D3DSWAPEFFECT_FLIP;
+ pp.OutputWindow = m_hwnd;
+
+ pp.Flags = DXGI_SWAP_CHAIN_FLAG_NONPREROTATED;
+ /* D3DPRESENTFLAG_VIDEO | D3DPRESENTFLAG_DEVICECLIP |
+ D3DPRESENTFLAG_LOCKABLE_BACKBUFFER;*/
+ //pp.PresentationInterval = D3DPRESENT_INTERVAL_IMMEDIATE;
+
+ IDXGIDevice* m_pDXGIDevice;
+ IDXGIAdapter* m_pDXGIAdapter;
+ IDXGIFactory* m_pDXGIFactory;
+
+ hr = m_pDevice->QueryInterface(__uuidof(IDXGIDevice), (void **)& m_pDXGIDevice);
+
+ if ( hr != S_OK )
+ {
+ DBGMSG(L"cDX10Mananger::Initialise(): Unable to get DXGIDevice (hr = 0x%0X)\n", hr );
+ return hr;
+ }
+
+ hr = m_pDXGIDevice->GetParent(__uuidof(IDXGIAdapter), (void **)& m_pDXGIAdapter);
+
+ if ( hr != S_OK )
+ {
+ DBGMSG(L"cDX10Mananger::Initialise(): Unable to get DXGIAdapter (hr = 0x%0X)\n", hr );
+ return hr;
+ }
+
+ hr = m_pDXGIAdapter->GetParent(__uuidof(IDXGIFactory), (void **)& m_pDXGIFactory);
+
+ if ( hr != S_OK )
+ {
+ DBGMSG(L"cDX10Mananger::Initialise(): Unable to get DXGIFactory (hr = 0x%0X)\n", hr );
+ return hr;
+ }
+ hr = m_pDXGIFactory->CreateSwapChain(m_pDevice, &pp, &m_pSwapChain );
+#endif
+
+ return hr;
+}
+
+
+//-------------------------------------------------------------------
+// DrawFrame
+//
+// Draw the video frame.
+//-------------------------------------------------------------------
+
+HRESULT DrawDevice::DrawFrame(IMFMediaBuffer *pBuffer)
+{
+ if (m_convertFn == NULL)
+ {
+ return MF_E_INVALIDREQUEST;
+ }
+
+ HRESULT hr = S_OK;
+ BYTE *pbScanline0 = NULL;
+ LONG lStride = 0;
+#ifdef DX9
+ D3DLOCKED_RECT lr;
+
+ IDirect3DSurface9 *pSurf = NULL;
+ IDirect3DSurface9 *pBB = NULL;
+#else
+ DXGI_MAPPED_RECT lr;
+
+ IDXGISurface *pSurf = NULL;
+ IDXGISurface *pBB = NULL;
+
+#endif
+ if (m_pDevice == NULL || m_pSwapChain == NULL)
+ {
+ return S_OK;
+ }
+
+
+ VideoBufferLock buffer(pBuffer); // Helper object to lock the video buffer.
+
+ hr = TestCooperativeLevel();
+
+ if (FAILED(hr)) { goto done; }
+
+ // Lock the video buffer. This method returns a pointer to the first scan
+ // line in the image, and the stride in bytes.
+
+ hr = buffer.LockBuffer(m_lDefaultStride, m_height, &pbScanline0, &lStride);
+
+ if (FAILED(hr)) { goto done; }
+#ifdef DX9
+ // Get the swap-chain surface.
+ hr = m_pSwapChain->GetBackBuffer(0, D3DBACKBUFFER_TYPE_MONO, &pSurf);
+
+ if (FAILED(hr)) { goto done; }
+
+ // Lock the swap-chain surface.
+ hr = pSurf->LockRect(&lr, NULL, D3DLOCK_NOSYSLOCK );
+#else
+ // Get the swap-chain surface.
+ hr = m_pSwapChain->GetBuffer(0, __uuidof(pSurf), reinterpret_cast<void**>(&pSurf));
+
+ if (FAILED(hr)) { goto done; }
+
+ // Lock the swap-chain surface.
+ hr = pSurf->Map( &lr, DXGI_MAP_WRITE );
+#endif
+ if (FAILED(hr)) { goto done; }
+
+
+ // Convert the frame. This also copies it to the Direct3D surface.
+
+ m_convertFn(
+ (BYTE*)lr.pBits,
+ lr.Pitch,
+ pbScanline0,
+ lStride,
+ m_width,
+ m_height
+ );
+#ifdef DX9
+ hr = pSurf->UnlockRect();
+
+ if (FAILED(hr)) { goto done; }
+
+
+ // Color fill the back buffer.
+ hr = m_pDevice->GetBackBuffer(0, 0, D3DBACKBUFFER_TYPE_MONO, &pBB);
+
+ if (FAILED(hr)) { goto done; }
+
+ hr = m_pDevice->ColorFill(pBB, NULL, D3DCOLOR_XRGB(0x80, 0x80, 0x80));
+
+ if (FAILED(hr)) { goto done; }
+
+
+ // Blit the frame.
+
+ hr = m_pDevice->StretchRect(pSurf, NULL, pBB, &m_rcDest, D3DTEXF_LINEAR);
+
+ if (FAILED(hr)) { goto done; }
+
+ RenderObjects();
+ // Present the frame.
+
+ hr = m_pDevice->Present(NULL, NULL, NULL, NULL);
+
+
+#else
+ hr = pSurf->Unmap();
+
+ if (FAILED(hr)) { goto done; }
+
+ //Create a render target view
+ ID3D11Texture2D *pBackBuffer;
+ ID3D11RenderTargetView *g_pRenderTargetView;
+
+ hr = m_pSwapChain->GetBuffer( 0, __uuidof( ID3D11Texture2D ), (LPVOID*)&pBackBuffer );
+
+ if (FAILED(hr)) { goto done; }
+
+ hr = m_pDevice->CreateRenderTargetView( pBackBuffer, NULL, &g_pRenderTargetView );
+ pBackBuffer->Release();
+ if (FAILED(hr)) { goto done; }
+
+ m_pDeviceContext->OMSetRenderTargets( 1, &g_pRenderTargetView, NULL );
+
+ //
+ // Clear the backbuffer
+ //
+ float ClearColor[4] = { 0.5f, 0.5f, 0.5f, 1.0f }; // RGBA
+ m_pDeviceContext->ClearRenderTargetView( g_pRenderTargetView, ClearColor );
+
+
+ if (FAILED(hr)) { goto done; }
+
+
+ // Blit the frame.
+
+ //hr = m_pDeviceContext->StretchRect(pSurf, NULL, pBB, &m_rcDest, D3DTEXF_LINEAR);
+
+ if (FAILED(hr)) { goto done; }
+
+
+ // Present the frame.
+
+ hr = m_pSwapChain->Present(0,0);
+#endif
+
+done:
+#ifdef DX9
+ SafeRelease(&pBB);
+ if ( pSurf) SafeRelease(&pSurf);
+#endif
+ return hr;
+}
+
+//-------------------------------------------------------------------
+// TestCooperativeLevel
+//
+// Test the cooperative-level status of the Direct3D device.
+//-------------------------------------------------------------------
+
+HRESULT DrawDevice::TestCooperativeLevel()
+{
+ if (m_pDevice == NULL)
+ {
+ return E_FAIL;
+ }
+
+ HRESULT hr = S_OK;
+#ifdef DX9
+ // Check the current status of D3D9 device.
+ hr = m_pDevice->TestCooperativeLevel();
+
+ switch (hr)
+ {
+ case D3D_OK:
+ break;
+
+ case D3DERR_DEVICELOST:
+ hr = S_OK;
+
+ case D3DERR_DEVICENOTRESET:
+ hr = ResetDevice();
+ break;
+
+ default:
+ // Some other failure.
+ break;
+ }
+#endif
+ return hr;
+}
+
+
+//-------------------------------------------------------------------
+// ResetDevice
+//
+// Resets the Direct3D device.
+//-------------------------------------------------------------------
+
+HRESULT DrawDevice::ResetDevice()
+{
+
+ HRESULT hr = S_OK;
+#ifdef DX9
+ if (m_pDevice)
+ {
+ D3DPRESENT_PARAMETERS d3dpp = m_d3dpp;
+
+ hr = m_pDevice->Reset(&d3dpp);
+
+ if (FAILED(hr))
+ {
+ DestroyDevice();
+ }
+ }
+
+ if (m_pDevice == NULL)
+ {
+ hr = CreateDevice(m_hwnd);
+
+ if (FAILED(hr)) { goto done; }
+ }
+
+ if ((m_pSwapChain == NULL) && (m_format != D3DFMT_UNKNOWN))
+ {
+ hr = CreateSwapChains();
+
+ if (FAILED(hr)) { goto done; }
+
+ UpdateDestinationRect();
+ }
+#else
+ if (m_pDevice)
+ {
+ DestroyDevice();
+ }
+
+ if (m_pDevice == NULL)
+ {
+ hr = CreateDevice(m_hwnd);
+
+ if (FAILED(hr)) { goto done; }
+ }
+
+ if ((m_pSwapChain == NULL) && (m_format != DXGI_FORMAT_UNKNOWN))
+ {
+ hr = CreateSwapChains();
+
+ if (FAILED(hr)) { goto done; }
+
+ UpdateDestinationRect();
+ }
+#endif
+done:
+
+ return hr;
+}
+
+
+//-------------------------------------------------------------------
+// DestroyDevice
+//
+// Release all Direct3D resources.
+//-------------------------------------------------------------------
+
+void DrawDevice::DestroyDevice()
+{
+ SafeRelease(&m_pSwapChain);
+ SafeRelease(&m_pDevice);
+#ifdef DX9
+ SafeRelease(&m_pD3D);
+ if ( m_pVertexBuffer ) SafeRelease(&m_pVertexBuffer);
+ if ( m_pIndexBuffer ) SafeRelease(&m_pIndexBuffer);
+#endif
+}
+
+
+struct CUSTOMVERTEX {FLOAT X, Y, Z,RHW; DWORD COLOR;};
+
+typedef struct CUSTOMVERTEX CustomVertex;
+
+#define CUSTOMFVF (D3DFVF_XYZRHW | D3DFVF_DIFFUSE)
+
+#define TRSF( axe, data ) (translate##axe + (scale##axe * data));
+
+HRESULT DrawDevice::RenderObjects()
+{
+ HRESULT hr = S_OK;
+ //const ARFloat* nMatrix;
+ DWORD color = D3DCOLOR_ARGB(127, 0, 127, 0);
+ int count = g_pAnalyse->markers.size();
+ if ( !count ) return hr;
+ //D3DMATRIX world_matrix;
+ //D3DMATRIX view_matrix;
+ //D3DMATRIX projection_matrix;
+
+ //nMatrix = g_pAnalyse->getModelViewMatrix();
+ //
+ ////OpenGL
+ // //m0 m4 m8 m12
+ // //m1 m5 m9 m13
+ // //m2 m6 m10 m14
+ // //m3 m7 m11 m15
+ // //WPF
+ // //M11 M12 M13 M14
+ // //M21 M22 M23 M24
+ // //M31 M32 M33 M34
+ // //M41 M42 M43 M44
+ //
+ //view_matrix._11 = nMatrix[0];
+ // view_matrix._12 = nMatrix[4];
+ // view_matrix._13 = nMatrix[8];
+ // view_matrix._14 = nMatrix[12];
+ // view_matrix._21 = nMatrix[1];
+ // view_matrix._22 = nMatrix[5];
+ // view_matrix._23 = nMatrix[9];
+ // view_matrix._24 = nMatrix[13];
+ // view_matrix._31 = nMatrix[2];
+ // view_matrix._32 = nMatrix[6];
+ // view_matrix._33 = nMatrix[10];
+ // view_matrix._34 = nMatrix[14];
+ // view_matrix._41 = nMatrix[3];
+ // view_matrix._42 = nMatrix[7];
+ // view_matrix._43 = nMatrix[11];
+ // view_matrix._44 = nMatrix[15];
+ //nMatrix = g_pAnalyse->getProjectionMatrix();
+ //projection_matrix._11 = nMatrix[0];
+ // projection_matrix._12 = nMatrix[4];
+ // projection_matrix._13 = nMatrix[8];
+ // projection_matrix._14 = nMatrix[12];
+ // projection_matrix._21 = nMatrix[1];
+ // projection_matrix._22 = nMatrix[5];
+ // projection_matrix._23 = nMatrix[9];
+ // projection_matrix._24 = nMatrix[13];
+ // projection_matrix._31 = nMatrix[2];
+ // projection_matrix._32 = nMatrix[6];
+ // projection_matrix._33 = nMatrix[10];
+ // projection_matrix._34 = nMatrix[14];
+ // projection_matrix._41 = nMatrix[3];
+ // projection_matrix._42 = nMatrix[7];
+ // projection_matrix._43 = nMatrix[11];
+ // projection_matrix._44 = nMatrix[15];
+
+ float scaleX = (float)(m_rcDest.right - m_rcDest.left ) / (float)m_width;
+ float scaleY = (float)(m_rcDest.bottom - m_rcDest.top ) / (float)m_height;
+ float translateX = m_rcDest.left;
+ float translateY = m_rcDest.top;
+ CustomVertex *quad = new CustomVertex[4*count];
+ short *indexes = new short[6*count];
+ int i =0;
+ for( ARAnalyse::MarkersMap::iterator iter = g_pAnalyse->markers.begin(); iter != g_pAnalyse->markers.end(); iter++)
+ {
+ int index = i*4;
+ ARToolKitPlus::ARMarkerInfo info = g_pAnalyse->getDetectedMarker(i++);
+
+ quad[index].X = TRSF( X, info.vertex[0][0]) ;
+ quad[index].Y = TRSF( Y, (m_height - info.vertex[0][1]));
+ quad[index].Z = 0.0;
+ quad[index].RHW = 1.0f;
+ quad[index++].COLOR = color;
+ quad[index].X = TRSF( X, info.vertex[1][0]);
+ quad[index].Y = TRSF( Y, (m_height - info.vertex[1][1]));
+ quad[index].Z = 0;
+ quad[index].RHW = 1.0f;
+ quad[index++].COLOR = color;
+ quad[index].X = TRSF( X, info.vertex[2][0]);
+ quad[index].Y = TRSF( Y, (m_height - info.vertex[2][1]));
+ quad[index].Z = 0;
+ quad[index].RHW = 1.0f;
+ quad[index++].COLOR = color;
+ quad[index].X = TRSF( X, info.vertex[3][0]);
+ quad[index].Y = TRSF( Y, (m_height - info.vertex[3][1]));
+ quad[index].Z = 0;
+ quad[index].RHW = 1.0f;
+ quad[index].COLOR = color;
+ }
+ int j = 0;
+ for ( int i = 0; i < count; i++ )
+ {
+ int index = i*4;
+ indexes[j++] = index+0;
+ indexes[j++] = index+2;
+ indexes[j++] = index+1;
+ indexes[j++] = index+3;
+ indexes[j++] = index+2;
+ indexes[j++] = index+0;
+ }
+ //if ( !m_pVertexBuffer )
+ //{
+ // // dim the vertex buffer to containt maximun markers
+ //hr = m_pDevice->CreateVertexBuffer(4*4096 *sizeof(CustomVertex), D3DUSAGE_WRITEONLY, CUSTOMFVF, D3DPOOL_DEFAULT, &m_pVertexBuffer, NULL);
+ //if(FAILED(hr)) goto done;
+ //}
+ //if ( !m_pIndexBuffer )
+ //{
+ // // dim the index buffer to containt maximun markers
+ //hr = m_pDevice->CreateIndexBuffer(6*4096*sizeof(short), D3DUSAGE_WRITEONLY, D3DFMT_INDEX16, D3DPOOL_DEFAULT, &m_pIndexBuffer, NULL);
+ //if(FAILED(hr)) goto done;
+ //}
+ //// copy vertex buffer
+ //VOID* pVoid;
+ //hr = m_pVertexBuffer->Lock(0, 0, (void**)&pVoid, 0);
+ //if(FAILED(hr)) goto done;
+ //
+ //memcpy(pVoid, quad,4*count*sizeof(CustomVertex));
+ //m_pVertexBuffer->Unlock();
+
+ //// copy index buffer
+ //hr = m_pIndexBuffer->Lock(0, 0, (void**)&pVoid, 0);
+ //if(FAILED(hr)) goto done;
+ //
+ //memcpy(pVoid, indexes, 6*count*sizeof(short));
+ //m_pIndexBuffer->Unlock();
+ //memset( (void*) &world_matrix , 0, sizeof( world_matrix ));
+ ////D3DMatrixIdentity( &world_matrix );
+ //world_matrix._11 = scaleX;
+ //world_matrix._22 = scaleY;
+ //world_matrix._33 = 1.0; //scale Z
+ //world_matrix._41 = translateX;
+ //world_matrix._42 = translateY;
+ //world_matrix._43 = 0.0; // translate Z
+ //world_matrix._44 = 1.0;
+
+ //m_pDevice->SetRenderState(D3DRS_FILLMODE,D3DFILL_WIREFRAME);
+ //m_pDevice->SetRenderState(D3DRS_LIGHTING, true);
+ //m_pDevice->LightEnable( 0, TRUE );
+
+ m_pDevice->BeginScene();
+ //m_pDevice->SetTransform(D3DTS_WORLD, &world_matrix);
+ //m_pDevice->SetTransform(D3DTS_VIEW, &view_matrix);
+ //m_pDevice->SetTransform(D3DTS_PROJECTION, &projection_matrix);
+ m_pDevice->SetFVF(CUSTOMFVF);
+ //m_pDevice->SetIndices(m_pIndexBuffer);
+ //m_pDevice->SetStreamSource(0, m_pVertexBuffer, 0, sizeof(CustomVertex));
+ //m_pDevice->DrawIndexedPrimitive(D3DPT_TRIANGLELIST, 0, 0, 4*count, 0, 2*count);
+ //m_pDevice->DrawIndexedPrimitive(D3DPT_LINELIST, 0, 0, 4*count, 0, 2*count);
+ m_pDevice->DrawIndexedPrimitiveUP(D3DPT_TRIANGLELIST, 0, 4*count, 2*count, indexes, D3DFMT_INDEX16,quad,sizeof(CustomVertex));
+ m_pDevice->EndScene();
+
+ //m_pDevice->SetRenderState(D3DRS_FILLMODE,D3DFILL_SOLID);
+
+done:
+ delete quad;
+ delete indexes;
+ return hr;
+}
+
+//-------------------------------------------------------------------
+//
+// Conversion functions
+//
+//-------------------------------------------------------------------
+
+__forceinline BYTE Clip(int clr)
+{
+ return (BYTE)(clr < 0 ? 0 : ( clr > 255 ? 255 : clr ));
+}
+
+__forceinline RGBQUAD ConvertYCrCbToRGB(
+ int y,
+ int cr,
+ int cb
+ )
+{
+ RGBQUAD rgbq;
+
+ int c = y - 16;
+ int d = cb - 128;
+ int e = cr - 128;
+
+ rgbq.rgbRed = Clip(( 298 * c + 409 * e + 128) >> 8);
+ rgbq.rgbGreen = Clip(( 298 * c - 100 * d - 208 * e + 128) >> 8);
+ rgbq.rgbBlue = Clip(( 298 * c + 516 * d + 128) >> 8);
+
+ return rgbq;
+}
+
+
+//-------------------------------------------------------------------
+// TransformImage_RGB24
+//
+// RGB-24 to RGB-32
+//-------------------------------------------------------------------
+
+void TransformImage_RGB24(
+ BYTE* pDest,
+ LONG lDestStride,
+ const BYTE* pSrc,
+ LONG lSrcStride,
+ DWORD dwWidthInPixels,
+ DWORD dwHeightInPixels
+ )
+{
+ for (DWORD y = 0; y < dwHeightInPixels; y++)
+ {
+ RGBTRIPLE *pSrcPel = (RGBTRIPLE*)pSrc;
+ DWORD *pDestPel = (DWORD*)pDest;
+
+ for (DWORD x = 0; x < dwWidthInPixels; x++)
+ {
+#ifdef DX9
+ pDestPel[x] = D3DCOLOR_XRGB(
+ pSrcPel[x].rgbtRed,
+ pSrcPel[x].rgbtGreen,
+ pSrcPel[x].rgbtBlue
+ );
+#else
+ pDestPel[x] = pSrcPel[x].rgbtRed;
+#endif
+ }
+
+ pSrc += lSrcStride;
+ pDest += lDestStride;
+ }
+}
+
+//-------------------------------------------------------------------
+// TransformImage_RGB32
+//
+// RGB-32 to RGB-32
+//
+// Note: This function is needed to copy the image from system
+// memory to the Direct3D surface.
+//-------------------------------------------------------------------
+
+void TransformImage_RGB32(
+ BYTE* pDest,
+ LONG lDestStride,
+ const BYTE* pSrc,
+ LONG lSrcStride,
+ DWORD dwWidthInPixels,
+ DWORD dwHeightInPixels
+ )
+{
+ MFCopyImage(pDest, lDestStride, pSrc, lSrcStride, dwWidthInPixels * 4, dwHeightInPixels);
+}
+
+//-------------------------------------------------------------------
+// TransformImage_YUY2
+//
+// YUY2 to RGB-32
+//-------------------------------------------------------------------
+
+void TransformImage_YUY2(
+ BYTE* pDest,
+ LONG lDestStride,
+ const BYTE* pSrc,
+ LONG lSrcStride,
+ DWORD dwWidthInPixels,
+ DWORD dwHeightInPixels
+ )
+{
+ for (DWORD y = 0; y < dwHeightInPixels; y++)
+ {
+ RGBQUAD *pDestPel = (RGBQUAD*)pDest;
+ WORD *pSrcPel = (WORD*)pSrc;
+
+ for (DWORD x = 0; x < dwWidthInPixels; x += 2)
+ {
+ // Byte order is U0 Y0 V0 Y1
+
+ int y0 = (int)LOBYTE(pSrcPel[x]);
+ int u0 = (int)HIBYTE(pSrcPel[x]);
+ int y1 = (int)LOBYTE(pSrcPel[x + 1]);
+ int v0 = (int)HIBYTE(pSrcPel[x + 1]);
+
+ pDestPel[x] = ConvertYCrCbToRGB(y0, v0, u0);
+ pDestPel[x + 1] = ConvertYCrCbToRGB(y1, v0, u0);
+ }
+
+ pSrc += lSrcStride;
+ pDest += lDestStride;
+ }
+
+}
+
+
+//-------------------------------------------------------------------
+// TransformImage_NV12
+//
+// NV12 to RGB-32
+//-------------------------------------------------------------------
+
+void TransformImage_NV12(
+ BYTE* pDst,
+ LONG dstStride,
+ const BYTE* pSrc,
+ LONG srcStride,
+ DWORD dwWidthInPixels,
+ DWORD dwHeightInPixels
+ )
+{
+ const BYTE* lpBitsY = pSrc;
+ const BYTE* lpBitsCb = lpBitsY + (dwHeightInPixels * srcStride);;
+ const BYTE* lpBitsCr = lpBitsCb + 1;
+
+ for (UINT y = 0; y < dwHeightInPixels; y += 2)
+ {
+ const BYTE* lpLineY1 = lpBitsY;
+ const BYTE* lpLineY2 = lpBitsY + srcStride;
+ const BYTE* lpLineCr = lpBitsCr;
+ const BYTE* lpLineCb = lpBitsCb;
+
+ LPBYTE lpDibLine1 = pDst;
+ LPBYTE lpDibLine2 = pDst + dstStride;
+
+ for (UINT x = 0; x < dwWidthInPixels; x += 2)
+ {
+ int y0 = (int)lpLineY1[0];
+ int y1 = (int)lpLineY1[1];
+ int y2 = (int)lpLineY2[0];
+ int y3 = (int)lpLineY2[1];
+ int cb = (int)lpLineCb[0];
+ int cr = (int)lpLineCr[0];
+
+ RGBQUAD r = ConvertYCrCbToRGB(y0, cr, cb);
+ lpDibLine1[0] = r.rgbBlue;
+ lpDibLine1[1] = r.rgbGreen;
+ lpDibLine1[2] = r.rgbRed;
+ lpDibLine1[3] = 0; // Alpha
+
+ r = ConvertYCrCbToRGB(y1, cr, cb);
+ lpDibLine1[4] = r.rgbBlue;
+ lpDibLine1[5] = r.rgbGreen;
+ lpDibLine1[6] = r.rgbRed;
+ lpDibLine1[7] = 0; // Alpha
+
+ r = ConvertYCrCbToRGB(y2, cr, cb);
+ lpDibLine2[0] = r.rgbBlue;
+ lpDibLine2[1] = r.rgbGreen;
+ lpDibLine2[2] = r.rgbRed;
+ lpDibLine2[3] = 0; // Alpha
+
+ r = ConvertYCrCbToRGB(y3, cr, cb);
+ lpDibLine2[4] = r.rgbBlue;
+ lpDibLine2[5] = r.rgbGreen;
+ lpDibLine2[6] = r.rgbRed;
+ lpDibLine2[7] = 0; // Alpha
+
+ lpLineY1 += 2;
+ lpLineY2 += 2;
+ lpLineCr += 2;
+ lpLineCb += 2;
+
+ lpDibLine1 += 8;
+ lpDibLine2 += 8;
+ }
+
+ pDst += (2 * dstStride);
+ lpBitsY += (2 * srcStride);
+ lpBitsCr += srcStride;
+ lpBitsCb += srcStride;
+ }
+}
+
+
+//-------------------------------------------------------------------
+// LetterBoxDstRect
+//
+// Takes a src rectangle and constructs the largest possible
+// destination rectangle within the specifed destination rectangle
+// such thatthe video maintains its current shape.
+//
+// This function assumes that pels are the same shape within both the
+// source and destination rectangles.
+//
+//-------------------------------------------------------------------
+
+RECT LetterBoxRect(const RECT& rcSrc, const RECT& rcDst)
+{
+ // figure out src/dest scale ratios
+ int iSrcWidth = Width(rcSrc);
+ int iSrcHeight = Height(rcSrc);
+
+ int iDstWidth = Width(rcDst);
+ int iDstHeight = Height(rcDst);
+
+ int iDstLBWidth;
+ int iDstLBHeight;
+
+ if (MulDiv(iSrcWidth, iDstHeight, iSrcHeight) <= iDstWidth) {
+
+ // Column letter boxing ("pillar box")
+
+ iDstLBWidth = MulDiv(iDstHeight, iSrcWidth, iSrcHeight);
+ iDstLBHeight = iDstHeight;
+ }
+ else {
+
+ // Row letter boxing.
+
+ iDstLBWidth = iDstWidth;
+ iDstLBHeight = MulDiv(iDstWidth, iSrcHeight, iSrcWidth);
+ }
+
+
+ // Create a centered rectangle within the current destination rect
+
+ RECT rc;
+
+ LONG left = rcDst.left + ((iDstWidth - iDstLBWidth) / 2);
+ LONG top = rcDst.top + ((iDstHeight - iDstLBHeight) / 2);
+
+ SetRect(&rc, left, top, left + iDstLBWidth, top + iDstLBHeight);
+
+ return rc;
+}
+
+
+//-----------------------------------------------------------------------------
+// CorrectAspectRatio
+//
+// Converts a rectangle from the source's pixel aspect ratio (PAR) to 1:1 PAR.
+// Returns the corrected rectangle.
+//
+// For example, a 720 x 486 rect with a PAR of 9:10, when converted to 1x1 PAR,
+// is stretched to 720 x 540.
+//-----------------------------------------------------------------------------
+
+RECT CorrectAspectRatio(const RECT& src, const MFRatio& srcPAR)
+{
+ // Start with a rectangle the same size as src, but offset to the origin (0,0).
+ RECT rc = {0, 0, src.right - src.left, src.bottom - src.top};
+
+ if ((srcPAR.Numerator != 1) || (srcPAR.Denominator != 1))
+ {
+ // Correct for the source's PAR.
+
+ if (srcPAR.Numerator > srcPAR.Denominator)
+ {
+ // The source has "wide" pixels, so stretch the width.
+ rc.right = MulDiv(rc.right, srcPAR.Numerator, srcPAR.Denominator);
+ }
+ else if (srcPAR.Numerator < srcPAR.Denominator)
+ {
+ // The source has "tall" pixels, so stretch the height.
+ rc.bottom = MulDiv(rc.bottom, srcPAR.Denominator, srcPAR.Numerator);
+ }
+ // else: PAR is 1:1, which is a no-op.
+ }
+ return rc;
+}
+
+
+//-----------------------------------------------------------------------------
+// GetDefaultStride
+//
+// Gets the default stride for a video frame, assuming no extra padding bytes.
+//
+//-----------------------------------------------------------------------------
+
+HRESULT GetDefaultStride(IMFMediaType *pType, LONG *plStride)
+{
+ LONG lStride = 0;
+
+ // Try to get the default stride from the media type.
+ HRESULT hr = pType->GetUINT32(MF_MT_DEFAULT_STRIDE, (UINT32*)&lStride);
+ if (FAILED(hr))
+ {
+ // Attribute not set. Try to calculate the default stride.
+ GUID subtype = GUID_NULL;
+
+ UINT32 width = 0;
+ UINT32 height = 0;
+
+ // Get the subtype and the image size.
+ hr = pType->GetGUID(MF_MT_SUBTYPE, &subtype);
+ if (SUCCEEDED(hr))
+ {
+ hr = MFGetAttributeSize(pType, MF_MT_FRAME_SIZE, &width, &height);
+ }
+ if (SUCCEEDED(hr))
+ {
+ hr = MFGetStrideForBitmapInfoHeader(subtype.Data1, width, &lStride);
+ }
+
+ // Set the attribute for later reference.
+ if (SUCCEEDED(hr))
+ {
+ (void)pType->SetUINT32(MF_MT_DEFAULT_STRIDE, UINT32(lStride));
+ }
+ }
+
+ if (SUCCEEDED(hr))
+ {
+ *plStride = lStride;
+ }
+ return hr;
+}
+
diff --git a/ARMFCaptureD3D/device.h b/ARMFCaptureD3D/device.h
new file mode 100644
index 0000000..3be3c16
--- /dev/null
+++ b/ARMFCaptureD3D/device.h
@@ -0,0 +1,93 @@
+//////////////////////////////////////////////////////////////////////////
+//
+// device.h: Manages the Direct3D device
+//
+// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
+// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
+// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
+// PARTICULAR PURPOSE.
+//
+// Copyright (c) Microsoft Corporation. All rights reserved.
+//
+//////////////////////////////////////////////////////////////////////////
+
+
+#pragma once
+
+// Function pointer for the function that transforms the image.
+
+typedef void (*IMAGE_TRANSFORM_FN)(
+ BYTE* pDest,
+ LONG lDestStride,
+ const BYTE* pSrc,
+ LONG lSrcStride,
+ DWORD dwWidthInPixels,
+ DWORD dwHeightInPixels
+ );
+
+
+// DrawDevice class
+
+class DrawDevice
+{
+private:
+
+ HWND m_hwnd;
+#ifdef DX9
+ IDirect3D9 *m_pD3D;
+ IDirect3DDevice9 *m_pDevice;
+ IDirect3DSwapChain9 *m_pSwapChain;
+ IDirect3DVertexBuffer9 *m_pVertexBuffer;
+ IDirect3DIndexBuffer9 *m_pIndexBuffer;
+
+ D3DPRESENT_PARAMETERS m_d3dpp;
+
+ // Format information
+ D3DFORMAT m_format;
+#else
+ //IDirect3D9 *m_pD3D;
+ ID3D11Device *m_pDevice;
+ ID3D11DeviceContext *m_pDeviceContext;
+ IDXGISwapChain *m_pSwapChain;
+
+ DXGI_SWAP_CHAIN_DESC m_d3dpp;
+
+ // Format information
+ DXGI_FORMAT m_format;
+#endif
+ UINT m_width;
+ UINT m_height;
+ LONG m_lDefaultStride;
+ MFRatio m_PixelAR;
+ MFVideoInterlaceMode m_interlace;
+ RECT m_rcDest; // Destination rectangle
+
+ // Drawing
+ IMAGE_TRANSFORM_FN m_convertFn; // Function to convert the video to RGB32
+
+private:
+
+ HRESULT TestCooperativeLevel();
+ HRESULT SetConversionFunction(REFGUID subtype);
+ HRESULT CreateSwapChains();
+ void UpdateDestinationRect();
+
+public:
+
+ DrawDevice();
+ virtual ~DrawDevice();
+
+ HRESULT CreateDevice(HWND hwnd);
+ HRESULT ResetDevice();
+ void DestroyDevice();
+
+ HRESULT SetVideoType(IMFMediaType *pType);
+ HRESULT DrawFrame(IMFMediaBuffer *pBuffer);
+
+ HRESULT RenderObjects();
+
+ // What video formats we accept
+ BOOL IsFormatSupported(REFGUID subtype) const;
+ HRESULT GetFormat(DWORD index, GUID *pSubtype) const;
+ void GetSize(UINT* width, UINT *height) const;
+};
diff --git a/ARMFCaptureD3D/ipch/mfcaptured3d-28a9326a/armfcaptured3d-1ab7d59.ipch b/ARMFCaptureD3D/ipch/mfcaptured3d-28a9326a/armfcaptured3d-1ab7d59.ipch
new file mode 100644
index 0000000..2a3c16f
--- /dev/null
+++ b/ARMFCaptureD3D/ipch/mfcaptured3d-28a9326a/armfcaptured3d-1ab7d59.ipch
Binary files differ
diff --git a/ARMFCaptureD3D/options.cpp b/ARMFCaptureD3D/options.cpp
new file mode 100644
index 0000000..e7e7589
--- /dev/null
+++ b/ARMFCaptureD3D/options.cpp
@@ -0,0 +1,1146 @@
+// ****************************************************************************
+// ^FILE: options.c - implement the functions defined in <options.h>
+//
+// ^HISTORY:
+// 01/16/92 Brad Appleton <bradapp@enteract.com> Created
+//
+// 03/23/93 Brad Appleton <bradapp@enteract.com>
+// - Added OptIstreamIter class
+//
+// 10/08/93 Brad Appleton <bradapp@enteract.com>
+// - Added "hidden" options
+//
+// 02/08/94 Brad Appleton <bradapp@enteract.com>
+// - Added "OptionSpec" class
+// - Permitted use of stdio instead of iostreams via #ifdef USE_STDIO
+//
+// 03/08/94 Brad Appleton <bradapp@enteract.com>
+// - completed support for USE_STDIO
+// - added #ifdef NO_USAGE for people who always want to print their own
+// - Fixed stupid NULL pointer error in OptionsSpec class
+//
+// 07/31/97 Brad Appleton <bradapp@enteract.com>
+// - Added PARSE_POS control flag and POSITIONAL return value.
+// ^^**************************************************************************
+
+
+#include <stdlib.h>
+#include <ctype.h>
+#include <string.h>
+
+#include "options.h"
+#ifndef _WIN32
+#include <unistd.h>
+#endif
+
+using std::cerr;
+using std::endl;
+
+
+
+static const char ident[] = "@(#)Options 1.05" ;
+
+ // I need a portable version of "tolower" that does NOT modify
+ // non-uppercase characters.
+ //
+#define TOLOWER(c) (isupper(c) ? tolower(c) : c)
+
+ // Use this to shut the compiler up about NULL strings
+#define NULLSTR (char *)NULL
+
+// ******************************************************** insertion operators
+
+ // If you are using <stdio.h> then you need this stuff!
+ // If you are using <iostream.h> then #ifdef this stuff out
+ //
+
+
+#ifdef USE_STDIO
+
+ // Implement just enough of ostream to get this file to compile
+ //
+
+static const char endl = '\n' ;
+
+class ostream {
+public:
+ ostream(FILE * fileptr) : fp(fileptr) {}
+
+ ostream &
+ operator<<(char ch);
+
+ ostream &
+ operator<<(const char * str);
+
+ ostream &
+ write(const char * buf, unsigned bufsize);
+
+private:
+ FILE * fp;
+} ;
+
+ostream &
+ostream::operator<<(char ch) {
+ fputc(ch, fp);
+ return *this;
+}
+
+ostream &
+ostream::operator<<(const char * str) {
+ fputs(str, fp);
+ return *this;
+}
+
+ostream &
+ostream::write(const char * buf, unsigned ) {
+ fputs(buf, fp);
+ return *this;
+}
+
+static ostream cerr(stderr);
+static ostream cout(stdout);
+
+#endif /* USE_STDIO */
+
+// ************************************************************** OptIter
+
+OptIter::~OptIter(void) {}
+
+const char *
+OptIter::operator()(void) {
+ const char * elt = curr();
+ (void) next();
+ return elt;
+}
+
+// ************************************************************** OptIterRwd
+
+OptIterRwd::OptIterRwd(void) {}
+
+OptIterRwd::~OptIterRwd(void) {}
+
+// ************************************************************** OptArgvIter
+
+OptArgvIter::~OptArgvIter(void) {}
+
+const char *
+OptArgvIter::curr(void) {
+ return ((ndx == ac) || (av[ndx] == NULL)) ? NULLSTR : av[ndx];
+}
+
+void
+OptArgvIter::next(void) {
+ if ((ndx != ac) && av[ndx]) ++ndx;
+}
+
+const char *
+OptArgvIter::operator()(void) {
+ return ((ndx == ac) || (av[ndx] == NULL)) ? NULLSTR : av[ndx++];
+}
+
+void
+OptArgvIter::rewind(void) { ndx = 0; }
+
+// ************************************************************** OptStrTokIter
+
+static const char WHITESPACE[] = " \t\n\r\v\f" ;
+const char * OptStrTokIter::default_delims = WHITESPACE ;
+
+OptStrTokIter::OptStrTokIter(const char * tokens, const char * _delimiters)
+ : len(unsigned(strlen(tokens))), str(tokens), seps(_delimiters),
+ cur(NULLSTR), tokstr(NULLSTR)
+{
+ if (seps == NULL) seps = default_delims;
+ tokstr = new char[len + 1];
+ (void) ::strcpy(tokstr, str);
+ cur = ::strtok(tokstr, seps);
+}
+
+
+OptStrTokIter::~OptStrTokIter(void) { delete [] tokstr; }
+
+const char *
+OptStrTokIter::curr(void) { return cur; }
+
+void
+OptStrTokIter::next(void) { if (cur) cur = ::strtok(NULL, seps); }
+
+const char *
+OptStrTokIter::operator()(void) {
+ const char * elt = cur;
+ if (cur) cur = ::strtok(NULL, seps);
+ return elt;
+}
+
+void
+OptStrTokIter::rewind(void) {
+ (void) ::strcpy(tokstr, str);
+ cur = ::strtok(tokstr, seps);
+}
+
+// ************************************************************* OptIstreamIter
+
+#ifdef vms
+ enum { c_COMMENT = '!' } ;
+#else
+ enum { c_COMMENT = '#' } ;
+#endif
+
+const unsigned OptIstreamIter::MAX_LINE_LEN = 1024 ;
+
+ // Constructor
+OptIstreamIter::OptIstreamIter(istream & input) : is(input), tok_iter(NULL)
+{
+#ifdef USE_STDIO
+ fprintf(stderr, "%s: Can't use OptIstreamIter class:\n",
+ "OptIstreamIter::OptIstreamIter");
+ fprintf(stderr, "\tOptions(3C++) was compiled with USE_STDIO #defined.\n");
+ exit(-1);
+#endif /* USE_STDIO */
+}
+
+ // Destructor
+OptIstreamIter::~OptIstreamIter(void) {
+ delete tok_iter;
+}
+
+const char *
+OptIstreamIter::curr(void) {
+#ifdef USE_STDIO
+ return NULLSTR;
+#else
+ const char * result = NULLSTR;
+ if (tok_iter) result = tok_iter->curr();
+ if (result) return result;
+ fill();
+ return (! is) ? NULLSTR : tok_iter->curr();
+#endif /* USE_STDIO */
+}
+
+void
+OptIstreamIter::next(void) {
+#ifdef USE_STDIO
+ return;
+#else
+ const char * result = NULLSTR;
+ if (tok_iter) result = tok_iter->operator()();
+ if (result) return;
+ fill();
+ if (! is) tok_iter->next();
+#endif /* USE_STDIO */
+}
+
+const char *
+OptIstreamIter::operator()(void) {
+#ifdef USE_STDIO
+ return NULLSTR;
+#else
+ const char * result = NULLSTR;
+ if (tok_iter) result = tok_iter->operator()();
+ if (result) return result;
+ fill();
+ return (! is) ? NULLSTR : tok_iter->operator()();
+#endif /* USE_STDIO */
+}
+
+ // What we do is this: for each line of text in the istream, we use
+ // a OptStrTokIter to iterate over each token on the line.
+ //
+ // If the first non-white character on a line is c_COMMENT, then we
+ // consider the line to be a comment and we ignore it.
+ //
+void
+OptIstreamIter::fill(void) {
+#ifdef USE_STDIO
+ return;
+#else
+ char buf[OptIstreamIter::MAX_LINE_LEN];
+ do {
+ *buf = '\0';
+ is.getline(buf, sizeof(buf));
+ char * ptr = buf;
+ while (isspace(*ptr)) ++ptr;
+ if (*ptr && (*ptr != c_COMMENT)) {
+ delete tok_iter;
+ tok_iter = new OptStrTokIter(ptr);
+ return;
+ }
+ } while (is);
+#endif /* USE_STDIO */
+}
+
+// **************************************************** Options class utilities
+
+ // Is this option-char null?
+inline static int
+isNullOpt(char optchar) {
+ return ((! optchar) || isspace(optchar) || (! isprint(optchar)));
+}
+
+ // Check for explicit "end-of-options"
+inline static int
+isEndOpts(const char * token) {
+ return ((token == NULL) || (! ::strcmp(token, "--"))) ;
+}
+
+ // See if an argument is an option
+inline static int
+isOption(unsigned flags, const char * arg) {
+ return (((*arg != '\0') || (arg[1] != '\0')) &&
+ ((*arg == '-') || ((flags & Options::PLUS) && (*arg == '+')))) ;
+}
+
+ // See if we should be parsing only options or if we also need to
+ // parse positional arguments
+inline static int
+isOptsOnly(unsigned flags) {
+ return (flags & Options::PARSE_POS) ? 0 : 1;
+}
+
+ // return values for a keyword matching function
+enum kwdmatch_t { NO_MATCH, PARTIAL_MATCH, EXACT_MATCH } ;
+
+// ---------------------------------------------------------------------------
+// ^FUNCTION: kwdmatch - match a keyword
+//
+// ^SYNOPSIS:
+// static kwdmatch_t kwdmatch(src, attempt, len)
+//
+// ^PARAMETERS:
+// char * src -- the actual keyword to match
+// char * attempt -- the possible keyword to compare against "src"
+// int len -- number of character of "attempt" to consider
+// (if 0 then we should use all of "attempt")
+//
+// ^DESCRIPTION:
+// See if "attempt" matches some prefix of "src" (case insensitive).
+//
+// ^REQUIREMENTS:
+// - attempt should be non-NULL and non-empty
+//
+// ^SIDE-EFFECTS:
+// None.
+//
+// ^RETURN-VALUE:
+// An enumeration value of type kwdmatch_t corresponding to whether
+// We had an exact match, a partial match, or no match.
+//
+// ^ALGORITHM:
+// Trivial
+// ^^-------------------------------------------------------------------------
+static kwdmatch_t
+kwdmatch(const char * src, const char * attempt, size_t len =0) {
+ size_t i;
+
+ if (src == attempt) return EXACT_MATCH ;
+ if ((src == NULL) || (attempt == NULL)) return NO_MATCH ;
+ if ((! *src) && (! *attempt)) return EXACT_MATCH ;
+ if ((! *src) || (! *attempt)) return NO_MATCH ;
+
+ for (i = 0 ; ((i < len) || (len == 0)) &&
+ (attempt[i]) && (attempt[i] != ' ') ; i++) {
+ if (TOLOWER(src[i]) != TOLOWER(attempt[i])) return NO_MATCH ;
+ }
+
+ return (src[i]) ? PARTIAL_MATCH : EXACT_MATCH ;
+}
+
+// **************************************************************** OptionSpec
+
+ // Class that represents an option-specification
+ // *NOTE*:: Assumes that the char-ptr given to the constructor points
+ // to storage that will NOT be modified and whose lifetime will
+ // be as least as long as the OptionSpec object we construct.
+ //
+class OptionSpec {
+public:
+ OptionSpec(const char * decl =NULLSTR)
+ : hidden(0), spec(decl)
+ {
+ if (spec == NULL) spec = NULL_spec;
+ CheckHidden();
+ }
+
+ OptionSpec(const OptionSpec & cp) : hidden(cp.hidden), spec(cp.spec) {}
+
+ // NOTE: use default destructor!
+
+ // Assign to another OptionSpec
+ OptionSpec &
+ operator=(const OptionSpec & cp) {
+ if (this != &cp) {
+ spec = cp.spec;
+ hidden = cp.hidden;
+ }
+ return *this;
+ }
+
+ // Assign to a string
+ OptionSpec &
+ operator=(const char * decl) {
+ if (spec != decl) {
+ spec = decl;
+ hidden = 0;
+ CheckHidden();
+ }
+ return *this;
+ }
+
+ // Convert to char-ptr by returning the original declaration-string
+ operator const char*() { return isHiddenOpt() ? (spec - 1) : spec; }
+
+ // Is this option NULL?
+ int
+ isNULL(void) const { return ((spec == NULL) || (spec == NULL_spec)); }
+
+ // Is this options incorrectly specified?
+ int
+ isSyntaxError(const char * name) const;
+
+ // See if this is a Hidden option
+ int
+ isHiddenOpt(void) const { return hidden; }
+
+ // Get the corresponding option-character
+ char
+ OptChar(void) const { return *spec; }
+
+ // Get the corresponding long-option string
+ const char *
+ LongOpt(void) const {
+ return (spec[1] && spec[2] && (! isspace(spec[2]))) ? (spec + 2) : NULLSTR;
+ }
+
+ // Does this option require an argument?
+ int
+ isValRequired(void) const {
+ return ((spec[1] == ':') || (spec[1] == '+'));
+ }
+
+ // Does this option take an optional argument?
+ int
+ isValOptional(void) const {
+ return ((spec[1] == '?') || (spec[1] == '*'));
+ }
+
+ // Does this option take no arguments?
+ int
+ isNoArg(void) const {
+ return ((spec[1] == '|') || (! spec[1]));
+ }
+
+ // Can this option take more than one argument?
+ int
+ isList(void) const {
+ return ((spec[1] == '+') || (spec[1] == '*'));
+ }
+
+ // Does this option take any arguments?
+ int
+ isValTaken(void) const {
+ return (isValRequired() || isValOptional()) ;
+ }
+
+ // Format this option in the given buffer
+ unsigned
+ Format(char * buf, unsigned optctrls) const;
+
+private:
+ void
+ CheckHidden(void) {
+ if ((! hidden) && (*spec == '-')) {
+ ++hidden;
+ ++spec;
+ }
+ }
+
+ unsigned hidden : 1; // hidden-flag
+ const char * spec; // string specification
+
+ static const char NULL_spec[];
+} ;
+
+const char OptionSpec::NULL_spec[] = "\0\0\0" ;
+
+int
+OptionSpec::isSyntaxError(const char * name) const {
+ int error = 0;
+ if ((! spec) || (! *spec)) {
+ cerr << name << ": empty option specifier." << endl;
+ cerr << "\tmust be at least 1 character long." << endl;
+ ++error;
+ } else if (spec[1] && (strchr("|?:*+", spec[1]) == NULL)) {
+ cerr << name << ": bad option specifier \"" << spec << "\"." << endl;
+ cerr << "\t2nd character must be in the set \"|?:*+\"." << endl;
+ ++error;
+ }
+ return error;
+}
+
+// ---------------------------------------------------------------------------
+// ^FUNCTION: OptionSpec::Format - format an option-spec for a usage message
+//
+// ^SYNOPSIS:
+// unsigned OptionSpec::Format(buf, optctrls) const
+//
+// ^PARAMETERS:
+// char * buf -- where to print the formatted option
+// unsigned optctrls -- option-parsing configuration flags
+//
+// ^DESCRIPTION:
+// Self-explanatory.
+//
+// ^REQUIREMENTS:
+// - buf must be large enough to hold the result
+//
+// ^SIDE-EFFECTS:
+// - writes to buf.
+//
+// ^RETURN-VALUE:
+// Number of characters written to buf.
+//
+// ^ALGORITHM:
+// Follow along in the source - it's not hard but it is tedious!
+// ^^-------------------------------------------------------------------------
+unsigned
+OptionSpec::Format(char * buf, unsigned optctrls) const {
+#ifdef NO_USAGE
+ return (*buf = '\0');
+#else
+ static char default_value[] = "<value>";
+ if (isHiddenOpt()) return (unsigned)(*buf = '\0');
+ char optchar = OptChar();
+ const char * longopt = LongOpt();
+ char * p = buf ;
+
+ const char * value = NULLSTR;
+ size_t longopt_len = 0;
+ size_t value_len = 0;
+
+ if (longopt) {
+ value = ::strchr(longopt, ' ');
+ longopt_len = (value) ? (value - longopt) : ::strlen(longopt);
+ } else {
+ value = ::strchr(spec + 1, ' ');
+ }
+ while (value && (*value == ' ')) ++value;
+ if (value && *value) {
+ value_len = ::strlen(value);
+ } else {
+ value = default_value;
+ value_len = sizeof(default_value) - 1;
+ }
+
+ if ((optctrls & Options::SHORT_ONLY) &&
+ ((! isNullOpt(optchar)) || (optctrls & Options::NOGUESSING))) {
+ longopt = NULLSTR;
+ }
+ if ((optctrls & Options::LONG_ONLY) &&
+ (longopt || (optctrls & Options::NOGUESSING))) {
+ optchar = '\0';
+ }
+ if (isNullOpt(optchar) && (longopt == NULL)) {
+ *buf = '\0';
+ return 0;
+ }
+
+ *(p++) = '[';
+
+ // print the single character option
+ if (! isNullOpt(optchar)) {
+ *(p++) = '-';
+ *(p++) = optchar;
+ }
+
+ if ((! isNullOpt(optchar)) && (longopt)) *(p++) = '|';
+
+ // print the long option
+ if (longopt) {
+ *(p++) = '-';
+ if (! (optctrls & (Options::LONG_ONLY | Options::SHORT_ONLY))) {
+ *(p++) = '-';
+ }
+ strncpy(p, longopt, longopt_len);
+ p += longopt_len;
+ }
+
+ // print any argument the option takes
+ if (isValTaken()) {
+ *(p++) = ' ' ;
+ if (isValOptional()) *(p++) = '[' ;
+ strcpy(p, value);
+ p += value_len;
+ if (isList()) {
+ strcpy(p, " ...");
+ p += 4;
+ }
+ if (isValOptional()) *(p++) = ']' ;
+ }
+
+ *(p++) = ']';
+ *p = '\0';
+
+ return (unsigned) strlen(buf);
+#endif /* USE_STDIO */
+}
+
+// ******************************************************************* Options
+
+#if (defined(MSWIN) || defined(OS2) || defined(MSDOS))
+# define DIR_SEP_CHAR '\\'
+#else
+# define DIR_SEP_CHAR '/'
+#endif
+
+Options::Options(const char * _name, const char * const optv[])
+ : explicit_end(0), optctrls(DEFAULT), optvec(optv),
+ nextchar(NULLSTR), listopt(NULLSTR), cmdname(_name)
+{
+ const char * basename = ::strrchr(cmdname, DIR_SEP_CHAR);
+ if (basename) cmdname = basename + 1;
+ check_syntax();
+}
+
+Options::~Options(void) {}
+
+ // Make sure each option-specifier has correct syntax.
+ //
+ // If there is even one invalid specifier, then exit ungracefully!
+ //
+void
+Options::check_syntax(void) const {
+ int errors = 0;
+ if ((optvec == NULL) || (! *optvec)) return;
+
+ for (const char * const * optv = optvec ; *optv ; optv++) {
+ OptionSpec optspec = *optv;
+ errors += optspec.isSyntaxError(cmdname);
+ }
+ if (errors) exit(127);
+}
+
+// ---------------------------------------------------------------------------
+// ^FUNCTION: Options::match_opt - match an option
+//
+// ^SYNOPSIS:
+// const char * match_opt(opt, int ignore_case) const
+//
+// ^PARAMETERS:
+// char opt -- the option-character to match
+// int ignore_case -- should we ignore character-case?
+//
+// ^DESCRIPTION:
+// See if "opt" is found in "optvec"
+//
+// ^REQUIREMENTS:
+// - optvec should be non-NULL and terminated by a NULL pointer.
+//
+// ^SIDE-EFFECTS:
+// None.
+//
+// ^RETURN-VALUE:
+// NULL if no match is found,
+// otherwise a pointer to the matching option-spec.
+//
+// ^ALGORITHM:
+// foreach option-spec
+// - see if "opt" is a match, if so return option-spec
+// end-for
+// ^^-------------------------------------------------------------------------
+const char *
+Options::match_opt(char opt, int ignore_case) const {
+ if ((optvec == NULL) || (! *optvec)) return NULLSTR;
+
+ for (const char * const * optv = optvec ; *optv ; optv++) {
+ OptionSpec optspec = *optv;
+ char optchar = optspec.OptChar();
+ if (isNullOpt(optchar)) continue;
+ if (opt == optchar) {
+ return optspec;
+ } else if (ignore_case && (TOLOWER(opt) == TOLOWER(optchar))) {
+ return optspec;
+ }
+ }
+
+ return NULLSTR; // not found
+}
+
+// ---------------------------------------------------------------------------
+// ^FUNCTION: Options::match_longopt - match a long-option
+//
+// ^SYNOPSIS:
+// const char * Options::match_longopt(opt, len, ambiguous)
+//
+// ^PARAMETERS:
+// char * opt -- the long-option to match
+// int len -- the number of character of "opt" to match
+// int & ambiguous -- set by this routine before returning.
+//
+// ^DESCRIPTION:
+// Try to match "opt" against some unique prefix of a long-option
+// (case insensitive).
+//
+// ^REQUIREMENTS:
+// - optvec should be non-NULL and terminated by a NULL pointer.
+//
+// ^SIDE-EFFECTS:
+// - *ambiguous is set to '1' if "opt" matches >1 long-option
+// (otherwise it is set to 0).
+//
+// ^RETURN-VALUE:
+// NULL if no match is found,
+// otherwise a pointer to the matching option-spec.
+//
+// ^ALGORITHM:
+// ambiguous is FALSE
+// foreach option-spec
+// if we have an EXACT-MATCH, return the option-spec
+// if we have a partial-match then
+// if we already had a previous partial match then
+// set ambiguous = TRUE and return NULL
+// else
+// remember this options spec and continue matching
+// end-if
+// end-if
+// end-for
+// if we had exactly 1 partial match return it, else return NULL
+// ^^-------------------------------------------------------------------------
+const char *
+Options::match_longopt(const char * opt, size_t len, int & ambiguous) const {
+ kwdmatch_t result;
+ const char * matched = NULLSTR ;
+
+ ambiguous = 0;
+ if ((optvec == NULL) || (! *optvec)) return NULLSTR;
+
+ for (const char * const * optv = optvec ; *optv ; optv++) {
+ OptionSpec optspec = *optv;
+ const char * longopt = optspec.LongOpt();
+ if (longopt == NULL) continue;
+ result = kwdmatch(longopt, opt, len);
+ if (result == EXACT_MATCH) {
+ return optspec;
+ } else if (result == PARTIAL_MATCH) {
+ if (matched) {
+ ++ambiguous;
+ return NULLSTR;
+ } else {
+ matched = optspec;
+ }
+ }
+ }//for
+
+ return matched;
+}
+
+// ---------------------------------------------------------------------------
+// ^FUNCTION: Options::parse_opt - parse an option
+//
+// ^SYNOPSIS:
+// int Options::parse_opt(iter, optarg)
+//
+// ^PARAMETERS:
+// OptIter & iter -- option iterator
+// const char * & optarg -- where to store any option-argument
+//
+// ^DESCRIPTION:
+// Parse the next option in iter (advancing as necessary).
+// Make sure we update the nextchar pointer along the way. Any option
+// we find should be returned and optarg should point to its argument.
+//
+// ^REQUIREMENTS:
+// - nextchar must point to the prospective option character
+//
+// ^SIDE-EFFECTS:
+// - iter is advanced when an argument completely parsed
+// - optarg is modified to point to any option argument
+// - if Options::QUIET is not set, error messages are printed on cerr
+//
+// ^RETURN-VALUE:
+// 'c' if the -c option was matched (optarg points to its argument)
+// BADCHAR if the option is invalid (optarg points to the bad
+// option-character).
+//
+// ^ALGORITHM:
+// It gets complicated -- follow the comments in the source.
+// ^^-------------------------------------------------------------------------
+int
+Options::parse_opt(OptIter & iter, const char * & _optarg) {
+ listopt = NULLSTR; // reset the list pointer
+
+ if ((optvec == NULL) || (! *optvec)) return Options::ENDOPTS;
+
+ // Try to match a known option
+ OptionSpec optspec = match_opt(*(nextchar++), (optctrls & Options::ANYCASE));
+
+ // Check for an unknown option
+ if (optspec.isNULL()) {
+ // See if this was a long-option in disguise
+ if (! (optctrls & Options::NOGUESSING)) {
+ unsigned save_ctrls = optctrls;
+ const char * save_nextchar = nextchar;
+ nextchar -= 1;
+ optctrls |= (Options::QUIET | Options::NOGUESSING);
+ int optchar = parse_longopt(iter, _optarg);
+ optctrls = save_ctrls;
+ if (optchar > 0) {
+ return optchar;
+ } else {
+ nextchar = save_nextchar;
+ }
+ }
+ if (! (optctrls & Options::QUIET)) {
+ cerr << cmdname << ": unknown option -"
+ << *(nextchar - 1) << "." << endl ;
+ }
+ _optarg = (nextchar - 1); // record the bad option in optarg
+ return Options::BADCHAR;
+ }
+
+ // If no argument is taken, then leave now
+ if (optspec.isNoArg()) {
+ _optarg = NULLSTR;
+ return optspec.OptChar();
+ }
+
+ // Check for argument in this arg
+ if (*nextchar) {
+ _optarg = nextchar; // the argument is right here
+ nextchar = NULLSTR; // we've exhausted this arg
+ if (optspec.isList()) listopt = optspec ; // save the list-spec
+ return optspec.OptChar();
+ }
+
+ // Check for argument in next arg
+ const char * nextarg = iter.curr();
+ if ((nextarg != NULL) &&
+ (optspec.isValRequired() || (! isOption(optctrls, nextarg)))) {
+ _optarg = nextarg; // the argument is here
+ iter.next(); // end of arg - advance
+ if (optspec.isList()) listopt = optspec ; // save the list-spec
+ return optspec.OptChar();
+ }
+
+ // No argument given - if its required, thats an error
+ _optarg = NULLSTR;
+ if (optspec.isValRequired() && !(optctrls & Options::QUIET)) {
+ cerr << cmdname << ": argument required for -" << optspec.OptChar()
+ << " option." << endl ;
+ }
+ return optspec.OptChar();
+}
+
+// ---------------------------------------------------------------------------
+// ^FUNCTION: Options::parse_longopt - parse a long-option
+//
+// ^SYNOPSIS:
+// int Options::parse_longopt(iter, optarg)
+//
+// ^PARAMETERS:
+// OptIter & iter -- option iterator
+// const char * & optarg -- where to store any option-argument
+//
+// ^DESCRIPTION:
+// Parse the next long-option in iter (advancing as necessary).
+// Make sure we update the nextchar pointer along the way. Any option
+// we find should be returned and optarg should point to its argument.
+//
+// ^REQUIREMENTS:
+// - nextchar must point to the prospective option character
+//
+// ^SIDE-EFFECTS:
+// - iter is advanced when an argument completely parsed
+// - optarg is modified to point to any option argument
+// - if Options::QUIET is not set, error messages are printed on cerr
+//
+// ^RETURN-VALUE:
+// 'c' if the the long-option corresponding to the -c option was matched
+// (optarg points to its argument)
+// BADKWD if the option is invalid (optarg points to the bad long-option
+// name).
+//
+// ^ALGORITHM:
+// It gets complicated -- follow the comments in the source.
+// ^^-------------------------------------------------------------------------
+int
+Options::parse_longopt(OptIter & iter, const char * & _optarg) {
+ size_t len = 0;
+ int ambiguous = 0;
+
+ listopt = NULLSTR ; // reset the list-spec
+
+ if ((optvec == NULL) || (! *optvec)) return Options::ENDOPTS;
+
+ // if a value is supplied in this argv element, get it now
+ const char * val = strpbrk(nextchar, ":=") ;
+ if (val) {
+ len = val - nextchar ;
+ ++val ;
+ }
+
+ // Try to match a known long-option
+ OptionSpec optspec = match_longopt(nextchar, len, ambiguous);
+
+ // Check for an unknown long-option
+ if (optspec.isNULL()) {
+ // See if this was a short-option in disguise
+ if ((! ambiguous) && (! (optctrls & Options::NOGUESSING))) {
+ unsigned save_ctrls = optctrls;
+ const char * save_nextchar = nextchar;
+ optctrls |= (Options::QUIET | Options::NOGUESSING);
+ int optchar = parse_opt(iter, _optarg);
+ optctrls = save_ctrls;
+ if (optchar > 0) {
+ return optchar;
+ } else {
+ nextchar = save_nextchar;
+ }
+ }
+ if (! (optctrls & Options::QUIET)) {
+ cerr << cmdname << ": " << ((ambiguous) ? "ambiguous" : "unknown")
+ << " option "
+ << ((optctrls & Options::LONG_ONLY) ? "-" : "--")
+ << nextchar << "." << endl ;
+ }
+ _optarg = nextchar; // record the bad option in optarg
+ nextchar = NULLSTR; // we've exhausted this argument
+ return (ambiguous) ? Options::AMBIGUOUS : Options::BADKWD;
+ }
+
+ // If no argument is taken, then leave now
+ if (optspec.isNoArg()) {
+ if ((val) && ! (optctrls & Options::QUIET)) {
+ cerr << cmdname << ": option "
+ << ((optctrls & Options::LONG_ONLY) ? "-" : "--")
+ << optspec.LongOpt() << " does NOT take an argument." << endl ;
+ }
+ _optarg = val; // record the unexpected argument
+ nextchar = NULLSTR; // we've exhausted this argument
+ return optspec.OptChar();
+ }
+
+ // Check for argument in this arg
+ if (val) {
+ _optarg = val; // the argument is right here
+ nextchar = NULLSTR; // we exhausted the rest of this arg
+ if (optspec.isList()) listopt = optspec ; // save the list-spec
+ return optspec.OptChar();
+ }
+
+ // Check for argument in next arg
+ const char * nextarg = iter.curr(); // find the next argument to parse
+ if ((nextarg != NULL) &&
+ (optspec.isValRequired() || (! isOption(optctrls, nextarg)))) {
+ _optarg = nextarg; // the argument is right here
+ iter.next(); // end of arg - advance
+ nextchar = NULLSTR; // we exhausted the rest of this arg
+ if (optspec.isList()) listopt = optspec ; // save the list-spec
+ return optspec.OptChar();
+ }
+
+ // No argument given - if its required, thats an error
+ _optarg = NULLSTR;
+ if (optspec.isValRequired() && !(optctrls & Options::QUIET)) {
+ const char * longopt = optspec.LongOpt();
+ const char * spc = ::strchr(longopt, ' ');
+ size_t longopt_len;
+ if (spc) {
+ longopt_len = spc - longopt;
+ } else {
+ longopt_len = ::strlen(longopt);
+ }
+ cerr << cmdname << ": argument required for "
+ << ((optctrls & Options::LONG_ONLY) ? "-" : "--");
+ cerr.write(longopt, longopt_len) << " option." << endl ;
+ }
+ nextchar = NULLSTR; // we exhausted the rest of this arg
+ return optspec.OptChar();
+}
+
+// ---------------------------------------------------------------------------
+// ^FUNCTION: Options::usage - print usage
+//
+// ^SYNOPSIS:
+// void Options::usage(os, positionals)
+//
+// ^PARAMETERS:
+// ostream & os -- where to print the usage
+// char * positionals -- command-line syntax for any positional args
+//
+// ^DESCRIPTION:
+// Print command-usage (using either option or long-option syntax) on os.
+//
+// ^REQUIREMENTS:
+// os should correspond to an open output file.
+//
+// ^SIDE-EFFECTS:
+// Prints on os
+//
+// ^RETURN-VALUE:
+// None.
+//
+// ^ALGORITHM:
+// Print usage on os, wrapping long lines where necessary.
+// ^^-------------------------------------------------------------------------
+void
+Options::usage(ostream & os, const char * positionals) const {
+#ifdef NO_USAGE
+ return;
+#else
+ const char * const * optv = optvec;
+ unsigned cols = 79;
+ int first, nloop;
+ char buf[256] ;
+
+ if ((optv == NULL) || (! *optv)) return;
+
+ // print first portion "usage: progname"
+ os << "usage: " << cmdname ;
+ size_t ll = strlen(cmdname) + 7;
+
+ // save the current length so we know how much space to skip for
+ // subsequent lines.
+ //
+ size_t margin = ll + 1;
+
+ // print the options and the positional arguments
+ for (nloop = 0, first = 1 ; !nloop ; optv++, first = 0) {
+ size_t len;
+ OptionSpec optspec = *optv;
+
+ // figure out how wide this parameter is (for printing)
+ if (! *optv) {
+ len = strlen(positionals);
+ ++nloop; // terminate this loop
+ } else {
+ if (optspec.isHiddenOpt()) continue;
+ len = optspec.Format(buf, optctrls);
+ }
+
+ // Will this fit?
+ if ((ll + len + 1) > (cols - first)) {
+ os << '\n' ; // No - start a new line;
+#ifdef USE_STDIO
+ for (int _i_ = 0; _i_ < margin; ++_i_) os << " ";
+#else
+ os.width(margin); os << "" ;
+#endif
+ ll = margin;
+ } else {
+ os << ' ' ; // Yes - just throw in a space
+ ++ll;
+ }
+ ll += len;
+ os << ((nloop) ? positionals : buf) ;
+ }// for each ad
+
+ os << endl ;
+#endif /* NO_USAGE */
+}
+
+
+// ---------------------------------------------------------------------------
+// ^FUNCTION: Options::operator() - get options from the command-line
+//
+// ^SYNOPSIS:
+// int Options::operator()(iter, optarg)
+//
+// ^PARAMETERS:
+// OptIter & iter -- option iterator
+// const char * & optarg -- where to store any option-argument
+//
+// ^DESCRIPTION:
+// Parse the next option in iter (advancing as necessary).
+// Make sure we update the nextchar pointer along the way. Any option
+// we find should be returned and optarg should point to its argument.
+//
+// ^REQUIREMENTS:
+// None.
+//
+// ^SIDE-EFFECTS:
+// - iter is advanced when an argument is completely parsed
+// - optarg is modified to point to any option argument
+// - if Options::QUIET is not set, error messages are printed on cerr
+//
+// ^RETURN-VALUE:
+// 0 if all options have been parsed.
+// 'c' if the the option or long-option corresponding to the -c option was
+// matched (optarg points to its argument).
+// BADCHAR if the option is invalid (optarg points to the bad option char).
+// BADKWD if the option is invalid (optarg points to the bad long-opt name).
+// AMBIGUOUS if an ambiguous keyword name was given (optarg points to the
+// ambiguous keyword name).
+// POSITIONAL if PARSE_POS was set and the current argument is a positional
+// parameter (in which case optarg points to the positional argument).
+//
+// ^ALGORITHM:
+// It gets complicated -- follow the comments in the source.
+// ^^-------------------------------------------------------------------------
+int
+Options::operator()(OptIter & iter, const char * & _optarg) {
+ int parse_opts_only = isOptsOnly(optctrls);
+ if (parse_opts_only) explicit_end = 0;
+
+ // See if we have an option left over from before ...
+ if ((nextchar) && *nextchar) {
+ return parse_opt(iter, _optarg);
+ }
+
+ // Check for end-of-options ...
+ const char * arg = NULLSTR;
+ int get_next_arg = 0;
+ do {
+ arg = iter.curr();
+ get_next_arg = 0;
+ if (arg == NULL) {
+ listopt = NULLSTR;
+ return Options::ENDOPTS;
+ } else if ((! explicit_end) && isEndOpts(arg)) {
+ iter.next(); // advance past end-of-options arg
+ listopt = NULLSTR;
+ explicit_end = 1;
+ if (parse_opts_only) return Options::ENDOPTS;
+ get_next_arg = 1; // make sure we look at the next argument.
+ }
+ } while (get_next_arg);
+
+ // Do we have a positional arg?
+ if ( explicit_end || (! isOption(optctrls, arg)) ) {
+ if (parse_opts_only) {
+ return Options::ENDOPTS;
+ } else {
+ _optarg = arg; // set optarg to the positional argument
+ iter.next(); // advance iterator to the next argument
+ return Options::POSITIONAL;
+ }
+ }
+
+ iter.next(); // pass the argument that arg already points to
+
+ // See if we have a long option ...
+ if (! (optctrls & Options::SHORT_ONLY)) {
+ if ((*arg == '-') && (arg[1] == '-')) {
+ nextchar = arg + 2;
+ return parse_longopt(iter, _optarg);
+ } else if ((optctrls & Options::PLUS) && (*arg == '+')) {
+ nextchar = arg + 1;
+ return parse_longopt(iter, _optarg);
+ }
+ }
+ if (*arg == '-') {
+ nextchar = arg + 1;
+ if (optctrls & Options::LONG_ONLY) {
+ return parse_longopt(iter, _optarg);
+ } else {
+ return parse_opt(iter, _optarg);
+ }
+ }
+
+ // If we get here - it is because we have a list value
+ OptionSpec optspec = listopt;
+ _optarg = arg ; // record the list value
+ return optspec.OptChar() ;
+}
+
+
+
diff --git a/ARMFCaptureD3D/options.h b/ARMFCaptureD3D/options.h
new file mode 100644
index 0000000..cc15976
--- /dev/null
+++ b/ARMFCaptureD3D/options.h
@@ -0,0 +1,496 @@
+// ****************************************************************************
+// ^FILE: options.h - option parsing classes
+//
+// ^DESCRIPTION:
+// This file defines classes used to parse command-line options.
+// Options may be parsed from an array of strings, or from any structure
+// for which a corresponding option-iterator exists.
+//
+// ^HISTORY:
+// 03/06/92 Brad Appleton <bradapp@enteract.com> Created
+//
+// 03/23/93 Brad Appleton <bradapp@enteract.com>
+// - Added OptIstreamIter class
+//
+// 03/08/94 Brad Appleton <bradapp@enteract.com>
+// - Added Options::reset() member function
+//
+// 07/31/97 Brad Appleton <bradapp@enteract.com>
+// - Added PARSE_POS control flag and POSITIONAL return value
+// ^^**************************************************************************
+
+#ifndef _options_h
+#define _options_h
+
+#ifdef USE_STDIO
+# include <stdio.h>
+#else
+# include <iostream>
+using std::istream;
+using std::ostream;
+#endif
+
+// Abstract class to iterate through options/arguments
+//
+class OptIter {
+public:
+ OptIter(void) {}
+ virtual ~OptIter(void);
+
+ // curr() returns the current item in the iterator without
+ // advancing on to the next item. If we are at the end of items
+ // then NULL is returned.
+ virtual const char *
+ curr(void) = 0;
+
+ // next() advances to the next item.
+ virtual void
+ next(void) = 0;
+
+ // operator() returns the current item in the iterator and then
+ // advances on to the next item. If we are at the end of items
+ // then NULL is returned.
+ virtual const char *
+ operator()(void);
+} ;
+
+// Abstract class for a rewindable OptIter
+//
+class OptIterRwd : public OptIter {
+public:
+ OptIterRwd(void);
+
+ virtual ~OptIterRwd(void);
+
+ virtual const char *
+ curr(void) = 0;
+
+ virtual void
+ next(void) = 0;
+
+ virtual const char *
+ operator()(void) = 0;
+
+ // rewind() resets the "current-element" to the first one in the "list"
+ virtual void
+ rewind(void) = 0;
+} ;
+
+// Class to iterate through an array of tokens. The array may be terminated
+// by NULL or a count containing the number of tokens may be given.
+//
+class OptArgvIter : public OptIterRwd {
+private:
+ int ndx; // index of current arg
+ int ac; // arg count
+ const char * const * av; // arg vector
+
+public:
+ OptArgvIter(const char * const argv[])
+ : ndx(0), ac(-1), av(argv) {}
+
+ OptArgvIter(int argc, const char * const argv[])
+ : ndx(0), ac(argc), av(argv) {}
+
+ virtual
+ ~OptArgvIter(void);
+
+ virtual const char *
+ curr(void);
+
+ virtual void
+ next(void);
+
+ virtual const char *
+ operator()(void);
+
+ virtual void
+ rewind(void);
+
+ // index returns the current index to use for argv[]
+ int index(void) { return ndx; }
+} ;
+
+
+// Class to iterate through a string containing delimiter-separated tokens
+//
+class OptStrTokIter : public OptIterRwd {
+private:
+ unsigned len; // length of token-string
+ const char * str; // the token-string
+ const char * seps; // delimiter-set (separator-characters)
+ const char * cur; // current token
+ char * tokstr; // our copy of the token-string
+
+ static const char * default_delims; // default delimiters = whitespace
+
+public:
+ OptStrTokIter(const char * tokens, const char * delimiters =0);
+
+ virtual
+ ~OptStrTokIter(void);
+
+ virtual const char *
+ curr(void);
+
+ virtual void
+ next(void);
+
+ virtual const char *
+ operator()(void);
+
+ virtual void
+ rewind(void);
+
+ // delimiters() with NO arguments returns the current set of delimiters,
+ // If an argument is given then it is used as the new set of delimiters.
+ const char *
+ delimiters(void) { return seps; }
+
+ void
+ delimiters(const char * delims) {
+ seps = (delims) ? delims : default_delims ;
+ }
+} ;
+
+
+ // OptIstreamIter is a class for iterating over arguments that come
+ // from an input stream. Each line of the input stream is considered
+ // to be a set of white-space separated tokens. If the the first
+ // non-white character on a line is '#' ('!' for VMS systems) then
+ // the line is considered a comment and is ignored.
+ //
+ // *Note:: If a line is more than 1022 characters in length then we
+ // treat it as if it were several lines of length 1022 or less.
+ //
+ // *Note:: The string tokens returned by this iterator are pointers
+ // to temporary buffers which may not necessarily stick around
+ // for too long after the call to curr() or operator(), hence
+ // if you need the string value to persist - you will need to
+ // make a copy.
+ //
+class OptIstreamIter : public OptIter {
+private:
+ istream & is ;
+ OptStrTokIter * tok_iter ;
+
+ void
+ fill(void);
+
+public:
+ static const unsigned MAX_LINE_LEN ;
+
+ OptIstreamIter(istream & input);
+
+ virtual
+ ~OptIstreamIter(void);
+
+ virtual const char *
+ curr(void);
+
+ virtual void
+ next(void);
+
+ virtual const char *
+ operator()(void);
+} ;
+
+
+// Now we are ready to define a class to declare and parse command-options
+//
+//
+// CLASS
+// =====
+// Options -- parse command-line options
+//
+// SYNOPSIS
+// ========
+// #include <options.h>
+//
+// Options opts(cmdname, optv);
+// char cmdname[], *optv[];
+//
+// DESCRIPTION
+// ===========
+// The Options constructor expects a command-name (usually argv[0]) and
+// a pointer to an array of strings. The last element in this array MUST
+// be NULL. Each non-NULL string in the array must have the following format:
+//
+// The 1st character must be the option-name ('c' for a -c option).
+//
+// The 2nd character must be one of '|', '?', ':', '*', or '+'.
+// '|' -- indicates that the option takes NO argument;
+// '?' -- indicates that the option takes an OPTIONAL argument;
+// ':' -- indicates that the option takes a REQUIRED argument;
+// '*' -- indicates that the option takes 0 or more arguments;
+// '+' -- indicates that the option takes 1 or more arguments;
+//
+// The remainder of the string must be the long-option name.
+//
+// If desired, the long-option name may be followed by one or more
+// spaces and then by the name of the option value. This name will
+// be used when printing usage messages. If the option-value-name
+// is not given then the string "<value>" will be used in usage
+// messages.
+//
+// One may use a space to indicate that a particular option does not
+// have a corresponding long-option. For example, "c: " (or "c:")
+// means the -c option takes a value & has NO corresponding long-option.
+//
+// To specify a long-option that has no corresponding single-character
+// option is a bit trickier: Options::operator() still needs an "option-
+// character" to return when that option is matched. One may use a whitespace
+// character or a non-printable character as the single-character option
+// in such a case. (hence " |hello" would only match "--hello").
+//
+// EXCEPTIONS TO THE ABOVE:
+// ------------------------
+// If the 1st character of the string is '-', then the rest of the
+// string must correspond to the above format, and the option is
+// considered to be a hidden-option. This means it will be parsed
+// when actually matching options from the command-line, but will
+// NOT show-up if a usage message is printed using the usage() member
+// function. Such an example might be "-h|hidden". If you want to
+// use any "dummy" options (options that are not parsed, but that
+// to show up in the usage message), you can specify them along with
+// any positional parameters to the usage() member function.
+//
+// If the 2nd character of the string is '\0' then it is assumed
+// that there is no corresponding long-option and that the option
+// takes no argument (hence "f", and "f| " are equivalent).
+//
+// Examples:
+// const char * optv[] = {
+// "c:count <number>",
+// "s?str <string>",
+// "x",
+// " |hello",
+// "g+groups <newsgroup>",
+// NULL
+// } ;
+//
+// optv[] now corresponds to the following:
+//
+// usage: cmdname [-c|--count <number>] [-s|--str [<string>]]
+// [-x] [--hello] [-g|--groups <newsgroup> ...]
+//
+// Long-option names are matched case-insensitive and only a unique prefix
+// of the name needs to be specified.
+//
+// Option-name characters are case-sensitive!
+//
+// CAVEAT
+// ======
+// Because of the way in which multi-valued options and options with optional
+// values are handled, it is NOT possible to supply a value to an option in
+// a separate argument (different argv[] element) if the value is OPTIONAL
+// and begins with a '-'. What this means is that if an option "-s" takes an
+// optional value value and you wish to supply a value of "-foo" then you must
+// specify this on the command-line as "-s-foo" instead of "-s -foo" because
+// "-s -foo" will be considered to be two separate sets of options.
+//
+// A multi-valued option is terminated by another option or by the end-of
+// options. The following are all equivalent (if "-l" is a multi-valued
+// option and "-x" is an option that takes no value):
+//
+// cmdname -x -l item1 item2 item3 -- arg1 arg2 arg3
+// cmdname -x -litem1 -litem2 -litem3 -- arg1 arg2 arg3
+// cmdname -l item1 item2 item3 -x arg1 arg2 arg3
+//
+//
+// EXAMPLE
+// =======
+// #include <options.h>
+//
+// static const char * optv[] = {
+// "H|help",
+// "c:count <number>",
+// "s?str <string>",
+// "x",
+// " |hello",
+// "g+groups <newsgroup>",
+// NULL
+// } ;
+//
+// main(int argc, char * argv[]) {
+// int optchar;
+// const char * optarg;
+// const char * str = "default_string";
+// int count = 0, xflag = 0, hello = 0;
+// int errors = 0, ngroups = 0;
+//
+// Options opts(*argv, optv);
+// OptArgvIter iter(--argc, ++argv);
+//
+// while( optchar = opts(iter, optarg) ) {
+// switch (optchar) {
+// case 'H' :
+// opts.usage(cout, "files ...");
+// exit(0);
+// break;
+// case 'g' :
+// ++ngroups; break; // the groupname is in "optarg"
+// case 's' :
+// str = optarg; break;
+// case 'x' :
+// ++xflag; break;
+// case ' ' :
+// ++hello; break;
+// case 'c' :
+// if (optarg == NULL) ++errors;
+// else count = (int) atol(optarg);
+// break;
+// default : ++errors; break;
+// } //switch
+// }
+//
+// if (errors || (iter.index() == argc)) {
+// if (! errors) {
+// cerr << opts.name() << ": no filenames given." << endl ;
+// }
+// opts.usage(cerr, "files ...");
+// exit(1);
+// }
+//
+// cout << "xflag=" << ((xflag) ? "ON" : "OFF") << endl
+// << "hello=" << ((hello) ? "YES" : "NO") << endl
+// << "count=" << count << endl
+// << "str=\"" << ((str) ? str : "No value given!") << "\"" << endl
+// << "ngroups=" << ngroups << endl ;
+//
+// if (iter.index() < argc) {
+// cout << "files=" ;
+// for (int i = iter.index() ; i < argc ; i++) {
+// cout << "\"" << argv[i] << "\" " ;
+// }
+// cout << endl ;
+// }
+// }
+//
+class Options {
+private:
+ unsigned explicit_end : 1; // were we terminated because of "--"?
+ unsigned optctrls : 7; // control settings (a set of OptCtrl masks)
+ const char * const * optvec; // vector of option-specifications (last=NULL)
+ const char * nextchar; // next option-character to process
+ const char * listopt; // last list-option we matched
+ const char * cmdname; // name of the command
+
+ void
+ check_syntax(void) const;
+
+ const char *
+ match_opt(char opt, int ignore_case =0) const;
+
+ const char *
+ match_longopt(const char * opt, size_t len, int & ambiguous) const;
+
+ int
+ parse_opt(OptIter & iter, const char * & optarg);
+
+ int
+ parse_longopt(OptIter & iter, const char * & optarg);
+
+public:
+ enum OptCtrl {
+ DEFAULT = 0x00, // Default setting
+ ANYCASE = 0x01, // Ignore case when matching short-options
+ QUIET = 0x02, // Dont print error messages
+ PLUS = 0x04, // Allow "+" as a long-option prefix
+ SHORT_ONLY = 0x08, // Dont accept long-options
+ LONG_ONLY = 0x10, // Dont accept short-options
+ // (also allows "-" as a long-option prefix).
+ NOGUESSING = 0x20, // Normally, when we see a short (long) option
+ // on the command line that doesnt match any
+ // known short (long) options, then we try to
+ // "guess" by seeing if it will match any known
+ // long (short) option. Setting this mask prevents
+ // this "guessing" from occurring.
+ PARSE_POS = 0x40 // By default, Options will not present positional
+ // command-line arguments to the user and will
+ // instead stop parsing when the first positonal
+ // argument has been encountered. If this flag
+ // is given, Options will present positional
+ // arguments to the user with a return code of
+ // POSITIONAL; ENDOPTS will be returned only
+ // when the end of the argument list is reached.
+ } ;
+
+ // Error return values for operator()
+ //
+ enum OptRC {
+ ENDOPTS = 0,
+ BADCHAR = -1,
+ BADKWD = -2,
+ AMBIGUOUS = -3,
+ POSITIONAL = -4
+ } ;
+
+ Options(const char * name, const char * const optv[]);
+
+ virtual
+ ~Options(void);
+
+ // name() returns the command name
+ const char *
+ name(void) const { return cmdname; }
+
+ // ctrls() (with no arguments) returns the existing control settings
+ unsigned
+ ctrls(void) const { return optctrls; }
+
+ // ctrls() (with 1 argument) sets new control settings
+ void
+ ctrls(unsigned newctrls) { optctrls = newctrls; }
+
+ // reset for another pass to parse for options
+ void
+ reset(void) { nextchar = listopt = NULL; }
+
+ // usage() prints options usage (followed by any positional arguments
+ // listed in the parameter "positionals") on the given outstream
+ void
+ usage(ostream & os, const char * positionals) const ;
+
+ // operator() iterates through the arguments as necessary (using the
+ // given iterator) and returns the character value of the option
+ // (or long-option) that it matched. If the option has a value
+ // then the value given may be found in optarg (otherwise optarg
+ // will be NULL).
+ //
+ // 0 is returned upon end-of-options. At this point, "iter" may
+ // be used to process any remaining positional parameters. If the
+ // PARSE_POS control-flag is set then 0 is returned only when all
+ // arguments in "iter" have been exhausted.
+ //
+ // If an invalid option is found then BADCHAR is returned and *optarg
+ // is the unrecognized option character.
+ //
+ // If an invalid long-option is found then BADKWD is returned and optarg
+ // points to the bad long-option.
+ //
+ // If an ambiguous long-option is found then AMBIGUOUS is returned and
+ // optarg points to the ambiguous long-option.
+ //
+ // If the PARSE_POS control-flag is set then POSITIONAL is returned
+ // when a positional argument is encountered and optarg points to
+ // the positonal argument (and "iter" is advanced to the next argument
+ // in the iterator).
+ //
+ // Unless Options::QUIET is used, missing option-arguments and
+ // invalid options (and the like) will automatically cause error
+ // messages to be issued to cerr.
+ int
+ operator()(OptIter & iter, const char * & optarg) ;
+
+ // Call this member function after operator() has returned 0
+ // if you want to know whether or not options were explicitly
+ // terminated because "--" appeared on the command-line.
+ //
+ int
+ explicit_endopts() const { return explicit_end; }
+} ;
+
+#endif /* _options_h */
+
+
diff --git a/ARMFCaptureD3D/preview.cpp b/ARMFCaptureD3D/preview.cpp
new file mode 100644
index 0000000..e8d3624
--- /dev/null
+++ b/ARMFCaptureD3D/preview.cpp
@@ -0,0 +1,701 @@
+//////////////////////////////////////////////////////////////////////////
+//
+// preview.cpp: Manages video preview.
+//
+// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
+// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
+// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
+// PARTICULAR PURPOSE.
+//
+// Copyright (c) Microsoft Corporation. All rights reserved.
+//
+//////////////////////////////////////////////////////////////////////////
+
+#include "ARMFCaptureD3D.h"
+#include "debug.h"
+#include <shlwapi.h>
+#include "ARAnalyse.h"
+
+extern ARAnalyse *g_pAnalyse;
+
+extern HWND g_hStatus;
+
+//-------------------------------------------------------------------
+// CreateInstance
+//
+// Static class method to create the CPreview object.
+//-------------------------------------------------------------------
+
+HRESULT CPreview::CreateInstance(
+ HWND hVideo, // Handle to the video window.
+ HWND hEvent, // Handle to the window to receive notifications.
+ CPreview **ppPlayer // Receives a pointer to the CPreview object.
+ )
+{
+ assert(hVideo != NULL);
+ assert(hEvent != NULL);
+
+ if (ppPlayer == NULL)
+ {
+ return E_POINTER;
+ }
+
+ CPreview *pPlayer = new (std::nothrow) CPreview(hVideo, hEvent);
+
+ // The CPlayer constructor sets the ref count to 1.
+
+ if (pPlayer == NULL)
+ {
+ return E_OUTOFMEMORY;
+ }
+
+ HRESULT hr = pPlayer->Initialize();
+
+ if (SUCCEEDED(hr))
+ {
+ *ppPlayer = pPlayer;
+ (*ppPlayer)->AddRef();
+ }
+
+ SafeRelease(&pPlayer);
+ return hr;
+}
+
+
+//-------------------------------------------------------------------
+// constructor
+//-------------------------------------------------------------------
+
+CPreview::CPreview(HWND hVideo, HWND hEvent) :
+ m_pReader(NULL),
+ m_pSource(NULL),
+ m_hwndVideo(hVideo),
+ m_hwndEvent(hEvent),
+ m_nRefCount(1),
+ m_pwszSymbolicLink(NULL),
+ m_cchSymbolicLink(0)
+{
+ InitializeCriticalSection(&m_critsec);
+ m_video = true;
+ m_transform = false;
+ m_moyen = false;
+}
+
+//-------------------------------------------------------------------
+// destructor
+//-------------------------------------------------------------------
+
+CPreview::~CPreview()
+{
+ CloseDevice();
+ m_draw.DestroyDevice();
+ DeleteCriticalSection(&m_critsec);
+}
+
+
+//-------------------------------------------------------------------
+// Initialize
+//
+// Initializes the object.
+//-------------------------------------------------------------------
+
+HRESULT CPreview::Initialize()
+{
+ HRESULT hr = S_OK;
+
+ hr = m_draw.CreateDevice(m_hwndVideo);
+
+ return hr;
+}
+
+bool CPreview::ToggleVideo()
+{
+ m_video = !m_video;
+ return m_video;
+}
+
+bool CPreview::ToggleTransform()
+{
+ m_transform = !m_transform;
+ return m_transform;
+}
+bool CPreview::ToggleMoyen()
+{
+ m_moyen = !m_moyen;
+ return m_moyen;
+}
+
+//-------------------------------------------------------------------
+// CloseDevice
+//
+// Releases all resources held by this object.
+//-------------------------------------------------------------------
+
+HRESULT CPreview::CloseDevice()
+{
+ EnterCriticalSection(&m_critsec);
+
+ if ( m_pSource )
+ {
+ m_pSource->Stop();
+ m_pSource->Shutdown();
+ }
+
+ SafeRelease(&m_pReader);
+ SafeRelease(&m_pSource);
+
+
+ CoTaskMemFree(m_pwszSymbolicLink);
+ m_pwszSymbolicLink = NULL;
+ m_cchSymbolicLink = 0;
+
+ LeaveCriticalSection(&m_critsec);
+ return S_OK;
+}
+
+
+/////////////// IUnknown methods ///////////////
+
+//-------------------------------------------------------------------
+// AddRef
+//-------------------------------------------------------------------
+
+ULONG CPreview::AddRef()
+{
+ return InterlockedIncrement(&m_nRefCount);
+}
+
+
+//-------------------------------------------------------------------
+// Release
+//-------------------------------------------------------------------
+
+ULONG CPreview::Release()
+{
+ ULONG uCount = InterlockedDecrement(&m_nRefCount);
+ if (uCount == 0)
+ {
+ delete this;
+ }
+ // For thread safety, return a temporary variable.
+ return uCount;
+}
+
+
+
+//-------------------------------------------------------------------
+// QueryInterface
+//-------------------------------------------------------------------
+
+HRESULT CPreview::QueryInterface(REFIID riid, void** ppv)
+{
+ static const QITAB qit[] =
+ {
+ QITABENT(CPreview, IMFSourceReaderCallback),
+ { 0 },
+ };
+ return QISearch(this, qit, riid, ppv);
+}
+
+
+/////////////// IMFSourceReaderCallback methods ///////////////
+
+//-------------------------------------------------------------------
+// OnReadSample
+//
+// Called when the IMFMediaSource::ReadSample method completes.
+//-------------------------------------------------------------------
+
+HRESULT CPreview::OnReadSample(
+ HRESULT hrStatus,
+ DWORD dwStreamIndex,
+ DWORD /*dwStreamFlags*/,
+ LONGLONG llTimestamp,
+ IMFSample *pSample // Can be NULL
+ )
+{
+ HRESULT hr = hrStatus;
+ IMFMediaBuffer *pBuffer = NULL;
+ DWORD cbCurrentLength = 0;
+
+ EnterCriticalSection(&m_critsec);
+
+ if (SUCCEEDED(hr))
+ {
+ if (pSample)
+ {
+ // Get the video frame buffer from the sample.
+ hr = pSample->ConvertToContiguousBuffer(&pBuffer);
+
+ // AR analyse
+ if ( g_pAnalyse && SUCCEEDED(hr) )
+ {
+ BYTE *image_buffer=0;
+ pBuffer->Lock( &image_buffer, 0, &cbCurrentLength );
+ double time = (double)(llTimestamp)/ 10000000.0;
+ // Gray scale & blur & threshold
+ if ( m_transform)
+ g_pAnalyse->Transform( image_buffer, cbCurrentLength, m_moyen );
+ g_pAnalyse->Analyse(time, image_buffer, cbCurrentLength );
+ pBuffer->Unlock();
+ }
+ // Draw the frame.
+
+ if ( m_video && SUCCEEDED(hr))
+ {
+ hr = m_draw.DrawFrame(pBuffer);
+ }
+
+ }
+ }
+ // Request the next frame.
+ if (m_pReader && SUCCEEDED(hr))
+ {
+ hr = m_pReader->ReadSample(
+ dwStreamIndex,
+ 0,
+ NULL, // actual
+ NULL, // flags
+ NULL, // timestamp
+ NULL // sample
+ );
+ }
+
+ if (FAILED(hr))
+ {
+ NotifyError(hr);
+ }
+ if ( pBuffer ) SafeRelease(&pBuffer);
+
+ LeaveCriticalSection(&m_critsec);
+
+ if (g_pAnalyse && SUCCEEDED(hr))
+ {
+ // display status message
+ WCHAR szBuf[1024];
+
+ StringCbPrintf(szBuf, sizeof(szBuf),TEXT("Markers count=%3d confidence=( %0.1f / %0.1f / %0.1f ) FPS=( %0.1f / %0.1f / %0.1f ) delay=( %0.3f / %0.3f / %0.3f )"),
+ g_pAnalyse->markers.size(),
+ g_pAnalyse->confidence.Min(), g_pAnalyse->confidence.Max(), g_pAnalyse->confidence.Avg() ,
+ g_pAnalyse->frame_per_seconds.Min(), g_pAnalyse->frame_per_seconds.Max(), g_pAnalyse->frame_per_seconds.Avg(),
+ g_pAnalyse->frame_delay.Min(), g_pAnalyse->frame_delay.Max(), g_pAnalyse->frame_delay.Avg() );
+ SendMessage(g_hStatus, SB_SETTEXT, 0, (LPARAM)(LPSTR)szBuf );
+ }
+
+ return hr;
+}
+
+
+//-------------------------------------------------------------------
+// TryMediaType
+//
+// Test a proposed video format.
+//-------------------------------------------------------------------
+
+HRESULT CPreview::TryMediaType(IMFMediaType *pType)
+{
+ HRESULT hr = S_OK;
+
+ BOOL bFound = FALSE;
+ GUID subtype = { 0 };
+
+ hr = pType->GetGUID(MF_MT_SUBTYPE, &subtype);
+
+ if (FAILED(hr))
+ {
+ return hr;
+ }
+
+ // Do we support this type directly?
+ if (m_draw.IsFormatSupported(subtype))
+ {
+ bFound = TRUE;
+ }
+ else
+ {
+ // Can we decode this media type to one of our supported
+ // output formats?
+
+ for (DWORD i = 0; ; i++)
+ {
+ // Get the i'th format.
+ hr = m_draw.GetFormat(i, &subtype);
+ if (FAILED(hr)) { break; }
+
+ hr = pType->SetGUID(MF_MT_SUBTYPE, subtype);
+
+ if (FAILED(hr)) { break; }
+
+ // Try to set this type on the source reader.
+ hr = m_pReader->SetCurrentMediaType(
+ (DWORD)MF_SOURCE_READER_FIRST_VIDEO_STREAM,
+ NULL,
+ pType
+ );
+
+ if (SUCCEEDED(hr))
+ {
+ bFound = TRUE;
+ break;
+ }
+ }
+ }
+
+ if (bFound)
+ {
+ EnterCriticalSection(&m_critsec);
+ hr = m_draw.SetVideoType(pType);
+ LeaveCriticalSection(&m_critsec);
+ }
+
+ return hr;
+}
+
+//-------------------------------------------------------------------
+// SetDevice
+//
+// Set up preview for a specified video capture device.
+//-------------------------------------------------------------------
+
+HRESULT CPreview::SetDevice(IMFActivate *pActivate, int formatType)
+{
+ HRESULT hr = S_OK;
+
+ IMFAttributes *pAttributes = NULL;
+ IMFMediaType *pType = NULL;
+
+ EnterCriticalSection(&m_critsec);
+
+ // Release the current device, if any.
+
+ hr = CloseDevice();
+
+ // Create the media source for the device.
+ if (SUCCEEDED(hr))
+ {
+ hr = pActivate->ActivateObject(
+ __uuidof(IMFMediaSource),
+ (void**)&m_pSource
+ );
+ }
+
+ // Get the symbolic link.
+ if (SUCCEEDED(hr))
+ {
+ hr = pActivate->GetAllocatedString(
+ MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_SYMBOLIC_LINK,
+ &m_pwszSymbolicLink,
+ &m_cchSymbolicLink
+ );
+ }
+
+ //
+ // Create the source reader.
+ //
+
+ // Create an attribute store to hold initialization settings.
+
+ if (SUCCEEDED(hr))
+ {
+ hr = MFCreateAttributes(&pAttributes, 2);
+ }
+ if (SUCCEEDED(hr))
+ {
+ hr = pAttributes->SetUINT32(MF_READWRITE_DISABLE_CONVERTERS, TRUE);
+ }
+
+ // Set the callback pointer.
+ if (SUCCEEDED(hr))
+ {
+ hr = pAttributes->SetUnknown(
+ MF_SOURCE_READER_ASYNC_CALLBACK,
+ this
+ );
+ }
+
+ if (SUCCEEDED(hr))
+ {
+ hr = MFCreateSourceReaderFromMediaSource(
+ m_pSource,
+ pAttributes,
+ &m_pReader
+ );
+ }
+
+
+ // Try to find a suitable output type.
+ if (SUCCEEDED(hr))
+ {
+
+ for (DWORD i = formatType; ; i++)
+ {
+ hr = m_pReader->GetNativeMediaType(
+ (DWORD)MF_SOURCE_READER_FIRST_VIDEO_STREAM,
+ i,
+ &pType
+ );
+
+ if (FAILED(hr)) { break; }
+
+ //hr = TryMediaType(pType); already done in SetFormat !!
+ hr = SetFormat(pType);
+
+ SafeRelease(&pType);
+
+ if (SUCCEEDED(hr))
+ {
+ // Found an output type.
+
+ break;
+ }
+ }
+ }
+ if (SUCCEEDED(hr))
+ {
+ // Ask for the first sample.
+ hr = m_pReader->ReadSample(
+ (DWORD)MF_SOURCE_READER_FIRST_VIDEO_STREAM,
+ 0,
+ NULL,
+ NULL,
+ NULL,
+ NULL
+ );
+ }
+
+ if (FAILED(hr))
+ {
+ if (m_pSource)
+ {
+ m_pSource->Shutdown();
+
+ // NOTE: The source reader shuts down the media source
+ // by default, but we might not have gotten that far.
+ }
+ CloseDevice();
+ }
+
+
+ SafeRelease(&pAttributes);
+ SafeRelease(&pType);
+
+ LeaveCriticalSection(&m_critsec);
+ return hr;
+}
+
+
+
+//-------------------------------------------------------------------
+// ResizeVideo
+// Resizes the video rectangle.
+//
+// The application should call this method if the size of the video
+// window changes; e.g., when the application receives WM_SIZE.
+//-------------------------------------------------------------------
+
+HRESULT CPreview::ResizeVideo(WORD /*width*/, WORD /*height*/)
+{
+ HRESULT hr = S_OK;
+
+ EnterCriticalSection(&m_critsec);
+
+ hr = m_draw.ResetDevice();
+
+ if (FAILED(hr))
+ {
+ MessageBox(NULL, L"ResetDevice failed!", NULL, MB_OK);
+ }
+
+ LeaveCriticalSection(&m_critsec);
+
+ return hr;
+}
+
+
+//-------------------------------------------------------------------
+// CheckDeviceLost
+// Checks whether the current device has been lost.
+//
+// The application should call this method in response to a
+// WM_DEVICECHANGE message. (The application must register for
+// device notification to receive this message.)
+//-------------------------------------------------------------------
+
+HRESULT CPreview::CheckDeviceLost(DEV_BROADCAST_HDR *pHdr, BOOL *pbDeviceLost)
+{
+ DEV_BROADCAST_DEVICEINTERFACE *pDi = NULL;
+
+ if (pbDeviceLost == NULL)
+ {
+ return E_POINTER;
+ }
+
+ *pbDeviceLost = FALSE;
+
+ if (pHdr == NULL)
+ {
+ return S_OK;
+ }
+
+ if (pHdr->dbch_devicetype != DBT_DEVTYP_DEVICEINTERFACE)
+ {
+ return S_OK;
+ }
+
+ pDi = (DEV_BROADCAST_DEVICEINTERFACE*)pHdr;
+
+
+ EnterCriticalSection(&m_critsec);
+
+ if (m_pwszSymbolicLink)
+ {
+ if (_wcsicmp(m_pwszSymbolicLink, pDi->dbcc_name) == 0)
+ {
+ *pbDeviceLost = TRUE;
+ }
+ }
+
+ LeaveCriticalSection(&m_critsec);
+
+ return S_OK;
+}
+
+HRESULT CPreview::EnumerateCaptureFormats(IMFMediaType ***pppTypes, UINT32 *pcCount)
+{
+ IMFPresentationDescriptor *pPD = NULL;
+ IMFStreamDescriptor *pSD = NULL;
+ IMFMediaTypeHandler *pHandler = NULL;
+ IMFMediaType *pType = NULL;
+
+ HRESULT hr = m_pSource->CreatePresentationDescriptor(&pPD);
+ if (FAILED(hr))
+ {
+ goto done;
+ }
+
+ BOOL fSelected;
+ hr = pPD->GetStreamDescriptorByIndex(0, &fSelected, &pSD);
+ if (FAILED(hr))
+ {
+ goto done;
+ }
+
+ hr = pSD->GetMediaTypeHandler(&pHandler);
+ if (FAILED(hr))
+ {
+ goto done;
+ }
+
+ DWORD cTypes = 0;
+ hr = pHandler->GetMediaTypeCount(&cTypes);
+ if (FAILED(hr))
+ {
+ goto done;
+ }
+ *pcCount = cTypes;
+ *pppTypes = (IMFMediaType**)CoTaskMemAlloc( cTypes * sizeof(IMFMediaType*));
+
+ for (DWORD i = 0; i < cTypes; i++)
+ {
+ hr = pHandler->GetMediaTypeByIndex(i, &pType);
+ if (FAILED(hr))
+ {
+ goto done;
+ }
+ (*pppTypes)[i] = pType;
+ pType->AddRef();
+ // LogMediaType(pType);
+ //OutputDebugString(L"\n");
+
+ SafeRelease(&pType);
+ }
+
+done:
+ SafeRelease(&pPD);
+ SafeRelease(&pSD);
+ SafeRelease(&pHandler);
+ SafeRelease(&pType);
+ return hr;
+}
+
+HRESULT CPreview::SetFormat(IMFMediaType *pType)
+{
+ IMFPresentationDescriptor *pPD = NULL;
+ IMFStreamDescriptor *pSD = NULL;
+ IMFMediaTypeHandler *pHandler = NULL;
+ UINT32 width;
+ UINT32 height;
+ UINT32 sample_size;
+ //IMFMediaType *pType = NULL;
+ EnterCriticalSection(&m_critsec);
+
+ HRESULT hr = m_pSource->CreatePresentationDescriptor(&pPD);
+ if (FAILED(hr))
+ {
+ goto done;
+ }
+
+ BOOL fSelected;
+ hr = pPD->GetStreamDescriptorByIndex(0, &fSelected, &pSD);
+ if (FAILED(hr))
+ {
+ goto done;
+ }
+
+ hr = pSD->GetMediaTypeHandler(&pHandler);
+ if (FAILED(hr))
+ {
+ goto done;
+ }
+
+ /*hr = pHandler->GetMediaTypeByIndex(dwFormatIndex, &pType);
+ if (FAILED(hr))
+ {
+ goto done;
+ }*/
+
+ hr = pHandler->SetCurrentMediaType(pType);
+ if (FAILED(hr))
+ {
+ goto done;
+ }
+ LeaveCriticalSection(&m_critsec);
+
+ hr = TryMediaType(pType);
+
+ EnterCriticalSection(&m_critsec);
+
+ if (FAILED(hr))
+ {
+ goto done;
+ }
+ hr = MFGetAttributeSize( pType, MF_MT_FRAME_SIZE, &width, &height);
+ if (FAILED(hr))
+ {
+ goto done;
+ }
+ hr = pType->GetUINT32( MF_MT_SAMPLE_SIZE, &sample_size);
+ if (FAILED(hr))
+ {
+ goto done;
+ }
+ LogMediaType(pType);
+
+ // Initialize AR Anayse
+ if ( g_pAnalyse )
+ g_pAnalyse->InitialiseTracker( width, height, sample_size );
+
+done:
+ SafeRelease(&pPD);
+ SafeRelease(&pSD);
+ SafeRelease(&pHandler);
+ //SafeRelease(&pType);
+
+ LeaveCriticalSection(&m_critsec);
+
+ return hr;
+}
+
+
+
+
diff --git a/ARMFCaptureD3D/preview.h b/ARMFCaptureD3D/preview.h
new file mode 100644
index 0000000..968f1a9
--- /dev/null
+++ b/ARMFCaptureD3D/preview.h
@@ -0,0 +1,97 @@
+//////////////////////////////////////////////////////////////////////////
+//
+// preview.h: Manages video preview.
+//
+// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
+// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
+// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
+// PARTICULAR PURPOSE.
+//
+// Copyright (c) Microsoft Corporation. All rights reserved.
+//
+//////////////////////////////////////////////////////////////////////////
+
+#pragma once
+#include <cstdio>
+
+
+const UINT WM_APP_PREVIEW_ERROR = WM_APP + 1; // wparam = HRESULT
+
+
+class CPreview : public IMFSourceReaderCallback
+{
+public:
+ static HRESULT CreateInstance(
+ HWND hVideo,
+ HWND hEvent,
+ CPreview **ppPlayer
+ );
+
+ // IUnknown methods
+ STDMETHODIMP QueryInterface(REFIID iid, void** ppv);
+ STDMETHODIMP_(ULONG) AddRef();
+ STDMETHODIMP_(ULONG) Release();
+
+ // IMFSourceReaderCallback methods
+ STDMETHODIMP OnReadSample(
+ HRESULT hrStatus,
+ DWORD dwStreamIndex,
+ DWORD dwStreamFlags,
+ LONGLONG llTimestamp,
+ IMFSample *pSample
+ );
+
+ STDMETHODIMP OnEvent(DWORD, IMFMediaEvent *)
+ {
+ return S_OK;
+ }
+
+ STDMETHODIMP OnFlush(DWORD)
+ {
+ return S_OK;
+ }
+
+ HRESULT SetDevice(IMFActivate *pActivate, int formatType);
+ HRESULT CloseDevice();
+ HRESULT ResizeVideo(WORD width, WORD height);
+ HRESULT CheckDeviceLost(DEV_BROADCAST_HDR *pHdr, BOOL *pbDeviceLost);
+ HRESULT EnumerateCaptureFormats(IMFMediaType ***pppTypes, UINT32 *pcCount);
+ HRESULT SetFormat(IMFMediaType *pActivate);
+
+ bool ToggleVideo();
+ bool ToggleTransform();
+ bool ToggleMoyen();
+
+
+protected:
+
+ bool m_video;
+ bool m_transform;
+ bool m_moyen;
+
+ // Constructor is private. Use static CreateInstance method to create.
+ CPreview(HWND hVideo, HWND hEvent);
+
+ // Destructor is private. Caller should call Release.
+ virtual ~CPreview();
+
+ HRESULT Initialize();
+ void NotifyError(HRESULT hr) { PostMessage(m_hwndEvent, WM_APP_PREVIEW_ERROR, (WPARAM)hr, 0L); }
+ HRESULT TryMediaType(IMFMediaType *pType);
+
+ long m_nRefCount; // Reference count.
+ CRITICAL_SECTION m_critsec;
+
+ HWND m_hwndVideo; // Video window.
+ HWND m_hwndEvent; // Application window to receive events.
+
+ IMFSourceReader *m_pReader;
+ IMFMediaSource *m_pSource;
+
+ DrawDevice m_draw; // Manages the Direct3D device.
+
+ WCHAR *m_pwszSymbolicLink;
+ UINT32 m_cchSymbolicLink;
+
+
+}; \ No newline at end of file
diff --git a/ARMFCaptureD3D/readme.txt b/ARMFCaptureD3D/readme.txt
new file mode 100644
index 0000000..2b85378
--- /dev/null
+++ b/ARMFCaptureD3D/readme.txt
@@ -0,0 +1,51 @@
+MFCaptureD3D Sample
+================================
+Demonstrates how to preview video from a capture device, using
+Direct3D to draw the video frames.
+
+
+Sample Language Implementations
+===============================
+C++
+
+
+Files:
+=============================================
+BufferLock.h
+Debug
+device.cpp
+device.h
+MFCaptureD3D.h
+MFCaptureD3D.rc
+MFCaptureD3D.sln
+MFCaptureD3D.vcproj
+preview.cpp
+preview.h
+readme.txt
+resource.h
+winmain.cpp
+
+
+To build the sample using the command prompt:
+=============================================
+ 1. Open the Command Prompt window and navigate to the MFCaptureD3D directory.
+ 2. Type msbuild MFCaptureD3D.sln.
+
+
+To build the sample using Visual Studio (preferred method):
+===========================================================
+ 1. Open Windows Explorer and navigate to the MFCaptureD3D directory.
+ 2. Double-click the icon for the MFCaptureD3D.sln file to open the file in Visual Studio.
+ 3. In the Build menu, select Build Solution. The application will be built in the default \Debug or \Release directory.
+
+
+To run the sample:
+=================
+ 1. Navigate to the directory that contains the new executable, using the command prompt or Windows Explorer.
+ 2. Type MFCaptureD3D.exe at the command line, or double-click the icon for MFCaptureD3D.exe to launch it from Windows Explorer.
+
+On startup, the application enumerates the available video-capture
+devices and begins streaming from the first device in the list.
+
+To select a different capture device, select Choose Device from the
+File menu.
diff --git a/ARMFCaptureD3D/resource.h b/ARMFCaptureD3D/resource.h
new file mode 100644
index 0000000..67cd108
--- /dev/null
+++ b/ARMFCaptureD3D/resource.h
@@ -0,0 +1,66 @@
+//{{NO_DEPENDENCIES}}
+// Microsoft Visual C++ generated include file.
+// Used by ARMFCaptureD3D.rc
+//
+#define IDR_MENU1 101
+#define IDD_CHOOSE_DEVICE 102
+#define IDD_CHOOSE_VIDEO 103
+#define IDC_LIST1 1001
+#define IDC_DEVICE_LIST 1001
+#define IDC_VIDEO_LIST 1001
+#define ID_ACTION_CHOOSEDEVICE 40001
+#define ID_ACTION_DISPLAYVIDEO 40002
+#define ID_ACTION_CALIBRATE 40003
+#define ID_ACTION_CHOOSEFORMAT 40004
+#define ID_CONFIDENCE_MIN 40005
+#define ID_CONFIDENCE_MAX 40006
+#define ID_CONFIDENCE_ID 40007
+#define ID_FILE_CONFIDENCE 40008
+#define ID_BUTTON2 40009
+#define ID_ACTION_AUTOTHRESHOLD 40010
+#define ID_ACTION_TRANSFORM 40014
+#define ID_DOWNSAMPLE_FACTEUR2 40015
+#define ID_DOWNSAMPLE_FACTEUR4 40016
+#define ID_DOWNSAMPLE_FACTEUR8 40017
+#define ID_BLURPASSE_1PASS 40018
+#define ID_BLURPASSE_2PASSES 40019
+#define ID_BLURPASSE_3PASSES 40020
+#define ID_BLURPASSE_4PASSES 40021
+#define ID_BLURPASSE_2PASS 40022
+#define ID_BLURPASSE_3PASS 40023
+#define ID_BLURPASSE_4PASS 40024
+#define ID_BLURPASSE_5PASSES 40025
+#define ID_BLURPASSE_6PASSES 40026
+#define ID_BLURPASSE_6PASS 40027
+#define ID_BLURPASSE_5PASS 40028
+#define ID_BLURPASSE_10PASSES 40029
+#define ID_BLURPASSE_10PASS 40030
+#define ID_AFFICHAGE_GRAYSCALE 40031
+#define ID_AFFICHAGE_BLUR 40032
+#define ID_AFFICHAGE_DIFF 40033
+#define ID_AFFICHAGE_THRESHOLD 40034
+#define ID_BLURPASSE_0PASSES 40035
+#define ID_DOWNSAMPLE_FACTEUR1 40036
+#define ID_BLURPASSE_0PASS 40037
+#define ID_AFFICHAGE_MOYEN 40038
+#define ID_ACTION_CALCMOYEN 40039
+#define ID_FILTER_MOYEN 40040
+#define ID_FILTER_LAPLACIEN4 40041
+#define ID_FILTER_LAPLACIEN8 40042
+#define ID_FILTER_LAPLACIEND 40043
+#define ID_FILTER_SOBEL 40044
+#define ID_FILTER_PREWITT 40045
+#define ID_FILTER_GAUSSIAN 40046
+#define ID_ACTION_SAVEPROJECTIONDATA 40047
+#define IDC_STATIC -1
+
+// Next default values for new objects
+//
+#ifdef APSTUDIO_INVOKED
+#ifndef APSTUDIO_READONLY_SYMBOLS
+#define _APS_NEXT_RESOURCE_VALUE 111
+#define _APS_NEXT_COMMAND_VALUE 40048
+#define _APS_NEXT_CONTROL_VALUE 1002
+#define _APS_NEXT_SYMED_VALUE 101
+#endif
+#endif
diff --git a/ARMFCaptureD3D/ribbon1.mfcribbon-ms b/ARMFCaptureD3D/ribbon1.mfcribbon-ms
new file mode 100644
index 0000000..ed43ba9
--- /dev/null
+++ b/ARMFCaptureD3D/ribbon1.mfcribbon-ms
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<AFX_RIBBON>
+ <HEADER>
+ <VERSION>1</VERSION>
+ </HEADER>
+ <RIBBON_BAR>
+ <CATEGORIES>
+ <CATEGORY>
+ <ELEMENT_NAME>Category</ELEMENT_NAME>
+ <NAME>Category</NAME>
+ <PANELS>
+ <PANEL>
+ <ELEMENT_NAME>Panel</ELEMENT_NAME>
+ <NAME>Panel</NAME>
+ </PANEL>
+ </PANELS>
+ </CATEGORY>
+ </CATEGORIES>
+ </RIBBON_BAR>
+</AFX_RIBBON>
diff --git a/ARMFCaptureD3D/toolbar1.bmp b/ARMFCaptureD3D/toolbar1.bmp
new file mode 100644
index 0000000..58fccf2
--- /dev/null
+++ b/ARMFCaptureD3D/toolbar1.bmp
Binary files differ
diff --git a/ARMFCaptureD3D/winmain.cpp b/ARMFCaptureD3D/winmain.cpp
new file mode 100644
index 0000000..02ad991
--- /dev/null
+++ b/ARMFCaptureD3D/winmain.cpp
@@ -0,0 +1,1416 @@
+//////////////////////////////////////////////////////////////////////////
+//
+// winmain.cpp : Application entry-point
+//
+// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
+// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
+// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
+// PARTICULAR PURPOSE.
+//
+// Copyright (c) Microsoft Corporation. All rights reserved.
+//
+//////////////////////////////////////////////////////////////////////////
+
+#include "ARMFCaptureD3D.h"
+#include "resource.h"
+#include "ConfigFile\ConfigFile.h"
+#include "debug.h"
+#include "options.h"
+#include "ARAnalyse.h"
+
+// Include the v6 common controls in the manifest
+#pragma comment(linker, \
+ "\"/manifestdependency:type='Win32' "\
+ "name='Microsoft.Windows.Common-Controls' "\
+ "version='6.0.0.0' "\
+ "processorArchitecture='*' "\
+ "publicKeyToken='6595b64144ccf1df' "\
+ "language='*'\"")
+
+
+//
+// ChooseDeviceParam structure
+//
+// Holds an array of IMFActivate pointers that represent video
+// capture devices.
+//
+
+struct ChooseDeviceParam
+{
+ IMFActivate **ppDevices; // Array of IMFActivate pointers.
+ UINT32 count; // Number of elements in the array.
+ UINT32 selection; // Selected device, by array index.
+};
+
+
+//
+// ChooseDeviceParam structure
+//
+// Holds an array of IMFActivate pointers that represent video
+// capture devices.
+//
+
+struct ChooseVideoParam
+{
+ IMFMediaType **ppTypes; // Array of IMFMediaType pointers.
+ UINT32 count; // Number of elements in the array.
+ UINT32 selection; // Selected device, by array index.
+};
+
+BOOL InitializeApplication();
+BOOL InitializeWindow(HWND *pHwnd);
+void CleanUp();
+INT MessageLoop(HWND hwnd);
+
+LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
+INT_PTR CALLBACK DeviceDlgProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
+INT_PTR CALLBACK VideoDlgProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
+void ShowErrorMessage(PCWSTR format, HRESULT hr);
+
+// Window message handlers
+BOOL OnCreate(HWND hwnd, LPCREATESTRUCT lpCreateStruct);
+void OnClose(HWND hwnd);
+void OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify);
+void OnSize(HWND hwnd, UINT state, int cx, int cy);
+void OnDeviceChange(HWND hwnd, DEV_BROADCAST_HDR *pHdr);
+void OnPaint(HWND hwnd);
+void OnInitMenu(HWND hwnd, HMENU menu);
+
+// Command handlers
+void OnChooseDevice(HWND hwnd, BOOL bPrompt, const WCHAR *name, int instance);
+void OnChooseFormat(HWND hwnd, BOOL bPrompt, int index);
+int DeviceGetByName(ChooseDeviceParam *pParam , const WCHAR* name, int instance);
+
+
+// Constants
+const WCHAR CLASS_NAME[] = L"MFCapture Window Class";
+const WCHAR WINDOW_NAME[] = L"MFCapture Sample Application";
+
+
+
+// Global variables
+HWND g_hVideo = NULL;
+HWND g_hStatus = NULL;
+HWND g_hTrack = NULL;
+int g_Threshold = 125;
+
+HWND g_hTrackSeuilMin = NULL;
+int g_ThresholdMin = 127;
+
+HWND g_hTrackSeuilMax = NULL;
+int g_ThresholdMax = 127;
+
+CPreview *g_pPreview = NULL;
+HDEVNOTIFY g_hdevnotify = NULL;
+ARAnalyse *g_pAnalyse = NULL;
+ConfigFile *g_config = NULL;
+
+std::wstring g_camera_name;
+int g_camera_instance = 0;
+std::string g_ivy_domain;
+int g_format_video = 0;
+bool g_toggle_video = false;
+bool g_read_calibrationfile = false;
+
+// command line options
+
+std::wstring widen( const string& str )
+{
+ std::wostringstream wstm ;
+ const std::ctype<wchar_t>& ctfacet = std::use_facet< std::ctype<wchar_t> >( wstm.getloc() ) ;
+ for( size_t i=0 ; i<str.size() ; ++i )
+ wstm << ctfacet.widen( str[i] ) ;
+ return wstm.str() ;
+}
+char* narrow( const std::wstring& str )
+{
+ std::ostringstream stm ;
+ const std::ctype<char>& ctfacet = std::use_facet< std::ctype<char> >( stm.getloc() ) ;
+ for( size_t i=0 ; i<str.size() ; ++i )
+ stm << ctfacet.narrow( str[i], 0 ) ;
+ std::string stro = stm.str();
+ char* c = new char [stro.size()+1];
+ strcpy(c, stro.c_str());
+ return c;
+}
+static void parse_args(char *argv)
+{
+ int errors = 0; // Flag: error in options?
+ const char * pa_optarg;
+ int optchar;
+
+ static const char * optv[] = {
+ "h|help",
+ "c:cam <CameName> default: Logitech",
+ "i:instcam <CameNum> default: 0",
+ "b:bus <Ivy domain>",
+ "v|video non affichage video",
+ "f:format <num format video>",
+ "p:projection Read ProjectionFile ",
+ NULL
+ } ;
+
+ Options opts("ARIvy", optv);
+ opts.ctrls( Options::LONG_ONLY );
+ OptStrTokIter iter(argv);
+
+ while( (optchar = opts(iter, pa_optarg)) != 0 ) {
+ switch (optchar) {
+
+ case 'c':
+ g_camera_name = widen( pa_optarg );
+ break;
+ case 'i':
+ g_camera_instance = atoi( pa_optarg );
+ break;
+
+ case 'b':
+ g_ivy_domain = pa_optarg;
+ break;
+ case 'v':
+ g_toggle_video = true;
+ break;
+ case 'f':
+ g_format_video = atoi( pa_optarg );
+ break;
+ case 'p':
+ g_read_calibrationfile = true;
+ break;
+ case 'h': // Help
+ default:
+ ++errors;
+ break;
+ }
+ }
+
+ if (errors) {
+ opts.usage(std::cout,"");
+ getchar();
+ exit(0);
+ }
+
+}
+
+//-------------------------------------------------------------------
+// WinMain
+//
+// Application entry-point.
+//-------------------------------------------------------------------
+
+INT WINAPI wWinMain(HINSTANCE/* hInstance*/, HINSTANCE /*hPrevInstance*/,LPWSTR lpCmdLine, INT /*nCmdShow*/ )
+{
+
+ HWND hwnd = 0;
+ char *cmdLine = narrow(lpCmdLine) ;
+
+ parse_args(cmdLine);
+ free( cmdLine );
+ try
+ {
+ g_config = new ConfigFile("data\\config.inp");
+ HeapSetInformation(NULL, HeapEnableTerminationOnCorruption, NULL, 0);
+
+ // camera param
+ if ( g_camera_name.length() == 0 )
+ g_camera_name = widen(g_config->read<string>("CameraName", "Logitech"));
+
+ // Ivy
+ if ( g_ivy_domain.length() == 0 )
+ g_ivy_domain = g_config->read<string>("IvyBus","");
+
+ if (InitializeApplication() && InitializeWindow(&hwnd))
+ {
+ MessageLoop(hwnd);
+ }
+
+ CleanUp();
+
+ return 0;
+ }
+ catch(ConfigFile::file_not_found ex)
+ {
+ WCHAR msg[MAX_PATH];
+ HRESULT hr = S_OK;
+ hr = StringCbPrintfW(msg, sizeof(msg), L"Fichier de configuration not trouve: %S", ex.filename.c_str());
+
+ if (SUCCEEDED(hr))
+ {
+ MessageBox(NULL, msg, L"Error", MB_ICONERROR);
+ }
+ return -1;
+ }
+ catch( ConfigFile::key_not_found ex)
+ {
+ WCHAR msg[MAX_PATH];
+ HRESULT hr = S_OK;
+ hr = StringCbPrintfW(msg, sizeof(msg), L"cle manquante dans le fichier de configuration: %S", ex.key.c_str());
+
+ if (SUCCEEDED(hr))
+ {
+ MessageBox(NULL, msg, L"Error", MB_ICONERROR);
+ }return -1;
+ }
+
+}
+
+
+//-------------------------------------------------------------------
+// WindowProc
+//
+// Window procedure.
+//-------------------------------------------------------------------
+
+LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
+{
+ switch (uMsg)
+ {
+ HANDLE_MSG(hwnd, WM_CREATE, OnCreate);
+ HANDLE_MSG(hwnd, WM_CLOSE, OnClose);
+ HANDLE_MSG(hwnd, WM_COMMAND, OnCommand);
+ HANDLE_MSG(hwnd, WM_SIZE, OnSize);
+ HANDLE_MSG(hwnd, WM_INITMENU, OnInitMenu);
+
+ case WM_APP_PREVIEW_ERROR:
+ ShowErrorMessage(L"Error", (HRESULT)wParam);
+ break;
+
+ case WM_DEVICECHANGE:
+ OnDeviceChange(hwnd, (PDEV_BROADCAST_HDR)lParam);
+ break;
+ case WM_ERASEBKGND:
+ // Suppress window erasing, to reduce flickering while the video is playing.
+ return 1;
+ //case WM_PAINT:
+ // OnPaint(hwnd);
+ // break;
+ case WM_HSCROLL:
+ {
+ g_Threshold = SendMessage(g_hTrack, TBM_GETPOS, 0, 0);
+ g_ThresholdMin = SendMessage(g_hTrackSeuilMin, TBM_GETPOS, 0, 0);
+ g_ThresholdMax = SendMessage(g_hTrackSeuilMax, TBM_GETPOS, 0, 0);
+
+ if ( g_pAnalyse )
+ g_pAnalyse->setThreshold( g_Threshold );
+ }
+ break;
+
+ }
+ return DefWindowProc(hwnd, uMsg, wParam, lParam);
+}
+
+
+//-------------------------------------------------------------------
+// InitializeApplication
+//
+// Initializes the application.
+//-------------------------------------------------------------------
+
+BOOL InitializeApplication()
+{
+ HRESULT hr = S_OK;
+
+ InitCommonControls();
+
+ hr = CoInitializeEx(NULL, COINIT_APARTMENTTHREADED | COINIT_DISABLE_OLE1DDE);
+
+ if (SUCCEEDED(hr))
+ {
+ hr = MFStartup(MF_VERSION);
+ }
+
+ return (SUCCEEDED(hr));
+}
+
+//-------------------------------------------------------------------
+// CleanUp
+//
+// Releases resources.
+//-------------------------------------------------------------------
+
+void CleanUp()
+{
+ if (g_hdevnotify)
+ {
+ UnregisterDeviceNotification(g_hdevnotify);
+ }
+
+ if (g_pPreview)
+ {
+ g_pPreview->CloseDevice();
+ }
+
+ SafeRelease(&g_pPreview);
+
+ MFShutdown();
+ CoUninitialize();
+}
+
+
+//-------------------------------------------------------------------
+// InitializeWindow
+//
+// Creates the application window.
+//-------------------------------------------------------------------
+
+BOOL InitializeWindow(HWND *pHwnd)
+{
+ WNDCLASS wc = {0};
+
+ wc.lpfnWndProc = WindowProc;
+ wc.hInstance = GetModuleHandle(NULL);
+ wc.hCursor = LoadCursor(NULL, IDC_ARROW);
+ wc.lpszClassName = CLASS_NAME;
+ wc.lpszMenuName = MAKEINTRESOURCE(IDR_MENU1);
+
+ if (!RegisterClass(&wc))
+ {
+ return FALSE;
+ }
+
+ HWND hwnd = CreateWindow(
+ CLASS_NAME,
+ WINDOW_NAME,
+ WS_OVERLAPPEDWINDOW,
+ CW_USEDEFAULT,
+ CW_USEDEFAULT,
+ CW_USEDEFAULT,
+ CW_USEDEFAULT,
+ NULL,
+ NULL,
+ GetModuleHandle(NULL),
+ NULL
+ );
+
+ if (!hwnd)
+ {
+ return FALSE;
+ }
+
+
+ ShowWindow(hwnd, SW_SHOWDEFAULT);
+ UpdateWindow(hwnd);
+
+ *pHwnd = hwnd;
+
+ return TRUE;
+}
+
+
+//-------------------------------------------------------------------
+// MessageLoop
+//
+// Implements the window message loop.
+//-------------------------------------------------------------------
+
+INT MessageLoop(HWND hwnd)
+{
+ MSG msg = {0};
+
+ while (GetMessage(&msg, NULL, 0, 0))
+ {
+ TranslateMessage(&msg);
+ DispatchMessage(&msg);
+ }
+
+ DestroyWindow(hwnd);
+
+ return INT(msg.wParam);
+}
+HWND CreateSlider( HWND parent, int pos, int min, int max, int val)
+{
+HWND hwndTrack = CreateWindowEx(
+ 0, // no extended styles
+ TRACKBAR_CLASS, // class name
+ TEXT("Trackbar Control"), // title (caption)
+ WS_CHILD | WS_VISIBLE |
+ TBS_NOTICKS , // style
+ pos, 0, // position
+ 200, 20, // size
+ parent, // parent window
+ NULL, // control identifier
+ NULL, // instance
+ NULL // no WM_CREATE parameter
+ );
+
+ SendMessage(hwndTrack, TBM_SETRANGE,
+ (WPARAM) TRUE, // redraw flag
+ (LPARAM) MAKELONG(min, max)); // min. & max. positions
+
+ SendMessage(hwndTrack, TBM_SETPAGESIZE,
+ 0, (LPARAM) 1); // new page size
+
+ //SendMessage(hwndTrack, TBM_SETSEL,
+ // (WPARAM) FALSE, // redraw flag
+ // (LPARAM) MAKELONG(0, 255));
+
+ SendMessage(hwndTrack, TBM_SETPOS,
+ (WPARAM) TRUE, // redraw flag
+ (LPARAM) val);
+ return hwndTrack;
+}
+//-------------------------------------------------------------------
+// OnCreate
+//
+// Handles the WM_CREATE message.
+//-------------------------------------------------------------------
+
+BOOL OnCreate(HWND hwnd, LPCREATESTRUCT)
+{
+ HRESULT hr = S_OK;
+
+ // Register this window to get device notification messages.
+
+ DEV_BROADCAST_DEVICEINTERFACE di = { 0 };
+ di.dbcc_size = sizeof(di);
+ di.dbcc_devicetype = DBT_DEVTYP_DEVICEINTERFACE;
+ di.dbcc_classguid = KSCATEGORY_CAPTURE;
+
+ g_hdevnotify = RegisterDeviceNotification(
+ hwnd,
+ &di,
+ DEVICE_NOTIFY_WINDOW_HANDLE
+ );
+
+ if (g_hdevnotify == NULL)
+ {
+ ShowErrorMessage(L"RegisterDeviceNotification failed.", HRESULT_FROM_WIN32(GetLastError()));
+ return FALSE;
+ }
+
+ // Create status bar
+ HWND hStatus = CreateStatusWindow( WS_CHILD | WS_VISIBLE, L"Status text" , hwnd, 100 );
+
+ // Create slider bar
+ HWND hwndTrack = CreateSlider( hwnd, 0, 0, 255, g_Threshold);
+ HWND hwndTrack1 = CreateSlider( hwnd, 210, 0, 255, g_ThresholdMin);
+ HWND hwndTrack2 = CreateSlider( hwnd, 420, 0, 255, g_ThresholdMax);
+
+
+ HWND hVideo = CreateWindow(
+ TEXT("STATIC"),
+ NULL,
+ WS_CHILD | WS_VISIBLE,
+ CW_USEDEFAULT,
+ CW_USEDEFAULT,
+ CW_USEDEFAULT,
+ CW_USEDEFAULT,
+ hwnd,
+ NULL,
+ GetModuleHandle(NULL),
+ NULL
+ );
+
+ if (!hVideo)
+ {
+ ShowErrorMessage(L"Create Child Window failed.", GetLastError());
+ return FALSE;
+ }
+ RECT rcTrackBar;
+ int iTrackHeight;
+
+ RECT rcStatus;
+ int iStatusHeight;
+
+ int iEditHeight;
+ RECT rcClient;
+
+ // Size status bar and get height
+
+ SendMessage(hStatus, WM_SIZE, 0, 0);
+
+ GetWindowRect(hwndTrack, &rcTrackBar);
+ GetWindowRect(hStatus, &rcStatus);
+ iStatusHeight = rcStatus.bottom - rcStatus.top;
+ iTrackHeight = rcTrackBar.bottom - rcTrackBar.top;
+ // Calculate remaining height and size edit
+
+ GetClientRect(hwnd, &rcClient);
+
+ iEditHeight = rcClient.bottom - iStatusHeight - iTrackHeight;
+
+ SetWindowPos(hVideo, NULL, 0, iTrackHeight, rcClient.right, iEditHeight, SWP_NOZORDER);
+
+ g_hVideo = hVideo;
+ g_hStatus = hStatus;
+ g_hTrack = hwndTrack;
+ g_hTrackSeuilMin = hwndTrack1;
+ g_hTrackSeuilMax = hwndTrack2;
+
+ // Create ArToolKit Analyser
+ g_pAnalyse = new ARAnalyse();
+
+ // Create the object that manages video preview.
+ if ( g_hVideo )
+ {
+ hr = CPreview::CreateInstance(g_hVideo, g_hVideo, &g_pPreview);
+
+ if (FAILED(hr))
+ {
+ ShowErrorMessage(L"CPreview::CreateInstance failed.", hr);
+ return FALSE;
+ }
+ // Select the first available device (if any).
+ OnChooseDevice(hwnd, FALSE, g_camera_name.length() ? g_camera_name.c_str() : NULL, g_camera_instance );
+
+ }
+
+
+
+ if ( g_toggle_video )
+ g_pPreview->ToggleVideo();
+ // start Ivy
+ g_pAnalyse->IvyInit(g_ivy_domain.c_str());
+ return TRUE;
+}
+
+
+
+//-------------------------------------------------------------------
+// OnClose
+//
+// Handles WM_CLOSE messages.
+//-------------------------------------------------------------------
+
+void OnClose(HWND /*hwnd*/)
+{
+ PostQuitMessage(0);
+}
+
+
+
+//-------------------------------------------------------------------
+// OnSize
+//
+// Handles WM_SIZE messages.
+//-------------------------------------------------------------------
+
+void OnSize(HWND hwnd, UINT state, int cx, int cy)
+{
+ // Size status bar and get height
+ RECT rcStatus;
+ int iStatusHeight;
+ int iVideoHeight;
+ int iTrackHeight;
+
+
+ // iconified
+ if ( state == SIZE_MINIMIZED ) return;
+
+ GetWindowRect(g_hStatus, &rcStatus);
+ iStatusHeight = rcStatus.bottom - rcStatus.top;
+ GetWindowRect(g_hTrack, &rcStatus);
+ iTrackHeight = rcStatus.bottom - rcStatus.top;
+
+ // Calculate remaining height and size edit
+
+ iVideoHeight = cy - iStatusHeight -iTrackHeight;
+
+ SetWindowPos(g_hVideo, NULL, 0, iTrackHeight, cx, iVideoHeight, SWP_NOZORDER);
+ if (g_pPreview)
+ {
+ g_pPreview->ResizeVideo((WORD)cx, (WORD)iVideoHeight);
+
+ InvalidateRect(hwnd, NULL, FALSE);
+ }
+ // Auto-resize statusbar (Send WM_SIZE message does just that)
+ SendMessage(g_hStatus, WM_SIZE, 0, 0);
+}
+
+
+
+//-------------------------------------------------------------------
+// OnPaint
+//
+// Handles WM_PAINT messages.
+//-------------------------------------------------------------------
+
+//void OnPaint(HWND hwnd)
+//{
+//
+// PAINTSTRUCT ps;
+// HDC hdc = BeginPaint(hwnd, &ps);
+//
+// // The video is not playing, so we must paint the application window.
+// RECT rc;
+// GetClientRect(hwnd, &rc);
+// FillRect(hdc, &rc, (HBRUSH) COLOR_WINDOW);
+// DrawText( hdc, L"ESSAI",5, &rc, 0);
+// EndPaint(hwnd, &ps);
+//
+//
+//}
+//-------------------------------------------------------------------
+// OnInitMenuChange
+//
+// Handles WM_INITMENU messages.
+//-------------------------------------------------------------------
+
+void OnInitMenu(HWND hwnd, HMENU menu)
+{
+
+ EnableMenuItem( menu, ID_ACTION_CALIBRATE, g_pAnalyse->IsCalibrationEnabled() ? MF_ENABLED : MF_DISABLED );
+ EnableMenuItem( menu, ID_ACTION_SAVEPROJECTIONDATA, g_pAnalyse->IsCalibrated() ? MF_ENABLED : MF_DISABLED );
+ CheckMenuItem( menu, ID_ACTION_CALIBRATE, g_pAnalyse->IsCalibrated() ? MF_CHECKED : MF_UNCHECKED );
+ // Blur pass
+ CheckMenuItem( menu, ID_BLURPASSE_0PASS, g_pAnalyse->BlurPass == 0 ? MF_CHECKED : MF_UNCHECKED );
+ CheckMenuItem( menu, ID_BLURPASSE_1PASS, g_pAnalyse->BlurPass == 1 ? MF_CHECKED : MF_UNCHECKED );
+ CheckMenuItem( menu, ID_BLURPASSE_2PASS, g_pAnalyse->BlurPass == 2 ? MF_CHECKED : MF_UNCHECKED );
+ CheckMenuItem( menu, ID_BLURPASSE_3PASS, g_pAnalyse->BlurPass == 3 ? MF_CHECKED : MF_UNCHECKED );
+ CheckMenuItem( menu, ID_BLURPASSE_4PASS, g_pAnalyse->BlurPass == 4 ? MF_CHECKED : MF_UNCHECKED );
+ CheckMenuItem( menu, ID_BLURPASSE_4PASS, g_pAnalyse->BlurPass == 5 ? MF_CHECKED : MF_UNCHECKED );
+ CheckMenuItem( menu, ID_BLURPASSE_4PASS, g_pAnalyse->BlurPass == 6 ? MF_CHECKED : MF_UNCHECKED );
+ CheckMenuItem( menu, ID_BLURPASSE_4PASS, g_pAnalyse->BlurPass == 10 ? MF_CHECKED : MF_UNCHECKED );
+ // DownSample
+ CheckMenuItem( menu, ID_DOWNSAMPLE_FACTEUR1, g_pAnalyse->DownSample == 1 ? MF_CHECKED : MF_UNCHECKED );
+ CheckMenuItem( menu, ID_DOWNSAMPLE_FACTEUR2, g_pAnalyse->DownSample == 2 ? MF_CHECKED : MF_UNCHECKED );
+ CheckMenuItem( menu, ID_DOWNSAMPLE_FACTEUR4, g_pAnalyse->DownSample == 4 ? MF_CHECKED : MF_UNCHECKED );
+ CheckMenuItem( menu, ID_DOWNSAMPLE_FACTEUR8, g_pAnalyse->DownSample == 8 ? MF_CHECKED : MF_UNCHECKED );
+ // Affichage
+ CheckMenuItem( menu, ID_AFFICHAGE_GRAYSCALE, g_pAnalyse->Display == ARAnalyse::GrayScale ? MF_CHECKED : MF_UNCHECKED );
+ CheckMenuItem( menu, ID_AFFICHAGE_BLUR, g_pAnalyse->Display == ARAnalyse::Blur ? MF_CHECKED : MF_UNCHECKED );
+ CheckMenuItem( menu, ID_AFFICHAGE_DIFF, g_pAnalyse->Display == ARAnalyse::Diff ? MF_CHECKED : MF_UNCHECKED );
+ CheckMenuItem( menu, ID_AFFICHAGE_THRESHOLD, g_pAnalyse->Display == ARAnalyse::Threshold ? MF_CHECKED : MF_UNCHECKED );
+ CheckMenuItem( menu, ID_AFFICHAGE_MOYEN, g_pAnalyse->Display == ARAnalyse::Moyen ? MF_CHECKED : MF_UNCHECKED );
+ // Filter
+ CheckMenuItem( menu, ID_FILTER_MOYEN, g_pAnalyse->filter == ARAnalyse::FMoyen ? MF_CHECKED : MF_UNCHECKED );
+ CheckMenuItem( menu, ID_FILTER_LAPLACIEN4, g_pAnalyse->filter == ARAnalyse::FLaplacien4 ? MF_CHECKED : MF_UNCHECKED );
+ CheckMenuItem( menu, ID_FILTER_LAPLACIEN8, g_pAnalyse->filter == ARAnalyse::FLaplacien8 ? MF_CHECKED : MF_UNCHECKED );
+ CheckMenuItem( menu, ID_FILTER_LAPLACIEND, g_pAnalyse->filter == ARAnalyse::FLaplaciend ? MF_CHECKED : MF_UNCHECKED );
+ CheckMenuItem( menu, ID_FILTER_SOBEL, g_pAnalyse->filter == ARAnalyse::FSobel ? MF_CHECKED : MF_UNCHECKED );
+ CheckMenuItem( menu, ID_FILTER_PREWITT, g_pAnalyse->filter == ARAnalyse::FPrewitt ? MF_CHECKED : MF_UNCHECKED );
+ CheckMenuItem( menu, ID_FILTER_GAUSSIAN, g_pAnalyse->filter == ARAnalyse::FGaussian ? MF_CHECKED : MF_UNCHECKED );
+}
+//-------------------------------------------------------------------
+// OnCommand
+//
+// Handles WM_COMMAND messages
+//-------------------------------------------------------------------
+
+void OnCommand(HWND hwnd, int id, HWND /*hwndCtl*/, UINT /*codeNotify*/)
+{
+ switch (id)
+ {
+ case ID_ACTION_CHOOSEDEVICE:
+ OnChooseDevice(hwnd, TRUE, NULL,0);
+ break;
+ case ID_ACTION_CHOOSEFORMAT:
+ OnChooseFormat(hwnd, TRUE, 0);
+ break;
+ case ID_ACTION_DISPLAYVIDEO:
+ if (g_pPreview)
+ {
+ bool video = g_pPreview->ToggleVideo();
+ CheckMenuItem( GetMenu( hwnd ), ID_ACTION_DISPLAYVIDEO, video ? MF_CHECKED : MF_UNCHECKED );
+ }
+
+ break;
+ case ID_ACTION_CALCMOYEN:
+ if (g_pPreview)
+ {
+ bool moy = g_pPreview->ToggleMoyen();
+ CheckMenuItem( GetMenu( hwnd ), ID_ACTION_CALCMOYEN, moy ? MF_CHECKED : MF_UNCHECKED );
+ }
+
+ break;case ID_ACTION_TRANSFORM:
+ if (g_pPreview)
+ {
+ bool trsf = g_pPreview->ToggleTransform();
+ CheckMenuItem( GetMenu( hwnd ), ID_ACTION_TRANSFORM, trsf ? MF_CHECKED : MF_UNCHECKED );
+ }
+ break;
+ case ID_ACTION_AUTOTHRESHOLD:
+ if (g_pAnalyse)
+ {
+ bool auto_threshold = g_pAnalyse->ToggleAutoThreshold();
+ CheckMenuItem( GetMenu( hwnd ), ID_ACTION_AUTOTHRESHOLD, auto_threshold ? MF_CHECKED : MF_UNCHECKED );
+ if ( ! auto_threshold )
+ {
+ SendMessage(g_hTrack, TBM_SETPOS,
+ (WPARAM) TRUE, // redraw flag
+ (LPARAM) g_pAnalyse->getThreshold());
+ }
+ }
+
+ break;
+ case ID_ACTION_CALIBRATE:
+ if (g_pAnalyse)
+ {
+ bool cal = g_pAnalyse->Calibrate();
+ CheckMenuItem( GetMenu( hwnd ), ID_ACTION_CALIBRATE, cal ? MF_CHECKED : MF_UNCHECKED );
+ }
+ break;
+ case ID_ACTION_SAVEPROJECTIONDATA:
+ if ( g_pAnalyse )
+ {
+ g_pAnalyse->SaveCalibration();
+ }
+ break;
+ case ID_BLURPASSE_0PASS:
+ if (g_pAnalyse)
+ {
+ g_pAnalyse->BlurPass = 0;
+ }
+ break;
+
+ case ID_BLURPASSE_1PASS:
+ if (g_pAnalyse)
+ {
+ g_pAnalyse->BlurPass = 1;
+ }
+ break;
+
+ case ID_BLURPASSE_2PASS:
+ if (g_pAnalyse)
+ {
+ g_pAnalyse->BlurPass = 2;
+ }
+ break;
+
+ case ID_BLURPASSE_3PASS:
+ if (g_pAnalyse)
+ {
+ g_pAnalyse->BlurPass = 3;
+ }
+ break;
+ case ID_BLURPASSE_4PASS:
+ if (g_pAnalyse)
+ {
+ g_pAnalyse->BlurPass = 4;
+ }
+ break;
+ case ID_BLURPASSE_5PASS:
+ if (g_pAnalyse)
+ {
+ g_pAnalyse->BlurPass = 5;
+ }
+ break;
+ case ID_BLURPASSE_6PASS:
+ if (g_pAnalyse)
+ {
+ g_pAnalyse->BlurPass = 6;
+ }
+ break;
+ case ID_BLURPASSE_10PASS:
+ if (g_pAnalyse)
+ {
+ g_pAnalyse->BlurPass = 10;
+ }
+ break;
+ case ID_DOWNSAMPLE_FACTEUR1:
+ if (g_pAnalyse)
+ {
+ g_pAnalyse->DownSample = 1;
+ }
+ break;
+ case ID_DOWNSAMPLE_FACTEUR2:
+ if (g_pAnalyse)
+ {
+ g_pAnalyse->DownSample = 2;
+ }
+ break;
+ case ID_DOWNSAMPLE_FACTEUR4:
+ if (g_pAnalyse)
+ {
+ g_pAnalyse->DownSample = 4;
+ }
+ break;
+ case ID_DOWNSAMPLE_FACTEUR8:
+ if (g_pAnalyse)
+ {
+ g_pAnalyse->DownSample = 8;
+ }
+ break;
+
+ case ID_AFFICHAGE_GRAYSCALE:
+ if (g_pAnalyse)
+ {
+ g_pAnalyse->Display = ARAnalyse::GrayScale;
+ }
+ break;
+ case ID_AFFICHAGE_BLUR:
+ if (g_pAnalyse)
+ {
+ g_pAnalyse->Display = ARAnalyse::Blur;
+ }
+ break;
+ case ID_AFFICHAGE_DIFF:
+ if (g_pAnalyse)
+ {
+ g_pAnalyse->Display = ARAnalyse::Diff;
+ }
+ break;
+ case ID_AFFICHAGE_THRESHOLD:
+ if (g_pAnalyse)
+ {
+ g_pAnalyse->Display = ARAnalyse::Threshold;
+ }
+ break;
+ case ID_AFFICHAGE_MOYEN:
+ if (g_pAnalyse)
+ {
+ g_pAnalyse->Display = ARAnalyse::Moyen;
+ }
+ break;
+ case ID_FILTER_MOYEN:
+ if (g_pAnalyse)
+ {
+ g_pAnalyse->filter = ARAnalyse::FMoyen;
+ }
+ break;
+ case ID_FILTER_LAPLACIEN4:
+ if (g_pAnalyse)
+ {
+ g_pAnalyse->filter = ARAnalyse::FLaplacien4;
+ }
+ break;
+ case ID_FILTER_LAPLACIEN8:
+ if (g_pAnalyse)
+ {
+ g_pAnalyse->filter = ARAnalyse::FLaplacien8;
+ }
+ break;
+ case ID_FILTER_LAPLACIEND:
+ if (g_pAnalyse)
+ {
+ g_pAnalyse->filter = ARAnalyse::FLaplaciend;
+ }
+ break;
+ case ID_FILTER_SOBEL:
+ if (g_pAnalyse)
+ {
+ g_pAnalyse->filter = ARAnalyse::FSobel;
+ }
+ break;
+ case ID_FILTER_PREWITT:
+ if (g_pAnalyse)
+ {
+ g_pAnalyse->filter = ARAnalyse::FPrewitt;
+ }
+ break;
+ case ID_FILTER_GAUSSIAN:
+ if (g_pAnalyse)
+ {
+ g_pAnalyse->filter = ARAnalyse::FGaussian;
+ }
+ break;
+ }
+}
+
+//-------------------------------------------------------------------
+// OnChooseDevice
+//
+// Select a video capture device.
+//
+// hwnd: A handle to the application window.
+/// bPrompt: If TRUE, prompt to user to select the device. Otherwise,
+// select the first device in the list.
+//-------------------------------------------------------------------
+
+void OnChooseDevice(HWND hwnd, BOOL bPrompt, const WCHAR* name, int instance)
+{
+ HRESULT hr = S_OK;
+ ChooseDeviceParam param = { 0,0,0 };
+
+ UINT iDevice = 0; // Index into the array of devices
+ BOOL bCancel = FALSE;
+
+ IMFAttributes *pAttributes = NULL;
+
+ // Initialize an attribute store to specify enumeration parameters.
+
+ hr = MFCreateAttributes(&pAttributes, 1);
+
+ if (FAILED(hr)) { goto done; }
+
+ // Ask for source type = video capture devices.
+
+ hr = pAttributes->SetGUID(
+ MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE,
+ MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_GUID
+ );
+
+ if (FAILED(hr)) { goto done; }
+
+ // Enumerate devices.
+ hr = MFEnumDeviceSources(pAttributes, &param.ppDevices, &param.count);
+
+ if (FAILED(hr)) { goto done; }
+
+ // NOTE: param.count might be zero.
+
+ if (bPrompt || name == NULL)
+ {
+ // Ask the user to select a device.
+
+ INT_PTR result = DialogBoxParam(
+ GetModuleHandle(NULL),
+ MAKEINTRESOURCE(IDD_CHOOSE_DEVICE),
+ hwnd,
+ DeviceDlgProc,
+ (LPARAM)&param
+ );
+
+ if (result == IDOK)
+ {
+ iDevice = param.selection;
+ }
+ else
+ {
+ bCancel = TRUE; // User cancelled
+ }
+ }
+ else
+ {
+ iDevice = DeviceGetByName( &param, name, instance );
+ }
+
+ if (!bCancel && (param.count > 0))
+ {
+ // Give this source to the CPlayer object for preview.
+ hr = g_pPreview->SetDevice( param.ppDevices[iDevice], g_format_video );
+ }
+
+done:
+
+ SafeRelease(&pAttributes);
+
+ for (DWORD i = 0; i < param.count; i++)
+ {
+ SafeRelease(&param.ppDevices[i]);
+ }
+ CoTaskMemFree(param.ppDevices);
+
+ if (FAILED(hr))
+ {
+ ShowErrorMessage(L"Cannot create a video capture device", hr);
+ }
+}
+
+
+//-------------------------------------------------------------------
+// OnChooseFormat
+//
+// Select a video format capture.
+//
+// hwnd: A handle to the application window.
+/// bPrompt: If TRUE, prompt to user to select the device. Otherwise,
+// select the first device in the list.
+//-------------------------------------------------------------------
+
+void OnChooseFormat(HWND hwnd, BOOL bPrompt, int index)
+{
+ HRESULT hr = S_OK;
+ ChooseVideoParam param = { 0, 0, 0 };
+
+ UINT iFormat = 0; // Index into the array of devices
+ BOOL bCancel = FALSE;
+
+ hr = g_pPreview->EnumerateCaptureFormats( &param.ppTypes, &param.count);
+
+ // NOTE: param.count might be zero.
+
+ if (bPrompt)
+ {
+ // Ask the user to select a device.
+
+ INT_PTR result = DialogBoxParam(
+ GetModuleHandle(NULL),
+ MAKEINTRESOURCE(IDD_CHOOSE_VIDEO),
+ hwnd,
+ VideoDlgProc,
+ (LPARAM)&param
+ );
+
+ if (result == IDOK)
+ {
+ iFormat = param.selection;
+ }
+ else
+ {
+ bCancel = TRUE; // User cancelled
+ }
+ }
+ else
+ {
+ iFormat = index;
+ }
+ if (!bCancel && (param.count > 0))
+ {
+ // Give this format to the CPlayer object for preview.
+ hr = g_pPreview->SetFormat( param.ppTypes[iFormat] );
+ }
+
+
+
+ for (DWORD i = 0; i < param.count; i++)
+ {
+ SafeRelease(&param.ppTypes[i]);
+ }
+ CoTaskMemFree(param.ppTypes);
+
+ if (FAILED(hr))
+ {
+ ShowErrorMessage(L"Cannot select a video format", hr);
+ }
+}
+
+//-------------------------------------------------------------------
+// OnDeviceChange
+//
+// Handles WM_DEVICECHANGE messages.
+//-------------------------------------------------------------------
+
+void OnDeviceChange(HWND hwnd, DEV_BROADCAST_HDR *pHdr)
+{
+ if (g_pPreview == NULL || pHdr == NULL)
+ {
+ return;
+ }
+
+ HRESULT hr = S_OK;
+ BOOL bDeviceLost = FALSE;
+
+ // Check if the current device was lost.
+
+ hr = g_pPreview->CheckDeviceLost(pHdr, &bDeviceLost);
+
+ if (FAILED(hr) || bDeviceLost)
+ {
+ g_pPreview->CloseDevice();
+
+ MessageBox(hwnd, L"Lost the capture device.", WINDOW_NAME, MB_OK);
+ }
+}
+
+
+/////////////////////////////////////////////////////////////////////
+
+// Dialog functions
+
+int DeviceGetByName(ChooseDeviceParam *pParam , const WCHAR* name, int instance)
+{
+ HRESULT hr = S_OK;
+ DWORD iDevice = 0;
+ int current_inst = 0;
+ bool NameFound = false;
+ for (DWORD i = 0; i < pParam->count; i++)
+ {
+ WCHAR *szFriendlyName = NULL;
+
+ hr = pParam->ppDevices[i]->GetAllocatedString(
+ MF_DEVSOURCE_ATTRIBUTE_FRIENDLY_NAME,
+ &szFriendlyName,
+ NULL
+ );
+ if (FAILED(hr))
+ {
+ break;
+ }
+ NameFound = wcsstr( szFriendlyName, name ) != NULL;
+ CoTaskMemFree(szFriendlyName);
+ // check if devioce containt name
+ if ( NameFound )
+ {
+ iDevice = i;
+ if ( current_inst == instance )
+ break;
+ current_inst++;
+
+ }
+
+ }
+
+ return iDevice;
+}
+
+//-------------------------------------------------------------------
+// OnInitDialog
+//
+// Handles the WM_INITDIALOG message.
+//-------------------------------------------------------------------
+
+void DeviceOnInitDialog(HWND hwnd, ChooseDeviceParam *pParam)
+{
+ HRESULT hr = S_OK;
+
+ // Populate the list with the friendly names of the devices.
+
+ HWND hList = GetDlgItem(hwnd, IDC_DEVICE_LIST);
+
+ for (DWORD i = 0; i < pParam->count; i++)
+ {
+ WCHAR *szFriendlyName = NULL;
+
+ hr = pParam->ppDevices[i]->GetAllocatedString(
+ MF_DEVSOURCE_ATTRIBUTE_FRIENDLY_NAME,
+ &szFriendlyName,
+ NULL
+ );
+
+ if (FAILED(hr))
+ {
+ break;
+ }
+
+
+ int index = ListBox_AddString(hList, szFriendlyName);
+
+ ListBox_SetItemData(hList, index, i);
+
+ CoTaskMemFree(szFriendlyName);
+ }
+
+ // Assume no selection for now.
+ pParam->selection = (UINT32)-1;
+
+ if (pParam->count == 0)
+ {
+ // If there are no devices, disable the "OK" button.
+ EnableWindow(GetDlgItem(hwnd, IDOK), FALSE);
+ }
+}
+
+
+HRESULT DeviceOnOK(HWND hwnd, ChooseDeviceParam *pParam)
+{
+ HWND hList = GetDlgItem(hwnd, IDC_DEVICE_LIST);
+
+ int sel = ListBox_GetCurSel(hList);
+
+ if (sel != LB_ERR)
+ {
+ pParam->selection = (UINT32)ListBox_GetItemData(hList, sel);
+ }
+
+ return S_OK;
+}
+
+
+//-------------------------------------------------------------------
+// DeviceDlgProc
+//
+// Dialog procedure for the "Select Device" dialog.
+//-------------------------------------------------------------------
+
+INT_PTR CALLBACK DeviceDlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
+{
+ static ChooseDeviceParam *pParam = NULL;
+
+ switch (msg)
+ {
+ case WM_INITDIALOG:
+ pParam = (ChooseDeviceParam*)lParam;
+ DeviceOnInitDialog(hwnd, pParam);
+ return TRUE;
+
+ case WM_COMMAND:
+ switch(LOWORD(wParam))
+ {
+ case IDOK:
+ DeviceOnOK(hwnd, pParam);
+ EndDialog(hwnd, LOWORD(wParam));
+ return TRUE;
+
+ case IDCANCEL:
+ EndDialog(hwnd, LOWORD(wParam));
+ return TRUE;
+ }
+ break;
+ }
+
+ return FALSE;
+}
+
+
+
+void ShowErrorMessage(PCWSTR format, HRESULT hrErr)
+{
+ HRESULT hr = S_OK;
+ int dwBufferLength;
+
+ WCHAR msg[MAX_PATH];
+ static LPCVOID s_hModule = 0;
+ const LPCWSTR MESSAGEFILE = L"mferror.dll";
+ DWORD dwFormatFlags =
+ FORMAT_MESSAGE_ALLOCATE_BUFFER |
+ FORMAT_MESSAGE_FROM_SYSTEM |
+ FORMAT_MESSAGE_IGNORE_INSERTS |
+ FORMAT_MESSAGE_MAX_WIDTH_MASK;
+
+ WCHAR *lpMsgBuf = 0;
+ dwBufferLength = FormatMessage(
+ dwFormatFlags,
+ NULL,
+ hrErr,
+ MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
+ (LPTSTR)&lpMsgBuf,
+ 0,
+ NULL );
+ //lpMsgBuf[strlen(lpMsgBuf) -2] = '\0'; // remove last \n
+
+ // Not a system message. In theory, you should be able to get both with one call.
+ // In practice (at least on my 64bit box), you need to make 2 calls.
+ if (dwBufferLength == 0)
+ {
+ if (s_hModule == 0)
+ {
+ // Load the Media Foundation error message dll
+ s_hModule = LoadLibraryEx(MESSAGEFILE, NULL, LOAD_LIBRARY_AS_DATAFILE);
+ }
+
+ if (s_hModule != 0)
+ {
+ // If the load succeeds, make sure we look in it
+ dwFormatFlags |= FORMAT_MESSAGE_FROM_HMODULE;
+
+ // Scan both the Windows Media library, and the system library looking for the message
+ dwBufferLength = FormatMessage(
+ dwFormatFlags,
+ s_hModule, // module to get message from (NULL == system)
+ hrErr, // error number to get message for
+ MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // default language
+ (LPTSTR)&lpMsgBuf,
+ 0,
+ NULL
+ );
+ }
+ }
+ hr = StringCbPrintf(msg, sizeof(msg), L"%s (hr=0x%X) \n%s", format, hrErr, lpMsgBuf);
+ // Free the buffer.
+ LocalFree( lpMsgBuf );
+ if (SUCCEEDED(hr))
+ {
+ MessageBox(NULL, msg, L"Error", MB_ICONERROR);
+ }
+ else
+ {
+ DebugBreak();
+ }
+}
+
+// Dialog functions
+
+//-------------------------------------------------------------------
+// VideoOnInitDialog
+//
+// Handles the WM_INITDIALOG message.
+//-------------------------------------------------------------------
+
+void VideoOnInitDialog(HWND hwnd, ChooseVideoParam *pParam)
+{
+ HRESULT hr = S_OK;
+ PROPVARIANT var;
+ UINT32 rate_num;
+ UINT32 rate_denum;
+ UINT32 width;
+ UINT32 height;
+ WCHAR msg[MAX_PATH];
+
+ // Populate the list with the friendly names of the devices.
+
+ HWND hList = GetDlgItem(hwnd, IDC_VIDEO_LIST);
+
+ for (DWORD i = 0; i < pParam->count; i++)
+ {
+
+ WCHAR *szSubTypeName = NULL;
+
+ hr = pParam->ppTypes[i]->GetItem( MF_MT_SUBTYPE, &var );
+ if (FAILED(hr))
+ {
+ break;
+ }
+
+ hr = GetGUIDName(*var.puuid, &szSubTypeName);
+ if (FAILED(hr))
+ {
+ break;
+ }
+
+ hr = MFGetAttributeSize( pParam->ppTypes[i], MF_MT_FRAME_RATE, &rate_num, &rate_denum );
+ if (FAILED(hr))
+ {
+ break;
+ }
+ hr = MFGetAttributeSize( pParam->ppTypes[i], MF_MT_FRAME_SIZE, &width, &height);
+ if (FAILED(hr))
+ {
+ break;
+ }
+
+
+ if (SUCCEEDED(StringCchPrintf(msg, sizeof(msg), TEXT("%02d %s %dx%d pixel %.01f FPS"), i,szSubTypeName, width,height,((float)rate_num/rate_denum))))
+ {
+ int index = ListBox_AddString(hList, msg);
+
+ ListBox_SetItemData(hList, index, i);
+ }
+
+
+ CoTaskMemFree(szSubTypeName);
+ }
+
+ // Assume no selection for now.
+ pParam->selection = (UINT32)-1;
+
+ if (pParam->count == 0)
+ {
+ // If there are no devices, disable the "OK" button.
+ EnableWindow(GetDlgItem(hwnd, IDOK), FALSE);
+ }
+}
+
+
+HRESULT VideoOnOK(HWND hwnd, ChooseVideoParam *pParam)
+{
+ HWND hList = GetDlgItem(hwnd, IDC_DEVICE_LIST);
+
+ int sel = ListBox_GetCurSel(hList);
+
+ if (sel != LB_ERR)
+ {
+ pParam->selection = (UINT32)ListBox_GetItemData(hList, sel);
+ }
+
+ return S_OK;
+}
+
+
+
+
+//-------------------------------------------------------------------
+// DeviceDlgProc
+//
+// Dialog procedure for the "Select Device" dialog.
+//-------------------------------------------------------------------
+
+INT_PTR CALLBACK VideoDlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
+{
+ static ChooseVideoParam *pParam = NULL;
+
+ switch (msg)
+ {
+ case WM_INITDIALOG:
+ pParam = (ChooseVideoParam*)lParam;
+ VideoOnInitDialog(hwnd, pParam);
+ return TRUE;
+
+ case WM_COMMAND:
+ switch(LOWORD(wParam))
+ {
+ case IDOK:
+ VideoOnOK(hwnd, pParam);
+ EndDialog(hwnd, LOWORD(wParam));
+ return TRUE;
+
+ case IDCANCEL:
+ EndDialog(hwnd, LOWORD(wParam));
+ return TRUE;
+ }
+ break;
+ }
+
+ return FALSE;
+}
+
+
diff --git a/ARMFCaptureD3D/x64/Debug/ARAnalyse.obj b/ARMFCaptureD3D/x64/Debug/ARAnalyse.obj
new file mode 100644
index 0000000..d355854
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Debug/ARAnalyse.obj
Binary files differ
diff --git a/ARMFCaptureD3D/x64/Debug/ARMFCaptureD3D.Build.CppClean.log b/ARMFCaptureD3D/x64/Debug/ARMFCaptureD3D.Build.CppClean.log
new file mode 100644
index 0000000..e11462b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Debug/ARMFCaptureD3D.Build.CppClean.log
@@ -0,0 +1,51 @@
+C:\USERS\FCOLIN\DOCUMENTS\PROJECTS VISUAL STUDIO\CPP\ARMFCAPTURED3D\X64\DEBUG\ARANALYSE.OBJ
+C:\USERS\FCOLIN\DOCUMENTS\PROJECTS VISUAL STUDIO\CPP\ARMFCAPTURED3D\X64\DEBUG\ARMFCAPTURED3D.EXE
+C:\USERS\FCOLIN\DOCUMENTS\PROJECTS VISUAL STUDIO\CPP\ARMFCAPTURED3D\X64\DEBUG\ARMFCAPTURED3D.EXE.EMBED.MANIFEST
+C:\USERS\FCOLIN\DOCUMENTS\PROJECTS VISUAL STUDIO\CPP\ARMFCAPTURED3D\X64\DEBUG\ARMFCAPTURED3D.EXE.EMBED.MANIFEST.RES
+C:\USERS\FCOLIN\DOCUMENTS\PROJECTS VISUAL STUDIO\CPP\ARMFCAPTURED3D\X64\DEBUG\ARMFCAPTURED3D.EXE.INTERMEDIATE.MANIFEST
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Debug\ARMFCaptureD3D.exp
+C:\USERS\FCOLIN\DOCUMENTS\PROJECTS VISUAL STUDIO\CPP\ARMFCAPTURED3D\X64\DEBUG\ARMFCAPTURED3D.ILK
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Debug\ARMFCaptureD3D.lib
+C:\USERS\FCOLIN\DOCUMENTS\PROJECTS VISUAL STUDIO\CPP\ARMFCAPTURED3D\X64\DEBUG\ARMFCAPTURED3D.PDB
+C:\USERS\FCOLIN\DOCUMENTS\PROJECTS VISUAL STUDIO\CPP\ARMFCAPTURED3D\X64\DEBUG\ARMFCAPTURED3D.RES
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Debug\ARMFCaptureD3D.write.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Debug\ARMFCaptureD3D_manifest.rc
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Debug\ARToolKitPlus.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Debug\ARToolKitPlus.ilk
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Debug\ARToolKitPlus.pdb
+C:\USERS\FCOLIN\DOCUMENTS\PROJECTS VISUAL STUDIO\CPP\ARMFCAPTURED3D\X64\DEBUG\CALIBRATION.OBJ
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Debug\cl.command.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Debug\CL.read.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Debug\CL.write.1.tlog
+C:\USERS\FCOLIN\DOCUMENTS\PROJECTS VISUAL STUDIO\CPP\ARMFCAPTURED3D\X64\DEBUG\CONFIGFILE.OBJ
+C:\USERS\FCOLIN\DOCUMENTS\PROJECTS VISUAL STUDIO\CPP\ARMFCAPTURED3D\X64\DEBUG\DEBUG.OBJ
+C:\USERS\FCOLIN\DOCUMENTS\PROJECTS VISUAL STUDIO\CPP\ARMFCAPTURED3D\X64\DEBUG\DEVICE.OBJ
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Debug\Ivy.bsc
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Debug\Ivy.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Debug\Ivy.ilk
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Debug\Ivy.pdb
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Debug\link.8660.read.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Debug\link.8660.write.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Debug\link.8660-cvtres.read.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Debug\link.8660-cvtres.write.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Debug\link.command.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Debug\link.read.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Debug\link.write.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Debug\link-cvtres.read.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Debug\link-cvtres.write.1.tlog
+C:\USERS\FCOLIN\DOCUMENTS\PROJECTS VISUAL STUDIO\CPP\ARMFCAPTURED3D\X64\DEBUG\MINMAXAVG.OBJ
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Debug\mt.command.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Debug\mt.read.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Debug\mt.write.1.tlog
+C:\USERS\FCOLIN\DOCUMENTS\PROJECTS VISUAL STUDIO\CPP\ARMFCAPTURED3D\X64\DEBUG\OPTIONS.OBJ
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Debug\pcre.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Debug\pcre.ilk
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Debug\pcre.pdb
+C:\USERS\FCOLIN\DOCUMENTS\PROJECTS VISUAL STUDIO\CPP\ARMFCAPTURED3D\X64\DEBUG\PREVIEW.OBJ
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Debug\rc.command.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Debug\rc.read.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Debug\rc.write.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Debug\ResolveAssemblyReference.cache
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Debug\vc100.idb
+C:\USERS\FCOLIN\DOCUMENTS\PROJECTS VISUAL STUDIO\CPP\ARMFCAPTURED3D\X64\DEBUG\VC100.PDB
+C:\USERS\FCOLIN\DOCUMENTS\PROJECTS VISUAL STUDIO\CPP\ARMFCAPTURED3D\X64\DEBUG\WINMAIN.OBJ
diff --git a/ARMFCaptureD3D/x64/Debug/ARMFCaptureD3D.exe b/ARMFCaptureD3D/x64/Debug/ARMFCaptureD3D.exe
new file mode 100644
index 0000000..3399906
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Debug/ARMFCaptureD3D.exe
Binary files differ
diff --git a/ARMFCaptureD3D/x64/Debug/ARMFCaptureD3D.exe.embed.manifest b/ARMFCaptureD3D/x64/Debug/ARMFCaptureD3D.exe.embed.manifest
new file mode 100644
index 0000000..9032d50
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Debug/ARMFCaptureD3D.exe.embed.manifest
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
+ <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
+ <security>
+ <requestedPrivileges>
+ <requestedExecutionLevel level="asInvoker" uiAccess="false"></requestedExecutionLevel>
+ </requestedPrivileges>
+ </security>
+ </trustInfo>
+ <dependency>
+ <dependentAssembly>
+ <assemblyIdentity type="Win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="*" publicKeyToken="6595b64144ccf1df" language="*"></assemblyIdentity>
+ </dependentAssembly>
+ </dependency>
+</assembly> \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Debug/ARMFCaptureD3D.exe.embed.manifest.res b/ARMFCaptureD3D/x64/Debug/ARMFCaptureD3D.exe.embed.manifest.res
new file mode 100644
index 0000000..b6fdff3
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Debug/ARMFCaptureD3D.exe.embed.manifest.res
Binary files differ
diff --git a/ARMFCaptureD3D/x64/Debug/ARMFCaptureD3D.exe.intermediate.manifest b/ARMFCaptureD3D/x64/Debug/ARMFCaptureD3D.exe.intermediate.manifest
new file mode 100644
index 0000000..43cc1f5
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Debug/ARMFCaptureD3D.exe.intermediate.manifest
@@ -0,0 +1,15 @@
+<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
+<assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'>
+ <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
+ <security>
+ <requestedPrivileges>
+ <requestedExecutionLevel level='asInvoker' uiAccess='false' />
+ </requestedPrivileges>
+ </security>
+ </trustInfo>
+ <dependency>
+ <dependentAssembly>
+ <assemblyIdentity type='Win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*' />
+ </dependentAssembly>
+ </dependency>
+</assembly>
diff --git a/ARMFCaptureD3D/x64/Debug/ARMFCaptureD3D.exp b/ARMFCaptureD3D/x64/Debug/ARMFCaptureD3D.exp
new file mode 100644
index 0000000..26bd2e9
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Debug/ARMFCaptureD3D.exp
Binary files differ
diff --git a/ARMFCaptureD3D/x64/Debug/ARMFCaptureD3D.ilk b/ARMFCaptureD3D/x64/Debug/ARMFCaptureD3D.ilk
new file mode 100644
index 0000000..3c228dc
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Debug/ARMFCaptureD3D.ilk
Binary files differ
diff --git a/ARMFCaptureD3D/x64/Debug/ARMFCaptureD3D.lastbuildstate b/ARMFCaptureD3D/x64/Debug/ARMFCaptureD3D.lastbuildstate
new file mode 100644
index 0000000..25262a5
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Debug/ARMFCaptureD3D.lastbuildstate
@@ -0,0 +1,2 @@
+#v4.0:v100
+Debug|x64|C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\|
diff --git a/ARMFCaptureD3D/x64/Debug/ARMFCaptureD3D.lib b/ARMFCaptureD3D/x64/Debug/ARMFCaptureD3D.lib
new file mode 100644
index 0000000..783b84c
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Debug/ARMFCaptureD3D.lib
Binary files differ
diff --git a/ARMFCaptureD3D/x64/Debug/ARMFCaptureD3D.pdb b/ARMFCaptureD3D/x64/Debug/ARMFCaptureD3D.pdb
new file mode 100644
index 0000000..829c3a8
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Debug/ARMFCaptureD3D.pdb
Binary files differ
diff --git a/ARMFCaptureD3D/x64/Debug/ARMFCaptureD3D.res b/ARMFCaptureD3D/x64/Debug/ARMFCaptureD3D.res
new file mode 100644
index 0000000..11b1c37
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Debug/ARMFCaptureD3D.res
Binary files differ
diff --git a/ARMFCaptureD3D/x64/Debug/ARMFCaptureD3D.write.1.tlog b/ARMFCaptureD3D/x64/Debug/ARMFCaptureD3D.write.1.tlog
new file mode 100644
index 0000000..96780d7
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Debug/ARMFCaptureD3D.write.1.tlog
@@ -0,0 +1,5 @@
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Debug\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Debug\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Debug\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Debug\ARMFCaptureD3D.exp
diff --git a/ARMFCaptureD3D/x64/Debug/ARMFCaptureD3D_manifest.rc b/ARMFCaptureD3D/x64/Debug/ARMFCaptureD3D_manifest.rc
new file mode 100644
index 0000000..cb0aae6
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Debug/ARMFCaptureD3D_manifest.rc
Binary files differ
diff --git a/ARMFCaptureD3D/x64/Debug/ARToolKitPlus.dll b/ARMFCaptureD3D/x64/Debug/ARToolKitPlus.dll
new file mode 100644
index 0000000..9ae7257
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Debug/ARToolKitPlus.dll
Binary files differ
diff --git a/ARMFCaptureD3D/x64/Debug/ARToolKitPlus.lib b/ARMFCaptureD3D/x64/Debug/ARToolKitPlus.lib
new file mode 100644
index 0000000..cf97350
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Debug/ARToolKitPlus.lib
Binary files differ
diff --git a/ARMFCaptureD3D/x64/Debug/CL.read.1.tlog b/ARMFCaptureD3D/x64/Debug/CL.read.1.tlog
new file mode 100644
index 0000000..86ae0e4
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Debug/CL.read.1.tlog
Binary files differ
diff --git a/ARMFCaptureD3D/x64/Debug/CL.write.1.tlog b/ARMFCaptureD3D/x64/Debug/CL.write.1.tlog
new file mode 100644
index 0000000..06612be
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Debug/CL.write.1.tlog
Binary files differ
diff --git a/ARMFCaptureD3D/x64/Debug/Calibration.obj b/ARMFCaptureD3D/x64/Debug/Calibration.obj
new file mode 100644
index 0000000..034cb09
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Debug/Calibration.obj
Binary files differ
diff --git a/ARMFCaptureD3D/x64/Debug/ConfigFile.obj b/ARMFCaptureD3D/x64/Debug/ConfigFile.obj
new file mode 100644
index 0000000..496a990
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Debug/ConfigFile.obj
Binary files differ
diff --git a/ARMFCaptureD3D/x64/Debug/Ivy.dll b/ARMFCaptureD3D/x64/Debug/Ivy.dll
new file mode 100644
index 0000000..d6d28a5
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Debug/Ivy.dll
Binary files differ
diff --git a/ARMFCaptureD3D/x64/Debug/Ivy.lib b/ARMFCaptureD3D/x64/Debug/Ivy.lib
new file mode 100644
index 0000000..8856ccd
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Debug/Ivy.lib
Binary files differ
diff --git a/ARMFCaptureD3D/x64/Debug/MFCaptureD3D.Build.CppClean.log b/ARMFCaptureD3D/x64/Debug/MFCaptureD3D.Build.CppClean.log
new file mode 100644
index 0000000..c8e0107
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Debug/MFCaptureD3D.Build.CppClean.log
@@ -0,0 +1,34 @@
+C:\USERS\FCOLIN\DOCUMENTS\PROJECTS VISUAL STUDIO\CPP\ARMFCAPTURED3D\X64\DEBUG\ARMFCAPTURED3D.RES
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Debug\ARToolKitPlus.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Debug\ARToolKitPlus.ilk
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Debug\ARToolKitPlus.pdb
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Debug\cl.command.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Debug\CL.read.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Debug\CL.write.1.tlog
+C:\USERS\FCOLIN\DOCUMENTS\PROJECTS VISUAL STUDIO\CPP\ARMFCAPTURED3D\X64\DEBUG\DEVICE.OBJ
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Debug\Ivy.bsc
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Debug\Ivy.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Debug\Ivy.ilk
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Debug\Ivy.pdb
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Debug\link.command.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Debug\link.read.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Debug\link.write.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Debug\link-cvtres.read.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Debug\link-cvtres.write.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Debug\MFCaptureD3D.exe.embed.manifest
+C:\USERS\FCOLIN\DOCUMENTS\PROJECTS VISUAL STUDIO\CPP\ARMFCAPTURED3D\X64\DEBUG\MFCAPTURED3D.EXE.EMBED.MANIFEST.RES
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Debug\MFCaptureD3D.exe.intermediate.manifest
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Debug\MFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Debug\MFCaptureD3D.pdb
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Debug\MFCaptureD3D.write.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Debug\MFCaptureD3D_manifest.rc
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Debug\pcre.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Debug\pcre.ilk
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Debug\pcre.pdb
+C:\USERS\FCOLIN\DOCUMENTS\PROJECTS VISUAL STUDIO\CPP\ARMFCAPTURED3D\X64\DEBUG\PREVIEW.OBJ
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Debug\rc.command.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Debug\rc.read.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Debug\rc.write.1.tlog
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Debug\vc100.idb
+C:\USERS\FCOLIN\DOCUMENTS\PROJECTS VISUAL STUDIO\CPP\ARMFCAPTURED3D\X64\DEBUG\VC100.PDB
+C:\USERS\FCOLIN\DOCUMENTS\PROJECTS VISUAL STUDIO\CPP\ARMFCAPTURED3D\X64\DEBUG\WINMAIN.OBJ
diff --git a/ARMFCaptureD3D/x64/Debug/MFCaptureD3D.lastbuildstate b/ARMFCaptureD3D/x64/Debug/MFCaptureD3D.lastbuildstate
new file mode 100644
index 0000000..25262a5
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Debug/MFCaptureD3D.lastbuildstate
@@ -0,0 +1,2 @@
+#v4.0:v100
+Debug|x64|C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\|
diff --git a/ARMFCaptureD3D/x64/Debug/MFCaptureD3D.lib b/ARMFCaptureD3D/x64/Debug/MFCaptureD3D.lib
new file mode 100644
index 0000000..492bef1
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Debug/MFCaptureD3D.lib
Binary files differ
diff --git a/ARMFCaptureD3D/x64/Debug/MFCaptureD3D.log b/ARMFCaptureD3D/x64/Debug/MFCaptureD3D.log
new file mode 100644
index 0000000..4e8ab2f
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Debug/MFCaptureD3D.log
@@ -0,0 +1,254 @@
+La génération a démarré 20/10/2011 12:44:31.
+ 1>Projet "C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj" sur le nœud 2 (rebuild cible(s)).
+ 1>_PrepareForClean:
+ Suppression du fichier "x64\Debug\ARMFCaptureD3D.lastbuildstate".
+ InitializeBuildStatus:
+ Création de "x64\Debug\ARMFCaptureD3D.unsuccessfulbuild", car "AlwaysCreate" a été spécifié.
+ ClCompile:
+ c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\x86_amd64\CL.exe /c /I"C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARToolKitPlus-2.2.1\include" /I"C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\Bus\Ivy" /Zi /nologo /W4 /WX- /Od /D WIN32 /D _DEBUG /D _WINDOWS /D DX9 /D _USE_DOUBLE_ /D _UNICODE /D UNICODE /Gm /EHsc /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Fo"x64\Debug\\" /Fd"x64\Debug\vc100.pdb" /Gd /TP /errorReport:prompt ARAnalyse.cpp Calibration.cpp ConfigFile\ConfigFile.cpp debug.cpp device.cpp MinMaxAvg.cpp options.cpp preview.cpp winmain.cpp
+ winmain.cpp
+ 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstdio(48): warning C4995: 'gets' : le nom a été marqué comme #pragma deprecated
+ 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstdio(52): warning C4995: 'sprintf' : le nom a été marqué comme #pragma deprecated
+ 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstdio(55): warning C4995: 'vsprintf' : le nom a été marqué comme #pragma deprecated
+ 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstring(21): warning C4995: 'strcat' : le nom a été marqué comme #pragma deprecated
+ 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstring(22): warning C4995: 'strcpy' : le nom a été marqué comme #pragma deprecated
+ 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cwchar(30): warning C4995: 'swprintf' : le nom a été marqué comme #pragma deprecated
+ 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cwchar(31): warning C4995: 'vswprintf' : le nom a été marqué comme #pragma deprecated
+ 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cwchar(33): warning C4995: 'wcscat' : le nom a été marqué comme #pragma deprecated
+ 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cwchar(35): warning C4995: 'wcscpy' : le nom a été marqué comme #pragma deprecated
+ 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\string(757): warning C4995: 'swprintf' : le nom a été marqué comme #pragma deprecated
+ 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\string(766): warning C4995: 'swprintf' : le nom a été marqué comme #pragma deprecated
+ 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\string(775): warning C4995: 'swprintf' : le nom a été marqué comme #pragma deprecated
+ 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\intrin.h(1087): warning C4995: 'wcscat' : le nom a été marqué comme #pragma deprecated
+ 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\intrin.h(1089): warning C4995: 'wcscpy' : le nom a été marqué comme #pragma deprecated
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\armfcaptured3d\options.h(196): warning C4512: 'OptIstreamIter' : l'opérateur d'assignation n'a pas pu être généré
+ c:\users\fcolin\documents\projects visual studio\cpp\armfcaptured3d\options.h(172) : voir la déclaration de 'OptIstreamIter'
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\bus\ivy\IvyCallback.h(81): warning C4100: 'app' : paramètre formel non référencé
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\bus\ivy\IvyCallback.h(83): warning C4100: 'app' : paramètre formel non référencé
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\bus\ivy\IvyCallback.h(130): warning C4100: 'regexp' : paramètre formel non référencé
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\bus\ivy\IvyCallback.h(130): warning C4100: 'id' : paramètre formel non référencé
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\bus\ivy\IvyCallback.h(130): warning C4100: 'app' : paramètre formel non référencé
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\bus\ivy\IvyCallback.h(132): warning C4100: 'regexp' : paramètre formel non référencé
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\bus\ivy\IvyCallback.h(132): warning C4100: 'id' : paramètre formel non référencé
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\bus\ivy\IvyCallback.h(132): warning C4100: 'app' : paramètre formel non référencé
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\bus\ivy\IvyCallback.h(134): warning C4100: 'regexp' : paramètre formel non référencé
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\bus\ivy\IvyCallback.h(134): warning C4100: 'id' : paramètre formel non référencé
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\bus\ivy\IvyCallback.h(134): warning C4100: 'app' : paramètre formel non référencé
+ 1>winmain.cpp(133): warning C4995: 'strcpy' : le nom a été marqué comme #pragma deprecated
+ 1>winmain.cpp(133): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
+ c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\string.h(105) : voir la déclaration de 'strcpy'
+ 1>winmain.cpp(645): warning C4100: 'hwnd' : paramètre formel non référencé
+ preview.cpp
+ 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstdio(48): warning C4995: 'gets' : le nom a été marqué comme #pragma deprecated
+ 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstdio(52): warning C4995: 'sprintf' : le nom a été marqué comme #pragma deprecated
+ 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstdio(55): warning C4995: 'vsprintf' : le nom a été marqué comme #pragma deprecated
+ 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstring(21): warning C4995: 'strcat' : le nom a été marqué comme #pragma deprecated
+ 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstring(22): warning C4995: 'strcpy' : le nom a été marqué comme #pragma deprecated
+ 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cwchar(30): warning C4995: 'swprintf' : le nom a été marqué comme #pragma deprecated
+ 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cwchar(31): warning C4995: 'vswprintf' : le nom a été marqué comme #pragma deprecated
+ 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cwchar(33): warning C4995: 'wcscat' : le nom a été marqué comme #pragma deprecated
+ 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cwchar(35): warning C4995: 'wcscpy' : le nom a été marqué comme #pragma deprecated
+ 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\intrin.h(1087): warning C4995: 'wcscat' : le nom a été marqué comme #pragma deprecated
+ 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\intrin.h(1089): warning C4995: 'wcscpy' : le nom a été marqué comme #pragma deprecated
+ 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\string(757): warning C4995: 'swprintf' : le nom a été marqué comme #pragma deprecated
+ 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\string(766): warning C4995: 'swprintf' : le nom a été marqué comme #pragma deprecated
+ 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\string(775): warning C4995: 'swprintf' : le nom a été marqué comme #pragma deprecated
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\bus\ivy\IvyCallback.h(81): warning C4100: 'app' : paramètre formel non référencé
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\bus\ivy\IvyCallback.h(83): warning C4100: 'app' : paramètre formel non référencé
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\bus\ivy\IvyCallback.h(130): warning C4100: 'regexp' : paramètre formel non référencé
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\bus\ivy\IvyCallback.h(130): warning C4100: 'id' : paramètre formel non référencé
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\bus\ivy\IvyCallback.h(130): warning C4100: 'app' : paramètre formel non référencé
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\bus\ivy\IvyCallback.h(132): warning C4100: 'regexp' : paramètre formel non référencé
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\bus\ivy\IvyCallback.h(132): warning C4100: 'id' : paramètre formel non référencé
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\bus\ivy\IvyCallback.h(132): warning C4100: 'app' : paramètre formel non référencé
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\bus\ivy\IvyCallback.h(134): warning C4100: 'regexp' : paramètre formel non référencé
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\bus\ivy\IvyCallback.h(134): warning C4100: 'id' : paramètre formel non référencé
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\bus\ivy\IvyCallback.h(134): warning C4100: 'app' : paramètre formel non référencé
+ options.cpp
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\armfcaptured3d\options.h(196): warning C4512: 'OptIstreamIter' : l'opérateur d'assignation n'a pas pu être généré
+ c:\users\fcolin\documents\projects visual studio\cpp\armfcaptured3d\options.h(172) : voir la déclaration de 'OptIstreamIter'
+ 1>options.cpp(155): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
+ c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\string.h(105) : voir la déclaration de 'strcpy'
+ 1>options.cpp(156): warning C4996: 'strtok': This function or variable may be unsafe. Consider using strtok_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
+ c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\string.h(197) : voir la déclaration de 'strtok'
+ 1>options.cpp(166): warning C4996: 'strtok': This function or variable may be unsafe. Consider using strtok_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
+ c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\string.h(197) : voir la déclaration de 'strtok'
+ 1>options.cpp(171): warning C4996: 'strtok': This function or variable may be unsafe. Consider using strtok_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
+ c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\string.h(197) : voir la déclaration de 'strtok'
+ 1>options.cpp(177): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
+ c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\string.h(105) : voir la déclaration de 'strcpy'
+ 1>options.cpp(178): warning C4996: 'strtok': This function or variable may be unsafe. Consider using strtok_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
+ c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\string.h(197) : voir la déclaration de 'strtok'
+ 1>options.cpp(563): warning C4996: 'strncpy': This function or variable may be unsafe. Consider using strncpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
+ c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\string.h(188) : voir la déclaration de 'strncpy'
+ 1>options.cpp(571): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
+ c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\string.h(105) : voir la déclaration de 'strcpy'
+ 1>options.cpp(574): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
+ c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\string.h(105) : voir la déclaration de 'strcpy'
+ MinMaxAvg.cpp
+ device.cpp
+ 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstdio(48): warning C4995: 'gets' : le nom a été marqué comme #pragma deprecated
+ 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstdio(52): warning C4995: 'sprintf' : le nom a été marqué comme #pragma deprecated
+ 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstdio(55): warning C4995: 'vsprintf' : le nom a été marqué comme #pragma deprecated
+ 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstring(21): warning C4995: 'strcat' : le nom a été marqué comme #pragma deprecated
+ 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstring(22): warning C4995: 'strcpy' : le nom a été marqué comme #pragma deprecated
+ 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cwchar(30): warning C4995: 'swprintf' : le nom a été marqué comme #pragma deprecated
+ 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cwchar(31): warning C4995: 'vswprintf' : le nom a été marqué comme #pragma deprecated
+ 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cwchar(33): warning C4995: 'wcscat' : le nom a été marqué comme #pragma deprecated
+ 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cwchar(35): warning C4995: 'wcscpy' : le nom a été marqué comme #pragma deprecated
+ 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\intrin.h(1087): warning C4995: 'wcscat' : le nom a été marqué comme #pragma deprecated
+ 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\intrin.h(1089): warning C4995: 'wcscpy' : le nom a été marqué comme #pragma deprecated
+ 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\string(757): warning C4995: 'swprintf' : le nom a été marqué comme #pragma deprecated
+ 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\string(766): warning C4995: 'swprintf' : le nom a été marqué comme #pragma deprecated
+ 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\string(775): warning C4995: 'swprintf' : le nom a été marqué comme #pragma deprecated
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\bus\ivy\IvyCallback.h(81): warning C4100: 'app' : paramètre formel non référencé
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\bus\ivy\IvyCallback.h(83): warning C4100: 'app' : paramètre formel non référencé
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\bus\ivy\IvyCallback.h(130): warning C4100: 'regexp' : paramètre formel non référencé
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\bus\ivy\IvyCallback.h(130): warning C4100: 'id' : paramètre formel non référencé
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\bus\ivy\IvyCallback.h(130): warning C4100: 'app' : paramètre formel non référencé
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\bus\ivy\IvyCallback.h(132): warning C4100: 'regexp' : paramètre formel non référencé
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\bus\ivy\IvyCallback.h(132): warning C4100: 'id' : paramètre formel non référencé
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\bus\ivy\IvyCallback.h(132): warning C4100: 'app' : paramètre formel non référencé
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\bus\ivy\IvyCallback.h(134): warning C4100: 'regexp' : paramètre formel non référencé
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\bus\ivy\IvyCallback.h(134): warning C4100: 'id' : paramètre formel non référencé
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\bus\ivy\IvyCallback.h(134): warning C4100: 'app' : paramètre formel non référencé
+ 1>device.cpp(932): warning C4102: 'done' : étiquette non référencée
+ debug.cpp
+ 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstdio(48): warning C4995: 'gets' : le nom a été marqué comme #pragma deprecated
+ 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstdio(52): warning C4995: 'sprintf' : le nom a été marqué comme #pragma deprecated
+ 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstdio(55): warning C4995: 'vsprintf' : le nom a été marqué comme #pragma deprecated
+ ConfigFile.cpp
+ Calibration.cpp
+ 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstdio(48): warning C4995: 'gets' : le nom a été marqué comme #pragma deprecated
+ 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstdio(52): warning C4995: 'sprintf' : le nom a été marqué comme #pragma deprecated
+ 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstdio(55): warning C4995: 'vsprintf' : le nom a été marqué comme #pragma deprecated
+ 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstring(21): warning C4995: 'strcat' : le nom a été marqué comme #pragma deprecated
+ 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstring(22): warning C4995: 'strcpy' : le nom a été marqué comme #pragma deprecated
+ 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cwchar(30): warning C4995: 'swprintf' : le nom a été marqué comme #pragma deprecated
+ 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cwchar(31): warning C4995: 'vswprintf' : le nom a été marqué comme #pragma deprecated
+ 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cwchar(33): warning C4995: 'wcscat' : le nom a été marqué comme #pragma deprecated
+ 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cwchar(35): warning C4995: 'wcscpy' : le nom a été marqué comme #pragma deprecated
+ 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\intrin.h(1087): warning C4995: 'wcscat' : le nom a été marqué comme #pragma deprecated
+ 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\intrin.h(1089): warning C4995: 'wcscpy' : le nom a été marqué comme #pragma deprecated
+ 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\string(757): warning C4995: 'swprintf' : le nom a été marqué comme #pragma deprecated
+ 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\string(766): warning C4995: 'swprintf' : le nom a été marqué comme #pragma deprecated
+ 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\string(775): warning C4995: 'swprintf' : le nom a été marqué comme #pragma deprecated
+ ARAnalyse.cpp
+ 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstdio(48): warning C4995: 'gets' : le nom a été marqué comme #pragma deprecated
+ 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstdio(52): warning C4995: 'sprintf' : le nom a été marqué comme #pragma deprecated
+ 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstdio(55): warning C4995: 'vsprintf' : le nom a été marqué comme #pragma deprecated
+ 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstring(21): warning C4995: 'strcat' : le nom a été marqué comme #pragma deprecated
+ 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstring(22): warning C4995: 'strcpy' : le nom a été marqué comme #pragma deprecated
+ 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cwchar(30): warning C4995: 'swprintf' : le nom a été marqué comme #pragma deprecated
+ 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cwchar(31): warning C4995: 'vswprintf' : le nom a été marqué comme #pragma deprecated
+ 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cwchar(33): warning C4995: 'wcscat' : le nom a été marqué comme #pragma deprecated
+ 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cwchar(35): warning C4995: 'wcscpy' : le nom a été marqué comme #pragma deprecated
+ 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\intrin.h(1087): warning C4995: 'wcscat' : le nom a été marqué comme #pragma deprecated
+ 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\intrin.h(1089): warning C4995: 'wcscpy' : le nom a été marqué comme #pragma deprecated
+ 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\string(757): warning C4995: 'swprintf' : le nom a été marqué comme #pragma deprecated
+ 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\string(766): warning C4995: 'swprintf' : le nom a été marqué comme #pragma deprecated
+ 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\string(775): warning C4995: 'swprintf' : le nom a été marqué comme #pragma deprecated
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\bus\ivy\IvyCallback.h(81): warning C4100: 'app' : paramètre formel non référencé
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\bus\ivy\IvyCallback.h(83): warning C4100: 'app' : paramètre formel non référencé
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\bus\ivy\IvyCallback.h(130): warning C4100: 'regexp' : paramètre formel non référencé
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\bus\ivy\IvyCallback.h(130): warning C4100: 'id' : paramètre formel non référencé
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\bus\ivy\IvyCallback.h(130): warning C4100: 'app' : paramètre formel non référencé
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\bus\ivy\IvyCallback.h(132): warning C4100: 'regexp' : paramètre formel non référencé
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\bus\ivy\IvyCallback.h(132): warning C4100: 'id' : paramètre formel non référencé
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\bus\ivy\IvyCallback.h(132): warning C4100: 'app' : paramètre formel non référencé
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\bus\ivy\IvyCallback.h(134): warning C4100: 'regexp' : paramètre formel non référencé
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\bus\ivy\IvyCallback.h(134): warning C4100: 'id' : paramètre formel non référencé
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\bus\ivy\IvyCallback.h(134): warning C4100: 'app' : paramètre formel non référencé
+ 1>ARAnalyse.cpp(232): warning C4100: 'size' : paramètre formel non référencé
+ 1>ARAnalyse.cpp(923): warning C4305: 'initialisation' : troncation de 'double' à 'const float'
+ 1>ARAnalyse.cpp(923): warning C4305: 'initialisation' : troncation de 'double' à 'const float'
+ 1>ARAnalyse.cpp(923): warning C4305: 'initialisation' : troncation de 'double' à 'const float'
+ 1>ARAnalyse.cpp(924): warning C4305: 'initialisation' : troncation de 'double' à 'const float'
+ 1>ARAnalyse.cpp(924): warning C4305: 'initialisation' : troncation de 'double' à 'const float'
+ 1>ARAnalyse.cpp(924): warning C4305: 'initialisation' : troncation de 'double' à 'const float'
+ 1>ARAnalyse.cpp(925): warning C4305: 'initialisation' : troncation de 'double' à 'const float'
+ 1>ARAnalyse.cpp(925): warning C4305: 'initialisation' : troncation de 'double' à 'const float'
+ 1>ARAnalyse.cpp(926): warning C4305: 'initialisation' : troncation de 'double' à 'const float'
+ 1>ARAnalyse.cpp(968): warning C4305: 'initialisation' : troncation de 'double' à 'const float'
+ 1>ARAnalyse.cpp(968): warning C4305: 'initialisation' : troncation de 'double' à 'const float'
+ 1>ARAnalyse.cpp(968): warning C4305: 'initialisation' : troncation de 'double' à 'const float'
+ 1>ARAnalyse.cpp(968): warning C4305: 'initialisation' : troncation de 'double' à 'const float'
+ 1>ARAnalyse.cpp(968): warning C4305: 'initialisation' : troncation de 'double' à 'const float'
+ 1>ARAnalyse.cpp(969): warning C4305: 'initialisation' : troncation de 'double' à 'const float'
+ 1>ARAnalyse.cpp(969): warning C4305: 'initialisation' : troncation de 'double' à 'const float'
+ 1>ARAnalyse.cpp(969): warning C4305: 'initialisation' : troncation de 'double' à 'const float'
+ 1>ARAnalyse.cpp(969): warning C4305: 'initialisation' : troncation de 'double' à 'const float'
+ 1>ARAnalyse.cpp(969): warning C4305: 'initialisation' : troncation de 'double' à 'const float'
+ 1>ARAnalyse.cpp(970): warning C4305: 'initialisation' : troncation de 'double' à 'const float'
+ 1>ARAnalyse.cpp(970): warning C4305: 'initialisation' : troncation de 'double' à 'const float'
+ 1>ARAnalyse.cpp(970): warning C4305: 'initialisation' : troncation de 'double' à 'const float'
+ 1>ARAnalyse.cpp(970): warning C4305: 'initialisation' : troncation de 'double' à 'const float'
+ 1>ARAnalyse.cpp(970): warning C4305: 'initialisation' : troncation de 'double' à 'const float'
+ 1>ARAnalyse.cpp(971): warning C4305: 'initialisation' : troncation de 'double' à 'const float'
+ 1>ARAnalyse.cpp(971): warning C4305: 'initialisation' : troncation de 'double' à 'const float'
+ 1>ARAnalyse.cpp(971): warning C4305: 'initialisation' : troncation de 'double' à 'const float'
+ 1>ARAnalyse.cpp(971): warning C4305: 'initialisation' : troncation de 'double' à 'const float'
+ 1>ARAnalyse.cpp(971): warning C4305: 'initialisation' : troncation de 'double' à 'const float'
+ 1>ARAnalyse.cpp(972): warning C4305: 'initialisation' : troncation de 'double' à 'const float'
+ 1>ARAnalyse.cpp(972): warning C4305: 'initialisation' : troncation de 'double' à 'const float'
+ 1>ARAnalyse.cpp(972): warning C4305: 'initialisation' : troncation de 'double' à 'const float'
+ 1>ARAnalyse.cpp(972): warning C4305: 'initialisation' : troncation de 'double' à 'const float'
+ 1>ARAnalyse.cpp(973): warning C4305: 'initialisation' : troncation de 'double' à 'const float'
+ 1>ARAnalyse.cpp(844): warning C4100: 'size' : paramètre formel non référencé
+ 1>ARAnalyse.cpp(1091): warning C4100: 'dest' : paramètre formel non référencé
+ 1>ARAnalyse.cpp(1115): warning C4189: 'height' : variable locale initialisée mais non référencée
+ 1>ARAnalyse.cpp(1141): warning C4189: 'height' : variable locale initialisée mais non référencée
+ 1>ARAnalyse.cpp(1170): warning C4189: 'height' : variable locale initialisée mais non référencée
+ 1>ARAnalyse.cpp(1197): warning C4100: 'dest' : paramètre formel non référencé
+ 1>ARAnalyse.cpp(421): warning C4505: 'RGB2HSL' : la fonction locale non référencée a été supprimée
+ Generating Code...
+ ResourceCompile:
+ c:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\rc.exe /D _UNICODE /D UNICODE /l"0x0409" /nologo /fo"x64\Debug\ARMFCaptureD3D.res" ARMFCaptureD3D.rc
+ ManifestResourceCompile:
+ c:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\rc.exe /nologo /fo"x64\Debug\ARMFCaptureD3D.exe.embed.manifest.res" x64\Debug\ARMFCaptureD3D_manifest.rc
+ Link:
+ c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\x86_amd64\link.exe /ERRORREPORT:PROMPT /OUT:"C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Debug\ARMFCaptureD3D.exe" /INCREMENTAL /NOLOGO Comctl32.lib mfplat.lib mf.lib mfreadwrite.lib mfuuid.lib d3d9.lib shlwapi.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /MANIFEST /ManifestFile:"x64\Debug\ARMFCaptureD3D.exe.intermediate.manifest" /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /DEBUG /PDB:"C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Debug\ARMFCaptureD3D.pdb" /SUBSYSTEM:WINDOWS /TLBID:1 /DYNAMICBASE:NO /IMPLIB:"C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Debug\ARMFCaptureD3D.lib" /MACHINE:X64 x64\Debug\ARMFCaptureD3D.res
+ x64\Debug\ARMFCaptureD3D.exe.embed.manifest.res
+ x64\Debug\ARAnalyse.obj
+ x64\Debug\Calibration.obj
+ x64\Debug\ConfigFile.obj
+ x64\Debug\debug.obj
+ x64\Debug\device.obj
+ x64\Debug\MinMaxAvg.obj
+ x64\Debug\options.obj
+ x64\Debug\preview.obj
+ x64\Debug\winmain.obj
+ "C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Debug\pcre.lib"
+ "C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Debug\ARToolKitPlus.lib"
+ "C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Debug\Ivy.lib"
+ Création de la bibliothèque C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Debug\ARMFCaptureD3D.lib et de l'objet C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Debug\ARMFCaptureD3D.exp
+ MFCaptureD3D.vcxproj -> C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Debug\ARMFCaptureD3D.exe
+ Manifest:
+ Suppression du fichier "x64\Debug\ARMFCaptureD3D.exe.embed.manifest".
+ c:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\mt.exe /nologo /verbose /out:"x64\Debug\ARMFCaptureD3D.exe.embed.manifest" /manifest x64\Debug\ARMFCaptureD3D.exe.intermediate.manifest
+ c:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\rc.exe /nologo /fo"x64\Debug\ARMFCaptureD3D.exe.embed.manifest.res" x64\Debug\ARMFCaptureD3D_manifest.rc
+ LinkEmbedManifest:
+ c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\x86_amd64\link.exe /ERRORREPORT:PROMPT /OUT:"C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Debug\ARMFCaptureD3D.exe" /INCREMENTAL /NOLOGO Comctl32.lib mfplat.lib mf.lib mfreadwrite.lib mfuuid.lib d3d9.lib shlwapi.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /MANIFEST /ManifestFile:"x64\Debug\ARMFCaptureD3D.exe.intermediate.manifest" /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /DEBUG /PDB:"C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Debug\ARMFCaptureD3D.pdb" /SUBSYSTEM:WINDOWS /TLBID:1 /DYNAMICBASE:NO /IMPLIB:"C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Debug\ARMFCaptureD3D.lib" /MACHINE:X64 x64\Debug\ARMFCaptureD3D.res
+ x64\Debug\ARMFCaptureD3D.exe.embed.manifest.res
+ x64\Debug\ARAnalyse.obj
+ x64\Debug\Calibration.obj
+ x64\Debug\ConfigFile.obj
+ x64\Debug\debug.obj
+ x64\Debug\device.obj
+ x64\Debug\MinMaxAvg.obj
+ x64\Debug\options.obj
+ x64\Debug\preview.obj
+ x64\Debug\winmain.obj
+ "C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Debug\pcre.lib"
+ "C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Debug\ARToolKitPlus.lib"
+ "C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Debug\Ivy.lib"
+ Création de la bibliothèque C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Debug\ARMFCaptureD3D.lib et de l'objet C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Debug\ARMFCaptureD3D.exp
+ MFCaptureD3D.vcxproj -> C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Debug\ARMFCaptureD3D.exe
+ FinalizeBuildStatus:
+ Suppression du fichier "x64\Debug\ARMFCaptureD3D.unsuccessfulbuild".
+ Mise Ă  jour de l'horodatage "x64\Debug\ARMFCaptureD3D.lastbuildstate".
+ 1>Génération du projet "C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj" terminée (rebuild cible(s)).
+
+La génération a réussi.
+
+Temps écoulé 00:00:10.74
diff --git a/ARMFCaptureD3D/x64/Debug/MFCaptureD3D.unsuccessfulbuild b/ARMFCaptureD3D/x64/Debug/MFCaptureD3D.unsuccessfulbuild
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Debug/MFCaptureD3D.unsuccessfulbuild
diff --git a/ARMFCaptureD3D/x64/Debug/MinMaxAvg.obj b/ARMFCaptureD3D/x64/Debug/MinMaxAvg.obj
new file mode 100644
index 0000000..264634d
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Debug/MinMaxAvg.obj
Binary files differ
diff --git a/ARMFCaptureD3D/x64/Debug/ResolveAssemblyReference.cache b/ARMFCaptureD3D/x64/Debug/ResolveAssemblyReference.cache
new file mode 100644
index 0000000..c0edb66
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Debug/ResolveAssemblyReference.cache
Binary files differ
diff --git a/ARMFCaptureD3D/x64/Debug/cl.command.1.tlog b/ARMFCaptureD3D/x64/Debug/cl.command.1.tlog
new file mode 100644
index 0000000..3a1f62a
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Debug/cl.command.1.tlog
Binary files differ
diff --git a/ARMFCaptureD3D/x64/Debug/debug.obj b/ARMFCaptureD3D/x64/Debug/debug.obj
new file mode 100644
index 0000000..f735a4b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Debug/debug.obj
Binary files differ
diff --git a/ARMFCaptureD3D/x64/Debug/device.obj b/ARMFCaptureD3D/x64/Debug/device.obj
new file mode 100644
index 0000000..e2d5bd4
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Debug/device.obj
Binary files differ
diff --git a/ARMFCaptureD3D/x64/Debug/link-cvtres.read.1.tlog b/ARMFCaptureD3D/x64/Debug/link-cvtres.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Debug/link-cvtres.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Debug/link-cvtres.write.1.tlog b/ARMFCaptureD3D/x64/Debug/link-cvtres.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Debug/link-cvtres.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Debug/link.3816-cvtres.read.1.tlog b/ARMFCaptureD3D/x64/Debug/link.3816-cvtres.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Debug/link.3816-cvtres.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Debug/link.3816-cvtres.write.1.tlog b/ARMFCaptureD3D/x64/Debug/link.3816-cvtres.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Debug/link.3816-cvtres.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Debug/link.3816.read.1.tlog b/ARMFCaptureD3D/x64/Debug/link.3816.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Debug/link.3816.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Debug/link.3816.write.1.tlog b/ARMFCaptureD3D/x64/Debug/link.3816.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Debug/link.3816.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Debug/link.command.1.tlog b/ARMFCaptureD3D/x64/Debug/link.command.1.tlog
new file mode 100644
index 0000000..aa078b2
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Debug/link.command.1.tlog
Binary files differ
diff --git a/ARMFCaptureD3D/x64/Debug/link.read.1.tlog b/ARMFCaptureD3D/x64/Debug/link.read.1.tlog
new file mode 100644
index 0000000..ba96714
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Debug/link.read.1.tlog
Binary files differ
diff --git a/ARMFCaptureD3D/x64/Debug/link.write.1.tlog b/ARMFCaptureD3D/x64/Debug/link.write.1.tlog
new file mode 100644
index 0000000..307f670
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Debug/link.write.1.tlog
Binary files differ
diff --git a/ARMFCaptureD3D/x64/Debug/mt.command.1.tlog b/ARMFCaptureD3D/x64/Debug/mt.command.1.tlog
new file mode 100644
index 0000000..7619a39
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Debug/mt.command.1.tlog
Binary files differ
diff --git a/ARMFCaptureD3D/x64/Debug/mt.read.1.tlog b/ARMFCaptureD3D/x64/Debug/mt.read.1.tlog
new file mode 100644
index 0000000..df78fbd
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Debug/mt.read.1.tlog
Binary files differ
diff --git a/ARMFCaptureD3D/x64/Debug/mt.write.1.tlog b/ARMFCaptureD3D/x64/Debug/mt.write.1.tlog
new file mode 100644
index 0000000..0747494
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Debug/mt.write.1.tlog
Binary files differ
diff --git a/ARMFCaptureD3D/x64/Debug/options.obj b/ARMFCaptureD3D/x64/Debug/options.obj
new file mode 100644
index 0000000..4cc40ea
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Debug/options.obj
Binary files differ
diff --git a/ARMFCaptureD3D/x64/Debug/pcre.dll b/ARMFCaptureD3D/x64/Debug/pcre.dll
new file mode 100644
index 0000000..3033cc8
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Debug/pcre.dll
Binary files differ
diff --git a/ARMFCaptureD3D/x64/Debug/pcre.lib b/ARMFCaptureD3D/x64/Debug/pcre.lib
new file mode 100644
index 0000000..9fb4e1e
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Debug/pcre.lib
Binary files differ
diff --git a/ARMFCaptureD3D/x64/Debug/preview.obj b/ARMFCaptureD3D/x64/Debug/preview.obj
new file mode 100644
index 0000000..6f21b52
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Debug/preview.obj
Binary files differ
diff --git a/ARMFCaptureD3D/x64/Debug/rc.command.1.tlog b/ARMFCaptureD3D/x64/Debug/rc.command.1.tlog
new file mode 100644
index 0000000..5f02024
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Debug/rc.command.1.tlog
Binary files differ
diff --git a/ARMFCaptureD3D/x64/Debug/rc.read.1.tlog b/ARMFCaptureD3D/x64/Debug/rc.read.1.tlog
new file mode 100644
index 0000000..2e8ade7
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Debug/rc.read.1.tlog
Binary files differ
diff --git a/ARMFCaptureD3D/x64/Debug/rc.write.1.tlog b/ARMFCaptureD3D/x64/Debug/rc.write.1.tlog
new file mode 100644
index 0000000..b7401f0
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Debug/rc.write.1.tlog
Binary files differ
diff --git a/ARMFCaptureD3D/x64/Debug/vc100.idb b/ARMFCaptureD3D/x64/Debug/vc100.idb
new file mode 100644
index 0000000..66bf6d4
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Debug/vc100.idb
Binary files differ
diff --git a/ARMFCaptureD3D/x64/Debug/vc100.pdb b/ARMFCaptureD3D/x64/Debug/vc100.pdb
new file mode 100644
index 0000000..dafeb3a
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Debug/vc100.pdb
Binary files differ
diff --git a/ARMFCaptureD3D/x64/Debug/winmain.obj b/ARMFCaptureD3D/x64/Debug/winmain.obj
new file mode 100644
index 0000000..6cf1010
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Debug/winmain.obj
Binary files differ
diff --git a/ARMFCaptureD3D/x64/Release/ARAnalyse.obj b/ARMFCaptureD3D/x64/Release/ARAnalyse.obj
new file mode 100644
index 0000000..26fbf4a
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/ARAnalyse.obj
Binary files differ
diff --git a/ARMFCaptureD3D/x64/Release/ARMFCaptureD3D.exe b/ARMFCaptureD3D/x64/Release/ARMFCaptureD3D.exe
new file mode 100644
index 0000000..c34837c
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/ARMFCaptureD3D.exe
Binary files differ
diff --git a/ARMFCaptureD3D/x64/Release/ARMFCaptureD3D.exe - Raccourci.lnk b/ARMFCaptureD3D/x64/Release/ARMFCaptureD3D.exe - Raccourci.lnk
new file mode 100644
index 0000000..6c2b5b2
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/ARMFCaptureD3D.exe - Raccourci.lnk
Binary files differ
diff --git a/ARMFCaptureD3D/x64/Release/ARMFCaptureD3D.exe.intermediate.manifest b/ARMFCaptureD3D/x64/Release/ARMFCaptureD3D.exe.intermediate.manifest
new file mode 100644
index 0000000..43cc1f5
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/ARMFCaptureD3D.exe.intermediate.manifest
@@ -0,0 +1,15 @@
+<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
+<assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'>
+ <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
+ <security>
+ <requestedPrivileges>
+ <requestedExecutionLevel level='asInvoker' uiAccess='false' />
+ </requestedPrivileges>
+ </security>
+ </trustInfo>
+ <dependency>
+ <dependentAssembly>
+ <assemblyIdentity type='Win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*' />
+ </dependentAssembly>
+ </dependency>
+</assembly>
diff --git a/ARMFCaptureD3D/x64/Release/ARMFCaptureD3D.exp b/ARMFCaptureD3D/x64/Release/ARMFCaptureD3D.exp
new file mode 100644
index 0000000..358a62a
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/ARMFCaptureD3D.exp
Binary files differ
diff --git a/ARMFCaptureD3D/x64/Release/ARMFCaptureD3D.lastbuildstate b/ARMFCaptureD3D/x64/Release/ARMFCaptureD3D.lastbuildstate
new file mode 100644
index 0000000..61399b3
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/ARMFCaptureD3D.lastbuildstate
@@ -0,0 +1,2 @@
+#v4.0:v100:false
+Release|x64|C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\|
diff --git a/ARMFCaptureD3D/x64/Release/ARMFCaptureD3D.lib b/ARMFCaptureD3D/x64/Release/ARMFCaptureD3D.lib
new file mode 100644
index 0000000..23a476c
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/ARMFCaptureD3D.lib
Binary files differ
diff --git a/ARMFCaptureD3D/x64/Release/ARMFCaptureD3D.pdb b/ARMFCaptureD3D/x64/Release/ARMFCaptureD3D.pdb
new file mode 100644
index 0000000..d9e661a
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/ARMFCaptureD3D.pdb
Binary files differ
diff --git a/ARMFCaptureD3D/x64/Release/ARMFCaptureD3D.res b/ARMFCaptureD3D/x64/Release/ARMFCaptureD3D.res
new file mode 100644
index 0000000..11b1c37
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/ARMFCaptureD3D.res
Binary files differ
diff --git a/ARMFCaptureD3D/x64/Release/ARMFCaptureD3D.write.1.tlog b/ARMFCaptureD3D/x64/Release/ARMFCaptureD3D.write.1.tlog
new file mode 100644
index 0000000..2e1a4dc
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/ARMFCaptureD3D.write.1.tlog
@@ -0,0 +1,645 @@
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+^C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
diff --git a/ARMFCaptureD3D/x64/Release/ARToolKitPlus.dll b/ARMFCaptureD3D/x64/Release/ARToolKitPlus.dll
new file mode 100644
index 0000000..10975e6
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/ARToolKitPlus.dll
Binary files differ
diff --git a/ARMFCaptureD3D/x64/Release/ARToolKitPlus.exp b/ARMFCaptureD3D/x64/Release/ARToolKitPlus.exp
new file mode 100644
index 0000000..211b1f7
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/ARToolKitPlus.exp
Binary files differ
diff --git a/ARMFCaptureD3D/x64/Release/ARToolKitPlus.lib b/ARMFCaptureD3D/x64/Release/ARToolKitPlus.lib
new file mode 100644
index 0000000..b3959b0
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/ARToolKitPlus.lib
Binary files differ
diff --git a/ARMFCaptureD3D/x64/Release/CL.1180.read.1.tlog b/ARMFCaptureD3D/x64/Release/CL.1180.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.1180.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.1180.write.1.tlog b/ARMFCaptureD3D/x64/Release/CL.1180.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.1180.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.1284.read.1.tlog b/ARMFCaptureD3D/x64/Release/CL.1284.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.1284.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.1284.write.1.tlog b/ARMFCaptureD3D/x64/Release/CL.1284.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.1284.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.1464.read.1.tlog b/ARMFCaptureD3D/x64/Release/CL.1464.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.1464.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.1464.write.1.tlog b/ARMFCaptureD3D/x64/Release/CL.1464.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.1464.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.2096.read.1.tlog b/ARMFCaptureD3D/x64/Release/CL.2096.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.2096.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.2096.write.1.tlog b/ARMFCaptureD3D/x64/Release/CL.2096.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.2096.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.2124.read.1.tlog b/ARMFCaptureD3D/x64/Release/CL.2124.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.2124.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.2124.write.1.tlog b/ARMFCaptureD3D/x64/Release/CL.2124.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.2124.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.3024.read.1.tlog b/ARMFCaptureD3D/x64/Release/CL.3024.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.3024.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.3024.write.1.tlog b/ARMFCaptureD3D/x64/Release/CL.3024.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.3024.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.3092.read.1.tlog b/ARMFCaptureD3D/x64/Release/CL.3092.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.3092.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.3092.write.1.tlog b/ARMFCaptureD3D/x64/Release/CL.3092.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.3092.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.3364.read.1.tlog b/ARMFCaptureD3D/x64/Release/CL.3364.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.3364.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.3364.write.1.tlog b/ARMFCaptureD3D/x64/Release/CL.3364.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.3364.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.3384.read.1.tlog b/ARMFCaptureD3D/x64/Release/CL.3384.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.3384.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.3384.write.1.tlog b/ARMFCaptureD3D/x64/Release/CL.3384.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.3384.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.3544.read.1.tlog b/ARMFCaptureD3D/x64/Release/CL.3544.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.3544.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.3544.write.1.tlog b/ARMFCaptureD3D/x64/Release/CL.3544.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.3544.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.3916.read.1.tlog b/ARMFCaptureD3D/x64/Release/CL.3916.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.3916.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.3916.write.1.tlog b/ARMFCaptureD3D/x64/Release/CL.3916.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.3916.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.3924.read.1.tlog b/ARMFCaptureD3D/x64/Release/CL.3924.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.3924.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.3924.write.1.tlog b/ARMFCaptureD3D/x64/Release/CL.3924.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.3924.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.4284.read.1.tlog b/ARMFCaptureD3D/x64/Release/CL.4284.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.4284.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.4284.write.1.tlog b/ARMFCaptureD3D/x64/Release/CL.4284.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.4284.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.4332.read.1.tlog b/ARMFCaptureD3D/x64/Release/CL.4332.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.4332.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.4332.write.1.tlog b/ARMFCaptureD3D/x64/Release/CL.4332.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.4332.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.4604.read.1.tlog b/ARMFCaptureD3D/x64/Release/CL.4604.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.4604.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.4604.write.1.tlog b/ARMFCaptureD3D/x64/Release/CL.4604.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.4604.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.4640.read.1.tlog b/ARMFCaptureD3D/x64/Release/CL.4640.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.4640.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.4640.write.1.tlog b/ARMFCaptureD3D/x64/Release/CL.4640.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.4640.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.5060.read.1.tlog b/ARMFCaptureD3D/x64/Release/CL.5060.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.5060.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.5060.write.1.tlog b/ARMFCaptureD3D/x64/Release/CL.5060.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.5060.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.5172.read.1.tlog b/ARMFCaptureD3D/x64/Release/CL.5172.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.5172.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.5172.write.1.tlog b/ARMFCaptureD3D/x64/Release/CL.5172.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.5172.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.5288.read.1.tlog b/ARMFCaptureD3D/x64/Release/CL.5288.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.5288.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.5288.write.1.tlog b/ARMFCaptureD3D/x64/Release/CL.5288.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.5288.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.5404.read.1.tlog b/ARMFCaptureD3D/x64/Release/CL.5404.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.5404.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.5404.write.1.tlog b/ARMFCaptureD3D/x64/Release/CL.5404.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.5404.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.5472.read.1.tlog b/ARMFCaptureD3D/x64/Release/CL.5472.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.5472.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.5472.write.1.tlog b/ARMFCaptureD3D/x64/Release/CL.5472.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.5472.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.5488.read.1.tlog b/ARMFCaptureD3D/x64/Release/CL.5488.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.5488.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.5488.write.1.tlog b/ARMFCaptureD3D/x64/Release/CL.5488.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.5488.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.5716.read.1.tlog b/ARMFCaptureD3D/x64/Release/CL.5716.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.5716.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.5716.write.1.tlog b/ARMFCaptureD3D/x64/Release/CL.5716.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.5716.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.5736.read.1.tlog b/ARMFCaptureD3D/x64/Release/CL.5736.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.5736.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.5736.write.1.tlog b/ARMFCaptureD3D/x64/Release/CL.5736.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.5736.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.5752.read.1.tlog b/ARMFCaptureD3D/x64/Release/CL.5752.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.5752.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.5752.write.1.tlog b/ARMFCaptureD3D/x64/Release/CL.5752.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.5752.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.5804.read.1.tlog b/ARMFCaptureD3D/x64/Release/CL.5804.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.5804.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.5804.write.1.tlog b/ARMFCaptureD3D/x64/Release/CL.5804.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.5804.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.5900.read.1.tlog b/ARMFCaptureD3D/x64/Release/CL.5900.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.5900.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.5900.write.1.tlog b/ARMFCaptureD3D/x64/Release/CL.5900.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.5900.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.5956.read.1.tlog b/ARMFCaptureD3D/x64/Release/CL.5956.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.5956.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.5956.write.1.tlog b/ARMFCaptureD3D/x64/Release/CL.5956.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.5956.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.6228.read.1.tlog b/ARMFCaptureD3D/x64/Release/CL.6228.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.6228.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.6228.write.1.tlog b/ARMFCaptureD3D/x64/Release/CL.6228.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.6228.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.6368.read.1.tlog b/ARMFCaptureD3D/x64/Release/CL.6368.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.6368.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.6368.write.1.tlog b/ARMFCaptureD3D/x64/Release/CL.6368.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.6368.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.6400.read.1.tlog b/ARMFCaptureD3D/x64/Release/CL.6400.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.6400.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.6400.write.1.tlog b/ARMFCaptureD3D/x64/Release/CL.6400.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.6400.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.6428.read.1.tlog b/ARMFCaptureD3D/x64/Release/CL.6428.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.6428.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.6428.write.1.tlog b/ARMFCaptureD3D/x64/Release/CL.6428.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.6428.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.6488.read.1.tlog b/ARMFCaptureD3D/x64/Release/CL.6488.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.6488.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.6488.write.1.tlog b/ARMFCaptureD3D/x64/Release/CL.6488.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.6488.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.6748.read.1.tlog b/ARMFCaptureD3D/x64/Release/CL.6748.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.6748.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.6748.write.1.tlog b/ARMFCaptureD3D/x64/Release/CL.6748.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.6748.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.7112.read.1.tlog b/ARMFCaptureD3D/x64/Release/CL.7112.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.7112.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.7112.write.1.tlog b/ARMFCaptureD3D/x64/Release/CL.7112.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.7112.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.7176.read.1.tlog b/ARMFCaptureD3D/x64/Release/CL.7176.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.7176.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.7176.write.1.tlog b/ARMFCaptureD3D/x64/Release/CL.7176.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.7176.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.7352.read.1.tlog b/ARMFCaptureD3D/x64/Release/CL.7352.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.7352.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.7352.write.1.tlog b/ARMFCaptureD3D/x64/Release/CL.7352.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.7352.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.7400.read.1.tlog b/ARMFCaptureD3D/x64/Release/CL.7400.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.7400.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.7400.write.1.tlog b/ARMFCaptureD3D/x64/Release/CL.7400.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.7400.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.748.read.1.tlog b/ARMFCaptureD3D/x64/Release/CL.748.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.748.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.748.write.1.tlog b/ARMFCaptureD3D/x64/Release/CL.748.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.748.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.8132.read.1.tlog b/ARMFCaptureD3D/x64/Release/CL.8132.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.8132.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.8132.write.1.tlog b/ARMFCaptureD3D/x64/Release/CL.8132.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.8132.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.8248.read.1.tlog b/ARMFCaptureD3D/x64/Release/CL.8248.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.8248.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.8248.write.1.tlog b/ARMFCaptureD3D/x64/Release/CL.8248.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.8248.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.8296.read.1.tlog b/ARMFCaptureD3D/x64/Release/CL.8296.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.8296.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.8296.write.1.tlog b/ARMFCaptureD3D/x64/Release/CL.8296.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.8296.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.8776.read.1.tlog b/ARMFCaptureD3D/x64/Release/CL.8776.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.8776.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.8776.write.1.tlog b/ARMFCaptureD3D/x64/Release/CL.8776.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.8776.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.8824.read.1.tlog b/ARMFCaptureD3D/x64/Release/CL.8824.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.8824.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.8824.write.1.tlog b/ARMFCaptureD3D/x64/Release/CL.8824.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.8824.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.8856.read.1.tlog b/ARMFCaptureD3D/x64/Release/CL.8856.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.8856.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.8856.write.1.tlog b/ARMFCaptureD3D/x64/Release/CL.8856.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.8856.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.8904.read.1.tlog b/ARMFCaptureD3D/x64/Release/CL.8904.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.8904.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.8904.write.1.tlog b/ARMFCaptureD3D/x64/Release/CL.8904.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.8904.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.9148.read.1.tlog b/ARMFCaptureD3D/x64/Release/CL.9148.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.9148.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.9148.write.1.tlog b/ARMFCaptureD3D/x64/Release/CL.9148.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.9148.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/CL.read.1.tlog b/ARMFCaptureD3D/x64/Release/CL.read.1.tlog
new file mode 100644
index 0000000..6101b33
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.read.1.tlog
Binary files differ
diff --git a/ARMFCaptureD3D/x64/Release/CL.write.1.tlog b/ARMFCaptureD3D/x64/Release/CL.write.1.tlog
new file mode 100644
index 0000000..2ffd592
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/CL.write.1.tlog
Binary files differ
diff --git a/ARMFCaptureD3D/x64/Release/Calibration.obj b/ARMFCaptureD3D/x64/Release/Calibration.obj
new file mode 100644
index 0000000..bd4a7e7
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/Calibration.obj
Binary files differ
diff --git a/ARMFCaptureD3D/x64/Release/ConfigFile.obj b/ARMFCaptureD3D/x64/Release/ConfigFile.obj
new file mode 100644
index 0000000..8b89769
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/ConfigFile.obj
Binary files differ
diff --git a/ARMFCaptureD3D/x64/Release/Ivy.dll b/ARMFCaptureD3D/x64/Release/Ivy.dll
new file mode 100644
index 0000000..00484ca
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/Ivy.dll
Binary files differ
diff --git a/ARMFCaptureD3D/x64/Release/Ivy.exp b/ARMFCaptureD3D/x64/Release/Ivy.exp
new file mode 100644
index 0000000..6b595b7
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/Ivy.exp
Binary files differ
diff --git a/ARMFCaptureD3D/x64/Release/Ivy.lib b/ARMFCaptureD3D/x64/Release/Ivy.lib
new file mode 100644
index 0000000..f140850
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/Ivy.lib
Binary files differ
diff --git a/ARMFCaptureD3D/x64/Release/MFCaptureD3D.log b/ARMFCaptureD3D/x64/Release/MFCaptureD3D.log
new file mode 100644
index 0000000..32f069c
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/MFCaptureD3D.log
@@ -0,0 +1,231 @@
+La génération a démarré 18/11/2011 13:09:41.
+ 1>Projet "C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj" sur le nœud 3 (build cible(s)).
+ 1>InitializeBuildStatus:
+ Création de "x64\Release\ARMFCaptureD3D.unsuccessfulbuild", car "AlwaysCreate" a été spécifié.
+ ClCompile:
+ C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\x86_amd64\CL.exe /c /I"C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARToolKitPlus-2.2.1\include" /I"C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\Bus\Ivy" /Zi /nologo /W4 /WX- /O2 /GL /D WIN32 /D NDEBUG /D _WINDOWS /D DX9 /D _USE_DOUBLE_ /D _UNICODE /D UNICODE /Gm- /EHsc /MD /GS /fp:precise /Zc:wchar_t /Zc:forScope /Fo"x64\Release\\" /Fd"x64\Release\vc100.pdb" /Gd /TP /errorReport:prompt ARAnalyse.cpp Calibration.cpp ConfigFile\ConfigFile.cpp debug.cpp device.cpp MinMaxAvg.cpp options.cpp preview.cpp winmain.cpp
+ ARAnalyse.cpp
+ 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstdio(48): warning C4995: 'gets' : le nom a été marqué comme #pragma deprecated
+ 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstdio(52): warning C4995: 'sprintf' : le nom a été marqué comme #pragma deprecated
+ 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstdio(55): warning C4995: 'vsprintf' : le nom a été marqué comme #pragma deprecated
+ 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstring(21): warning C4995: 'strcat' : le nom a été marqué comme #pragma deprecated
+ 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstring(22): warning C4995: 'strcpy' : le nom a été marqué comme #pragma deprecated
+ 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cwchar(30): warning C4995: 'swprintf' : le nom a été marqué comme #pragma deprecated
+ 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cwchar(31): warning C4995: 'vswprintf' : le nom a été marqué comme #pragma deprecated
+ 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cwchar(33): warning C4995: 'wcscat' : le nom a été marqué comme #pragma deprecated
+ 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cwchar(35): warning C4995: 'wcscpy' : le nom a été marqué comme #pragma deprecated
+ 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\intrin.h(1092): warning C4995: 'wcscat' : le nom a été marqué comme #pragma deprecated
+ 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\intrin.h(1094): warning C4995: 'wcscpy' : le nom a été marqué comme #pragma deprecated
+ 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\string(757): warning C4995: 'swprintf' : le nom a été marqué comme #pragma deprecated
+ 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\string(766): warning C4995: 'swprintf' : le nom a été marqué comme #pragma deprecated
+ 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\string(775): warning C4995: 'swprintf' : le nom a été marqué comme #pragma deprecated
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\bus\ivy\IvyCallback.h(81): warning C4100: 'app' : paramètre formel non référencé
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\bus\ivy\IvyCallback.h(83): warning C4100: 'app' : paramètre formel non référencé
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\bus\ivy\IvyCallback.h(130): warning C4100: 'regexp' : paramètre formel non référencé
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\bus\ivy\IvyCallback.h(130): warning C4100: 'id' : paramètre formel non référencé
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\bus\ivy\IvyCallback.h(130): warning C4100: 'app' : paramètre formel non référencé
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\bus\ivy\IvyCallback.h(132): warning C4100: 'regexp' : paramètre formel non référencé
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\bus\ivy\IvyCallback.h(132): warning C4100: 'id' : paramètre formel non référencé
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\bus\ivy\IvyCallback.h(132): warning C4100: 'app' : paramètre formel non référencé
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\bus\ivy\IvyCallback.h(134): warning C4100: 'regexp' : paramètre formel non référencé
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\bus\ivy\IvyCallback.h(134): warning C4100: 'id' : paramètre formel non référencé
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\bus\ivy\IvyCallback.h(134): warning C4100: 'app' : paramètre formel non référencé
+ 1>ARAnalyse.cpp(232): warning C4100: 'size' : paramètre formel non référencé
+ 1>ARAnalyse.cpp(923): warning C4305: 'initialisation' : troncation de 'double' à 'const float'
+ 1>ARAnalyse.cpp(923): warning C4305: 'initialisation' : troncation de 'double' à 'const float'
+ 1>ARAnalyse.cpp(923): warning C4305: 'initialisation' : troncation de 'double' à 'const float'
+ 1>ARAnalyse.cpp(924): warning C4305: 'initialisation' : troncation de 'double' à 'const float'
+ 1>ARAnalyse.cpp(924): warning C4305: 'initialisation' : troncation de 'double' à 'const float'
+ 1>ARAnalyse.cpp(924): warning C4305: 'initialisation' : troncation de 'double' à 'const float'
+ 1>ARAnalyse.cpp(925): warning C4305: 'initialisation' : troncation de 'double' à 'const float'
+ 1>ARAnalyse.cpp(925): warning C4305: 'initialisation' : troncation de 'double' à 'const float'
+ 1>ARAnalyse.cpp(926): warning C4305: 'initialisation' : troncation de 'double' à 'const float'
+ 1>ARAnalyse.cpp(968): warning C4305: 'initialisation' : troncation de 'double' à 'const float'
+ 1>ARAnalyse.cpp(968): warning C4305: 'initialisation' : troncation de 'double' à 'const float'
+ 1>ARAnalyse.cpp(968): warning C4305: 'initialisation' : troncation de 'double' à 'const float'
+ 1>ARAnalyse.cpp(968): warning C4305: 'initialisation' : troncation de 'double' à 'const float'
+ 1>ARAnalyse.cpp(968): warning C4305: 'initialisation' : troncation de 'double' à 'const float'
+ 1>ARAnalyse.cpp(969): warning C4305: 'initialisation' : troncation de 'double' à 'const float'
+ 1>ARAnalyse.cpp(969): warning C4305: 'initialisation' : troncation de 'double' à 'const float'
+ 1>ARAnalyse.cpp(969): warning C4305: 'initialisation' : troncation de 'double' à 'const float'
+ 1>ARAnalyse.cpp(969): warning C4305: 'initialisation' : troncation de 'double' à 'const float'
+ 1>ARAnalyse.cpp(969): warning C4305: 'initialisation' : troncation de 'double' à 'const float'
+ 1>ARAnalyse.cpp(970): warning C4305: 'initialisation' : troncation de 'double' à 'const float'
+ 1>ARAnalyse.cpp(970): warning C4305: 'initialisation' : troncation de 'double' à 'const float'
+ 1>ARAnalyse.cpp(970): warning C4305: 'initialisation' : troncation de 'double' à 'const float'
+ 1>ARAnalyse.cpp(970): warning C4305: 'initialisation' : troncation de 'double' à 'const float'
+ 1>ARAnalyse.cpp(970): warning C4305: 'initialisation' : troncation de 'double' à 'const float'
+ 1>ARAnalyse.cpp(971): warning C4305: 'initialisation' : troncation de 'double' à 'const float'
+ 1>ARAnalyse.cpp(971): warning C4305: 'initialisation' : troncation de 'double' à 'const float'
+ 1>ARAnalyse.cpp(971): warning C4305: 'initialisation' : troncation de 'double' à 'const float'
+ 1>ARAnalyse.cpp(971): warning C4305: 'initialisation' : troncation de 'double' à 'const float'
+ 1>ARAnalyse.cpp(971): warning C4305: 'initialisation' : troncation de 'double' à 'const float'
+ 1>ARAnalyse.cpp(972): warning C4305: 'initialisation' : troncation de 'double' à 'const float'
+ 1>ARAnalyse.cpp(972): warning C4305: 'initialisation' : troncation de 'double' à 'const float'
+ 1>ARAnalyse.cpp(972): warning C4305: 'initialisation' : troncation de 'double' à 'const float'
+ 1>ARAnalyse.cpp(972): warning C4305: 'initialisation' : troncation de 'double' à 'const float'
+ 1>ARAnalyse.cpp(973): warning C4305: 'initialisation' : troncation de 'double' à 'const float'
+ 1>ARAnalyse.cpp(844): warning C4100: 'size' : paramètre formel non référencé
+ 1>ARAnalyse.cpp(1091): warning C4100: 'dest' : paramètre formel non référencé
+ 1>ARAnalyse.cpp(1115): warning C4189: 'height' : variable locale initialisée mais non référencée
+ 1>ARAnalyse.cpp(1141): warning C4189: 'height' : variable locale initialisée mais non référencée
+ 1>ARAnalyse.cpp(1170): warning C4189: 'height' : variable locale initialisée mais non référencée
+ 1>ARAnalyse.cpp(1197): warning C4100: 'dest' : paramètre formel non référencé
+ 1>ARAnalyse.cpp(421): warning C4505: 'RGB2HSL' : la fonction locale non référencée a été supprimée
+ Calibration.cpp
+ 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstdio(48): warning C4995: 'gets' : le nom a été marqué comme #pragma deprecated
+ 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstdio(52): warning C4995: 'sprintf' : le nom a été marqué comme #pragma deprecated
+ 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstdio(55): warning C4995: 'vsprintf' : le nom a été marqué comme #pragma deprecated
+ 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstring(21): warning C4995: 'strcat' : le nom a été marqué comme #pragma deprecated
+ 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstring(22): warning C4995: 'strcpy' : le nom a été marqué comme #pragma deprecated
+ 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cwchar(30): warning C4995: 'swprintf' : le nom a été marqué comme #pragma deprecated
+ 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cwchar(31): warning C4995: 'vswprintf' : le nom a été marqué comme #pragma deprecated
+ 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cwchar(33): warning C4995: 'wcscat' : le nom a été marqué comme #pragma deprecated
+ 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cwchar(35): warning C4995: 'wcscpy' : le nom a été marqué comme #pragma deprecated
+ 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\intrin.h(1092): warning C4995: 'wcscat' : le nom a été marqué comme #pragma deprecated
+ 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\intrin.h(1094): warning C4995: 'wcscpy' : le nom a été marqué comme #pragma deprecated
+ 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\string(757): warning C4995: 'swprintf' : le nom a été marqué comme #pragma deprecated
+ 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\string(766): warning C4995: 'swprintf' : le nom a été marqué comme #pragma deprecated
+ 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\string(775): warning C4995: 'swprintf' : le nom a été marqué comme #pragma deprecated
+ ConfigFile.cpp
+ debug.cpp
+ 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstdio(48): warning C4995: 'gets' : le nom a été marqué comme #pragma deprecated
+ 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstdio(52): warning C4995: 'sprintf' : le nom a été marqué comme #pragma deprecated
+ 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstdio(55): warning C4995: 'vsprintf' : le nom a été marqué comme #pragma deprecated
+ device.cpp
+ 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstdio(48): warning C4995: 'gets' : le nom a été marqué comme #pragma deprecated
+ 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstdio(52): warning C4995: 'sprintf' : le nom a été marqué comme #pragma deprecated
+ 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstdio(55): warning C4995: 'vsprintf' : le nom a été marqué comme #pragma deprecated
+ 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstring(21): warning C4995: 'strcat' : le nom a été marqué comme #pragma deprecated
+ 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstring(22): warning C4995: 'strcpy' : le nom a été marqué comme #pragma deprecated
+ 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cwchar(30): warning C4995: 'swprintf' : le nom a été marqué comme #pragma deprecated
+ 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cwchar(31): warning C4995: 'vswprintf' : le nom a été marqué comme #pragma deprecated
+ 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cwchar(33): warning C4995: 'wcscat' : le nom a été marqué comme #pragma deprecated
+ 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cwchar(35): warning C4995: 'wcscpy' : le nom a été marqué comme #pragma deprecated
+ 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\intrin.h(1092): warning C4995: 'wcscat' : le nom a été marqué comme #pragma deprecated
+ 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\intrin.h(1094): warning C4995: 'wcscpy' : le nom a été marqué comme #pragma deprecated
+ 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\string(757): warning C4995: 'swprintf' : le nom a été marqué comme #pragma deprecated
+ 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\string(766): warning C4995: 'swprintf' : le nom a été marqué comme #pragma deprecated
+ 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\string(775): warning C4995: 'swprintf' : le nom a été marqué comme #pragma deprecated
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\bus\ivy\IvyCallback.h(81): warning C4100: 'app' : paramètre formel non référencé
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\bus\ivy\IvyCallback.h(83): warning C4100: 'app' : paramètre formel non référencé
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\bus\ivy\IvyCallback.h(130): warning C4100: 'regexp' : paramètre formel non référencé
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\bus\ivy\IvyCallback.h(130): warning C4100: 'id' : paramètre formel non référencé
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\bus\ivy\IvyCallback.h(130): warning C4100: 'app' : paramètre formel non référencé
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\bus\ivy\IvyCallback.h(132): warning C4100: 'regexp' : paramètre formel non référencé
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\bus\ivy\IvyCallback.h(132): warning C4100: 'id' : paramètre formel non référencé
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\bus\ivy\IvyCallback.h(132): warning C4100: 'app' : paramètre formel non référencé
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\bus\ivy\IvyCallback.h(134): warning C4100: 'regexp' : paramètre formel non référencé
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\bus\ivy\IvyCallback.h(134): warning C4100: 'id' : paramètre formel non référencé
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\bus\ivy\IvyCallback.h(134): warning C4100: 'app' : paramètre formel non référencé
+ 1>device.cpp(932): warning C4102: 'done' : étiquette non référencée
+ MinMaxAvg.cpp
+ options.cpp
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\armfcaptured3d\options.h(196): warning C4512: 'OptIstreamIter' : l'opérateur d'assignation n'a pas pu être généré
+ c:\users\fcolin\documents\projects visual studio\cpp\armfcaptured3d\options.h(172) : voir la déclaration de 'OptIstreamIter'
+ 1>options.cpp(155): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
+ C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\string.h(105) : voir la déclaration de 'strcpy'
+ 1>options.cpp(156): warning C4996: 'strtok': This function or variable may be unsafe. Consider using strtok_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
+ C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\string.h(197) : voir la déclaration de 'strtok'
+ 1>options.cpp(166): warning C4996: 'strtok': This function or variable may be unsafe. Consider using strtok_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
+ C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\string.h(197) : voir la déclaration de 'strtok'
+ 1>options.cpp(171): warning C4996: 'strtok': This function or variable may be unsafe. Consider using strtok_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
+ C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\string.h(197) : voir la déclaration de 'strtok'
+ 1>options.cpp(177): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
+ C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\string.h(105) : voir la déclaration de 'strcpy'
+ 1>options.cpp(178): warning C4996: 'strtok': This function or variable may be unsafe. Consider using strtok_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
+ C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\string.h(197) : voir la déclaration de 'strtok'
+ 1>options.cpp(563): warning C4996: 'strncpy': This function or variable may be unsafe. Consider using strncpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
+ C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\string.h(188) : voir la déclaration de 'strncpy'
+ 1>options.cpp(571): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
+ C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\string.h(105) : voir la déclaration de 'strcpy'
+ 1>options.cpp(574): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
+ C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\string.h(105) : voir la déclaration de 'strcpy'
+ preview.cpp
+ 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstdio(48): warning C4995: 'gets' : le nom a été marqué comme #pragma deprecated
+ 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstdio(52): warning C4995: 'sprintf' : le nom a été marqué comme #pragma deprecated
+ 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstdio(55): warning C4995: 'vsprintf' : le nom a été marqué comme #pragma deprecated
+ 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstring(21): warning C4995: 'strcat' : le nom a été marqué comme #pragma deprecated
+ 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstring(22): warning C4995: 'strcpy' : le nom a été marqué comme #pragma deprecated
+ 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cwchar(30): warning C4995: 'swprintf' : le nom a été marqué comme #pragma deprecated
+ 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cwchar(31): warning C4995: 'vswprintf' : le nom a été marqué comme #pragma deprecated
+ 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cwchar(33): warning C4995: 'wcscat' : le nom a été marqué comme #pragma deprecated
+ 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cwchar(35): warning C4995: 'wcscpy' : le nom a été marqué comme #pragma deprecated
+ 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\intrin.h(1092): warning C4995: 'wcscat' : le nom a été marqué comme #pragma deprecated
+ 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\intrin.h(1094): warning C4995: 'wcscpy' : le nom a été marqué comme #pragma deprecated
+ 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\string(757): warning C4995: 'swprintf' : le nom a été marqué comme #pragma deprecated
+ 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\string(766): warning C4995: 'swprintf' : le nom a été marqué comme #pragma deprecated
+ 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\string(775): warning C4995: 'swprintf' : le nom a été marqué comme #pragma deprecated
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\bus\ivy\IvyCallback.h(81): warning C4100: 'app' : paramètre formel non référencé
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\bus\ivy\IvyCallback.h(83): warning C4100: 'app' : paramètre formel non référencé
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\bus\ivy\IvyCallback.h(130): warning C4100: 'regexp' : paramètre formel non référencé
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\bus\ivy\IvyCallback.h(130): warning C4100: 'id' : paramètre formel non référencé
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\bus\ivy\IvyCallback.h(130): warning C4100: 'app' : paramètre formel non référencé
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\bus\ivy\IvyCallback.h(132): warning C4100: 'regexp' : paramètre formel non référencé
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\bus\ivy\IvyCallback.h(132): warning C4100: 'id' : paramètre formel non référencé
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\bus\ivy\IvyCallback.h(132): warning C4100: 'app' : paramètre formel non référencé
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\bus\ivy\IvyCallback.h(134): warning C4100: 'regexp' : paramètre formel non référencé
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\bus\ivy\IvyCallback.h(134): warning C4100: 'id' : paramètre formel non référencé
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\bus\ivy\IvyCallback.h(134): warning C4100: 'app' : paramètre formel non référencé
+ winmain.cpp
+ 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstdio(48): warning C4995: 'gets' : le nom a été marqué comme #pragma deprecated
+ 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstdio(52): warning C4995: 'sprintf' : le nom a été marqué comme #pragma deprecated
+ 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstdio(55): warning C4995: 'vsprintf' : le nom a été marqué comme #pragma deprecated
+ 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstring(21): warning C4995: 'strcat' : le nom a été marqué comme #pragma deprecated
+ 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cstring(22): warning C4995: 'strcpy' : le nom a été marqué comme #pragma deprecated
+ 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cwchar(30): warning C4995: 'swprintf' : le nom a été marqué comme #pragma deprecated
+ 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cwchar(31): warning C4995: 'vswprintf' : le nom a été marqué comme #pragma deprecated
+ 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cwchar(33): warning C4995: 'wcscat' : le nom a été marqué comme #pragma deprecated
+ 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\cwchar(35): warning C4995: 'wcscpy' : le nom a été marqué comme #pragma deprecated
+ 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\string(757): warning C4995: 'swprintf' : le nom a été marqué comme #pragma deprecated
+ 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\string(766): warning C4995: 'swprintf' : le nom a été marqué comme #pragma deprecated
+ 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\string(775): warning C4995: 'swprintf' : le nom a été marqué comme #pragma deprecated
+ 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\intrin.h(1092): warning C4995: 'wcscat' : le nom a été marqué comme #pragma deprecated
+ 1>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\intrin.h(1094): warning C4995: 'wcscpy' : le nom a été marqué comme #pragma deprecated
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\armfcaptured3d\options.h(196): warning C4512: 'OptIstreamIter' : l'opérateur d'assignation n'a pas pu être généré
+ c:\users\fcolin\documents\projects visual studio\cpp\armfcaptured3d\options.h(172) : voir la déclaration de 'OptIstreamIter'
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\bus\ivy\IvyCallback.h(81): warning C4100: 'app' : paramètre formel non référencé
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\bus\ivy\IvyCallback.h(83): warning C4100: 'app' : paramètre formel non référencé
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\bus\ivy\IvyCallback.h(130): warning C4100: 'regexp' : paramètre formel non référencé
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\bus\ivy\IvyCallback.h(130): warning C4100: 'id' : paramètre formel non référencé
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\bus\ivy\IvyCallback.h(130): warning C4100: 'app' : paramètre formel non référencé
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\bus\ivy\IvyCallback.h(132): warning C4100: 'regexp' : paramètre formel non référencé
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\bus\ivy\IvyCallback.h(132): warning C4100: 'id' : paramètre formel non référencé
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\bus\ivy\IvyCallback.h(132): warning C4100: 'app' : paramètre formel non référencé
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\bus\ivy\IvyCallback.h(134): warning C4100: 'regexp' : paramètre formel non référencé
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\bus\ivy\IvyCallback.h(134): warning C4100: 'id' : paramètre formel non référencé
+ 1>c:\users\fcolin\documents\projects visual studio\cpp\bus\ivy\IvyCallback.h(134): warning C4100: 'app' : paramètre formel non référencé
+ 1>winmain.cpp(133): warning C4995: 'strcpy' : le nom a été marqué comme #pragma deprecated
+ 1>winmain.cpp(133): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
+ C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\string.h(105) : voir la déclaration de 'strcpy'
+ 1>winmain.cpp(648): warning C4100: 'hwnd' : paramètre formel non référencé
+ ResourceCompile:
+ c:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\rc.exe /D _UNICODE /D UNICODE /l"0x0409" /nologo /fo"x64\Release\ARMFCaptureD3D.res" ARMFCaptureD3D.rc
+ Link:
+ C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\x86_amd64\link.exe /ERRORREPORT:PROMPT /OUT:"C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exe" /INCREMENTAL:NO /NOLOGO Comctl32.lib mfplat.lib mf.lib mfreadwrite.lib mfuuid.lib d3d9.lib shlwapi.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /MANIFEST /ManifestFile:"x64\Release\ARMFCaptureD3D.exe.intermediate.manifest" /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /DEBUG /PDB:"C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.pdb" /SUBSYSTEM:WINDOWS /OPT:REF /OPT:ICF /LTCG /TLBID:1 /DYNAMICBASE:NO /IMPLIB:"C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib" /MACHINE:X64 x64\Release\ARMFCaptureD3D.res
+ x64\Release\ARAnalyse.obj
+ x64\Release\Calibration.obj
+ x64\Release\ConfigFile.obj
+ x64\Release\debug.obj
+ x64\Release\device.obj
+ x64\Release\MinMaxAvg.obj
+ x64\Release\options.obj
+ x64\Release\preview.obj
+ x64\Release\winmain.obj
+ "C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\pcre.lib"
+ "C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARToolKitPlus.lib"
+ "C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\Ivy.lib"
+ Création de la bibliothèque C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.lib et de l'objet C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exp
+ Génération de code en cours
+ Fin de la génération du code
+ MFCaptureD3D.vcxproj -> C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exe
+ Manifest:
+ c:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\mt.exe /nologo /verbose /outputresource:"C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\x64\Release\ARMFCaptureD3D.exe;#1" /manifest x64\Release\ARMFCaptureD3D.exe.intermediate.manifest
+ FinalizeBuildStatus:
+ Suppression du fichier "x64\Release\ARMFCaptureD3D.unsuccessfulbuild".
+ Mise Ă  jour de l'horodatage "x64\Release\ARMFCaptureD3D.lastbuildstate".
+ 1>Génération du projet "C:\Users\fcolin\Documents\Projects Visual Studio\Cpp\ARMFCaptureD3D\MFCaptureD3D.vcxproj" terminée (build cible(s)).
+
+La génération a réussi.
+
+Temps écoulé 00:00:07.41
diff --git a/ARMFCaptureD3D/x64/Release/MinMaxAvg.obj b/ARMFCaptureD3D/x64/Release/MinMaxAvg.obj
new file mode 100644
index 0000000..64d9fac
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/MinMaxAvg.obj
Binary files differ
diff --git a/ARMFCaptureD3D/x64/Release/cl.command.1.tlog b/ARMFCaptureD3D/x64/Release/cl.command.1.tlog
new file mode 100644
index 0000000..f529ab6
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/cl.command.1.tlog
Binary files differ
diff --git a/ARMFCaptureD3D/x64/Release/debug.obj b/ARMFCaptureD3D/x64/Release/debug.obj
new file mode 100644
index 0000000..24b8a36
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/debug.obj
Binary files differ
diff --git a/ARMFCaptureD3D/x64/Release/device.obj b/ARMFCaptureD3D/x64/Release/device.obj
new file mode 100644
index 0000000..a287424
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/device.obj
Binary files differ
diff --git a/ARMFCaptureD3D/x64/Release/link-cvtres.read.1.tlog b/ARMFCaptureD3D/x64/Release/link-cvtres.read.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/link-cvtres.read.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/link-cvtres.write.1.tlog b/ARMFCaptureD3D/x64/Release/link-cvtres.write.1.tlog
new file mode 100644
index 0000000..46b134b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/link-cvtres.write.1.tlog
@@ -0,0 +1 @@
+˙ţ \ No newline at end of file
diff --git a/ARMFCaptureD3D/x64/Release/link.command.1.tlog b/ARMFCaptureD3D/x64/Release/link.command.1.tlog
new file mode 100644
index 0000000..e0b8ef0
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/link.command.1.tlog
Binary files differ
diff --git a/ARMFCaptureD3D/x64/Release/link.read.1.tlog b/ARMFCaptureD3D/x64/Release/link.read.1.tlog
new file mode 100644
index 0000000..ef8df0f
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/link.read.1.tlog
Binary files differ
diff --git a/ARMFCaptureD3D/x64/Release/link.write.1.tlog b/ARMFCaptureD3D/x64/Release/link.write.1.tlog
new file mode 100644
index 0000000..a3df4f7
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/link.write.1.tlog
Binary files differ
diff --git a/ARMFCaptureD3D/x64/Release/mt.command.1.tlog b/ARMFCaptureD3D/x64/Release/mt.command.1.tlog
new file mode 100644
index 0000000..e732c34
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/mt.command.1.tlog
Binary files differ
diff --git a/ARMFCaptureD3D/x64/Release/mt.read.1.tlog b/ARMFCaptureD3D/x64/Release/mt.read.1.tlog
new file mode 100644
index 0000000..761f214
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/mt.read.1.tlog
Binary files differ
diff --git a/ARMFCaptureD3D/x64/Release/mt.write.1.tlog b/ARMFCaptureD3D/x64/Release/mt.write.1.tlog
new file mode 100644
index 0000000..5f73c74
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/mt.write.1.tlog
Binary files differ
diff --git a/ARMFCaptureD3D/x64/Release/options.obj b/ARMFCaptureD3D/x64/Release/options.obj
new file mode 100644
index 0000000..136f0a2
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/options.obj
Binary files differ
diff --git a/ARMFCaptureD3D/x64/Release/pcre.dll b/ARMFCaptureD3D/x64/Release/pcre.dll
new file mode 100644
index 0000000..f5b82b9
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/pcre.dll
Binary files differ
diff --git a/ARMFCaptureD3D/x64/Release/pcre.exp b/ARMFCaptureD3D/x64/Release/pcre.exp
new file mode 100644
index 0000000..1c7c1c7
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/pcre.exp
Binary files differ
diff --git a/ARMFCaptureD3D/x64/Release/pcre.lib b/ARMFCaptureD3D/x64/Release/pcre.lib
new file mode 100644
index 0000000..a0e0fdc
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/pcre.lib
Binary files differ
diff --git a/ARMFCaptureD3D/x64/Release/pcre.pdb b/ARMFCaptureD3D/x64/Release/pcre.pdb
new file mode 100644
index 0000000..f95c90b
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/pcre.pdb
Binary files differ
diff --git a/ARMFCaptureD3D/x64/Release/preview.obj b/ARMFCaptureD3D/x64/Release/preview.obj
new file mode 100644
index 0000000..b16fec6
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/preview.obj
Binary files differ
diff --git a/ARMFCaptureD3D/x64/Release/rc.command.1.tlog b/ARMFCaptureD3D/x64/Release/rc.command.1.tlog
new file mode 100644
index 0000000..62c5aeb
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/rc.command.1.tlog
Binary files differ
diff --git a/ARMFCaptureD3D/x64/Release/rc.read.1.tlog b/ARMFCaptureD3D/x64/Release/rc.read.1.tlog
new file mode 100644
index 0000000..3fc68da
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/rc.read.1.tlog
Binary files differ
diff --git a/ARMFCaptureD3D/x64/Release/rc.write.1.tlog b/ARMFCaptureD3D/x64/Release/rc.write.1.tlog
new file mode 100644
index 0000000..d573fa0
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/rc.write.1.tlog
Binary files differ
diff --git a/ARMFCaptureD3D/x64/Release/vc100.pdb b/ARMFCaptureD3D/x64/Release/vc100.pdb
new file mode 100644
index 0000000..290b0c1
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/vc100.pdb
Binary files differ
diff --git a/ARMFCaptureD3D/x64/Release/winmain.obj b/ARMFCaptureD3D/x64/Release/winmain.obj
new file mode 100644
index 0000000..c7f7692
--- /dev/null
+++ b/ARMFCaptureD3D/x64/Release/winmain.obj
Binary files differ