Switch branches/tags
spiArn3.5.82.0 spiArn3.5.75.0 spiArn3.5.68.0 spiArn3.5.66.0 spiArn3.5.50.0 spiArn3.5.48.0 spiArn3.5.45.1 spiArn3.5.45.0 spi-v8-Arn3.4.73.6 spi-v7-Arn3.4.73.3 spi-spcomp2-release-42.0-rhel7 spi-spcomp2-release-41.4 spi-spcomp2-release-41.3 spi-spcomp2-release-41.2 spi-spcomp2-release-41.1 spi-spcomp2-release-41.0 spi-spcomp2-release-40.2 spi-spcomp2-release-40.0 spi-spcomp2-release-39.2 spi-spcomp2-release-39.1 spi-spcomp2-release-38.0 spi-SpComp2-v20 spi-SpComp2-v14 spi-SpComp2-v12 spi-SpComp2-v11 spi-SpComp2-v10.1 spi-SpComp2-v10 spi-SpComp2-v9.2 spi-SpComp2-v9 spi-Arn3.6.36.0 spi-Arn3.6.33.4 spi-Arn3.6.27.0 spi-Arn3.6.21.3 spi-Arn3.6.18.0 spi-Arn3.6.7.1 spi-Arn3.5.93.10 spi-Arn3.5.91.0 spi-Arn3.5.90.0 spi-Arn3.5.82.0 spi-Arn3.5.75.0 spi-Arn3.5.68.0 spi-Arn3.5.66.0 spi-Arn3.5.50.0 spi-Arn3.5.48.0 spi-Arn3.5.45.1 spi-Arn3.5.45.0 spi-Arn3.5.41.0 spi-Arn3.5.37.0 spi-Arn3.5.35.0 spi-Arn3.5.31.0 spi-Arn3.5.28.2 spi-Arn3.5.28.0 spi-Arn3.5.26.0 spi-Arn3.5.25.0 spi-Arn3.5.24.0 spi-Arn3.5.16.0 spi-Arn3.5.14.0 spi-Arn3.5.13.1 spi-Arn3.5.12.0 spi-Arn3.5.11.0 spi-Arn3.5.10.0 spi-Arn3.5.8.0 spi-Arn3.5.5.0 spi-Arn3.5.2.0 spi-Arn3.5.0.0 spi-Arn3.4.73.7 spi-Arn3.4.73.6 spi-Arn3.4.72.0 spi-Arn3.4.71.0 arnold- Release-1.8.2dev Release-1.8.1dev Release-1.8.0dev Release-1.7.13 Release-1.7.12 Release-1.7.11 Release-1.7.10 Release-1.7.9 Release-1.7.8 Release-1.7.7 Release-1.7.6RC1 Release-1.7.5beta Release-1.7.4dev Release-1.7.3dev Release-1.7.2dev Release-1.7.1dev Release-1.7.0dev Release-1.6.18 Release-1.6.17 Release-1.6.16 Release-1.6.15 Release-1.6.14 Release-1.6.13 Release-1.6.12 Release-1.6.11 Release-1.6.10 Release-1.6.9 Release-1.6.8 Release-1.6.8RC2 Release-1.6.7RC1
Nothing to show
Commits on Apr 27, 2017

    Use C++11 constexpr and noexcept instead.
    lgritz committed on GitHub Apr 27, 2017
Commits on Apr 26, 2017
  1. Refactor ParamValueList (#1677)

    We can remove most of the complexity of this class by making
    ParamValueList inherit from std::vector<ParamValue> and just add the few
    extra methods we want (like a version of find that is case-insensitive
    on name, but excludes potential matches that are the wrong data type).
    In other words, a change of "has-a" to "is-a" makes most of the code go
    lgritz committed on GitHub Apr 26, 2017
Commits on Apr 21, 2017
  1. oiiotool: make --fit:exact=1 work for all subimages (#1676)

    It was just fitting the first subimage and dropping the others on the floor.
    lgritz committed on GitHub Apr 21, 2017
Commits on Apr 20, 2017
  1. deep_merge: add check for the inputs to have the same channels (#1675)

    lgritz committed on GitHub Apr 20, 2017
  2. EXR input: Fix to canonical sorting order -- typo bug fix (1673)

    A finger malfunction ages ago botched the list of channel names that
    help us sort channels into canonical order. Where I wanted to say
    RA, GA, BA, somehow I said RA, RG, RB. Oh boy.
    lgritz committed Apr 19, 2017
  3. format of PR template

    lgritz committed Apr 20, 2017
  4. Revise PR and Issue templates

    [ci skip]
    lgritz committed Apr 16, 2017
  5. intrusive_ptr bug fix (#1674)

    I realized that if intrusive_ptr<T>::reset(T*) is called with a pointer
    to the same object it already refers to, it could be erroneously freed
    because it was decrementing the existing refcnt before incrementing the
    refcnt of the new value. So rewrote reset() to be safe under that
    lgritz committed on GitHub Apr 20, 2017
Commits on Apr 18, 2017
  1. Fix broken TextureSystem::get_texels() that would crash (1669)

    Simon Smith pointed out on oiio-dev a flaw in TS::get_texels(filename,...)
    where it called itself recursively instead of correctly calling
    This patch contains the fix (the 2-line change in texturesys.cpp).
    I also added a new testsuite entry, and needed to beef up testtex.cpp
    a bit to make it work smoothly to test get_texels().
    lgritz committed Apr 16, 2017
  2. OSX rpath fix and Makefile INSTALL_PREFIX setting (1671)

    1. Some complaints (including failures in OSL TravisCI builds) led me to
    believe that the 'cmake_policy (SET CMP0042 OLD)' was not correct and
    that we should remove that and set MACOS_RPATH ON. This seems to clean
    up some rpath troubles on OSX. It should not have any effect on non-OSX
    2. For the Makefile wrapper, allow INSTALL_PREFIX to be set, which is
    passed along to cmake as CMAKE_INSTALL_PREFIX. It defaults to the usual
    of ./dist/PLATFORM, but this lets you override to, for example, instruct
    the build to put the full installed files in another location. You could
    always do this if invoking cmake directly, but it was tricky for those
    who preferred to use the make wrapper.
    lgritz committed Apr 16, 2017
  3. Fix broken ImageBuf copy constructor from ImageBuf that wraps app buf…

    …fer (1665)
    It was not working, had an assertion.
    Remove the assertion, fix the logic to make it work, add a test.
    While I was there, I moved a histogram test from imagebuf_test.cpp to
    imagebufalgo_test.cpp, it seemed to be more on-topic there.
    lgritz committed Apr 14, 2017
  4. Protect IC::get_image_info against out-of-range subimage or miplevel.…

    … (1672)
    Fixes #1670
    lgritz committed Apr 18, 2017
  5. IBA::resample() and oiiotool --resample extended to work for deep ima…

    …ges. (1668)
    Remember that "resample" is a resize with no filtering or interpolation:
    for each pixel in the destination, is merely copies the source pixel whose
    center is closest to the corresponding spot in the image.
    This patch extends the functionality of ImageBufAlgo::resample() and
    oiiotool --resample, to happily do the obvious thing for "deep" images.
    This lets you quickly (but inaccurately) resize or create different-sized
    proxies for deep images as you would for regular images.
    Some day, it would be nice to extend a true resize() to work for deep
    images, so we can have high-quality deep resizes. But that is going to
    take some head-scratching about how to properly interpolate or filter
    deep images.
    lgritz committed Apr 14, 2017
  6. oiiotool -resize/-resample: revise logic for nonzero origin, crop, ov…

    …erscan (#1667)
    The 'size' specification argument to oiiotool --resize and --resample
    had very unintiutive behavior for images where the display and pixel
    data windows were not the same, especially if the data window had a
    nonzero origin (such as crop or overscan cases).
    The underlying ImageBufAlgo::resize is mapping a display window and
    is more straightforward. So in this patch, we take the oiiotool --resize
    (and --resample) and interpret it as the desired display window size,
    and then compute the approprate pixel window from it, rather than the
    other way around (which was really strange).
    So now you are saying: "oiiotool, here is the size and offset of the
    display window I want for the output. Resize the input image so that its
    original display window maps exactly to the new display window I've told
    you about. Figure out what pixel data window you will need in the output
    to ensure that all of the data pixels in the input will be represented."
    For the usual 99% case where display == data and origins are 0, the
    behavior does not change. But this is definitely easier to control for
    the oddball cases.
    lgritz committed on GitHub Apr 18, 2017
Commits on Apr 14, 2017
  1. Minor build system cleanup and synchronization with OSL (#1664)

    lgritz committed on GitHub Apr 14, 2017
Commits on Apr 13, 2017
  1. Pad the length of pool allocations for ustring::TableRep so that the …

    …next one allocated will also be aligned
    This was noticed by the undefined behavior sanitizer
    fpsunflower committed Apr 13, 2017
Commits on Apr 12, 2017
  1. Namespace overhaul (#1662)

    Mimics recent fix in OSL:
    * Explicitly and automatically build the vMAJOR_MINOR versioning into
      the namespace.
    * Simplify double nested namespace to just one level.
    * Change OIIO_NAMESPACE_USING with `using namespace OIIO` (the macro
    was obfuscating without being short or helpful).
    lgritz committed on GitHub Apr 12, 2017
Commits on Apr 7, 2017
  1. Fix docs typo that misclassified a section as a subsection

    lgritz committed Apr 7, 2017
Commits on Apr 6, 2017
  1. Overhaul ErrorHandler to Remove remaining varargs use. (1653)

    Use variadic template, C++11.
    Also opportunistically eliminated inclusion of some useless headers.
    lgritz committed Mar 31, 2017
  2. atomic.h: remove all the parts needed only for C++ < 11 (1661)

    Now that we have std::atomic, the vast majority of atomic.h can be
    removed. We only keep the things we like that add to the facilities
    of C++11.
    lgritz committed Apr 4, 2017
  3. atomic.h improvements (1661)

    1. atomic_min/max: Some web reading makes me think that our
    implementation of atomic_min and atomic_max ought to use
    compare_exchange_weak rather than compare_exchange_strong. As I
    understand it, the stricter requirements of the strong versions
    (basically, guaranteeing to never have a "false negative" where it
    thinks it needs to try again but it's actually unnecessary) can on some
    architectures lead to much worse performance.
    2. New atomic_fetch_add for std::atomic<float> and <double>. They
    exist, but don't in the current standard support atomic add (so we
    implement them in terms of compare_exchange, which is supported).
    lgritz committed Apr 3, 2017
  4. timer.h: Add handy timed_thread_wedge() (1660)

    It's for helping with benchmarks where you want to see how something scales
    with number of threads.
    Example output:
        threads    time   speedup  efficient  its/thread   range (best of 1)
           1        2.3     1.00x    100.00%   20000000     0.00
           2        1.2     1.97x     98.50%   10000000     0.00
           4        0.7     3.59x     89.86%    5000000     0.00
    lgritz committed Apr 4, 2017
  5. function_view (1660)

    New file, function_view.h, contains the definition for a function_view<>
    template that is a lightweight, non-owning wrapper for a callable
    object. It has much less overhead than a std::function<>, but at the
    expense of being non-owning and needing to ensure that its use does not
    outlast the lifetime of the callable entity it wraps (very analogous to
    the limitations of string_view and array_view).
    lgritz committed Apr 6, 2017
Commits on Apr 3, 2017
  1. Fix some bool vs int warnings on Windows (1659)

    Ray Molenkamp committed with lgritz Apr 3, 2017
  2. Fix Windows warnings about simd types as function args (1659)

    Seems that MSVC will give errors if the simd types are passed on the
    stack by value, since they can't guarantee proper alignment.
    Changing a few instances of these from, say, `float4` to `const float4&`
    fixes it, and should make no performance difference for small inline
    Ray Molenkamp committed with lgritz Apr 3, 2017
  3. Use C++11 vector::emplace_back() (1657)

    Using vector::push_back when constructing a new object can cause
    extra copies or allocations/deallocations. The new (C++11) emplace_back
    grows the vector first and then constructs the object in place, avoiding
    any unnecessary moves, copies, or allocations.
    Thanks, clang-tidy, for finding all of these for us with no hassle.
    lgritz committed Apr 2, 2017
  4. Strutil: extend type-safe variadic fprintf to stream output. (1656)

    Same interface, just pass a std::ostream& instead of a FILE*.
    lgritz committed Apr 1, 2017
Commits on Apr 2, 2017
  1. Comment typo and clarification

    lgritz committed Apr 2, 2017
Commits on Apr 1, 2017
  1. Fix cmake typo

    lgritz committed Apr 1, 2017
  2. ImageCache stats: don't print files as "broken" if they aren't (#1655)

    At the end of the IC/TS stats, there's a list of "broken" files, and
    what printed there were those files which were either broken() or
    Two circumstances lead to the spec being not valid:
    (1) Calls to invalidate() mark the spec as invalid, of course! But just
    because the app invalidated the file (perhaps because it thought the
    file might be subsequently updated on disk and wanted a fresh look at
    it) doesn't mean the file was ever broken.
    (2) When the app requests an ImageCacheFile handle up front (as OSL
    does) but then never opens the file. That also doesn't mean it was
    broken. You just never read from it.
    For both of these circumstances, it's misleading to list the file among
    those that are known to be broken (presumed corrupted or missing).
    lgritz committed on GitHub Apr 1, 2017
Commits on Mar 31, 2017
  1. More conversion of old C header includes to modern C++ style

    lgritz committed Mar 30, 2017
Commits on Mar 30, 2017
  1. Fix includes -- change lots to full <OpenImageIO/blah.h>

    Previously we used a mix of quotes, and sometimes not having the
    OpenImageIO/ qualifier.
    This is helpful in clang-tidy use, because we're including headers
    based on matching OpenImageIO/*.h, as a way to have it analyze all our
    own headers, but no system headers.
    lgritz committed Mar 30, 2017
  2. clang-tidy fixes: include headers in analysys

    The first review of clang-tidy support neglected to use the --header-filter=
    command, thus excluding headers from analysys.
    Also, when tidying headers, if you use -fix, it's very important to
    ensure that only one module is compiled at a time, or two processes
    might try to modify a header at the same time, garbling it.
    lgritz committed Mar 30, 2017
Commits on Mar 29, 2017
  1. Modernize deprecated C style headers to C++ ones (1649)

    This is our first set of changes made by clang-tidy!
    lgritz committed Mar 29, 2017