Fix point rendering
This commit is contained in:
parent
587d881a55
commit
2334f5a17e
2 changed files with 11 additions and 3 deletions
|
@ -144,7 +144,7 @@ public class OsmandRenderer {
|
|||
return shaders.get(resId);
|
||||
}
|
||||
|
||||
private void put(TIntObjectHashMap<TIntArrayList> map, int k, int v, int init){
|
||||
private void put(TIntObjectHashMap<TIntArrayList> map, int k, int v){
|
||||
if(!map.containsKey(k)){
|
||||
map.put(k, new TIntArrayList());
|
||||
}
|
||||
|
@ -334,7 +334,6 @@ public class OsmandRenderer {
|
|||
private TIntObjectHashMap<TIntArrayList> sortObjectsByProperOrder(RenderingContext rc, List<BinaryMapDataObject> objects,
|
||||
RenderingRuleSearchRequest render) {
|
||||
int sz = objects.size();
|
||||
int init = sz / 4;
|
||||
TIntObjectHashMap<TIntArrayList> orderMap = new TIntObjectHashMap<TIntArrayList>();
|
||||
if (render != null) {
|
||||
render.clearState();
|
||||
|
@ -361,7 +360,11 @@ public class OsmandRenderer {
|
|||
if (render.search(RenderingRulesStorage.ORDER_RULES)) {
|
||||
int objectType = render.getIntPropertyValue(render.ALL.R_OBJECT_TYPE);
|
||||
int order = render.getIntPropertyValue(render.ALL.R_ORDER);
|
||||
put(orderMap, (order << 2) | objectType, sh + j, init);
|
||||
put(orderMap, (order << 2) | objectType, sh + j);
|
||||
if(objectType == 3) {
|
||||
// add icon point all the time
|
||||
put(orderMap,(128 << 2)|1, sh + j);
|
||||
}
|
||||
if (render.isSpecified(render.ALL.R_SHADOW_LEVEL)) {
|
||||
rc.shadowLevelMin = Math.min(rc.shadowLevelMin, order);
|
||||
rc.shadowLevelMax = Math.max(rc.shadowLevelMax, order);
|
||||
|
|
|
@ -516,6 +516,11 @@ HMAP::hash_map<int, std::vector<int> > sortObjectsByProperOrder(std::vector <Map
|
|||
int objectType = req->getIntPropertyValue(req->props()->R_OBJECT_TYPE);
|
||||
int order = req->getIntPropertyValue(req->props()->R_ORDER);
|
||||
orderMap[(order << 2)|objectType].push_back(sh + j);
|
||||
// polygon
|
||||
if(objectType == 3) {
|
||||
// add icon point all the time
|
||||
orderMap[(128 << 2)|1].push_back(sh + j);
|
||||
}
|
||||
if (req->getIntPropertyValue(req->props()->R_SHADOW_LEVEL) > 0) {
|
||||
rc->shadowLevelMin = std::min(rc->shadowLevelMin, order);
|
||||
rc->shadowLevelMax = std::max(rc->shadowLevelMax, order);
|
||||
|
|
Loading…
Reference in a new issue