summaryrefslogtreecommitdiff
path: root/macosx/main.mm
diff options
context:
space:
mode:
Diffstat (limited to 'macosx/main.mm')
-rw-r--r--macosx/main.mm36
1 files changed, 24 insertions, 12 deletions
diff --git a/macosx/main.mm b/macosx/main.mm
index 3119d2b869..20b6cc174a 100644
--- a/macosx/main.mm
+++ b/macosx/main.mm
@@ -11,8 +11,10 @@ public:
tracking(false),
rotating(false),
last_click(-1),
- platform(new llmr::platform(this)),
- map(new llmr::map(platform)) {
+ map(new llmr::map()) {
+ }
+
+ void init() {
if (!glfwInit()) {
fprintf(stderr, "Failed to initialize glfw\n");
exit(1);
@@ -143,7 +145,6 @@ public:
~MapView() {
delete map;
- delete platform;
glfwTerminate();
}
@@ -158,19 +159,25 @@ public:
double last_click;
GLFWwindow *window;
- llmr::platform *platform;
llmr::map *map;
};
-void llmr::platform::restart() {
- ((MapView *)obj)->dirty = true;
+
+MapView *view;
+
+namespace llmr {
+namespace platform {
+
+void restart(void *) {
+ view->dirty = true;
}
-void llmr::platform::request(tile *tile) {
+void request(void *, tile *tile) {
fprintf(stderr, "request %d/%d/%d\n", tile->z, tile->x, tile->y);
fprintf(stderr, "requesting tile\n");
- NSString *urlTemplate = @"http://api.tiles.mapbox.com/v3/mapbox.mapbox-streets-v4/%d/%d/%d.vector.pbf";
+ // NSString *urlTemplate = @"http://api.tiles.mapbox.com/v3/mapbox.mapbox-streets-v4/%d/%d/%d.vector.pbf";
+ NSString *urlTemplate = @"http://localhost:3333/gl/tiles/%d-%d-%d.vector.pbf";
NSString *urlString = [NSString
stringWithFormat:urlTemplate,
tile->z,
@@ -192,20 +199,25 @@ void llmr::platform::request(tile *tile) {
tile->setData((uint8_t *)[data bytes], [data length]);
if (tile->parse()) {
dispatch_async(dispatch_get_main_queue(), ^ {
- ((MapView *)obj)->map->tileLoaded(tile);
+ view->map->tileLoaded(tile);
});
return;
}
}
dispatch_async(dispatch_get_main_queue(), ^ {
- ((MapView *)obj)->map->tileFailed(tile);
+ view->map->tileFailed(tile);
});
}];
}
+}
+}
int main() {
- MapView view;
- return view.run();
+ view = new MapView();
+ view->init();
+ int ret = view->run();
+ delete view;
+ return ret;
}