wined3d: Remove surface->dirtyRect.
This commit is contained in:
parent
047ce3af6e
commit
0ff0a6e9bc
|
@ -850,22 +850,7 @@ static void surface_map(struct wined3d_surface *surface, const RECT *rect, DWORD
|
|||
}
|
||||
|
||||
if (!(flags & (WINED3D_MAP_NO_DIRTY_UPDATE | WINED3D_MAP_READONLY)))
|
||||
{
|
||||
if (!rect)
|
||||
surface_add_dirty_rect(surface, NULL);
|
||||
else
|
||||
{
|
||||
struct wined3d_box b;
|
||||
|
||||
b.left = rect->left;
|
||||
b.top = rect->top;
|
||||
b.right = rect->right;
|
||||
b.bottom = rect->bottom;
|
||||
b.front = 0;
|
||||
b.back = 1;
|
||||
surface_add_dirty_rect(surface, &b);
|
||||
}
|
||||
}
|
||||
surface_set_dirty(surface);
|
||||
}
|
||||
|
||||
static void surface_unmap(struct wined3d_surface *surface)
|
||||
|
@ -904,18 +889,9 @@ static void surface_unmap(struct wined3d_surface *surface)
|
|||
}
|
||||
|
||||
if (surface->swapchain && surface->swapchain->front_buffer == surface)
|
||||
{
|
||||
surface_load_location(surface, surface->draw_binding);
|
||||
|
||||
surface->dirtyRect.left = surface->resource.width;
|
||||
surface->dirtyRect.top = surface->resource.height;
|
||||
surface->dirtyRect.right = 0;
|
||||
surface->dirtyRect.bottom = 0;
|
||||
}
|
||||
else if (surface->resource.format->flags & (WINED3DFMT_FLAG_DEPTH | WINED3DFMT_FLAG_STENCIL))
|
||||
{
|
||||
FIXME("Depth / stencil buffer locking is not implemented.\n");
|
||||
}
|
||||
}
|
||||
|
||||
static BOOL surface_is_full_rect(const struct wined3d_surface *surface, const RECT *r)
|
||||
|
@ -2314,9 +2290,9 @@ GLenum surface_get_gl_buffer(const struct wined3d_surface *surface)
|
|||
}
|
||||
|
||||
/* Slightly inefficient way to handle multiple dirty rects but it works :) */
|
||||
void surface_add_dirty_rect(struct wined3d_surface *surface, const struct wined3d_box *dirty_rect)
|
||||
void surface_set_dirty(struct wined3d_surface *surface)
|
||||
{
|
||||
TRACE("surface %p, dirty_rect %p.\n", surface, dirty_rect);
|
||||
TRACE("surface %p.\n", surface);
|
||||
|
||||
if (!(surface->flags & SFLAG_INSYSMEM) && (surface->flags & SFLAG_INTEXTURE))
|
||||
surface_load_location(surface, SFLAG_INSYSMEM);
|
||||
|
@ -2324,21 +2300,6 @@ void surface_add_dirty_rect(struct wined3d_surface *surface, const struct wined3
|
|||
surface_validate_location(surface, SFLAG_INSYSMEM);
|
||||
surface_invalidate_location(surface, ~SFLAG_INSYSMEM);
|
||||
|
||||
if (dirty_rect)
|
||||
{
|
||||
surface->dirtyRect.left = min(surface->dirtyRect.left, dirty_rect->left);
|
||||
surface->dirtyRect.top = min(surface->dirtyRect.top, dirty_rect->top);
|
||||
surface->dirtyRect.right = max(surface->dirtyRect.right, dirty_rect->right);
|
||||
surface->dirtyRect.bottom = max(surface->dirtyRect.bottom, dirty_rect->bottom);
|
||||
}
|
||||
else
|
||||
{
|
||||
surface->dirtyRect.left = 0;
|
||||
surface->dirtyRect.top = 0;
|
||||
surface->dirtyRect.right = surface->resource.width;
|
||||
surface->dirtyRect.bottom = surface->resource.height;
|
||||
}
|
||||
|
||||
wined3d_texture_set_dirty(surface->container);
|
||||
}
|
||||
|
||||
|
@ -6635,7 +6596,7 @@ static HRESULT surface_init(struct wined3d_surface *surface, struct wined3d_text
|
|||
surface->flags |= SFLAG_DYNLOCK;
|
||||
|
||||
/* Mark the texture as dirty so that it gets loaded first time around. */
|
||||
surface_add_dirty_rect(surface, NULL);
|
||||
surface_set_dirty(surface);
|
||||
list_init(&surface->renderbuffers);
|
||||
|
||||
TRACE("surface %p, memory %p, size %u\n",
|
||||
|
|
|
@ -689,7 +689,7 @@ static void texture2d_preload(struct wined3d_texture *texture,
|
|||
static void texture2d_sub_resource_add_dirty_region(struct wined3d_resource *sub_resource,
|
||||
const struct wined3d_box *dirty_region)
|
||||
{
|
||||
surface_add_dirty_rect(surface_from_resource(sub_resource), dirty_region);
|
||||
surface_set_dirty(surface_from_resource(sub_resource));
|
||||
}
|
||||
|
||||
static void texture2d_sub_resource_cleanup(struct wined3d_resource *sub_resource)
|
||||
|
|
|
@ -2202,7 +2202,6 @@ struct wined3d_surface
|
|||
GLenum texture_target;
|
||||
|
||||
RECT lockedRect;
|
||||
RECT dirtyRect;
|
||||
int lockCount;
|
||||
|
||||
/* For GetDC */
|
||||
|
@ -2242,7 +2241,7 @@ static inline GLuint surface_get_texture_name(const struct wined3d_surface *surf
|
|||
? surface->container->texture_srgb.name : surface->container->texture_rgb.name;
|
||||
}
|
||||
|
||||
void surface_add_dirty_rect(struct wined3d_surface *surface, const struct wined3d_box *dirty_rect) DECLSPEC_HIDDEN;
|
||||
void surface_set_dirty(struct wined3d_surface *surface) DECLSPEC_HIDDEN;
|
||||
HRESULT surface_color_fill(struct wined3d_surface *s,
|
||||
const RECT *rect, const struct wined3d_color *color) DECLSPEC_HIDDEN;
|
||||
GLenum surface_get_gl_buffer(const struct wined3d_surface *surface) DECLSPEC_HIDDEN;
|
||||
|
|
Loading…
Reference in New Issue