feat: establish formal raster particle source chain

This commit is contained in:
OpenAI Codex
2026-08-31 12:17:06 +08:00
parent 343cecc778
commit 39c7ae22ed
40 changed files with 811 additions and 130 deletions

View File

@@ -1,38 +1,11 @@
#pragma once
#include <mbgl/renderer/render_layer.hpp>
#include <mbgl/style/layers/particle_validation_layer_impl.hpp>
#include <mbgl/renderer/layers/render_raster_particle_layer.hpp>
namespace mbgl {
class ParticleGpuValidationResources;
// VALIDATION ONLY: proves Core RenderLayer/GPU ping-pong integration.
// STATIC redraws only the frozen Trail composite; it never advances State/Trail slots.
class RenderParticleValidationLayer final : public RenderLayer {
public:
explicit RenderParticleValidationLayer(Immutable<style::ParticleValidationLayer::Impl>);
~RenderParticleValidationLayer() override;
void update(gfx::ShaderRegistry&,
gfx::Context&,
const TransformState&,
const std::shared_ptr<UpdateParameters>&,
const RenderTree&,
UniqueChangeRequestVec&) override;
private:
void transition(const TransitionParameters&) override {}
void evaluate(const PropertyEvaluationParameters&) override;
bool hasTransition() const override { return false; }
bool hasCrossfade() const override { return false; }
bool needsRepaint() const override;
void prepare(const LayerPrepareParameters&) override {}
void markLayerRenderable(bool, UniqueChangeRequestVec&) override;
void layerRemoved(UniqueChangeRequestVec&) override;
void markContextDestroyed() override;
std::shared_ptr<ParticleGpuValidationResources> gpuValidation;
};
// Validation styles reuse the formal GPU renderer and do not own another
// particle simulation.
using RenderParticleValidationLayer = RenderRasterParticleLayer;
} // namespace mbgl