extern "C" JNIEXPORT jint JNICALL Java_net_osmand_plus_render_NativeOsmandLibrary_searchNativeObjectsForRendering(JNIEnv* ienv, jobject obj, jint sleft, jint sright, jint stop, jint sbottom, jint zoom, jobject renderingRuleSearchRequest, bool skipDuplicates, jobject objInterrupted, jstring msgNothingFound) { RenderingRuleSearchRequest* req = initSearchRequest(ienv, renderingRuleSearchRequest); jclass clObjInterrupted = ienv->GetObjectClass(objInterrupted); jfieldID interruptedField = getFid(ienv, clObjInterrupted, "interrupted", "Z"); ienv->DeleteLocalRef(clObjInterrupted); SearchQuery q(sleft, sright, stop, sbottom, req, objInterrupted, interruptedField, ienv); q.zoom = zoom; SearchResult* res = searchObjectsForRendering(&q, req, skipDuplicates, getString(ienv, msgNothingFound)); delete req; return (jint) res; }
void loadJniCommon() { jclass_RenderingContext = findClass("net/osmand/plus/render/OsmandRenderer$RenderingContext"); jfield_RenderingContext_interrupted = getFid(jclass_RenderingContext, "interrupted", "Z"); jfield_RenderingContext_leftX = getFid( jclass_RenderingContext, "leftX", "F" ); jfield_RenderingContext_topY = getFid( jclass_RenderingContext, "topY", "F" ); jfield_RenderingContext_width = getFid( jclass_RenderingContext, "width", "I" ); jfield_RenderingContext_height = getFid( jclass_RenderingContext, "height", "I" ); jfield_RenderingContext_zoom = getFid( jclass_RenderingContext, "zoom", "I" ); jfield_RenderingContext_rotate = getFid( jclass_RenderingContext, "rotate", "F" ); jfield_RenderingContext_tileDivisor = getFid( jclass_RenderingContext, "tileDivisor", "F" ); jfield_RenderingContext_pointCount = getFid( jclass_RenderingContext, "pointCount", "I" ); jfield_RenderingContext_pointInsideCount = getFid( jclass_RenderingContext, "pointInsideCount", "I" ); jfield_RenderingContext_visible = getFid( jclass_RenderingContext, "visible", "I" ); jfield_RenderingContext_allObjects = getFid( jclass_RenderingContext, "allObjects", "I" ); jfield_RenderingContext_cosRotateTileSize = getFid( jclass_RenderingContext, "cosRotateTileSize", "F" ); jfield_RenderingContext_sinRotateTileSize = getFid( jclass_RenderingContext, "sinRotateTileSize", "F" ); jfield_RenderingContext_density = getFid( jclass_RenderingContext, "density", "F" ); jfield_RenderingContext_highResMode = getFid( jclass_RenderingContext, "highResMode", "Z" ); jfield_RenderingContext_mapTextSize = getFid( jclass_RenderingContext, "mapTextSize", "F" ); jfield_RenderingContext_shadowRenderingMode = getFid( jclass_RenderingContext, "shadowRenderingMode", "I" ); jfield_RenderingContext_shadowLevelMin = getFid( jclass_RenderingContext, "shadowLevelMin", "I" ); jfield_RenderingContext_shadowLevelMax = getFid( jclass_RenderingContext, "shadowLevelMax", "I" ); jfield_RenderingContext_ctx = getFid( jclass_RenderingContext, "ctx", "Landroid/content/Context;" ); jfield_RenderingContext_textRenderingTime = getFid( jclass_RenderingContext, "textRenderingTime", "I" ); jfield_RenderingContext_lastRenderedKey = getFid( jclass_RenderingContext, "lastRenderedKey", "I" ); jclass_RenderingIcons = findClass("net/osmand/plus/render/RenderingIcons"); jmethod_RenderingIcons_getIconRawData = getGlobalJniEnv()->GetStaticMethodID(jclass_RenderingIcons, "getIconRawData", "(Landroid/content/Context;Ljava/lang/String;)[B"); }