mirror of
https://github.com/libsdl-org/SDL.git
synced 2025-05-23 13:09:11 +00:00
render: Fixed a FIXME for SDL_SetRenderViewport with a negative size.
This commit is contained in:
parent
54459def69
commit
7a6a0becb8
2 changed files with 11 additions and 1 deletions
|
@ -1400,12 +1400,20 @@ extern SDL_DECLSPEC bool SDLCALL SDL_ConvertEventToRenderCoordinates(SDL_Rendere
|
||||||
/**
|
/**
|
||||||
* Set the drawing area for rendering on the current target.
|
* Set the drawing area for rendering on the current target.
|
||||||
*
|
*
|
||||||
|
* Drawing will clip to this area (separately from any clipping done with
|
||||||
|
* SDL_SetRenderClipRect), and the top left of the area will become
|
||||||
|
* coordinate (0, 0) for future drawing commands.
|
||||||
|
*
|
||||||
|
* The area's width and height must be >= 0.
|
||||||
|
*
|
||||||
* \param renderer the rendering context.
|
* \param renderer the rendering context.
|
||||||
* \param rect the SDL_Rect structure representing the drawing area, or NULL
|
* \param rect the SDL_Rect structure representing the drawing area, or NULL
|
||||||
* to set the viewport to the entire target.
|
* to set the viewport to the entire target.
|
||||||
* \returns true on success or false on failure; call SDL_GetError() for more
|
* \returns true on success or false on failure; call SDL_GetError() for more
|
||||||
* information.
|
* information.
|
||||||
*
|
*
|
||||||
|
* \threadsafety You may only call this function from the main thread.
|
||||||
|
*
|
||||||
* \since This function is available since SDL 3.0.0.
|
* \since This function is available since SDL 3.0.0.
|
||||||
*
|
*
|
||||||
* \sa SDL_GetRenderViewport
|
* \sa SDL_GetRenderViewport
|
||||||
|
|
|
@ -2932,7 +2932,9 @@ bool SDL_SetRenderViewport(SDL_Renderer *renderer, const SDL_Rect *rect)
|
||||||
CHECK_RENDERER_MAGIC(renderer, false);
|
CHECK_RENDERER_MAGIC(renderer, false);
|
||||||
|
|
||||||
if (rect) {
|
if (rect) {
|
||||||
// !!! FIXME: fail if rect->w or rect->h are negative (we use this to mean "the whole viewport").
|
if ((rect->w < 0) || (rect->h < 0)) {
|
||||||
|
return SDL_SetError("rect has a negative size");
|
||||||
|
}
|
||||||
SDL_copyp(&renderer->view->viewport, rect);
|
SDL_copyp(&renderer->view->viewport, rect);
|
||||||
} else {
|
} else {
|
||||||
renderer->view->viewport.x = 0;
|
renderer->view->viewport.x = 0;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue