float end_x = std::min(start_x + screen->w, float(width * 32));
float end_y = std::min(start_y + screen->h, float(height * 32));
start_x -= int(start_x) % 32;
float end_x = std::min(start_x + screen->w, float(width * 32));
float end_y = std::min(start_y + screen->h, float(height * 32));
start_x -= int(start_x) % 32;