diff --git a/source/core/rendering/surface.cpp b/source/core/rendering/surface.cpp index e215a07..d6f38d0 100644 --- a/source/core/rendering/surface.cpp +++ b/source/core/rendering/surface.cpp @@ -286,16 +286,12 @@ void Surface::render(int x, int y, SDL_FRect* src_rect, SDL_FlipMode flip) { // float w = (src_rect != nullptr) ? src_rect->w : surface_data_->width; float h = (src_rect != nullptr) ? src_rect->h : surface_data_->height; - // Limitar la región para evitar accesos fuera de rango en origen + // Limitar la región para evitar accesos fuera de rango (origen y destino) w = std::min(w, surface_data_->width - sx); h = std::min(h, surface_data_->height - sy); w = std::min(w, surface_data_dest->width - x); h = std::min(h, surface_data_dest->height - y); - // Limitar la región para evitar accesos fuera de rango en destino - w = std::min(w, surface_data_dest->width - x); - h = std::min(h, surface_data_dest->height - y); - // Renderiza píxel por píxel aplicando el flip si es necesario const Uint8* src_ptr = surface_data_->data.get(); Uint8* dst_ptr = surface_data_dest->data.get();