Compare commits
1
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f3da96d424 |
@@ -7,3 +7,5 @@ for next branch cut* header.
|
||||
appropriate header in [RELEASE_NOTES.md](./RELEASE_NOTES.md).
|
||||
|
||||
## Release notes for next branch cut
|
||||
|
||||
- engine: Add experimental APIs `Engine::builder::paused()` and `Engine::setPaused()`
|
||||
|
||||
@@ -31,7 +31,7 @@ repositories {
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation 'com.google.android.filament:filament-android:1.51.2'
|
||||
implementation 'com.google.android.filament:filament-android:1.51.0'
|
||||
}
|
||||
```
|
||||
|
||||
@@ -51,7 +51,7 @@ Here are all the libraries available in the group `com.google.android.filament`:
|
||||
iOS projects can use CocoaPods to install the latest release:
|
||||
|
||||
```shell
|
||||
pod 'Filament', '~> 1.51.2'
|
||||
pod 'Filament', '~> 1.51.0'
|
||||
```
|
||||
|
||||
### Snapshots
|
||||
|
||||
@@ -7,10 +7,6 @@ A new header is inserted each time a *tag* is created.
|
||||
Instead, if you are authoring a PR for the main branch, add your release note to
|
||||
[NEW_RELEASE_NOTES.md](./NEW_RELEASE_NOTES.md).
|
||||
|
||||
## v1.51.2
|
||||
|
||||
- engine: Add experimental APIs `Engine::builder::paused()` and `Engine::setPaused()`
|
||||
|
||||
## v1.51.1
|
||||
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
GROUP=com.google.android.filament
|
||||
VERSION_NAME=1.51.2
|
||||
VERSION_NAME=1.51.0
|
||||
|
||||
POM_DESCRIPTION=Real-time physically based rendering engine for Android.
|
||||
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
Pod::Spec.new do |spec|
|
||||
spec.name = "Filament"
|
||||
spec.version = "1.51.2"
|
||||
spec.version = "1.51.0"
|
||||
spec.license = { :type => "Apache 2.0", :file => "LICENSE" }
|
||||
spec.homepage = "https://google.github.io/filament"
|
||||
spec.authors = "Google LLC."
|
||||
spec.summary = "Filament is a real-time physically based rendering engine for Android, iOS, Windows, Linux, macOS, and WASM/WebGL."
|
||||
spec.platform = :ios, "11.0"
|
||||
spec.source = { :http => "https://github.com/google/filament/releases/download/v1.51.2/filament-v1.51.2-ios.tgz" }
|
||||
spec.source = { :http => "https://github.com/google/filament/releases/download/v1.51.0/filament-v1.51.0-ios.tgz" }
|
||||
|
||||
# Fix linking error with Xcode 12; we do not yet support the simulator on Apple silicon.
|
||||
spec.pod_target_xcconfig = {
|
||||
|
||||
@@ -87,6 +87,7 @@ if (LINUX OR ANDROID)
|
||||
list(APPEND SRCS src/linux/Path.cpp)
|
||||
endif()
|
||||
if (APPLE)
|
||||
list(APPEND SRCS src/darwin/Exception.mm)
|
||||
list(APPEND SRCS src/darwin/Path.mm)
|
||||
list(APPEND SRCS src/darwin/Systrace.cpp)
|
||||
endif()
|
||||
@@ -122,6 +123,10 @@ if (LINUX)
|
||||
target_link_libraries(${TARGET} PRIVATE dl)
|
||||
endif()
|
||||
|
||||
if (APPLE AND NOT IOS)
|
||||
target_link_libraries(${TARGET} PRIVATE "-framework Cocoa")
|
||||
endif()
|
||||
|
||||
# ==================================================================================================
|
||||
# Installation
|
||||
# ==================================================================================================
|
||||
|
||||
@@ -258,6 +258,18 @@ public:
|
||||
*/
|
||||
virtual const char* what() const noexcept = 0;
|
||||
|
||||
/**
|
||||
* Get the reason for the panic.
|
||||
* @return a C string containing the reason for the panic.
|
||||
*/
|
||||
virtual const char* getReason() const noexcept = 0;
|
||||
|
||||
/**
|
||||
* Get the type of the panic. When compiled without RTTI, this returns a generic type name.
|
||||
* @return a C string containing the type of the panic.
|
||||
*/
|
||||
virtual const char* getType() const noexcept = 0;
|
||||
|
||||
/**
|
||||
* Get the function name where the panic was detected
|
||||
* @return a C string containing the function name where the panic was detected
|
||||
@@ -305,6 +317,8 @@ public:
|
||||
const char* what() const noexcept override;
|
||||
|
||||
// Panic interface
|
||||
const char* getReason() const noexcept override;
|
||||
const char* getType() const noexcept override;
|
||||
const char* getFunction() const noexcept override;
|
||||
const char* getFile() const noexcept override;
|
||||
int getLine() const noexcept override;
|
||||
@@ -369,7 +383,8 @@ private:
|
||||
char const* const m_function = nullptr;
|
||||
char const* const m_file = nullptr;
|
||||
const int m_line = -1;
|
||||
mutable std::string m_msg;
|
||||
std::string m_msg;
|
||||
std::string m_type;
|
||||
};
|
||||
|
||||
namespace details {
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
/*
|
||||
* Copyright (C) 2024 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#ifndef TNT_UTILS_DARWIN_EXCEPTION_H
|
||||
#define TNT_UTILS_DARWIN_EXCEPTION_H
|
||||
|
||||
#include <utils/Panic.h>
|
||||
#include <utils/compiler.h>
|
||||
|
||||
namespace utils::details {
|
||||
|
||||
void throwDarwinException(const Panic& exception) UTILS_NORETURN;
|
||||
|
||||
}
|
||||
|
||||
#endif // TNT_UTILS_DARWIN_EXCEPTION_H
|
||||
@@ -16,6 +16,10 @@
|
||||
|
||||
#include <utils/Panic.h>
|
||||
|
||||
#if defined(__APPLE__)
|
||||
#include <utils/darwin/Exception.h>
|
||||
#endif
|
||||
|
||||
#include <atomic>
|
||||
#include <cstdarg>
|
||||
#include <cstdlib>
|
||||
@@ -88,6 +92,16 @@ const char* TPanic<T>::what() const noexcept {
|
||||
return m_msg.c_str();
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
const char* TPanic<T>::getReason() const noexcept {
|
||||
return m_reason.c_str();
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
const char* TPanic<T>::getType() const noexcept {
|
||||
return m_type.c_str();
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
const char* TPanic<T>::getFunction() const noexcept {
|
||||
return m_function;
|
||||
@@ -116,13 +130,12 @@ void TPanic<T>::log() const noexcept {
|
||||
|
||||
template<typename T>
|
||||
void TPanic<T>::buildMessage() {
|
||||
std::string type;
|
||||
#if UTILS_HAS_RTTI
|
||||
type = CallStack::demangleTypeName(typeid(T).name()).c_str();
|
||||
m_type = CallStack::demangleTypeName(typeid(T).name()).c_str();
|
||||
#else
|
||||
type = "Panic";
|
||||
m_type = "Panic";
|
||||
#endif
|
||||
m_msg = panicString(type, m_function, m_line, m_file, m_reason.c_str());
|
||||
m_msg = panicString(m_type, m_function, m_line, m_file, m_reason.c_str());
|
||||
}
|
||||
|
||||
UTILS_ALWAYS_INLINE
|
||||
@@ -139,6 +152,11 @@ void TPanic<T>::panic(char const* function, char const* file, int line, const ch
|
||||
va_end(args);
|
||||
T e(function, formatFile(file), line, reason);
|
||||
e.log();
|
||||
|
||||
#if defined(__APPLE__)
|
||||
details::throwDarwinException(e);
|
||||
#endif
|
||||
|
||||
#ifdef __EXCEPTIONS
|
||||
throw e;
|
||||
#endif
|
||||
|
||||
Executable
+35
@@ -0,0 +1,35 @@
|
||||
/*
|
||||
* Copyright (C) 2024 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#include <utils/Panic.h>
|
||||
|
||||
#include <Foundation/Foundation.h>
|
||||
|
||||
namespace utils::details {
|
||||
|
||||
void throwDarwinException(const Panic& exception) {
|
||||
// Turn this exception into an NSException and raise it.
|
||||
// This is allowed even if we're built without Objective-C exceptions (-fno-objc-exceptions).
|
||||
[[NSException exceptionWithName:@(exception.getType())
|
||||
reason:@(exception.getReason())
|
||||
userInfo:@{
|
||||
@"file" : @(exception.getFile()),
|
||||
@"line" : @(exception.getLine()),
|
||||
@"function" : @(exception.getFunction())
|
||||
}] raise];
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "filament",
|
||||
"version": "1.51.2",
|
||||
"version": "1.51.0",
|
||||
"description": "Real-time physically based rendering engine",
|
||||
"main": "filament.js",
|
||||
"module": "filament.js",
|
||||
|
||||
Reference in New Issue
Block a user