1 #pragma once 2 3 #include <mbgl/gl/vertex_buffer.hpp> 4 #include <mbgl/gl/index_buffer.hpp> 5 #include <mbgl/programs/programs.hpp> 6 #include <mbgl/util/optional.hpp> 7 8 #include <string> 9 10 namespace mbgl { 11 12 class RenderStaticData { 13 public: 14 RenderStaticData(gl::Context&, float pixelRatio, const optional<std::string>& programCacheDir); 15 16 gl::VertexBuffer<PositionOnlyLayoutAttributes::Vertex> tileVertexBuffer; 17 gl::VertexBuffer<RasterLayoutVertex> rasterVertexBuffer; 18 gl::VertexBuffer<ExtrusionTextureLayoutVertex> extrusionTextureVertexBuffer; 19 20 gl::IndexBuffer<gl::Triangles> quadTriangleIndexBuffer; 21 gl::IndexBuffer<gl::LineStrip> tileBorderIndexBuffer; 22 23 SegmentVector<BackgroundAttributes> tileTriangleSegments; 24 SegmentVector<DebugAttributes> tileBorderSegments; 25 SegmentVector<RasterAttributes> rasterSegments; 26 SegmentVector<ExtrusionTextureAttributes> extrusionTextureSegments; 27 28 optional<gl::Renderbuffer<gl::RenderbufferType::DepthComponent>> depthRenderbuffer; 29 bool has3D = false; 30 Size backendSize; 31 32 Programs programs; 33 34 #ifndef NDEBUG 35 Programs overdrawPrograms; 36 #endif 37 }; 38 39 } // namespace mbgl 40