1
0
Fork 0

initial import

This commit is contained in:
Peter Ross 2020-12-16 15:34:17 +11:00
commit 07d98b8654
27 changed files with 1505 additions and 0 deletions

50
Dockerfile Normal file
View File

@ -0,0 +1,50 @@
FROM debian:bullseye
## Dependencies
RUN apt update -y
RUN apt install -y git cmake make gcc g++ libboost-dev libgl-dev
RUN apt install -y libboost-date-time-dev libboost-thread-dev libboost-log-dev libboost-filesystem-dev libboost-program-options-dev libboost-regex-dev
RUN apt install -y libopenscenegraph-dev
RUN apt install -y vim xterm
## OIS
WORKDIR /usr/src
RUN git clone https://github.com/wgois/OIS
WORKDIR /usr/src/OIS/build
RUN cmake ..
RUN make -j5
RUN make install
## SkyboltDependenciesHeaderOnly
WORKDIR /usr/src
RUN git clone https://github.com/Piraxus/SkyboltDependenciesHeaderOnly
ENV SKYBOLT_DEPS=/usr/src/SkyboltDependenciesHeaderOnly
## Skybolt + patches
WORKDIR /usr/src
RUN git clone https://github.com/Piraxus/Skybolt.git
WORKDIR /usr/src/Skybolt/build
COPY patches/*.patch ./
RUN \
git config --global user.email "you@example.com" && \
git config --global user.name "Your Name"
RUN git am --ignore-whitespace *.patch
RUN json_DIR=${SKYBOLT_DEPS}/json \
catch_DIR=${SKYBOLT_DEPS}/catch \
glm_DIR=${SKYBOLT_DEPS}/glm \
cxxtimer_DIR=${SKYBOLT_DEPS}/cxxtimer \
earcut_DIR=${SKYBOLT_DEPS}/earcut \
httplib_DIR=${SKYBOLT_DEPS}/httplib \
px_sched_DIR=${SKYBOLT_DEPS}/px_sched \
OGRE_DEPENDENCIES_DIR=/usr/local/include/ois \
cmake .. \
-D CMAKE_CXX_COMPILER=g++ \
-D CMAKE_CXX_STANDARD=17 -D CMAKE_CXX_STANDARD_REQUIRED=ON \
-D CMAKE_CXX_FLAGS="-DBOOST_LOG_DYN_LINK -Wno-register"
RUN make -j5
## RUN make test

353
License.txt Normal file
View File

@ -0,0 +1,353 @@
Mozilla Public License Version 2.0
==================================
1. Definitions
--------------
1.1. "Contributor"
means each individual or legal entity that creates, contributes to
the creation of, or owns Covered Software.
1.2. "Contributor Version"
means the combination of the Contributions of others (if any) used
by a Contributor and that particular Contributor's Contribution.
1.3. "Contribution"
means Covered Software of a particular Contributor.
1.4. "Covered Software"
means Source Code Form to which the initial Contributor has attached
the notice in Exhibit A, the Executable Form of such Source Code
Form, and Modifications of such Source Code Form, in each case
including portions thereof.
1.5. "Incompatible With Secondary Licenses"
means
(a) that the initial Contributor has attached the notice described
in Exhibit B to the Covered Software; or
(b) that the Covered Software was made available under the terms of
version 1.1 or earlier of the License, but not also under the
terms of a Secondary License.
1.6. "Executable Form"
means any form of the work other than Source Code Form.
1.7. "Larger Work"
means a work that combines Covered Software with other material, in
a separate file or files, that is not Covered Software.
1.8. "License"
means this document.
1.9. "Licensable"
means having the right to grant, to the maximum extent possible,
whether at the time of the initial grant or subsequently, any and
all of the rights conveyed by this License.
1.10. "Modifications"
means any of the following:
(a) any file in Source Code Form that results from an addition to,
deletion from, or modification of the contents of Covered
Software; or
(b) any new file in Source Code Form that contains any Covered
Software.
1.11. "Patent Claims" of a Contributor
means any patent claim(s), including without limitation, method,
process, and apparatus claims, in any patent Licensable by such
Contributor that would be infringed, but for the grant of the
License, by the making, using, selling, offering for sale, having
made, import, or transfer of either its Contributions or its
Contributor Version.
1.12. "Secondary License"
means either the GNU General Public License, Version 2.0, the GNU
Lesser General Public License, Version 2.1, the GNU Affero General
Public License, Version 3.0, or any later versions of those
licenses.
1.13. "Source Code Form"
means the form of the work preferred for making modifications.
1.14. "You" (or "Your")
means an individual or a legal entity exercising rights under this
License. For legal entities, "You" includes any entity that
controls, is controlled by, or is under common control with You. For
purposes of this definition, "control" means (a) the power, direct
or indirect, to cause the direction or management of such entity,
whether by contract or otherwise, or (b) ownership of more than
fifty percent (50%) of the outstanding shares or beneficial
ownership of such entity.
2. License Grants and Conditions
--------------------------------
2.1. Grants
Each Contributor hereby grants You a world-wide, royalty-free,
non-exclusive license:
(a) under intellectual property rights (other than patent or trademark)
Licensable by such Contributor to use, reproduce, make available,
modify, display, perform, distribute, and otherwise exploit its
Contributions, either on an unmodified basis, with Modifications, or
as part of a Larger Work; and
(b) under Patent Claims of such Contributor to make, use, sell, offer
for sale, have made, import, and otherwise transfer either its
Contributions or its Contributor Version.
2.2. Effective Date
The licenses granted in Section 2.1 with respect to any Contribution
become effective for each Contribution on the date the Contributor first
distributes such Contribution.
2.3. Limitations on Grant Scope
The licenses granted in this Section 2 are the only rights granted under
this License. No additional rights or licenses will be implied from the
distribution or licensing of Covered Software under this License.
Notwithstanding Section 2.1(b) above, no patent license is granted by a
Contributor:
(a) for any code that a Contributor has removed from Covered Software;
or
(b) for infringements caused by: (i) Your and any other third party's
modifications of Covered Software, or (ii) the combination of its
Contributions with other software (except as part of its Contributor
Version); or
(c) under Patent Claims infringed by Covered Software in the absence of
its Contributions.
This License does not grant any rights in the trademarks, service marks,
or logos of any Contributor (except as may be necessary to comply with
the notice requirements in Section 3.4).
2.4. Subsequent Licenses
No Contributor makes additional grants as a result of Your choice to
distribute the Covered Software under a subsequent version of this
License (see Section 10.2) or under the terms of a Secondary License (if
permitted under the terms of Section 3.3).
2.5. Representation
Each Contributor represents that the Contributor believes its
Contributions are its original creation(s) or it has sufficient rights
to grant the rights to its Contributions conveyed by this License.
2.6. Fair Use
This License is not intended to limit any rights You have under
applicable copyright doctrines of fair use, fair dealing, or other
equivalents.
2.7. Conditions
Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted
in Section 2.1.
3. Responsibilities
-------------------
3.1. Distribution of Source Form
All distribution of Covered Software in Source Code Form, including any
Modifications that You create or to which You contribute, must be under
the terms of this License. You must inform recipients that the Source
Code Form of the Covered Software is governed by the terms of this
License, and how they can obtain a copy of this License. You may not
attempt to alter or restrict the recipients' rights in the Source Code
Form.
3.2. Distribution of Executable Form
If You distribute Covered Software in Executable Form then:
(a) such Covered Software must also be made available in Source Code
Form, as described in Section 3.1, and You must inform recipients of
the Executable Form how they can obtain a copy of such Source Code
Form by reasonable means in a timely manner, at a charge no more
than the cost of distribution to the recipient; and
(b) You may distribute such Executable Form under the terms of this
License, or sublicense it under different terms, provided that the
license for the Executable Form does not attempt to limit or alter
the recipients' rights in the Source Code Form under this License.
3.3. Distribution of a Larger Work
You may create and distribute a Larger Work under terms of Your choice,
provided that You also comply with the requirements of this License for
the Covered Software. If the Larger Work is a combination of Covered
Software with a work governed by one or more Secondary Licenses, and the
Covered Software is not Incompatible With Secondary Licenses, this
License permits You to additionally distribute such Covered Software
under the terms of such Secondary License(s), so that the recipient of
the Larger Work may, at their option, further distribute the Covered
Software under the terms of either this License or such Secondary
License(s).
3.4. Notices
You may not remove or alter the substance of any license notices
(including copyright notices, patent notices, disclaimers of warranty,
or limitations of liability) contained within the Source Code Form of
the Covered Software, except that You may alter any license notices to
the extent required to remedy known factual inaccuracies.
3.5. Application of Additional Terms
You may choose to offer, and to charge a fee for, warranty, support,
indemnity or liability obligations to one or more recipients of Covered
Software. However, You may do so only on Your own behalf, and not on
behalf of any Contributor. You must make it absolutely clear that any
such warranty, support, indemnity, or liability obligation is offered by
You alone, and You hereby agree to indemnify every Contributor for any
liability incurred by such Contributor as a result of warranty, support,
indemnity or liability terms You offer. You may include additional
disclaimers of warranty and limitations of liability specific to any
jurisdiction.
4. Inability to Comply Due to Statute or Regulation
---------------------------------------------------
If it is impossible for You to comply with any of the terms of this
License with respect to some or all of the Covered Software due to
statute, judicial order, or regulation then You must: (a) comply with
the terms of this License to the maximum extent possible; and (b)
describe the limitations and the code they affect. Such description must
be placed in a text file included with all distributions of the Covered
Software under this License. Except to the extent prohibited by statute
or regulation, such description must be sufficiently detailed for a
recipient of ordinary skill to be able to understand it.
5. Termination
--------------
5.1. The rights granted under this License will terminate automatically
if You fail to comply with any of its terms. However, if You become
compliant, then the rights granted under this License from a particular
Contributor are reinstated (a) provisionally, unless and until such
Contributor explicitly and finally terminates Your grants, and (b) on an
ongoing basis, if such Contributor fails to notify You of the
non-compliance by some reasonable means prior to 60 days after You have
come back into compliance. Moreover, Your grants from a particular
Contributor are reinstated on an ongoing basis if such Contributor
notifies You of the non-compliance by some reasonable means, this is the
first time You have received notice of non-compliance with this License
from such Contributor, and You become compliant prior to 30 days after
Your receipt of the notice.
5.2. If You initiate litigation against any entity by asserting a patent
infringement claim (excluding declaratory judgment actions,
counter-claims, and cross-claims) alleging that a Contributor Version
directly or indirectly infringes any patent, then the rights granted to
You by any and all Contributors for the Covered Software under Section
2.1 of this License shall terminate.
5.3. In the event of termination under Sections 5.1 or 5.2 above, all
end user license agreements (excluding distributors and resellers) which
have been validly granted by You or Your distributors under this License
prior to termination shall survive termination.
************************************************************************
* *
* 6. Disclaimer of Warranty *
* ------------------------- *
* *
* Covered Software is provided under this License on an "as is" *
* basis, without warranty of any kind, either expressed, implied, or *
* statutory, including, without limitation, warranties that the *
* Covered Software is free of defects, merchantable, fit for a *
* particular purpose or non-infringing. The entire risk as to the *
* quality and performance of the Covered Software is with You. *
* Should any Covered Software prove defective in any respect, You *
* (not any Contributor) assume the cost of any necessary servicing, *
* repair, or correction. This disclaimer of warranty constitutes an *
* essential part of this License. No use of any Covered Software is *
* authorized under this License except under this disclaimer. *
* *
************************************************************************
************************************************************************
* *
* 7. Limitation of Liability *
* -------------------------- *
* *
* Under no circumstances and under no legal theory, whether tort *
* (including negligence), contract, or otherwise, shall any *
* Contributor, or anyone who distributes Covered Software as *
* permitted above, be liable to You for any direct, indirect, *
* special, incidental, or consequential damages of any character *
* including, without limitation, damages for lost profits, loss of *
* goodwill, work stoppage, computer failure or malfunction, or any *
* and all other commercial damages or losses, even if such party *
* shall have been informed of the possibility of such damages. This *
* limitation of liability shall not apply to liability for death or *
* personal injury resulting from such party's negligence to the *
* extent applicable law prohibits such limitation. Some *
* jurisdictions do not allow the exclusion or limitation of *
* incidental or consequential damages, so this exclusion and *
* limitation may not apply to You. *
* *
************************************************************************
8. Litigation
-------------
Any litigation relating to this License may be brought only in the
courts of a jurisdiction where the defendant maintains its principal
place of business and such litigation shall be governed by laws of that
jurisdiction, without reference to its conflict-of-law provisions.
Nothing in this Section shall prevent a party's ability to bring
cross-claims or counter-claims.
9. Miscellaneous
----------------
This License represents the complete agreement concerning the subject
matter hereof. If any provision of this License is held to be
unenforceable, such provision shall be reformed only to the extent
necessary to make it enforceable. Any law or regulation which provides
that the language of a contract shall be construed against the drafter
shall not be used to construe this License against a Contributor.
10. Versions of the License
---------------------------
10.1. New Versions
Mozilla Foundation is the license steward. Except as provided in Section
10.3, no one other than the license steward has the right to modify or
publish new versions of this License. Each version will be given a
distinguishing version number.
10.2. Effect of New Versions
You may distribute the Covered Software under the terms of the version
of the License under which You originally received the Covered Software,
or under the terms of any subsequent version published by the license
steward.
10.3. Modified Versions
If you create software not governed by this License, and you want to
create a new license for such software, you may create and use a
modified version of this License if you rename the license and remove
any references to the name of the license steward (except to note that
such modified license differs from this License).
10.4. Distributing Source Code Form that is Incompatible With Secondary
Licenses
If You choose to distribute Source Code Form that is Incompatible With
Secondary Licenses under the terms of this version of the License, the
notice described in Exhibit B of this License must be attached.

15
Makefile Normal file
View File

@ -0,0 +1,15 @@
NAME=skybolt
all:
docker build -f Dockerfile -t $(NAME) .
docker run -it $(NAME) make test
all-no-cache:
docker build --no-cache -f Dockerfile -t $(NAME) .
docker run -it $(NAME) make test
sh:
docker run -it $(NAME) bash
xterm:
x11docker $(NAME) xterm

26
README.md Normal file
View File

@ -0,0 +1,26 @@
# Skybolt Linux
## Introduction
Patches and Dockerfile for building Skybolt on Linux.
## Build procedure
```
docker build -f Dockerfile -t skybolt .
```
## Status
* Libraries and programs building: YES
* Tests passing: NO, some are failing:
```
The following tests FAILED:
50 - Precomputed BruentonAtmosphere matches Bruenton's reference implementation (Failed)
51 - CompositingPipeline renders expected images (SEGFAULT)
```
## Links
Skybolt project: <https://github.com/Piraxus/Skybolt>

View File

@ -0,0 +1,140 @@
From f4baad0faaef0e49fc1f6fc78dcc54480e09b950 Mon Sep 17 00:00:00 2001
From: Peter Ross <pross@xvid.org>
Date: Wed, 16 Dec 2020 15:15:40 +1100
Subject: [PATCH 01/23] update include statements to work on case sensitive
file system
---
src/Skybolt/MapAttributesConverter/MapAttributesConverter.h | 2 +-
src/Skybolt/SkyboltEngine/Input/InputSystem.h | 2 +-
src/Skybolt/SkyboltEngine/Input/LogicalAxis.h | 2 +-
src/Skybolt/SkyboltEngine/SimVisBinding/VisNameLabels.cpp | 2 +-
src/Skybolt/SkyboltEngine/SimVisBinding/VisOrbits.cpp | 2 +-
src/Skybolt/SkyboltEngine/VisHud.cpp | 4 ++--
.../Renderable/Clouds/ThirdParty/TileableVolumeNoise.cpp | 2 +-
src/Skybolt/SkyboltVis/Renderable/RunwaysBatch.cpp | 2 +-
src/Skybolt/TileMapGenerator/TileMapGenerator.h | 2 +-
9 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/src/Skybolt/MapAttributesConverter/MapAttributesConverter.h b/src/Skybolt/MapAttributesConverter/MapAttributesConverter.h
index 9edc03f..3fe890e 100644
--- a/src/Skybolt/MapAttributesConverter/MapAttributesConverter.h
+++ b/src/Skybolt/MapAttributesConverter/MapAttributesConverter.h
@@ -6,7 +6,7 @@
#pragma once
-#include <osg/image>
+#include <osg/Image>
namespace skybolt {
diff --git a/src/Skybolt/SkyboltEngine/Input/InputSystem.h b/src/Skybolt/SkyboltEngine/Input/InputSystem.h
index 516ca42..c4f972e 100644
--- a/src/Skybolt/SkyboltEngine/Input/InputSystem.h
+++ b/src/Skybolt/SkyboltEngine/Input/InputSystem.h
@@ -10,7 +10,7 @@
#include "SkyboltSim/System/System.h"
#include "SkyboltVis/SkyboltVisFwd.h"
-#include <osg/vec2f>
+#include <osg/Vec2f>
#include <vector>
namespace skybolt {
diff --git a/src/Skybolt/SkyboltEngine/Input/LogicalAxis.h b/src/Skybolt/SkyboltEngine/Input/LogicalAxis.h
index 03a04d5..6273e08 100644
--- a/src/Skybolt/SkyboltEngine/Input/LogicalAxis.h
+++ b/src/Skybolt/SkyboltEngine/Input/LogicalAxis.h
@@ -7,7 +7,7 @@
#pragma once
#include "SkyboltEngine/SkyboltEngineFwd.h"
-#include <osg/vec2f>
+#include <osg/Vec2f>
namespace skybolt {
diff --git a/src/Skybolt/SkyboltEngine/SimVisBinding/VisNameLabels.cpp b/src/Skybolt/SkyboltEngine/SimVisBinding/VisNameLabels.cpp
index 7d71cce..ceab9b4 100644
--- a/src/Skybolt/SkyboltEngine/SimVisBinding/VisNameLabels.cpp
+++ b/src/Skybolt/SkyboltEngine/SimVisBinding/VisNameLabels.cpp
@@ -11,7 +11,7 @@
#include "SkyboltVis/ShaderProgramRegistry.h"
#include <osg/Depth>
#include <osg/Geode>
-#include <osgText/text>
+#include <osgText/Text>
namespace skybolt {
diff --git a/src/Skybolt/SkyboltEngine/SimVisBinding/VisOrbits.cpp b/src/Skybolt/SkyboltEngine/SimVisBinding/VisOrbits.cpp
index fd48e67..4fbd299 100644
--- a/src/Skybolt/SkyboltEngine/SimVisBinding/VisOrbits.cpp
+++ b/src/Skybolt/SkyboltEngine/SimVisBinding/VisOrbits.cpp
@@ -16,7 +16,7 @@
#include <osg/Depth>
#include <osg/Geode>
-#include <osgText/text>
+#include <osgText/Text>
namespace skybolt {
diff --git a/src/Skybolt/SkyboltEngine/VisHud.cpp b/src/Skybolt/SkyboltEngine/VisHud.cpp
index a4759da..de70369 100644
--- a/src/Skybolt/SkyboltEngine/VisHud.cpp
+++ b/src/Skybolt/SkyboltEngine/VisHud.cpp
@@ -6,8 +6,8 @@
#include "VisHud.h"
-#include <osg/geode>
-#include <osgText/text>
+#include <osg/Geode>
+#include <osgText/Text>
namespace skybolt {
diff --git a/src/Skybolt/SkyboltVis/Renderable/Clouds/ThirdParty/TileableVolumeNoise.cpp b/src/Skybolt/SkyboltVis/Renderable/Clouds/ThirdParty/TileableVolumeNoise.cpp
index 6dea648..af8df1c 100644
--- a/src/Skybolt/SkyboltVis/Renderable/Clouds/ThirdParty/TileableVolumeNoise.cpp
+++ b/src/Skybolt/SkyboltVis/Renderable/Clouds/ThirdParty/TileableVolumeNoise.cpp
@@ -13,7 +13,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
#include "TileableVolumeNoise.h"
-#include <glm\gtc\noise.hpp>
+#include <glm/gtc/noise.hpp>
#include <math.h>
// Perlin noise based on GLM http://glm.g-truc.net
diff --git a/src/Skybolt/SkyboltVis/Renderable/RunwaysBatch.cpp b/src/Skybolt/SkyboltVis/Renderable/RunwaysBatch.cpp
index 7343d50..1631599 100644
--- a/src/Skybolt/SkyboltVis/Renderable/RunwaysBatch.cpp
+++ b/src/Skybolt/SkyboltVis/Renderable/RunwaysBatch.cpp
@@ -14,7 +14,7 @@
#include <osg/Geode>
#include <osg/Geometry>
#include <osg/Texture2D>
-#include <osgText/font>
+#include <osgText/Font>
#include <boost/log/trivial.hpp>
#include <assert.h>
diff --git a/src/Skybolt/TileMapGenerator/TileMapGenerator.h b/src/Skybolt/TileMapGenerator/TileMapGenerator.h
index ebdab63..9a0af7c 100644
--- a/src/Skybolt/TileMapGenerator/TileMapGenerator.h
+++ b/src/Skybolt/TileMapGenerator/TileMapGenerator.h
@@ -7,7 +7,7 @@
#pragma once
#include <SkyboltCommon/Math/Box2.h>
-#include <osg/image>
+#include <osg/Image>
#include <osg/Vec2i>
typedef skybolt::Box2T<osg::Vec2d> Box2d;
--
2.29.2

View File

@ -0,0 +1,25 @@
From 9c799de888f2af27b57683af3370f13475e8eb99 Mon Sep 17 00:00:00 2001
From: Peter Ross <pross@xvid.org>
Date: Wed, 16 Dec 2020 15:15:40 +1100
Subject: [PATCH 02/23] ShaUtility: use snprintf
---
src/Skybolt/SkyboltCommon/ShaUtility.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/Skybolt/SkyboltCommon/ShaUtility.cpp b/src/Skybolt/SkyboltCommon/ShaUtility.cpp
index bbbf5aa..153af9f 100644
--- a/src/Skybolt/SkyboltCommon/ShaUtility.cpp
+++ b/src/Skybolt/SkyboltCommon/ShaUtility.cpp
@@ -23,7 +23,7 @@ std::string calcSha1(const std::string& p_arg)
for (int i = 0; i < 5; i++)
{
- sprintf_s(buf + (i << 3), 41, "%08x", hash[i]);
+ snprintf(buf + (i << 3), 41, "%08x", hash[i]);
}
return std::string(buf);
--
2.29.2

View File

@ -0,0 +1,34 @@
From 34eec883ed5b9c01369e1266e608699d0143e609 Mon Sep 17 00:00:00 2001
From: Peter Ross <pross@xvid.org>
Date: Wed, 16 Dec 2020 15:15:40 +1100
Subject: [PATCH 03/23] FindOSG.cmake: linux use case
---
CMake/Modules/FindOSG.cmake | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/CMake/Modules/FindOSG.cmake b/CMake/Modules/FindOSG.cmake
index 6350213..bfce0a3 100644
--- a/CMake/Modules/FindOSG.cmake
+++ b/CMake/Modules/FindOSG.cmake
@@ -204,6 +204,8 @@ ELSE (_osg_IN_CACHE)
NAMES
${_osg_LIB_PREFIX}${COMPONENT}${_osg_LIB_VERSION}
${_osg_LIB_PREFIX}${COMPONENT}
+ ${COMPONENT}${_osg_LIB_VERSION}
+ ${COMPONENT}
PATHS ${_osg_LIBRARIES_SEARCH_DIRS}
PATH_SUFFIXES lib
)
@@ -212,6 +214,8 @@ ELSE (_osg_IN_CACHE)
NAMES
${_osg_LIB_PREFIX}${COMPONENT}${_osg_LIB_VERSION}${_osg_DEBUG_TAG}
${_osg_LIB_PREFIX}${COMPONENT}${_osg_DEBUG_TAG}
+ ${COMPONENT}${_osg_LIB_VERSION}${_osg_DEBUG_TAG}
+ ${COMPONENT}${_osg_DEBUG_TAG}
PATHS ${_osg_LIBRARIES_SEARCH_DIRS}
PATH_SUFFIXES lib
)
--
2.29.2

View File

@ -0,0 +1,37 @@
From 3708bd16802589ba6c536f797ad076dfbaea341b Mon Sep 17 00:00:00 2001
From: Peter Ross <pross@xvid.org>
Date: Wed, 16 Dec 2020 15:15:40 +1100
Subject: [PATCH 04/23] algorithm provides std::find
---
src/Skybolt/SkyboltCommon/Listenable.h | 1 +
src/Skybolt/SkyboltCommon/TypedItemContainer.h | 1 +
2 files changed, 2 insertions(+)
diff --git a/src/Skybolt/SkyboltCommon/Listenable.h b/src/Skybolt/SkyboltCommon/Listenable.h
index 5270bcb..38332a6 100644
--- a/src/Skybolt/SkyboltCommon/Listenable.h
+++ b/src/Skybolt/SkyboltCommon/Listenable.h
@@ -7,6 +7,7 @@
#pragma once
#include <vector>
+#include <algorithm>
namespace skybolt
{
diff --git a/src/Skybolt/SkyboltCommon/TypedItemContainer.h b/src/Skybolt/SkyboltCommon/TypedItemContainer.h
index 8f5a772..27d2e5f 100644
--- a/src/Skybolt/SkyboltCommon/TypedItemContainer.h
+++ b/src/Skybolt/SkyboltCommon/TypedItemContainer.h
@@ -11,6 +11,7 @@
#include <memory>
#include <typeindex>
#include <vector>
+#include <algorithm>
namespace skybolt {
--
2.29.2

View File

@ -0,0 +1,25 @@
From 3e639ceef1112ac618998d61dc3cb48b0d4b8604 Mon Sep 17 00:00:00 2001
From: Peter Ross <pross@xvid.org>
Date: Wed, 16 Dec 2020 15:15:40 +1100
Subject: [PATCH 05/23] Box2.h depends on OsgMathHelpers.h for
componentWiseLerp etc
---
src/Skybolt/SkyboltCommon/Math/Box2.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/Skybolt/SkyboltCommon/Math/Box2.h b/src/Skybolt/SkyboltCommon/Math/Box2.h
index 8719292..a527678 100644
--- a/src/Skybolt/SkyboltCommon/Math/Box2.h
+++ b/src/Skybolt/SkyboltCommon/Math/Box2.h
@@ -8,6 +8,7 @@
#include <glm/glm.hpp>
#include <limits>
+#include <SkyboltVis/OsgMathHelpers.h> //componentWiseLerp etc
namespace skybolt {
--
2.29.2

View File

@ -0,0 +1,146 @@
From 584c896e0feeaa1669b94b909d544935138b333e Mon Sep 17 00:00:00 2001
From: Peter Ross <pross@xvid.org>
Date: Wed, 16 Dec 2020 15:15:40 +1100
Subject: [PATCH 06/23] fix typename misuse (g++ 8.3.0)
---
src/Skybolt/SkyboltCommon/Listenable.h | 2 +-
src/Skybolt/SkyboltCommon/Math/Box2.h | 2 +-
src/Skybolt/SkyboltCommon/Math/QuadTree.h | 32 +++++++++++------------
3 files changed, 18 insertions(+), 18 deletions(-)
diff --git a/src/Skybolt/SkyboltCommon/Listenable.h b/src/Skybolt/SkyboltCommon/Listenable.h
index 38332a6..eaca545 100644
--- a/src/Skybolt/SkyboltCommon/Listenable.h
+++ b/src/Skybolt/SkyboltCommon/Listenable.h
@@ -25,7 +25,7 @@ public:
void removeListener(Listener* listener)
{
- Listeners::iterator i = std::find(mListeners.begin(), mListeners.end(), listener);
+ typename Listeners::iterator i = std::find(mListeners.begin(), mListeners.end(), listener);
if (i != mListeners.end())
mListeners.erase(i);
diff --git a/src/Skybolt/SkyboltCommon/Math/Box2.h b/src/Skybolt/SkyboltCommon/Math/Box2.h
index a527678..929dd6e 100644
--- a/src/Skybolt/SkyboltCommon/Math/Box2.h
+++ b/src/Skybolt/SkyboltCommon/Math/Box2.h
@@ -23,7 +23,7 @@ struct Box2T
Box2T(const T& minimum, const T& maximum) : minimum(minimum), maximum(maximum) {}
inline T size() const { return maximum - minimum; }
- inline T center() const { return (maximum + minimum) / T::value_type(2); }
+ inline T center() const { return (maximum + minimum) / (typename T::value_type)(2); }
inline bool intersects(const T& v) const
{
diff --git a/src/Skybolt/SkyboltCommon/Math/QuadTree.h b/src/Skybolt/SkyboltCommon/Math/QuadTree.h
index b0d722a..d5a06e1 100644
--- a/src/Skybolt/SkyboltCommon/Math/QuadTree.h
+++ b/src/Skybolt/SkyboltCommon/Math/QuadTree.h
@@ -45,7 +45,7 @@ QuadTreeTileKey createAncestorKey(const QuadTreeTileKey& key, int level);
template <class VecT, class DerivedT>
struct QuadTreeTile
{
- typedef typename VecT VectorType;
+ typedef VecT VectorType;
Box2T<VecT> bounds;
QuadTreeTileKey key;
std::unique_ptr<DerivedT> children[4];
@@ -113,7 +113,7 @@ QuadTreeTileKey getKeyAtLevelIntersectingLonLatPoint(int level, const VecType& p
template <class TileT>
struct QuadTree
{
- typedef typename TileT TileType;
+ typedef TileT TileType;
typedef std::function <std::unique_ptr<TileT>(const QuadTreeTileKey& key, const Box2T<typename TileT::VectorType>& bounds)> TileCreator;
@@ -138,7 +138,7 @@ struct QuadTree
return intersectLeaf(p, getRoot());
}
- const TileT* intersectLeaf(const typename TileT::VectorType& p, const typename TileT& tile) const
+ const TileT* intersectLeaf(const typename TileT::VectorType& p, const TileT& tile) const
{
if (tile.bounds.intersects(p))
{
@@ -201,12 +201,12 @@ struct QuadTree
int y = tile.key.y * 2;
int level = tile.key.level + 1;
- TileT::VectorType size = tile.bounds.size() / 2;
- TileT::VectorType center = tile.bounds.minimum + size;
- TileT::VectorType centerE(tile.bounds.maximum.x(), center.y());
- TileT::VectorType centerW(tile.bounds.minimum.x(), center.y());
- TileT::VectorType centerN(center.x(), tile.bounds.maximum.y());
- TileT::VectorType centerS(center.x(), tile.bounds.minimum.y());
+ typename TileT::VectorType size = tile.bounds.size() / 2;
+ typename TileT::VectorType center = tile.bounds.minimum + size;
+ typename TileT::VectorType centerE(tile.bounds.maximum.x(), center.y());
+ typename TileT::VectorType centerW(tile.bounds.minimum.x(), center.y());
+ typename TileT::VectorType centerN(center.x(), tile.bounds.maximum.y());
+ typename TileT::VectorType centerS(center.x(), tile.bounds.minimum.y());
tile.children[0] = mTileCreator(QuadTreeTileKey(level, x, y), Box2T<typename TileT::VectorType>(centerW, centerN)); // north west
tile.children[1] = mTileCreator(QuadTreeTileKey(level, x + 1, y), Box2T<typename TileT::VectorType>(center, tile.bounds.maximum)); // north east
@@ -242,7 +242,7 @@ private:
template <typename TileT>
struct DiQuadTree
{
- typedef typename TileT TileType;
+ typedef TileT TileType;
QuadTree<TileT> leftTree;
QuadTree<TileT> rightTree;
@@ -269,8 +269,8 @@ struct DiQuadTree
template <class TileT>
DiQuadTree<TileT> createGlobeQuadTree(typename QuadTree<TileT>::TileCreator tileCreator)
{
- static const Box2T<TileT::VectorType> leftBounds(TileT::VectorType(-skybolt::math::piD(), -skybolt::math::halfPiD()), TileT::VectorType(0, skybolt::math::halfPiD()));
- static const Box2T<TileT::VectorType> rightBounds(TileT::VectorType(0, -skybolt::math::halfPiD()), TileT::VectorType(skybolt::math::piD(), skybolt::math::halfPiD()));
+ static const Box2T<typename TileT::VectorType> leftBounds(typename TileT::VectorType(-skybolt::math::piD(), -skybolt::math::halfPiD()), typename TileT::VectorType(0, skybolt::math::halfPiD()));
+ static const Box2T<typename TileT::VectorType> rightBounds(typename TileT::VectorType(0, -skybolt::math::halfPiD()), typename TileT::VectorType(skybolt::math::piD(), skybolt::math::halfPiD()));
return DiQuadTree<TileT>(tileCreator, QuadTreeTileKey(0, 0, 0), leftBounds, QuadTreeTileKey(0, 1, 0), rightBounds);
}
@@ -286,7 +286,7 @@ public:
const typename TreeT::TileType* intersect(const typename TreeT::TileType::VectorType& p)
{
return tree->intersect(p, predicate);
- typename const TreeT::TileType* tile = getLastTile();
+ typename TreeT::TileType* tile = getLastTile();
if (tile && tile->bounds.intersects(p))
{
return tile;
@@ -304,7 +304,7 @@ public:
}
private:
- typename const TreeT::TileType* getLastTile()
+ typename TreeT::TileType* getLastTile()
{
std::shared_lock<std::shared_mutex> lock(lastTileMutex);
auto i = lastTileMap.find(std::this_thread::get_id());
@@ -315,7 +315,7 @@ private:
return nullptr;
}
- void setLastTile(typename const TreeT::TileType* tile)
+ void setLastTile(typename TreeT::TileType* tile)
{
std::unique_lock<std::shared_mutex> lock(lastTileMutex);
lastTileMap[std::this_thread::get_id()] = tile;
@@ -325,7 +325,7 @@ private:
const std::shared_ptr<TreeT> tree;
typename QuadTree<typename TreeT::TileType>::IntersectionPredicate predicate;
- std::map<std::thread::id, typename const TreeT::TileType*> lastTileMap;
+ std::map<std::thread::id, typename TreeT::TileType*> lastTileMap;
std::shared_mutex lastTileMutex;
};
--
2.29.2

View File

@ -0,0 +1,124 @@
From bc77f7582bd1de4f9b047d5e78ac509ea0de67a1 Mon Sep 17 00:00:00 2001
From: Peter Ross <pross@xvid.org>
Date: Wed, 16 Dec 2020 15:15:40 +1100
Subject: [PATCH 07/23] squelch warnings about '#pragma once' use in cpp files
---
src/Skybolt/SkyboltCommon/Math/QuadTree.cpp | 2 --
src/Skybolt/SkyboltEngine/ComponentFactory.cpp | 2 --
src/Skybolt/SkyboltSim/System/EntitySystem.cpp | 2 --
.../SkyboltVis/RenderTarget/RenderTargetSceneAdapter.cpp | 3 ---
.../Renderable/Planet/Tile/PlanetSubdivisionPredicate.cpp | 2 --
.../Renderable/Planet/Tile/TileSource/CachedTileSource.cpp | 2 --
src/Skybolt/SkyboltVis/ShadowHelpers.cpp | 2 --
src/Skybolt/SkyboltVisTests/Helpers/CaptureTexture.cpp | 2 --
8 files changed, 17 deletions(-)
diff --git a/src/Skybolt/SkyboltCommon/Math/QuadTree.cpp b/src/Skybolt/SkyboltCommon/Math/QuadTree.cpp
index 3127e63..9e3b8ba 100644
--- a/src/Skybolt/SkyboltCommon/Math/QuadTree.cpp
+++ b/src/Skybolt/SkyboltCommon/Math/QuadTree.cpp
@@ -4,8 +4,6 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
-#pragma once
-
#include "QuadTree.h"
namespace skybolt {
diff --git a/src/Skybolt/SkyboltEngine/ComponentFactory.cpp b/src/Skybolt/SkyboltEngine/ComponentFactory.cpp
index fabb071..0e8e005 100644
--- a/src/Skybolt/SkyboltEngine/ComponentFactory.cpp
+++ b/src/Skybolt/SkyboltEngine/ComponentFactory.cpp
@@ -4,8 +4,6 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
-#pragma once
-
#include "ComponentFactory.h"
#include <SkyboltSim/CollisionGroupMasks.h>
diff --git a/src/Skybolt/SkyboltSim/System/EntitySystem.cpp b/src/Skybolt/SkyboltSim/System/EntitySystem.cpp
index 02986aa..962e63a 100644
--- a/src/Skybolt/SkyboltSim/System/EntitySystem.cpp
+++ b/src/Skybolt/SkyboltSim/System/EntitySystem.cpp
@@ -4,8 +4,6 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
-#pragma once
-
#include "EntitySystem.h"
#include "SkyboltSim/Entity.h"
#include "SkyboltSim/World.h"
diff --git a/src/Skybolt/SkyboltVis/RenderTarget/RenderTargetSceneAdapter.cpp b/src/Skybolt/SkyboltVis/RenderTarget/RenderTargetSceneAdapter.cpp
index 79eb94d..c01f5eb 100644
--- a/src/Skybolt/SkyboltVis/RenderTarget/RenderTargetSceneAdapter.cpp
+++ b/src/Skybolt/SkyboltVis/RenderTarget/RenderTargetSceneAdapter.cpp
@@ -4,9 +4,6 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
-
-#pragma once
-
#include "RenderTargetSceneAdapter.h"
#include "SkyboltVis/Camera.h"
#include "SkyboltVis/Scene.h"
diff --git a/src/Skybolt/SkyboltVis/Renderable/Planet/Tile/PlanetSubdivisionPredicate.cpp b/src/Skybolt/SkyboltVis/Renderable/Planet/Tile/PlanetSubdivisionPredicate.cpp
index 0a2a5d2..7dd9319 100644
--- a/src/Skybolt/SkyboltVis/Renderable/Planet/Tile/PlanetSubdivisionPredicate.cpp
+++ b/src/Skybolt/SkyboltVis/Renderable/Planet/Tile/PlanetSubdivisionPredicate.cpp
@@ -4,8 +4,6 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
-#pragma once
-
#include "PlanetSubdivisionPredicate.h"
#include "SkyboltVis/OsgGeocentric.h"
#include "SkyboltVis/OsgMathHelpers.h"
diff --git a/src/Skybolt/SkyboltVis/Renderable/Planet/Tile/TileSource/CachedTileSource.cpp b/src/Skybolt/SkyboltVis/Renderable/Planet/Tile/TileSource/CachedTileSource.cpp
index 81450a8..3354396 100644
--- a/src/Skybolt/SkyboltVis/Renderable/Planet/Tile/TileSource/CachedTileSource.cpp
+++ b/src/Skybolt/SkyboltVis/Renderable/Planet/Tile/TileSource/CachedTileSource.cpp
@@ -4,8 +4,6 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
-#pragma once
-
#include "CachedTileSource.h"
#include "SkyboltVis/OsgImageHelpers.h"
diff --git a/src/Skybolt/SkyboltVis/ShadowHelpers.cpp b/src/Skybolt/SkyboltVis/ShadowHelpers.cpp
index d2ea517..52468a4 100644
--- a/src/Skybolt/SkyboltVis/ShadowHelpers.cpp
+++ b/src/Skybolt/SkyboltVis/ShadowHelpers.cpp
@@ -4,8 +4,6 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
-#pragma once
-
#include "ShadowHelpers.h"
#include "OsgStateSetHelpers.h"
diff --git a/src/Skybolt/SkyboltVisTests/Helpers/CaptureTexture.cpp b/src/Skybolt/SkyboltVisTests/Helpers/CaptureTexture.cpp
index 92b4170..d1444ce 100644
--- a/src/Skybolt/SkyboltVisTests/Helpers/CaptureTexture.cpp
+++ b/src/Skybolt/SkyboltVisTests/Helpers/CaptureTexture.cpp
@@ -4,8 +4,6 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
-#pragma once
-
#include "CaptureTexture.h"
#include <osg/Texture3D>
--
2.29.2

View File

@ -0,0 +1,24 @@
From 8aca3be81a423e829afbfdaa0da4f62133549f69 Mon Sep 17 00:00:00 2001
From: Peter Ross <pross@xvid.org>
Date: Wed, 16 Dec 2020 15:15:40 +1100
Subject: [PATCH 08/23] NumericComparison: Math.h not found or required
---
src/Skybolt/SkyboltCommon/NumericComparison.h | 1 -
1 file changed, 1 deletion(-)
diff --git a/src/Skybolt/SkyboltCommon/NumericComparison.h b/src/Skybolt/SkyboltCommon/NumericComparison.h
index f1ed64e..11f80ea 100644
--- a/src/Skybolt/SkyboltCommon/NumericComparison.h
+++ b/src/Skybolt/SkyboltCommon/NumericComparison.h
@@ -6,7 +6,6 @@
#pragma once
-#include "Math.h"
#include <stdio.h>
#include <complex>
#include <string>
--
2.29.2

View File

@ -0,0 +1,24 @@
From 65dab98d86a268e8c4e536d60c04086730230bcc Mon Sep 17 00:00:00 2001
From: Peter Ross <pross@xvid.org>
Date: Wed, 16 Dec 2020 15:15:40 +1100
Subject: [PATCH 09/23] EngineStats: stdlib provides size_t
---
src/Skybolt/SkyboltEngine/EngineStats.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/Skybolt/SkyboltEngine/EngineStats.h b/src/Skybolt/SkyboltEngine/EngineStats.h
index 6f05e5a..187a69b 100644
--- a/src/Skybolt/SkyboltEngine/EngineStats.h
+++ b/src/Skybolt/SkyboltEngine/EngineStats.h
@@ -5,6 +5,7 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
#pragma once
+#include <stdlib.h> //size_t
namespace skybolt {
--
2.29.2

View File

@ -0,0 +1,99 @@
From 6a07af9e468143f48b1141525bdfcd7e0842a911 Mon Sep 17 00:00:00 2001
From: Peter Ross <pross@xvid.org>
Date: Wed, 16 Dec 2020 15:15:40 +1100
Subject: [PATCH 10/23] remove assert() statements that reference non-existant
variables
---
src/Skybolt/SkyboltEngine/EntityFactory.cpp | 2 --
.../Sequence/JulianDateSequenceController.cpp | 1 -
.../SkyboltSim/CameraController/CameraController.cpp | 2 +-
src/Skybolt/SkyboltVis/RenderTarget/Viewport.cpp | 2 --
.../Renderable/Planet/Features/PlanetFeatures.cpp | 1 -
.../SkyboltVis/Renderable/Planet/Tile/OsgTileFactory.cpp | 8 --------
6 files changed, 1 insertion(+), 15 deletions(-)
diff --git a/src/Skybolt/SkyboltEngine/EntityFactory.cpp b/src/Skybolt/SkyboltEngine/EntityFactory.cpp
index 65c6113..53fbe22 100644
--- a/src/Skybolt/SkyboltEngine/EntityFactory.cpp
+++ b/src/Skybolt/SkyboltEngine/EntityFactory.cpp
@@ -465,8 +465,6 @@ EntityFactory::EntityFactory(const EntityFactory::Context& context, const std::v
assert(context.simWorld);
assert(context.stats);
assert(context.tileSourceFactory);
- assert(context.Scene);
- assert(context.visWindow);
mBuiltinTemplates = {
{"SunBillboard", [this] {return createSun(); }},
diff --git a/src/Skybolt/SkyboltEngine/Sequence/JulianDateSequenceController.cpp b/src/Skybolt/SkyboltEngine/Sequence/JulianDateSequenceController.cpp
index 7abfba2..069c0ff 100644
--- a/src/Skybolt/SkyboltEngine/Sequence/JulianDateSequenceController.cpp
+++ b/src/Skybolt/SkyboltEngine/Sequence/JulianDateSequenceController.cpp
@@ -16,7 +16,6 @@ JulianDateSequenceController::JulianDateSequenceController(const std::shared_ptr
StateSequenceControllerT(sequence),
mScenario(scenario)
{
- assert(mEntity);
mInterpolator = std::make_unique<LinearInterpolatorD>(
[this] (int i) { return mSequence->values[i].value; });
}
diff --git a/src/Skybolt/SkyboltSim/CameraController/CameraController.cpp b/src/Skybolt/SkyboltSim/CameraController/CameraController.cpp
index a73df97..3f29ac7 100644
--- a/src/Skybolt/SkyboltSim/CameraController/CameraController.cpp
+++ b/src/Skybolt/SkyboltSim/CameraController/CameraController.cpp
@@ -48,6 +48,6 @@ void CameraController::setTarget(Entity* entity)
void CameraController::onDestroy(Entity* entity)
{
- assert(object == mTarget);
+ assert(entity == mTarget);
setTarget(nullptr);
}
diff --git a/src/Skybolt/SkyboltVis/RenderTarget/Viewport.cpp b/src/Skybolt/SkyboltVis/RenderTarget/Viewport.cpp
index f0b5b65..3240d23 100644
--- a/src/Skybolt/SkyboltVis/RenderTarget/Viewport.cpp
+++ b/src/Skybolt/SkyboltVis/RenderTarget/Viewport.cpp
@@ -14,8 +14,6 @@ using namespace skybolt::vis;
Viewport::Viewport() :
RenderTarget(new osg::Camera)
{
- assert(mWindow);
-
mOsgCamera->setReferenceFrame(osg::Transform::ABSOLUTE_RF);
mOsgCamera->setComputeNearFarMode(osg::CullSettings::DO_NOT_COMPUTE_NEAR_FAR);
mOsgCamera->setClearColor(osg::Vec4(0, 0, 0, 0));
diff --git a/src/Skybolt/SkyboltVis/Renderable/Planet/Features/PlanetFeatures.cpp b/src/Skybolt/SkyboltVis/Renderable/Planet/Features/PlanetFeatures.cpp
index 273cfeb..f580155 100644
--- a/src/Skybolt/SkyboltVis/Renderable/Planet/Features/PlanetFeatures.cpp
+++ b/src/Skybolt/SkyboltVis/Renderable/Planet/Features/PlanetFeatures.cpp
@@ -210,7 +210,6 @@ PlanetFeatures::PlanetFeatures(const PlanetFeaturesParams& params) :
mPlanetRadius(params.planetRadius),
mFeatures(createTile)
{
- assert(mLatLonElevationProvider);
assert(mScheduler);
for (int i = 0; i < PlanetFeaturesParams::featureGroupsSize; ++i)
diff --git a/src/Skybolt/SkyboltVis/Renderable/Planet/Tile/OsgTileFactory.cpp b/src/Skybolt/SkyboltVis/Renderable/Planet/Tile/OsgTileFactory.cpp
index 4b1daea..2d676f5 100644
--- a/src/Skybolt/SkyboltVis/Renderable/Planet/Tile/OsgTileFactory.cpp
+++ b/src/Skybolt/SkyboltVis/Renderable/Planet/Tile/OsgTileFactory.cpp
@@ -45,14 +45,6 @@ OsgTileFactory::OsgTileFactory(const OsgTileFactoryConfig& config) :
mForestGeoVisibilityRange(config.forestGeoVisibilityRange),
mHasCloudShadows(config.hasCloudShadows)
{
- assert(scheduler);
- assert(programs);
-
- // FIXME: textureCompiler is currently unused, remove.
- // It was originally used to pre-compile textures before used by the renderer,
- // but it was found to be unnecessary because we throttle the amount of terrain tiles
- // created each frame which limits the amount of texture compilation requred.
- assert(textureCompiler);
}
OsgTile OsgTileFactory::createOsgTile(const QuadTreeTileKey& key, const Box2d& latLonBounds, const TileImage& heightImage, osg::Image* landMaskImage,
--
2.29.2

View File

@ -0,0 +1,24 @@
From 50407396fb6aeec1fbd95be4e6486819cafbd8d7 Mon Sep 17 00:00:00 2001
From: Peter Ross <pross@xvid.org>
Date: Wed, 16 Dec 2020 15:15:40 +1100
Subject: [PATCH 11/23] boost/function.hpp provides std::function
---
src/Skybolt/SkyboltEngine/Plugin/PluginHelpers.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/Skybolt/SkyboltEngine/Plugin/PluginHelpers.h b/src/Skybolt/SkyboltEngine/Plugin/PluginHelpers.h
index 99b6aa5..966f094 100644
--- a/src/Skybolt/SkyboltEngine/Plugin/PluginHelpers.h
+++ b/src/Skybolt/SkyboltEngine/Plugin/PluginHelpers.h
@@ -10,6 +10,7 @@
#include <boost/dll/import.hpp>
#include <boost/filesystem.hpp>
#include <boost/log/trivial.hpp>
+#include <boost/function.hpp>
namespace skybolt {
--
2.29.2

View File

@ -0,0 +1,25 @@
From 7481ff6c5890b54dfae4229fa80fd6c5f2433fe3 Mon Sep 17 00:00:00 2001
From: Peter Ross <pross@xvid.org>
Date: Wed, 16 Dec 2020 15:15:40 +1100
Subject: [PATCH 12/23] VisOrbits: const auto required here (g++ 8.3.0)
---
src/Skybolt/SkyboltEngine/SimVisBinding/VisOrbits.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/Skybolt/SkyboltEngine/SimVisBinding/VisOrbits.cpp b/src/Skybolt/SkyboltEngine/SimVisBinding/VisOrbits.cpp
index 4fbd299..e32b412 100644
--- a/src/Skybolt/SkyboltEngine/SimVisBinding/VisOrbits.cpp
+++ b/src/Skybolt/SkyboltEngine/SimVisBinding/VisOrbits.cpp
@@ -35,7 +35,7 @@ VisOrbits::~VisOrbits()
static boost::optional<Orbit> getOrbit(const Entity& entity, double julianDate)
{
- if (auto& controller = entity.getFirstComponent<OrbitComponent>())
+ if (const auto& controller = entity.getFirstComponent<OrbitComponent>())
{
return controller->orbit;
}
--
2.29.2

View File

@ -0,0 +1,31 @@
From 3849eb0574485208c23945b1d57981fdf72e00ac Mon Sep 17 00:00:00 2001
From: Peter Ross <pross@xvid.org>
Date: Wed, 16 Dec 2020 15:15:40 +1100
Subject: [PATCH 13/23] AttachmentPointsComponent: return something on
getOrientation() error
---
.../SkyboltSim/Components/AttachmentPointsComponent.cpp | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/src/Skybolt/SkyboltSim/Components/AttachmentPointsComponent.cpp b/src/Skybolt/SkyboltSim/Components/AttachmentPointsComponent.cpp
index b5a1189..8e5fc1e 100644
--- a/src/Skybolt/SkyboltSim/Components/AttachmentPointsComponent.cpp
+++ b/src/Skybolt/SkyboltSim/Components/AttachmentPointsComponent.cpp
@@ -47,7 +47,11 @@ Quaternion calcAttachmentPointOrientation(const Entity& entity, const Attachment
{
return *orientation * point.orientationRelBody;
}
+ else
+ {
+ return Quaternion(); //FIXME: or return error level?
+ }
}
} // namespace sim
-} // namespace skybolt
\ No newline at end of file
+} // namespace skybolt
--
2.29.2

View File

@ -0,0 +1,26 @@
From 6795a33d1107245b224f1ea142ffead9544e5759 Mon Sep 17 00:00:00 2001
From: Peter Ross <pross@xvid.org>
Date: Wed, 16 Dec 2020 15:15:40 +1100
Subject: [PATCH 14/23] Astronomy: make calcHourAngle prototype static
make it consistent with implementation
---
src/Skybolt/SkyboltSim/Physics/Astronomy.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/Skybolt/SkyboltSim/Physics/Astronomy.h b/src/Skybolt/SkyboltSim/Physics/Astronomy.h
index 1412823..b34f58d 100644
--- a/src/Skybolt/SkyboltSim/Physics/Astronomy.h
+++ b/src/Skybolt/SkyboltSim/Physics/Astronomy.h
@@ -26,7 +26,7 @@ double calcEarthAxialTilt(double julianDate);
LatLon convertEclipticToEquatorial(double julianDate, const LatLon& ecliptic);
-double calcHourAngle(double julianDate, const LatLon& equatorial, const LatLon& observer);
+static double calcHourAngle(double julianDate, const LatLon& equatorial, const LatLon& observer);
AzEl convertEquatorialToHorizontal(double julianDate, const LatLon& equatorial, const LatLon& observer);
--
2.29.2

View File

@ -0,0 +1,26 @@
From ba5bab15f77ea16050976b911dc3217589289230 Mon Sep 17 00:00:00 2001
From: Peter Ross <pross@xvid.org>
Date: Wed, 16 Dec 2020 15:15:40 +1100
Subject: [PATCH 15/23] BruentonAtmosphereGenerator: make
getOptionalSingleMieScatteringTexture() return intended value
---
.../Atmosphere/Bruneton/BruentonAtmosphereGenerator.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/Skybolt/SkyboltVis/Renderable/Atmosphere/Bruneton/BruentonAtmosphereGenerator.h b/src/Skybolt/SkyboltVis/Renderable/Atmosphere/Bruneton/BruentonAtmosphereGenerator.h
index 2663387..ac3507e 100644
--- a/src/Skybolt/SkyboltVis/Renderable/Atmosphere/Bruneton/BruentonAtmosphereGenerator.h
+++ b/src/Skybolt/SkyboltVis/Renderable/Atmosphere/Bruneton/BruentonAtmosphereGenerator.h
@@ -54,7 +54,7 @@ public:
const osg::ref_ptr<osg::Texture>& getTransmittanceTexture() const { return mTransmittanceTexture; }
const osg::ref_ptr<osg::Texture>& getScatteringTexture() const { return mScatteringTexture; }
const osg::ref_ptr<osg::Texture>& getIrradianceTexture() const { return mIrradianceTexture; }
- const osg::ref_ptr<osg::Texture>& getOptionalSingleMieScatteringTexture() const { mOptionalSingleMieScatteringTexture; }
+ const osg::ref_ptr<osg::Texture>& getOptionalSingleMieScatteringTexture() const { return mOptionalSingleMieScatteringTexture; }
private:
std::unique_ptr<class CompositingPipelineFactory> mCompositingPipelineFactory;
--
2.29.2

View File

@ -0,0 +1,42 @@
From 48071f258e546d8ba90df6442711f7514bdd67a5 Mon Sep 17 00:00:00 2001
From: Peter Ross <pross@xvid.org>
Date: Wed, 16 Dec 2020 15:15:40 +1100
Subject: [PATCH 16/23] ceilf and floorf are valid c99 functions, and do not
require c++ std:: namespace
---
src/Skybolt/SkyboltVis/Renderable/BuildingsBatch.cpp | 2 +-
src/Skybolt/SkyboltVis/Renderable/Water/WaterStateSet.cpp | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/Skybolt/SkyboltVis/Renderable/BuildingsBatch.cpp b/src/Skybolt/SkyboltVis/Renderable/BuildingsBatch.cpp
index 388c392..1723da5 100644
--- a/src/Skybolt/SkyboltVis/Renderable/BuildingsBatch.cpp
+++ b/src/Skybolt/SkyboltVis/Renderable/BuildingsBatch.cpp
@@ -100,7 +100,7 @@ static void createBuilding(const Building& building, const FacadeTexture& facade
}
// UVs
- int levels = std::ceilf(building.height / buildingLevelHeight);
+ int levels = ceilf(building.height / buildingLevelHeight);
// calculate vertical repeats so that texture is not cut off vertically mid level within the texture
float textureWorldHeight = facade.buildingLevelsInTexture * buildingLevelHeight;
diff --git a/src/Skybolt/SkyboltVis/Renderable/Water/WaterStateSet.cpp b/src/Skybolt/SkyboltVis/Renderable/Water/WaterStateSet.cpp
index 71ee9c8..6f18fdc 100644
--- a/src/Skybolt/SkyboltVis/Renderable/Water/WaterStateSet.cpp
+++ b/src/Skybolt/SkyboltVis/Renderable/Water/WaterStateSet.cpp
@@ -120,8 +120,8 @@ static osg::Vec2i calcHashCellCoord(const osg::Vec2f& point)
osg::Vec2i index;
osg::Vec2f indexF = componentWiseDivide(point, hasCellWorldSize);
return osg::Vec2i(
- int(std::floorf(indexF.x())),
- int(std::floorf(indexF.y())));
+ int(floorf(indexF.x())),
+ int(floorf(indexF.y())));
}
int modPositive(int a, int b)
--
2.29.2

View File

@ -0,0 +1,36 @@
From 8edd22d1bcf5f8d79cc4e483a0cd6414cd212a98 Mon Sep 17 00:00:00 2001
From: Peter Ross <pross@xvid.org>
Date: Wed, 16 Dec 2020 15:15:40 +1100
Subject: [PATCH 17/23] ExamplesCommon: add CMAKE_DL_LIBS to target
---
src/SkyboltExamples/ExamplesCommon/CMakeLists.txt | 2 +-
src/SkyboltExamples/MinimalApp/CMakeLists.txt | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/SkyboltExamples/ExamplesCommon/CMakeLists.txt b/src/SkyboltExamples/ExamplesCommon/CMakeLists.txt
index e2bd94d..8a7eef1 100644
--- a/src/SkyboltExamples/ExamplesCommon/CMakeLists.txt
+++ b/src/SkyboltExamples/ExamplesCommon/CMakeLists.txt
@@ -15,4 +15,4 @@ add_library(${LIB_NAME} STATIC ${SOURCE_FILES} ${HEADER_FILES})
set_target_properties(${LIB_NAME} PROPERTIES FOLDER Examples)
-target_link_libraries(${LIB_NAME} ${LIBRARIES})
+target_link_libraries(${LIB_NAME} ${LIBRARIES} ${CMAKE_DL_LIBS})
diff --git a/src/SkyboltExamples/MinimalApp/CMakeLists.txt b/src/SkyboltExamples/MinimalApp/CMakeLists.txt
index 1e959f0..1f5f3ec 100644
--- a/src/SkyboltExamples/MinimalApp/CMakeLists.txt
+++ b/src/SkyboltExamples/MinimalApp/CMakeLists.txt
@@ -11,7 +11,7 @@ ExamplesCommon
)
add_executable(${APP_NAME} ${SOURCE})
-target_link_libraries (${APP_NAME} ${LIBS})
+target_link_libraries (${APP_NAME} ${LIBS})
set_target_properties(${APP_NAME} PROPERTIES FOLDER Examples)
--
2.29.2

View File

@ -0,0 +1,26 @@
From 2b45d567b05ff5588a7a1625582c5260bbfd67ae Mon Sep 17 00:00:00 2001
From: Peter Ross <pross@xvid.org>
Date: Wed, 16 Dec 2020 15:15:40 +1100
Subject: [PATCH 18/23] BillboardForest:
s/setMipmapMaxLevel/setNumMipmapLevels/ (OSG 3.7.0)
---
src/Skybolt/SkyboltVis/Renderable/Forest/BillboardForest.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/Skybolt/SkyboltVis/Renderable/Forest/BillboardForest.cpp b/src/Skybolt/SkyboltVis/Renderable/Forest/BillboardForest.cpp
index 553fa9c..7b2e193 100644
--- a/src/Skybolt/SkyboltVis/Renderable/Forest/BillboardForest.cpp
+++ b/src/Skybolt/SkyboltVis/Renderable/Forest/BillboardForest.cpp
@@ -124,7 +124,7 @@ void BillboardForest::addGeodes(osg::Group& node, const std::vector<Tree>& trees
ss->setAttributeAndModes(topProgram, osg::StateAttribute::ON);
static osg::ref_ptr<osg::Texture2D> albedoTexture = new osg::Texture2D(readImageWithCorrectOrientation("Environment/Forest/spruceAtlas_top_albedo.tga"));
albedoTexture->setInternalFormat(toSrgbInternalFormat(albedoTexture->getInternalFormat()));
- albedoTexture->setMipmapMaxLevel(4); // TODO: Modify highest mipmap levels so that they maintain alpha, tghen remove this max level
+ albedoTexture->setNumMipmapLevels(4); // TODO: Modify highest mipmap levels so that they maintain alpha, tghen remove this max level
ss->setTextureAttributeAndModes(0, albedoTexture, osg::StateAttribute::ON);
topGeode->setStateSet(ss);
--
2.29.2

View File

@ -0,0 +1,25 @@
From 8b3a6f6d9eadf4e1597619a1480aeee94430329f Mon Sep 17 00:00:00 2001
From: Peter Ross <pross@xvid.org>
Date: Wed, 16 Dec 2020 15:15:40 +1100
Subject: [PATCH 19/23] Planet.h: class MyPlanetSurfaceListener required
---
src/Skybolt/SkyboltVis/Renderable/Planet/Planet.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/Skybolt/SkyboltVis/Renderable/Planet/Planet.h b/src/Skybolt/SkyboltVis/Renderable/Planet/Planet.h
index 544d2c8..bed5f8a 100644
--- a/src/Skybolt/SkyboltVis/Renderable/Planet/Planet.h
+++ b/src/Skybolt/SkyboltVis/Renderable/Planet/Planet.h
@@ -44,6 +44,8 @@ struct PlanetConfig
boost::optional<file::Path> featuresDirectory;
};
+class MyPlanetSurfaceListener;
+
class Planet : public RootNode
{
friend class MyPlanetSurfaceListener;
--
2.29.2

View File

@ -0,0 +1,40 @@
From e4b123b67f88cf56563d73eb51f28fe1281a6529 Mon Sep 17 00:00:00 2001
From: Peter Ross <pross@xvid.org>
Date: Wed, 16 Dec 2020 15:15:40 +1100
Subject: [PATCH 20/23] StandaloneWindow: add X11 abstraction
---
src/Skybolt/SkyboltVis/Window/StandaloneWindow.cpp | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/src/Skybolt/SkyboltVis/Window/StandaloneWindow.cpp b/src/Skybolt/SkyboltVis/Window/StandaloneWindow.cpp
index 60cae7d..cb582d5 100644
--- a/src/Skybolt/SkyboltVis/Window/StandaloneWindow.cpp
+++ b/src/Skybolt/SkyboltVis/Window/StandaloneWindow.cpp
@@ -6,7 +6,11 @@
#include "StandaloneWindow.h"
#include <osgViewer/ViewerEventHandlers>
+#if defined(WIN32)
#include <osgViewer/api/Win32/GraphicsHandleWin32>
+#else
+#include <osgViewer/api/X11/GraphicsHandleX11>
+#endif
using namespace skybolt::vis;
@@ -60,7 +64,11 @@ std::string StandaloneWindow::getHandle() const
mViewer->getWindows(windows);
if (windows.empty())
return "";
+#if defined(WIN32)
// TODO: Don't depend on Win32
size_t ptr = (size_t)dynamic_cast<osgViewer::GraphicsHandleWin32*>(windows[0])->getHWND();
+#else
+ size_t ptr = (size_t)dynamic_cast<osgViewer::GraphicsHandleX11*>(windows[0])->getDisplay();
+#endif
return std::to_string(ptr);
}
--
2.29.2

View File

@ -0,0 +1,25 @@
From 36074c4c7e37673baa9d96a8a3bc31da0d802d82 Mon Sep 17 00:00:00 2001
From: Peter Ross <pross@xvid.org>
Date: Wed, 16 Dec 2020 15:15:40 +1100
Subject: [PATCH 21/23] TileMapGenerator: don't propagate void return type
---
src/Skybolt/TileMapGenerator/main.cpp | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/Skybolt/TileMapGenerator/main.cpp b/src/Skybolt/TileMapGenerator/main.cpp
index 462dcf5..1bd76dd 100644
--- a/src/Skybolt/TileMapGenerator/main.cpp
+++ b/src/Skybolt/TileMapGenerator/main.cpp
@@ -139,5 +139,5 @@ void main_dem()
int main()
{
- return main_dem();
-}
\ No newline at end of file
+ main_dem();
+}
--
2.29.2

View File

@ -0,0 +1,25 @@
From 514a7dd707c2670bfb18c210446775c4040539db Mon Sep 17 00:00:00 2001
From: Peter Ross <pross@xvid.org>
Date: Wed, 16 Dec 2020 15:15:40 +1100
Subject: [PATCH 22/23] ShaUtility: fix path for sha1 algorithm
---
src/Skybolt/SkyboltCommon/ShaUtility.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/Skybolt/SkyboltCommon/ShaUtility.cpp b/src/Skybolt/SkyboltCommon/ShaUtility.cpp
index 153af9f..950e943 100644
--- a/src/Skybolt/SkyboltCommon/ShaUtility.cpp
+++ b/src/Skybolt/SkyboltCommon/ShaUtility.cpp
@@ -6,7 +6,7 @@
#include "ShaUtility.h"
-#include <boost/uuid/sha1.hpp>
+#include <boost/uuid/detail/sha1.hpp>
namespace skybolt {
--
2.29.2

View File

@ -0,0 +1,32 @@
From de0a418682efc72154cfee94d5f076cbb4fbb23d Mon Sep 17 00:00:00 2001
From: Peter Ross <pross@xvid.org>
Date: Wed, 16 Dec 2020 15:15:40 +1100
Subject: [PATCH 23/23] QuadTree: remove unused, and broken, code path (g++
8.3.0)
---
src/Skybolt/SkyboltCommon/Math/QuadTree.h | 8 --------
1 file changed, 8 deletions(-)
diff --git a/src/Skybolt/SkyboltCommon/Math/QuadTree.h b/src/Skybolt/SkyboltCommon/Math/QuadTree.h
index d5a06e1..2dfe8b9 100644
--- a/src/Skybolt/SkyboltCommon/Math/QuadTree.h
+++ b/src/Skybolt/SkyboltCommon/Math/QuadTree.h
@@ -286,14 +286,6 @@ public:
const typename TreeT::TileType* intersect(const typename TreeT::TileType::VectorType& p)
{
return tree->intersect(p, predicate);
- typename TreeT::TileType* tile = getLastTile();
- if (tile && tile->bounds.intersects(p))
- {
- return tile;
- }
- tile = tree->intersect(p, predicate);
- setLastTile(tile);
- return tile;
}
//! @ThreadSafe
--
2.29.2