Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package osg2vsg for openSUSE:Factory checked 
in at 2026-10-27 16:47:46
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/osg2vsg (Old)
 and      /work/SRC/openSUSE:Factory/.osg2vsg.new.2252680 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "osg2vsg"

Tue Oct 27 16:47:46 2026 rev:2 rq:1392976 version:0.4.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/osg2vsg/osg2vsg.changes  2023-07-04 
15:23:22.094561987 +0200
+++ /work/SRC/openSUSE:Factory/.osg2vsg.new.2252680/osg2vsg.changes     
2026-10-27 16:48:06.329331736 +0100
@@ -1,0 +2,8 @@
+Wed Oct 21 12:47:05 UTC 2026 - Ralf Habacker <[email protected]>
+
+- Update to version 0.4.0:
+  * Updates to build with lat3est changes to VSG
+  * gcc 13 warning fix
+  * Replaced vsg::AnimationPath usage with vsg::CameraAnimation
+
+-------------------------------------------------------------------

Old:
----
  osg2vsg-0.1.0.tar.xz

New:
----
  osg2vsg-0.4.0.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ osg2vsg.spec ++++++
--- /var/tmp/diff_new_pack.tOEPCA/_old  2026-10-27 16:48:07.360374974 +0100
+++ /var/tmp/diff_new_pack.tOEPCA/_new  2026-10-27 16:48:07.362375058 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package osg2vsg
 #
-# Copyright (c) 2023 SUSE LLC
+# Copyright (c) 2026 SUSE LLC and contributors
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -19,7 +19,7 @@
 %define _vsg_so_nr 0
 
 Name:           osg2vsg
-Version:        0.1.0
+Version:        0.4.0
 Release:        0
 Summary:        3D graphics toolkit
 License:        MIT

++++++ _service ++++++
--- /var/tmp/diff_new_pack.tOEPCA/_old  2026-10-27 16:48:07.417377365 +0100
+++ /var/tmp/diff_new_pack.tOEPCA/_new  2026-10-27 16:48:07.422377575 +0100
@@ -2,7 +2,7 @@
 <service name="tar_scm" mode="disabled">
     <param name="scm">git</param>
     <param name="url">https://github.com/vsg-dev/osg2vsg.git</param>
-    <param name="revision">v0.1.0</param>
+    <param name="revision">v0.4.0</param>
     <param name="versionformat">@PARENT_TAG@</param>
     <param name="versionrewrite-pattern">v(.*)</param>
   </service>

++++++ osg2vsg-0.1.0.tar.xz -> osg2vsg-0.4.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/osg2vsg-0.1.0/.gitignore new/osg2vsg-0.4.0/.gitignore
--- old/osg2vsg-0.1.0/.gitignore        1970-01-01 01:00:00.000000000 +0100
+++ new/osg2vsg-0.4.0/.gitignore        2026-08-21 18:07:15.000000000 +0200
@@ -0,0 +1,76 @@
+
+cmake_uninstall.cmake
+
+lib/
+bin/
+
+# Autogenerated files
+
+*.pc
+*.conf
+*.backup
+CMakeCache.txt
+CMakeFiles
+CMakeScripts
+Makefile
+cmake_install.cmake
+install_manifest.txt
+src/osg2vsg/osg2vsgConfigVersion.cmake
+CMakeDoxyfile.in
+CMakeDoxygenDefaults.cmake
+Doxyfile.docs-osg2vsg
+
+# Compiled Object files
+*.slo
+*.lo
+*.o
+*.obj
+
+# Precompiled Headers
+*.gch
+*.pch
+
+# Compiled Dynamic libraries
+*.so
+*.dylib
+*.dll
+
+# Fortran module files
+*.mod
+
+# Compiled Static libraries
+*.lai
+*.la
+*.a
+*.lib
+
+# Executables
+*.exe
+*.out
+*.app
+
+# Visual Studio files
+*.sln
+*.vcxproj
+*.vcxproj.filters
+*.vcxproj.user
+*.lastbuildstate
+*.tlog
+*.log
+*.pdb
+.vs/
+x64/
+src/vsg/vsg.dir/
+
+#xcode
+DerivedData/
+*.build
+*.xcodeproj
+
+# Gradle
+.gradle/
+.idea/
+.externalNativeBuild/
+*.iml
+build/
+local.properties
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/osg2vsg-0.1.0/CMakeLists.txt 
new/osg2vsg-0.4.0/CMakeLists.txt
--- old/osg2vsg-0.1.0/CMakeLists.txt    2023-05-25 15:57:10.000000000 +0200
+++ new/osg2vsg-0.4.0/CMakeLists.txt    2026-08-21 18:07:15.000000000 +0200
@@ -1,7 +1,7 @@
-cmake_minimum_required(VERSION 3.7)
+cmake_minimum_required(VERSION 3.10)
 
 project(osg2vsg
-    VERSION 0.1.0
+    VERSION 0.4.0
     DESCRIPTION "OpenSceneGraph/VulkanSceneGraph integration library"
     LANGUAGES CXX
 )
@@ -12,14 +12,14 @@
 find_package(OpenGL REQUIRED)
 
 # Find OpenSceneGraph packages for reference
-# set prefrence for using modern OpenGL library.
+# set preference for using modern OpenGL library.
 find_package(OpenSceneGraph REQUIRED COMPONENTS osgDB osgTerrain osgUtil osgGA 
osgViewer)
 
 if (VULKAN_SDK)
     set(ENV{VULKAN_SDK} ${VULKAN_SDK})
 endif()
 
-find_package(vsg 1.0.3)
+find_package(vsg 1.1.13)
 
 vsg_setup_dir_vars()
 vsg_setup_build_vars()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/osg2vsg-0.1.0/README.md new/osg2vsg-0.4.0/README.md
--- old/osg2vsg-0.1.0/README.md 2023-05-25 15:57:10.000000000 +0200
+++ new/osg2vsg-0.4.0/README.md 2026-08-21 18:07:15.000000000 +0200
@@ -1 +1 @@
-osg2vsg is a small utility library and utilities that convert OpenSceneGraph 
images and 3D modules into 
[VSG](https://github.com/vsg-dev/VulkanSceneGraph)/Vulkan equivalents and 
provide integration between OpenSceneGraph/OpenGL and VulkanSceneGraph/Vulkan.
+osg2vsg is a small utility library with tools that convert OpenSceneGraph 
images and 3D models into 
[VSG](https://github.com/vsg-dev/VulkanSceneGraph)/Vulkan equivalents and 
provide integration between OpenSceneGraph/OpenGL and VulkanSceneGraph/Vulkan.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/osg2vsg-0.1.0/applications/CMakeLists.txt 
new/osg2vsg-0.4.0/applications/CMakeLists.txt
--- old/osg2vsg-0.1.0/applications/CMakeLists.txt       2023-05-25 
15:57:10.000000000 +0200
+++ new/osg2vsg-0.4.0/applications/CMakeLists.txt       2026-08-21 
18:07:15.000000000 +0200
@@ -1,6 +1,4 @@
 # set the use of C++17 globally as all examples require it
-set(CMAKE_CXX_STANDARD 17)
-
 add_subdirectory(osggroups)
 add_subdirectory(osgmaths)
 add_subdirectory(vsgnodes)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/osg2vsg-0.1.0/applications/osggroups/osggroups.cpp 
new/osg2vsg-0.4.0/applications/osggroups/osggroups.cpp
--- old/osg2vsg-0.1.0/applications/osggroups/osggroups.cpp      2023-05-25 
15:57:10.000000000 +0200
+++ new/osg2vsg-0.4.0/applications/osggroups/osggroups.cpp      2026-08-21 
18:07:15.000000000 +0200
@@ -122,15 +122,15 @@
         std::cout<<"average node size : 
"<<double(numBytes)/double(numNodes)<<std::endl;
         std::cout<<"numNodesVisited : "<<numNodesVisited<<std::endl;
         if (!inputFilename.empty()) std::cout<<"read time : 
"<<std::chrono::duration<double>(after_construction-start).count()<<std::endl;
-        else std::cout<<"construcion time : 
"<<std::chrono::duration<double>(after_construction-start).count()<<std::endl;
+        else std::cout<<"construction time : 
"<<std::chrono::duration<double>(after_construction-start).count()<<std::endl;
         std::cout<<"traversal time : 
"<<std::chrono::duration<double>(after_traversal-after_construction).count()<<std::endl;
         if (!outputFilename.empty()) std::cout<<"write time : 
"<<std::chrono::duration<double>(after_write-after_traversal).count()<<std::endl;
-        std::cout<<"destrucion time : 
"<<std::chrono::duration<double>(after_destruction-after_write).count()<<std::endl;
+        std::cout<<"destruction time : 
"<<std::chrono::duration<double>(after_destruction-after_write).count()<<std::endl;
         std::cout<<"total time : 
"<<std::chrono::duration<double>(after_destruction-start).count()<<std::endl;
         std::cout<<std::endl;
         std::cout<<"Nodes constructed per second : 
"<<double(numNodes)/std::chrono::duration<double>(after_construction-start).count()<<std::endl;
         std::cout<<"Nodes visited per second     : 
"<<double(numNodesVisited)/std::chrono::duration<double>(after_traversal-after_construction).count()<<std::endl;
-        std::cout<<"Nodes destrctored per second : 
"<<double(numNodes)/std::chrono::duration<double>(after_destruction-after_traversal).count()<<std::endl;
+        std::cout<<"Nodes destructed per second : 
"<<double(numNodes)/std::chrono::duration<double>(after_destruction-after_traversal).count()<<std::endl;
     }
 
     return 0;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/osg2vsg-0.1.0/applications/osgmaths/osgmaths.cpp 
new/osg2vsg-0.4.0/applications/osgmaths/osgmaths.cpp
--- old/osg2vsg-0.1.0/applications/osgmaths/osgmaths.cpp        2023-05-25 
15:57:10.000000000 +0200
+++ new/osg2vsg-0.4.0/applications/osgmaths/osgmaths.cpp        2026-08-21 
18:07:15.000000000 +0200
@@ -140,7 +140,7 @@
 
     if (vsg_test)
     {
-        vsg::dmat4 identiy;
+        vsg::dmat4 identity;
 
         double vsg_delta = 0.0;
         double vsg_transposed_delta = 0.0;
@@ -154,7 +154,7 @@
             for(auto& matrix : vsg_dmatrices)
             {
                 auto inv = vsg::inverse(matrix);
-                auto result = difference(matrix * inv, identiy);
+                auto result = difference(matrix * inv, identity);
                 vsg_delta += result;
                 std::cout<<"\n\nvsgmatrix = "<<matrix<<std::endl;
                 std::cout<<"inv = "<<inv<<std::endl;
@@ -167,7 +167,7 @@
             for(auto& matrix : vsg_transposed_dmatrices)
             {
                 auto inv = vsg::inverse(matrix);
-                auto result = difference(matrix * inv, identiy);
+                auto result = difference(matrix * inv, identity);
                 vsg_transposed_delta += result;
                 std::cout<<"\n\nvsgmatrix = "<<matrix<<std::endl;
                 std::cout<<"inv = "<<inv<<std::endl;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/osg2vsg-0.1.0/applications/vsgobjects/vsgobjects.cpp 
new/osg2vsg-0.4.0/applications/vsgobjects/vsgobjects.cpp
--- old/osg2vsg-0.1.0/applications/vsgobjects/vsgobjects.cpp    2023-05-25 
15:57:10.000000000 +0200
+++ new/osg2vsg-0.4.0/applications/vsgobjects/vsgobjects.cpp    2026-08-21 
18:07:15.000000000 +0200
@@ -21,31 +21,31 @@
 
     void apply(vsg::Object& object) final
     {
-        std::cout<<"Myvisitor::apply(Object& "<<&object<<")"<<std::endl;
+        std::cout<<"MyVisitor::apply(Object& "<<&object<<")"<<std::endl;
         object.traverse(*this);
     }
 
     void apply(vsg::Node& node) final
     {
-        std::cout<<"Myvisitor::apply(Node& "<<&node<<")"<<std::endl;
+        std::cout<<"MyVisitor::apply(Node& "<<&node<<")"<<std::endl;
         node.traverse(*this);
     }
 
     void apply(vsg::Group& group) final
     {
-        std::cout<<"Myvisitor::apply(Group& "<<&group<<")"<<std::endl;
+        std::cout<<"MyVisitor::apply(Group& "<<&group<<")"<<std::endl;
         group.traverse(*this);
     }
 
     void apply(vsg::QuadGroup& group) final
     {
-        std::cout<<"Myvisitor::apply(QuadGroup& "<<&group<<")"<<std::endl;
+        std::cout<<"MyVisitor::apply(QuadGroup& "<<&group<<")"<<std::endl;
         group.traverse(*this);
     }
 
     void apply(vsg::StateGroup& group) final
     {
-        std::cout<<"Myvisitor::apply(StateGroup& "<<&group<<")"<<std::endl;
+        std::cout<<"MyVisitor::apply(StateGroup& "<<&group<<")"<<std::endl;
         group.traverse(*this);
     }
 };
@@ -65,7 +65,7 @@
         group->addChild(vsg::Node::create());
         group->addChild(vsg::Group::create());
 
-        //std::cout<<"++++ Removing child to group"<<std::endl;
+        //std::cout<<"++++ Removing child from group"<<std::endl;
         //group->removeChild(pos);
 
         group->setObject("userdata", vsg::Object::create());
@@ -91,11 +91,11 @@
 
     std::string name;
     if (global->getValue("name", name)) std::cout<<" 
global->getValue(\"name\") = "<<name<<std::endl;
-    else std::cout<<" Failed global->getValue(\"name\") = "<<std::endl;
+    else std::cout<<" global->getValue(\"name\") failed "<<std::endl;
 
     float height;
     if (global->getValue("height", height)) std::cout<<" 
global->getValue(\"height\") = "<<height<<std::endl;
-    else std::cout<<" Failed global->getValue(\"height\") = "<<std::endl;
+    else std::cout<<" global->getValue(\"height\") failed "<<std::endl;
 
     vsg::observer_ptr<vsg::Group> observer;
 
@@ -122,7 +122,7 @@
     std::cout<<"size_of<osg::Referenced> "<<sizeof(osg::Referenced)<<std::endl;
     std::cout<<"size_of<osg::Object> "<<sizeof(osg::Object)<<std::endl;
     std::cout<<"size_of<osg::Node> "<<sizeof(osg::Node)<<std::endl;
-    std::cout<<"size_of<osg::Grouo> "<<sizeof(osg::Group)<<std::endl;
+    std::cout<<"size_of<osg::Group> "<<sizeof(osg::Group)<<std::endl;
     std::cout<<"size_of<osg::ObserverSet> 
"<<sizeof(osg::ObserverSet)<<std::endl;
     std::cout<<"size_of<osg::UserDataContainer> 
"<<sizeof(osg::UserDataContainer)<<std::endl;
     std::cout<<std::endl;
@@ -130,7 +130,7 @@
     std::cout<<"size_of<vsg::Node> "<<sizeof(vsg::Node)<<std::endl;
     std::cout<<"size_of<vsg::Group> "<<sizeof(vsg::Group)<<std::endl;
     std::cout<<"size_of<vsg::QuadGroup> "<<sizeof(vsg::QuadGroup)<<std::endl;
-    std::cout<<"size_of<vsg::StateGrouo> "<<sizeof(vsg::StateGroup)<<std::endl;
+    std::cout<<"size_of<vsg::StateGroup> "<<sizeof(vsg::StateGroup)<<std::endl;
     std::cout<<"size_of<vsg::Auxiliary> "<<sizeof(vsg::Auxiliary)<<std::endl;
 
     return 0;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/osg2vsg-0.1.0/applications/vsgwithosg/vsgwithosg.cpp 
new/osg2vsg-0.4.0/applications/vsgwithosg/vsgwithosg.cpp
--- old/osg2vsg-0.1.0/applications/vsgwithosg/vsgwithosg.cpp    2023-05-25 
15:57:10.000000000 +0200
+++ new/osg2vsg-0.4.0/applications/vsgwithosg/vsgwithosg.cpp    2026-08-21 
18:07:15.000000000 +0200
@@ -79,14 +79,14 @@
     // set up graphics pipeline
     vsg::DescriptorSetLayoutBindings descriptorBindings
     {
-        {0, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, 1, 
VK_SHADER_STAGE_FRAGMENT_BIT, nullptr} // { binding, descriptorTpe, 
descriptorCount, stageFlags, pImmutableSamplers}
+        {0, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, 1, 
VK_SHADER_STAGE_FRAGMENT_BIT, nullptr} // { binding, descriptorType, 
descriptorCount, stageFlags, pImmutableSamplers }
     };
 
     auto descriptorSetLayout = 
vsg::DescriptorSetLayout::create(descriptorBindings);
 
     vsg::PushConstantRanges pushConstantRanges
     {
-        {VK_SHADER_STAGE_VERTEX_BIT, 0, 128} // projection view, and model 
matrices, actual push constant calls autoaatically provided by the VSG's 
DispatchTraversal
+        {VK_SHADER_STAGE_VERTEX_BIT, 0, 128} // projection, view, and model 
matrices, actual push constant calls automatically provided by the VSG's 
RecordTraversal
     };
 
     vsg::VertexInputState::Bindings vertexBindingsDescriptions
@@ -123,7 +123,7 @@
     auto descriptorSet = vsg::DescriptorSet::create(descriptorSetLayout, 
vsg::Descriptors{texture});
     auto bindDescriptorSets = 
vsg::BindDescriptorSets::create(VK_PIPELINE_BIND_POINT_GRAPHICS, 
graphicsPipeline->layout, 0, vsg::DescriptorSets{descriptorSet});
 
-    // create StateGroup as the root of the scene/command graph to hold the 
GraphicsProgram, and binding of Descriptors to decorate the whole graph
+    // create StateGroup as the root of the scene/command graph to hold the 
GraphicsPipeline, and binding of Descriptors to decorate the whole graph
     auto scenegraph = vsg::StateGroup::create();
     scenegraph->add(bindGraphicsPipeline);
     scenegraph->add(bindDescriptorSets);
@@ -151,7 +151,7 @@
         {1.0f, 1.0f, 1.0f}
     }); // VK_FORMAT_R32G32B32_SFLOAT, VK_VERTEX_INPUT_RATE_VERTEX, 
VK_BUFFER_USAGE_VERTEX_BUFFER_BIT, VK_SHARING_MODE_EXCLUSIVE
 
-    uint8_t origin = textureData->properties.origin; // in Vulkan the origin 
is by default top left.
+    uint8_t origin = textureData->properties.origin; // in Vulkan the origin 
is in the top left corner by default.
     float left = 0.0f;
     float right = 1.0f;
     float top = (origin == vsg::TOP_LEFT) ? 0.0f : 1.0f;
@@ -183,12 +183,12 @@
 }
 int main(int argc, char** argv)
 {
-    // set up vsg::Options to pass in filepaths and ReaderWriter's and other 
IO related options to use when reading and writing files.
+    // set up vsg::Options to pass in filepaths, ReaderWriters and other IO 
related options to use when reading and writing files.
     auto options = vsg::Options::create();
     options->fileCache = vsg::getEnv("VSG_FILE_CACHE");
     options->paths = vsg::getEnvPaths("VSG_FILE_PATH");
 
-    // add vsgXchange's support for reading and writing 3rd party file formats
+    // add OpenSceneGraph's support for reading and writing 3rd party file 
formats
     options->add(vsg::VSG::create());
     options->add(vsg::spirv::create());
     options->add(osg2vsg::OSG::create());
@@ -213,7 +213,7 @@
 
     if (argc <= 1)
     {
-        std::cout<<"Please specifiy a model to load on 
commnadline."<<std::endl;
+        std::cout<<"Please specify a model to load on command 
line."<<std::endl;
     }
 
     vsg::Path filename = arguments[1];
@@ -268,21 +268,20 @@
         }
         auto vsg_camera = vsg::Camera::create(perspective, lookAt, 
vsg::ViewportState::create(vsg_window->extent2D()));
 
-        // add close handler to respond the close window button and pressing 
escape
+        // add close handler to respond to the close window button and 
pressing escape
         vsg_viewer->addEventHandler(vsg::CloseHandler::create(vsg_viewer));
 
         if (pathFilename)
         {
-            auto animationPath = 
vsg::read_cast<vsg::AnimationPath>(pathFilename, options);
-            if (!animationPath)
+            auto animation = vsg::read_cast<vsg::Animation>(pathFilename, 
options);
+            if (!animation)
             {
                 std::cout<<"Warning: unable to read animation path : 
"<<pathFilename<<std::endl;
                 return 1;
             }
 
-            auto animationPathHandler = 
vsg::AnimationPathHandler::create(vsg_camera, animationPath, 
vsg_viewer->start_point());
-            animationPathHandler->printFrameStatsToConsole = true;
-            vsg_viewer->addEventHandler(animationPathHandler);
+            auto cameraAnimation = vsg::CameraAnimation::create(vsg_camera, 
pathFilename, options);
+            vsg_viewer->addEventHandler(cameraAnimation);
         }
         else vsg_viewer->addEventHandler(vsg::Trackball::create(vsg_camera));
 
@@ -331,7 +330,7 @@
     // rendering main loop
     while (vsg_viewer->advanceToNextFrame() && !osg_viewer.done())
     {
-        // render VulkanScenGraph frame
+        // render VulkanSceneGraph frame
         {
             vsg_viewer->handleEvents();
             vsg_viewer->update();
@@ -339,7 +338,7 @@
             vsg_viewer->present();
         }
 
-        // render OpenScenGraph frame
+        // render OpenSceneGraph frame
         {
             osg_viewer.advance();
             osg_viewer.updateTraversal();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/osg2vsg-0.1.0/include/osg2vsg/OSG.h 
new/osg2vsg-0.4.0/include/osg2vsg/OSG.h
--- old/osg2vsg-0.1.0/include/osg2vsg/OSG.h     2023-05-25 15:57:10.000000000 
+0200
+++ new/osg2vsg-0.4.0/include/osg2vsg/OSG.h     2026-08-21 18:07:15.000000000 
+0200
@@ -41,7 +41,7 @@
 
         bool getFeatures(Features& features) const override;
 
-        // vsg::Options::setValue(str, value) suppoorted options:
+        // vsg::Options::setValue(str, value) supported options:
         static constexpr const char* original_converter = 
"original_converter";   // select early osg2vsg implementation
         static constexpr const char* read_build_options = 
"read_build_options";   // read build options from specified file
         static constexpr const char* write_build_options = 
"write_build_options"; // write build options to specified file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/osg2vsg-0.1.0/src/osg2vsg/BuildOptions.cpp 
new/osg2vsg-0.4.0/src/osg2vsg/BuildOptions.cpp
--- old/osg2vsg-0.1.0/src/osg2vsg/BuildOptions.cpp      2023-05-25 
15:57:10.000000000 +0200
+++ new/osg2vsg-0.4.0/src/osg2vsg/BuildOptions.cpp      2026-08-21 
18:07:15.000000000 +0200
@@ -93,12 +93,12 @@
 
     vsg::DescriptorSetLayoutBindings descriptorBindings;
 
-    // add material first if any (for now material is hardcoded to binding 
MATERIAL_BINDING)
-    if (shaderModeMask & MATERIAL) 
descriptorBindings.push_back({MATERIAL_BINDING, 
VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, 1, VK_SHADER_STAGE_FRAGMENT_BIT, nullptr}); 
// { binding, descriptorTpe, descriptorCount, stageFlags, pImmutableSamplers}
+    // add material first, if any (for now material is hardcoded to binding 
MATERIAL_BINDING)
+    if (shaderModeMask & MATERIAL) 
descriptorBindings.push_back({MATERIAL_BINDING, 
VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, 1, VK_SHADER_STAGE_FRAGMENT_BIT, nullptr}); 
// { binding, descriptorType, descriptorCount, stageFlags, pImmutableSamplers }
 
-    // these need to go in incremental order by texture unit value as that how 
they will have been added to the descriptor set
-    // VkDescriptorSetLayoutBinding { binding, descriptorTpe, descriptorCount, 
stageFlags, pImmutableSamplers}
-    if (shaderModeMask & DIFFUSE_MAP) 
descriptorBindings.push_back({DIFFUSE_TEXTURE_UNIT, 
VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, 1, VK_SHADER_STAGE_FRAGMENT_BIT, 
nullptr}); // { binding, descriptorTpe, descriptorCount, stageFlags, 
pImmutableSamplers}
+    // these need to go in incremental order by texture unit value as that is 
how they will have been added to the descriptor set
+    // VkDescriptorSetLayoutBinding { binding, descriptorType, 
descriptorCount, stageFlags, pImmutableSamplers }
+    if (shaderModeMask & DIFFUSE_MAP) 
descriptorBindings.push_back({DIFFUSE_TEXTURE_UNIT, 
VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, 1, VK_SHADER_STAGE_FRAGMENT_BIT, 
nullptr}); // { binding, descriptorType, descriptorCount, stageFlags, 
pImmutableSamplers }
     if (shaderModeMask & OPACITY_MAP) 
descriptorBindings.push_back({OPACITY_TEXTURE_UNIT, 
VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, 1, VK_SHADER_STAGE_FRAGMENT_BIT, 
nullptr});
     if (shaderModeMask & AMBIENT_MAP) 
descriptorBindings.push_back({AMBIENT_TEXTURE_UNIT, 
VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, 1, VK_SHADER_STAGE_FRAGMENT_BIT, 
nullptr});
     if (shaderModeMask & NORMAL_MAP) 
descriptorBindings.push_back({NORMAL_TEXTURE_UNIT, 
VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, 1, VK_SHADER_STAGE_FRAGMENT_BIT, 
nullptr});
@@ -154,7 +154,7 @@
     {
         VkVertexInputRate trate = geometryAttributesMask & TRANSLATE_OVERALL ? 
VK_VERTEX_INPUT_RATE_INSTANCE : VK_VERTEX_INPUT_RATE_VERTEX;
         
vertexBindingsDescriptions.push_back(VkVertexInputBindingDescription{vertexBindingIndex,
 sizeof(vsg::vec3), trate});
-        
vertexAttributeDescriptions.push_back(VkVertexInputAttributeDescription{TRANSLATE_CHANNEL,
 vertexBindingIndex, VK_FORMAT_R32G32B32_SFLOAT, 0}); // tangent as vec4
+        
vertexAttributeDescriptions.push_back(VkVertexInputAttributeDescription{TRANSLATE_CHANNEL,
 vertexBindingIndex, VK_FORMAT_R32G32B32_SFLOAT, 0}); // translation as vec3
         vertexBindingIndex++;
     }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/osg2vsg-0.1.0/src/osg2vsg/ConvertToVsg.cpp 
new/osg2vsg-0.4.0/src/osg2vsg/ConvertToVsg.cpp
--- old/osg2vsg-0.1.0/src/osg2vsg/ConvertToVsg.cpp      2023-05-25 
15:57:10.000000000 +0200
+++ new/osg2vsg-0.4.0/src/osg2vsg/ConvertToVsg.cpp      2026-08-21 
18:07:15.000000000 +0200
@@ -345,10 +345,9 @@
         }
     } checkForCullNodes;
 
-    // search the subgraph to see if any cull ndoes are present so we know 
whether transform the view frustum in local coords will be reuiqred.
+    // search the subgraph to see if any cull nodes are present so we know 
whether transforming the view frustum to local coords will be required.
     vsg_transform->accept(checkForCullNodes);
 
-    // need to run visitor to seeif it contains any CullNode/LOD/PagedLOD
     vsg_transform->subgraphRequiresLocalFrustum = 
checkForCullNodes.containsCullNodes;
 
     root = vsg_transform;
@@ -490,7 +489,7 @@
     const double pixel_ratio = 1.0 / 1080.0;
     const double angle_ratio = 1.0 / osg::DegreesToRadians(30.0); // assume a 
60 fovy for reference
 
-    // build a map of minimum screen ration to child
+    // build a map of minimum screen ratio to child
     std::map<double, vsg::ref_ptr<vsg::Node>> ratioChildMap;
     for (unsigned int i = 0; i < numChildren; ++i)
     {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/osg2vsg-0.1.0/src/osg2vsg/ConvertToVsg.h 
new/osg2vsg-0.4.0/src/osg2vsg/ConvertToVsg.h
--- old/osg2vsg-0.1.0/src/osg2vsg/ConvertToVsg.h        2023-05-25 
15:57:10.000000000 +0200
+++ new/osg2vsg-0.4.0/src/osg2vsg/ConvertToVsg.h        2026-08-21 
18:07:15.000000000 +0200
@@ -31,6 +31,7 @@
 
         vsg::ref_ptr<vsg::Node> root;
 
+        using osg::NodeVisitor::apply;
         using MasksAndState = std::tuple<uint32_t, uint32_t, 
osg::ref_ptr<osg::StateSet>>;
         using BindDescriptorSetMap = std::map<MasksAndState, 
vsg::ref_ptr<vsg::BindDescriptorSet>>;
         BindDescriptorSetMap bindDescriptorSetMap;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/osg2vsg-0.1.0/src/osg2vsg/GeometryUtils.cpp 
new/osg2vsg-0.4.0/src/osg2vsg/GeometryUtils.cpp
--- old/osg2vsg-0.1.0/src/osg2vsg/GeometryUtils.cpp     2023-05-25 
15:57:10.000000000 +0200
+++ new/osg2vsg-0.4.0/src/osg2vsg/GeometryUtils.cpp     2026-08-21 
18:07:15.000000000 +0200
@@ -152,7 +152,7 @@
         return mask;
     }
 
-    VkSamplerAddressMode covertToSamplerAddressMode(osg::Texture::WrapMode 
wrapmode)
+    VkSamplerAddressMode convertToSamplerAddressMode(osg::Texture::WrapMode 
wrapmode)
     {
         switch (wrapmode)
         {
@@ -194,9 +194,9 @@
         sampler->minFilter = minFilterMipmapMode.first;
         sampler->magFilter = magFilterMipmapMode.first;
         sampler->mipmapMode = minFilterMipmapMode.second;
-        sampler->addressModeU = 
covertToSamplerAddressMode(texture->getWrap(osg::Texture::WrapParameter::WRAP_S));
-        sampler->addressModeV = 
covertToSamplerAddressMode(texture->getWrap(osg::Texture::WrapParameter::WRAP_T));
-        sampler->addressModeW = 
covertToSamplerAddressMode(texture->getWrap(osg::Texture::WrapParameter::WRAP_R));
+        sampler->addressModeU = 
convertToSamplerAddressMode(texture->getWrap(osg::Texture::WrapParameter::WRAP_S));
+        sampler->addressModeV = 
convertToSamplerAddressMode(texture->getWrap(osg::Texture::WrapParameter::WRAP_T));
+        sampler->addressModeW = 
convertToSamplerAddressMode(texture->getWrap(osg::Texture::WrapParameter::WRAP_R));
 
         // requires Logical device to have deviceFeatures.samplerAnisotropy = 
VK_TRUE; set when creating the vsg::Device
         sampler->anisotropyEnable = texture->getMaxAnisotropy() > 1.0f ? 
VK_TRUE : VK_FALSE;
@@ -220,7 +220,7 @@
             sampler->mipLodBias = 0;
         }
 
-        // Vulkan doesn't supoort a vec4 border colour so have to map across 
to the enum's based on a best fit.
+        // Vulkan doesn't support a vec4 border colour so have to map across 
to the enum's based on a best fit.
         osg::Vec4 borderColor = texture->getBorderColor();
         if (borderColor.a() < 0.5f)
         {
@@ -294,8 +294,8 @@
     {
         uint32_t instanceCount = 1;
 
-        // work out if we need to enable instance by looking at BIND_OVERALL 
entries
-        // to see if any have more than one element which we'll interpret 
requesting instancing, such as used for our custom osg::Billboard handling.
+        // work out if we need to enable instancing by looking at BIND_OVERALL 
entries
+        // to see if any have more than one element which we'll interpret as 
requesting instancing, such as for our custom osg::Billboard handling.
         {
             osg::Geometry::ArrayList arrays;
             if (ingeometry->getArrayList(arrays))
@@ -312,7 +312,7 @@
 
         uint32_t bindOverallPaddingCount = instanceCount;
 
-        // convert attribute arrays, create defaults for any requested that 
don't exist for now to ensure pipline gets required data
+        // convert attribute arrays, create defaults for any requested 
attributes that don't exist for now to ensure pipeline gets required data
         vsg::ref_ptr<vsg::Data> 
vertices(osg2vsg::convertToVsg(ingeometry->getVertexArray(), 
bindOverallPaddingCount));
         if (!vertices.valid() || vertices->valueCount() == 0) return {};
 
@@ -356,7 +356,7 @@
 
         // convert indices
 
-        // assume all the draw elements use the same primitive mode, copy all 
drawelements indices into one indicie array and use in single drawindexed 
command
+        // assume all the draw elements use the same primitive mode, copy all 
drawelements indices into one index array and use a single drawindexed command
         // create a draw command per drawarrays primitive set
 
         vsg::Geometry::DrawCommands drawCommands;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/osg2vsg-0.1.0/src/osg2vsg/ImageUtils.cpp 
new/osg2vsg-0.4.0/src/osg2vsg/ImageUtils.cpp
--- old/osg2vsg-0.1.0/src/osg2vsg/ImageUtils.cpp        2023-05-25 
15:57:10.000000000 +0200
+++ new/osg2vsg-0.4.0/src/osg2vsg/ImageUtils.cpp        2026-08-21 
18:07:15.000000000 +0200
@@ -33,7 +33,7 @@
         auto itr = s_GLtoVkFormatMap.find({dataType, pixelFormat});
         if (itr != s_GLtoVkFormatMap.end())
         {
-            std::cout << "convertGLImageFormatToVulkan(" << dataType << ", " 
<< pixelFormat << ") vkFormat=" << itr->second << std::endl;
+            std::cout << "convertGLImageFormatToVulkan(" << dataType << ", " 
<< pixelFormat << ") VkFormat=" << itr->second << std::endl;
             return itr->second;
         }
         else
@@ -93,7 +93,7 @@
             *reinterpret_cast<double*>(component_default) = 1.0;
             break;
         default: {
-            std::cout << "Warning: formateImage() DataType " << 
image->getDataType() << " not supported." << std::endl;
+            std::cout << "Warning: formatImage() DataType " << 
image->getDataType() << " not supported." << std::endl;
             return {};
         }
         }
@@ -110,7 +110,7 @@
         case (GL_RGBA): numComponents = 4; break;
         case (GL_BGRA): numComponents = 4; break;
         default: {
-            std::cout << "Warning: formateImage() targetPixelFormat " << 
targetPixelFormat << " not supported." << std::endl;
+            std::cout << "Warning: formatImage() targetPixelFormat " << 
targetPixelFormat << " not supported." << std::endl;
             return {};
         }
         }
@@ -143,7 +143,7 @@
             componentOffset = {numBytesPerComponent * 2, numBytesPerComponent, 
0, numBytesPerComponent * 3};
             break;
         default: {
-            std::cout << "Warning: formateImage() source PixelFormat " << 
image->getPixelFormat() << " not supported." << std::endl;
+            std::cout << "Warning: formatImage() source PixelFormat " << 
image->getPixelFormat() << " not supported." << std::endl;
             return {};
         }
         }
@@ -285,7 +285,7 @@
         void* data = vsg::allocate(size, vsg::ALLOCATOR_AFFINITY_DATA);
         memcpy(data, image->data(), size);
 
-        layout.maxNumMipmaps = image->getNumMipmapLevels();
+        layout.mipLevels = image->getNumMipmapLevels();
 
         uint32_t width = image->s() / layout.blockWidth;
         uint32_t height = image->t() / layout.blockHeight;
@@ -411,7 +411,7 @@
             return {};
         }
 
-        // we want to pass ownership of the new_image data onto th vsg_image 
so reset the allocation mode on the image to prevent deletetion.
+        // we want to pass ownership of the new_image data on to the vsg_image 
so reset the allocation mode on the image to prevent deletion.
         new_image->setAllocationMode(osg::Image::NO_DELETE);
 
         vsg::ref_ptr<vsg::Data> vsg_data;
@@ -469,7 +469,7 @@
         }
 
         vsg::Data::Properties& layout = vsg_data->properties;
-        layout.maxNumMipmaps = image->getNumMipmapLevels();
+        layout.mipLevels = image->getNumMipmapLevels();
         layout.origin = (image->getOrigin() == osg::Image::BOTTOM_LEFT) ? 
vsg::BOTTOM_LEFT : vsg::TOP_LEFT;
 
         return vsg_data;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/osg2vsg-0.1.0/src/osg2vsg/OSG.cpp 
new/osg2vsg-0.4.0/src/osg2vsg/OSG.cpp
--- old/osg2vsg-0.1.0/src/osg2vsg/OSG.cpp       2023-05-25 15:57:10.000000000 
+0200
+++ new/osg2vsg-0.4.0/src/osg2vsg/OSG.cpp       2026-08-21 18:07:15.000000000 
+0200
@@ -47,7 +47,7 @@
     for (auto& filename : all_plugins)
     {
         std::cout<<"   filename = "<<filename<<std::endl;
-        // the plugin list icludes the OSG's serializers so we need to discard 
these from being queried.
+        // the plugin list includes the OSG's serializers so we need to 
discard these from being queried.
         if (filename.find("osgdb_serializers_") == std::string::npos && 
filename.find("osgdb_deprecated_") == std::string::npos)
         {
             plugins.push_back(filename);
@@ -114,18 +114,21 @@
             osg::ref_ptr<osg::AnimationPath> osg_animationPath = new 
osg::AnimationPath;
             osg_animationPath->read(fin);
 
-            auto vsg_animationPath = vsg::AnimationPath::create();
+            auto vsg_animation = vsg::Animation::create();
+            auto cameraSampler = vsg::CameraSampler::create();
+            auto keyframes = cameraSampler->keyframes = 
vsg::CameraKeyframes::create();
+            vsg_animation->samplers.push_back(cameraSampler);
 
             switch (osg_animationPath->getLoopMode())
             {
             case (osg::AnimationPath::SWING):
-                vsg_animationPath->mode = vsg::AnimationPath::FORWARD_AND_BACK;
+                vsg_animation->mode = vsg::Animation::FORWARD_AND_BACK;
                 break;
             case (osg::AnimationPath::LOOP):
-                vsg_animationPath->mode = vsg::AnimationPath::REPEAT;
+                vsg_animation->mode = vsg::Animation::REPEAT;
                 break;
             case (osg::AnimationPath::NO_LOOPING):
-                vsg_animationPath->mode = vsg::AnimationPath::ONCE;
+                vsg_animation->mode = vsg::Animation::ONCE;
                 break;
             }
 
@@ -133,12 +136,12 @@
             {
                 const auto& position = cp.getPosition();
                 const auto& rotation = cp.getRotation();
-                // const auto& scale = cp.getScale(); // TODO
 
-                vsg_animationPath->add(time, vsg::dvec3(position.x(), 
position.y(), position.z()), vsg::dquat(rotation.x(), rotation.y(), 
rotation.z(), rotation.w()));
+                keyframes->add(time, vsg::dvec3(position.x(), position.y(), 
position.z()),
+                                     vsg::dquat(rotation.x(), rotation.y(), 
rotation.z(), rotation.w()));
             }
 
-            return vsg_animationPath;
+            return vsg_animation;
         }
         return {};
     }
@@ -169,7 +172,7 @@
     }
     else
     {
-        vsg::warn("OSG::ImplementationreadFile(", filename, ") cannot convert 
object type ", object->className(), ")");
+        vsg::warn("OSG::read(", filename, ") cannot convert object type ", 
object->className(), ")");
     }
 
     return {};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/osg2vsg-0.1.0/src/osg2vsg/SceneBuilder.cpp 
new/osg2vsg-0.4.0/src/osg2vsg/SceneBuilder.cpp
--- old/osg2vsg-0.1.0/src/osg2vsg/SceneBuilder.cpp      2023-05-25 
15:57:10.000000000 +0200
+++ new/osg2vsg-0.4.0/src/osg2vsg/SceneBuilder.cpp      2026-08-21 
18:07:15.000000000 +0200
@@ -76,7 +76,7 @@
         osg::Program* program = 
dynamic_cast<osg::Program*>(attribute.second.first.get());
         if (program)
         {
-            DEBUG_OUTPUT << "Found program removing from dataState" << program 
<< " inserting into programState" << std::endl;
+            DEBUG_OUTPUT << "Found program, removing from dataState" << 
program << " and inserting into programState" << std::endl;
             dataState->removeAttribute(program);
             programState->setAttribute(program, attribute.second.second);
         }
@@ -342,7 +342,7 @@
     {
         if (primitive->getNumPrimitives() == 0)
         {
-            DEBUG_OUTPUT << "SceneBuilder::apply(osg::Geometry& geometry), 
ignoring geometry with as it contains an empty PrimitiveSet : " << 
primitive->className() << std::endl;
+            DEBUG_OUTPUT << "SceneBuilder::apply(osg::Geometry& geometry), 
ignoring geometry as it contains an empty PrimitiveSet : " << 
primitive->className() << std::endl;
             return;
         }
     }
@@ -655,7 +655,7 @@
                 }
                 else
                 {
-                    DEBUG_OUTPUT << "Using CullGroupe" << std::endl;
+                    DEBUG_OUTPUT << "Using CullGroup" << std::endl;
                     auto cullGroup = vsg::CullGroup::create(boundingSphere);
                     cullGroup->addChild(leaf);
                     localGroup->addChild(cullGroup);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/osg2vsg-0.1.0/src/osg2vsg/ShaderUtils.cpp 
new/osg2vsg-0.4.0/src/osg2vsg/ShaderUtils.cpp
--- old/osg2vsg-0.1.0/src/osg2vsg/ShaderUtils.cpp       2023-05-25 
15:57:10.000000000 +0200
+++ new/osg2vsg-0.4.0/src/osg2vsg/ShaderUtils.cpp       2026-08-21 
18:07:15.000000000 +0200
@@ -44,22 +44,22 @@
     return stateMask;
 }
 
-// create defines string based of shader mask
+// create defines string based on shader mask
 
 std::set<std::string> osg2vsg::createPSCDefineStrings(const uint32_t& 
shaderModeMask, const uint32_t& geometryAttrbutes)
 {
     bool hasnormal = geometryAttrbutes & NORMAL;
-    bool hastanget = geometryAttrbutes & TANGENT;
+    bool hastangent = geometryAttrbutes & TANGENT;
     bool hascolor = geometryAttrbutes & COLOR;
     bool hastex0 = geometryAttrbutes & TEXCOORD0;
 
     std::set<std::string> defines;
 
-    // vertx inputs
+    // vertex inputs
     if (hasnormal) defines.insert("VSG_NORMAL");
     if (hascolor) defines.insert("VSG_COLOR");
     if (hastex0) defines.insert("VSG_TEXCOORD0");
-    if (hastanget) defines.insert("VSG_TANGENT");
+    if (hastangent) defines.insert("VSG_TANGENT");
 
     // shading modes/maps
     if (hasnormal && (shaderModeMask & LIGHTING)) 
defines.insert("VSG_LIGHTING");
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/osg2vsg-0.1.0/src/osgPlugins/vsg/CMakeLists.txt 
new/osg2vsg-0.4.0/src/osgPlugins/vsg/CMakeLists.txt
--- old/osg2vsg-0.1.0/src/osgPlugins/vsg/CMakeLists.txt 2023-05-25 
15:57:10.000000000 +0200
+++ new/osg2vsg-0.4.0/src/osgPlugins/vsg/CMakeLists.txt 2026-08-21 
18:07:15.000000000 +0200
@@ -3,7 +3,6 @@
 )
 
 add_library(osgdb_vsg MODULE ${SOURCES})
-set_property(TARGET osgdb_vsg PROPERTY CXX_STANDARD 17)
 
 target_include_directories(osgdb_vsg PUBLIC
     $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/osg2vsg-0.1.0/src/osgPlugins/vsg/ReaderWriterVSG.cpp 
new/osg2vsg-0.4.0/src/osgPlugins/vsg/ReaderWriterVSG.cpp
--- old/osg2vsg-0.1.0/src/osgPlugins/vsg/ReaderWriterVSG.cpp    2023-05-25 
15:57:10.000000000 +0200
+++ new/osg2vsg-0.4.0/src/osgPlugins/vsg/ReaderWriterVSG.cpp    2026-08-21 
18:07:15.000000000 +0200
@@ -1,7 +1,6 @@
 // Released under the OSGPL license, as part of the OpenSceneGraph 
distribution.
 //
-// ReaderWriter for sgi's .rgb format.
-// specification can be found at 
http://local.wasp.uwa.edu.au/~pbourke/dataformats/sgirgb/sgiversion.html
+// ReaderWriter for converting and writing scenes to vsgt/vsgb files. Reading 
files back in is not currently implemented.
 
 #include <osgDB/FileNameUtils>
 #include <osgDB/FileUtils>

Reply via email to