예제 #1
0
        public UncachedTextIndicator(IConfig config, StyleProvider styleProvider)
        {
            // TODO add more configuration for text size, etc

            _labelText = string.Empty;
            Style      = styleProvider.GetStyle(config.GetString(CfgStyleName));

            var strCfgLayer = config.GetString(CfgLayer);

            if (Enum.TryParse(strCfgLayer, out DrawLayer layer))
            {
                Layer = layer;
            }
            else
            {
                throw new ArgumentException($"Could not parse {strCfgLayer} as DrawLayer");
            }

            var strCfgLod = config.GetString(CfgLevelOfDetail);

            if (Enum.TryParse(strCfgLod, out DrawLevelOfDetail lod))
            {
                LevelOfDetail = lod;
            }
            else
            {
                throw new ArgumentException($"Could not parse {strCfgLod} as DrawLevelOfDetail");
            }
        }
예제 #2
0
        /// <summary>
        /// Gets the pre-render for the given lod and layer, or null if no pre-render is
        /// available.
        /// </summary>
        public CanvasBitmap GetPrerender(DrawLevelOfDetail lod, DrawLayer layer)
        {
            if (lod != DrawLevelOfDetail.Low)
            {
                return(null);
            }

            return(_prerenders[layer].Render);
        }
예제 #3
0
        public IEnumerable <IIndicator> GetIndicators(DrawLevelOfDetail lod, DrawLayer layer)
        {
            switch (lod)
            {
            case DrawLevelOfDetail.Low:
                return(_lowLod[(int)layer]);

            case DrawLevelOfDetail.Normal:
                return(_normalLod[(int)layer]);

            case DrawLevelOfDetail.High:
                return(_highLod[(int)layer]);

            default:
                throw new ArgumentOutOfRangeException(nameof(lod), lod, null);
            }
        }
예제 #4
0
        public int GetVersion(DrawLevelOfDetail lod, DrawLayer layer)
        {
            switch (lod)
            {
            case DrawLevelOfDetail.Low:
                return(_lowLod[(int)layer].Version);

            case DrawLevelOfDetail.Normal:
                return(_normalLod[(int)layer].Version);

            case DrawLevelOfDetail.High:
                return(_highLod[(int)layer].Version);

            default:
                throw new ArgumentOutOfRangeException(nameof(lod), lod, null);
            }
        }
예제 #5
0
 public PrerenderedLayer(DrawLevelOfDetail levelOfDetail, DrawLayer layer)
 {
     LevelOfDetail = levelOfDetail;
     Layer         = layer;
     Offset        = Vector2.Zero;
 }