├── src_c ├── .gitignore ├── valgrind_suppressions.txt ├── IExifHandler.hpp ├── cmake │ ├── Hunter │ │ └── config.cmake │ ├── FindNumPy.cmake │ └── FindOpenEXR.cmake ├── JpegExifHandler.hpp ├── tga.h ├── exr.h ├── hdr.h ├── png.h ├── jpeg.h ├── tiff.h ├── AIL_internal.h ├── tests │ ├── testCommon.h │ ├── CMakeLists.txt │ └── hdr.cpp ├── CMakeLists.txt ├── ImageLoaderBase.h └── JpegExifHandler.cpp ├── bindings ├── python │ ├── .gitignore │ ├── requirements.txt │ ├── AImg │ │ ├── __init__.py │ │ ├── EncodingOptions.py │ │ ├── AImgExceptions.py │ │ ├── enums.py │ │ └── AImg.py │ └── setup.py └── csharp │ └── ArtomatixImageLoader │ ├── ArtomatixImageLoader │ ├── embedded_files │ │ └── .gitignore │ ├── native_code_setting.txt │ ├── Properties │ │ └── AssemblyInfo.cs │ ├── ImgEncodingOptions.cs │ ├── MemoryTrackerProxy.cs │ ├── ImgLoader.cs │ └── Exceptions.cs │ ├── paket.references │ ├── .vscode │ └── tasks.json │ ├── Package.nuspec │ ├── ArtomatixImageLoaderTests │ └── Properties │ │ └── AssemblyInfo.cs │ ├── ArtomatixImageLoader.sln │ └── .gitignore ├── .paket ├── get_paket.bat ├── get_paket.sh ├── nuget.exe ├── paket.bootstrapper.exe └── paket.targets ├── hooks └── binfiles │ └── NUnit-2.6.4 │ ├── bin │ ├── runpnunit.bat │ ├── agent.conf │ ├── lib │ │ ├── Images │ │ │ ├── pinned.gif │ │ │ ├── Ellipsis.gif │ │ │ ├── unpinned.gif │ │ │ └── Tree │ │ │ │ ├── Circles │ │ │ │ ├── Failure.jpg │ │ │ │ ├── Ignored.jpg │ │ │ │ ├── Skipped.jpg │ │ │ │ ├── Success.jpg │ │ │ │ └── Inconclusive.jpg │ │ │ │ ├── Classic │ │ │ │ ├── Failure.jpg │ │ │ │ ├── Ignored.jpg │ │ │ │ ├── Skipped.jpg │ │ │ │ ├── Success.jpg │ │ │ │ └── Inconclusive.jpg │ │ │ │ ├── Default │ │ │ │ ├── Failure.png │ │ │ │ ├── Ignored.png │ │ │ │ ├── Skipped.png │ │ │ │ ├── Success.png │ │ │ │ └── Inconclusive.png │ │ │ │ └── Visual Studio │ │ │ │ ├── Failure.png │ │ │ │ ├── Ignored.png │ │ │ │ ├── Skipped.png │ │ │ │ ├── Success.png │ │ │ │ ├── Inconclusive.png │ │ │ │ └── SeriousWarning.png │ │ ├── Rhino.Mocks.dll │ │ ├── log4net.dll │ │ ├── nunit.core.dll │ │ ├── nunit.uikit.dll │ │ ├── nunit.util.dll │ │ ├── NSubstitute.dll │ │ ├── nunit-gui-runner.dll │ │ ├── nunit.uiexception.dll │ │ ├── nunit-console-runner.dll │ │ └── nunit.core.interfaces.dll │ ├── nunit.exe │ ├── nunit-agent.exe │ ├── nunit-x86.exe │ ├── pnunit.tests.dll │ ├── nunit-agent-x86.exe │ ├── nunit-console-x86.exe │ ├── nunit-console.exe │ ├── nunit-editor.exe │ ├── nunit.framework.dll │ ├── pnunit-agent.exe │ ├── pnunit-launcher.exe │ ├── pnunit.framework.dll │ ├── framework │ │ ├── nunit.mocks.dll │ │ ├── nunit.framework.dll │ │ └── pnunit.framework.dll │ ├── tests │ │ ├── mock-assembly.dll │ │ ├── nunit-gui.tests.dll │ │ ├── test-assembly.dll │ │ ├── test-utilities.dll │ │ ├── nonamespace-assembly.dll │ │ ├── nunit-console.tests.dll │ │ ├── nunit-editor.tests.dll │ │ ├── nunit.core.tests.dll │ │ ├── nunit.framework.dll │ │ ├── nunit.mocks.tests.dll │ │ ├── nunit.uikit.tests.dll │ │ ├── nunit.util.tests.dll │ │ ├── test-assembly-net45.dll │ │ ├── nunit.core.tests.net45.dll │ │ ├── nunit.framework.tests.dll │ │ ├── nunit.uiexception.tests.dll │ │ └── nunit.framework.tests.net45.dll │ ├── agent.log.conf │ ├── launcher.log.conf │ ├── NUnitTests.nunit │ ├── nunit-x86.exe.config │ ├── nunit.exe.config │ ├── nunit-console.exe.config │ ├── nunit-console-x86.exe.config │ ├── nunit-agent.exe.config │ ├── nunit-agent-x86.exe.config │ ├── NUnitTests.config │ ├── test.conf │ ├── pnunit-agent.exe.config │ └── pnunit-launcher.exe.config │ ├── Logo.ico │ ├── license.txt │ └── doc │ ├── favicon.ico │ ├── img │ ├── logo.gif │ ├── bulletOff.gif │ ├── bulletOn.gif │ ├── langFilter.gif │ ├── addinsDialog.jpg │ ├── configEditor.jpg │ ├── generalTab.jpg │ ├── gui-verify.jpg │ ├── miniGui.jpg │ ├── xmlView.jpg │ ├── advancedSettings.jpg │ ├── assembliesTab.jpg │ ├── console-mock.jpg │ ├── generalSettings.jpg │ ├── gui-screenshot.jpg │ ├── nunitTestAdapter.png │ ├── testLoadSettings.jpg │ ├── testProperties.jpg │ ├── assemblyReloadSettings.jpg │ ├── internalTraceSettings.jpg │ ├── projectEditorSettings.jpg │ ├── testOutputSettings.jpg │ ├── testResultSettings.jpg │ ├── textOutputSettings.jpg │ ├── treeDisplaySettings.jpg │ ├── visualStudioSettings.jpg │ └── runtimeSelectionSettings.jpg │ ├── mainMenu.html │ ├── vsSupport.html │ ├── configEditor.html │ ├── configFiles.html │ ├── quickStart.html │ ├── settingsDialog.html │ ├── testProperties.html │ ├── files │ ├── QuickStart.doc │ ├── QuickStart.Spanish.doc │ └── Summary.xslt │ ├── codeFuncs.js │ ├── writingTests.html │ ├── samples.html │ ├── index.html │ ├── extensibility.html │ ├── getStarted.html │ ├── upgrade.html │ ├── vsTestAdapterLicense.html │ ├── suiteBuilders.html │ ├── assertions.html │ ├── eventListeners.html │ ├── nunit-agent.html │ ├── license.html │ ├── addinsDialog.html │ ├── extensionTips.html │ └── testDecorators.html ├── test_images ├── exr │ ├── grad_32.bin │ ├── grad_32.exr │ └── neal_half.exr ├── jpeg │ ├── karl.jpeg │ ├── test.jpeg │ ├── greyscale.jpeg │ ├── karl_comment.jpeg │ ├── ExifOrientation_1.jpg │ ├── ExifOrientation_2.jpg │ ├── ExifOrientation_3.jpg │ ├── ExifOrientation_4.jpg │ ├── ExifOrientation_5.jpg │ ├── ExifOrientation_6.jpg │ ├── ExifOrientation_7.jpg │ └── ExifOrientation_8.jpg ├── png │ ├── 16-bit.png │ ├── 8-bit.png │ ├── ICC.png │ ├── alpha.png │ ├── indextest_indexed.png │ └── indextest_nonindexed.png ├── tga │ ├── test.tga │ ├── 4channel.tga │ └── indexed.tga ├── tiff │ ├── ICC.tif │ ├── 16_bit_int.tif │ ├── 8_bit_int.tif │ ├── 8_bit_png.png │ ├── 16_bit_float.tif │ ├── 24_bit_float.tif │ ├── 32_bit_float.tif │ ├── jpeg_compressed.tif │ ├── 16_bit_int_separate_chans.tif │ ├── 8_bit_int_separate_chans.tif │ ├── 16_bit_float_separate_chans.tif │ ├── 24_bit_float_separate_chans.tif │ └── 32_bit_float_separate_chans.tif ├── hdr │ └── test-env.hdr └── orientation │ ├── nonsquare_2.png │ ├── nonsquare_3.png │ ├── nonsquare_4.png │ ├── nonsquare_5.png │ ├── nonsquare_6.png │ ├── nonsquare_7.png │ ├── nonsquare_8.png │ ├── square_2.png │ ├── square_3.png │ ├── square_4.png │ ├── square_5.png │ ├── square_6.png │ ├── square_7.png │ ├── square_8.png │ ├── square_base.png │ └── nonsquare_base.png ├── LocalNugetPackages └── NativeCodeBuilder.0.3.2.nupkg ├── .gitignore ├── paket.dependencies ├── setup.py ├── paket.lock ├── .gitattributes ├── .travis.yml ├── license └── jenkins.sh /src_c/.gitignore: -------------------------------------------------------------------------------- 1 | build*/ -------------------------------------------------------------------------------- /bindings/python/.gitignore: -------------------------------------------------------------------------------- 1 | build/ 2 | env/ 3 | -------------------------------------------------------------------------------- /bindings/python/requirements.txt: -------------------------------------------------------------------------------- 1 | numpy==1.13.1 2 | pkg-resources==0.0.0 3 | -------------------------------------------------------------------------------- /bindings/csharp/ArtomatixImageLoader/ArtomatixImageLoader/embedded_files/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | -------------------------------------------------------------------------------- /.paket/get_paket.bat: -------------------------------------------------------------------------------- 1 | SET mypath=%~dp0 2 | 3 | "%mypath%paket.bootstrapper.exe" "5.198.0" 4 | -------------------------------------------------------------------------------- /bindings/csharp/ArtomatixImageLoader/paket.references: -------------------------------------------------------------------------------- 1 | NativeBinaryManager 2 | Stugo.Interop 3 | NUnit -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/bin/runpnunit.bat: -------------------------------------------------------------------------------- 1 | start pnunit-agent 8080 . 2 | start pnunit-agent 8081 . 3 | pnunit-launcher test.conf 4 | -------------------------------------------------------------------------------- /bindings/python/AImg/__init__.py: -------------------------------------------------------------------------------- 1 | from AImg import * 2 | from EncodingOptions import * 3 | from enums import * 4 | from AImgExceptions import * 5 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/Logo.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/ArtomatixImageLoader/master/hooks/binfiles/NUnit-2.6.4/Logo.ico -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/bin/agent.conf: -------------------------------------------------------------------------------- 1 | 2 | 8080 3 | . 4 | -------------------------------------------------------------------------------- /.paket/get_paket.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" 4 | 5 | mono $DIR/paket.bootstrapper.exe 5.198.0 6 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/license.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/ArtomatixImageLoader/master/hooks/binfiles/NUnit-2.6.4/license.txt -------------------------------------------------------------------------------- /.paket/nuget.exe: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:a6be87794a542e3f518b718437443c6c29d379d12cc94bea7de787bf05babf83 3 | size 1686528 4 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/doc/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/ArtomatixImageLoader/master/hooks/binfiles/NUnit-2.6.4/doc/favicon.ico -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/doc/img/logo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/ArtomatixImageLoader/master/hooks/binfiles/NUnit-2.6.4/doc/img/logo.gif -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/doc/mainMenu.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/ArtomatixImageLoader/master/hooks/binfiles/NUnit-2.6.4/doc/mainMenu.html -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/doc/vsSupport.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/ArtomatixImageLoader/master/hooks/binfiles/NUnit-2.6.4/doc/vsSupport.html -------------------------------------------------------------------------------- /test_images/exr/grad_32.bin: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:dcc1249ca3899398fd56b6e5dcc6bd4500d0cb01bf059786180bb7086a524db5 3 | size 8192 4 | -------------------------------------------------------------------------------- /test_images/exr/grad_32.exr: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:e10883eadd906d17e62b85308b869b7ec8e2c4d4e8b07e7a11396d0fb2f4bd0f 3 | size 673 4 | -------------------------------------------------------------------------------- /test_images/jpeg/karl.jpeg: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:f6f17349e3dc2e047dae9a7d9f501bdd4eccf3ca326b94dce6bec1f5f46cbdf5 3 | size 20236 4 | -------------------------------------------------------------------------------- /test_images/png/16-bit.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:6c348ef04a4e9c221177d0e089ed28eab4e3720048b75ba8377daf739f5353b4 3 | size 21457 4 | -------------------------------------------------------------------------------- /test_images/png/8-bit.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:5f9f1d38cc69d39bc10421de41bc0c7a6c93ba4ff020297520ab08e15fc50e68 3 | size 164634 4 | -------------------------------------------------------------------------------- /test_images/png/ICC.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:7358aab7c0822556162bdcd7eb6331937296dab226c89f21f494dd1ae65d8c42 3 | size 3895 4 | -------------------------------------------------------------------------------- /test_images/png/alpha.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:741e7dfef52a6ce27c4d6b27c3174f569a3ccc252a8ac32edff0d99db66b1bdb 3 | size 25633 4 | -------------------------------------------------------------------------------- /test_images/tga/test.tga: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:e160103abe9d269d8ebf00f528fd5cd44c21b084767a63c7c62977cc5023f546 3 | size 264906 4 | -------------------------------------------------------------------------------- /test_images/tiff/ICC.tif: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:8c4d7fe948710606538312ce0a551205d2b40b91580430badfaa838056d5672c 3 | size 480914 4 | -------------------------------------------------------------------------------- /.paket/paket.bootstrapper.exe: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:783e91b3c0b7308fdb02b7eb2715dfcce6279329d1092ac644c7cc9499195b32 3 | size 69928 4 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/doc/configEditor.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/ArtomatixImageLoader/master/hooks/binfiles/NUnit-2.6.4/doc/configEditor.html -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/doc/configFiles.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/ArtomatixImageLoader/master/hooks/binfiles/NUnit-2.6.4/doc/configFiles.html -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/doc/img/bulletOff.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/ArtomatixImageLoader/master/hooks/binfiles/NUnit-2.6.4/doc/img/bulletOff.gif -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/doc/img/bulletOn.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/ArtomatixImageLoader/master/hooks/binfiles/NUnit-2.6.4/doc/img/bulletOn.gif -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/doc/quickStart.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/ArtomatixImageLoader/master/hooks/binfiles/NUnit-2.6.4/doc/quickStart.html -------------------------------------------------------------------------------- /test_images/exr/neal_half.exr: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:5478ca34b916b1172da6e8cfbaf322d1965f30f0ade9d21e477b25d010825c00 3 | size 121323 4 | -------------------------------------------------------------------------------- /test_images/hdr/test-env.hdr: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:55de173418b823058a12ced4568d520ec9c69410eed6cba2a775edb4bfd346e0 3 | size 1721120 4 | -------------------------------------------------------------------------------- /test_images/jpeg/test.jpeg: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:ad9636a8ad8cf640f74a01aa28d24b7852b4b2ff1611da6e7f444e73e44d3414 3 | size 3840000 4 | -------------------------------------------------------------------------------- /test_images/tga/4channel.tga: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:b17d7a587ad1e0528d134a4f9fa80c9a6b8e29e9d878e4705afd38b814613b65 3 | size 262188 4 | -------------------------------------------------------------------------------- /test_images/tga/indexed.tga: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:be98f1162637c4cd1415e6d740012f3378454bd59eb51112fb78bfd8fc53bc2a 3 | size 71176 4 | -------------------------------------------------------------------------------- /test_images/tiff/16_bit_int.tif: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:ef2c45bd52043fd21da694a5a773a01b8c518be2a46a130ed62d4ca8f274f26c 3 | size 23752 4 | -------------------------------------------------------------------------------- /test_images/tiff/8_bit_int.tif: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:b6eb84dead11c72339c48f0d6041e8f4fd52e760b3cc0e24d3cd465b87d164ff 3 | size 22444 4 | -------------------------------------------------------------------------------- /test_images/tiff/8_bit_png.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:3965110099a7e3e049aa03acc8e7e223a4b1de6180c98b01d1b841c538c42670 3 | size 20795 4 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/doc/img/langFilter.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/ArtomatixImageLoader/master/hooks/binfiles/NUnit-2.6.4/doc/img/langFilter.gif -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/doc/settingsDialog.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/ArtomatixImageLoader/master/hooks/binfiles/NUnit-2.6.4/doc/settingsDialog.html -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/doc/testProperties.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/ArtomatixImageLoader/master/hooks/binfiles/NUnit-2.6.4/doc/testProperties.html -------------------------------------------------------------------------------- /test_images/jpeg/greyscale.jpeg: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:fd9b2793ff7ebd514c7d5d280d2423567ec979df6df3f2e363d876aaa3988e5d 3 | size 222098 4 | -------------------------------------------------------------------------------- /test_images/jpeg/karl_comment.jpeg: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:05b9ba455a11f9250e07dfa32a7816a3f89d695b5a1b2d0244902a138a8d6d17 3 | size 40680 4 | -------------------------------------------------------------------------------- /test_images/tiff/16_bit_float.tif: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:dc659913b1234523c936035b70a9d182b6e1875493685d58238289a2c111a261 3 | size 21296 4 | -------------------------------------------------------------------------------- /test_images/tiff/24_bit_float.tif: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:4ea8784062bf63ab7a303db67d3a0f954373ec6075307b416862fe2f774800ec 3 | size 21496 4 | -------------------------------------------------------------------------------- /test_images/tiff/32_bit_float.tif: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:141b75e71dc757e02080bd70197d54a32368d06a019358a795130d4022908886 3 | size 21660 4 | -------------------------------------------------------------------------------- /test_images/tiff/jpeg_compressed.tif: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:eec268ccf2412955ed3f2a27dfb798833f65b56dee05c1b067326b8bf900df16 3 | size 25284 4 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/bin/lib/Images/pinned.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/ArtomatixImageLoader/master/hooks/binfiles/NUnit-2.6.4/bin/lib/Images/pinned.gif -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/bin/nunit.exe: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:a0e9727efab09213cefc6e9b9a56beadaacc312ba78aa886984ed394fca51a39 3 | size 6656 4 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/doc/files/QuickStart.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/ArtomatixImageLoader/master/hooks/binfiles/NUnit-2.6.4/doc/files/QuickStart.doc -------------------------------------------------------------------------------- /test_images/jpeg/ExifOrientation_1.jpg: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:3cfc7a2295d93d86dff22894ccac06aa1a8b7b627cf558e85913b3ee433bd126 3 | size 169561 4 | -------------------------------------------------------------------------------- /test_images/jpeg/ExifOrientation_2.jpg: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:ec5b65f9c8735a2c7f4321cc1c75d0b1bffcef719230a9ef48977ebc7fd843b6 3 | size 169561 4 | -------------------------------------------------------------------------------- /test_images/jpeg/ExifOrientation_3.jpg: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:71857ff8a6a9984ba63ad9dd666b14d83330b43f5557534ed643b0f6e0a08c9c 3 | size 169561 4 | -------------------------------------------------------------------------------- /test_images/jpeg/ExifOrientation_4.jpg: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:5ed52e70f2b213738c154d1dde54099073ca1184e1a927dd31b8340a76a283d3 3 | size 169561 4 | -------------------------------------------------------------------------------- /test_images/jpeg/ExifOrientation_5.jpg: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:bd40e5af11dcd20195e66b0a505dc86c8b71a2b43160cfe08fd08ad912980a24 3 | size 169561 4 | -------------------------------------------------------------------------------- /test_images/jpeg/ExifOrientation_6.jpg: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:73322f63d06f546dc66911b24ca827c25ea8815a4a62175fcc2c1a3e9fedf96b 3 | size 169561 4 | -------------------------------------------------------------------------------- /test_images/jpeg/ExifOrientation_7.jpg: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:373f987aa0bdd78ad96ce7b63a2014d34f5af857b272d8e50e6aaac4bdd4c60c 3 | size 169561 4 | -------------------------------------------------------------------------------- /test_images/jpeg/ExifOrientation_8.jpg: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:71a0f3b4c8c2edf44b574b2e3229e076eb74985fe8b44ebecec28ab2ea6953f7 3 | size 169561 4 | -------------------------------------------------------------------------------- /test_images/orientation/nonsquare_2.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:430b35781a87738e58da40e193c1d9885f82c2530fdf7cb18c867cd5e64975b4 3 | size 80788 4 | -------------------------------------------------------------------------------- /test_images/orientation/nonsquare_3.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:73946cce7d177822ab29ad422aec19edf418eb16d04c67a309318e04ffc2796e 3 | size 80771 4 | -------------------------------------------------------------------------------- /test_images/orientation/nonsquare_4.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:b7991515579cc08d097428d60c3b159335e54742408807697afbdf187004adea 3 | size 80822 4 | -------------------------------------------------------------------------------- /test_images/orientation/nonsquare_5.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:ac18dc15b86d2e4cf25645726a3f6148623c18f9fa71cf3ae58fda91e9209eee 3 | size 80617 4 | -------------------------------------------------------------------------------- /test_images/orientation/nonsquare_6.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:7ec7f665f23eb735a8d2d4a766668f732d467fc37a08ab3ad8028013affc5a4e 3 | size 80602 4 | -------------------------------------------------------------------------------- /test_images/orientation/nonsquare_7.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:aaebc79816b90ea048d96f877c11f4ea871e47267394a717a9eade265d2045c0 3 | size 80445 4 | -------------------------------------------------------------------------------- /test_images/orientation/nonsquare_8.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:b0dc4e893ddc57416c877df2508f9699378f3a0845ea7c8ae8926c373bae1b47 3 | size 80453 4 | -------------------------------------------------------------------------------- /test_images/orientation/square_2.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:28b4a41af3810612bb5cd41b9903b3ce1368e4675e4358c7aa665cbb5aeff4fe 3 | size 172755 4 | -------------------------------------------------------------------------------- /test_images/orientation/square_3.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:baf301f570997c96736b4aedf5737201abb185f5236ba89025435048cea8ffe5 3 | size 172776 4 | -------------------------------------------------------------------------------- /test_images/orientation/square_4.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:765b7ead4fc3be3231f5725961a9384913ce2511c90a3714c241cb4f5b3005f4 3 | size 172851 4 | -------------------------------------------------------------------------------- /test_images/orientation/square_5.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:0d01559ecd642338cc830d52a3d23f7609f1881b61f6c55a7628b04095aeda2c 3 | size 172800 4 | -------------------------------------------------------------------------------- /test_images/orientation/square_6.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:738722658b6258974d4f9f2c322be561e08fc2e2a25760bf8a7b8e55dc4966a6 3 | size 135589 4 | -------------------------------------------------------------------------------- /test_images/orientation/square_7.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:a7ab3752a0a50e284df7f6559c7a1fd1b181adb2fa216fd4a3416ac5361f0042 3 | size 172780 4 | -------------------------------------------------------------------------------- /test_images/orientation/square_8.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:4a9c0a3371ee030d25d42dfd4d32d4fe4b6e7253a793fedf204ad9733dba0d48 3 | size 172814 4 | -------------------------------------------------------------------------------- /test_images/orientation/square_base.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:5a7c0611f736afa9257970a6bfb74edce5d4d289236cc7ad9055789a285ef845 3 | size 185680 4 | -------------------------------------------------------------------------------- /test_images/png/indextest_indexed.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:bd22a008a15aa3b1d8b6911fbe93a0c11c35f25c32576a037c07f5589fe48650 3 | size 51692 4 | -------------------------------------------------------------------------------- /test_images/png/indextest_nonindexed.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:54df9fae4a627b86ea36a64e4cd1e12f281ea2320bfbddfe5971a9c7b73b6a84 3 | size 112086 4 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/bin/lib/Images/Ellipsis.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/ArtomatixImageLoader/master/hooks/binfiles/NUnit-2.6.4/bin/lib/Images/Ellipsis.gif -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/bin/lib/Images/unpinned.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/ArtomatixImageLoader/master/hooks/binfiles/NUnit-2.6.4/bin/lib/Images/unpinned.gif -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/bin/nunit-agent.exe: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:53b2380ff808c6dc96b72eb3bcfa77b594aabce4fecfbbf929e81a085ae43b67 3 | size 8192 4 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/bin/nunit-x86.exe: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:d9edcc3145c11bfb4b7f8777dc8d3790f57c5cc344b93a89b7b347e904632e34 3 | size 6656 4 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/bin/pnunit.tests.dll: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:00a7fe9256fae96b39aaa2a10b3aa199117b9fef78d85ca4491e1eafeabe35c6 3 | size 8192 4 | -------------------------------------------------------------------------------- /test_images/orientation/nonsquare_base.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:a3ddf44e32c71510c8eb5c2103b2ae35ba4ef888bc792b74a1dcdb37479b14eb 3 | size 80783 4 | -------------------------------------------------------------------------------- /test_images/tiff/16_bit_int_separate_chans.tif: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:30900368a36a6689ba457203899f1dae08a79310850d293284b4538b3e1aaaf3 3 | size 23016 4 | -------------------------------------------------------------------------------- /test_images/tiff/8_bit_int_separate_chans.tif: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:786a4d44d050a9b6e63552f260d3ffa51b82f71292917c56ec801db15382983f 3 | size 22452 4 | -------------------------------------------------------------------------------- /LocalNugetPackages/NativeCodeBuilder.0.3.2.nupkg: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:ce7c5a2884ae171c651ffd657b895bff9175646df78d14aca1c4f8f71324b8c0 3 | size 5522 4 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/bin/lib/Rhino.Mocks.dll: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:784c4e73410e60d8d62dc2ce701086e579cabaacc3d4a01c241e2c56c4861808 3 | size 315904 4 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/bin/lib/log4net.dll: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:e992bd921035e732d86debb148344223ea174d3acb29fa54e8147272b7165d56 3 | size 258048 4 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/bin/lib/nunit.core.dll: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:8b2bc1c3a689c5b5426bdb86ee1a3f63c904987763c266684e440ded74278f87 3 | size 155648 4 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/bin/lib/nunit.uikit.dll: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:5c961676107ef040837c6e105c47743e7530c0dbd79d6b1d7ef86bc166ae4998 3 | size 241664 4 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/bin/lib/nunit.util.dll: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:ad5766a121a15d6f794294a1f4ece178b6f941f0b023a26703f571085b52f444 3 | size 135168 4 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/bin/nunit-agent-x86.exe: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:f226e9817aab40c5ce5c32901a72fc82e0da5be9fc04d7fa03b460dc5d088ad8 3 | size 8192 4 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/bin/nunit-console-x86.exe: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:12be1eb6c067ff037ef460e4148fc91e7bb0bfca9410a6505f131808c1a4bf8f 3 | size 5120 4 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/bin/nunit-console.exe: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:f383acdbc38128c72fe811bc83767ceeb7fcae686971cdb4f6bca0fb7c58ea34 3 | size 5120 4 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/bin/nunit-editor.exe: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:0be710f9389bfdecb83fc366e43fa532d038a91dcfcaff8e07ecf1a0f26b78d8 3 | size 143360 4 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/bin/nunit.framework.dll: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:39a9d50b6fecd1dec6f12dbf26023a6544e0ba018cfdc01b5625db6ae1f2f1f9 3 | size 151552 4 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/bin/pnunit-agent.exe: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:3e508c141a9f2cb840411a7af60111191e718c026a6d8a18ed27b3f37fe8a067 3 | size 32768 4 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/bin/pnunit-launcher.exe: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:a9b9328bec599b496d79506fc6713c9cda8e306628f12500cf3309f6e6f85fec 3 | size 36864 4 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/bin/pnunit.framework.dll: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:c7952f4d1d1a321f297ace9e4c06a7d9eda0c147cd7db110e1b7f54ae3473343 3 | size 9728 4 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/doc/img/addinsDialog.jpg: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:d16209608b0b681d1adbafd18edc748fd543f5ed0ed8f74edf546a8bf99fe0fa 3 | size 28620 4 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/doc/img/configEditor.jpg: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:653101227ecae86ee63b3ce2048427cee90f2a93da1a65805240c4fdf9dd9a76 3 | size 19295 4 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/doc/img/generalTab.jpg: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:f97d04e2661c2db45fc8bf2366122ab3b853316878df86f82bfa6cbabc833ba3 3 | size 84058 4 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/doc/img/gui-verify.jpg: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:71868e5012323781c2d9ea9ab6062a763db8cd9b15857e946b17924fdc881664 3 | size 108447 4 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/doc/img/miniGui.jpg: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:97a617dfba122b0894a0f54d2014bf3e167928259ef147b3b848d0bf2920b140 3 | size 259241 4 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/doc/img/xmlView.jpg: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:bfbd16e77e62c52af168de341c53892b76d334ee5382e17e55e7870d8b72da8b 3 | size 184886 4 | -------------------------------------------------------------------------------- /test_images/tiff/16_bit_float_separate_chans.tif: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:35959178afce03e4696dfee74f5615adaf05c6b4338685471f5fe9d4412608b2 3 | size 20180 4 | -------------------------------------------------------------------------------- /test_images/tiff/24_bit_float_separate_chans.tif: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:dbeb2a293dd6afc1e212cb35eb13e90042e34491a5a3ad178bcceee02c8fb265 3 | size 20644 4 | -------------------------------------------------------------------------------- /test_images/tiff/32_bit_float_separate_chans.tif: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:afcf826a5232e74596c915c92ddcf746919729af99b946be2a34d3ea7b872991 3 | size 21048 4 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/bin/framework/nunit.mocks.dll: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:63b7b4ef46a3b0e6253777d9b6a73bc2591f7d4dcf0adb8c81b3274d7018230a 3 | size 11264 4 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/bin/lib/NSubstitute.dll: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:22f93334584164f7d712ae49e4106018d41e871ed514d69f97cdd0f543713995 3 | size 1021952 4 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/bin/lib/nunit-gui-runner.dll: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:b5e69ffd7c9e6669f2a2280904fab74d3ce6785717b0f0b0be5a97ade5f6a6bf 3 | size 155648 4 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/bin/lib/nunit.uiexception.dll: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:3424e0eef29719a3e0107bde070930cf5b4b991c6120da6b316822393e1a71fb 3 | size 90112 4 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/bin/tests/mock-assembly.dll: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:f146a6877de2b661e92e0758d7df00e153069642677c5f9258089e2ea73b1b25 3 | size 8704 4 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/bin/tests/nunit-gui.tests.dll: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:f9913518be8ce440c1ee779151e4a1ebca09caaa0d53fee228e9d10bfc2e5816 3 | size 8704 4 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/bin/tests/test-assembly.dll: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:164dd56c84bbc381b4219381a1ad5bb22250e16774f7d25ce4d905b226c3b0f7 3 | size 65536 4 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/bin/tests/test-utilities.dll: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:c0fdb73b73495dd455439a4a29777adf9bbc16d4bb6ba639b6cab7713a7e906d 3 | size 24576 4 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/doc/files/QuickStart.Spanish.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Unity-Technologies/ArtomatixImageLoader/master/hooks/binfiles/NUnit-2.6.4/doc/files/QuickStart.Spanish.doc -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/doc/img/advancedSettings.jpg: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:1314a49ea848eff6407cc9ae78b428e56af1b7f48e5dc0928be9123f3e941300 3 | size 75926 4 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/doc/img/assembliesTab.jpg: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:b7d0fa35742026c0ed3f582342f57dcb0600e483cdf196de572c9192d7781d56 3 | size 91240 4 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/doc/img/console-mock.jpg: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:8b773560be07b3d34552017cb6fda4a39a27fb0b729c2e03f332d5beca4c6d04 3 | size 113061 4 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/doc/img/generalSettings.jpg: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:3639501fb3f89649ad5dddbf5da0c9cfd24a0e416b2e4afcd726a22d1c910f8a 3 | size 67723 4 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/doc/img/gui-screenshot.jpg: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:3f3d17c033e4c15b745f1f6df7a96901d5cf9afc775499d27362c287aa512caa 3 | size 105707 4 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/doc/img/nunitTestAdapter.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:d36a9c741b88e96f7bbd8052215bcad5489dacf863fc160de7dc4e8c2309dce8 3 | size 84241 4 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/doc/img/testLoadSettings.jpg: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:debf4752275a93465eaf772e4457c6856a5e3d069c7e5bf4c555221b5322b067 3 | size 72846 4 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/doc/img/testProperties.jpg: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:00862bc658da5780b534d1aa4cd3ab90ff8c94a46999969c374d7d7c8e500dc6 3 | size 45753 4 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/bin/framework/nunit.framework.dll: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:39a9d50b6fecd1dec6f12dbf26023a6544e0ba018cfdc01b5625db6ae1f2f1f9 3 | size 151552 4 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/bin/framework/pnunit.framework.dll: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:c7952f4d1d1a321f297ace9e4c06a7d9eda0c147cd7db110e1b7f54ae3473343 3 | size 9728 4 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/bin/lib/nunit-console-runner.dll: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:fccd75c66442e8c570f3e9d4f640d05a2d56156c1d137f05d49e0ac9c261d7a7 3 | size 36864 4 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/bin/lib/nunit.core.interfaces.dll: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:b0197e07e85af0a255b6e3c321c5b11499afd9b144a6390b0ca9e7674d17365b 3 | size 61440 4 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/bin/tests/nonamespace-assembly.dll: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:210d18ce211ababa8ba421b9b09b179637c667f67d03c582dc23810b1a56df6b 3 | size 4608 4 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/bin/tests/nunit-console.tests.dll: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:14f10fe52f7af9e88dc26a546c959480bc85ab687399fd9eab993335dcb11600 3 | size 28672 4 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/bin/tests/nunit-editor.tests.dll: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:66063c2edfd6683b6518993d509bfc99366075c4205191557105af93d8d4afde 3 | size 57344 4 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/bin/tests/nunit.core.tests.dll: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:20d100746fbd04d22494c02dd7a0650608921786cabb2f7951badd20dbfe6e31 3 | size 217088 4 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/bin/tests/nunit.framework.dll: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:39a9d50b6fecd1dec6f12dbf26023a6544e0ba018cfdc01b5625db6ae1f2f1f9 3 | size 151552 4 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/bin/tests/nunit.mocks.tests.dll: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:fd80c58a2de0716ab015e27b6d41d85738035b8372f08c5e6f145fae230f874b 3 | size 24576 4 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/bin/tests/nunit.uikit.tests.dll: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:b64741942e3f0298ed768d229a8bd980569a9c6fdcf41ad887897cd282564e75 3 | size 36864 4 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/bin/tests/nunit.util.tests.dll: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:a006cf0f5a133b1850a7946704beffb379c7f186d1e91ef71d53e6b2bee16b4b 3 | size 192512 4 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/bin/tests/test-assembly-net45.dll: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:431b129dcef9cadc726b35ff7dad0e87531c701c50d65a6786af4518e721a23c 3 | size 43520 4 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/doc/img/assemblyReloadSettings.jpg: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:223c447a0edef9e16381723372a5dd2e76159d3b05c5dc976f74ae35d12ae3d8 3 | size 59456 4 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/doc/img/internalTraceSettings.jpg: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:8d9e82b5d2cecb32fa98502d11a1ea45216304b6dfd830624ada754bd3671636 3 | size 56796 4 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/doc/img/projectEditorSettings.jpg: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:31c567774583f7667efdc27790e25c959cbba2a63354a0ce208a5edcce6a6159 3 | size 56940 4 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/doc/img/testOutputSettings.jpg: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:40bdab26e077f0f591c667ae35c129ca2ab5185c6c71e40fb559efa1b317c697 3 | size 38632 4 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/doc/img/testResultSettings.jpg: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:b7d22a3f844895409dab40d1142601f61eacdf57075debf4daa0fc2caaef321a 3 | size 63100 4 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/doc/img/textOutputSettings.jpg: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:072ebdc058eac3fad8f8bc95b43e8c00183b68c6571954c1668f5aa9df4485f8 3 | size 68521 4 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/doc/img/treeDisplaySettings.jpg: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:0863d5181d2050df63181176404ea786831a3cef3de7cdf5af0f7b9f38855c62 3 | size 74542 4 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/doc/img/visualStudioSettings.jpg: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:2be3230d879e21d548048a7732144ac69fdcdf71dd9bcf8fdbe1e7b51faf84a6 3 | size 71303 4 | -------------------------------------------------------------------------------- /src_c/valgrind_suppressions.txt: -------------------------------------------------------------------------------- 1 | { 2 | ExrStaticInitialize 3 | 4 | Memcheck:Leak 5 | match-leak-kinds: reachable 6 | ... 7 | fun:_ZN3Imf16staticInitializeEv 8 | ... 9 | } 10 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/bin/lib/Images/Tree/Circles/Failure.jpg: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:b082aebe25fde8692a33ff0f1c32adb99c9020ee179fb0bbd958c1c466c0e343 3 | size 761 4 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/bin/lib/Images/Tree/Circles/Ignored.jpg: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:61557035cf73fb430b0cee921dd2e591be5b74787fcaf8300017ab347a2823b0 3 | size 688 4 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/bin/lib/Images/Tree/Circles/Skipped.jpg: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:bd7326e244e02ab1245241619a5a440826c6e40e91c5bbfd89419e080b9c3cfb 3 | size 689 4 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/bin/lib/Images/Tree/Circles/Success.jpg: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:62519efcb9bbde1dc11bc57fc1b52cfb473bce733e999c1231efcd88dc6ffa04 3 | size 731 4 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/bin/lib/Images/Tree/Classic/Failure.jpg: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:6a9ac7c8555f0f6f6bbb0d74c5b5a0224e47d020f96887e025535de8a75e2e8f 3 | size 808 4 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/bin/lib/Images/Tree/Classic/Ignored.jpg: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:82851a8899ff5e8cfc94a265153abf96f7d4bd7c390ec158ffbe2945d4b5b8ee 3 | size 789 4 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/bin/lib/Images/Tree/Classic/Skipped.jpg: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:bd7326e244e02ab1245241619a5a440826c6e40e91c5bbfd89419e080b9c3cfb 3 | size 689 4 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/bin/lib/Images/Tree/Classic/Success.jpg: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:ac9823f6a76d2a63cdbf813ac045995a1dd1a597060f2c3a8c4806b88d35ec90 3 | size 768 4 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/bin/lib/Images/Tree/Default/Failure.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:279ceed29b3e43e262a0c2fa8d33ceb25503a5598eb065d538c357cce5422286 3 | size 1445 4 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/bin/lib/Images/Tree/Default/Ignored.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:487df2b55dfdaaf3c92725271d1dc882dfeaca228575081a724cdf71d12f3161 3 | size 592 4 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/bin/lib/Images/Tree/Default/Skipped.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:7818e22d64bda2c0e9485c7572ef2267882259f4bdcadd51fe9c51a6b1bdc178 3 | size 1405 4 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/bin/lib/Images/Tree/Default/Success.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:66c5a5b16e333943fd68e9b586a22ad91bec32df5542b9622caeab398bcf4266 3 | size 1439 4 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/bin/tests/nunit.core.tests.net45.dll: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:50ffb22953d7415d888c064f0961af2c3260ce85c784d4ff5b4b0701d3bbd1e8 3 | size 17920 4 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/bin/tests/nunit.framework.tests.dll: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:4923e44d90756974e4a7897b8bc889ae17a05f0dfa3bb0705c28044a3958da66 3 | size 335872 4 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/bin/tests/nunit.uiexception.tests.dll: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:598b34d4b236b05604fe841688c4e80ad5daa9448eb7399b2d37bc7ff620e474 3 | size 122880 4 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/doc/img/runtimeSelectionSettings.jpg: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:70be6329fd9a27f447d862d889a1c9ef2b6c43572ad7a0eb67cb96669be34ff9 3 | size 56417 4 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/bin/lib/Images/Tree/Circles/Inconclusive.jpg: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:1b85327c6973bfb7e52a955f401679d7126a62d2e1421b5150cef89418f98b44 3 | size 734 4 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/bin/lib/Images/Tree/Classic/Inconclusive.jpg: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:4ff105e57e2233e11bec90154b78bbf39b903a08321f79c95fdbdebe0323369d 3 | size 784 4 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/bin/lib/Images/Tree/Default/Inconclusive.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:7f5b56b603e64abe6065d21048ea463cddc29144046e11c1401222d621c156f5 3 | size 1436 4 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/bin/lib/Images/Tree/Visual Studio/Failure.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:31f7eec83d5fae07864801d4406b2ce4971e5e2300e0598c40c4931a56b8c974 3 | size 747 4 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/bin/lib/Images/Tree/Visual Studio/Ignored.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:8341b709f8a6cd95fd52ef65d152c7ea88b00ba86e30eb9f190826e36d621c5a 3 | size 773 4 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/bin/lib/Images/Tree/Visual Studio/Skipped.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:7818e22d64bda2c0e9485c7572ef2267882259f4bdcadd51fe9c51a6b1bdc178 3 | size 1405 4 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/bin/lib/Images/Tree/Visual Studio/Success.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:5410f40cd37a5e5e06e11ee2ece001ae1f242aecb9a579fba6e37937a7cb26e4 3 | size 3386 4 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/bin/tests/nunit.framework.tests.net45.dll: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:855411d1a5013936ffa47c44d552fe77312b43762669efbdfc0ace38428c3ca7 3 | size 32256 4 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/bin/lib/Images/Tree/Visual Studio/Inconclusive.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:88800141cd6aafd11358874267afd35aa1dbbee10025e1ca506cf6509b2fab88 3 | size 782 4 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/bin/lib/Images/Tree/Visual Studio/SeriousWarning.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:146e0b75dcf4607faba48fe2afd68c06d086bda6baf18f8afb723492c6e0e794 3 | size 687 4 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.swp 2 | *.swo 3 | *.sql 4 | *.opendb 5 | *.pyc 6 | *.so 7 | *.zip 8 | packages 9 | .paket/paket.exe 10 | built_packages 11 | build/ 12 | CMakeLists.txt.user 13 | *.pyc 14 | *.autosave 15 | test_images/testOut 16 | -------------------------------------------------------------------------------- /paket.dependencies: -------------------------------------------------------------------------------- 1 | framework: net46 2 | 3 | source https://api.nuget.org/v3/index.json 4 | source ./built_packages 5 | source ./LocalNugetPackages 6 | 7 | 8 | nuget NativeCodeBuilder 0.3.2 framework: >= net45, content: once 9 | nuget NUnit == 2.6.4 10 | nuget Stugo.Interop == 0.2 11 | -------------------------------------------------------------------------------- /setup.py: -------------------------------------------------------------------------------- 1 | # just proxy to bindings/python/setup.py becasue pip is stupid and can't install from subdirs even though it says it can 2 | 3 | import sys 4 | import os 5 | 6 | setupPyDir = os.path.dirname(os.path.realpath(__file__)) + "/bindings/python" 7 | sys.path.insert(0, setupPyDir) 8 | 9 | from setup import * 10 | -------------------------------------------------------------------------------- /paket.lock: -------------------------------------------------------------------------------- 1 | RESTRICTION: == net46 2 | NUGET 3 | remote: https://api.nuget.org/v3/index.json 4 | NativeBinaryManager (0.1) - content: once 5 | ZipStorer (>= 2.38) 6 | NUnit (2.6.4) 7 | Stugo.Interop (0.2) 8 | ZipStorer (3.6) - content: once 9 | remote: ./LocalNugetPackages 10 | NativeCodeBuilder (0.3.2) - content: once 11 | NativeBinaryManager (0.1) 12 | -------------------------------------------------------------------------------- /src_c/IExifHandler.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #ifndef IEXIFHANDLER_HPP 3 | #define IEXIFHANDLER_HPP 4 | 5 | #include 6 | 7 | namespace AImg 8 | { 9 | class IExifHandler 10 | { 11 | public: 12 | 13 | virtual bool SupportsExif() const noexcept = 0; 14 | virtual uint16_t GetOrientationField(int16_t * error = nullptr) const noexcept = 0; 15 | }; 16 | } 17 | 18 | #endif -------------------------------------------------------------------------------- /src_c/cmake/Hunter/config.cmake: -------------------------------------------------------------------------------- 1 | hunter_config(OpenEXR VERSION "1.0.2" CMAKE_ARGS CMAKE_POSITION_INDEPENDENT_CODE=YES) 2 | hunter_config(ZLIB VERSION "1.2.8-p3" CMAKE_ARGS CMAKE_POSITION_INDEPENDENT_CODE=YES) 3 | hunter_config(PNG VERSION "1.6.16-p4" CMAKE_ARGS CMAKE_POSITION_INDEPENDENT_CODE=YES) 4 | hunter_config(Jpeg VERSION "9b-p1" CMAKE_ARGS CMAKE_POSITION_INDEPENDENT_CODE=YES) 5 | hunter_config(TIFF VERSION "4.0.2-p3" CMAKE_ARGS CMAKE_POSITION_INDEPENDENT_CODE=YES) 6 | -------------------------------------------------------------------------------- /bindings/csharp/ArtomatixImageLoader/ArtomatixImageLoader/native_code_setting.txt: -------------------------------------------------------------------------------- 1 | ### LEAVE THIS LINE HERE - edit the path on the next line to be the relative path from your project dir (not sln dir) to your native code folder (where CMakeLists.txt is). Edit the second line to be your cmake library name (the name you pass to add_library). Edit the second line to be any custom cmake params you need. Leave empty if you don't need any ### 2 | ../../../../src_c/ 3 | AIL 4 | -DPYTHON_ENABLED=Off -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | *.nupkg filter=lfs diff=lfs merge=lfs -text 2 | *.png filter=lfs diff=lfs merge=lfs -text 3 | *.tif filter=lfs diff=lfs merge=lfs -text 4 | *.tiff filter=lfs diff=lfs merge=lfs -text 5 | *.exr filter=lfs diff=lfs merge=lfs -text 6 | *.jpg filter=lfs diff=lfs merge=lfs -text 7 | *.jpeg filter=lfs diff=lfs merge=lfs -text 8 | *.tga filter=lfs diff=lfs merge=lfs -text 9 | *.bin filter=lfs diff=lfs merge=lfs -text 10 | *.exe filter=lfs diff=lfs merge=lfs -text 11 | *.dll filter=lfs diff=lfs merge=lfs -text 12 | *.hdr filter=lfs diff=lfs merge=lfs -text 13 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/bin/agent.log.conf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/bin/launcher.log.conf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | # Enable C++ support 2 | language: cpp 3 | sudo: required 4 | install: 5 | - sudo apt-get -y purge cmake 6 | - sudo apt-get install build-essential 7 | - wget http://www.cmake.org/files/v3.2/cmake-3.2.2.tar.gz 8 | - tar xf cmake-3.2.2.tar.gz 9 | - cd cmake-3.2.2 10 | - sudo apt-get install openssl libssl-dev 11 | - ./bootstrap --system-curl 12 | - make -j2 13 | - sudo make install 14 | 15 | 16 | 17 | # Compiler selection 18 | compiler: 19 | - clang 20 | # Build steps 21 | script: 22 | - cd ../src_c 23 | - mkdir build 24 | - cd build 25 | - cmake .. -DBUILD_SHARE_TYPE=SHARED && make -j2 && make aitest 26 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/bin/NUnitTests.nunit: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /bindings/python/AImg/EncodingOptions.py: -------------------------------------------------------------------------------- 1 | import ctypes 2 | import enums 3 | 4 | class PngEncodingOptions(ctypes.Structure): 5 | PNG_NO_FILTERS = 0x00 6 | PNG_FILTER_NONE = 0x08 7 | PNG_FILTER_SUB = 0x10 8 | PNG_FILTER_UP = 0x20 9 | PNG_FILTER_AVG = 0x40 10 | PNG_FILTER_PAETH = 0x80 11 | PNG_ALL_FILTERS = (PNG_FILTER_NONE | PNG_FILTER_SUB | PNG_FILTER_UP | PNG_FILTER_AVG | PNG_FILTER_PAETH) 12 | 13 | _fields_ = [ 14 | ('type', ctypes.c_int), 15 | ('compressionLevel', ctypes.c_int), 16 | ('filter', ctypes.c_int) 17 | ] 18 | 19 | def __init__(self, compressionLevel, filter): 20 | self.type = enums.AImgFileFormats['PNG_IMAGE_FORMAT'].val 21 | self.compressionLevel = compressionLevel 22 | self.filter = filter 23 | 24 | -------------------------------------------------------------------------------- /bindings/csharp/ArtomatixImageLoader/.vscode/tasks.json: -------------------------------------------------------------------------------- 1 | { 2 | // See https://go.microsoft.com/fwlink/?LinkId=733558 3 | // for the documentation about the tasks.json format 4 | "version": "2.0.0", 5 | "tasks": [ 6 | { 7 | "taskName": "build", 8 | "type": "process", 9 | "command": "xbuild", 10 | "args": [ 11 | // Ask msbuild to generate full paths for file names. 12 | "/property:GenerateFullPaths=true", 13 | "/t:build" 14 | ], 15 | "group": "build", 16 | "presentation": { 17 | // Reveal the output only if unrecognized errors occur. 18 | "reveal": "always" 19 | }, 20 | // Use the standard MS compiler pattern to detect errors, warnings and infos 21 | "problemMatcher": "$msCompile" 22 | } 23 | ] 24 | } -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/bin/nunit-x86.exe.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/bin/nunit.exe.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/bin/nunit-console.exe.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /license: -------------------------------------------------------------------------------- 1 | Copyright 2016-2019 Artomatix LTD 2 | 3 | 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: 4 | 5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 6 | 7 | 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. 8 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/bin/nunit-console-x86.exe.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /bindings/csharp/ArtomatixImageLoader/Package.nuspec: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | ArtomatixImageLoaders 5 | 000.037.000 6 | wheybags 7 | Artomatix Ltd 8 | https://opensource.org/licenses/MIT 9 | https://github.com/Artomatix/ArtomatixImageLoader/ 10 | false 11 | Package description 12 | Summary of changes made in this release of the package. 13 | Copyright 2016 14 | Tag1 Tag2 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /jenkins.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | TOP_DIR=$(pwd) 4 | NUNIT="$(pwd)/hooks/binfiles/NUnit-2.6.4/bin/nunit-console.exe" 5 | NUNIT_ARGS='-noshadow -exclude "JenkinsDisable" -xml=nunit-result.xml -nologo' 6 | 7 | function quitOnFailure 8 | { 9 | if [ ! $? -eq 0 ]; then exit 1 10 | fi 11 | } 12 | 13 | function doTests 14 | { 15 | mono $NUNIT $1 $NUNIT_ARGS; 16 | quitOnFailure; 17 | } 18 | 19 | cd ${TOP_DIR} 20 | git reset . 21 | git checkout . 22 | git clean -dxf 23 | 24 | bash .paket/get_paket.sh 25 | 26 | mono .paket/paket.exe restore 27 | 28 | cd src_c 29 | rm -rf build 30 | mkdir build 31 | cd build 32 | 33 | cmake .. && make -j4 && make aitest 34 | quitOnFailure 35 | 36 | cd ${TOP_DIR} 37 | 38 | cd bindings/csharp/ArtomatixImageLoader 39 | 40 | xbuild ArtomatixImageLoader.sln 41 | quitOnFailure 42 | doTests ArtomatixImageLoaderTests/bin/x64/Debug/ArtomatixImageLoaderTests.dll 43 | 44 | 45 | cd ${TOP_DIR} 46 | 47 | virtualenv env 48 | 49 | source ./env/bin/activate 50 | pip install -r ./bindings/python/requirements.txt 51 | python ./bindings/python/setup.py install 52 | python ./bindings/python/tests.py 53 | 54 | exit $? 55 | -------------------------------------------------------------------------------- /bindings/csharp/ArtomatixImageLoader/ArtomatixImageLoader/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | 4 | // Information about this assembly is defined by the following attributes. 5 | // Change them to the values specific to your project. 6 | 7 | [assembly: AssemblyTitle("ArtomatixImageLoader")] 8 | [assembly: AssemblyDescription("")] 9 | [assembly: AssemblyConfiguration("")] 10 | [assembly: AssemblyCompany("")] 11 | [assembly: AssemblyProduct("")] 12 | [assembly: AssemblyCopyright("Artomatix Limited")] 13 | [assembly: AssemblyTrademark("")] 14 | [assembly: AssemblyCulture("")] 15 | 16 | // The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}". 17 | // The form "{Major}.{Minor}.*" will automatically update the build and revision, 18 | // and "{Major}.{Minor}.{Build}.*" will update just the revision. 19 | 20 | [assembly: AssemblyVersion("1.0.*")] 21 | 22 | // The following attributes are used to specify the signing key for the assembly, 23 | // if desired. See the Mono documentation for more information about signing. 24 | 25 | //[assembly: AssemblyDelaySign(false)] 26 | //[assembly: AssemblyKeyFile("")] 27 | 28 | -------------------------------------------------------------------------------- /bindings/csharp/ArtomatixImageLoader/ArtomatixImageLoaderTests/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | 4 | // Information about this assembly is defined by the following attributes. 5 | // Change them to the values specific to your project. 6 | 7 | [assembly: AssemblyTitle("ArtomatixImageLoaderTests")] 8 | [assembly: AssemblyDescription("")] 9 | [assembly: AssemblyConfiguration("")] 10 | [assembly: AssemblyCompany("")] 11 | [assembly: AssemblyProduct("")] 12 | [assembly: AssemblyCopyright("wheybags")] 13 | [assembly: AssemblyTrademark("")] 14 | [assembly: AssemblyCulture("")] 15 | 16 | // The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}". 17 | // The form "{Major}.{Minor}.*" will automatically update the build and revision, 18 | // and "{Major}.{Minor}.{Build}.*" will update just the revision. 19 | 20 | [assembly: AssemblyVersion("1.0.*")] 21 | 22 | // The following attributes are used to specify the signing key for the assembly, 23 | // if desired. See the Mono documentation for more information about signing. 24 | 25 | //[assembly: AssemblyDelaySign(false)] 26 | //[assembly: AssemblyKeyFile("")] 27 | 28 | -------------------------------------------------------------------------------- /src_c/JpegExifHandler.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #ifndef JPEG_EXIF_HANDLER_HPP 4 | #define JPEG_EXIF_HANDLER_HPP 5 | 6 | #include "IExifHandler.hpp" 7 | #include "AIL_internal.h" 8 | #include 9 | 10 | namespace AImg 11 | { 12 | // See https://www.exif.org/Exif2-2.PDF page 13 13 | typedef struct 14 | { 15 | uint16_t Id; 16 | uint16_t Type; 17 | uint32_t Count; 18 | union 19 | { 20 | uint32_t Full; 21 | 22 | #pragma pack(push, r1, 2) 23 | struct 24 | { 25 | uint16_t Hi; 26 | uint16_t Lo; 27 | } Partial; 28 | #pragma pack( pop, r1 ) 29 | } Offset; 30 | } TiffTag_t; 31 | 32 | class JpegExifHandler : public virtual IExifHandler 33 | { 34 | private: 35 | 36 | j_decompress_ptr cinfo; 37 | 38 | jpeg_saved_marker_ptr GetEXIFSegment() const noexcept; 39 | static TiffTag_t SwapTiffTagBytes(TiffTag_t tag); 40 | 41 | public: 42 | 43 | virtual bool SupportsExif() const noexcept override; 44 | JpegExifHandler(j_decompress_ptr cinfo) : cinfo(cinfo) {} 45 | 46 | virtual uint16_t GetOrientationField(int16_t * error = nullptr) const noexcept override; 47 | }; 48 | } 49 | #endif -------------------------------------------------------------------------------- /src_c/cmake/FindNumPy.cmake: -------------------------------------------------------------------------------- 1 | # Find the Python NumPy package 2 | # PYTHON_NUMPY_INCLUDE_DIR 3 | # PYTHON_NUMPY_FOUND 4 | # will be set by this script 5 | # rewuires that you have already done Find_Package(PythonInterp) 6 | 7 | cmake_minimum_required(VERSION 2.6) 8 | 9 | if (PYTHON_EXECUTABLE) 10 | # Find out the include path 11 | execute_process( 12 | COMMAND "${PYTHON_EXECUTABLE}" -c 13 | "from __future__ import print_function\ntry: import numpy; print(numpy.get_include(), end='')\nexcept:pass\n" 14 | OUTPUT_VARIABLE __numpy_path) 15 | # And the version 16 | execute_process( 17 | COMMAND "${PYTHON_EXECUTABLE}" -c 18 | "from __future__ import print_function\ntry: import numpy; print(numpy.__version__, end='')\nexcept:pass\n" 19 | OUTPUT_VARIABLE __numpy_version) 20 | elseif() 21 | message(STATUS "Python executable not found.") 22 | endif(PYTHON_EXECUTABLE) 23 | 24 | find_path(PYTHON_NUMPY_INCLUDE_DIR numpy/arrayobject.h 25 | HINTS "${__numpy_path}" NO_DEFAULT_PATH) 26 | 27 | if(PYTHON_NUMPY_INCLUDE_DIR) 28 | set(PYTHON_NUMPY_FOUND 1 CACHE INTERNAL "Python numpy found") 29 | endif(PYTHON_NUMPY_INCLUDE_DIR) 30 | 31 | include(FindPackageHandleStandardArgs) 32 | find_package_handle_standard_args(NumPy REQUIRED_VARS PYTHON_NUMPY_INCLUDE_DIR 33 | VERSION_VAR __numpy_version) 34 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/bin/nunit-agent.exe.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 11 | 12 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /bindings/csharp/ArtomatixImageLoader/ArtomatixImageLoader/ImgEncodingOptions.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.InteropServices; 3 | 4 | namespace Artomatix.ImageLoader.ImgEncodingOptions 5 | { 6 | public interface IFormatEncodeOptions { } 7 | 8 | [StructLayout(LayoutKind.Sequential)] 9 | public struct PngEncodingOptions : IFormatEncodeOptions 10 | { 11 | private Int32 _type; 12 | private Int32 _compressionLevel; 13 | private Filter _filter; 14 | 15 | public Int32 type { get { return _type; } } 16 | public Int32 compressionLevel { get { return _compressionLevel; } } 17 | public Filter filter { get { return _filter; } } 18 | 19 | [Flags] 20 | public enum Filter : int 21 | { 22 | PNG_NO_FILTERS = 0x00, 23 | PNG_FILTER_NONE = 0x08, 24 | PNG_FILTER_SUB = 0x10, 25 | PNG_FILTER_UP = 0x20, 26 | PNG_FILTER_AVG = 0x40, 27 | PNG_FILTER_PAETH = 0x80, 28 | PNG_ALL_FILTERS = (PNG_FILTER_NONE | PNG_FILTER_SUB | PNG_FILTER_UP | PNG_FILTER_AVG | PNG_FILTER_PAETH) 29 | } 30 | 31 | public PngEncodingOptions(Int32 compressionLevel, Filter filter) 32 | { 33 | _compressionLevel = compressionLevel; 34 | _filter = filter; 35 | _type = (Int32)AImgFileFormat.PNG_IMAGE_FORMAT; 36 | } 37 | } 38 | } -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/bin/nunit-agent-x86.exe.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 11 | 12 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/doc/files/Summary.xslt: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | Tests run: 11 | 12 | , Failures: 13 | 14 | , Not run: 15 | 16 | , Time: 17 | 18 | seconds 19 | 20 | 21 | 22 | 23 | Failures: 24 | 25 | 26 | Tests not run: 27 | 28 | 29 | 30 | 31 | 32 | 33 | ) 34 | 35 | : 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | -------------------------------------------------------------------------------- /bindings/python/setup.py: -------------------------------------------------------------------------------- 1 | from distutils.core import setup, Extension 2 | from distutils.command.build_ext import build_ext 3 | import shutil 4 | import os 5 | 6 | thisFolder = os.path.dirname(os.path.realpath(__file__)) 7 | 8 | # The .so is actually compiled with cmake, but we have to put a sources arg in here anyway. 9 | # my_build_ext below hijacks the build command to build with cmake and then just copy the 10 | # prebuilt file instead of invoking a compiler itself 11 | ail_py_native = Extension('ail_py_native', sources=['nonexistant_file.c']) 12 | 13 | class my_build_ext(build_ext): 14 | 15 | def build_extension(self, ext): 16 | folder = os.path.dirname(self.get_ext_fullpath(ext.name)) 17 | 18 | if not os.path.exists(folder): 19 | os.makedirs(folder) 20 | 21 | so_path = self.build_native_with_cmake() 22 | shutil.copyfile(so_path, self.get_ext_fullpath(ext.name)) 23 | 24 | 25 | def build_native_with_cmake(self): 26 | 27 | buildFolder = thisFolder + "/../../src_c/build_python" 28 | 29 | if not os.path.exists(buildFolder): 30 | os.makedirs(buildFolder) 31 | 32 | if os.system('cd "%s" && cmake ../ -DTESTS_ENABLED=OFF -DBUILD_SHARE_TYPE=STATIC -DPYTHON_ENABLED=On && make' % buildFolder) != 0: 33 | raise Exception("Building native code failed!") 34 | 35 | return buildFolder + '/ail_py_native.so' 36 | 37 | 38 | setup( name='AImg', 39 | version='000.028.000', 40 | package_dir={'': thisFolder}, 41 | packages=['AImg'], 42 | cmdclass={'build_ext': my_build_ext }, 43 | ext_modules=[ail_py_native], 44 | install_requires=['numpy'] 45 | ) 46 | -------------------------------------------------------------------------------- /bindings/python/AImg/AImgExceptions.py: -------------------------------------------------------------------------------- 1 | import ail_py_native as native 2 | 3 | class AImgException(Exception): 4 | pass 5 | 6 | class AImgUnsupportedFiletypeException(AImgException): 7 | pass 8 | class AImgLoadFailedExternalException(AImgException): 9 | pass 10 | class AImgLoadFailedInternalException(AImgException): 11 | pass 12 | class AImgConversionFailedBadFormatException(AImgException): 13 | pass 14 | class AImgWriteFailedExternalException(AImgException): 15 | pass 16 | class AImgWriteFailedInternalException(AImgException): 17 | pass 18 | class AImgLoadFailedUnsupportedTiffException(AImgException): 19 | pass 20 | class AImgOpenFailedEmptyInputException(AImgException): 21 | pass 22 | class AImgInvalidEncodeArgsException(AImgException): 23 | pass 24 | 25 | def checkErrorCode(aImgCapsule, errCode): 26 | if errCode != 0: 27 | 28 | msg = "" 29 | 30 | if aImgCapsule != None: 31 | msg = native.getErrorDetails(aImgCapsule) 32 | 33 | if errCode == -1: 34 | raise AImgUnsupportedFiletypeException(msg) 35 | elif errCode == -2: 36 | raise AImgLoadFailedExternalException(msg) 37 | elif errCode == -3: 38 | raise AImgLoadFailedInternalException(msg) 39 | elif errCode == -4: 40 | raise AImgConversionFailedBadFormatException(msg) 41 | elif errCode == -5: 42 | raise AImgWriteFailedExternalException(msg) 43 | elif errCode == -6: 44 | raise AImgWriteFailedInternalException(msg) 45 | elif errCode == -7: 46 | raise AImgLoadFailedUnsupportedTiffException(msg) 47 | elif errCode == -8: 48 | raise AImgOpenFailedEmptyInputException(msg) 49 | elif errCode == -9: 50 | raise AImgInvalidEncodeArgsException(msg) 51 | else: 52 | raise AImgException("Unknown error occurred, code: " + str(errCode) + " " + msg) 53 | -------------------------------------------------------------------------------- /src_c/tga.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016-2019 Artomatix LTD 3 | * 4 | * Permission is hereby granted, free of charge, to any person obtaining a copy of this software 5 | * and associated documentation files (the "Software"), to deal in the Software without restriction, 6 | * including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, 7 | * and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, 8 | * subject to the following conditions: 9 | * 10 | * The above copyright notice and this permission notice shall be included in all copies or substantial 11 | * portions of the Software. 12 | * 13 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT 14 | * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 15 | * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 16 | * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 17 | * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 18 | */ 19 | 20 | #ifndef ARTOMATIX_TGA_H 21 | #define ARTOMATIX_TGA_H 22 | 23 | #include "ImageLoaderBase.h" 24 | 25 | namespace AImg 26 | { 27 | class TGAImageLoader : public ImageLoaderBase 28 | { 29 | public: 30 | 31 | virtual AImgBase * getAImg(); 32 | virtual int32_t initialise(); 33 | virtual bool canLoadImage(ReadCallback readCallback, TellCallback tellCallback, SeekCallback seekCallback, void* callbackData); 34 | virtual std::string getFileExtension(); 35 | virtual int32_t getAImgFileFormatValue(); 36 | 37 | virtual bool isFormatSupported(int32_t format); 38 | 39 | virtual AImgFormat getWhatFormatWillBeWrittenForData(int32_t inputFormat, int32_t outputFormat); 40 | }; 41 | } 42 | 43 | #endif //ARTOMATIX_TGA_H 44 | -------------------------------------------------------------------------------- /src_c/exr.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016-2019 Artomatix LTD 3 | * 4 | * Permission is hereby granted, free of charge, to any person obtaining a copy of this software 5 | * and associated documentation files (the "Software"), to deal in the Software without restriction, 6 | * including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, 7 | * and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, 8 | * subject to the following conditions: 9 | * 10 | * The above copyright notice and this permission notice shall be included in all copies or substantial 11 | * portions of the Software. 12 | * 13 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT 14 | * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 15 | * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 16 | * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 17 | * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 18 | */ 19 | 20 | #ifndef ARTOMATIX_EXR_H 21 | #define ARTOMATIX_EXR_H 22 | 23 | #include "ImageLoaderBase.h" 24 | 25 | namespace AImg 26 | { 27 | class ExrImageLoader : public ImageLoaderBase 28 | { 29 | public: 30 | 31 | virtual AImgBase* getAImg(); 32 | 33 | virtual int32_t initialise(); 34 | virtual bool canLoadImage(ReadCallback readCallback, TellCallback tellCallback, SeekCallback seekCallback, void* callbackData); 35 | virtual std::string getFileExtension(); 36 | virtual int32_t getAImgFileFormatValue(); 37 | 38 | virtual bool isFormatSupported(int32_t format); 39 | 40 | virtual AImgFormat getWhatFormatWillBeWrittenForData(int32_t inputFormat, int32_t outputFormat); 41 | }; 42 | } 43 | 44 | #endif //ARTOMATIX_EXR_H 45 | -------------------------------------------------------------------------------- /src_c/hdr.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016-2019 Artomatix LTD 3 | * 4 | * Permission is hereby granted, free of charge, to any person obtaining a copy of this software 5 | * and associated documentation files (the "Software"), to deal in the Software without restriction, 6 | * including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, 7 | * and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, 8 | * subject to the following conditions: 9 | * 10 | * The above copyright notice and this permission notice shall be included in all copies or substantial 11 | * portions of the Software. 12 | * 13 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT 14 | * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 15 | * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 16 | * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 17 | * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 18 | */ 19 | 20 | #ifndef ARTOMATIX_HDR_H 21 | #define ARTOMATIX_HDR_H 22 | 23 | #include "ImageLoaderBase.h" 24 | 25 | #include 26 | namespace AImg 27 | { 28 | class HDRImageLoader : public ImageLoaderBase 29 | { 30 | public: 31 | 32 | virtual AImgBase * getAImg(); 33 | virtual int32_t initialise(); 34 | 35 | virtual bool canLoadImage(ReadCallback readCallback, TellCallback tellCallback, SeekCallback seekCallback, void* callbackData); 36 | virtual std::string getFileExtension(); 37 | virtual int32_t getAImgFileFormatValue(); 38 | 39 | virtual bool isFormatSupported(int32_t format); 40 | 41 | virtual AImgFormat getWhatFormatWillBeWrittenForData(int32_t inputFormat, int32_t outputFormat); 42 | }; 43 | } 44 | 45 | #endif -------------------------------------------------------------------------------- /src_c/png.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016-2019 Artomatix LTD 3 | * 4 | * Permission is hereby granted, free of charge, to any person obtaining a copy of this software 5 | * and associated documentation files (the "Software"), to deal in the Software without restriction, 6 | * including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, 7 | * and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, 8 | * subject to the following conditions: 9 | * 10 | * The above copyright notice and this permission notice shall be included in all copies or substantial 11 | * portions of the Software. 12 | * 13 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT 14 | * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 15 | * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 16 | * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 17 | * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 18 | */ 19 | 20 | #ifndef ARTOMATIX_PNG_H 21 | #define ARTOMATIX_PNG_H 22 | 23 | #include "ImageLoaderBase.h" 24 | 25 | namespace AImg 26 | { 27 | class PNGImageLoader : public ImageLoaderBase 28 | { 29 | public: 30 | 31 | virtual AImgBase* getAImg(); 32 | 33 | virtual int32_t initialise(); 34 | virtual bool canLoadImage(ReadCallback readCallback, TellCallback tellCallback, SeekCallback seekCallback, void* callbackData); 35 | virtual std::string getFileExtension(); 36 | virtual int32_t getAImgFileFormatValue(); 37 | 38 | virtual bool isFormatSupported(int32_t format); 39 | 40 | virtual AImgFormat getWhatFormatWillBeWrittenForData(int32_t inputFormat, int32_t outputFormat); 41 | }; 42 | } 43 | 44 | #endif //ARTOMATIX_PNG_H 45 | -------------------------------------------------------------------------------- /src_c/jpeg.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016-2019 Artomatix LTD 3 | * 4 | * Permission is hereby granted, free of charge, to any person obtaining a copy of this software 5 | * and associated documentation files (the "Software"), to deal in the Software without restriction, 6 | * including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, 7 | * and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, 8 | * subject to the following conditions: 9 | * 10 | * The above copyright notice and this permission notice shall be included in all copies or substantial 11 | * portions of the Software. 12 | * 13 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT 14 | * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 15 | * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 16 | * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 17 | * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 18 | */ 19 | 20 | #ifndef ARTOMATIX_JPEG_H 21 | #define ARTOMATIX_JPEG_H 22 | 23 | #include "ImageLoaderBase.h" 24 | 25 | namespace AImg 26 | { 27 | class JPEGImageLoader : public ImageLoaderBase 28 | { 29 | public: 30 | 31 | virtual AImgBase* getAImg(); 32 | 33 | virtual int32_t initialise(); 34 | virtual bool canLoadImage(ReadCallback readCallback, TellCallback tellCallback, SeekCallback seekCallback, void* callbackData); 35 | virtual std::string getFileExtension(); 36 | virtual int32_t getAImgFileFormatValue(); 37 | 38 | virtual bool isFormatSupported(int32_t format); 39 | 40 | virtual AImgFormat getWhatFormatWillBeWrittenForData(int32_t inputFormat, int32_t outputFormat); 41 | }; 42 | } 43 | 44 | #endif //ARTOMATIX_JPEG_H 45 | -------------------------------------------------------------------------------- /src_c/tiff.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016-2019 Artomatix LTD 3 | * 4 | * Permission is hereby granted, free of charge, to any person obtaining a copy of this software 5 | * and associated documentation files (the "Software"), to deal in the Software without restriction, 6 | * including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, 7 | * and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, 8 | * subject to the following conditions: 9 | * 10 | * The above copyright notice and this permission notice shall be included in all copies or substantial 11 | * portions of the Software. 12 | * 13 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT 14 | * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 15 | * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 16 | * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 17 | * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 18 | */ 19 | 20 | #ifndef ARTOMATIX_TIFF_H 21 | #define ARTOMATIX_TIFF_H 22 | 23 | #include "ImageLoaderBase.h" 24 | 25 | namespace AImg 26 | { 27 | class TIFFImageLoader : public ImageLoaderBase 28 | { 29 | public: 30 | 31 | virtual AImgBase* getAImg(); 32 | 33 | virtual int32_t initialise(); 34 | virtual bool canLoadImage(ReadCallback readCallback, TellCallback tellCallback, SeekCallback seekCallback, void* callbackData); 35 | virtual std::string getFileExtension(); 36 | virtual int32_t getAImgFileFormatValue(); 37 | 38 | virtual bool isFormatSupported(int32_t format); 39 | 40 | virtual AImgFormat getWhatFormatWillBeWrittenForData(int32_t inputFormat, int32_t outputFormat); 41 | }; 42 | } 43 | 44 | #endif //ARTOMATIX_TIFF_H 45 | -------------------------------------------------------------------------------- /src_c/AIL_internal.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016-2019 Artomatix LTD 3 | * 4 | * Permission is hereby granted, free of charge, to any person obtaining a copy of this software 5 | * and associated documentation files (the "Software"), to deal in the Software without restriction, 6 | * including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, 7 | * and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, 8 | * subject to the following conditions: 9 | * 10 | * The above copyright notice and this permission notice shall be included in all copies or substantial 11 | * portions of the Software. 12 | * 13 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT 14 | * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 15 | * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 16 | * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 17 | * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 18 | */ 19 | 20 | #pragma once 21 | 22 | #ifndef ARTOMATIX_AIL_INTERNAL_H 23 | #define ARTOMATIX_AIL_INTERNAL_H 24 | 25 | #include "AIL.h" 26 | 27 | #include // Required for _byteswap_ushort 28 | #ifdef _MSC_VER 29 | #define SwapBytes16 _byteswap_ushort 30 | #define SwapBytes32 _byteswap_ulong 31 | #elif __GNUC__ || __clang__ 32 | #define SwapBytes16 __builtin_bswap16 33 | #define SwapBytes32 __builtin_bswap32 34 | #endif 35 | 36 | #define AIL_UNUSED_PARAM(name) (void)(name) 37 | bool IsMachineBigEndian(); 38 | 39 | typedef struct CallbackData 40 | { 41 | ReadCallback readCallback; 42 | TellCallback tellCallback; 43 | SeekCallback seekCallback; 44 | WriteCallback writeCallback; 45 | void * callbackData; 46 | } CallbackData; 47 | 48 | #endif // ARTOMATIX_AIL_INTERNAL_H 49 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/doc/codeFuncs.js: -------------------------------------------------------------------------------- 1 | window.onload = init; 2 | 3 | var langElements = new Array(); 4 | 5 | function init() { 6 | var els = document.getElementsByTagName( 'pre' ); 7 | var elsLen = els.length; 8 | var pattern = new RegExp('(^|\\s)(cs|vb|mc|js)(\\s|$)'); 9 | for (i = 0, j = 0; i < elsLen; i++) { 10 | if ( pattern.test(els[i].className) ) { 11 | //els[i].style.background = "#fcc"; 12 | langElements[j] = els[i]; 13 | j++; 14 | } 15 | } 16 | 17 | var lang = getCookie( "lang" ); 18 | if ( lang == null ) lang = "cs"; 19 | showLang(lang); 20 | } 21 | 22 | function getCookie(name) { 23 | var cname = name + "="; 24 | var dc = document.cookie; 25 | if ( dc.length > 0 ) { 26 | begin = dc.indexOf(cname); 27 | if ( begin != -1 ) { 28 | begin += cname.length; 29 | end = dc.indexOf(";",begin); 30 | if (end == -1) end = dc.length; 31 | return unescape(dc.substring(begin, end) ); 32 | } 33 | } 34 | } 35 | 36 | function setCookie(name,value,expires) { 37 | document.cookie = name + "=" + escape(value) + "; path=/" + 38 | ((expires == null) ? "" : "; expires=" + expires.toGMTString()); 39 | } 40 | 41 | function showLang(lang) { 42 | var pattern = new RegExp('(^|\\s)'+lang+'(\\s|$)'); 43 | var elsLen = langElements.length; 44 | for (i = 0; i < elsLen; i++ ) 45 | { 46 | var el = langElements[i]; 47 | if ( pattern.test( el.className ) ) 48 | el.style.display = ""; 49 | else 50 | el.style.display = "none"; 51 | } 52 | setCookie("lang",lang); 53 | } 54 | 55 | function Show( id ) { 56 | document.getElementById(id).style.display = ""; 57 | } 58 | 59 | function Hide( id ) { 60 | document.getElementById(id).style.display = "none"; 61 | } 62 | 63 | function ShowCS() { 64 | showLang('cs'); 65 | } 66 | 67 | function ShowVB() { 68 | showLang('vb'); 69 | } 70 | 71 | function ShowMC() { 72 | showLang('mc'); 73 | } 74 | 75 | function ShowJS() { 76 | showLang('js'); 77 | } 78 | -------------------------------------------------------------------------------- /src_c/tests/testCommon.h: -------------------------------------------------------------------------------- 1 | #ifndef AIL_TEST 2 | #define AIL_TEST 3 | 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include "../AIL_internal.h" 9 | inline std::string getImagesDir() 10 | { 11 | std::string thisFile = __FILE__; 12 | 13 | char dirSep = '/'; 14 | #ifdef WIN32 15 | dirSep = '\\'; 16 | #endif 17 | size_t pos = thisFile.find_last_of(dirSep); 18 | size_t filenameLength = thisFile.length() - pos; 19 | 20 | std::string thisFolder = thisFile.substr(0, thisFile.size() - filenameLength); 21 | 22 | return thisFolder + "/../../test_images"; 23 | } 24 | 25 | template 26 | std::vector readFile(const std::string& path) 27 | { 28 | FILE* f = fopen(path.c_str(), "rb"); 29 | if (f == NULL) 30 | { 31 | throw std::runtime_error("Could not open file: " + path); 32 | } 33 | fseek(f, 0, SEEK_END); 34 | size_t size = ftell(f); 35 | fseek(f, 0, SEEK_SET); 36 | 37 | std::vector retval(size / sizeof(T)); 38 | fread(&retval[0], 1, size, f); 39 | 40 | fclose(f); 41 | 42 | return retval; 43 | } 44 | 45 | AImgHandle GetJpegImageForReading(const std::vector& path, CallbackData* callbacks, int16_t * error); 46 | 47 | bool detectImage(const std::string& path, int32_t format); 48 | bool validateImageHeaders(const std::string & path, int32_t expectedWidth, int32_t expectedHeight, int32_t expectedNumChannels, int32_t expectedBytesPerChannel, int32_t expectedFloatOrInt, int32_t expectedFormat); 49 | bool compareForceImageFormat(const std::string& path); 50 | 51 | void writeToFile(const std::string& path, int32_t width, int32_t height, void* data, int32_t inputFormat, int32_t outputFormat, int32_t fileFormat, 52 | const char *profileName, uint8_t *colourProfile, uint32_t colourProfileLen); 53 | 54 | void readWriteIcc(const std::string & path, const std::string & outPath, char *profileName, uint8_t **colourProfile, uint32_t *colourProfileLen); 55 | bool compareIccProfiles(const std::string & image1, const std::string & image2); 56 | 57 | #endif 58 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/bin/NUnitTests.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 20 | 21 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /src_c/cmake/FindOpenEXR.cmake: -------------------------------------------------------------------------------- 1 | SET(LIBRARY_PATHS 2 | HINTS 3 | ${CMAKE_INSTALL_PREFIX} 4 | PATH_SUFFIXES lib64 lib 5 | PATHS 6 | ${OPENEXR_ROOT} 7 | /usr/ 8 | /usr/local/ 9 | /opt/local/ 10 | ) 11 | 12 | FIND_PATH(OPENEXR_INCLUDE_DIR half.h 13 | HINTS 14 | ${CMAKE_INSTALL_PREFIX} 15 | PATH_SUFFIXES /OpenEXR 16 | PATHS 17 | ${OPENEXR_ROOT}/include 18 | /usr/include 19 | /usr/local/include 20 | /opt/local/include 21 | ) 22 | 23 | FIND_LIBRARY(OPENEXR_HALF_LIBRARY NAMES Half PATHS ${LIBRARY_PATHS}) 24 | FIND_LIBRARY(OPENEXR_IEX_LIBRARY NAMES Iex PATHS ${LIBRARY_PATHS}) 25 | FIND_LIBRARY(OPENEXR_IMATH_LIBRARY NAMES Imath PATHS ${LIBRARY_PATHS}) 26 | FIND_LIBRARY(OPENEXR_ILMIMF_LIBRARY NAMES IlmImf PATHS ${LIBRARY_PATHS}) 27 | FIND_LIBRARY(OPENEXR_ILMTHREAD_LIBRARY NAMES IlmThread PATHS ${LIBRARY_PATHS}) 28 | 29 | FIND_LIBRARY(OPENEXR_HALF_LIBRARYD NAMES Halfd PATHS ${LIBRARY_PATHS}) 30 | FIND_LIBRARY(OPENEXR_IEX_LIBRARYD NAMES Iexd PATHS ${LIBRARY_PATHS}) 31 | FIND_LIBRARY(OPENEXR_IMATH_LIBRARYD NAMES Imathd PATHS ${LIBRARY_PATHS}) 32 | FIND_LIBRARY(OPENEXR_ILMIMF_LIBRARYD NAMES IlmImfd PATHS ${LIBRARY_PATHS}) 33 | FIND_LIBRARY(OPENEXR_ILMTHREAD_LIBRARYD NAMES IlmThreadd PATHS ${LIBRARY_PATHS}) 34 | 35 | SET(OPENEXR_INCLUDE_DIRS ${OPENEXR_INCLUDE_DIR}) 36 | SET(OPENEXR_LIBRARIESO optimized ${OPENEXR_IMATH_LIBRARY} optimized ${OPENEXR_ILMIMF_LIBRARY} optimized ${OPENEXR_ILMTHREAD_LIBRARY} optimized ${OPENEXR_HALF_LIBRARY} optimized ${OPENEXR_IEX_LIBRARY}) 37 | SET(OPENEXR_LIBRARIESD debug ${OPENEXR_IMATH_LIBRARYD} debug ${OPENEXR_ILMIMF_LIBRARYD} debug ${OPENEXR_ILMTHREAD_LIBRARYD} debug ${OPENEXR_HALF_LIBRARYD} debug ${OPENEXR_IEX_LIBRARYD}) 38 | 39 | hunter_add_package(ZLIB) 40 | find_package(ZLIB) 41 | SET(OPENEXR_LIBRARIES ${OPENEXR_LIBRARIESO} ${OPENEXR_LIBRARIESD} ${ZLIB_LIBRARIES}) 42 | 43 | if(NOT WIN32) 44 | set(OPENEXR_LIBRARIES ${OPENEXR_LIBRARIES} pthread) 45 | endif() 46 | 47 | INCLUDE(FindPackageHandleStandardArgs) 48 | FIND_PACKAGE_HANDLE_STANDARD_ARGS(OPENEXR DEFAULT_MSG OPENEXR_INCLUDE_DIR OPENEXR_HALF_LIBRARY OPENEXR_IEX_LIBRARY OPENEXR_IMATH_LIBRARY OPENEXR_ILMTHREAD_LIBRARY) 49 | -------------------------------------------------------------------------------- /bindings/csharp/ArtomatixImageLoader/ArtomatixImageLoader/MemoryTrackerProxy.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Diagnostics; 4 | using System.Linq; 5 | using System.Text; 6 | using System.Threading.Tasks; 7 | 8 | namespace Artomatix.ImageLoader.MemoryManagement 9 | { 10 | public delegate void OnAllocatedCallback(IntPtr memory, ulong size, string description); 11 | public delegate void OnDeallocatedCallback(IntPtr memory); 12 | 13 | /// 14 | /// Tracking proxy class for use by the C#/C++ interop layer to send notifications 15 | /// about unmanaged memory allocation and deallocation. 16 | /// 17 | public static class Tracker 18 | { 19 | /// 20 | /// Allocation callback that can be used by a memory tracking component 21 | /// to listen for allocation events. 22 | /// 23 | public static OnAllocatedCallback AllocHandler { get; set; } 24 | 25 | /// 26 | /// Deallocation callback that can be used by a memory tracking component 27 | /// to listen for deallocation events. 28 | /// 29 | public static OnDeallocatedCallback DeAllocHandler { get; set; } 30 | 31 | /// 32 | /// Called by interop code to notify any listeners that memory has been allocated. 33 | /// 34 | /// Pointer to the allocated memory. 35 | /// Size of the allocated memory. 36 | /// 37 | /// Description of what the memory contains, to help with debugging. 38 | /// 39 | public static void TrackAlloc(IntPtr memory, ulong size, string description) 40 | { 41 | AllocHandler?.Invoke(memory, size, description); 42 | } 43 | 44 | /// 45 | /// Called by interop code to notify any listeners that memory has been deallocated. 46 | /// 47 | /// Pointer to the allocated memory. 48 | public static void TrackFree(IntPtr memory) 49 | { 50 | DeAllocHandler?.Invoke(memory); 51 | } 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /bindings/csharp/ArtomatixImageLoader/ArtomatixImageLoader.sln: -------------------------------------------------------------------------------- 1 | 2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 14 4 | VisualStudioVersion = 14.0.25420.1 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ArtomatixImageLoaderTests", "ArtomatixImageLoaderTests\ArtomatixImageLoaderTests.csproj", "{8F130887-AE15-441A-81F4-5A9F39968F1F}" 7 | EndProject 8 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Artomatix.ImageLoader", "ArtomatixImageLoader\Artomatix.ImageLoader.csproj", "{C0BB2915-8150-4817-9351-2B7F83D96F2A}" 9 | EndProject 10 | Global 11 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 12 | Debug|x64 = Debug|x64 13 | Debug|x86 = Debug|x86 14 | Release|x64 = Release|x64 15 | Release|x86 = Release|x86 16 | EndGlobalSection 17 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 18 | {8F130887-AE15-441A-81F4-5A9F39968F1F}.Debug|x64.ActiveCfg = Debug|x64 19 | {8F130887-AE15-441A-81F4-5A9F39968F1F}.Debug|x64.Build.0 = Debug|x64 20 | {8F130887-AE15-441A-81F4-5A9F39968F1F}.Debug|x86.ActiveCfg = Debug|x86 21 | {8F130887-AE15-441A-81F4-5A9F39968F1F}.Debug|x86.Build.0 = Debug|x86 22 | {8F130887-AE15-441A-81F4-5A9F39968F1F}.Release|x64.ActiveCfg = Release|x64 23 | {8F130887-AE15-441A-81F4-5A9F39968F1F}.Release|x64.Build.0 = Release|x64 24 | {8F130887-AE15-441A-81F4-5A9F39968F1F}.Release|x86.ActiveCfg = Release|x86 25 | {8F130887-AE15-441A-81F4-5A9F39968F1F}.Release|x86.Build.0 = Release|x86 26 | {C0BB2915-8150-4817-9351-2B7F83D96F2A}.Debug|x64.ActiveCfg = Debug|x64 27 | {C0BB2915-8150-4817-9351-2B7F83D96F2A}.Debug|x64.Build.0 = Debug|x64 28 | {C0BB2915-8150-4817-9351-2B7F83D96F2A}.Debug|x86.ActiveCfg = Debug|x86 29 | {C0BB2915-8150-4817-9351-2B7F83D96F2A}.Debug|x86.Build.0 = Debug|x86 30 | {C0BB2915-8150-4817-9351-2B7F83D96F2A}.Release|x64.ActiveCfg = Release|x64 31 | {C0BB2915-8150-4817-9351-2B7F83D96F2A}.Release|x64.Build.0 = Release|x64 32 | {C0BB2915-8150-4817-9351-2B7F83D96F2A}.Release|x86.ActiveCfg = Release|x86 33 | {C0BB2915-8150-4817-9351-2B7F83D96F2A}.Release|x86.Build.0 = Release|x86 34 | EndGlobalSection 35 | GlobalSection(SolutionProperties) = preSolution 36 | HideSolutionNode = FALSE 37 | EndGlobalSection 38 | EndGlobal 39 | -------------------------------------------------------------------------------- /bindings/csharp/ArtomatixImageLoader/ArtomatixImageLoader/ImgLoader.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.IO; 3 | using System.Runtime.InteropServices; 4 | 5 | namespace Artomatix.ImageLoader 6 | { 7 | internal class ImgLoader 8 | { 9 | internal delegate int ReadCallback(IntPtr callbackData, IntPtr dest, int count); 10 | 11 | internal delegate void WriteCallback(IntPtr callbackData, IntPtr src, Int32 count); 12 | 13 | internal delegate int TellCallback(IntPtr callbackData); 14 | 15 | internal delegate void SeekCallback(IntPtr callbackData, int pos); 16 | 17 | // native code functions 18 | 19 | public static string AImgGetLastErrorDetails(IntPtr img) 20 | { 21 | IntPtr cstr = NativeFuncs.inst._AImgGetErrorDetails(img); 22 | return Marshal.PtrToStringAnsi(cstr); 23 | } 24 | 25 | public static ReadCallback GetReadCallback(Stream s) 26 | { 27 | return (_, dest, count) => 28 | { 29 | int bytesRead; 30 | unsafe 31 | { 32 | byte* destPtr = (byte*)dest.ToPointer(); 33 | UnmanagedMemoryStream writeStream = new UnmanagedMemoryStream(destPtr, 0, count, FileAccess.Write); 34 | 35 | byte[] readData = new byte[count]; 36 | bytesRead = s.Read(readData, 0, count); 37 | writeStream.Write(readData, 0, count); 38 | 39 | writeStream.Close(); 40 | } 41 | 42 | return bytesRead; 43 | }; 44 | } 45 | 46 | public static WriteCallback GetWriteCallback(Stream s) 47 | { 48 | return (_, src, count) => 49 | { 50 | unsafe 51 | { 52 | byte* srcPtr = (byte*)src.ToPointer(); 53 | UnmanagedMemoryStream readStream = new UnmanagedMemoryStream(srcPtr, count); 54 | 55 | byte[] data = new byte[count]; 56 | readStream.Read(data, 0, count); 57 | 58 | s.Write(data, 0, count); 59 | 60 | readStream.Close(); 61 | } 62 | }; 63 | } 64 | 65 | public static TellCallback GetTellCallback(Stream s) 66 | { 67 | return (_) => 68 | { 69 | return (int)s.Position; 70 | }; 71 | } 72 | 73 | public static SeekCallback GetSeekCallback(Stream s) 74 | { 75 | return (_, pos) => 76 | { 77 | s.Position = pos; 78 | }; 79 | } 80 | } 81 | } -------------------------------------------------------------------------------- /src_c/tests/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | set(AIMG_TESTS_ENABLED ON CACHE BOOL "enable tests") 2 | 3 | if(AIMG_TESTS_ENABLED) 4 | # Setup gtest 5 | 6 | set(GTEST_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/gtest") 7 | set(LIBPREFIX "${CMAKE_STATIC_LIBRARY_PREFIX}") 8 | set(LIBSUFFIX "${CMAKE_STATIC_LIBRARY_SUFFIX}") 9 | set(GTEST_LOCATION "${GTEST_PREFIX}/src/gtest-build") 10 | set(GTEST_INCLUDES "${GTEST_PREFIX}/src/gtest/include") 11 | set(GTEST_LIBRARY "${GTEST_LOCATION}/${LIBPREFIX}gtest${LIBSUFFIX}") 12 | set(GTEST_MAINLIB "${GTEST_LOCATION}/${LIBPREFIX}gtest_main${LIBSUFFIX}") 13 | set(GTEST_CMAKE_ARGS "") 14 | 15 | if(WIN32) 16 | set(GTEST_LIBRARY "optimized;${GTEST_LOCATION}/Release/${LIBPREFIX}gtest${LIBSUFFIX};debug;${GTEST_LOCATION}/Debug/${LIBPREFIX}gtest${LIBSUFFIX}") 17 | set(GTEST_MAINLIB "optimized;${GTEST_LOCATION}/Release/${LIBPREFIX}gtest_main${LIBSUFFIX};debug;${GTEST_LOCATION}/Debug/${LIBPREFIX}gtest_main${LIBSUFFIX}") 18 | set(GTEST_CMAKE_ARGS "-Dgtest_force_shared_crt=ON") 19 | endif() 20 | 21 | hunter_add_package(GTest) 22 | find_package(GTest CONFIG REQUIRED) 23 | 24 | 25 | find_package(Threads) 26 | 27 | set(all_tests) 28 | 29 | function(ail_add_test test_name link_libs in_aitest) 30 | add_executable("test_${test_name}" "${test_name}.cpp" "testCommon.cpp" "testCommon.h") 31 | 32 | add_dependencies("test_${test_name}" gtest) 33 | target_include_directories("test_${test_name}" PRIVATE GTest::main) 34 | target_compile_definitions("test_${test_name}" PRIVATE TEST_DIR="${CMAKE_CURRENT_SOURCE_DIR}") 35 | target_link_libraries("test_${test_name}" GTest::main ${link_libs} ${CMAKE_THREAD_LIBS_INIT}) 36 | 37 | set_target_properties("test_${test_name}" PROPERTIES COMPILE_FLAGS "${AIL_COMPILE_FLAGS}") 38 | 39 | if(in_aitest) 40 | list(APPEND all_tests COMMAND "test_${test_name}") 41 | set(all_tests "${all_tests}" PARENT_SCOPE) 42 | endif() 43 | endfunction(ail_add_test) 44 | 45 | # actual tests go here 46 | if(EXR_ENABLED) 47 | ail_add_test(exr AIL Yes) 48 | endif() 49 | 50 | if(PNG_ENABLED) 51 | ail_add_test(png "AIL;PNG::png" Yes) 52 | endif() 53 | 54 | if(JPEG_ENABLED) 55 | ail_add_test(jpeg "AIL;JPEG::jpeg" Yes) 56 | endif() 57 | 58 | if(TGA_ENABLED) 59 | ail_add_test(tga "AIL" Yes) 60 | endif() 61 | 62 | if(TIFF_ENABLED) 63 | ail_add_test(tiff "AIL" Yes) 64 | endif() 65 | 66 | if(HDR_ENABLED) 67 | ail_add_test(hdr "AIL" Yes) 68 | endif() 69 | 70 | add_custom_target(aitest ${all_tests}) 71 | set_target_properties(aitest PROPERTIES EXCLUDE_FROM_ALL 1 EXCLUDE_FROM_DEFAULT_BUILD 1) 72 | endif() 73 | -------------------------------------------------------------------------------- /src_c/tests/hdr.cpp: -------------------------------------------------------------------------------- 1 | #include "testCommon.h" 2 | #include 3 | #include "../AIL.h" 4 | #define STBI_ONLY_HDR 5 | #define STB_IMAGE_IMPLEMENTATION 6 | #include "../extern/stb_image.h" 7 | 8 | std::vector decodeHDRFile(const std::string & path) 9 | { 10 | int width, height, comp; 11 | FILE * file = fopen(path.c_str(), "rb"); 12 | 13 | stbi_hdr_to_ldr_gamma(1.0f); 14 | stbi_ldr_to_hdr_gamma(1.0f); 15 | 16 | uint8_t * loadedData = stbi_load_from_file(file, &width, &height, &comp, 0); 17 | std::vector data(width * height * comp); 18 | 19 | memcpy(&data[0], loadedData, width*height*comp); 20 | stbi_image_free(loadedData); 21 | fclose(file); 22 | 23 | return data; 24 | } 25 | 26 | TEST(HDR, TestDetectHDR) 27 | { 28 | ASSERT_TRUE(detectImage("/hdr/test-env.hdr", HDR_IMAGE_FORMAT)); 29 | } 30 | 31 | TEST(HDR, TestDetectBadHDR) 32 | { 33 | ASSERT_FALSE(detectImage("/jpeg/test.jpeg", HDR_IMAGE_FORMAT)); 34 | } 35 | 36 | TEST(HDR, TestReadHDRFile) 37 | { 38 | auto data = readFile(getImagesDir() + "/hdr/test-env.hdr"); 39 | 40 | ReadCallback readCallback = NULL; 41 | WriteCallback writeCallback = NULL; 42 | TellCallback tellCallback = NULL; 43 | SeekCallback seekCallback = NULL; 44 | void* callbackData = NULL; 45 | 46 | AIGetSimpleMemoryBufferCallbacks(&readCallback, &writeCallback, &tellCallback, &seekCallback, &callbackData, &data[0], (int32_t)data.size()); 47 | 48 | AImgHandle img = NULL; 49 | AImgOpen(readCallback, tellCallback, seekCallback, callbackData, &img, NULL); 50 | 51 | int32_t width; 52 | int32_t height; 53 | int32_t numChannels; 54 | int32_t bytesPerChannel; 55 | int32_t floatOrInt; 56 | int32_t imgFmt; 57 | 58 | AImgGetInfo(img, &width, &height, &numChannels, &bytesPerChannel, &floatOrInt, &imgFmt, NULL); 59 | 60 | std::vector imgData(width*height*numChannels*bytesPerChannel, 78); 61 | 62 | int32_t error = AImgDecodeImage(img, &imgData[0], AImgFormat::INVALID_FORMAT); 63 | 64 | if (error != AImgErrorCode::AIMG_SUCCESS) 65 | { 66 | std::cout << AImgGetErrorDetails(img) << std::endl; 67 | } 68 | 69 | auto knownData = decodeHDRFile(getImagesDir() + "/hdr/test-env.hdr"); 70 | 71 | auto ptr = knownData.data(); 72 | for (int32_t y = 0; y < height; y++) 73 | { 74 | for (int32_t x = 0; x < width; x++) 75 | { 76 | if (knownData[x + width*y] != imgData[(x + width*y)]) 77 | { 78 | break; 79 | } 80 | ASSERT_EQ(knownData[x + width*y], imgData[(x + width*y)]); 81 | } 82 | } 83 | 84 | AIDestroySimpleMemoryBufferCallbacks(readCallback, writeCallback, tellCallback, seekCallback, callbackData); 85 | AImgClose(img); 86 | } 87 | 88 | int main(int argc, char * argv[]) 89 | { 90 | AImgInitialise(); 91 | 92 | ::testing::InitGoogleTest(&argc, argv); 93 | int retval = RUN_ALL_TESTS(); 94 | 95 | AImgCleanUp(); 96 | 97 | return retval; 98 | } -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/bin/test.conf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | Testing 12 | 13 | 14 | Testing 15 | pnunit.tests.dll 16 | TestLibraries.Testing.EqualTo19 17 | $agent_host:8080 18 | 19 | 20 | 21 | 22 | 23 | 24 | Parallel_Tests 25 | 26 | 27 | ParallelTest_A_Test 28 | pnunit.tests.dll 29 | TestLibraries.ParallelExample.ParallelTest_A 30 | $agent_host:8080 31 | 32 | 33 | 2 34 | 35 | 36 | 37 | ParallelTest_B_Test 38 | pnunit.tests.dll 39 | TestLibraries.ParallelExample.ParallelTest_B 40 | $agent_host:8080 41 | 42 | 1 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | Parallel_Barriers 52 | 53 | 54 | Parallel_Barriers_TestA 55 | pnunit.tests.dll 56 | TestLibraries.ParallelExampleWithBarriers.ParallelTestWithBarriersA 57 | $agent_host:8080 58 | 59 | 60 | 61 | START_BARRIER 62 | WAIT_BARRIER 63 | 64 | 65 | 66 | Parallel_Barriers_TestB 67 | pnunit.tests.dll 68 | TestLibraries.ParallelExampleWithBarriers.ParallelTestWithBarriersB 69 | $agent_host:8081 70 | 71 | 72 | 73 | START_BARRIER 74 | WAIT_BARRIER 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/bin/pnunit-agent.exe.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 30 | 32 | 33 | 34 | 37 | 39 | 40 | 41 | 42 | 45 | 47 | 48 | 49 | 50 | 53 | 55 | 56 | 57 | 58 | 61 | 63 | 64 | 65 | 66 | 69 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/bin/pnunit-launcher.exe.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 30 | 32 | 33 | 34 | 37 | 39 | 40 | 41 | 42 | 45 | 47 | 48 | 49 | 50 | 53 | 55 | 56 | 57 | 58 | 61 | 63 | 64 | 65 | 66 | 69 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/doc/writingTests.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | NUnit - WritingTests 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 24 | 25 | 26 |
27 | 28 |

Writing Tests

29 | 30 |

NUnit tests may be written using any .NET language that supports attributes. 31 | 32 |

Attributes are used to indicate 33 | test classes and methods and to modify their behavior in various ways. 34 | 35 |

Assertions test an actual value 36 | against one or more Constraints and result in either a successful test or a failure. 37 | 38 |

User code may acquire information about the test and it's environment by 39 | use of the Test Context. 40 | 41 |

42 | 43 | 44 | 70 | 71 | 72 | 73 | 74 | 75 | 78 | 79 | 80 | 81 | 82 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/doc/samples.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | NUnit - Samples 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 24 | 25 | 26 |
27 | 28 | 31 |

Samples

32 | 33 | Code samples are no longer installed with NUnit, but may be found on GitHub, organized by language. 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 |
C#https://github.com/nunit/nunit-csharp-samples
F#https://github.com/nunit/nunit-fsharp-samples
VB.NEThttps://github.com/nunit/nunit-vb-samples
C++https://github.com/nunit/nunit-cpp-samples
53 | 54 | 55 |
56 | 57 | 58 | 79 | 80 | 81 | 82 | 83 | 84 | 87 | 88 | 89 | 90 | 91 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/doc/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | NUnit - DocHome 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 24 | 25 | 26 |
27 | 28 |

NUnit 2.6.4

29 | 30 |

This documentation covers the NUnit 2.6.4 release, 31 | a bugfix release to NUnit 2.6.4. This is expected to be the last release of NUnit 32 | version 2, with all future work being done on NUnit 3.0. 33 | 34 |

Where applicable, we have marked sections with the version in which a feature 35 | first appeared.

36 | 37 |

If you are new to NUnit, we suggest you begin by reading the 38 | Getting Started section of this site. 39 | Those who have used earlier releases may want to begin with the 40 | Upgrading section.

41 | 42 |

See the 43 | Release Notes for more information on this release.

44 | 45 |

All documentation is included in the release packages of NUnit. Beginning with NUnit 46 | 2.4.2, you may choose to download the documentation 47 | separately.

48 | 49 |
50 | 51 | 52 | 73 | 74 | 75 | 76 | 77 | 78 | 81 | 82 | 83 | 84 | 85 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/doc/extensibility.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | NUnit - Extensibility 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 24 | 25 | 26 |
27 | 28 |

NUnit Extensibility

29 | 30 |

NUnit is designed to be extended in a number of ways.

31 | 32 |

Extensions to the NUnit framework - the part of NUnit that is referenced 33 | by tests - usually take the form of 34 | Custom Constraints, written by users to 35 | encapsulate tests that pertain to their specific projects.

36 | 37 |

Extending the features found within NUnit itself depends on the use of 38 | NUnit Addins. 39 | Currently, The Addin mechanism only supports extensions to the NUnit core - 40 | the part of NUnit that builds and executes test suites. However, the API that 41 | is used provides for the future ability to extend the client side of NUnit, 42 | including the GUI.

43 | 44 | 45 |
46 | 47 | 48 | 74 | 75 | 76 | 77 | 78 | 79 | 82 | 83 | 84 | 85 | 86 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/doc/getStarted.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | NUnit - GetStarted 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 24 | 25 | 26 |
27 | 28 |

Getting Started with NUnit

29 | 30 |

If you haven't already done so, go to our Download page, select a version of NUnit and download it. The 31 | Installation page 32 | contains instructions for installing on your system.

33 | 34 |

To get started using NUnit, read the Quick Start page. This article demonstrates the development process with NUnit in the 35 | context of a C# banking application. Check the 36 | Samples page for additional examples, 37 | including some in VB.Net, J# and managed C++.

38 | 39 |

Which Test Runner to use?

40 | 41 |

NUnit has two different ways to run your tests. The 42 | console runner, nunit-console.exe, 43 | is the fastest to launch, but is not interactive. 44 | The gui runner, 45 | nunit.exe, is a Windows Forms application that allows you to work 46 | selectively with your tests and provides graphical feedback.

47 | 48 |
49 | 50 | 51 | 76 | 77 | 78 | 79 | 80 | 81 | 84 | 85 | 86 | 87 | 88 | -------------------------------------------------------------------------------- /bindings/python/AImg/enums.py: -------------------------------------------------------------------------------- 1 | import collections 2 | import numpy as np 3 | 4 | class AILEnum(object): 5 | def __init__(self, entryType, dIn): 6 | self.d1 = {k: entryType(k, *v) for k, v in dIn.iteritems()} 7 | self.d2 = {v[0]: entryType(k, *v) for k, v in dIn.iteritems()} 8 | 9 | def __getitem__(self, index): 10 | # prevent key errors where people used unicode strings by accident 11 | if type(index) == unicode: 12 | index = str(index) 13 | 14 | try: 15 | if type(index) == str: 16 | return self.d1[index] 17 | else: 18 | return self.d2[index] 19 | except: 20 | pass 21 | 22 | raise Exception("invalid enum value") 23 | 24 | AImgFormat = collections.namedtuple("AImgFormat", "name val") 25 | AImgFormats = AILEnum(AImgFormat, { 26 | "INVALID_FORMAT" : [-1], 27 | 28 | "R8U" : [0], 29 | "RG8U" : [1], 30 | "RGB8U" : [2], 31 | "RGBA8U" : [3], 32 | 33 | "R16U" : [4], 34 | "RG16U" : [5], 35 | "RGB16U" : [6], 36 | "RGBA16U" : [7], 37 | 38 | "R16F" : [8], 39 | "RG16F" : [9], 40 | "RGB16F" : [10], 41 | "RGBA16F" : [11], 42 | 43 | "R32F" : [12], 44 | "RG32F" : [13], 45 | "RGB32F" : [14], 46 | "RGBA32F" : [15] 47 | }) 48 | 49 | AImgFileFormat = collections.namedtuple("AImgFileFormat", "name val ext") 50 | AImgFileFormats = AILEnum(AImgFileFormat, { 51 | "UNKNOWN_IMAGE_FORMAT" : [-1, ""], 52 | "EXR_IMAGE_FORMAT" : [1, "exr"], 53 | "PNG_IMAGE_FORMAT" : [2, "png"], 54 | "JPEG_IMAGE_FORMAT" : [3, "jpeg"], 55 | "TGA_IMAGE_FORMAT" : [4, "tga"], 56 | "TIFF_IMAGE_FORMAT" : [5, "tiff"] 57 | }) 58 | 59 | AImgFloatOrIntType = collections.namedtuple("AImgFloatOrIntType", "name val") 60 | AImgFloatOrIntTypes = AILEnum(AImgFloatOrIntType, { 61 | "FITYPE_UNKNOWN" : [-1], 62 | "FITYPE_FLOAT" : [0], 63 | "FITYPE_INT" : [1] 64 | }) 65 | 66 | 67 | AImgFormatInfo = collections.namedtuple("AImgFormatInfo", "numChannels bytesPerChannel floatOrInt npType") 68 | def getFormatInfo(f): 69 | channels = 0 70 | 71 | channelSection = "RGBA" 72 | 73 | for i in range(len(channelSection)): 74 | if f.name[i] == channelSection[i]: 75 | channels += 1 76 | else: 77 | break 78 | 79 | bytesPerChannel = int(f.name[channels:-1])/8 80 | 81 | if f.name[-1] == "F": 82 | floatOrInt = AImgFloatOrIntTypes["FITYPE_FLOAT"] 83 | 84 | if bytesPerChannel == 4: 85 | npType = np.float32 86 | elif bytesPerChannel == 2: 87 | npType = np.float16 88 | else: 89 | floatOrInt = AImgFloatOrIntTypes["FITYPE_INT"] 90 | 91 | if bytesPerChannel == 2: 92 | npType = np.uint16 93 | elif bytesPerChannel == 1: 94 | npType = np.uint8 95 | 96 | return AImgFormatInfo(channels, bytesPerChannel, floatOrInt, npType) 97 | 98 | def getFormatFromNumpyArray(data): 99 | if len(data.shape) < 3: 100 | numChannels = 1 101 | else: 102 | numChannels = data.shape[2] 103 | 104 | if numChannels > 4: 105 | raise ValueError("array has too many channels") 106 | 107 | formatStr = "RGBA"[0:numChannels] 108 | 109 | if data.dtype == np.uint8: 110 | formatStr += "8U" 111 | elif data.dtype == np.uint16: 112 | formatStr += "16U" 113 | elif data.dtype == np.float16: 114 | formatStr += "16F" 115 | elif data.dtype == np.float32: 116 | formatStr += "32F" 117 | else: 118 | raise ValueError("format " + str(data.dtype) + " is not supported") 119 | 120 | return AImgFormats[formatStr] 121 | -------------------------------------------------------------------------------- /.paket/paket.targets: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | true 7 | $(MSBuildThisFileDirectory) 8 | $(MSBuildThisFileDirectory)..\ 9 | /Library/Frameworks/Mono.framework/Commands/mono 10 | mono 11 | 12 | 13 | 14 | 15 | $(PaketRootPath)paket.exe 16 | $(PaketToolsPath)paket.exe 17 | "$(PaketExePath)" 18 | $(MonoPath) --runtime=v4.0.30319 "$(PaketExePath)" 19 | 20 | 21 | 22 | 23 | 24 | $(MSBuildProjectFullPath).paket.references 25 | 26 | 27 | 28 | 29 | $(MSBuildProjectDirectory)\$(MSBuildProjectName).paket.references 30 | 31 | 32 | 33 | 34 | $(MSBuildProjectDirectory)\paket.references 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | $(MSBuildProjectDirectory)\$(MSBuildProjectName).paket.references 47 | $(MSBuildProjectDirectory)\paket.references 48 | $(MSBuildStartupDirectory)\paket.references 49 | $(MSBuildProjectFullPath).paket.references 50 | $(PaketCommand) restore --references-files "$(PaketReferences)" 51 | 52 | RestorePackages; $(BuildDependsOn); 53 | 54 | 55 | 61 | 62 | 63 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/doc/upgrade.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | NUnit - Upgrade 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 24 | 25 | 26 |
27 | 28 |

From NUnit 2.x

29 | 30 |

In general, there are two approaches to running tests built against earlier 31 | versions of the NUnit framework from 2.0 through 2.5.10: 32 | 33 |

    34 |
  1. Run the tests without recompilation. This is the best approach when no 35 | further changes are to be made to a project. Ensure that the framework 36 | assembly against which the tests were built continues to be avaialble 37 | in the test directory. 38 |
  2. Recompile the tests referencing the latest version of the framework assembly. 39 | This is usually the best option when a project is still under development. 40 |
41 | 42 |

Note: 43 | NUnit 2.6 no longer recognizes "old style" test cases - those 44 | identified by a name beginning with "Test". If you have such tests, you will 45 | need to convert them to use the TestAttribute and recompile your tests. In such cases, it makes sense to recompile against 46 | the latest framework. 47 | 48 |

From NUnit 1.x

49 | 50 |

Tests originally compiled against a version of NUnit prior to 2.0 will need 51 | to be rewritten and recompiled in order to run under NUnit 2.6. 52 | 53 | 54 |

55 | 56 | 57 | 85 | 86 | 87 | 88 | 89 | 90 | 93 | 94 | 95 | 96 | 97 | -------------------------------------------------------------------------------- /src_c/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | CMAKE_MINIMUM_REQUIRED(VERSION 2.8) 2 | 3 | include("cmake/HunterGate.cmake") 4 | HunterGate( 5 | URL "https://github.com/Artomatix/hunter/archive/v43-OpenEXR.tar.gz" 6 | SHA1 "faefc63600c5e431a59d406bbd0db743a659f1a9" 7 | LOCAL 8 | ) 9 | 10 | PROJECT (AIL) 11 | 12 | ########### 13 | # Options # 14 | ########### 15 | 16 | set(TESTS_ENABLED ON CACHE BOOL "enable tests") 17 | set(PYTHON_ENABLED OFF CACHE BOOL "enable python binding") 18 | set(EXR_ENABLED ON CACHE BOOL "enable loading EXR files") 19 | set(PNG_ENABLED ON CACHE BOOL "enable loading PNG files") 20 | set(JPEG_ENABLED ON CACHE BOOL "enable loading JPEG files") 21 | set(TIFF_ENABLED ON CACHE BOOL "enable loading TIFF files") 22 | set(TGA_ENABLED ON CACHE BOOL "enable loading TGA files") 23 | set(HDR_ENABLED ON CACHE BOOL "enable loading HDR files") 24 | 25 | set(BUILD_SHARE_TYPE SHARED CACHE STRING "set build type, valid values: SHARED|STATIC") 26 | 27 | set(CMAKE_POSITION_INDEPENDENT_CODE YES) 28 | 29 | add_library(AIL ${BUILD_SHARE_TYPE} 30 | exr.cpp exr.h 31 | png.h png.cpp 32 | jpeg.h jpeg.cpp 33 | tga.h tga.cpp 34 | tiff.h tiff.cpp 35 | AIL.h AIL.cpp 36 | hdr.h hdr.cpp 37 | IExifHandler.hpp 38 | JpegExifHandler.hpp JpegExifHandler.cpp 39 | AIL_internal.h 40 | ImageLoaderBase.h 41 | extern/stb_image.h 42 | extern/stb_image_write.h 43 | ) 44 | 45 | 46 | if(WIN32) 47 | add_definitions(-DNOMINMAX) # sigh... https://stackoverflow.com/a/2789509 48 | endif() 49 | 50 | set(AIL_COMPILE_FLAGS "") 51 | if(UNIX) 52 | set(AIL_COMPILE_FLAGS "-Wall -pedantic -Wextra -g -std=c++11 -Wno-unknown-pragmas") 53 | set(CMAKE_SHARED_LINKER_FLAGS "-Wl,--exclude-libs,ALL") # we don't want to export symbols for libpng, etc 54 | endif() 55 | target_compile_definitions(AIL PRIVATE -DIS_AIL_COMPILE) 56 | 57 | set_target_properties(AIL PROPERTIES COMPILE_FLAGS "${AIL_COMPILE_FLAGS}" DEBUG_POSTFIX "") 58 | 59 | install (TARGETS AIL 60 | ARCHIVE DESTINATION lib 61 | LIBRARY DESTINATION lib 62 | RUNTIME DESTINATION lib) 63 | 64 | set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/") 65 | 66 | if(PYTHON_ENABLED) 67 | add_library(AIL_py SHARED python.c) 68 | set_target_properties(AIL_py PROPERTIES OUTPUT_NAME "ail_py_native" PREFIX "") 69 | 70 | find_package(PythonInterp 2 REQUIRED) 71 | find_package(PythonLibs ${PYTHON_VERSION_STRING} REQUIRED) 72 | find_package(NumPy REQUIRED) 73 | 74 | target_link_libraries(AIL_py 75 | AIL 76 | ${PYTHON_LIBRARIES}) 77 | include_directories(${PYTHON_INCLUDE_DIR} ${PYTHON_NUMPY_INCLUDE_DIR}) 78 | endif() 79 | 80 | if(EXR_ENABLED) 81 | hunter_add_package(OpenEXR) 82 | find_package(OpenEXR REQUIRED) 83 | target_link_libraries(AIL ${OPENEXR_LIBRARIES}) 84 | include_directories(${OPENEXR_INCLUDE_DIRS}) 85 | add_definitions(-DHAVE_EXR) 86 | endif() 87 | 88 | if(PNG_ENABLED) 89 | hunter_add_package(PNG) 90 | find_package(PNG CONFIG REQUIRED) 91 | target_link_libraries(AIL PNG::png) 92 | add_definitions(-DHAVE_PNG) 93 | endif() 94 | 95 | if(JPEG_ENABLED) 96 | hunter_add_package(Jpeg) 97 | find_package(JPEG CONFIG REQUIRED) 98 | target_link_libraries(AIL JPEG::jpeg) 99 | add_definitions(-DHAVE_JPEG) 100 | endif() 101 | 102 | if(TGA_ENABLED) 103 | add_definitions(-DHAVE_TGA) 104 | endif() 105 | 106 | if(TIFF_ENABLED) 107 | hunter_add_package(TIFF) 108 | find_package(TIFF CONFIG REQUIRED) 109 | target_link_libraries(AIL TIFF::libtiff) 110 | add_definitions(-DHAVE_TIFF) 111 | endif() 112 | 113 | if (HDR_ENABLED) 114 | add_definitions(-DHAVE_HDR) 115 | endif() 116 | 117 | SET(CMAKE_DEBUG_POSTFIX "") 118 | 119 | ######### 120 | # Tests # 121 | ######### 122 | if(TESTS_ENABLED) 123 | add_subdirectory(tests) 124 | endif() 125 | -------------------------------------------------------------------------------- /src_c/ImageLoaderBase.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2016-2019 Artomatix LTD 3 | * 4 | * Permission is hereby granted, free of charge, to any person obtaining a copy of this software 5 | * and associated documentation files (the "Software"), to deal in the Software without restriction, 6 | * including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, 7 | * and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, 8 | * subject to the following conditions: 9 | * 10 | * The above copyright notice and this permission notice shall be included in all copies or substantial 11 | * portions of the Software. 12 | * 13 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT 14 | * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 15 | * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 16 | * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 17 | * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 18 | */ 19 | 20 | #ifndef ARTOMATIX_IMAGE_LOADER_BASE_H 21 | #define ARTOMATIX_IMAGE_LOADER_BASE_H 22 | 23 | #include 24 | 25 | #include "AIL.h" 26 | #include "IExifHandler.hpp" 27 | #include 28 | 29 | namespace AImg 30 | { 31 | class AImgBase 32 | { 33 | public: 34 | virtual ~AImgBase(); 35 | 36 | virtual int32_t openImage(ReadCallback readCallback, TellCallback tellCallback, SeekCallback seekCallback, void* callbackData) = 0; 37 | virtual int32_t getImageInfo(int32_t* width, int32_t* height, int32_t* numChannels, int32_t* bytesPerChannel, int32_t* floatOrInt, int32_t* decodedImgFormat, uint32_t *colourProfileLen) = 0; 38 | virtual int32_t getColourProfile(char* profileName, uint8_t* colourProfile, uint32_t *colourProfileLen) = 0; 39 | virtual int32_t decodeImage(void* destBuffer, int32_t forceImageFormat) = 0; 40 | 41 | virtual int32_t writeImage(void* data, int32_t width, int32_t height, int32_t inputFormat, int32_t outputFormat, 42 | const char *profileName, uint8_t *colourProfile, uint32_t colourProfileLen, 43 | WriteCallback writeCallback, TellCallback tellCallback, SeekCallback seekCallback, void* callbackData, void* encodingOptions) = 0; 44 | 45 | const char* getErrorDetails() 46 | { 47 | return mErrorDetails.c_str(); 48 | } 49 | 50 | virtual int32_t verifyEncodeOptions(void* encodeOptions) 51 | { 52 | if (encodeOptions != NULL) 53 | { 54 | mErrorDetails = "[AImgBase::verifyEncodeOptions] encode options passed to an encoder that doesn't support any options!"; 55 | return AImgErrorCode::AIMG_INVALID_ENCODE_ARGS; 56 | } 57 | 58 | return AImgErrorCode::AIMG_SUCCESS; 59 | } 60 | 61 | virtual bool SupportsExif() const noexcept = 0; 62 | virtual std::shared_ptr GetExifData(int32_t* error = nullptr) = 0; 63 | 64 | protected: 65 | std::string mErrorDetails; 66 | }; 67 | 68 | class ImageLoaderBase 69 | { 70 | public: 71 | virtual ~ImageLoaderBase(); 72 | 73 | virtual AImgBase* getAImg() = 0; 74 | 75 | virtual int32_t initialise() = 0; 76 | virtual bool canLoadImage(ReadCallback readCallback, TellCallback tellCallback, SeekCallback seekCallback, void* callbackData) = 0; 77 | virtual std::string getFileExtension() = 0; 78 | virtual int32_t getAImgFileFormatValue() = 0; 79 | 80 | virtual bool isFormatSupported(int32_t format) = 0; 81 | 82 | virtual AImgFormat getWhatFormatWillBeWrittenForData(int32_t inputFormat, int32_t outputFormat) = 0; 83 | }; 84 | } 85 | 86 | #endif // ARTOMATIX_IMAGE_LOADER_BASE_H 87 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/doc/vsTestAdapterLicense.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | NUnit - VsTestAdapterLicense 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 24 | 25 | 26 |
27 | 28 |

License - NUnit Test Adapter for Visual Studio

29 | 30 |

Copyright © 2012-2014 Charlie Poole 31 | 32 |

Permission is hereby granted, free of charge, to any person obtaining 33 | a copy of this software and associated documentation files (the 34 | "Software"), to deal in the Software without restriction, including 35 | without limitation the rights to use, copy, modify, merge, publish, 36 | distribute, sublicense, and/or sell copies of the Software, and to 37 | permit persons to whom the Software is furnished to do so, subject to 38 | the following conditions: 39 | 40 |

The above copyright notice and this permission notice shall be 41 | included in all copies or substantial portions of the Software. 42 | 43 |

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 44 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 45 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 46 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 47 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 48 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 49 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 50 | 51 |

Notice

52 | 53 |

NUnit 2.6 assemblies distributed with this adapter are subject to the 54 | NUnit license. 55 | 56 | 57 |

58 | 59 | 60 | 81 | 82 | 83 | 84 | 85 | 86 | 89 | 90 | 91 | 92 | 93 | -------------------------------------------------------------------------------- /bindings/csharp/ArtomatixImageLoader/.gitignore: -------------------------------------------------------------------------------- 1 | ## taken from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore 2 | 3 | ## Ignore Visual Studio temporary files, build results, and 4 | ## files generated by popular Visual Studio add-ons. 5 | 6 | */test-results/ 7 | test-results/ 8 | 9 | *.opendb 10 | 11 | # User-specific files 12 | *.suo 13 | *.user 14 | *.userosscache 15 | *.sln.docstates 16 | *.userprefs 17 | 18 | # Build results 19 | [Dd]ebug/ 20 | [Dd]ebugPublic/ 21 | [Rr]elease/ 22 | [Rr]eleases/ 23 | x64/ 24 | x86/ 25 | build/ 26 | bld/ 27 | [Bb]in/ 28 | [Oo]bj/ 29 | 30 | # Roslyn cache directories 31 | *.ide/ 32 | 33 | # MSTest test Results 34 | [Tt]est[Rr]esult*/ 35 | [Bb]uild[Ll]og.* 36 | 37 | #NUNIT 38 | *.VisualState.xml 39 | TestResult.xml 40 | 41 | # Build Results of an ATL Project 42 | [Dd]ebugPS/ 43 | [Rr]eleasePS/ 44 | dlldata.c 45 | 46 | *_i.c 47 | *_p.c 48 | *_i.h 49 | *.ilk 50 | *.meta 51 | *.obj 52 | *.pch 53 | *.pdb 54 | *.pgc 55 | *.pgd 56 | *.rsp 57 | *.sbr 58 | *.tlb 59 | *.tli 60 | *.tlh 61 | *.tmp 62 | *.tmp_proj 63 | *.log 64 | *.vspscc 65 | *.vssscc 66 | .builds 67 | *.pidb 68 | *.svclog 69 | *.scc 70 | 71 | # Chutzpah Test files 72 | _Chutzpah* 73 | 74 | # Visual C++ cache files 75 | ipch/ 76 | *.aps 77 | *.ncb 78 | *.opensdf 79 | *.sdf 80 | *.cachefile 81 | *.VC.db 82 | 83 | # Visual Studio profiler 84 | *.psess 85 | *.vsp 86 | *.vspx 87 | 88 | # TFS 2012 Local Workspace 89 | $tf/ 90 | 91 | # Guidance Automation Toolkit 92 | *.gpState 93 | 94 | # ReSharper is a .NET coding add-in 95 | _ReSharper*/ 96 | *.[Rr]e[Ss]harper 97 | *.DotSettings.user 98 | 99 | # JustCode is a .NET coding addin-in 100 | .JustCode 101 | 102 | # TeamCity is a build add-in 103 | _TeamCity* 104 | 105 | # DotCover is a Code Coverage Tool 106 | *.dotCover 107 | 108 | # NCrunch 109 | _NCrunch_* 110 | .*crunch*.local.xml 111 | 112 | # MightyMoose 113 | *.mm.* 114 | AutoTest.Net/ 115 | 116 | # Web workbench (sass) 117 | .sass-cache/ 118 | 119 | # Installshield output folder 120 | [Ee]xpress/ 121 | 122 | # DocProject is a documentation generator add-in 123 | DocProject/buildhelp/ 124 | DocProject/Help/*.HxT 125 | DocProject/Help/*.HxC 126 | DocProject/Help/*.hhc 127 | DocProject/Help/*.hhk 128 | DocProject/Help/*.hhp 129 | DocProject/Help/Html2 130 | DocProject/Help/html 131 | 132 | # Click-Once directory 133 | publish/ 134 | 135 | # Publish Web Output 136 | *.[Pp]ublish.xml 137 | *.azurePubxml 138 | # TODO: Comment the next line if you want to checkin your web deploy settings 139 | # but database connection strings (with potential passwords) will be unencrypted 140 | *.pubxml 141 | *.publishproj 142 | 143 | # NuGet Packages 144 | *.nupkg 145 | # The packages folder can be ignored because of Package Restore 146 | **/packages/* 147 | # except build/, which is used as an MSBuild target. 148 | !**/packages/build/ 149 | # Uncomment if necessary however generally it will be regenerated when needed 150 | #!**/packages/repositories.config 151 | 152 | # Windows Azure Build Output 153 | csx/ 154 | *.build.csdef 155 | 156 | # Windows Store app package directory 157 | AppPackages/ 158 | 159 | # Others 160 | *.[Cc]ache 161 | ClientBin/ 162 | [Ss]tyle[Cc]op.* 163 | ~$* 164 | *~ 165 | *.dbmdl 166 | *.dbproj.schemaview 167 | *.pfx 168 | *.publishsettings 169 | node_modules/ 170 | bower_components/ 171 | 172 | # RIA/Silverlight projects 173 | Generated_Code/ 174 | 175 | # Backup & report files from converting an old project file 176 | # to a newer Visual Studio version. Backup files are not needed, 177 | # because we have git ;-) 178 | _UpgradeReport_Files/ 179 | Backup*/ 180 | UpgradeLog*.XML 181 | UpgradeLog*.htm 182 | 183 | # SQL Server files 184 | *.mdf 185 | *.ldf 186 | 187 | # Business Intelligence projects 188 | *.rdl.data 189 | *.bim.layout 190 | *.bim_*.settings 191 | 192 | # Microsoft Fakes 193 | FakesAssemblies/ 194 | 195 | # Node.js Tools for Visual Studio 196 | .ntvs_analysis.dat 197 | 198 | # Visual Studio 6 build log 199 | *.plg 200 | 201 | # Visual Studio 6 workspace options file 202 | *.opt 203 | -------------------------------------------------------------------------------- /bindings/csharp/ArtomatixImageLoader/ArtomatixImageLoader/Exceptions.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.Serialization; 3 | 4 | namespace Artomatix.ImageLoader 5 | { 6 | public class AImgException : Exception 7 | { 8 | protected AImgException(string msg) : base(msg) 9 | { 10 | } 11 | 12 | public static void checkErrorCode(IntPtr img, Int32 errorCode) 13 | { 14 | if (errorCode != 0) 15 | { 16 | string msg = ""; 17 | 18 | if (img != IntPtr.Zero) 19 | msg = ImgLoader.AImgGetLastErrorDetails(img); 20 | 21 | switch (errorCode) 22 | { 23 | case -1: 24 | throw new AImgUnsupportedFiletypeException(msg); 25 | case -2: 26 | throw new AImgLoadFailedExternalException(msg); 27 | case -3: 28 | throw new AImgLoadFailedInternalException(msg); 29 | case -4: 30 | throw new AImgConversionFailedBadFormatException(msg); 31 | case -5: 32 | throw new AImgWriteFailedExternalException(msg); 33 | case -6: 34 | throw new AImgWriteFailedInternalException(msg); 35 | case -7: 36 | throw new AImgLoadFailedUnsupportedTiffException(msg); 37 | case -8: 38 | throw new AImgOpenFailedEmptyInputException(msg); 39 | case -9: 40 | throw new AImgInvalidEncodeArgsException(msg); 41 | case -10: 42 | throw new AImgWriteNotSupportedForFormat(msg); 43 | 44 | default: 45 | throw new AImgException("Unknown error code: " + errorCode + " " + msg); 46 | } 47 | } 48 | } 49 | } 50 | 51 | internal class AImgWriteNotSupportedForFormat : Exception 52 | { 53 | public AImgWriteNotSupportedForFormat(string message) : base(message) 54 | { 55 | } 56 | } 57 | 58 | public class AImgUnsupportedFiletypeException : AImgException 59 | { 60 | public AImgUnsupportedFiletypeException(string msg) : base(msg) 61 | { 62 | } 63 | } 64 | 65 | public class AImgLoadFailedExternalException : AImgException 66 | { 67 | public AImgLoadFailedExternalException(string msg) : base(msg) 68 | { 69 | } 70 | } 71 | 72 | public class AImgLoadFailedInternalException : AImgException 73 | { 74 | public AImgLoadFailedInternalException(string msg) : base(msg) 75 | { 76 | } 77 | } 78 | 79 | public class AImgConversionFailedBadFormatException : AImgException 80 | { 81 | public AImgConversionFailedBadFormatException(string msg) : base(msg) 82 | { 83 | } 84 | } 85 | 86 | public class AImgWriteFailedExternalException : AImgException 87 | { 88 | public AImgWriteFailedExternalException(string msg) : base(msg) 89 | { 90 | } 91 | } 92 | 93 | public class AImgWriteFailedInternalException : AImgException 94 | { 95 | public AImgWriteFailedInternalException(string msg) : base(msg) 96 | { 97 | } 98 | } 99 | 100 | public class AImgOpenFailedEmptyInputException : AImgException 101 | { 102 | public AImgOpenFailedEmptyInputException(string msg) : base(msg) 103 | { 104 | } 105 | } 106 | 107 | public class AImgLoadFailedUnsupportedTiffException : AImgException 108 | { 109 | public AImgLoadFailedUnsupportedTiffException(string msg) : base(msg) 110 | { 111 | } 112 | } 113 | 114 | public class AImgInvalidEncodeArgsException : AImgException 115 | { 116 | public AImgInvalidEncodeArgsException(string msg) : base(msg) 117 | { 118 | } 119 | } 120 | } -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/doc/suiteBuilders.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | NUnit - SuiteBuilders 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 24 | 25 | 26 |
27 | 28 |

SuiteBuilders (NUnit 2.4)

29 | 30 |

Purpose

31 |

A SuiteBuilder is an addin used to build a test fixture from a type. NUnit itself 32 | uses a SuiteBuilder to recognize and build TestFixtures. 33 | 34 |

Extension Point

35 |

An addin may use the host to access this extension point by name: 36 | 37 |

 38 | 	IExtensionPoint suiteBuilders = host.GetExtensionPoint( "SuiteBuilders" );
39 | 40 |

Interface

41 |

The extension object passed to Install must implement the ISuiteBuilder interface: 42 | 43 |

 44 | 	public interface ISuiteBuilder
 45 | 	{
 46 | 		bool CanBuildFrom( Type type );
 47 | 		Test BuildFrom( Type type );
 48 | 	}
 49 | 
50 | 51 |

CanBuildFrom should return true if the specified Type is one from which 52 | the builder is able to create a fixture. This usually involve examining 53 | the Type and its attriutes. 54 | 55 |

The BuildFrom method should return a test fixture completely populated 56 | with its contained test cases. Return null if it is not possible to 57 | build a fixture using the provided Type. 58 | 59 | 60 |

61 | 62 | 63 | 97 | 98 | 99 | 100 | 101 | 102 | 105 | 106 | 107 | 108 | 109 | -------------------------------------------------------------------------------- /src_c/JpegExifHandler.cpp: -------------------------------------------------------------------------------- 1 | #include "JpegExifHandler.hpp" 2 | #include 3 | #include 4 | 5 | namespace AImg 6 | { 7 | // Returns orientation code from the specific EXIF tag 0x112 8 | // See https://www.media.mit.edu/pia/Research/deepview/exif.html 9 | uint16_t JpegExifHandler::GetOrientationField(int16_t * error) const noexcept 10 | { 11 | auto marker = this->GetEXIFSegment(); 12 | if (marker == nullptr) 13 | { 14 | if (error != nullptr) 15 | { 16 | *error = AIMG_EXIF_DATA_NOT_FOUND; 17 | } 18 | 19 | return 0; 20 | } 21 | // Adding 6 to this ptr as the EXIF magic is 6 bytes long 22 | const uint8_t * tiffHeader = marker->data + 6; 23 | 24 | const auto intelSig = "II"; 25 | auto littleEndian = memcmp(tiffHeader, intelSig, 2) == 0; 26 | 27 | const uint16_t orientationTagId = 0x112; 28 | 29 | uint32_t offset = *((uint32_t*)(tiffHeader + 4)); 30 | 31 | if (!littleEndian) 32 | { 33 | offset = SwapBytes32(offset); 34 | } 35 | 36 | const uint8_t * IFD0 = tiffHeader + offset; 37 | 38 | uint16_t tagCount = *((uint16_t*)IFD0); 39 | 40 | if (!littleEndian) 41 | { 42 | tagCount = SwapBytes16(tagCount); 43 | } 44 | 45 | TiffTag_t * tags = (TiffTag_t *)(IFD0 + sizeof(uint16_t)); 46 | 47 | TiffTag_t orientationTag; 48 | bool found = false; 49 | 50 | for (int tagIndex = 0; tagIndex < tagCount; tagIndex++) 51 | { 52 | TiffTag_t currentTag = tags[tagIndex]; 53 | 54 | if (!littleEndian) 55 | { 56 | currentTag = this->SwapTiffTagBytes(currentTag); 57 | } 58 | 59 | if (currentTag.Id == orientationTagId) 60 | { 61 | orientationTag = currentTag; 62 | found = true; 63 | break; 64 | } 65 | } 66 | 67 | if (found) 68 | { 69 | uint16_t orientation = littleEndian 70 | ? orientationTag.Offset.Partial.Hi 71 | : orientationTag.Offset.Partial.Lo; 72 | 73 | if (orientation <= 8) 74 | { 75 | if (error != nullptr) 76 | { 77 | *error = AIMG_SUCCESS; 78 | } 79 | 80 | return orientation; 81 | } 82 | else 83 | { 84 | if (error != nullptr) 85 | { 86 | *error = AIMG_EXIF_INVALID_DATA; 87 | } 88 | 89 | return 0; 90 | } 91 | } 92 | else 93 | { 94 | if (error != nullptr) 95 | { 96 | *error = AIMG_EXIF_DATA_NOT_FOUND; 97 | } 98 | 99 | return 0; 100 | } 101 | } 102 | 103 | TiffTag_t JpegExifHandler::SwapTiffTagBytes(TiffTag_t tag) 104 | { 105 | tag.Id = SwapBytes16(tag.Id); 106 | 107 | tag.Type = SwapBytes16(tag.Type); 108 | 109 | tag.Count = SwapBytes32(tag.Count); 110 | 111 | tag.Offset.Full = SwapBytes32(tag.Offset.Full); 112 | 113 | return tag; 114 | } 115 | 116 | // Returns APP1 marker if found, nullptr otherwise 117 | // See https://www.media.mit.edu/pia/Research/deepview/exif.html 118 | jpeg_saved_marker_ptr JpegExifHandler::GetEXIFSegment() const noexcept 119 | { 120 | auto marker = this->cinfo->marker_list; 121 | 122 | constexpr auto App1Marker = 0xE1; 123 | 124 | while (marker != nullptr) 125 | { 126 | if (marker->marker == App1Marker) 127 | { 128 | const auto exifMagic = "Exif\0\0"; 129 | 130 | if (!memcmp(exifMagic, marker->data, 6)) 131 | return marker; 132 | else 133 | return nullptr; 134 | } 135 | 136 | marker = marker->next; 137 | } 138 | 139 | return nullptr; 140 | } 141 | 142 | bool JpegExifHandler::SupportsExif() const noexcept 143 | { 144 | auto marker = this->GetEXIFSegment(); 145 | 146 | return marker != nullptr; 147 | } 148 | } -------------------------------------------------------------------------------- /bindings/python/AImg/AImg.py: -------------------------------------------------------------------------------- 1 | import ail_py_native as native 2 | import enums 3 | import collections 4 | import numpy as np 5 | import AImgExceptions 6 | 7 | 8 | RawFileInfo = collections.namedtuple("RawFileInfo", "numChannels bytesPerChannel floatOrInt") 9 | 10 | class AImg(object): 11 | 12 | def __init__(self, io_or_path): 13 | if type(io_or_path) == str: 14 | self.init_from_stream(open(io_or_path), True) 15 | else: 16 | self.init_from_stream(io_or_path, False) 17 | 18 | def init_from_stream(self, stream, close_after_decode): 19 | self._stream = stream 20 | self._close_after_decode = close_after_decode 21 | 22 | self._callbackData = native.getCallbackDataFromFileLikeObject(self._stream) 23 | 24 | errCode, self._imgCapsule, detectedFileFormat = native.open(self._callbackData) 25 | AImgExceptions.checkErrorCode(self._imgCapsule, errCode) 26 | 27 | self.detectedFileFormat = enums.AImgFileFormats[detectedFileFormat] 28 | 29 | errCode, self.width, self.height, rawNumChannels, rawBytesPerChannel, rawFloatOrInt, decodedImgFormat, colourProfileLen = native.getInfo(self._imgCapsule, self._callbackData) 30 | AImgExceptions.checkErrorCode(self._imgCapsule, errCode) 31 | self.rawFileInfo = RawFileInfo(rawNumChannels, rawBytesPerChannel, rawFloatOrInt) 32 | self.decodedImgFormat = enums.AImgFormats[decodedImgFormat] 33 | self._decodeDone = False 34 | 35 | self.colourProfile = None 36 | if colourProfileLen != 0: 37 | self.colourProfile = np.zeros(colourProfileLen, dtype = np.int8, order="C") 38 | 39 | errCode, self.profileName, colourProfileLen = native.getColourProfile(self._imgCapsule, self.colourProfile, colourProfileLen) 40 | 41 | def decode(self, destBuffer=None, forceImageFormat=enums.AImgFormats["INVALID_FORMAT"]): 42 | if self._decodeDone: 43 | raise IOError("instance has already been decoded") 44 | 45 | self._decodeDone = True 46 | 47 | decodeFormat = self.decodedImgFormat 48 | if forceImageFormat != enums.AImgFormats["INVALID_FORMAT"]: 49 | decodeFormat = forceImageFormat 50 | 51 | formatInfo = enums.getFormatInfo(decodeFormat) 52 | 53 | if destBuffer == None: 54 | destBuffer = np.zeros(shape=(self.height, self.width, formatInfo.numChannels), dtype = formatInfo.npType, order="C") 55 | 56 | if type(destBuffer) != np.ndarray: 57 | raise ValueError("destBuffer must be a numpy.ndarray instance") 58 | 59 | if destBuffer.nbytes < self.width * self.height * formatInfo.bytesPerChannel * formatInfo.numChannels: 60 | raise ValueError("destBuffer is too small") 61 | 62 | if not (destBuffer.flags.c_contiguous and destBuffer.flags.writeable and destBuffer.flags.aligned): 63 | raise ValueError("destBuffer does not meet flags requirements (c_contiguous & writeable & aligned)") 64 | 65 | errCode = native.decode(self._imgCapsule, destBuffer, forceImageFormat.val, self._callbackData) 66 | AImgExceptions.checkErrorCode(self._imgCapsule, errCode) 67 | 68 | if self._close_after_decode: 69 | self._stream.close() 70 | 71 | self._imgCapsule = None 72 | self._callbackData = None 73 | 74 | return destBuffer 75 | 76 | 77 | def write(io_or_path, data, fileFormat, profileName, colourProfile, encodeOptions=None): 78 | if not (data.flags.c_contiguous and data.flags.aligned): 79 | raise ValueError("data does not meet flags requirements (c_contiguous & aligned)") 80 | 81 | if type(io_or_path) == str: 82 | stream = open(io_or_path, "wb") 83 | else: 84 | stream = io_or_path 85 | 86 | callbackData = native.getCallbackDataFromFileLikeObject(stream) 87 | 88 | fmt = enums.getFormatFromNumpyArray(data) 89 | height, width = data.shape[0:2] 90 | 91 | encodeOptionsTuple = () 92 | if encodeOptions: 93 | encodeOptionsTuple = (encodeOptions,) 94 | 95 | colourProfileLen = 0 96 | if colourProfile is not None: 97 | colourProfileLen = len(colourProfile) 98 | 99 | errCode, imgCapsule = native.write(fileFormat.val, data, stream, width, height, fmt.val, profileName, colourProfile, colourProfileLen, encodeOptionsTuple) 100 | AImgExceptions.checkErrorCode(imgCapsule, errCode) -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/doc/assertions.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | NUnit - Assertions 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 24 | 25 | 26 |
27 | 28 |

Assertions

29 | 30 |

Assertions are central to unit testing in any of the xUnit frameworks, and NUnit 31 | is no exception. NUnit provides a rich set of assertions as static methods of 32 | the Assert class.

33 | 34 |

If an assertion fails, the method call does not return and an error is reported. 35 | If a test contains multiple assertions, any that follow the one that failed 36 | will not be executed. For this reason, it's usually best to try for one 37 | assertion per test.

38 | 39 |

Each method may be called without a message, with a simple text message or with 40 | a message and arguments. In the last case the message is formatted using the 41 | provided text and arguments.

42 | 43 |

Two Models

44 | 45 |

Before NUnit 2.4, a separate method of the Assert class was used for each 46 | different assertion. We call this the 47 | classic model. 48 | It continues to be supported in NUnit, since many people prefer it.

49 | 50 |

Beginning with NUnit 2.4, a new 51 | constraint-based model was introduced. This approach uses a single method of the Assert class 52 | for all assertions, passing a Constraint object that specifies 53 | the test to be performed. 54 | 55 |

This constraint-based model is now used internally by NUnit 56 | for all assertions. The methods of the classic approach have been 57 | re-implemented on top of this new model. 58 | 59 | 65 | 66 |

67 | 68 | 69 | 99 | 100 | 101 | 102 | 103 | 104 | 107 | 108 | 109 | 110 | 111 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/doc/eventListeners.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | NUnit - EventListeners 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 24 | 25 | 26 |
27 | 28 |

EventListeners (NUnit 2.4.4)

29 | 30 |

Purpose

31 |

EventListeners are able to respond to events that occur in the course 32 | of a test run, usually by recording information of some kind. Note that 33 | EventListeners called asynchronously with respect to test execution and 34 | are not able to affect the actual execution of the test. 35 | 36 |

Extension Point

37 |

Addins use the host to access this extension point by name: 38 | 39 |

 40 | 	IExtensionPoint listeners = host.GetExtensionPoint( "EventListeners" );
41 | 42 |

Interface

43 |

The extension object passed to Install must implement the EventListener interface: 44 | 45 |

 46 | 	public interface EventListener
 47 | 	{
 48 | 		void RunStarted( string name, int testCount );
 49 | 		void RunFinished( TestResult result );
 50 | 		void RunFinished( Exception exception );
 51 | 		void TestStarted(TestName testName);
 52 | 		void TestFinished(TestResult result);
 53 | 		void SuiteStarted(TestName testName);
 54 | 		void SuiteFinished(TestResult result);
 55 | 		void UnhandledException( Exception exception );
 56 | 		void TestOutput(TestOutput testOutput);
 57 | 	}
 58 | 
59 | 60 |

You must provide all the methods, but the body may be empty for any 61 | that you have no need of. 62 | 63 | 64 |

65 | 66 | 67 | 101 | 102 | 103 | 104 | 105 | 106 | 109 | 110 | 111 | 112 | 113 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/doc/nunit-agent.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | NUnit - Nunit-agent 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 24 | 25 | 26 |
27 | 28 |

NUnit-Agent

29 | 30 |

The nunit-agent.exe program is used by other runners when the tests are being 31 | run in a separate process. It is not intended for direct execution by users. 32 | 33 |

NUnit runs tests in a separate process in several situations: 34 | 35 |

    36 |
  1. When the program needs to be run under a different framework or version 37 | from the one being used by NUnit itself. 38 |
  2. When the user requests process-level isolation through the command line 39 | or the NUnit settings. 40 |
41 | 42 |

Debugging

43 | 44 |

When debugging tests that are run in a separate process, it is 45 | not possible to do so by simply running the console or gui runner 46 | under the debugger. Rather, it is necessary to attach the debugger 47 | to the nunit-agent process after the tests have been loaded. 48 | 49 |

When running under the Gui, NUnit will continue to use the same 50 | process to reload tests so that it is not normally necessary to 51 | re-attach to a new process. However, if the settings are changed 52 | in a way that requires a different process - for example, by changing 53 | the version of the runtime that is being used - the old process will 54 | be terminated and a new one created. In that case, it's necessary 55 | to re-attach to the new process. 56 | 57 | 58 |

59 | 60 | 61 | 94 | 95 | 96 | 97 | 98 | 99 | 102 | 103 | 104 | 105 | 106 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/doc/license.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | NUnit - License 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 24 | 25 | 26 |
27 | 28 |

NUnit License

29 | 30 |

31 | Copyright © 2002-2014 Charlie Poole
32 | Copyright © 2002-2004 James W. Newkirk, Michael C. Two, Alexei A. Vorontsov
33 | Copyright © 2000-2002 Philip A. Craig
34 | 35 |

This software is provided 'as-is', without any express or implied warranty. In 36 | no event will the authors be held liable for any damages arising from the use 37 | of this software. 38 | 39 |

Permission is granted to anyone to use this software for any purpose, including 40 | commercial applications, and to alter it and redistribute it freely, subject to 41 | the following restrictions: 42 | 43 |

    44 |
  1. The origin of this software must not be misrepresented; you must not claim 45 | that you wrote the original software. If you use this software in a product, an 46 | acknowledgment (see the following) in the product documentation is required. 47 |

    48 | Portions Copyright © 2002-2014 Charlie Poole or 49 | Copyright © 2002-2004 James W. Newkirk, Michael C. Two, Alexei A. 50 | Vorontsov or Copyright © 2000-2002 Philip A. Craig 51 |

    52 |
  2. Altered source versions must be plainly marked as such, and must not be 53 | misrepresented as being the original software. 54 |

    55 |
  3. This notice may not be removed or altered from any source distribution. 56 |
57 | 58 |

License Note

59 |

This license is based on 60 | the open source zlib/libpng license. The idea was to keep the license 61 | as simple as possible to encourage use of NUnit in free and commercial 62 | applications and libraries, but to keep the source code together and to give 63 | credit to the NUnit contributors for their efforts. While this license allows 64 | shipping NUnit in source and binary form, if shipping a NUnit variant is the 65 | sole purpose of your product, please let 66 | us know.

67 | 68 |
69 | 70 | 71 | 92 | 93 | 94 | 95 | 96 | 97 | 100 | 101 | 102 | 103 | 104 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/doc/addinsDialog.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | NUnit - AddinsDialog 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 24 | 25 | 26 |
27 | 28 |

Addins Dialog

29 | 30 |

The Addins Dialog is displayed using the Tools | Addins menu item on the main 31 | menu. It lists all addins that have been found and loaded by NUnit.

32 | 33 |
34 |
35 | 36 |

Addin

37 | 38 |

This column lists the name of the addin, as defined by its author. 39 | 40 |

Status

41 | 42 |

This column shows the status of each addin. Possible values are 43 |

    44 |
  • Unknown 45 |
  • Enabled 46 |
  • Disabled 47 |
  • Loaded 48 |
  • Error 49 |
50 | 51 |

Description

52 | 53 |

If the author of an addin has provided a description, it is 54 | shown here when the addin is selected. 55 | 56 |

Message

57 | 58 |

If the addin failed to load, its status will be shown as Error 59 | and any error message displayed here when that addin is selected. 60 | 61 |

62 | 63 | 64 | 106 | 107 | 108 | 109 | 110 | 111 | 114 | 115 | 116 | 117 | 118 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/doc/extensionTips.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | NUnit - ExtensionTips 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 24 | 25 | 26 |
27 | 28 |

Tips for Writing Extensions

29 | 30 |

An Extenders Guide will be published in the future. At the moment, writing an 31 | extension is a bit of an adventure. Extension authors are advised to join the 32 | nunit-developer list and post questions and comments there. 33 | 34 |

For the moment, the following tips may be of assistance. 35 |

    36 |
  • The nunit.core.interfaces assembly is intended to be stable in the future 37 | while the nunit.core assembly will change from release to release. Right now, 38 | both assemblies are still in flux, but extensions that depend solely on the interfaces 39 | assembly will have a much better chance of surviving NUnit version changes. Unfortunately, 40 | this is rather difficult to do without duplicating a great deal of NUnit code. Most 41 | of the add-in samples provided with NUnit are currently version dependent. 42 | 43 |
  • If you place the definition of a custom attribute in the same assembly as your 44 | add-in, then user tests are dependent on the add-in assembly. If the add-in is 45 | version-dependent, then the user tests will also be version-dependent. We suggest 46 | placing any types referenced by user tests in a separate assembly, particularly if 47 | your extension relies on nunit.core. 48 | 49 |
  • If using Visual Studio, set Copy Local to false for any references to nunit.core 50 | or nunit.core.interfaces. This is especially important if you are also building 51 | NUnit itself. 52 | 53 |
  • There is currently no mechanism to allow decorators to apply in a particular order. 54 | NUnit applies decorators in the order in which they are returned through reflection, 55 | which may vary among different runtimes. 56 | 57 |
  • Avoid trying to "stretch" the existing extension points to do more than they were 58 | intended to do. Rather, let us know what further extension points you would like to see! 59 |
60 | 61 | 62 |
63 | 64 | 65 | 91 | 92 | 93 | 94 | 95 | 96 | 99 | 100 | 101 | 102 | 103 | -------------------------------------------------------------------------------- /hooks/binfiles/NUnit-2.6.4/doc/testDecorators.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | NUnit - TestDecorators 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 24 | 25 | 26 |
27 | 28 |

TestDecorators (NUnit 2.4)

29 | 30 |

Purpose

31 |

TestDecorators are able to modify a test after it has been constructed. 32 | 33 |

Extension Point

34 |

Addins use the host to access this extension point by name: 35 | 36 |

 37 | 	IExtensionPoint testDecorators = host.GetExtensionPoint( "TestDecorators" );
38 | 39 |

Interface

40 |

The extension object passed to Install must implement the ITestDecorator interface: 41 | 42 |

 43 | 	public interface ITestDecorator
 44 | 	{
 45 | 		Test Decorate( Test test, MemberInfo member );
 46 | 	}
 47 | 
48 | 49 |

The Decorate method may do several things, depending on what it needs 50 | to accomplish: 51 |

    52 |
  1. Return test unmodified 53 |
  2. Modify properties of the test object and return it 54 |
  3. Replace test with another object, either discarding the 55 | original or aggregating it in the new test. 56 |
57 | 58 |

Depending on what the decorator does, it may need to run 59 | ahead of other decorators or after them. Decorators should 60 | be installed using the Install method overload that takes 61 | a priority. The priorities range from 1 to 9 and decorators 62 | with lower priority values are installed first. The following 63 | standard values are defined for use if desired: 64 |

    65 |
  • DecoratorPriority.Default = 0 66 |
  • DecoratorPriority.First = 1 67 |
  • DecoratorPriority.Normal = 5 68 |
  • DecoratorPriority.Last = 9 69 |
70 | 71 |
72 | 73 | 74 | 108 | 109 | 110 | 111 | 112 | 113 | 116 | 117 | 118 | 119 | 120 | --------------------------------------------------------------------------------