#pragma once #include #include #include #include #include #include #include #include #include namespace mbgl { class View; class UpdateParameters; class RenderStyle; class RenderStaticData; class FrameHistory; class Programs; class TransformState; class ImageManager; class LineAtlas; class UnwrappedTileID; class PaintParameters { public: PaintParameters(gl::Context&, float pixelRatio, GLContextMode, View&, const UpdateParameters&, RenderStyle&, RenderStaticData&, FrameHistory&); gl::Context& context; View& view; const TransformState& state; const EvaluatedLight& evaluatedLight; RenderStaticData& staticData; FrameHistory& frameHistory; ImageManager& imageManager; LineAtlas& lineAtlas; RenderPass pass = RenderPass::Opaque; MapMode mapMode; MapDebugOptions debugOptions; GLContextMode contextMode; TimePoint timePoint; float pixelRatio; std::array pixelsToGLUnits; algorithm::ClipIDGenerator clipIDGenerator; Programs& programs; gl::DepthMode depthModeForSublayer(uint8_t n, gl::DepthMode::Mask) const; gl::StencilMode stencilModeForClipping(const ClipID&) const; gl::ColorMode colorModeForRenderPass() const; mat4 matrixForTile(const UnwrappedTileID&); mat4 projMatrix; mat4 nearClippedProjMatrix; int numSublayers = 3; uint32_t currentLayer; float depthRangeSize; const float depthEpsilon = 1.0f / (1 << 16); }; } // namespace mbgl