Commits on Jun 3, 2017
  1. Support new gcc 6 warnings

    snogglethorpe committed Jun 3, 2017
    The following warning options are new in gcc 6, and not turned on by
    default or by -Wall / -Wextra:
    [-Wnull-dereference has already turned up a bug!]
  2. Fix possible null dereference in

    snogglethorpe committed Jun 3, 2017
    Caught by gcc6 -Wnull-dereference.
  3. Update comment syntax in SWIG input files

    snogglethorpe committed Jun 3, 2017
    SWIG version 3 no longer supports "#" as a comment prefix, so
    use "//" instead.
    [It's not clear to me whether the "#" syntax was really ever
    explicitly supported, but it did work with older versions of
Commits on Dec 13, 2014
  1. Disable use of "extern template" by default

    snogglethorpe committed Dec 13, 2014
    Although there's a configure test for the extern-template problem with
    gcc 4.9 (which seems to be fixed in the gcc development versio),
    another, different, problem with mixing extern-template and -flto has
    shown up in the gcc development version.
    The gain from using extern template isn't all that huge, so for the
    moment it seems simpler just not to use it.
Commits on Sep 4, 2014
  1. Use -pthread for configuration too

    snogglethorpe committed Sep 4, 2014
    This is necessary for some thread-related configuration tests to do
    the right thing in some cases (and in general it's desirable for
    configuration to use an environment similar the actual build).
  2. Link against -lm if necessary

    snogglethorpe committed Sep 4, 2014
    Explicitly linking with -lm isn't necessary when using libstdc++ (the
    default for gcc), as it pulls in -lm itself, but this isn't true of
Commits on Aug 20, 2014
  1. Enable use of "extern template" by default

    snogglethorpe committed Aug 20, 2014
    Now that we have a configure check for the problem we were working
    around, we can re-enable "extern template" by default.
  2. Test for broken "extern template"

    snogglethorpe committed Aug 20, 2014
    Certain versions of gcc (at least, 4.9, and some trunk versions
    following that) have problems when "extern template" and -flto are
    used together together with some files _not_ using -flto.
    Test for that condition and disable "extern template" if we detect it.
  3. Don't create null references in Ref

    snogglethorpe committed Aug 20, 2014
    Ref used to get the underlying pointer of another Ref object by doing
    "&*OTHER", where the "*" would invoked Ref::operator*.  In the case
    where OTHER.obj is null, this would return a "null reference" which is
    not a valid thing in C++.
    This actually worked correctly in most cases, because we'd immediately
    take the address, and given the way C++ compilers implement
    references, it would all sort of work out.  However it's still not
    valid code, and was causing crashes when compiled with recent versions
    of clang.
    Fix this simply by directly getting the pointer, instead of going
    through a reference.
  4. Disable use of "extern template" by default

    snogglethorpe committed Aug 20, 2014
    Using "extern template" tickles bugs in gcc 4.9, and the benefit from
    using it is fairly small these days, so just disable it.
  5. Fix docstring for --disable-lto

    snogglethorpe committed Aug 20, 2014
    It's enabled by default, so the doc should mention --disable-lto, not
Commits on Aug 18, 2014
  1. Update NEWS

    snogglethorpe committed Aug 18, 2014
Commits on May 4, 2014
  1. Use gcc-ar and gcc-ranlib if possible

    snogglethorpe committed May 4, 2014
    Recent versions of gcc depend on these wrappers for ar and ranlib to
    make LTO work properly, so look for them and use them if possible.
Commits on Dec 4, 2013
  1. Add per_pixel_random_seeds rendering option

    snogglethorpe committed Dec 4, 2013
    It is used for debugging to make it easier to get consistent results
    across runs.
  2. Add Random::seed method

    snogglethorpe committed Dec 4, 2013
Commits on Dec 2, 2013
Commits on Nov 20, 2013
  1. Add multiple-material support to Mesh class

    snogglethorpe committed Nov 20, 2013
    To avoid adding per-triangle overhead, meshes are now divided into
    "parts," one per material, and triangles are associated with a part.
    Vertices, normals, and UVs are still global in the mesh, so triangles
    in different parts can share the same vertices etc.  This adds a level
    of indirection for accessing mesh-level data, but it doesn't seem to
    make any difference in rendering speed.
    Many mesh file formats use multiple materials in a single mesh, so
    supporting this concept natively makes it easier to properly support
    those formats.
    The Lua mesh loading interface is now split into two different
    functions, load.mesh (for loading entire meshes from mesh formats
    which record materials as well as geometry), and
    load.mesh_geometry (for loading a single mesh part from mesh formats
    that only record geometry).  This is a little messy, and will be
    cleaned up in the future.
Commits on Nov 19, 2013
  1. snoghilite.c: Scale all color components equally

    snogglethorpe committed Nov 19, 2013
    Threshold detection is still done on a per-component basis, but when a
    pixel is above the threshold in any component, all components are
    This avoids weird color fringing.
  2. Export Mesh vertex-groups to Lua as classes

    snogglethorpe committed Nov 19, 2013
    SWIG can't properly handle object destruction for simple pointers
    returned from wrapped functions, so make wrapper classes for
    Mesh::VertexGroup and Mesh::VertexNormalGroup (as SWIG can't handle
    nested classes) and export them as them as classes instead.
Commits on Nov 9, 2013
Commits on Oct 15, 2013
Commits on Oct 13, 2013
  1. sample-set.h: Tweak comments and whitespace

    snogglethorpe committed Oct 13, 2013
    This is a somewhat long header file, so add some more separators to
    try and break things up and make it a little more readable.
Commits on Oct 12, 2013
Commits on Oct 11, 2013