winemac: Handle dummy_surface in get_mac_surface.

Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Ken Thomases <ken@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Piotr Caban 2020-03-11 14:45:54 -05:00 committed by Alexandre Julliard
parent c6b501acdc
commit da1e666f57
1 changed files with 9 additions and 5 deletions

View File

@ -70,10 +70,7 @@ struct macdrv_window_surface
BITMAPINFO info; /* variable size, must be last */ BITMAPINFO info; /* variable size, must be last */
}; };
static struct macdrv_window_surface *get_mac_surface(struct window_surface *surface) static struct macdrv_window_surface *get_mac_surface(struct window_surface *surface);
{
return (struct macdrv_window_surface *)surface;
}
/*********************************************************************** /***********************************************************************
* update_blit_data * update_blit_data
@ -227,6 +224,12 @@ static const struct window_surface_funcs macdrv_surface_funcs =
macdrv_surface_destroy, macdrv_surface_destroy,
}; };
static struct macdrv_window_surface *get_mac_surface(struct window_surface *surface)
{
if (!surface || surface->funcs != &macdrv_surface_funcs) return NULL;
return (struct macdrv_window_surface *)surface;
}
/*********************************************************************** /***********************************************************************
* create_surface * create_surface
*/ */
@ -311,7 +314,7 @@ failed:
void set_surface_use_alpha(struct window_surface *window_surface, BOOL use_alpha) void set_surface_use_alpha(struct window_surface *window_surface, BOOL use_alpha)
{ {
struct macdrv_window_surface *surface = get_mac_surface(window_surface); struct macdrv_window_surface *surface = get_mac_surface(window_surface);
surface->use_alpha = use_alpha; if (surface) surface->use_alpha = use_alpha;
} }
/*********************************************************************** /***********************************************************************
@ -424,6 +427,7 @@ void surface_clip_to_visible_rect(struct window_surface *window_surface, const R
{ {
struct macdrv_window_surface *surface = get_mac_surface(window_surface); struct macdrv_window_surface *surface = get_mac_surface(window_surface);
if (!surface) return;
window_surface->funcs->lock(window_surface); window_surface->funcs->lock(window_surface);
if (surface->drawn) if (surface->drawn)