blob: 7edcfd397e62096b7080637cdb4a7e03ef9c53cc (
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
|
#include <mbgl/test/stub_renderer_frontend.hpp>
#include <mbgl/map/view.hpp>
#include <mbgl/renderer/renderer.hpp>
namespace mbgl {
StubRendererFrontend::StubRendererFrontend(std::unique_ptr<Renderer> renderer_, InvalidateCallback invalidate)
: renderer(std::move(renderer_))
, asyncInvalidate([this, invalidate=std::move(invalidate)]() {
invalidate(*this);
}) {
}
StubRendererFrontend::StubRendererFrontend(std::unique_ptr<Renderer> renderer_, View& view)
: renderer(std::move(renderer_))
, asyncInvalidate([&]() {
this->render(view);
}) {
}
StubRendererFrontend::~StubRendererFrontend() {
reset();
}
void StubRendererFrontend::reset() {
if (renderer) {
renderer.reset();
}
}
void StubRendererFrontend::setObserver(RendererObserver& observer) {
if (!renderer) return;
renderer->setObserver(&observer);
}
void StubRendererFrontend::update(std::shared_ptr<UpdateParameters> params) {
updateParameters = std::move(params);
asyncInvalidate.send();
}
void StubRendererFrontend::render(View& view) {
if (!updateParameters || !renderer) return;
renderer->render(view, *updateParameters);
}
Renderer* StubRendererFrontend::getRenderer() {
return renderer.get();
}
} // namespace mbgl
|