%global git_date 20240701 %global git_hash 43faf6fa8 %global git_ver 3.6.5 %global rel 4 %global src_name osg-%{git_date}-%{git_hash}.tar.xz Name: OpenSceneGraph-OMW Version: %{git_ver}^%{git_date}g%{git_hash} Release: %{rel}%{?dist} Summary: "OSG on steroids" - OpenSceneGraph fork for OpenMW License: OSGPL URL: https://github.com/OpenMW/osg Source: %{url}/%{src_name} BuildRequires: make cmake gcc-c++ BuildRequires: pkgconfig(opengl) BuildRequires: libpng-devel libjpeg-devel #BuildRequires: openCOLLADA-devel openCOLLADA BuildRequires: pkgconfig(collada-dom) BuildRequires: freetype-devel Requires: %{name}-libs%{?_isa} = %{version}-%{release} %description This fork was created to experiment with performance enhancements for OpenMW that are too controversial to be included in the general purpose OSG project - either for design reasons or backward compatibility reasons. OpenMW still works with "vanilla" OpenSceneGraph, but it is recommended to use the fork for better performance (around 10-15% on most devices). Note that the improvements are very specific to OpenMW and its animation code in particular; other OpenSceneGraph applications are not likely to see the same speed-up, or any speed-up at all if they are already GPU limited. The fork is currently based on the OpenSceneGraph-3.6 branch and will continue to be based on the latest stable branch of OSG at the time. Use single precision matrices & planes by default. Added option for single precision osg::Quat's (enabled by default). Similar change rejected on osg-submissions. Nodes with invalid bounding sphere (which you get e.g. when creating a completely empty node) are interpreted as "always culled". This type of node is common in a bone hierarchy for skeletal animation, and culling them early helps performance. Rejected on osg-submissions. Removed several dynamic_casts. (Occasionally:) Uncontroversial bug fixes that were proposed upstream but have not been merged yet. %package libs Summary: Library for %{name}. %description libs %summary %package devel Requires: %{name}-libs%{?_isa} = %{version}-%{release} Summary: Devel for %{name}. %description devel %summary %package -n OpenThreads-OMW Summary: OpenThreads License: wxWidgets %description -n OpenThreads-OMW OpenThreads is intended to provide a minimal & complete Object-Oriented (OO) thread interface for C++ programmers. It is loosely modeled on the Java thread API, and the POSIX Threads standards. The architecture of the library is designed around "swappable" thread models which are defined at compile-time in a shared object library. %package -n OpenThreads-OMW-devel Summary: Devel files for OpenThreads License: wxWidgets Requires: OpenThreads-OMW%{?_isa} = %{version}-%{release} %description -n OpenThreads-OMW-devel Development files for OpenThreads. %prep %autosetup -n osg %build %cmake -DLIB_POSTFIX=%(l=%{_lib}; echo ${l:3}) \ -DBUILD_OSG_PLUGINS_BY_DEFAULT=0 \ -DBUILD_OSG_PLUGIN_OSG=1 \ -DBUILD_OSG_PLUGIN_DAE=1 \ -DBUILD_OSG_PLUGIN_DDS=1 \ -DBUILD_OSG_PLUGIN_TGA=1 \ -DBUILD_OSG_PLUGIN_BMP=1 \ -DBUILD_OSG_PLUGIN_JPEG=1 \ -DBUILD_OSG_PLUGIN_PNG=1 \ -DBUILD_OSG_PLUGIN_FREETYPE=1 \ -DBUILD_OSG_DEPRECATED_SERIALIZERS=0 %cmake_build %install %cmake_install %files %doc README.md %license LICENSE.txt %{_bindir}/* %files libs %{_libdir}/libosg*.so.* %{_libdir}/osgPlugins-%{git_ver}/osg*.so %files devel %{_includedir}/* %{_libdir}/*.so %{_libdir}/pkgconfig/*.pc %files -n OpenThreads-OMW %doc AUTHORS.txt NEWS.txt README.md %license LICENSE.txt %{_libdir}/libOpenThreads.so.* %files -n OpenThreads-OMW-devel ##%%doc %{_vpath_builddir}/doc/OpenThreadsReferenceDocs %{_libdir}/pkgconfig/openthreads.pc %{_libdir}/libOpenThreads.so %{_includedir}/OpenThreads %changelog %autochangelog