Skip to content

Commit

Permalink
Release v0.8.1
Browse files Browse the repository at this point in the history
  • Loading branch information
AchimStremplat committed May 31, 2021
1 parent 75ef0dd commit 761132e
Show file tree
Hide file tree
Showing 897 changed files with 232,487 additions and 34 deletions.
19 changes: 19 additions & 0 deletions .clang-format
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# List of clang-format options: https://clang.llvm.org/docs/ClangFormatStyleOptions.html
# Clang-format file generator + preview: https://zed0.co.uk/clang-format-configurator/
---
BasedOnStyle: Google
IndentWidth: '4'
TabWidth: '4'
UseTab: Always
ColumnLimit: 0
AlignAfterOpenBracket: DontAlign
AccessModifierOffset: -4
IncludeBlocks: Preserve
IncludeCategories:
- Regex: '^".*'
Priority: 1
- Regex: '^<.*'
Priority: 2
- Regex: '.*'
Priority: 3
...
88 changes: 88 additions & 0 deletions .clang-tidy
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
# List of clang-tidy checks: https://clang.llvm.org/extra/clang-tidy/checks/list.html
# Remember that this list is only used to display hints to a coder when to do stuff
# differently - not something to be used to fix stuff automatically.
# We generally aim to make new C++ features more visible to coders,
# while accepting a few more hints than strictly necessary.
# Obviously we need to find a good overall balance.
#
# This is a continuously evolving draft, if you have improvements, discuss them with the RaCO OSS team.
#
# Notes to the removed checks:
#
#-bugprone-suspicious-include
# I have never seen a cpp file included by accident instead of the header file,
# but there are cases during half-baked refactoring where splitting a cpp file
# into several files can make sense.
#
#-google-explicit-constructor,
# While I have seen code causing problems by myriads of implicit constructors,
# it is rare as long as everybody stays sane and implicit conversions can
# be very useful for syntactic sugar.
#
#-google-runtime-operator,
# I would leave this up to the judgement of the coder.
# Of course it is bad idea to go crazy on operator overloading,
# but there might be rare cases where it does make sense.
#
#-modernize-return-braced-init-list,
# "return { somethingorother, bbalbal };" at the end of a function
# is not necessarily more readable than "return Foo(somethingorother, bbalbal);"?
#
#-modernize-use-nodiscard,
# Why are people fussed about discarded return values?
# The only case where I would consider a warning about a discarded return value useful
# is a function which returns an error code (and by all means, add the nodiscard
# attribute to those).
#
#-modernize-use-trailing-return-type,
# Example: virtual auto myfunction() -> std::vector<int>::iterator
# Not sure about this one. Certainly people should be aware that it can simplify things in quite a few cases
# to have the trailing return type, and also make things more readable.
# On the other hand, in the most common cases with simple return types, this just adds another "auto" to write/read.
# See also https://stackoverflow.com/questions/11215227/should-the-trailing-return-type-syntax-style-become-the-default-for-new-c11-pr
#
#-readability-convert-member-functions-to-static,
# Don't think every function which can be declared static should be declared static.
# There are good semantic reasons to keep functions non-static (i. e. allow to make
# them non-static later without changing all calls to them).
#
#-clang-analyzer-security.insecureAPI.*'
# We want to be able to use strcpy etc without being told off?
#
FormatStyle: file
Checks: '-*,
boost-use-to-string,
bugprone-*,
-bugprone-suspicious-include,
google-*,
-google-explicit-constructor,
-google-runtime-operator,
llvm-include-order,
misc-*,
modernize-*,
-modernize-return-braced-init-list,
-modernize-use-nodiscard,
-modernize-use-trailing-return-type,
performance-*,
readability-*,
-readability-convert-member-functions-to-static,
clang-analyzer-*,
-clang-analyzer-security.insecureAPI.*'
HeaderFilterRegex: '[\w+\\]*\w+.h'
CheckOptions:
# Classes with only public members can be quite useful.
- {key : misc-non-private-member-variables-in-classes.IgnoreClassesWithAllMemberVariablesBeingPublic, value: 1 }
# Don't do this for anything but pretty long names. Types are generally more informative than "auto",
# particularly for assignments if the assigned type is not readily available (e. g. auto x = myFunkyFunctionWithSevenOverloads()).
# Unfortunately modernize-use-auto does not allow to limit it to cases where the type is explicitly part of the assigned value
# (e. g. auto x = new MyFunkyClass())
- {key : modernize-use-auto.MinTypeNameLength, value: 8 }
- {key : readability-identifier-naming.PrivateMemberSuffix, value: _ }
- {key : readability-identifier-naming.ProtectedMemberSuffix, value: _ }
#- {key : readability-identifier-naming.PublicMemberSuffix, value: }
- {key : readability-identifier-naming.MemberCase, value: camelBack }
- {key : readability-identifier-naming.ClassCase, value: CamelCase }
- {key : readability-identifier-naming.GlobalFunctionCase, value: camelCase }
- {key : readability-identifier-naming.MethodCase, value: camelBack }
- {key : readability-identifier-naming.VariableCase, value: camelBack }
- {key : readability-identifier-naming.VariableCase, value: camelBack }
4 changes: 4 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
*.ramres filter=lfs diff=lfs merge=lfs -text
*.ramses filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
* text=auto
39 changes: 7 additions & 32 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,32 +1,7 @@
# Prerequisites
*.d

# Compiled Object files
*.slo
*.lo
*.o
*.obj

# Precompiled Headers
*.gch
*.pch

# Compiled Dynamic libraries
*.so
*.dylib
*.dll

# Fortran module files
*.mod
*.smod

# Compiled Static libraries
*.lai
*.la
*.a
*.lib

# Executables
*.exe
*.out
*.app
build*/
out/
.vscode/
vc140.pdb
.vs/
Testing/
CMakeLists.txt.user
16 changes: 16 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
[submodule "third_party/googletest"]
path = third_party/googletest
url = https://github.com/google/googletest.git
branch = master
[submodule "third_party/spdlog"]
path = third_party/spdlog
url = https://github.com/gabime/spdlog.git
[submodule "third_party/Qt-Advanced-Docking-System"]
path = third_party/Qt-Advanced-Docking-System
url = https://github.com/githubuser0xFFFF/Qt-Advanced-Docking-System.git
[submodule "third_party/ramses-logic"]
path = third_party/ramses-logic
url = https://github.com/GENIVI/ramses-logic.git
[submodule "third_party/assimp"]
path = third_party/assimp
url = https://github.com/assimp/assimp.git
218 changes: 218 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,218 @@
<!--
SPDX-License-Identifier: MPL-2.0
This file is part of Ramses Composer
(see https://github.com/GENIVI/ramses-composer).
This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-->
# Ramses Composer - Change Log

<!--- Template for next release section
## [unreleased]
### Added
### Changes
### Fixes
### Known Bugs
-->

## [0.8.1]

### Added
* RamsesComposer can now be run on Ubuntu 18.0.4.

### Changes
* Update from ramses-logic 0.6.0 to ramses-logic 0.6.1
* Update from ramses 27.0.102 to ramses 27.0.103
* Removed RACO_CONVENTIONS.md - superseded with the Ramses Composer documentation repository: https://github.com/GENIVI/ramses-composer-docs
* PrefabInstance interface scripts (LuaScripts on PrefabInstance top level) now get exported with the object name "<Prefab Instance name>.<LuaScript name>".
* The folder and library structure has been cleaned up.
* LuaScripts that have no parent are not displayed in the Resource tree anymore.
* LuaScripts can not be created via the Resource tree context menu anymore.
* Change classification of LuaScript objects to non-resource type object.
* Changed ramses node binding object name from _Binding to _NodeBinding suffix.
* Insert appearance and geometry binding objects as children of their MeshNode in the exported objects tree of the export dialog.
* CHANGELOG.MD can now be found in the root of the release folder, and the README.MD can now also be found there.
* The "Import Project" dialog now opens at the user projects directory (setting in "Preferences") instead of the last used path for URIs
* Added the C++ runtime libraries to the release/bin/RelWithDebInfo folder so the release version of RamsesComposer and RaCoHeadless can be run on a fresh system.
* Removed unneeded Qt libraries from the bin folder and added the LGPLv3 license.
* Visual Studio configurations have been reduced to Debug and RelWithDebInfo as those two are the only ones supported.

### Fixes
* Added camera bindings to list of exported objects shown in the export dialog.
* Fixed layouts not being restored when switching projects while layout.ini file is not present
* Shallow-copy-pasting a PrefabInstance without the Prefab will not contain children of the PrefabInstance anymore.

## [0.8.0]

### Added
* Added external reference feature allowing to use parts of other projects in the current project. The external references used are automatically updated when the origin project changes.
* Layout persistence - UI dock layout will be restored when restarting Ramses Composer or loading another project
* Custom layout saving - it is now possible to save, restore and delete the current UI dock layout via the menu bar -> "View" -> "Layouts"
* Support for links on frustrum and viewport camera properties (camera bindings).

### Changes
* Update from ramses-logic 0.5.2 to ramses-logic 0.6.0
* Update from ramses 27.0.100 to ramses 27.0.102
* Update from qt-Advanced-Docking-System commit ID f5433182 to 3.7.1
* Import of meshes with negative scales has been temporarily prohibited because of Assimp being too clever with glTF importing - see https://github.com/assimp/assimp/issues/3784
* LUA runtime error are now shown in the property browser of the script causing the error, not only in the console log.
* All other LUA scripts show a warning in the property browser containing the name of the failing script.
* Change of RenderGroup approach: Entire scene is now one RenderGroup instead of having multiple one-to-one node RenderGroups; meshes are still rendered in Scene Graph order
* Disabled creating a Preview while another Preview is already open as a temporary crash prevention measure

### Fixes
* Fixed default mesh index, vertex data and effects still persisting in scene when no MeshNode is using them

### Known Bugs
* Undocking the Ramses Preview window, then inserting it in another dock may not properly dock the Ramses Preview window at first try - but at second try
* You may need to delete the "layout.ini" file in your "configfiles" folder to fully disable multiple preview window creation


## [0.7.3]

### Added
* Caching of links from/to outdated LuaScript and MeshNode uniform properties

### Changes
* Prefabs are now managed in their own prefab view rather than the scene graph

### Fixes
* Updates of nodes will not change around rendering order anymore
* Crash when removing a project file in the file browser while that project is loaded & expanded in the Project Browser has been fixed
* Links inside nested prefabs are no longer lost on reload or paste
* Removed unnecessary recalculation of rendering order
* Fixed Tree Views not properly updating when moving top-level nodes from one Tree View to another
* Added caching of values for struct members of outdated lua script properties.
* Fixed "<empty>" reference drop-down menu option not appearing in first place at all times, leading to false reference assignments
* Removing a link in a prefab will now correctly update the linked endpoint properties in the prefab instances.
* Fixed caching of lua script input properties inside prefab instances to work also when the corresponding prefab lua script breaks.


## [0.7.2]

### Added
* Prefab support.
* Prefabs can be created in the Scenegraph
* Top-level LUA scripts in Prefab act as interface to the outside
* Prefab instances (read-only) can be created, need to reference a Prefab
* Properties that reference another project object contain a new "select referenced object" button in the Property Browser
* added URI property for an optional file with shader defines (*.def) to Material
* the file can contain the name of a compiler define in each line
* the defines are injected into all three shaders before compiling them
* empty lines and lines starting with "//" are allowed and ignored
* Path sanitation for URI properties (whitespaces get trimmed and slashes get normalized to forward slashes)
* Project Browser - It is now possible to load external Ramses Composer projects and show their scenegraph structure in the UI
* "Original fit" preview mode
* Linux support for headless version (experimental)
* Added support for tangent, bitangent and color attributes for meshes.
* Export dialog calls Ramses validation function and displays errors and warnings
* Empty references are highlighted in warning color
* On Dual GPU systems with Windows, the executable is now trying to force the High-End GPU (using NvOptimusEnablement / AmdPowerXpressRequestHighPerformance).

### Changes
* Update from ramses-logic 0.4.1 to ramses-logic 0.5.2
* Update from ramses 27.0.2 to ramses 27.0.100
* Update from Qt 5.15.0 to Qt 5.15.2
* Update to latest master of Assimp (for bugfix)
* Warning color in UI changed from yellow to orange to distinguish from selection
* Added icons to scene graph and resource view
* Read-only elements in scene graph are shown as disabled
* Comboboxes in property browser are no longer changed by the mousewheel
* Sliders show arrows on mouseover to decrement or increment their value

### Fixes
* Fixed crash when loading files with links when the lua files of the linked lua objects have been changed on disk since the last project save.
* All Ramses objects are assigned meaningful names
* Name changes are synced to Ramses immediately and can be exported.
* New scenegraph drag-drop exemption: dragging an object into itself or one of its children is now disallowed
* Semantic uniforms are no longer shown in property browser
* Edit Menu Undo/Redo action actually works now

### Known Bugs
* Ramses Composer UI version will not properly launch under Linux.


## [0.7.0]

### Added
* Support for glTF mesh selection & scenegraph import from gltf asset files.
* Propagation of mesh import error messages to Ramses Composer UI
* Assimp logger output in Ramses Composer logger output
* Textures with no valid URI assigned show a fallback test pattern
* Textures have adjustable origin for U/V coordinates
* texture images are flipped vertically if required
* default setting is compatible with blender default U/V handling
* CubeMaps without a valid set of images show a fallback test pattern
* Added error messages for CubeMap URIs
* RACO_CONVENTIONS.md - a Markdown file that explains Ramses Composer-internal conventions
* Unique naming mechanism for created & pasted objects
* Lexicographical sorting of Resource objects in Tree View and Property Browser

### Changes
* Added LGPL 2.1 license file.
* Added license headers for all source files and documents.

### Fixes
* Missing and invalid URIs for textures are marked in yellow and red.
* Reduced permanent output log spam when Ramses logic detects a runtime error.
* Fixed Shortcuts sometimes not working by setting Save, Undo and Redo shortcuts to application level context.
* Widgets which have a local implementation will still use their own implementation instead of the application level behaviour. E.g. while a Line Edit is focused, undo and redo will only affect the local text changes inside the widget.
* Link editor dialog is always fully visible, never positioned partially off screen.
* Saving a new project will now correctly change relative URIs of Resources.
* Fixed crash in paste after deep copy for some complicated situations.


## [0.6.2]

### Added

* Using new Rotation Convention feature from ramses 27.0.2 with convention set to ramses::ERotationConvention::XYZ.
* In case of unhandled exceptions, a crash dump file (.dmp) is created in the executable's directory
* Lua arrays of structs are supported.
* New command line parameters for headless executable
* -p for loading a project file
* -e for exporting ramses / logic scene files
* -c for compressing ramses scene on export
* Added standard parameters to both UI and headless executable
* -h for usage help
* -v for version
* CHANGELOG.md will be copied next to the executables on build.

### Changes

* Renamed ReleaseNotes.md to CHANGELOG.md (alignment with ramses convention)
* Update from ramses-logic 0.3 to 0.4.1
* Update from ramses 26.0.6 to ramses 27.0.2
* Enabled EditorObject's applying names to ramses::Resources
* Exported ramses::Resources in scene's should now have matching names set in the Editor.
* This feature was previously disabled because of a bug in ramses 26.0.4.

### Fixes

* Defined a rendering order. As of this version the rendering order follows the order of scenegraph nodes.
* Indexing of Lua arrays starts from 1.
* Undo/redo of scenegraph moves is now correct.
* Linking for arrays of struct is now supported for both entire arrays and single elements.


## [0.6.1]

### Changes

* Adjustable viewport size for preview in settings
* Default project path is now relative to executable instead of in windows documents path
* Updated from Ramses 26.0.4 to Ramses 26.0.6.

### Fixes

* crashes if document folder or project folder were using network drives
* crash in export preview for some scenes

## [0.6.0]

Initial release
3 changes: 3 additions & 0 deletions CMakeGraphVizOptions.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
set(GRAPHVIZ_IGNORE_TARGETS "^.+test$" "Qt5" "absl_.*" "^ramses-" "platform-" fmt lz4 psapi flatbuffers lua sol2 "rlogic-" imgui flatc "gtest_" "gmock" "harfbuzz" "Surface_" "Context_" "Window_" "Device_" opengl32 qtadvanceddocking AdvancedDockingSystemDemo CentralWidgetExample DeleteOnCloseTest EmptyDockAreaExample SidebarExample SimpleExample benchmark_main freetype "-ignore" lzma "spdlog" "Threads::Threads" zlibstatic assimp openctm libLodepng)
set(GRAPHVIZ_GENERATE_PER_TARGET FALSE)
set(GRAPHVIZ_GENERATE_DEPENDERS FALSE)
Loading

0 comments on commit 761132e

Please sign in to comment.