src/video/SDL_video.c
changeset 2901 133601e3b255
parent 2885 ca6499468250
child 2908 aa6ba38c1714
equal deleted inserted replaced
2900:3a9636c83849 2901:133601e3b255
  2068     }
  2068     }
  2069     *blendMode = renderer->blendMode;
  2069     *blendMode = renderer->blendMode;
  2070     return 0;
  2070     return 0;
  2071 }
  2071 }
  2072 
  2072 
  2073 
  2073 int
  2074 int
  2074 SDL_RenderPoint(int x, int y)
  2075 SDL_RenderFill(const SDL_Rect * rect)
       
  2076 {
  2075 {
  2077     SDL_Renderer *renderer;
  2076     SDL_Renderer *renderer;
  2078     SDL_Window *window;
  2077     SDL_Window *window;
  2079     SDL_Rect real_rect;
  2078     SDL_Rect real_rect;
  2080 
  2079 
  2084     }
  2083     }
  2085     renderer = SDL_CurrentDisplay.current_renderer;
  2084     renderer = SDL_CurrentDisplay.current_renderer;
  2086     if (!renderer) {
  2085     if (!renderer) {
  2087         return -1;
  2086         return -1;
  2088     }
  2087     }
  2089     if (!renderer->RenderFill) {
  2088     if (!renderer->RenderPoint) {
  2090         SDL_Unsupported();
  2089         SDL_Unsupported();
  2091         return -1;
  2090         return -1;
  2092     }
  2091     }
  2093     window = SDL_GetWindowFromID(renderer->window);
  2092     window = SDL_GetWindowFromID(renderer->window);
  2094     real_rect.x = 0;
  2093     if (x < 0 || y < 0 || x >= window->w || y >= window->h) {
  2095     real_rect.y = 0;
  2094         return 0;
  2096     real_rect.w = window->w;
  2095     }
  2097     real_rect.h = window->h;
  2096     return renderer->RenderPoint(renderer, x, y);
  2098     if (rect) {
       
  2099         if (!SDL_IntersectRect(rect, &real_rect, &real_rect)) {
       
  2100             return 0;
       
  2101         }
       
  2102     }
       
  2103     return renderer->RenderFill(renderer, &real_rect);
       
  2104 }
  2097 }
  2105 
  2098 
  2106 int
  2099 int
  2107 SDL_RenderLine(int x1, int y1, int x2, int y2)
  2100 SDL_RenderLine(int x1, int y1, int x2, int y2)
  2108 {
  2101 {
  2109     SDL_Renderer *renderer;
  2102     SDL_Renderer *renderer;
  2110     SDL_Window *window;
  2103     SDL_Window *window;
  2111     SDL_Rect real_rect;
  2104     SDL_Rect real_rect;
       
  2105 
       
  2106     if (x1 == x2 && y1 == y2) {
       
  2107         return SDL_RenderPoint(x1, y1);
       
  2108     }
  2112 
  2109 
  2113     if (!_this) {
  2110     if (!_this) {
  2114         SDL_UninitializedVideo();
  2111         SDL_UninitializedVideo();
  2115         return -1;
  2112         return -1;
  2116     }
  2113     }
  2134             return 0;
  2131             return 0;
  2135         }
  2132         }
  2136     }
  2133     }
  2137 #endif
  2134 #endif
  2138     return renderer->RenderLine(renderer, x1, y1, x2, y2);
  2135     return renderer->RenderLine(renderer, x1, y1, x2, y2);
       
  2136 }
       
  2137 
       
  2138 int
       
  2139 SDL_RenderFill(const SDL_Rect * rect)
       
  2140 {
       
  2141     SDL_Renderer *renderer;
       
  2142     SDL_Window *window;
       
  2143     SDL_Rect real_rect;
       
  2144 
       
  2145     if (!_this) {
       
  2146         SDL_UninitializedVideo();
       
  2147         return -1;
       
  2148     }
       
  2149     renderer = SDL_CurrentDisplay.current_renderer;
       
  2150     if (!renderer) {
       
  2151         return -1;
       
  2152     }
       
  2153     if (!renderer->RenderFill) {
       
  2154         SDL_Unsupported();
       
  2155         return -1;
       
  2156     }
       
  2157     window = SDL_GetWindowFromID(renderer->window);
       
  2158     real_rect.x = 0;
       
  2159     real_rect.y = 0;
       
  2160     real_rect.w = window->w;
       
  2161     real_rect.h = window->h;
       
  2162     if (rect) {
       
  2163         if (!SDL_IntersectRect(rect, &real_rect, &real_rect)) {
       
  2164             return 0;
       
  2165         }
       
  2166     }
       
  2167     return renderer->RenderFill(renderer, &real_rect);
  2139 }
  2168 }
  2140 
  2169 
  2141 int
  2170 int
  2142 SDL_RenderCopy(SDL_TextureID textureID, const SDL_Rect * srcrect,
  2171 SDL_RenderCopy(SDL_TextureID textureID, const SDL_Rect * srcrect,
  2143                const SDL_Rect * dstrect)
  2172                const SDL_Rect * dstrect)