Веб-сайт самохостера Lotigara

summaryrefslogtreecommitdiff
path: root/source/rendering/StarEnvironmentPainter.cpp
diff options
context:
space:
mode:
authorKae <80987908+Novaenia@users.noreply.github.com>2024-12-05 15:39:11 +1100
committerKae <80987908+Novaenia@users.noreply.github.com>2024-12-05 15:39:11 +1100
commitdd52188e53e690f8eb872421f8a4c3bcc5699133 (patch)
treee99bf401ffad1f2b3988922188a12cffc04147f6 /source/rendering/StarEnvironmentPainter.cpp
parent3fc12923ce2db3a5af87d8d1195ce2ac4c5b6030 (diff)
add sky setting overrides to celestial.flyShip, pass net rules to packet read/write
Diffstat (limited to 'source/rendering/StarEnvironmentPainter.cpp')
-rw-r--r--source/rendering/StarEnvironmentPainter.cpp12
1 files changed, 6 insertions, 6 deletions
diff --git a/source/rendering/StarEnvironmentPainter.cpp b/source/rendering/StarEnvironmentPainter.cpp
index b5c514e..d95d968 100644
--- a/source/rendering/StarEnvironmentPainter.cpp
+++ b/source/rendering/StarEnvironmentPainter.cpp
@@ -39,9 +39,6 @@ void EnvironmentPainter::update(float dt) {
}
void EnvironmentPainter::renderStars(float pixelRatio, Vec2F const& screenSize, SkyRenderData const& sky) {
- if (!sky.settings)
- return;
-
float nightSkyAlpha = 1.0f - min(sky.dayLevel, sky.skyAlpha);
if (nightSkyAlpha <= 0.0f)
return;
@@ -58,6 +55,9 @@ void EnvironmentPainter::renderStars(float pixelRatio, Vec2F const& screenSize,
setupStars(sky);
}
+ if (!sky.settings || sky.starFrames == 0 || sky.starTypes().empty())
+ return;
+
float screenBuffer = sky.settings.queryFloat("stars.screenBuffer");
PolyF field = PolyF(RectF::withSize(viewMin, Vec2F(viewSize)).padded(screenBuffer));
@@ -85,8 +85,8 @@ void EnvironmentPainter::renderStars(float pixelRatio, Vec2F const& screenSize,
Vec2F screenPos = transform.transformVec2(star.first);
if (viewRect.contains(screenPos)) {
size_t starFrame = (size_t)(sky.epochTime + star.second.second) % sky.starFrames;
- auto const& texture = m_starTextures[star.second.first * sky.starFrames + starFrame];
- primitives.emplace_back(std::in_place_type_t<RenderQuad>(), texture, screenPos * pixelRatio - Vec2F(texture->size()) / 2, 1.0, color, 0.0f);
+ if (auto const& texture = m_starTextures[star.second.first * sky.starFrames + starFrame])
+ primitives.emplace_back(std::in_place_type_t<RenderQuad>(), texture, screenPos * pixelRatio - Vec2F(texture->size()) / 2, 1.0, color, 0.0f);
}
}
@@ -455,7 +455,7 @@ void EnvironmentPainter::setupStars(SkyRenderData const& sky) {
if (!sky.settings)
return;
- StringList starTypes = sky.starTypes();
+ StringList const& starTypes = sky.starTypes();
size_t starTypesSize = starTypes.size();
m_starTextures.resize(starTypesSize * sky.starFrames);