LayerDrawable* TerrainRenderData::addLayerDrawable(const Layer* layer) { LayerDrawable* drawable = new LayerDrawable(); drawable->_drawOrder = _layerList.size(); _layerList.push_back(drawable); drawable->_drawState = _drawState.get(); if (layer) { _layerMap[layer->getUID()] = drawable; drawable->_layer = layer; drawable->_visibleLayer = dynamic_cast<const VisibleLayer*>(layer); drawable->_imageLayer = dynamic_cast<const ImageLayer*>(layer); drawable->setStateSet(layer->getStateSet()); drawable->_renderType = layer->getRenderType(); } else { _layerMap[-1] = drawable; } return drawable; }
LayerDrawable* TerrainRenderData::addLayerDrawable(const Layer* layer) { UID uid = layer ? layer->getUID() : -1; LayerDrawable* ld = new LayerDrawable(); _layerList.push_back(ld); _layerMap[uid] = ld; ld->_layer = layer; ld->_imageLayer = dynamic_cast<const ImageLayer*>(layer); ld->_order = _layerList.size() - 1; ld->_drawState = _drawState.get(); if (layer) { ld->setStateSet(layer->getStateSet()); ld->_renderType = layer->getRenderType(); } return ld; }