surface crop_modification::operator()(const surface& src) const { SDL_Rect area = slice_; if(area.w == 0) { area.w = src->w; } if(area.h == 0) { area.h = src->h; } if(area.x < 0) { ERR_DP << "start X coordinate of CROP modification is negative - truncating to zero\n"; area.x = 0; } if(area.y < 0) { ERR_DP << "start Y coordinate of CROP modification is negative - truncating to zero\n"; area.y = 0; } /* * Unlike other image functions cut_surface does not convert the input * surface to a neutral surface, nor does it convert its return surface * to an optimised surface. * * Since it seems to work for most cases, rather change this caller instead * of the function signature. (The issue was discovered in bug #20876). */ return create_optimized_surface( cut_surface(make_neutral_surface(src), area)); }
surface crop_modification::operator()(const surface& src) const { SDL_Rect area = slice_; if(area.w == 0) { area.w = src->w; } if(area.h == 0) { area.h = src->h; } if(area.x < 0) { ERR_DP << "start X coordinate of SECTION modification is negative - truncating to zero\n"; area.x = 0; } if(area.y < 0) { ERR_DP << "start Y coordinate of SECTION modification is negative - truncating to zero\n"; area.y = 0; } return cut_surface(src, area); }