int setRasterLayerFilters(Layer* pLayer, uint32_t count, const char** pFilters) { RasterLayer* pRaster = dynamic_cast<RasterLayer*>(pLayer); if (pRaster == NULL || (count > 0 && pFilters == NULL)) { setLastError(SIMPLE_BAD_PARAMS); return 1; } std::vector<std::string> filters; filters.reserve(count); for (size_t idx = 0; idx < count; ++idx) { if (pFilters[idx] == NULL) { setLastError(SIMPLE_BAD_PARAMS); return 1; } filters.push_back(std::string(pFilters[idx])); } pRaster->enableFilters(filters); pRaster->getView()->refresh(); setLastError(SIMPLE_NO_ERROR); return 0; }