Add gitattributes to force line-ending normalization. Normalize line endings and any tabs to 4 spaces.


Former-commit-id: 0bbf2980f6d64bc47a651895a0c2bb6265bceb02
From now on, don't fixup cr/lf on checkout, only on commit.


Former-commit-id: b8667537f072e64e7ac6a96a187effb75c4c3019
Added xml documentation


Former-commit-id: 1a536e8cc9e4aafecf3406f55001de7791324838
BugFix: TinyCache CanOperate fails if VirtualCacheFile is null

I have reversed the logic in CanOperate as the HasFileIOPermisions
requires a VirtualCacheFile.

I have also put wrappers around HostingEnvironment to facilitate
testing.

I have added a check for CanProcess eventArgs being null. We get a more
sensible excetion that way.
-GravitasExtra


Former-commit-id: b2a4afb8702761eb521044aedf9b87ee5ced3027
TinyCache integration tests

Includes removal of dead code from the Sql reader tests


Former-commit-id: dfe29a6086ef7957ae270f4ee17a3c541baf5384
Add AbstractImageProcessor.InternalGraphicsDrawImage extensibility point for BuilderExtension plugins.


Former-commit-id: 5534e2de00c7a7b6e77507f7f75bb7ba2cedeb23
Add load hint for FastScaling plugin


Former-commit-id: 49a0da915bc7abca74b0bcd6073b8fbc3c48a70a
Core: Add PluginConfig.AddPluginByName(string name, NameValueCollection pluginConfig = null) to enable code-driven installation of arbitrary plugins.

Former-commit-id: 36a2b382f9bbdb4c050bb1ae079f43b7f9df2cdb
Core: Add IProfiler interface and ImageJob.Profiler property.

Former-commit-id: e5b7bc3911c8ecadcb5d802b7a79c0fa95371dcc
Benchmarking: Completey overhaul benchmarking project; add new profiling and benchmarking system to produce call graphs with concurrency effeciency percentages.

Former-commit-id: 8cff39e37d776ee98942eddf858d8b07eb15d633
Add a test to verify percent concurrency math


Former-commit-id: 7394a8afe94f3ba9132e55779fac2e64596adb52
Core bug fix: ImageJob.FinalWidth/Height were reading a different key than ImageBuilder was writing.


Former-commit-id: d980fe45e01738c1fef9d9d091541381b9ad94d0
Core: NoCache will buffer data to memorystream before writing to output stream. InvalidOperationException when accessing stream.Position within Bitmap.save - despite buffer = true.

Former-commit-id: a216a2ab990fbbb1f39164ca2af5a61f646c92e4
Profiling: Fix InvalidOp in ProfilingObserverPlugin when encode actually happens. Add memory usage recording to BenchmarkRunner/result. Add shortcuts to ConcurrencyResultExtensions. Fix directory-not-found errors with ImageProvider when creating blank images.

Former-commit-id: 7c6dcd819fca93c213aee4f5bc5e25b6c2301971
Benchmarking: Add support for comparative benchmarks, memory leak profiling, and segment filtering.

Former-commit-id: d600a301b25cd3678a302e800c5745f11e73eb70
Profiling: Add ConcurrencyResult.ToString() debug info and IConcurrencyResult.PrintDebugTree() Fix Nullrefs when an empty array is provided to Exclusive/InclusiveMs and Invocations.

Former-commit-id: 932b8d3e6c6e4f5384e55a4f715e3504aed6613a
Imazen.Profling is now it's own class library


Former-commit-id: 97c8e542d2e1d3933af97d3c0dfcf7e5b4c54c84
Profiling: Normalize namespaces

Former-commit-id: 5a5e16d787a12dfceb88961a840e886f2aa59ae9
Profiling: Add Imazen.Profiling.Tests project. Test and correct breadth-first traversal algorithm.

Former-commit-id: 878de16ec58dfa5221be30cd7745a61c4c1b248f
Profiling: Fix naming bug causing invalid ConcurrencyResult trees. Add isolation and drop nodes; overhaul traversal and segment finding.

Former-commit-id: f208aabe629b4686ec422fe8b2d20a36d6bed984