Просмотр исходного кода

gl_rasterizer_cache: Only dereference color_surface/depth_surface if valid.

bunnei 8 лет назад
Родитель
Сommit
c18425ef98
1 измененных файлов с 6 добавлено и 2 удалено
  1. 6 2
      src/video_core/renderer_opengl/gl_rasterizer_cache.cpp

+ 6 - 2
src/video_core/renderer_opengl/gl_rasterizer_cache.cpp

@@ -398,14 +398,18 @@ SurfaceSurfaceRect_Tuple RasterizerCacheOpenGL::GetFramebufferSurfaces(
     Surface color_surface;
     Surface color_surface;
     if (using_color_fb) {
     if (using_color_fb) {
         color_surface = GetSurface(color_params);
         color_surface = GetSurface(color_params);
-        color_rect = color_surface->GetSurfaceParams().GetRect();
+        if (color_surface) {
+            color_rect = color_surface->GetSurfaceParams().GetRect();
+        }
     }
     }
 
 
     MathUtil::Rectangle<u32> depth_rect{};
     MathUtil::Rectangle<u32> depth_rect{};
     Surface depth_surface;
     Surface depth_surface;
     if (using_depth_fb) {
     if (using_depth_fb) {
         depth_surface = GetSurface(depth_params);
         depth_surface = GetSurface(depth_params);
-        depth_rect = depth_surface->GetSurfaceParams().GetRect();
+        if (depth_surface) {
+            depth_rect = depth_surface->GetSurfaceParams().GetRect();
+        }
     }
     }
 
 
     MathUtil::Rectangle<u32> fb_rect{};
     MathUtil::Rectangle<u32> fb_rect{};