diff options
author | Kae <80987908+Novaenia@users.noreply.github.com> | 2024-12-05 15:39:11 +1100 |
---|---|---|
committer | Kae <80987908+Novaenia@users.noreply.github.com> | 2024-12-05 15:39:11 +1100 |
commit | dd52188e53e690f8eb872421f8a4c3bcc5699133 (patch) | |
tree | e99bf401ffad1f2b3988922188a12cffc04147f6 /source/rendering/StarEnvironmentPainter.cpp | |
parent | 3fc12923ce2db3a5af87d8d1195ce2ac4c5b6030 (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.cpp | 12 |
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); |