1 #pragma once
2 
3 #include <mbgl/map/mode.hpp>
4 #include <mbgl/util/chrono.hpp>
5 #include <mbgl/util/geometry.hpp>
6 #include <mbgl/util/optional.hpp>
7 #include <mbgl/util/noncopyable.hpp>
8 #include <mbgl/gl/vertex_buffer.hpp>
9 #include <mbgl/gl/index_buffer.hpp>
10 #include <mbgl/programs/debug_program.hpp>
11 
12 namespace mbgl {
13 
14 class OverscaledTileID;
15 
16 namespace gl {
17 class Context;
18 } // namespace gl
19 
20 class DebugBucket : private util::noncopyable {
21 public:
22     DebugBucket(const OverscaledTileID& id,
23                 bool renderable,
24                 bool complete,
25                 optional<Timestamp> modified,
26                 optional<Timestamp> expires,
27                 MapDebugOptions,
28                 gl::Context&);
29 
30     const bool renderable;
31     const bool complete;
32     const optional<Timestamp> modified;
33     const optional<Timestamp> expires;
34     const MapDebugOptions debugMode;
35 
36     SegmentVector<DebugAttributes> segments;
37     optional<gl::VertexBuffer<DebugLayoutVertex>> vertexBuffer;
38     optional<gl::IndexBuffer<gl::Lines>> indexBuffer;
39 };
40 
41 } // namespace mbgl
42