osgEarth的Rex引擎原理分析(十五)分頁瓦片載入器在更新遍歷時對請求處理過程
目標:(十四)中的34
osgEarthDrivers/engine_rex/Loader.cpp void PagerLoader::traverse(osg::NodeVisitor& nv) { for(count=0; count < _mergesPerFrame && !_mergeQueue.empty(); ++count) { Request* req = _mergeQueue.begin()->get(); if ( req && req->_lastTick >= _checkpoint ) { OE_START_TIMER(req_apply); req->apply( getFrameStamp() ); double s = OE_STOP_TIMER(req_apply); req->setState(Request::FINISHED); } _mergeQueue.erase( _mergeQueue.begin() ); } for(Requests::iterator i = _requests.begin(); i != _requests.end(); ) {} }
這裡的請求本質上是osgEarth::Drivers::RexTerrainEngine::LoadTileData
osgEarthDrivers/engine_rex/LoadTileData
namespace osgEarth { namespace Drivers { namespace RexTerrainEngine
{
class LoadTileData : public Loader::Request
{}
}
}}
具體處理過程:
1、從合併請求佇列中取出第一個請求,總共處理的請求數不超過設定的每幀最多處理的數目,對請求進行處理
2、處理所有已處理的請求佇列_requests中的請求
待繼續分析列表:
9、earth檔案中都有哪些options((九)中問題)
10、如何根據earth檔案options建立不同的地理資訊引擎節點((九)中問題)
11、rex地理資訊引擎的四樑八柱((九)中問題)
12、osgEarth::TerrainEngineNode中setMap方法作用((十二)中問題)
13、RexTerrainEngineNode中_mapFrame的作用((十二)中問題)
14、地形變形(Terrain morphing)((十二)中問題)
15、地球瓦片過期門限的含義((十二)中問題)
16、高解析度優先的含義((十二)中問題)
17、OSGEARTH_DEBUG_NORMALS環境變數的作用((十二)中問題)
18、活躍瓦片暫存器的作用((十二)中問題)
19、資源釋放器子節點的作用((十二)中問題)
20、共享幾何圖形池子節點的作用((十二)中問題)
21、分頁瓦片載入器子節點的作用((十二)中問題)
22、分頁瓦片解除安裝器子節點的作用((十二)中問題)
23、柵格化器子節點的作用((十二)中問題)
24、地形子節點的作用((十二)中問題)
25、繫結渲染器的作用((十二)中問題)
26、地圖回撥函式的作用((十二)中問題)
27、如何將地圖圖層新增到rex引擎中((十二)中問題)
28、選擇資訊的作用((十二)中問題)
29、瓦片包圍盒修改回撥函式的作用((十二)中問題)
30、重新整理rex引擎((十二)中問題)
31、重新整理邊界作用((十二)中問題)
32、osgEarth::Metrics類的意義((十四)中問題)
33、請求合併佇列_mergeQueue((十四)中問題)
34、分頁瓦片載入器在更新遍歷時對請求處理過程((十四)中問題)
35、分頁瓦片載入器在更新遍歷時對已處理請求裁剪過程((十四)中問題)
36、已處理的請求佇列_requests((十四)中問題)