Returns a set of available GDAL drivers.
1718 assert(drv_count != NULL);
1719 uint32_t output_driver = 0;
1721 uint32_t
count = (uint32_t)GDALGetDriverCount();
1726 rterror(
"rt_raster_gdal_drivers: Could not allocate memory for gdaldriver structure");
1727 *drv_count = output_driver;
1731 for (uint32_t i = 0; i <
count; i++)
1733 GDALDriverH *drv = GDALGetDriver(i);
1735 #ifdef GDAL_DCAP_RASTER
1738 const char *is_raster;
1739 is_raster = GDALGetMetadataItem(drv, GDAL_DCAP_RASTER, NULL);
1740 if (!is_raster || !EQUAL(is_raster,
"YES"))
1745 const char *cc = GDALGetMetadataItem(drv, GDAL_DCAP_CREATECOPY, NULL);
1746 if (can_write && !cc)
1750 const char *vio = GDALGetMetadataItem(drv, GDAL_DCAP_VIRTUALIO, NULL);
1751 if (can_write && !vio)
1757 rtn[output_driver].
can_write = (cc != NULL && vio != NULL);
1760 rtn[output_driver].
idx = i;
1763 const char *txt = GDALGetDriverShortName(drv);
1764 size_t txt_len = strlen(txt);
1765 txt_len = (txt_len + 1) *
sizeof(
char);
1767 memcpy(rtn[output_driver].short_name, txt, txt_len);
1770 txt = GDALGetDriverLongName(drv);
1771 txt_len = strlen(txt);
1772 txt_len = (txt_len + 1) *
sizeof(
char);
1774 memcpy(rtn[output_driver].long_name, txt, txt_len);
1777 txt = GDALGetDriverCreationOptionList(drv);
1778 txt_len = strlen(txt);
1779 txt_len = (txt_len + 1) *
sizeof(
char);
1781 memcpy(rtn[output_driver].create_options, txt, txt_len);
1788 *drv_count = output_driver;
void rterror(const char *fmt,...) __attribute__((format(printf
Wrappers used for reporting errors and info.
void * rtalloc(size_t size)
Wrappers used for managing memory.
int rt_util_gdal_register_all(int force_register_all)
void * rtrealloc(void *mem, size_t size)
struct rt_gdaldriver_t * rt_gdaldriver