Animation: Weight Paint select more/less for faces #105607
|
@ -130,7 +130,7 @@ PenaltyReturnTypeOnItsOwnLine: 10000
|
|||
#
|
||||
PenaltyBreakAssignment: 100
|
||||
|
||||
AllowShortFunctionsOnASingleLine: None
|
||||
AllowShortFunctionsOnASingleLine: Empty
|
||||
|
||||
SortIncludes: true
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
# Copyright 2006 Blender Foundation. All rights reserved.
|
||||
# Copyright 2006 Blender Foundation
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# Early Initialization
|
||||
|
|
|
@ -528,10 +528,10 @@ set(XR_OPENXR_SDK_HASH a2623ebab3d0b340bc16311b14f02075)
|
|||
set(XR_OPENXR_SDK_HASH_TYPE MD5)
|
||||
set(XR_OPENXR_SDK_FILE OpenXR-SDK-${XR_OPENXR_SDK_VERSION}.tar.gz)
|
||||
|
||||
set(WL_PROTOCOLS_VERSION 1.21)
|
||||
set(WL_PROTOCOLS_VERSION 1.31)
|
||||
set(WL_PROTOCOLS_FILE wayland-protocols-${WL_PROTOCOLS_VERSION}.tar.gz)
|
||||
set(WL_PROTOCOLS_URI https://gitlab.freedesktop.org/wayland/wayland-protocols/-/archive/${WL_PROTOCOLS_VERSION}/${WL_PROTOCOLS_FILE})
|
||||
set(WL_PROTOCOLS_HASH af5ca07e13517cdbab33504492cef54a)
|
||||
set(WL_PROTOCOLS_HASH a28ff59a56e2ebb746048b6ef8d931d6)
|
||||
set(WL_PROTOCOLS_HASH_TYPE MD5)
|
||||
|
||||
set(WAYLAND_VERSION 1.21.0)
|
||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -1,5 +1,5 @@
|
|||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
# Copyright 2022 Blender Foundation. All rights reserved.
|
||||
# Copyright 2022 Blender Foundation
|
||||
|
||||
# This file is used to test the system for headers & symbols.
|
||||
# Variables should use the `HAVE_` prefix.
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
# Copyright 2006 Blender Foundation. All rights reserved.
|
||||
# Copyright 2006 Blender Foundation
|
||||
|
||||
macro(list_insert_after
|
||||
list_id item_check item_add
|
||||
|
@ -1300,16 +1300,29 @@ macro(windows_install_shared_manifest)
|
|||
endif()
|
||||
if(WINDOWS_INSTALL_DEBUG)
|
||||
set(WINDOWS_CONFIGURATIONS "${WINDOWS_CONFIGURATIONS};Debug")
|
||||
list(APPEND WINDOWS_SHARED_MANIFEST_DEBUG ${WINDOWS_INSTALL_FILES})
|
||||
endif()
|
||||
if(WINDOWS_INSTALL_RELEASE)
|
||||
list(APPEND WINDOWS_SHARED_MANIFEST_RELEASE ${WINDOWS_INSTALL_FILES})
|
||||
set(WINDOWS_CONFIGURATIONS "${WINDOWS_CONFIGURATIONS};Release;RelWithDebInfo;MinSizeRel")
|
||||
endif()
|
||||
install(FILES ${WINDOWS_INSTALL_FILES}
|
||||
CONFIGURATIONS ${WINDOWS_CONFIGURATIONS}
|
||||
DESTINATION "./blender.shared"
|
||||
)
|
||||
if(NOT WITH_PYTHON_MODULE)
|
||||
# Blender executable with manifest.
|
||||
if(WINDOWS_INSTALL_DEBUG)
|
||||
list(APPEND WINDOWS_SHARED_MANIFEST_DEBUG ${WINDOWS_INSTALL_FILES})
|
||||
endif()
|
||||
if(WINDOWS_INSTALL_RELEASE)
|
||||
list(APPEND WINDOWS_SHARED_MANIFEST_RELEASE ${WINDOWS_INSTALL_FILES})
|
||||
endif()
|
||||
install(FILES ${WINDOWS_INSTALL_FILES}
|
||||
CONFIGURATIONS ${WINDOWS_CONFIGURATIONS}
|
||||
DESTINATION "./blender.shared"
|
||||
)
|
||||
else()
|
||||
# Python module without manifest.
|
||||
install(FILES ${WINDOWS_INSTALL_FILES}
|
||||
CONFIGURATIONS ${WINDOWS_CONFIGURATIONS}
|
||||
DESTINATION "./bpy"
|
||||
)
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
macro(windows_generate_manifest)
|
||||
|
@ -1326,24 +1339,28 @@ macro(windows_generate_manifest)
|
|||
endmacro()
|
||||
|
||||
macro(windows_generate_shared_manifest)
|
||||
windows_generate_manifest(
|
||||
FILES "${WINDOWS_SHARED_MANIFEST_DEBUG}"
|
||||
OUTPUT "${CMAKE_BINARY_DIR}/Debug/blender.shared.manifest"
|
||||
NAME "blender.shared"
|
||||
)
|
||||
windows_generate_manifest(
|
||||
FILES "${WINDOWS_SHARED_MANIFEST_RELEASE}"
|
||||
OUTPUT "${CMAKE_BINARY_DIR}/Release/blender.shared.manifest"
|
||||
NAME "blender.shared"
|
||||
)
|
||||
install(
|
||||
FILES ${CMAKE_BINARY_DIR}/Release/blender.shared.manifest
|
||||
DESTINATION "./blender.shared"
|
||||
CONFIGURATIONS Release;RelWithDebInfo;MinSizeRel
|
||||
)
|
||||
install(
|
||||
FILES ${CMAKE_BINARY_DIR}/Debug/blender.shared.manifest
|
||||
DESTINATION "./blender.shared"
|
||||
CONFIGURATIONS Debug
|
||||
)
|
||||
if(WINDOWS_SHARED_MANIFEST_DEBUG)
|
||||
windows_generate_manifest(
|
||||
FILES "${WINDOWS_SHARED_MANIFEST_DEBUG}"
|
||||
OUTPUT "${CMAKE_BINARY_DIR}/Debug/blender.shared.manifest"
|
||||
NAME "blender.shared"
|
||||
)
|
||||
install(
|
||||
FILES ${CMAKE_BINARY_DIR}/Debug/blender.shared.manifest
|
||||
DESTINATION "./blender.shared"
|
||||
CONFIGURATIONS Debug
|
||||
)
|
||||
endif()
|
||||
if(WINDOWS_SHARED_MANIFEST_RELEASE)
|
||||
windows_generate_manifest(
|
||||
FILES "${WINDOWS_SHARED_MANIFEST_RELEASE}"
|
||||
OUTPUT "${CMAKE_BINARY_DIR}/Release/blender.shared.manifest"
|
||||
NAME "blender.shared"
|
||||
)
|
||||
install(
|
||||
FILES ${CMAKE_BINARY_DIR}/Release/blender.shared.manifest
|
||||
DESTINATION "./blender.shared"
|
||||
CONFIGURATIONS Release;RelWithDebInfo;MinSizeRel
|
||||
)
|
||||
endif()
|
||||
endmacro()
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
# Copyright 2016 Blender Foundation. All rights reserved.
|
||||
# Copyright 2016 Blender Foundation
|
||||
|
||||
# Libraries configuration for Apple.
|
||||
|
||||
|
@ -245,6 +245,7 @@ if(WITH_BOOST)
|
|||
if(WITH_USD AND USD_PYTHON_SUPPORT)
|
||||
list(APPEND _boost_FIND_COMPONENTS python${PYTHON_VERSION_NO_DOTS})
|
||||
endif()
|
||||
set(Boost_NO_WARN_NEW_VERSIONS ON)
|
||||
find_package(Boost COMPONENTS ${_boost_FIND_COMPONENTS})
|
||||
|
||||
# Boost Python is separate to avoid linking Python into tests that don't need it.
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
# Copyright 2016 Blender Foundation. All rights reserved.
|
||||
# Copyright 2016 Blender Foundation
|
||||
|
||||
# Xcode and system configuration for Apple.
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
# Copyright 2022 Blender Foundation. All rights reserved.
|
||||
# Copyright 2022 Blender Foundation
|
||||
|
||||
# Auto update existing CMake caches for new libraries.
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
# Copyright 2016 Blender Foundation. All rights reserved.
|
||||
# Copyright 2016 Blender Foundation
|
||||
|
||||
# Libraries configuration for any *nix system including Linux and Unix (excluding APPLE).
|
||||
|
||||
|
@ -394,6 +394,7 @@ if(WITH_BOOST)
|
|||
list(APPEND __boost_packages python${PYTHON_VERSION_NO_DOTS})
|
||||
endif()
|
||||
list(APPEND __boost_packages system)
|
||||
set(Boost_NO_WARN_NEW_VERSIONS ON)
|
||||
find_package(Boost 1.48 COMPONENTS ${__boost_packages})
|
||||
if(NOT Boost_FOUND)
|
||||
# try to find non-multithreaded if -mt not found, this flag
|
||||
|
@ -645,7 +646,7 @@ if(WITH_GHOST_WAYLAND)
|
|||
else()
|
||||
# Rocky8 packages have too old a version, a newer version exist in the pre-compiled libraries.
|
||||
find_path(WAYLAND_PROTOCOLS_DIR
|
||||
NAMES unstable/xdg-decoration/xdg-decoration-unstable-v1.xml
|
||||
NAMES staging/xdg-activation/xdg-activation-v1.xml
|
||||
PATH_SUFFIXES share/wayland-protocols
|
||||
PATHS ${LIBDIR}/wayland-protocols
|
||||
)
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
# Copyright 2016 Blender Foundation. All rights reserved.
|
||||
# Copyright 2016 Blender Foundation
|
||||
|
||||
# Libraries configuration for Windows.
|
||||
|
||||
|
@ -114,12 +114,13 @@ add_definitions(-D_WIN32_WINNT=0x603)
|
|||
# First generate the manifest for tests since it will not need the dependency on the CRT.
|
||||
configure_file(${CMAKE_SOURCE_DIR}/release/windows/manifest/blender.exe.manifest.in ${CMAKE_CURRENT_BINARY_DIR}/tests.exe.manifest @ONLY)
|
||||
|
||||
if(WITH_WINDOWS_BUNDLE_CRT)
|
||||
set(CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP TRUE)
|
||||
set(CMAKE_INSTALL_UCRT_LIBRARIES TRUE)
|
||||
set(CMAKE_INSTALL_OPENMP_LIBRARIES ${WITH_OPENMP})
|
||||
include(InstallRequiredSystemLibraries)
|
||||
# Always detect CRT paths, but only manually install with WITH_WINDOWS_BUNDLE_CRT.
|
||||
set(CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP TRUE)
|
||||
set(CMAKE_INSTALL_UCRT_LIBRARIES TRUE)
|
||||
set(CMAKE_INSTALL_OPENMP_LIBRARIES ${WITH_OPENMP})
|
||||
include(InstallRequiredSystemLibraries)
|
||||
|
||||
if(WITH_WINDOWS_BUNDLE_CRT)
|
||||
# ucrtbase(d).dll cannot be in the manifest, due to the way windows 10 handles
|
||||
# redirects for this dll, for details see #88813.
|
||||
foreach(lib ${CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS})
|
||||
|
@ -141,7 +142,9 @@ if(WITH_WINDOWS_BUNDLE_CRT)
|
|||
install(FILES ${CMAKE_BINARY_DIR}/blender.crt.manifest DESTINATION ./blender.crt)
|
||||
set(BUNDLECRT "<dependency><dependentAssembly><assemblyIdentity type=\"win32\" name=\"blender.crt\" version=\"1.0.0.0\" /></dependentAssembly></dependency>")
|
||||
endif()
|
||||
set(BUNDLECRT "${BUNDLECRT}<dependency><dependentAssembly><assemblyIdentity type=\"win32\" name=\"blender.shared\" version=\"1.0.0.0\" /></dependentAssembly></dependency>")
|
||||
if(NOT WITH_PYTHON_MODULE)
|
||||
set(BUNDLECRT "${BUNDLECRT}<dependency><dependentAssembly><assemblyIdentity type=\"win32\" name=\"blender.shared\" version=\"1.0.0.0\" /></dependentAssembly></dependency>")
|
||||
endif()
|
||||
configure_file(${CMAKE_SOURCE_DIR}/release/windows/manifest/blender.exe.manifest.in ${CMAKE_CURRENT_BINARY_DIR}/blender.exe.manifest @ONLY)
|
||||
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
# Copyright 2006 Blender Foundation. All rights reserved.
|
||||
# Copyright 2006 Blender Foundation
|
||||
|
||||
# Libs that adhere to strict flags
|
||||
add_subdirectory(curve_fit_nd)
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
# Copyright 2008 Blender Foundation. All rights reserved.
|
||||
# Copyright 2008 Blender Foundation
|
||||
|
||||
set(INC
|
||||
include
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
# Copyright 2006 Blender Foundation. All rights reserved.
|
||||
# Copyright 2006 Blender Foundation
|
||||
|
||||
# avoid noisy warnings
|
||||
if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_C_COMPILER_ID MATCHES "Clang")
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
# Copyright 2012 Blender Foundation. All rights reserved.
|
||||
# Copyright 2012 Blender Foundation
|
||||
|
||||
set(INC
|
||||
.
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
# Copyright 2006 Blender Foundation. All rights reserved.
|
||||
# Copyright 2006 Blender Foundation
|
||||
|
||||
set(INC
|
||||
.
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
# Copyright 2006 Blender Foundation. All rights reserved.
|
||||
# Copyright 2006 Blender Foundation
|
||||
|
||||
set(INC
|
||||
.
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
# Copyright 2019 Blender Foundation. All rights reserved.
|
||||
# Copyright 2019 Blender Foundation
|
||||
|
||||
# Build Draco library.
|
||||
add_subdirectory(draco)
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
Project: fast_float
|
||||
URL: https://github.com/fastfloat/fast_float
|
||||
License: MIT
|
||||
Upstream version: 3.4.0 (b7f9d6c)
|
||||
Upstream version: 4.0.0 (fbd5bd7, 2023 Mar 31)
|
||||
Local modifications:
|
||||
|
||||
- Took only the fast_float.h header and the license/readme files
|
||||
|
|
|
@ -1,12 +1,5 @@
|
|||
## fast_float number parsing library: 4x faster than strtod
|
||||
|
||||
![Ubuntu 20.04 CI (GCC 9)](https://github.com/lemire/fast_float/workflows/Ubuntu%2020.04%20CI%20(GCC%209)/badge.svg)
|
||||
![Ubuntu 18.04 CI (GCC 7)](https://github.com/lemire/fast_float/workflows/Ubuntu%2018.04%20CI%20(GCC%207)/badge.svg)
|
||||
![Alpine Linux](https://github.com/lemire/fast_float/workflows/Alpine%20Linux/badge.svg)
|
||||
![MSYS2-CI](https://github.com/lemire/fast_float/workflows/MSYS2-CI/badge.svg)
|
||||
![VS16-CLANG-CI](https://github.com/lemire/fast_float/workflows/VS16-CLANG-CI/badge.svg)
|
||||
[![VS16-CI](https://github.com/fastfloat/fast_float/actions/workflows/vs16-ci.yml/badge.svg)](https://github.com/fastfloat/fast_float/actions/workflows/vs16-ci.yml)
|
||||
|
||||
The fast_float library provides fast header-only implementations for the C++ from_chars
|
||||
functions for `float` and `double` types. These functions convert ASCII strings representing
|
||||
decimal values (e.g., `1.3e10`) into binary types. We provide exact rounding (including
|
||||
|
@ -28,8 +21,8 @@ struct from_chars_result {
|
|||
```
|
||||
|
||||
It parses the character sequence [first,last) for a number. It parses floating-point numbers expecting
|
||||
a locale-independent format equivalent to the C++17 from_chars function.
|
||||
The resulting floating-point value is the closest floating-point values (using either float or double),
|
||||
a locale-independent format equivalent to the C++17 from_chars function.
|
||||
The resulting floating-point value is the closest floating-point values (using either float or double),
|
||||
using the "round to even" convention for values that would otherwise fall right in-between two values.
|
||||
That is, we provide exact parsing according to the IEEE standard.
|
||||
|
||||
|
@ -47,7 +40,7 @@ Example:
|
|||
``` C++
|
||||
#include "fast_float/fast_float.h"
|
||||
#include <iostream>
|
||||
|
||||
|
||||
int main() {
|
||||
const std::string input = "3.1416 xyz ";
|
||||
double result;
|
||||
|
@ -60,39 +53,60 @@ int main() {
|
|||
|
||||
|
||||
Like the C++17 standard, the `fast_float::from_chars` functions take an optional last argument of
|
||||
the type `fast_float::chars_format`. It is a bitset value: we check whether
|
||||
the type `fast_float::chars_format`. It is a bitset value: we check whether
|
||||
`fmt & fast_float::chars_format::fixed` and `fmt & fast_float::chars_format::scientific` are set
|
||||
to determine whether we allow the fixed point and scientific notation respectively.
|
||||
The default is `fast_float::chars_format::general` which allows both `fixed` and `scientific`.
|
||||
|
||||
The library seeks to follow the C++17 (see [20.19.3](http://eel.is/c++draft/charconv.from.chars).(7.1)) specification.
|
||||
The library seeks to follow the C++17 (see [20.19.3](http://eel.is/c++draft/charconv.from.chars).(7.1)) specification.
|
||||
* The `from_chars` function does not skip leading white-space characters.
|
||||
* [A leading `+` sign](https://en.cppreference.com/w/cpp/utility/from_chars) is forbidden.
|
||||
* It is generally impossible to represent a decimal value exactly as binary floating-point number (`float` and `double` types). We seek the nearest value. We round to an even mantissa when we are in-between two binary floating-point numbers.
|
||||
* It is generally impossible to represent a decimal value exactly as binary floating-point number (`float` and `double` types). We seek the nearest value. We round to an even mantissa when we are in-between two binary floating-point numbers.
|
||||
|
||||
Furthermore, we have the following restrictions:
|
||||
* We only support `float` and `double` types at this time.
|
||||
* We only support the decimal format: we do not support hexadecimal strings.
|
||||
* For values that are either very large or very small (e.g., `1e9999`), we represent it using the infinity or negative infinity value.
|
||||
* For values that are either very large or very small (e.g., `1e9999`), we represent it using the infinity or negative infinity value and the returned `ec` is set to `std::errc::result_out_of_range`.
|
||||
|
||||
We support Visual Studio, macOS, Linux, freeBSD. We support big and little endian. We support 32-bit and 64-bit systems.
|
||||
|
||||
We assume that the rounding mode is set to nearest (`std::fegetround() == FE_TONEAREST`).
|
||||
|
||||
## C++20: compile-time evaluation (constexpr)
|
||||
|
||||
In C++20, you may use `fast_float::from_chars` to parse strings
|
||||
at compile-time, as in the following example:
|
||||
|
||||
```C++
|
||||
// consteval forces compile-time evaluation of the function in C++20.
|
||||
consteval double parse(std::string_view input) {
|
||||
double result;
|
||||
auto answer = fast_float::from_chars(input.data(), input.data()+input.size(), result);
|
||||
if(answer.ec != std::errc()) { return -1.0; }
|
||||
return result;
|
||||
}
|
||||
|
||||
// This function should compile to a function which
|
||||
// merely returns 3.1415.
|
||||
constexpr double constexptest() {
|
||||
return parse("3.1415 input");
|
||||
}
|
||||
```
|
||||
|
||||
## Using commas as decimal separator
|
||||
|
||||
|
||||
The C++ standard stipulate that `from_chars` has to be locale-independent. In
|
||||
particular, the decimal separator has to be the period (`.`). However,
|
||||
some users still want to use the `fast_float` library with in a locale-dependent
|
||||
particular, the decimal separator has to be the period (`.`). However,
|
||||
some users still want to use the `fast_float` library with in a locale-dependent
|
||||
manner. Using a separate function called `from_chars_advanced`, we allow the users
|
||||
to pass a `parse_options` instance which contains a custom decimal separator (e.g.,
|
||||
to pass a `parse_options` instance which contains a custom decimal separator (e.g.,
|
||||
the comma). You may use it as follows.
|
||||
|
||||
```C++
|
||||
#include "fast_float/fast_float.h"
|
||||
#include <iostream>
|
||||
|
||||
|
||||
int main() {
|
||||
const std::string input = "3,1416 xyz ";
|
||||
double result;
|
||||
|
@ -104,25 +118,62 @@ int main() {
|
|||
}
|
||||
```
|
||||
|
||||
You can parse delimited numbers:
|
||||
```C++
|
||||
const std::string input = "234532.3426362,7869234.9823,324562.645";
|
||||
double result;
|
||||
auto answer = fast_float::from_chars(input.data(), input.data()+input.size(), result);
|
||||
if(answer.ec != std::errc()) {
|
||||
// check error
|
||||
}
|
||||
// we have result == 234532.3426362.
|
||||
if(answer.ptr[0] != ',') {
|
||||
// unexpected delimiter
|
||||
}
|
||||
answer = fast_float::from_chars(answer.ptr + 1, input.data()+input.size(), result);
|
||||
if(answer.ec != std::errc()) {
|
||||
// check error
|
||||
}
|
||||
// we have result == 7869234.9823.
|
||||
if(answer.ptr[0] != ',') {
|
||||
// unexpected delimiter
|
||||
}
|
||||
answer = fast_float::from_chars(answer.ptr + 1, input.data()+input.size(), result);
|
||||
if(answer.ec != std::errc()) {
|
||||
// check error
|
||||
}
|
||||
// we have result == 324562.645.
|
||||
```
|
||||
|
||||
## Reference
|
||||
|
||||
- Daniel Lemire, [Number Parsing at a Gigabyte per Second](https://arxiv.org/abs/2101.11408), Software: Pratice and Experience 51 (8), 2021.
|
||||
## Relation With Other Work
|
||||
|
||||
The fast_float library is part of:
|
||||
|
||||
- GCC (as of version 12): the `from_chars` function in GCC relies on fast_float.
|
||||
- [WebKit](https://github.com/WebKit/WebKit), the engine behind Safari (Apple's web browser)
|
||||
|
||||
|
||||
The fastfloat algorithm is part of the [LLVM standard libraries](https://github.com/llvm/llvm-project/commit/87c016078ad72c46505461e4ff8bfa04819fe7ba).
|
||||
|
||||
There is a [derived implementation part of AdaCore](https://github.com/AdaCore/VSS).
|
||||
|
||||
|
||||
The fast_float library provides a performance similar to that of the [fast_double_parser](https://github.com/lemire/fast_double_parser) library but using an updated algorithm reworked from the ground up, and while offering an API more in line with the expectations of C++ programmers. The fast_double_parser library is part of the [Microsoft LightGBM machine-learning framework](https://github.com/microsoft/LightGBM).
|
||||
|
||||
## References
|
||||
|
||||
- Daniel Lemire, [Number Parsing at a Gigabyte per Second](https://arxiv.org/abs/2101.11408), Software: Practice and Experience 51 (8), 2021.
|
||||
- Noble Mushtak, Daniel Lemire, [Fast Number Parsing Without Fallback](https://arxiv.org/abs/2212.06644), Software: Practice and Experience (to appear)
|
||||
|
||||
## Other programming languages
|
||||
|
||||
- [There is an R binding](https://github.com/eddelbuettel/rcppfastfloat) called `rcppfastfloat`.
|
||||
- [There is a Rust port of the fast_float library](https://github.com/aldanor/fast-float-rust/) called `fast-float-rust`.
|
||||
- [There is a Java port of the fast_float library](https://github.com/wrandelshofer/FastDoubleParser) called `FastDoubleParser`.
|
||||
- [There is a Java port of the fast_float library](https://github.com/wrandelshofer/FastDoubleParser) called `FastDoubleParser`. It used for important systems such as [Jackson](https://github.com/FasterXML/jackson-core).
|
||||
- [There is a C# port of the fast_float library](https://github.com/CarlVerret/csFastFloat) called `csFastFloat`.
|
||||
|
||||
|
||||
## Relation With Other Work
|
||||
|
||||
The fastfloat algorithm is part of the [LLVM standard libraries](https://github.com/llvm/llvm-project/commit/87c016078ad72c46505461e4ff8bfa04819fe7ba).
|
||||
|
||||
The fast_float library provides a performance similar to that of the [fast_double_parser](https://github.com/lemire/fast_double_parser) library but using an updated algorithm reworked from the ground up, and while offering an API more in line with the expectations of C++ programmers. The fast_double_parser library is part of the [Microsoft LightGBM machine-learning framework](https://github.com/microsoft/LightGBM).
|
||||
|
||||
## Users
|
||||
|
||||
The fast_float library is used by [Apache Arrow](https://github.com/apache/arrow/pull/8494) where it multiplied the number parsing speed by two or three times. It is also used by [Yandex ClickHouse](https://github.com/ClickHouse/ClickHouse) and by [Google Jsonnet](https://github.com/google/jsonnet).
|
||||
|
@ -135,14 +186,14 @@ It can parse random floating-point numbers at a speed of 1 GB/s on some systems.
|
|||
<img src="http://lemire.me/blog/wp-content/uploads/2020/11/fastfloat_speed.png" width="400">
|
||||
|
||||
```
|
||||
$ ./build/benchmarks/benchmark
|
||||
$ ./build/benchmarks/benchmark
|
||||
# parsing random integers in the range [0,1)
|
||||
volume = 2.09808 MB
|
||||
netlib : 271.18 MB/s (+/- 1.2 %) 12.93 Mfloat/s
|
||||
doubleconversion : 225.35 MB/s (+/- 1.2 %) 10.74 Mfloat/s
|
||||
strtod : 190.94 MB/s (+/- 1.6 %) 9.10 Mfloat/s
|
||||
abseil : 430.45 MB/s (+/- 2.2 %) 20.52 Mfloat/s
|
||||
fastfloat : 1042.38 MB/s (+/- 9.9 %) 49.68 Mfloat/s
|
||||
volume = 2.09808 MB
|
||||
netlib : 271.18 MB/s (+/- 1.2 %) 12.93 Mfloat/s
|
||||
doubleconversion : 225.35 MB/s (+/- 1.2 %) 10.74 Mfloat/s
|
||||
strtod : 190.94 MB/s (+/- 1.6 %) 9.10 Mfloat/s
|
||||
abseil : 430.45 MB/s (+/- 2.2 %) 20.52 Mfloat/s
|
||||
fastfloat : 1042.38 MB/s (+/- 9.9 %) 49.68 Mfloat/s
|
||||
```
|
||||
|
||||
See https://github.com/lemire/simple_fastfloat_benchmark for our benchmarking code.
|
||||
|
@ -183,23 +234,23 @@ You should change the `GIT_TAG` line so that you recover the version you wish to
|
|||
|
||||
## Using as single header
|
||||
|
||||
The script `script/amalgamate.py` may be used to generate a single header
|
||||
The script `script/amalgamate.py` may be used to generate a single header
|
||||
version of the library if so desired.
|
||||
Just run the script from the root directory of this repository.
|
||||
Just run the script from the root directory of this repository.
|
||||
You can customize the license type and output file if desired as described in
|
||||
the command line help.
|
||||
|
||||
You may directly download automatically generated single-header files:
|
||||
|
||||
https://github.com/fastfloat/fast_float/releases/download/v1.1.2/fast_float.h
|
||||
https://github.com/fastfloat/fast_float/releases/download/v3.4.0/fast_float.h
|
||||
|
||||
## Credit
|
||||
|
||||
Though this work is inspired by many different people, this work benefited especially from exchanges with
|
||||
Michael Eisel, who motivated the original research with his key insights, and with Nigel Tao who provided
|
||||
Though this work is inspired by many different people, this work benefited especially from exchanges with
|
||||
Michael Eisel, who motivated the original research with his key insights, and with Nigel Tao who provided
|
||||
invaluable feedback. Rémy Oudompheng first implemented a fast path we use in the case of long digits.
|
||||
|
||||
The library includes code adapted from Google Wuffs (written by Nigel Tao) which was originally published
|
||||
The library includes code adapted from Google Wuffs (written by Nigel Tao) which was originally published
|
||||
under the Apache 2.0 license.
|
||||
|
||||
## License
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,5 +1,5 @@
|
|||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
# Copyright 2016 Blender Foundation. All rights reserved.
|
||||
# Copyright 2016 Blender Foundation
|
||||
|
||||
# Too noisy for code we don't maintain.
|
||||
if(CMAKE_COMPILER_IS_GNUCC)
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
# Copyright 2016 Blender Foundation. All rights reserved.
|
||||
# Copyright 2016 Blender Foundation
|
||||
|
||||
set(INC
|
||||
src
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
# Copyright 2014 Blender Foundation. All rights reserved.
|
||||
# Copyright 2014 Blender Foundation
|
||||
|
||||
set(INC
|
||||
.
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
# Copyright 2014 Blender Foundation. All rights reserved.
|
||||
# Copyright 2014 Blender Foundation
|
||||
|
||||
# avoid noisy warnings
|
||||
if(CMAKE_COMPILER_IS_GNUCC)
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
# Copyright 2021 Blender Foundation. All rights reserved.
|
||||
# Copyright 2021 Blender Foundation
|
||||
|
||||
set(INC
|
||||
.
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
# Copyright 2006 Blender Foundation. All rights reserved.
|
||||
# Copyright 2006 Blender Foundation
|
||||
|
||||
# avoid noisy warnings
|
||||
if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_C_COMPILER_ID MATCHES "Clang")
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
# Copyright 2006 Blender Foundation. All rights reserved.
|
||||
# Copyright 2006 Blender Foundation
|
||||
|
||||
remove_strict_flags()
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
# Copyright 2016 Blender Foundation. All rights reserved.
|
||||
# Copyright 2016 Blender Foundation
|
||||
# The Original Code is: all of this file.
|
||||
# Contributor(s): Sebastian Barschkis (sebbas).
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
# Copyright 2019 Blender Foundation. All rights reserved.
|
||||
# Copyright 2019 Blender Foundation
|
||||
|
||||
# avoid noisy warnings
|
||||
if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_C_COMPILER_ID MATCHES "Clang")
|
||||
|
|
|
@ -231,3 +231,22 @@ index 355ee008246..a770bbee60c 100644
|
|||
}
|
||||
allocator.deallocate(values, capacity);
|
||||
capacity = 0;
|
||||
diff --git a/extern/quadriflow/src/hierarchy.cpp b/extern/quadriflow/src/hierarchy.cpp
|
||||
index 8cc41da23d0..70a9628320f 100644
|
||||
--- a/extern/quadriflow/src/hierarchy.cpp
|
||||
+++ b/extern/quadriflow/src/hierarchy.cpp
|
||||
@@ -269,7 +269,13 @@ void Hierarchy::DownsampleGraph(const AdjacentMatrix adj, const MatrixXd& V, con
|
||||
for (auto it = ad.begin(); it != ad.end(); ++it, ++entry_it) {
|
||||
int k = it->id;
|
||||
double dp = N.col(i).dot(N.col(k));
|
||||
- double ratio = A[i] > A[k] ? (A[i] / A[k]) : (A[k] / A[i]);
|
||||
+ double ratio;
|
||||
+ if (A[i] > A[k]) {
|
||||
+ ratio = (A[k] == 0.0f) ? 1.0f : A[i] / A[k];
|
||||
+ }
|
||||
+ else {
|
||||
+ ratio = (A[i] == 0.0f) ? 1.0f : A[k] / A[i];
|
||||
+ }
|
||||
*entry_it = Entry(i, k, dp * ratio);
|
||||
}
|
||||
}
|
|
@ -269,7 +269,13 @@ void Hierarchy::DownsampleGraph(const AdjacentMatrix adj, const MatrixXd& V, con
|
|||
for (auto it = ad.begin(); it != ad.end(); ++it, ++entry_it) {
|
||||
int k = it->id;
|
||||
double dp = N.col(i).dot(N.col(k));
|
||||
double ratio = A[i] > A[k] ? (A[i] / A[k]) : (A[k] / A[i]);
|
||||
double ratio;
|
||||
if (A[i] > A[k]) {
|
||||
ratio = (A[k] == 0.0f) ? 1.0f : A[i] / A[k];
|
||||
}
|
||||
else {
|
||||
ratio = (A[i] == 0.0f) ? 1.0f : A[k] / A[i];
|
||||
}
|
||||
*entry_it = Entry(i, k, dp * ratio);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
|
||||
#include "loader.hpp"
|
||||
|
||||
#include <cstdint>
|
||||
#include <fstream>
|
||||
#include <unordered_map>
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
# Copyright 2006 Blender Foundation. All rights reserved.
|
||||
# Copyright 2006 Blender Foundation
|
||||
|
||||
set(INC
|
||||
.
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
# Copyright 2017 Blender Foundation. All rights reserved.
|
||||
# Copyright 2017 Blender Foundation
|
||||
# The Original Code is: all of this file.
|
||||
# Contributor(s): IRIE Shinsuke.
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
# Copyright 2022 Blender Foundation. All rights reserved.
|
||||
# Copyright 2022 Blender Foundation
|
||||
|
||||
set(INC
|
||||
.
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0-or-later
|
||||
* Copyright 2022 Blender Foundation. All rights reserved. */
|
||||
* Copyright 2022 Blender Foundation */
|
||||
|
||||
#ifdef __APPLE__
|
||||
# include <MoltenVK/vk_mvk_moltenvk.h>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
# Copyright 2013 Blender Foundation. All rights reserved.
|
||||
# Copyright 2013 Blender Foundation
|
||||
|
||||
set(INC
|
||||
.
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
# Copyright 2012 Blender Foundation. All rights reserved.
|
||||
# Copyright 2012 Blender Foundation
|
||||
|
||||
set(INC
|
||||
.
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
# Copyright 2006 Blender Foundation. All rights reserved.
|
||||
# Copyright 2006 Blender Foundation
|
||||
|
||||
# add_subdirectory(atomic) # header only
|
||||
add_subdirectory(atomic)
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
# Copyright 2020 Blender Foundation. All rights reserved.
|
||||
# Copyright 2020 Blender Foundation
|
||||
|
||||
set(INC
|
||||
.
|
||||
|
|
|
@ -38,10 +38,8 @@
|
|||
* along with this program; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* The Original Code is Copyright (C) 2016 Blender Foundation.
|
||||
* All rights reserved.
|
||||
*
|
||||
* The Original Code is: adapted from jemalloc.
|
||||
* The Original Code is adapted from jemalloc.
|
||||
* Modifications Copyright (C) 2016 Blender Foundation.
|
||||
*/
|
||||
|
||||
/** \file
|
||||
|
|
|
@ -38,10 +38,8 @@
|
|||
* along with this program; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* The Original Code is Copyright (C) 2016 Blender Foundation.
|
||||
* All rights reserved.
|
||||
*
|
||||
* The Original Code is: adapted from jemalloc.
|
||||
* The Original Code is adapted from jemalloc.
|
||||
* Modifications Copyright (C) 2016 Blender Foundation.
|
||||
*/
|
||||
|
||||
/** \file
|
||||
|
|
|
@ -38,10 +38,8 @@
|
|||
* along with this program; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* The Original Code is Copyright (C) 2016 Blender Foundation.
|
||||
* All rights reserved.
|
||||
*
|
||||
* The Original Code is: adapted from jemalloc.
|
||||
* The Original Code is adapted from jemalloc.
|
||||
* Modifications Copyright (C) 2016 Blender Foundation.
|
||||
*/
|
||||
|
||||
/** \file
|
||||
|
|
|
@ -38,10 +38,8 @@
|
|||
* along with this program; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* The Original Code is Copyright (C) 2016 Blender Foundation.
|
||||
* All rights reserved.
|
||||
*
|
||||
* The Original Code is: adapted from jemalloc.
|
||||
* The Original Code is adapted from jemalloc.
|
||||
* Modifications Copyright (C) 2016 Blender Foundation.
|
||||
*/
|
||||
|
||||
/** \file
|
||||
|
|
|
@ -17,9 +17,7 @@ OIIOOutputDriver::OIIOOutputDriver(const string_view filepath,
|
|||
{
|
||||
}
|
||||
|
||||
OIIOOutputDriver::~OIIOOutputDriver()
|
||||
{
|
||||
}
|
||||
OIIOOutputDriver::~OIIOOutputDriver() {}
|
||||
|
||||
void OIIOOutputDriver::write_render_tile(const Tile &tile)
|
||||
{
|
||||
|
|
|
@ -22,9 +22,7 @@ OpenGLDisplayDriver::OpenGLDisplayDriver(const function<bool()> &gl_context_enab
|
|||
{
|
||||
}
|
||||
|
||||
OpenGLDisplayDriver::~OpenGLDisplayDriver()
|
||||
{
|
||||
}
|
||||
OpenGLDisplayDriver::~OpenGLDisplayDriver() {}
|
||||
|
||||
/* --------------------------------------------------------------------
|
||||
* Update procedure.
|
||||
|
|
|
@ -149,9 +149,7 @@ void OpenGLShader::bind(int width, int height)
|
|||
glUniform2f(fullscreen_location_, width, height);
|
||||
}
|
||||
|
||||
void OpenGLShader::unbind()
|
||||
{
|
||||
}
|
||||
void OpenGLShader::unbind() {}
|
||||
|
||||
uint OpenGLShader::get_shader_program()
|
||||
{
|
||||
|
|
|
@ -20,13 +20,9 @@
|
|||
|
||||
CCL_NAMESPACE_BEGIN
|
||||
|
||||
ParticleCurveData::ParticleCurveData()
|
||||
{
|
||||
}
|
||||
ParticleCurveData::ParticleCurveData() {}
|
||||
|
||||
ParticleCurveData::~ParticleCurveData()
|
||||
{
|
||||
}
|
||||
ParticleCurveData::~ParticleCurveData() {}
|
||||
|
||||
static float shaperadius(float shape, float root, float tip, float time)
|
||||
{
|
||||
|
|
|
@ -22,9 +22,7 @@ CCL_NAMESPACE_BEGIN
|
|||
|
||||
template<typename K, typename T, typename Flags = uint> class id_map {
|
||||
public:
|
||||
id_map(Scene *scene_) : scene(scene_)
|
||||
{
|
||||
}
|
||||
id_map(Scene *scene_) : scene(scene_) {}
|
||||
|
||||
~id_map()
|
||||
{
|
||||
|
@ -262,9 +260,7 @@ struct GeometryKey {
|
|||
void *id;
|
||||
Geometry::Type geometry_type;
|
||||
|
||||
GeometryKey(void *id, Geometry::Type geometry_type) : id(id), geometry_type(geometry_type)
|
||||
{
|
||||
}
|
||||
GeometryKey(void *id, Geometry::Type geometry_type) : id(id), geometry_type(geometry_type) {}
|
||||
|
||||
bool operator<(const GeometryKey &k) const
|
||||
{
|
||||
|
|
|
@ -649,9 +649,7 @@ static void attr_create_subd_uv_map(Scene *scene, Mesh *mesh, BL::Mesh &b_mesh,
|
|||
/* Compare vertices by sum of their coordinates. */
|
||||
class VertexAverageComparator {
|
||||
public:
|
||||
VertexAverageComparator(const array<float3> &verts) : verts_(verts)
|
||||
{
|
||||
}
|
||||
VertexAverageComparator(const array<float3> &verts) : verts_(verts) {}
|
||||
|
||||
bool operator()(const int &vert_idx_a, const int &vert_idx_b)
|
||||
{
|
||||
|
|
|
@ -5,13 +5,9 @@
|
|||
|
||||
CCL_NAMESPACE_BEGIN
|
||||
|
||||
BlenderOutputDriver::BlenderOutputDriver(BL::RenderEngine &b_engine) : b_engine_(b_engine)
|
||||
{
|
||||
}
|
||||
BlenderOutputDriver::BlenderOutputDriver(BL::RenderEngine &b_engine) : b_engine_(b_engine) {}
|
||||
|
||||
BlenderOutputDriver::~BlenderOutputDriver()
|
||||
{
|
||||
}
|
||||
BlenderOutputDriver::~BlenderOutputDriver() {}
|
||||
|
||||
bool BlenderOutputDriver::read_render_tile(const Tile &tile)
|
||||
{
|
||||
|
|
|
@ -67,9 +67,7 @@ BlenderSync::BlenderSync(BL::RenderEngine &b_engine,
|
|||
max_subdivisions = RNA_int_get(&cscene, "max_subdivisions");
|
||||
}
|
||||
|
||||
BlenderSync::~BlenderSync()
|
||||
{
|
||||
}
|
||||
BlenderSync::~BlenderSync() {}
|
||||
|
||||
void BlenderSync::reset(BL::BlendData &b_data, BL::Scene &b_scene)
|
||||
{
|
||||
|
|
|
@ -702,9 +702,7 @@ static inline bool object_need_motion_attribute(BObjectInfo &b_ob_info, Scene *s
|
|||
|
||||
class EdgeMap {
|
||||
public:
|
||||
EdgeMap()
|
||||
{
|
||||
}
|
||||
EdgeMap() {}
|
||||
|
||||
void clear()
|
||||
{
|
||||
|
|
|
@ -16,18 +16,10 @@ CCL_NAMESPACE_BEGIN
|
|||
|
||||
/* SSE replacements */
|
||||
|
||||
__forceinline void prefetch_L1(const void * /*ptr*/)
|
||||
{
|
||||
}
|
||||
__forceinline void prefetch_L2(const void * /*ptr*/)
|
||||
{
|
||||
}
|
||||
__forceinline void prefetch_L3(const void * /*ptr*/)
|
||||
{
|
||||
}
|
||||
__forceinline void prefetch_NTA(const void * /*ptr*/)
|
||||
{
|
||||
}
|
||||
__forceinline void prefetch_L1(const void * /*ptr*/) {}
|
||||
__forceinline void prefetch_L2(const void * /*ptr*/) {}
|
||||
__forceinline void prefetch_L3(const void * /*ptr*/) {}
|
||||
__forceinline void prefetch_NTA(const void * /*ptr*/) {}
|
||||
|
||||
template<size_t src> __forceinline float extract(const int4 &b)
|
||||
{
|
||||
|
|
|
@ -23,9 +23,7 @@ class BVHBuild;
|
|||
|
||||
class BVHObjectBinning : public BVHRange {
|
||||
public:
|
||||
__forceinline BVHObjectBinning() : leafSAH(FLT_MAX)
|
||||
{
|
||||
}
|
||||
__forceinline BVHObjectBinning() : leafSAH(FLT_MAX) {}
|
||||
|
||||
BVHObjectBinning(const BVHRange &job,
|
||||
BVHReference *prims,
|
||||
|
|
|
@ -49,9 +49,7 @@ BVHBuild::BVHBuild(const vector<Object *> &objects_,
|
|||
spatial_min_overlap = 0.0f;
|
||||
}
|
||||
|
||||
BVHBuild::~BVHBuild()
|
||||
{
|
||||
}
|
||||
BVHBuild::~BVHBuild() {}
|
||||
|
||||
/* Adding References */
|
||||
|
||||
|
|
|
@ -70,9 +70,7 @@ class BVH {
|
|||
const vector<Geometry *> &geometry,
|
||||
const vector<Object *> &objects,
|
||||
Device *device);
|
||||
virtual ~BVH()
|
||||
{
|
||||
}
|
||||
virtual ~BVH() {}
|
||||
|
||||
virtual void replace_geometry(const vector<Geometry *> &geometry,
|
||||
const vector<Object *> &objects)
|
||||
|
|
|
@ -18,9 +18,7 @@
|
|||
|
||||
CCL_NAMESPACE_BEGIN
|
||||
|
||||
BVHStackEntry::BVHStackEntry(const BVHNode *n, int i) : node(n), idx(i)
|
||||
{
|
||||
}
|
||||
BVHStackEntry::BVHStackEntry(const BVHNode *n, int i) : node(n), idx(i) {}
|
||||
|
||||
int BVHStackEntry::encodeIdx() const
|
||||
{
|
||||
|
|
|
@ -211,9 +211,7 @@ class LeafNode : public BVHNode {
|
|||
this->visibility = visibility;
|
||||
}
|
||||
|
||||
LeafNode(const LeafNode &other) : BVHNode(other), lo(other.lo), hi(other.hi)
|
||||
{
|
||||
}
|
||||
LeafNode(const LeafNode &other) : BVHNode(other), lo(other.lo), hi(other.hi) {}
|
||||
|
||||
bool is_leaf() const
|
||||
{
|
||||
|
|
|
@ -183,9 +183,7 @@ class BVHParams {
|
|||
|
||||
class BVHReference {
|
||||
public:
|
||||
__forceinline BVHReference()
|
||||
{
|
||||
}
|
||||
__forceinline BVHReference() {}
|
||||
|
||||
__forceinline BVHReference(const BoundBox &bounds_,
|
||||
int prim_index_,
|
||||
|
@ -307,9 +305,7 @@ struct BVHSpatialBin {
|
|||
int enter;
|
||||
int exit;
|
||||
|
||||
__forceinline BVHSpatialBin()
|
||||
{
|
||||
}
|
||||
__forceinline BVHSpatialBin() {}
|
||||
};
|
||||
|
||||
/* BVH Spatial Storage
|
||||
|
|
|
@ -26,9 +26,7 @@ class BVHObjectSplit {
|
|||
BoundBox left_bounds;
|
||||
BoundBox right_bounds;
|
||||
|
||||
BVHObjectSplit()
|
||||
{
|
||||
}
|
||||
BVHObjectSplit() {}
|
||||
BVHObjectSplit(BVHBuild *builder,
|
||||
BVHSpatialStorage *storage,
|
||||
const BVHRange &range,
|
||||
|
@ -64,9 +62,7 @@ class BVHSpatialSplit {
|
|||
int dim;
|
||||
float pos;
|
||||
|
||||
BVHSpatialSplit() : sah(FLT_MAX), dim(0), pos(0.0f), storage_(NULL), references_(NULL)
|
||||
{
|
||||
}
|
||||
BVHSpatialSplit() : sah(FLT_MAX), dim(0), pos(0.0f), storage_(NULL), references_(NULL) {}
|
||||
BVHSpatialSplit(const BVHBuild &builder,
|
||||
BVHSpatialStorage *storage,
|
||||
const BVHRange &range,
|
||||
|
@ -181,9 +177,7 @@ class BVHMixedSplit {
|
|||
|
||||
BoundBox bounds;
|
||||
|
||||
BVHMixedSplit()
|
||||
{
|
||||
}
|
||||
BVHMixedSplit() {}
|
||||
|
||||
__forceinline BVHMixedSplit(BVHBuild *builder,
|
||||
BVHSpatialStorage *storage,
|
||||
|
|
|
@ -14,9 +14,7 @@
|
|||
|
||||
CCL_NAMESPACE_BEGIN
|
||||
|
||||
BVHUnaligned::BVHUnaligned(const vector<Object *> &objects) : objects_(objects)
|
||||
{
|
||||
}
|
||||
BVHUnaligned::BVHUnaligned(const vector<Object *> &objects) : objects_(objects) {}
|
||||
|
||||
Transform BVHUnaligned::compute_aligned_space(const BVHObjectBinning &range,
|
||||
const BVHReference *references) const
|
||||
|
|
|
@ -40,9 +40,7 @@ template<typename FunctionType> class CPUKernelFunction {
|
|||
* pointer. */
|
||||
class KernelInfo {
|
||||
public:
|
||||
KernelInfo() : KernelInfo("", nullptr)
|
||||
{
|
||||
}
|
||||
KernelInfo() : KernelInfo("", nullptr) {}
|
||||
|
||||
/* TODO(sergey): Use string view, to have higher-level functionality (i.e. comparison) without
|
||||
* memory allocation. */
|
||||
|
|
|
@ -70,8 +70,6 @@ NODE_DEFINE(DenoiseParams)
|
|||
return type;
|
||||
}
|
||||
|
||||
DenoiseParams::DenoiseParams() : Node(get_node_type())
|
||||
{
|
||||
}
|
||||
DenoiseParams::DenoiseParams() : Node(get_node_type()) {}
|
||||
|
||||
CCL_NAMESPACE_END
|
||||
|
|
|
@ -45,9 +45,7 @@ uint Device::devices_initialized_mask = 0;
|
|||
|
||||
/* Device */
|
||||
|
||||
Device::~Device() noexcept(false)
|
||||
{
|
||||
}
|
||||
Device::~Device() noexcept(false) {}
|
||||
|
||||
void Device::build_bvh(BVH *bvh, Progress &progress, bool refit)
|
||||
{
|
||||
|
@ -452,9 +450,7 @@ void *Device::get_cpu_osl_memory()
|
|||
return nullptr;
|
||||
}
|
||||
|
||||
GPUDevice::~GPUDevice() noexcept(false)
|
||||
{
|
||||
}
|
||||
GPUDevice::~GPUDevice() noexcept(false) {}
|
||||
|
||||
bool GPUDevice::load_texture_info()
|
||||
{
|
||||
|
|
|
@ -178,9 +178,7 @@ class Device {
|
|||
}
|
||||
|
||||
/* Request cancellation of any long-running work. */
|
||||
virtual void cancel()
|
||||
{
|
||||
}
|
||||
virtual void cancel() {}
|
||||
|
||||
/* Report status and return true if device is ready for rendering. */
|
||||
virtual bool is_ready(string & /*status*/) const
|
||||
|
@ -218,9 +216,7 @@ class Device {
|
|||
}
|
||||
|
||||
/* Called after kernel texture setup, and prior to integrator state setup. */
|
||||
virtual void optimize_for_scene(Scene * /*scene*/)
|
||||
{
|
||||
}
|
||||
virtual void optimize_for_scene(Scene * /*scene*/) {}
|
||||
|
||||
virtual bool is_resident(device_ptr /*key*/, Device *sub_device)
|
||||
{
|
||||
|
@ -309,7 +305,7 @@ class Device {
|
|||
static uint devices_initialized_mask;
|
||||
};
|
||||
|
||||
/* Device, which is GPU, with some common functionality for GPU backends */
|
||||
/* Device, which is GPU, with some common functionality for GPU back-ends. */
|
||||
class GPUDevice : public Device {
|
||||
protected:
|
||||
GPUDevice(const DeviceInfo &info_, Stats &stats_, Profiler &profiler_)
|
||||
|
@ -350,9 +346,7 @@ class GPUDevice : public Device {
|
|||
typedef unsigned long long texMemObject;
|
||||
typedef unsigned long long arrayMemObject;
|
||||
struct Mem {
|
||||
Mem() : texobject(0), array(0), use_mapped_host(false)
|
||||
{
|
||||
}
|
||||
Mem() : texobject(0), array(0), use_mapped_host(false) {}
|
||||
|
||||
texMemObject texobject;
|
||||
arrayMemObject array;
|
||||
|
|
|
@ -18,38 +18,24 @@ class DummyDevice : public Device {
|
|||
error_msg = info.error_msg;
|
||||
}
|
||||
|
||||
~DummyDevice()
|
||||
{
|
||||
}
|
||||
~DummyDevice() {}
|
||||
|
||||
virtual BVHLayoutMask get_bvh_layout_mask() const override
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
virtual void mem_alloc(device_memory &) override
|
||||
{
|
||||
}
|
||||
virtual void mem_alloc(device_memory &) override {}
|
||||
|
||||
virtual void mem_copy_to(device_memory &) override
|
||||
{
|
||||
}
|
||||
virtual void mem_copy_to(device_memory &) override {}
|
||||
|
||||
virtual void mem_copy_from(device_memory &, size_t, size_t, size_t, size_t) override
|
||||
{
|
||||
}
|
||||
virtual void mem_copy_from(device_memory &, size_t, size_t, size_t, size_t) override {}
|
||||
|
||||
virtual void mem_zero(device_memory &) override
|
||||
{
|
||||
}
|
||||
virtual void mem_zero(device_memory &) override {}
|
||||
|
||||
virtual void mem_free(device_memory &) override
|
||||
{
|
||||
}
|
||||
virtual void mem_free(device_memory &) override {}
|
||||
|
||||
virtual void const_copy_to(const char *, void *, size_t) override
|
||||
{
|
||||
}
|
||||
virtual void const_copy_to(const char *, void *, size_t) override {}
|
||||
};
|
||||
|
||||
Device *device_dummy_create(const DeviceInfo &info, Stats &stats, Profiler &profiler)
|
||||
|
|
|
@ -305,9 +305,7 @@ template<typename T> class device_only_memory : public device_memory {
|
|||
data_elements = max(device_type_traits<T>::num_elements, size_t(1));
|
||||
}
|
||||
|
||||
device_only_memory(device_only_memory &&other) noexcept : device_memory(std::move(other))
|
||||
{
|
||||
}
|
||||
device_only_memory(device_only_memory &&other) noexcept : device_memory(std::move(other)) {}
|
||||
|
||||
virtual ~device_only_memory()
|
||||
{
|
||||
|
|
|
@ -93,9 +93,7 @@ bool device_metal_init()
|
|||
return false;
|
||||
}
|
||||
|
||||
void device_metal_info(vector<DeviceInfo> &devices)
|
||||
{
|
||||
}
|
||||
void device_metal_info(vector<DeviceInfo> &devices) {}
|
||||
|
||||
string device_metal_capabilities()
|
||||
{
|
||||
|
|
|
@ -590,11 +590,10 @@ bool MetalDeviceQueue::enqueue(DeviceKernel kernel,
|
|||
[mtlComputeCommandEncoder setThreadgroupMemoryLength:shared_mem_bytes atIndex:0];
|
||||
}
|
||||
|
||||
MTLSize size_threadgroups_per_dispatch = MTLSizeMake(
|
||||
divide_up(work_size, num_threads_per_block), 1, 1);
|
||||
MTLSize size_threads_per_dispatch = MTLSizeMake(work_size, 1, 1);
|
||||
MTLSize size_threads_per_threadgroup = MTLSizeMake(num_threads_per_block, 1, 1);
|
||||
[mtlComputeCommandEncoder dispatchThreadgroups:size_threadgroups_per_dispatch
|
||||
threadsPerThreadgroup:size_threads_per_threadgroup];
|
||||
[mtlComputeCommandEncoder dispatchThreads:size_threads_per_dispatch
|
||||
threadsPerThreadgroup:size_threads_per_threadgroup];
|
||||
|
||||
[mtlCommandBuffer_ addCompletedHandler:^(id<MTLCommandBuffer> command_buffer) {
|
||||
NSString *kernel_name = metal_kernel_pso->function.label;
|
||||
|
|
|
@ -15,9 +15,7 @@ CCL_NAMESPACE_BEGIN
|
|||
|
||||
/* CUDADeviceQueue */
|
||||
|
||||
OptiXDeviceQueue::OptiXDeviceQueue(OptiXDevice *device) : CUDADeviceQueue(device)
|
||||
{
|
||||
}
|
||||
OptiXDeviceQueue::OptiXDeviceQueue(OptiXDevice *device) : CUDADeviceQueue(device) {}
|
||||
|
||||
void OptiXDeviceQueue::init_execution()
|
||||
{
|
||||
|
|
|
@ -36,9 +36,7 @@ struct DeviceKernelArguments {
|
|||
size_t sizes[MAX_ARGS];
|
||||
size_t count = 0;
|
||||
|
||||
DeviceKernelArguments()
|
||||
{
|
||||
}
|
||||
DeviceKernelArguments() {}
|
||||
|
||||
template<class T> DeviceKernelArguments(const T *arg)
|
||||
{
|
||||
|
|
|
@ -13,9 +13,7 @@ CCL_NAMESPACE_BEGIN
|
|||
|
||||
/* Node Type */
|
||||
|
||||
NodeOwner::~NodeOwner()
|
||||
{
|
||||
}
|
||||
NodeOwner::~NodeOwner() {}
|
||||
|
||||
Node::Node(const NodeType *type_, ustring name_) : name(name_), type(type_)
|
||||
{
|
||||
|
@ -35,9 +33,7 @@ Node::Node(const NodeType *type_, ustring name_) : name(name_), type(type_)
|
|||
}
|
||||
}
|
||||
|
||||
Node::~Node()
|
||||
{
|
||||
}
|
||||
Node::~Node() {}
|
||||
|
||||
#ifndef NDEBUG
|
||||
static bool is_socket_float3(const SocketType &socket)
|
||||
|
|
|
@ -131,9 +131,7 @@ NodeType::NodeType(Type type, const NodeType *base) : type(type), base(base)
|
|||
}
|
||||
}
|
||||
|
||||
NodeType::~NodeType()
|
||||
{
|
||||
}
|
||||
NodeType::~NodeType() {}
|
||||
|
||||
void NodeType::register_input(ustring name,
|
||||
ustring ui_name,
|
||||
|
|
|
@ -51,9 +51,7 @@ HdCyclesCamera::HdCyclesCamera(const SdfPath &sprimId) : HdCamera(sprimId)
|
|||
#endif
|
||||
}
|
||||
|
||||
HdCyclesCamera::~HdCyclesCamera()
|
||||
{
|
||||
}
|
||||
HdCyclesCamera::~HdCyclesCamera() {}
|
||||
|
||||
HdDirtyBits HdCyclesCamera::GetInitialDirtyBitsMask() const
|
||||
{
|
||||
|
|
|
@ -25,9 +25,7 @@ HdCyclesCurves::HdCyclesCurves(const SdfPath &rprimId
|
|||
{
|
||||
}
|
||||
|
||||
HdCyclesCurves::~HdCyclesCurves()
|
||||
{
|
||||
}
|
||||
HdCyclesCurves::~HdCyclesCurves() {}
|
||||
|
||||
HdDirtyBits HdCyclesCurves::GetInitialDirtyBitsMask() const
|
||||
{
|
||||
|
|
|
@ -112,9 +112,7 @@ void HdCyclesDisplayDriver::gl_context_dispose()
|
|||
#endif
|
||||
}
|
||||
|
||||
void HdCyclesDisplayDriver::next_tile_begin()
|
||||
{
|
||||
}
|
||||
void HdCyclesDisplayDriver::next_tile_begin() {}
|
||||
|
||||
bool HdCyclesDisplayDriver::update_begin(const Params ¶ms,
|
||||
int texture_width,
|
||||
|
|
|
@ -37,13 +37,9 @@ class HdCyclesVolumeLoader : public VDBImageLoader {
|
|||
};
|
||||
#endif
|
||||
|
||||
HdCyclesField::HdCyclesField(const SdfPath &bprimId, const TfToken &typeId) : HdField(bprimId)
|
||||
{
|
||||
}
|
||||
HdCyclesField::HdCyclesField(const SdfPath &bprimId, const TfToken &typeId) : HdField(bprimId) {}
|
||||
|
||||
HdCyclesField::~HdCyclesField()
|
||||
{
|
||||
}
|
||||
HdCyclesField::~HdCyclesField() {}
|
||||
|
||||
HdDirtyBits HdCyclesField::GetInitialDirtyBitsMask() const
|
||||
{
|
||||
|
|
|
@ -32,17 +32,11 @@ class DummyHdTask : public HdTask {
|
|||
}
|
||||
|
||||
protected:
|
||||
void Sync(HdSceneDelegate *delegate, HdTaskContext *ctx, HdDirtyBits *dirtyBits) override
|
||||
{
|
||||
}
|
||||
void Sync(HdSceneDelegate *delegate, HdTaskContext *ctx, HdDirtyBits *dirtyBits) override {}
|
||||
|
||||
void Prepare(HdTaskContext *ctx, HdRenderIndex *render_index) override
|
||||
{
|
||||
}
|
||||
void Prepare(HdTaskContext *ctx, HdRenderIndex *render_index) override {}
|
||||
|
||||
void Execute(HdTaskContext *ctx) override
|
||||
{
|
||||
}
|
||||
void Execute(HdTaskContext *ctx) override {}
|
||||
|
||||
const TfTokenVector &GetRenderTags() const override
|
||||
{
|
||||
|
|
|
@ -26,9 +26,7 @@ HdCyclesInstancer::HdCyclesInstancer(HdSceneDelegate *delegate,
|
|||
{
|
||||
}
|
||||
|
||||
HdCyclesInstancer::~HdCyclesInstancer()
|
||||
{
|
||||
}
|
||||
HdCyclesInstancer::~HdCyclesInstancer() {}
|
||||
|
||||
#if PXR_VERSION > 2011
|
||||
void HdCyclesInstancer::Sync(HdSceneDelegate *sceneDelegate,
|
||||
|
|
|
@ -29,9 +29,7 @@ HdCyclesLight::HdCyclesLight(const SdfPath &sprimId, const TfToken &lightType)
|
|||
{
|
||||
}
|
||||
|
||||
HdCyclesLight::~HdCyclesLight()
|
||||
{
|
||||
}
|
||||
HdCyclesLight::~HdCyclesLight() {}
|
||||
|
||||
HdDirtyBits HdCyclesLight::GetInitialDirtyBitsMask() const
|
||||
{
|
||||
|
|
|
@ -183,13 +183,9 @@ TfStaticData<UsdToCycles> sUsdToCyles;
|
|||
|
||||
} // namespace
|
||||
|
||||
HdCyclesMaterial::HdCyclesMaterial(const SdfPath &sprimId) : HdMaterial(sprimId)
|
||||
{
|
||||
}
|
||||
HdCyclesMaterial::HdCyclesMaterial(const SdfPath &sprimId) : HdMaterial(sprimId) {}
|
||||
|
||||
HdCyclesMaterial::~HdCyclesMaterial()
|
||||
{
|
||||
}
|
||||
HdCyclesMaterial::~HdCyclesMaterial() {}
|
||||
|
||||
HdDirtyBits HdCyclesMaterial::GetInitialDirtyBitsMask() const
|
||||
{
|
||||
|
|
|
@ -22,9 +22,7 @@ class HdCyclesMaterial final : public PXR_NS::HdMaterial {
|
|||
PXR_NS::HdDirtyBits *dirtyBits) override;
|
||||
|
||||
#if PXR_VERSION < 2011
|
||||
void Reload() override
|
||||
{
|
||||
}
|
||||
void Reload() override {}
|
||||
#endif
|
||||
|
||||
void Finalize(PXR_NS::HdRenderParam *renderParam) override;
|
||||
|
|
|
@ -94,9 +94,7 @@ HdCyclesMesh::HdCyclesMesh(const SdfPath &rprimId
|
|||
{
|
||||
}
|
||||
|
||||
HdCyclesMesh::~HdCyclesMesh()
|
||||
{
|
||||
}
|
||||
HdCyclesMesh::~HdCyclesMesh() {}
|
||||
|
||||
HdDirtyBits HdCyclesMesh::GetInitialDirtyBitsMask() const
|
||||
{
|
||||
|
|
|
@ -35,9 +35,7 @@ HdCyclesPlugin::HdCyclesPlugin()
|
|||
#endif
|
||||
}
|
||||
|
||||
HdCyclesPlugin::~HdCyclesPlugin()
|
||||
{
|
||||
}
|
||||
HdCyclesPlugin::~HdCyclesPlugin() {}
|
||||
|
||||
bool HdCyclesPlugin::IsSupported() const
|
||||
{
|
||||
|
|
|
@ -25,9 +25,7 @@ HdCyclesPoints::HdCyclesPoints(const SdfPath &rprimId
|
|||
{
|
||||
}
|
||||
|
||||
HdCyclesPoints::~HdCyclesPoints()
|
||||
{
|
||||
}
|
||||
HdCyclesPoints::~HdCyclesPoints() {}
|
||||
|
||||
HdDirtyBits HdCyclesPoints::GetInitialDirtyBitsMask() const
|
||||
{
|
||||
|
|
|
@ -11,13 +11,9 @@
|
|||
|
||||
HDCYCLES_NAMESPACE_OPEN_SCOPE
|
||||
|
||||
HdCyclesRenderBuffer::HdCyclesRenderBuffer(const SdfPath &bprimId) : HdRenderBuffer(bprimId)
|
||||
{
|
||||
}
|
||||
HdCyclesRenderBuffer::HdCyclesRenderBuffer(const SdfPath &bprimId) : HdRenderBuffer(bprimId) {}
|
||||
|
||||
HdCyclesRenderBuffer::~HdCyclesRenderBuffer()
|
||||
{
|
||||
}
|
||||
HdCyclesRenderBuffer::~HdCyclesRenderBuffer() {}
|
||||
|
||||
void HdCyclesRenderBuffer::Finalize(HdRenderParam *renderParam)
|
||||
{
|
||||
|
@ -94,9 +90,7 @@ bool HdCyclesRenderBuffer::IsMapped() const
|
|||
return _mapped != 0;
|
||||
}
|
||||
|
||||
void HdCyclesRenderBuffer::Resolve()
|
||||
{
|
||||
}
|
||||
void HdCyclesRenderBuffer::Resolve() {}
|
||||
|
||||
bool HdCyclesRenderBuffer::IsConverged() const
|
||||
{
|
||||
|
|
|
@ -131,9 +131,7 @@ HdCyclesDelegate::HdCyclesDelegate(const HdRenderSettingsMap &settingsMap,
|
|||
}
|
||||
}
|
||||
|
||||
HdCyclesDelegate::~HdCyclesDelegate()
|
||||
{
|
||||
}
|
||||
HdCyclesDelegate::~HdCyclesDelegate() {}
|
||||
|
||||
void HdCyclesDelegate::SetDrivers(const HdDriverVector &drivers)
|
||||
{
|
||||
|
|
|
@ -176,8 +176,6 @@ void HdCyclesRenderPass::_Execute(const HdRenderPassStateSharedPtr &renderPassSt
|
|||
session->draw();
|
||||
}
|
||||
|
||||
void HdCyclesRenderPass::_MarkCollectionDirty()
|
||||
{
|
||||
}
|
||||
void HdCyclesRenderPass::_MarkCollectionDirty() {}
|
||||
|
||||
HDCYCLES_NAMESPACE_CLOSE_SCOPE
|
||||
|
|
|
@ -32,9 +32,7 @@ SceneLock::SceneLock(const HdRenderParam *renderParam)
|
|||
{
|
||||
}
|
||||
|
||||
SceneLock::~SceneLock()
|
||||
{
|
||||
}
|
||||
SceneLock::~SceneLock() {}
|
||||
|
||||
HdCyclesSession::HdCyclesSession(Session *session_, const bool keep_nodes)
|
||||
: session(session_), keep_nodes(true), _ownCyclesSession(false)
|
||||
|
|
|
@ -30,9 +30,7 @@ HdCyclesVolume::HdCyclesVolume(const SdfPath &rprimId
|
|||
{
|
||||
}
|
||||
|
||||
HdCyclesVolume::~HdCyclesVolume()
|
||||
{
|
||||
}
|
||||
HdCyclesVolume::~HdCyclesVolume() {}
|
||||
|
||||
HdDirtyBits HdCyclesVolume::GetInitialDirtyBitsMask() const
|
||||
{
|
||||
|
|
|
@ -7,9 +7,7 @@
|
|||
|
||||
CCL_NAMESPACE_BEGIN
|
||||
|
||||
AdaptiveSampling::AdaptiveSampling()
|
||||
{
|
||||
}
|
||||
AdaptiveSampling::AdaptiveSampling() {}
|
||||
|
||||
int AdaptiveSampling::align_samples(int start_sample, int num_samples) const
|
||||
{
|
||||
|
|
|
@ -9,9 +9,7 @@
|
|||
|
||||
CCL_NAMESPACE_BEGIN
|
||||
|
||||
PathTraceDisplay::PathTraceDisplay(unique_ptr<DisplayDriver> driver) : driver_(move(driver))
|
||||
{
|
||||
}
|
||||
PathTraceDisplay::PathTraceDisplay(unique_ptr<DisplayDriver> driver) : driver_(move(driver)) {}
|
||||
|
||||
void PathTraceDisplay::reset(const BufferParams &buffer_params, const bool reset_rendering)
|
||||
{
|
||||
|
|
|
@ -44,9 +44,7 @@ PathTraceWork::PathTraceWork(Device *device,
|
|||
{
|
||||
}
|
||||
|
||||
PathTraceWork::~PathTraceWork()
|
||||
{
|
||||
}
|
||||
PathTraceWork::~PathTraceWork() {}
|
||||
|
||||
RenderBuffers *PathTraceWork::get_render_buffers()
|
||||
{
|
||||
|
|
|
@ -142,9 +142,7 @@ class PathTraceWork {
|
|||
|
||||
#ifdef WITH_PATH_GUIDING
|
||||
/* Initializes the per-thread guiding kernel data. */
|
||||
virtual void guiding_init_kernel_globals(void *, void *, const bool)
|
||||
{
|
||||
}
|
||||
virtual void guiding_init_kernel_globals(void *, void *, const bool) {}
|
||||
#endif
|
||||
|
||||
protected:
|
||||
|
|
|
@ -189,9 +189,7 @@ void PathTraceWorkCPU::copy_to_display(PathTraceDisplay *display,
|
|||
display->unmap_texture_buffer();
|
||||
}
|
||||
|
||||
void PathTraceWorkCPU::destroy_gpu_resources(PathTraceDisplay * /*display*/)
|
||||
{
|
||||
}
|
||||
void PathTraceWorkCPU::destroy_gpu_resources(PathTraceDisplay * /*display*/) {}
|
||||
|
||||
bool PathTraceWorkCPU::copy_render_buffers_from_device()
|
||||
{
|
||||
|
|
|
@ -11,9 +11,7 @@
|
|||
|
||||
CCL_NAMESPACE_BEGIN
|
||||
|
||||
WorkTileScheduler::WorkTileScheduler()
|
||||
{
|
||||
}
|
||||
WorkTileScheduler::WorkTileScheduler() {}
|
||||
|
||||
void WorkTileScheduler::set_accelerated_rt(bool accelerated_rt)
|
||||
{
|
||||
|
|
|
@ -43,9 +43,7 @@ ccl_device int bsdf_diffuse_ramp_setup(DiffuseRampBsdf *bsdf)
|
|||
return SD_BSDF | SD_BSDF_HAS_EVAL;
|
||||
}
|
||||
|
||||
ccl_device void bsdf_diffuse_ramp_blur(ccl_private ShaderClosure *sc, float roughness)
|
||||
{
|
||||
}
|
||||
ccl_device void bsdf_diffuse_ramp_blur(ccl_private ShaderClosure *sc, float roughness) {}
|
||||
|
||||
ccl_device Spectrum bsdf_diffuse_ramp_eval(ccl_private const ShaderClosure *sc,
|
||||
const float3 wi,
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue