Skip to content

Commit

Permalink
Merging release v0.7.5
Browse files Browse the repository at this point in the history
  • Loading branch information
pixar-oss committed May 2, 2017
2 parents 4a3f61e + 6dcfc50 commit 2f1494e
Show file tree
Hide file tree
Showing 2,606 changed files with 167,579 additions and 14,161 deletions.
2 changes: 1 addition & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,7 @@ cache:

script:
- mkdir build && cd build
- cmake -DTBB_ROOT_DIR=$HOME/tbb43_20141023oss -DOPENEXR_LOCATION=$HOME/openexr -DOIIO_LOCATION=$HOME/oiio -DOPENSUBDIV_ROOT_DIR=$HOME/osd -DPTEX_LOCATION=$HOME/ptex -DPXR_VALIDATE_GENERATED_CODE=OFF ..
- cmake -DTBB_ROOT_DIR=$HOME/tbb43_20141023oss -DOPENEXR_LOCATION=$HOME/openexr -DOIIO_LOCATION=$HOME/oiio -DOPENSUBDIV_ROOT_DIR=$HOME/osd -DPTEX_LOCATION=$HOME/ptex -DPXR_VALIDATE_GENERATED_CODE=OFF -DPXR_BUILD_TESTS=ON ..
- echo 'Building with -j4'
- make -j4
# Default install location is /usr/local; we need sudo access to write there.
Expand Down
20 changes: 18 additions & 2 deletions BUILDING.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,18 @@ USD contains several optional components that are enabled by default
but may be disabled when invoking cmake. Disabling these components
removes the need for their dependencies when building USD.

##### Documentation

Doxygen documentation can optionally be generated by specifying the cmake flag
```PXR_BUILD_DOCUMENTATION=TRUE```. The additional dependencies that must
be supplied for enabling documentation generation are:

| Dependency Name | Description | Version |
| ------------------ |----------------------------------------------------------------------- | ------- |
| DOXYGEN_EXECUTABLE | The location of Doxygen | 1.8.6 |
| DOT_EXECUTABLE | The location of Dot(from GraphViz). | 2.3 |


##### Imaging

This component contains Hydra, a high-performance graphics rendering engine.
Expand All @@ -23,6 +35,10 @@ Disable this component by specifying the cmake flag ```PXR_BUILD_IMAGING=FALSE``
invoking cmake. Disabling this component will also disable the [USD Imaging](#usd-imaging)
component.

Support for Ptex can optionally be disabled by specifying the cmake flag
```PXR_ENABLE_PTEX_SUPPORT=FALSE```.


##### USD Imaging

This component provides the USD imaging delegates for Hydra, as well as
Expand All @@ -41,7 +57,7 @@ These plugins are not built by default and must be enabled via the instructions

##### Alembic Plugin

Enable the [Alembic](https://https://github.com/alembic/alembic) plugin in the build
Enable the [Alembic](https://github.com/alembic/alembic) plugin in the build
by specifying the cmake flag ```PXR_BUILD_ALEMBIC_PLUGIN=TRUE``` when invoking cmake.
This plugin is compatible with Alembic 1.5.2. The additional dependencies that must be supplied when invoking cmake are:

Expand Down Expand Up @@ -136,7 +152,7 @@ pxr/pxr.h, which facilitates using namespaces:
##### ASCII Parser Editing/Validation

There is an ASCII parser for the USD file format, which can be found in
[sdf](pxr/usd/sdf/). Most users will not have a need to edit the parser, but
[sdf](pxr/usd/lib/sdf/). Most users will not have a need to edit the parser, but
for the adventurous ones, there are a couple additional requirements.

If you choose to edit the ASCII parsers, make sure
Expand Down
111 changes: 111 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,116 @@
# Change Log

## [0.7.5] - 2017-05-01

C++ namespaces are now enabled by default. The `PXR_ENABLE_NAMESPACES` CMake
option may be used to disable namespaces if needed.

This release adds initial experimental support for building the USD core
libraries on Windows.

### Added
- Added ability to build doxygen documentation. See
[BUILDING.md](BUILDING.md#documentation) for more details.
- Added support for pre-compiled headers. By default, this is disabled
for Linux and Mac builds and enabled for Windows builds. This may be
configured with the `PXR_ENABLE_PRECOMPILED_HEADERS` CMake option.
- Added many unit tests for core libraries
- Added UsdStage::Save and UsdStage::SaveSessionLayers
- Added attribute connection feature that allows consumers to describe
connections between an attribute and other prims and properties.
- Added instance proxy feature that allows consumers to interact with
objects on a UsdStage as if scenegraph instancing were not in use while
retaining the performance benefits of instancing.
- Plugins providing Boundable schema types can now register functions for
computing extents. This allows code in the USD core to compute extents for
prims with types provided by external schemas.
- Added support for specializes arcs to usdShade.
- Added UsdUISceneGraphPrimAPI for representing prim display properties.
- Added `HD_DISABLE_TINY_PRIM_CULLING` flag for `TF_DEBUG` to make it easier
to turn off tiny prim culling for debugging.
- Added support for generic metadata to GLSLFX, allowing hardware shaders to
pass information to downstream rendering code.
- Added ability to adjust basic material properties in usdview.
- Plugins can now register MayaPrimWriter subclasses for exporting Maya
nodes to USD prims.
- Added ability to override default motion data (sample times, current time,
shutter open/close) on a per-scope basis in Katana plugin. Users can author
these overrides by modifying the global graph state, then decide to use
the default motion values with or without these overrides applied.

### Changed
- Removed OpenEXR dependency from core libraries. Note that OpenEXR is still
required for imaging.
- Made Ptex dependency optional. It is only required if Ptex support for
imaging is enabled. This is on by default, but can be disabled by specifying
`PXR_ENABLE_PTEX_SUPPORT=FALSE` to CMake.
- Cleaned up and expanded doxygen documentation:
- Added documentation for value clips and scenegraph instancing USD features.
- Enabled XML generation for external tools
- Fixed invalid tags and formatting in several places
- UsdTreeIterator has been replaced by UsdPrimRange, which provides
container-like semantics in C++ (e.g., the ability to use them in range-based
for loops).
- Removed UsdPrim::GetPayload API
- UsdRelationship and UsdAttribute will no longer forward target/connection
paths that point to objects within instances to objects in master prims.
Users can use the new instance proxy functionality to work with these paths
instead.
- Relationships belonging to prims in instances that point to the root of the
instance no longer cause errors.
- Value clip metadata can now be sparsely overridden across composition arcs.
- Deprecated shading property schemas UsdShadeParameter and
UsdShadeInterfaceAttribute. These are replaced by UsdShadeInput, which can
represent both input parameters on shaders and interface inputs on node
graphs.
- The `--compose` command line parameter for usddiff is now `--flatten`
- Numerous cleanup changes for Hydra API. In particular:
- HdEngine::Draw has been retired in favor of HdEngine::Execute.
- HdSceneDelegate::IsInCollection has been deprecated in favor of render-tag
based API.
- Meshes with subdivisionScheme = none will no longer be bilinearly subdivided.
- usdview now displays prim hierarchies beneath instances inline in the
browser. The "Jump to Master" command has been removed in favor of this
new functionality.
- The default specular response in usdview has been reduced by a factor of 5.
- The Maya plugin now excludes attributes during import if they are tagged
with customData specifying them as generated.
- Numerous changes for ongoing Mac and Windows port efforts.
- Changed scoping of built-out point instancer prototypes in Katana plugin
so that their hierarchy more closely matches the original USD hierarchy.

### Fixed
- Added workaround to avoid redefined "_XOPEN_SOURCE" and "_POSIX_C_SOURCE"
macro warnings due to Python includes on Linux. (Issue #1)
- Fixed issue where code would be generated directly into the install location
when running cmake, interfering with the use of make's DESTDIR functionality.
(Issue #84)
- Fixed memory leak when converting Python tuples to C++ GfVec objects.
- Fixed thread-safety issue with `PCP_PRIM_INDEX` and `PCP_PRIM_INDEX_GRAPHS`
`TF_DEBUG` flags. (Issue #157)
- Fixed invalid memory access bug in Pcp
- Fixed memory leak when saving .usdc files.
- Fixed bug with removing an attribute's last time sample in a .usdc file.
- Fixed bug where instance prims with locally-defined variants would incorrectly
share the same master prim.
- Reader-writer locks are now used for various registry to improve performance.
- Improved speed of adding an empty sublayer to an opened stage. In one large
test case, time to add an empty sublayer went from ~30 seconds to ~5 seconds.
- Fixed issues with opening .usda files and files larger than 4GB on Windows.
(Issue #189)
- Fixed backwards compatibility issues with UsdShadeInput and
UsdShadeConnectableAPI.
- Memory footprint has been significantly reduced in Hydra's adjacency tables
for subdivs that contain vertices of high valence.
- Fixed crash in imaging due to invalid textures.
- Fixed shadow banding artifacts when using vertex color with basis curves.
- Fixed buffer overrun when using GPU smooth normals.
- Fixed issue in Maya plugin where multiple assemblies that reference the
same file might all be affected by the edits of one particular assembly
when viewing them via a proxy.
- Fixed issue in Maya plugin where path resolution was being done by the
plugin itself rather than deferring to Usd and Sdf.

## [0.7.4] - 2017-03-03

USD now supports C++ namespaces. They are disabled by default in this release
Expand Down
48 changes: 47 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ set(PXR_PYTHON_SHEBANG "${PYTHON_EXECUTABLE}"
# build files readable.
include(CXXDefaults)
add_definitions(${_PXR_CXX_DEFINITIONS})
set(CMAKE_CXX_FLAGS ${_PXR_CXX_FLAGS})
set(CMAKE_CXX_FLAGS "${_PXR_CXX_FLAGS} ${CMAKE_CXX_FLAGS}")

include(Public)

Expand Down Expand Up @@ -63,3 +63,49 @@ if (${PXR_BUILD_MAYA_PLUGIN})
_enableThirdPartyPlugin("maya")
endif()
endif()

if (${PXR_BUILD_DOCUMENTATION})

# Ensure we have doxygen+graphviz available
find_program(DOXYGEN_EXECUTABLE
NAMES doxygen
)
if (NOT EXISTS ${DOXYGEN_EXECUTABLE})
message(WARNING "Cannot run doc generation, doxygen not found.")
return()
endif()

find_program(DOT_EXECUTABLE
NAMES dot
)
if (NOT EXISTS ${DOT_EXECUTABLE})
message(WARNING "Cannot run doc generation, dot not found.")
return()
endif()

_pxrDoxyConfig_subst()

set(DOCS_DIR "${CMAKE_BINARY_DIR}")
set(GEN_SCRIPT "${PROJECT_SOURCE_DIR}/cmake/macros/generateDocs.py")
set(SOURCE_DIR "${CMAKE_SOURCE_DIR}/pxr")

add_custom_target(
documentation
ALL
COMMAND ${PYTHON_EXECUTABLE} ${GEN_SCRIPT} ${SOURCE_DIR} ${CMAKE_BINARY_DIR} ${DOCS_DIR} ${DOXYGEN_EXECUTABLE} ${DOT_EXECUTABLE}
DEPENDS ${CMAKE_BINARY_DIR}/include/pxr/pxr.h
)

set(BUILT_HTML_DOCS "${DOCS_DIR}/docs/doxy_html")
set(INST_DOCS_ROOT "${CMAKE_INSTALL_PREFIX}/docs")
install(
DIRECTORY ${BUILT_HTML_DOCS}
DESTINATION ${INST_DOCS_ROOT}
)

set(BUILT_XML_DOCS "${DOCS_DIR}/docs/doxy_xml")
install(
DIRECTORY ${BUILT_XML_DOCS}
DESTINATION ${INST_DOCS_ROOT}
)
endif()
86 changes: 86 additions & 0 deletions LICENSE.txt
Original file line number Diff line number Diff line change
Expand Up @@ -291,3 +291,89 @@ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

============================================================
OpenEXR/IlmBase/Half
============================================================

///////////////////////////////////////////////////////////////////////////
//
// Copyright (c) 2002, Industrial Light & Magic, a division of Lucas
// Digital Ltd. LLC
//
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Industrial Light & Magic nor the names of
// its contributors may be used to endorse or promote products derived
// from this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
//
///////////////////////////////////////////////////////////////////////////

============================================================
Apple Technical Q&A QA1361 - Detecting the Debugger
https://developer.apple.com/library/content/qa/qa1361/_index.html
============================================================

Sample code project: Detecting the Debugger
Version: 1.0

Abstract: Shows how to determine if code is being run under the debugger.

IMPORTANT: This Apple software is supplied to you by Apple
Inc. ("Apple") in consideration of your agreement to the following
terms, and your use, installation, modification or redistribution of
this Apple software constitutes acceptance of these terms. If you do
not agree with these terms, please do not use, install, modify or
redistribute this Apple software.

In consideration of your agreement to abide by the following terms, and
subject to these terms, Apple grants you a personal, non-exclusive
license, under Apple's copyrights in this original Apple software (the
"Apple Software"), to use, reproduce, modify and redistribute the Apple
Software, with or without modifications, in source and/or binary forms;
provided that if you redistribute the Apple Software in its entirety and
without modifications, you must retain this notice and the following
text and disclaimers in all such redistributions of the Apple Software.
Neither the name, trademarks, service marks or logos of Apple Inc. may
be used to endorse or promote products derived from the Apple Software
without specific prior written permission from Apple. Except as
expressly stated in this notice, no other rights or licenses, express or
implied, are granted by Apple herein, including but not limited to any
patent rights that may be infringed by your derivative works or by other
works in which the Apple Software may be incorporated.

The Apple Software is provided by Apple on an "AS IS" basis. APPLE
MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION
THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS
FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND
OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.

IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL
OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,
MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED
AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),
STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
28 changes: 19 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,21 +44,31 @@ Currently, the tree will build on Mac, but will not build on Windows.
Dependencies
------------

The Core USD libraries (located in pxr/base and pxr/usd respectively)
have the following dependencies.

| Name | Version |
| ---- | --------- |
| C++ compiler | GCC 4.8, Clang 3.5, MSVC 14.0(VS 2015) |
| C compiler | GCC 4.8, Clang 3.5, MSVC 14.0(VS 2015) |
| [CMake](https://cmake.org/documentation/) | 2.8.8 (Linux/OS X), 3.1.1 (Windows) |
| [Python](https://python.org) | 2.7.5 |
| [Python](https://python.org) | 2.7.5 |
| [Boost](https://boost.org) | 1.55 (Linux), 1.61.0 (OS X/Windows) |
| [OpenEXR](http://www.openexr.com) | 2.2.0 |
| [Intel TBB](https://www.threadingbuildingblocks.org/) | 4.3.1 |
| [OpenSubdiv](https://github.com/PixarAnimationStudios/OpenSubdiv) | 3.0.5 |
| [GLEW](http://glew.sourceforge.net/) | 1.10.0 |
| [OpenImageIO](https://sites.google.com/site/openimageio/home) | 1.5.11 |
| [Ptex](http://ptex.us/) | 2.0.30 |
| [Pyside](http://wiki.qt.io/PySide) | 1.2.2 |
| [PyOpenGL](https://pypi.python.org/pypi/PyOpenGL/3.1.0) | 3.1.0 |
| [Intel TBB](https://www.threadingbuildingblocks.org/) | 4.3.1 |

The Imaging and UsdImaging components (located in pxr/imaging and pxr/usdImaging
respectively) have the following additional dependencies. These components can
be disabled at build-time, for further details see [Advanced Build Configuration](BUILDING.md).

| Name | Version | Optional |
| ---- | --------- | ---------- |
| [OpenSubdiv](https://github.com/PixarAnimationStudios/OpenSubdiv) | 3.0.5 (Linux/OS X), 3.2.0 (Windows) | |
| [GLEW](http://glew.sourceforge.net/) | 1.10.0 | |
| [OpenEXR](http://www.openexr.com) | 2.2.0 | |
| [OpenImageIO](https://sites.google.com/site/openimageio/home) | 1.5.11 | |
| [Ptex](http://ptex.us/) | 2.0.30 | Y |
| [Pyside](http://wiki.qt.io/PySide) | 1.2.2 | |
| [PyOpenGL](https://pypi.python.org/pypi/PyOpenGL/3.1.0) | 3.1.0 | |


Getting and Building the Code
Expand Down
Loading

0 comments on commit 2f1494e

Please sign in to comment.