Returns a set of available GDAL drivers.
8895 GDALDriverH *drv = NULL;
8901 assert(drv_count != NULL);
8904 count = GDALGetDriverCount();
8907 rterror(
"rt_raster_gdal_drivers: Could not allocate memory for gdaldriver structure");
8911 for (i = 0, j = 0; i <
count; i++) {
8912 drv = GDALGetDriver(i);
8914 #ifdef GDAL_DCAP_RASTER
8917 state = GDALGetMetadataItem(drv, GDAL_DCAP_RASTER, NULL);
8918 if (state == NULL || !EQUAL(state,
"YES"))
8924 state = GDALGetMetadataItem(drv, GDAL_DCAP_CREATECOPY, NULL);
8925 if (state == NULL)
continue;
8928 state = GDALGetMetadataItem(drv, GDAL_DCAP_VIRTUALIO, NULL);
8929 if (state == NULL)
continue;
8936 txt = GDALGetDriverShortName(drv);
8937 txt_len = strlen(txt);
8940 RASTER_DEBUGF(3,
"rt_raster_gdal_driver: driver %s (%d) supports CreateCopy() and VirtualIO()", txt, i);
8943 txt_len = (txt_len + 1) *
sizeof(
char);
8945 memcpy(rtn[j].short_name, txt, txt_len);
8948 txt = GDALGetDriverLongName(drv);
8949 txt_len = strlen(txt);
8951 txt_len = (txt_len + 1) *
sizeof(
char);
8953 memcpy(rtn[j].long_name, txt, txt_len);
8956 txt = GDALGetDriverCreationOptionList(drv);
8957 txt_len = strlen(txt);
8959 txt_len = (txt_len + 1) *
sizeof(
char);
8961 memcpy(rtn[j].create_options, txt, txt_len);
int rt_util_gdal_register_all(int force_register_all)
struct rt_gdaldriver_t * rt_gdaldriver
#define RASTER_DEBUGF(level, msg,...)
void * rtalloc(size_t size)
Raster core memory management functions.
void rterror(const char *fmt,...)
Raster core error and info handlers.
void * rtrealloc(void *mem, size_t size)