forked from gentoo/gentoo
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
games-engines/openmw: Fix build w/ >=dev-games/openscenegraph-3.6.5
Bug: https://bugs.gentoo.org/709878 Package-Manager: Portage-2.3.93, Repoman-2.3.20 Signed-off-by: Andreas Sturmlechner <[email protected]>
- Loading branch information
Showing
3 changed files
with
74 additions
and
0 deletions.
There are no files selected for viewing
51 changes: 51 additions & 0 deletions
51
games-engines/openmw/files/openmw-0.45.0-osg-3.6.5-1.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,51 @@ | ||
From 807f550386a1eac6f7306589a4e4a01e783e65df Mon Sep 17 00:00:00 2001 | ||
From: Alexander Olofsson <[email protected]> | ||
Date: Thu, 13 Feb 2020 19:15:33 +0100 | ||
Subject: [PATCH] Fix building mwrender/sky with OSG 3.6.5 | ||
|
||
OSG commit aff574b completely replaces the method of doing user-defined | ||
query geometry, removing support for modifying the default geometry. | ||
--- | ||
apps/openmw/mwrender/sky.cpp | 14 ++++++++++++-- | ||
1 file changed, 12 insertions(+), 2 deletions(-) | ||
|
||
diff --git a/apps/openmw/mwrender/sky.cpp b/apps/openmw/mwrender/sky.cpp | ||
index 3996f472c2..e13f5a7b65 100644 | ||
--- a/apps/openmw/mwrender/sky.cpp | ||
+++ b/apps/openmw/mwrender/sky.cpp | ||
@@ -558,16 +558,22 @@ class Sun : public CelestialBody | ||
osg::ref_ptr<osg::OcclusionQueryNode> oqn = new osg::OcclusionQueryNode; | ||
oqn->setQueriesEnabled(true); | ||
|
||
+#if OSG_VERSION_GREATER_OR_EQUAL(3, 6, 5) | ||
+ // With OSG 3.6.5, the method of providing user defined query geometry has been completely replaced | ||
+ osg::ref_ptr<osg::QueryGeometry> queryGeom = new osg::QueryGeometry(oqn->getName()); | ||
+#else | ||
+ auto* queryGeom = oqn->getQueryGeometry(); | ||
+#endif | ||
+ | ||
// Make it fast! A DYNAMIC query geometry means we can't break frame until the flare is rendered (which is rendered after all the other geometry, | ||
// so that would be pretty bad). STATIC should be safe, since our node's local bounds are static, thus computeBounds() which modifies the queryGeometry | ||
// is only called once. | ||
// Note the debug geometry setDebugDisplay(true) is always DYNAMIC and that can't be changed, not a big deal. | ||
- oqn->getQueryGeometry()->setDataVariance(osg::Object::STATIC); | ||
+ queryGeom->setDataVariance(osg::Object::STATIC); | ||
|
||
// Set up the query geometry to match the actual sun's rendering shape. osg::OcclusionQueryNode wasn't originally intended to allow this, | ||
// normally it would automatically adjust the query geometry to match the sub graph's bounding box. The below hack is needed to | ||
// circumvent this. | ||
- osg::Geometry* queryGeom = oqn->getQueryGeometry(); | ||
queryGeom->setVertexArray(mGeom->getVertexArray()); | ||
queryGeom->setTexCoordArray(0, mGeom->getTexCoordArray(0), osg::Array::BIND_PER_VERTEX); | ||
queryGeom->removePrimitiveSet(0, oqn->getQueryGeometry()->getNumPrimitiveSets()); | ||
@@ -578,6 +584,10 @@ class Sun : public CelestialBody | ||
// Still need a proper bounding sphere. | ||
oqn->setInitialBound(queryGeom->getBound()); | ||
|
||
+#if OSG_VERSION_GREATER_OR_EQUAL(3, 6, 5) | ||
+ oqn->setQueryGeometry(queryGeom.release()); | ||
+#endif | ||
+ | ||
osg::StateSet* queryStateSet = new osg::StateSet; | ||
if (queryVisible) | ||
{ |
21 changes: 21 additions & 0 deletions
21
games-engines/openmw/files/openmw-0.45.0-osg-3.6.5-2.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
From 7db58a893a1448b7229de5464696b3cc6eb7663c Mon Sep 17 00:00:00 2001 | ||
From: Alexander Olofsson <[email protected]> | ||
Date: Thu, 13 Feb 2020 19:32:17 +0100 | ||
Subject: [PATCH] Ensure osg/Version is included | ||
|
||
--- | ||
apps/openmw/mwrender/sky.cpp | 1 + | ||
1 file changed, 1 insertion(+) | ||
|
||
diff --git a/apps/openmw/mwrender/sky.cpp b/apps/openmw/mwrender/sky.cpp | ||
index e13f5a7b65..7cf2af88d0 100644 | ||
--- a/apps/openmw/mwrender/sky.cpp | ||
+++ b/apps/openmw/mwrender/sky.cpp | ||
@@ -16,6 +16,7 @@ | ||
#include <osg/BlendFunc> | ||
#include <osg/AlphaFunc> | ||
#include <osg/PolygonOffset> | ||
+#include <osg/Version> | ||
#include <osg/observer_ptr> | ||
|
||
#include <osgParticle/BoxPlacer> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters