[android] #5610 - Initial Runtime Style Bindings
[android] #5610 - Adjusted public api after discussion [android] #5610 - added jni binding for NativeMapView#getLayer [android] #5610 - Added initial test Activity [android] #5610 - Started on NativePeer implementation for Layer [android] #5610 - replaced low-level jni code with high-level for native getLayer [android] 5610 - completed basic layer peer class - constructible from java and c++ [android] #5610 - removed reference that was redundant and causing the finalizer exception [android] #5610 - Added a property peer [android] #5610 - added value type to do type conversions - wip [android] #5610 - simplified property conversion approach - wrapped value with jenv [android] #5610 - added some more value conversions [android] #5610 - Finished conversion for basic types [android] #5610 - allow color's to be set as either an android color int or a String to support all formats in the spec [android] #5610 - encode color ints as rgba to retain alpha channel [android] #5610 - recalculate classes after paint property [android] #5610 - more examples [android] #5610 - fixed the example [android] #5610 - cleaned up example code before continueing [android] #5610 - added layout property example [android] #5610 - set visibility on layer [android] #5610 - added removeLayer and example [android] #5610 - added more type conversions [android] #5610 - Started on peer classes for layer implementations - WIP [android] #5610 - First complete layer subclass peer implementation [android] #5610 - added a little bit of structure before adding the other layer types [android] #5610 - generate the c++ headers from the style spec [android] #5610 - make sure the visibility is set as a string [android] #5610 - Generate c++ layer peer class implementations from the style spec [android] #5610 - generate java layer peer classes [android] #5610 - cleanup comments [android] #5610 - register all c++ peer classes with jni [android] #5610 - addLayer [android] #5610 - comment out broken case [android] #5610 - Sources api - very much WIP [android] 5610 - GeoJson source implementation and geojson conversion [android] #5610 - cleanup add source/layer example a bit [android] #5610 - initial filter api [android] #5610 - Added filter api on the relevant Layer classes [android] #5610 - raster layer is not filterable [android] #5610 - actually make it compile [android] #5610 - completed filter implementation [android] #5610 - Vector and Raster Source + examples [android] #5610 - removed superfluous interface, moved filters to the correct package [android] #5610 - fixed comments [android] #5610 - moved tests to the right package [android] #5610 - hide difference between paint and layout properties in public api, make more performant set method for proeprties [android] #5610 - fix rebase issue
This commit is contained in:
60
platform/android/src/style/layers/layers.cpp
Normal file
60
platform/android/src/style/layers/layers.cpp
Normal file
@@ -0,0 +1,60 @@
|
||||
#include "layers.hpp"
|
||||
|
||||
#include <mbgl/style/layers/background_layer.hpp>
|
||||
#include <mbgl/style/layers/circle_layer.hpp>
|
||||
#include <mbgl/style/layers/fill_layer.hpp>
|
||||
#include <mbgl/style/layers/line_layer.hpp>
|
||||
#include <mbgl/style/layers/raster_layer.hpp>
|
||||
#include <mbgl/style/layers/symbol_layer.hpp>
|
||||
|
||||
#include "background_layer.hpp"
|
||||
#include "circle_layer.hpp"
|
||||
#include "fill_layer.hpp"
|
||||
#include "line_layer.hpp"
|
||||
#include "raster_layer.hpp"
|
||||
#include "symbol_layer.hpp"
|
||||
|
||||
namespace mbgl {
|
||||
namespace android {
|
||||
|
||||
Layer* initializeLayerPeer(mbgl::Map& map, mbgl::style::Layer& coreLayer) {
|
||||
Layer* layer;
|
||||
if (coreLayer.is<mbgl::style::BackgroundLayer>()) {
|
||||
layer = new BackgroundLayer(map, *coreLayer.as<mbgl::style::BackgroundLayer>());
|
||||
} else if (coreLayer.is<mbgl::style::CircleLayer>()) {
|
||||
layer = new CircleLayer(map, *coreLayer.as<mbgl::style::CircleLayer>());
|
||||
} else if (coreLayer.is<mbgl::style::FillLayer>()) {
|
||||
layer = new FillLayer(map, *coreLayer.as<mbgl::style::FillLayer>());
|
||||
} else if (coreLayer.is<mbgl::style::LineLayer>()) {
|
||||
layer = new LineLayer(map, *coreLayer.as<mbgl::style::LineLayer>());
|
||||
} else if (coreLayer.is<mbgl::style::RasterLayer>()) {
|
||||
layer = new RasterLayer(map, *coreLayer.as<mbgl::style::RasterLayer>());
|
||||
} else if (coreLayer.is<mbgl::style::SymbolLayer>()) {
|
||||
layer = new SymbolLayer(map, *coreLayer.as<mbgl::style::SymbolLayer>());
|
||||
} else {
|
||||
throw new std::runtime_error("Layer type not implemented");
|
||||
}
|
||||
|
||||
return layer;
|
||||
}
|
||||
|
||||
jni::jobject* createJavaLayerPeer(jni::JNIEnv& env, mbgl::Map& map, mbgl::style::Layer& coreLayer) {
|
||||
std::unique_ptr<Layer> peerLayer = std::unique_ptr<Layer>(initializeLayerPeer(map, coreLayer));
|
||||
jni::jobject* result = peerLayer->createJavaPeer(env);
|
||||
peerLayer.release();
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
void registerNativeLayers(jni::JNIEnv& env) {
|
||||
Layer::registerNative(env);
|
||||
BackgroundLayer::registerNative(env);
|
||||
CircleLayer::registerNative(env);
|
||||
FillLayer::registerNative(env);
|
||||
LineLayer::registerNative(env);
|
||||
RasterLayer::registerNative(env);
|
||||
SymbolLayer::registerNative(env);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user