mirror of https://github.com/encounter/SDL.git
Fixed bug 2866 - testrelative.c: patch to make the orange box wrap around
Eric Wasylishen Here's a patch to make the 'testrelative' demo program more useful: it just makes the orange rectangle wrap around. Previously, the orange cursor would just disappear off screen if you move the mouse a lot in one direction, so it was hard to tell if relative mouse mode was still working.
This commit is contained in:
parent
60329e6a1e
commit
c17a5b1177
|
@ -49,12 +49,20 @@ loop(){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (i = 0; i < state->num_windows; ++i) {
|
for (i = 0; i < state->num_windows; ++i) {
|
||||||
|
SDL_Rect viewport;
|
||||||
SDL_Renderer *renderer = state->renderers[i];
|
SDL_Renderer *renderer = state->renderers[i];
|
||||||
if (state->windows[i] == NULL)
|
if (state->windows[i] == NULL)
|
||||||
continue;
|
continue;
|
||||||
SDL_SetRenderDrawColor(renderer, 0xA0, 0xA0, 0xA0, 0xFF);
|
SDL_SetRenderDrawColor(renderer, 0xA0, 0xA0, 0xA0, 0xFF);
|
||||||
SDL_RenderClear(renderer);
|
SDL_RenderClear(renderer);
|
||||||
|
|
||||||
|
/* Wrap the cursor rectangle at the screen edges to keep it visible */
|
||||||
|
SDL_RenderGetViewport(renderer, &viewport);
|
||||||
|
if (rect.x < viewport.x) rect.x += viewport.w;
|
||||||
|
if (rect.y < viewport.y) rect.y += viewport.h;
|
||||||
|
if (rect.x > viewport.x + viewport.w) rect.x -= viewport.w;
|
||||||
|
if (rect.y > viewport.y + viewport.h) rect.y -= viewport.h;
|
||||||
|
|
||||||
DrawRects(renderer, &rect);
|
DrawRects(renderer, &rect);
|
||||||
|
|
||||||
SDL_RenderPresent(renderer);
|
SDL_RenderPresent(renderer);
|
||||||
|
|
Loading…
Reference in New Issue