Welcome to mirror list, hosted at ThFree Co, Russian Federation.

testing_engine.hpp « drape_head - github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: fb8c175dce0148aeec37caecae1ca9240f9883e2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#pragma once

#include "drape/pointers.hpp"
#include "drape/oglcontextfactory.hpp"
#include "drape/batcher.hpp"
#include "drape/gpu_program_manager.hpp"
#include "drape/uniform_values_storage.hpp"
#include "drape/texture_manager.hpp"

#include "drape_frontend/viewport.hpp"
#include "drape_frontend/map_data_provider.hpp"

#include "std/map.hpp"

namespace df
{

class TestingEngine
{
public:
  TestingEngine(Viewport const & viewport, double vs);
  ~TestingEngine();

  void Draw();
  void Resize(int w, int h);

private:
  void DrawImpl();
  void DrawRects();
  void ModelViewInit();
  void ProjectionInit();
  void OnFlushData(dp::GLState const & state, drape_ptr<dp::RenderBucket> && vao);
  void ClearScene();

private:
  drape_ptr<dp::Batcher> m_batcher;
  drape_ptr<dp::GpuProgramManager> m_programManager;
  drape_ptr<dp::TextureManager> m_textures;
  df::Viewport m_viewport;

  typedef map<dp::GLState, vector<drape_ptr<dp::RenderBucket> > > TScene;
  TScene m_scene;
  ScreenBase m_modelView;
  float m_angle = 0.0;

  dp::UniformValuesStorage m_generalUniforms;

  vector<m2::RectD> m_boundRects;
  vector<dp::OverlayHandle::Rects> m_rects;
};

} // namespace df