src/video/win32/SDL_gdirender.c
changeset 1924 69217fdd2c0a
parent 1920 8a162bfdc838
child 1965 a788656ca29a
equal deleted inserted replaced
1923:d4572b97b08f 1924:69217fdd2c0a
   247     texture->driverdata = data;
   247     texture->driverdata = data;
   248 
   248 
   249     if (SDL_ISPIXELFORMAT_FOURCC(texture->format)) {
   249     if (SDL_ISPIXELFORMAT_FOURCC(texture->format)) {
   250         data->yuv = SDL_SW_CreateYUVTexture(texture);
   250         data->yuv = SDL_SW_CreateYUVTexture(texture);
   251         if (!data->yuv) {
   251         if (!data->yuv) {
   252             GDI_DestroyTexture(renderer, texture);
       
   253             return -1;
   252             return -1;
   254         }
   253         }
   255         data->format = display->current_mode.format;
   254         data->format = display->current_mode.format;
   256     } else {
   255     } else {
   257         data->format = texture->format;
   256         data->format = texture->format;
   264         LPBITMAPINFO bmi;
   263         LPBITMAPINFO bmi;
   265 
   264 
   266         bmi_size = sizeof(BITMAPINFOHEADER) + 256 * sizeof(RGBQUAD);
   265         bmi_size = sizeof(BITMAPINFOHEADER) + 256 * sizeof(RGBQUAD);
   267         bmi = (LPBITMAPINFO) SDL_calloc(1, bmi_size);
   266         bmi = (LPBITMAPINFO) SDL_calloc(1, bmi_size);
   268         if (!bmi) {
   267         if (!bmi) {
   269             GDI_DestroyTexture(renderer, texture);
       
   270             SDL_OutOfMemory();
   268             SDL_OutOfMemory();
   271             return -1;
   269             return -1;
   272         }
   270         }
   273         bmi->bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
   271         bmi->bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
   274         bmi->bmiHeader.biWidth = texture->w;
   272         bmi->bmiHeader.biWidth = texture->w;
   289             palette =
   287             palette =
   290                 (LOGPALETTE *) SDL_malloc(sizeof(*palette) +
   288                 (LOGPALETTE *) SDL_malloc(sizeof(*palette) +
   291                                           ncolors * sizeof(PALETTEENTRY));
   289                                           ncolors * sizeof(PALETTEENTRY));
   292             if (!palette) {
   290             if (!palette) {
   293                 SDL_free(bmi);
   291                 SDL_free(bmi);
   294                 GDI_DestroyTexture(renderer, texture);
       
   295                 SDL_OutOfMemory();
   292                 SDL_OutOfMemory();
   296                 return -1;
   293                 return -1;
   297             }
   294             }
   298             palette->palVersion = 0x300;
   295             palette->palVersion = 0x300;
   299             palette->palNumEntries = ncolors;
   296             palette->palNumEntries = ncolors;
   325             CreateCompatibleBitmap(renderdata->window_hdc, texture->w,
   322             CreateCompatibleBitmap(renderdata->window_hdc, texture->w,
   326                                    texture->h);
   323                                    texture->h);
   327         data->pixels = NULL;
   324         data->pixels = NULL;
   328     }
   325     }
   329     if (!data->hbm) {
   326     if (!data->hbm) {
   330         GDI_DestroyTexture(renderer, texture);
       
   331         WIN_SetError("Couldn't create bitmap");
   327         WIN_SetError("Couldn't create bitmap");
   332         return -1;
   328         return -1;
   333     }
   329     }
   334     return 0;
   330     return 0;
   335 }
   331 }