- float x = fmodf(particle->x - scrollx, virtual_width);
- if(x < 0) x += virtual_width;
- float y = fmodf(particle->y - scrolly, virtual_height);
- if(y < 0) y += virtual_height;
- float xmax = fmodf(x + particle->texture->w, virtual_width);
- float ymax = fmodf(y + particle->texture->h, virtual_height);
-
- // particle on screen
- if(x >= screen->w && xmax >= screen->w)
- continue;
- if(y >= screen->h && ymax >= screen->h)
- continue;
-
- if(x > screen->w) x -= virtual_width;
- if(y > screen->h) y -= virtual_height;
- particle->texture->draw(x, y);
+ Vector pos;
+ pos.x = fmodf(particle->pos.x - scrollx, virtual_width);
+ if(pos.x < 0) pos.x += virtual_width;
+ pos.y = fmodf(particle->pos.y - scrolly, virtual_height);
+ if(pos.y < 0) pos.y += virtual_height;
+
+ if(pos.x > screen->w) pos.x -= virtual_width;
+ if(pos.y > screen->h) pos.y -= virtual_height;
+ context.draw_surface(particle->texture, pos, layer);