Marco Hugentobler-4 wrote > I don't know if AGG would be faster than the Qt raster paint engine and > how much. It would be very interesting to have the comparison AGG <-> Qt > raster engine (and maybe libcairo as well). > > With AGG / cairo, the approach would be to create a new Qt paint engine > based on these libs (rather than changing the code in qgis core to be Qt > free). If someone knows of an AGG paint engine implementation or likes > to create one, that would be very interesting.
There is point of view (which I consider to be right) that implementation of traditional painting engine (like one in Qt, Cairo, GDI+) with one large Painter class on the top of AGG is totally inefficient because of the template architecture of this library. Maybe much more efficient approach will be implementation of light weighted wrapper of AGG, which will look like a system of classes for optimized rendering of spatial data. However the absolute majority of cases when you need really fast spatial data rendering is when you need to display set of large vector layers like rivers, lakes, elevation contours, coastline and so on. Such kind of features in cartography are expected to be displayed on the map by identical graphics symbols (lines of the same width and color, polygons withe same outline and the same fill color and so on). In such situation the most efficient approach is to minimize the number of calls of rasterisation algorithm (rasterize all identical graphics symbols at a time). This definitely can be easily implemented with the help of AGG. And what about Qt? I can mistake but it seems to me that such classes as QPainter are often hardcoded things (Cairo's painter class is hardcoded). So does Qt painting engine have enough potential for optimized usage to be used for efficient spatial data rendering? However in my opinion (but I may mistake) rendering of spatial data is not the main issue in the terms of QGIS performance problem. It seems that main problem lies in usage of GDAL/OGR, which tendency to support great number of vector and raster data formats may have negative influence on its performance. Of course, it's possible to give users opportunity to switch to another memory usage model (store all data in memory), furthermore as I know QGIS Engine already has implementation of such technique for vector data (QgsMemoryProvider). That will lead to significant improvement of performance, but in my opinion to make QGIS be competitive with proprietary GIS systems, fast spatial data rendering system with efficient memory usage should be implemented. So, are there any ideas about implementation of own QGIS spatial data formats, or other possible ways to speed up process of reading data from files? I apologize in advance for my posts, because they may sound like criticism of QGIS. Indeed I haven't used QGIS much. I work in commercial company, which is planning to build its own GIS system only for internal work. The key problem is that this system must be able to work fast with really large raster and vector files. My boss doesn't want the system to be created from scratch, he wants me to use some open source GIS platform. That's why I am very interested in the real temps of QGIS Engine development, who and how many developers really work on these problems? I also have investigated situation around more fast gvSIG, but it is Java-based and unlike QGIS seems not to have API for development of standalone GIS applications. Also I would not pay attention for QGIS performance problems if I hadn't keep in mind an example of one university experimental GIS development project. It resulted in the development by one person of simple GIS application with own vector data format and AGG based rendering, without some complex systems of data caching or tricky techniques of reading data from files, without thread support, built with old Borland С++ compiler. Some time ago I tested it and was really surprised to find that it worked a bit slower the multithreaded gvSIG and much faster then QGIS. I apologize for my post again, I have no aim to criticize QGIS. I believe it to have great potential in improving of performance. I am only trying to investigate the real situation. Are there real detailed plans for improvement of QGIS Engine? And what are the real opportunities of QGIS community to implement these plans in program codes? Tim and Marco, thank you for your replies. Regards, Oleg -- View this message in context: http://osgeo-org.1560.n6.nabble.com/QGIS-Engine-development-tp5017647p5017931.html Sent from the Quantum GIS - Developer mailing list archive at Nabble.com. _______________________________________________ Qgis-developer mailing list [email protected] http://lists.osgeo.org/mailman/listinfo/qgis-developer
