Skip to content

Commit

Permalink
Got a simplified c++ stripped down version to compile.
Browse files Browse the repository at this point in the history
  • Loading branch information
gdey committed Sep 27, 2018
1 parent e34730e commit c98c7ac
Show file tree
Hide file tree
Showing 3 changed files with 118 additions and 0 deletions.
47 changes: 47 additions & 0 deletions mbgl/c/bin/render_stripped.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
#include <mbgl/map/map.hpp>
#include <mbgl/util/image.hpp>
#include <mbgl/util/run_loop.hpp>
#include <mbgl/util/default_styles.hpp>

#include <mbgl/gl/headless_frontend.hpp>
#include <mbgl/util/default_thread_pool.hpp>
#include <mbgl/storage/default_file_source.hpp>
#include <mbgl/style/style.hpp>


#include <cstdlib>
#include <iostream>
#include <fstream>

int main(int argc __attribute__((unused)), char *argv[] __attribute__((unused)) ) {
const std::string output = "out.png";
const std::string cache_file = "cache.sqlite";
const std::string asset_root = ".";

using namespace mbgl;

util::RunLoop loop;

DefaultFileSource fileSource(cache_file, asset_root);
ThreadPool threadPool(4);
HeadlessFrontend frontend({ 512, 512 }, 1, fileSource, threadPool);
Map map(frontend, MapObserver::nullObserver(), frontend.getSize(), 1, fileSource, threadPool, MapMode::Static);


map.getStyle().loadURL("file://style.json");
map.setLatLngZoom({ 0, 0 }, 0);
map.setBearing(0);
map.setPitch(0);


try {
std::ofstream out(output, std::ios::binary);
out << encodePNG(frontend.render(map));
out.close();
} catch(std::exception& e) {
std::cout << "Error: " << e.what() << std::endl;
exit(1);
}

return 0;
}
1 change: 1 addition & 0 deletions mbgl/c/bin/style.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"version":8,"name":"osm","center":[-76.275329586789,39.153492567373],"zoom":8,"sources":{"osm":{"type":"vector","url":"https://osm.tegola.io/capabilities/osm.json"}},"layers":[{"id":"populated_places","source":"osm","source-layer":"populated_places","type":"circle","layout":{"visibility":"visible"},"paint":{"circle-radius":3,"circle-color":"#71ab62"}},{"id":"country_lines","source":"osm","source-layer":"country_lines","type":"line","layout":{"visibility":"visible"},"paint":{"line-color":"#168120"}},{"id":"country_lines_disputed","source":"osm","source-layer":"country_lines_disputed","type":"line","layout":{"visibility":"visible"},"paint":{"line-color":"#29e597"}},{"id":"country_label_points","source":"osm","source-layer":"country_label_points","type":"circle","layout":{"visibility":"visible"},"paint":{"circle-radius":3,"circle-color":"#9776f3"}},{"id":"country_polygons","source":"osm","source-layer":"country_polygons","type":"fill","layout":{"visibility":"visible"},"paint":{"fill-color":"rgba(2,85,36,0.1)","fill-outline-color":"#025524"}},{"id":"state_lines","source":"osm","source-layer":"state_lines","type":"line","layout":{"visibility":"visible"},"paint":{"line-color":"#d1050f"}},{"id":"land","source":"osm","source-layer":"land","type":"fill","layout":{"visibility":"visible"},"paint":{"fill-color":"rgba(235,145,50,0.1)","fill-outline-color":"#eb9132"}},{"id":"admin_lines","source":"osm","source-layer":"admin_lines","type":"fill","layout":{"visibility":"visible"},"paint":{"fill-color":"rgba(15,190,3,0.1)","fill-outline-color":"#0fbe03"}},{"id":"state_label_points","source":"osm","source-layer":"state_label_points","type":"circle","layout":{"visibility":"visible"},"paint":{"circle-radius":3,"circle-color":"#7c39e4"}},{"id":"landuse_areas","source":"osm","source-layer":"landuse_areas","type":"fill","layout":{"visibility":"visible"},"paint":{"fill-color":"rgba(67,79,119,0.1)","fill-outline-color":"#434f77"}},{"id":"water_areas","source":"osm","source-layer":"water_areas","type":"fill","layout":{"visibility":"visible"},"paint":{"fill-color":"rgba(94,252,42,0.1)","fill-outline-color":"#5efc2a"}},{"id":"water_lines","source":"osm","source-layer":"water_lines","type":"line","layout":{"visibility":"visible"},"paint":{"line-color":"#d709c2"}},{"id":"transport_lines","source":"osm","source-layer":"transport_lines","type":"line","layout":{"visibility":"visible"},"paint":{"line-color":"#69e68c"}},{"id":"transport_areas","source":"osm","source-layer":"transport_areas","type":"fill","layout":{"visibility":"visible"},"paint":{"fill-color":"rgba(240,216,245,0.1)","fill-outline-color":"#f0d8f5"}},{"id":"transport_points","source":"osm","source-layer":"transport_points","type":"circle","layout":{"visibility":"visible"},"paint":{"circle-radius":3,"circle-color":"#b9b235"}},{"id":"amenity_areas","source":"osm","source-layer":"amenity_areas","type":"fill","layout":{"visibility":"visible"},"paint":{"fill-color":"rgba(128,132,166,0.1)","fill-outline-color":"#8084a6"}},{"id":"amenity_points","source":"osm","source-layer":"amenity_points","type":"circle","layout":{"visibility":"visible"},"paint":{"circle-radius":3,"circle-color":"#29799a"}},{"id":"other_points","source":"osm","source-layer":"other_points","type":"circle","layout":{"visibility":"visible"},"paint":{"circle-radius":3,"circle-color":"#f2c89f"}},{"id":"other_lines","source":"osm","source-layer":"other_lines","type":"line","layout":{"visibility":"visible"},"paint":{"line-color":"#10a5da"}},{"id":"other_areas","source":"osm","source-layer":"other_areas","type":"fill","layout":{"visibility":"visible"},"paint":{"fill-color":"rgba(151,151,67,0.1)","fill-outline-color":"#979743"}},{"id":"buildings","source":"osm","source-layer":"buildings","type":"fill","layout":{"visibility":"visible"},"paint":{"fill-color":"rgba(63,68,136,0.1)","fill-outline-color":"#3f4488"}}]}
70 changes: 70 additions & 0 deletions mbgl/c/build_render.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
#!/bin/bash -e

echo "Building the object file."

g++ \
-DRAPIDJSON_HAS_STDSTRING=1 \
-D_GLIBCXX_USE_CXX11_ABI=1 \
-Imapbox-gl-native/include \
-Imapbox-gl-native/platform/default \
-Imapbox-gl-native/mason_packages/headers/boost/1.65.1/include \
-Imapbox-gl-native/mason_packages/headers/geometry/0.9.3/include \
-Imapbox-gl-native/mason_packages/headers/variant/1.1.4/include \
-Imapbox-gl-native/mason_packages/linux-x86_64/libuv/1.9.1/include \
-Imapbox-gl-native/mason_packages/linux-x86_64/libpng/1.6.25/include/libpng16 \
-Imapbox-gl-native/mason_packages/linux-x86_64/libjpeg-turbo/1.5.0/include \
-Imapbox-gl-native/vendor/expected/include \
-Imapbox-gl-native/vendor/sqlite/include \
-ftemplate-depth=1024 \
-Wall \
-Wextra \
-Wshadow \
-Wnon-virtual-dtor \
-Wno-variadic-macros \
-Wno-unknown-pragmas \
-Werror \
-fext-numeric-literals \
-g \
-fPIE \
-fvisibility=hidden \
-fvisibility-inlines-hidden \
-std=c++14 \
-o bin/render_stripped.cpp.o \
-c bin/render_stripped.cpp


echo "Building executable."

# libmbgl-core.a libmbgl-filesource.a libmbgl-loop-uv.a libsqlite.a -Wl,--no-as-needed -lcurl -Wl,--as-needed libmbgl-core.a -lOSMesa ../../../mason_packages/linux-x86_64/libpng/1.6.25/lib/libpng.a -lz -lm ../../../mason_packages/linux-x86_64/libjpeg-turbo/1.5.0/lib/libjpeg.a libnunicode.a libicu.a -lz -static-libstdc++ -Wl,-Bsymbolic-functions ../../../mason_packages/linux-x86_64/libuv/1.9.1/lib/libuv.a -lrt -lpthread -lnsl -ldl

g++ \
-ftemplate-depth=1024 \
-Wall \
-Wextra \
-Wshadow \
-Wnon-virtual-dtor \
-Wno-variadic-macros \
-Wno-unknown-pragmas \
-Werror -fext-numeric-literals \
-static-libstdc++ \
-g bin/render_stripped.cpp.o \
mapbox-gl-native/build/linux-x86_64/Debug/libmbgl-core.a \
mapbox-gl-native/build/linux-x86_64/Debug/libmbgl-filesource.a \
mapbox-gl-native/build/linux-x86_64/Debug/libmbgl-loop-uv.a \
mapbox-gl-native/build/linux-x86_64/Debug/libsqlite.a \
-Wl,--no-as-needed -lcurl \
-Wl,--as-needed mapbox-gl-native/build/linux-x86_64/Debug/libmbgl-core.a \
-lOSMesa \
mapbox-gl-native/mason_packages/linux-x86_64/libpng/1.6.25/lib/libpng.a \
-lz \
-lm \
mapbox-gl-native/mason_packages/linux-x86_64/libjpeg-turbo/1.5.0/lib/libjpeg.a \
mapbox-gl-native/build/linux-x86_64/Debug/libnunicode.a \
mapbox-gl-native/build/linux-x86_64/Debug/libicu.a \
-Wl,-Bsymbolic-functions mapbox-gl-native/mason_packages/linux-x86_64/libuv/1.9.1/lib/libuv.a \
-lrt \
-lpthread \
-lnsl \
-ldl \
-o bin/mbgl-render-stripped \

0 comments on commit c98c7ac

Please sign in to comment.