src/video/SDL_video.c
changeset 1924 69217fdd2c0a
parent 1923 d4572b97b08f
child 1926 307355678142
equal deleted inserted replaced
1923:d4572b97b08f 1924:69217fdd2c0a
   831     display->num_windows++;
   831     display->num_windows++;
   832 
   832 
   833     return window.id;
   833     return window.id;
   834 }
   834 }
   835 
   835 
       
   836 int
       
   837 SDL_RecreateWindow(SDL_Window * window)
       
   838 {
       
   839     if ((window->flags & SDL_WINDOW_OPENGL) && !_this->GL_CreateContext) {
       
   840         window->flags &= ~SDL_WINDOW_OPENGL;
       
   841         SDL_SetError("No OpenGL support in video driver");
       
   842         return -1;
       
   843     }
       
   844     if (_this->DestroyWindow) {
       
   845         _this->DestroyWindow(_this, window);
       
   846     }
       
   847     return _this->CreateWindow(_this, window);
       
   848 }
       
   849 
   836 SDL_Window *
   850 SDL_Window *
   837 SDL_GetWindowFromID(SDL_WindowID windowID)
   851 SDL_GetWindowFromID(SDL_WindowID windowID)
   838 {
   852 {
   839     int i, j;
   853     int i, j;
   840 
   854 
  1257                 _this->DestroyWindow(_this, window);
  1271                 _this->DestroyWindow(_this, window);
  1258             }
  1272             }
  1259             if (window->title) {
  1273             if (window->title) {
  1260                 SDL_free(window->title);
  1274                 SDL_free(window->title);
  1261             }
  1275             }
       
  1276             SDL_free(window);
  1262             if (j != display->num_windows - 1) {
  1277             if (j != display->num_windows - 1) {
  1263                 SDL_memcpy(&display->windows[i],
  1278                 SDL_memcpy(&display->windows[i],
  1264                            &display->windows[i + 1],
  1279                            &display->windows[i + 1],
  1265                            (display->num_windows - i - 1) * sizeof(*window));
  1280                            (display->num_windows - i - 1) * sizeof(*window));
  1266             }
  1281             }
  1419     texture->w = w;
  1434     texture->w = w;
  1420     texture->h = h;
  1435     texture->h = h;
  1421     texture->renderer = renderer;
  1436     texture->renderer = renderer;
  1422 
  1437 
  1423     if (renderer->CreateTexture(renderer, texture) < 0) {
  1438     if (renderer->CreateTexture(renderer, texture) < 0) {
       
  1439         if (renderer->DestroyTexture) {
       
  1440             renderer->DestroyTexture(renderer, texture);
       
  1441         }
  1424         SDL_free(texture);
  1442         SDL_free(texture);
  1425         return 0;
  1443         return 0;
  1426     }
  1444     }
  1427 
  1445 
  1428     hash = (texture->id % SDL_arraysize(SDL_CurrentDisplay.textures));
  1446     hash = (texture->id % SDL_arraysize(SDL_CurrentDisplay.textures));