internal override SymbolStyle buildSymbol <T1>(SymbolStyle.SymbolBuilder <T1> b, string src, Bitmap bitmap) { // we need to hash with the width/height included as the same symbol could be required // in a different size and must be cached with a size-specific hash string absoluteName = CanvasAdapter.getAbsoluteFile(mTheme.RelativePathPrefix, src).AbsolutePath; int hash = (new StringBuilder()).Append(absoluteName).Append(b.symbolWidth).Append(b.symbolHeight).Append(b.symbolPercent).ToString().GetHashCode(); bitmapMap[hash] = bitmap; return(b.hash(hash).build()); }
private static IRenderTheme replaceThemeSymbols(RenderTheme renderTheme, IDictionary <object, TextureRegion> regionMap) { //JAVA TO C# CONVERTER WARNING: Java wildcard generics have no direct equivalent in .NET: //ORIGINAL LINE: org.oscim.theme.styles.SymbolStyle.SymbolBuilder<?> symbolBuilder = org.oscim.theme.styles.SymbolStyle.builder(); SymbolStyle.SymbolBuilder <object> symbolBuilder = SymbolStyle.builder(); foreach (Rule rule in renderTheme.Rules) { replaceRuleSymbols(rule, regionMap, symbolBuilder); } return(renderTheme); }
private static void replaceRuleSymbols <T1>(Rule rule, IDictionary <object, TextureRegion> regionMap, SymbolStyle.SymbolBuilder <T1> b) { for (int i = 0, n = rule.styles.length; i < n; i++) { RenderStyle style = rule.styles[i]; if (style is SymbolStyle) { SymbolStyle symbol = (SymbolStyle)style; TextureRegion region = regionMap[symbol.hash]; if (region != null) { rule.styles[i] = b.set(symbol).bitmap(null).texture(region).build(); } } } foreach (Rule subRule in rule.subRules) { replaceRuleSymbols(subRule, regionMap, b); } }