Module: wine
Branch: master
Commit: 36dcb77f6ed6c204305bdee8dd7c0b6299cfc8e2
URL: http://source.winehq.org/git/wine.git/?a=commit;h=36dcb77f6ed6c204305bdee8d…
Author: Henri Verbeet <hverbeet(a)codeweavers.com>
Date: Tue Sep 3 09:47:21 2013 +0200
wined3d: Get rid of some leftover references to IWineD3D.
---
dlls/wined3d/surface.c | 10 +++++-----
dlls/wined3d/wined3d_private.h | 12 ++++--------
2 files changed, 9 insertions(+), 13 deletions(-)
diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
index 2bf5521..e36f61d 100644
--- a/dlls/wined3d/surface.c
+++ b/dlls/wined3d/surface.c
@@ -4163,7 +4163,7 @@ void d3dfmt_p8_init_palette(const struct wined3d_surface *surface, BYTE table[25
/* When index_in_alpha is set the palette index is stored in the
* alpha component. In case of a readback we can then read
- * GL_ALPHA. Color keying is handled in BltOverride using a
+ * GL_ALPHA. Color keying is handled in surface_blt_special() using a
* GL_ALPHA_TEST using GL_NOT_EQUAL. In case of index_in_alpha the
* color key itself is passed to glAlphaFunc in other cases the
* alpha component of pixels that should be masked away is set to 0. */
@@ -4916,7 +4916,7 @@ HRESULT surface_color_fill(struct wined3d_surface *s, const RECT *rect, const st
return blitter->color_fill(device, s, rect, color);
}
-static HRESULT IWineD3DSurfaceImpl_BltOverride(struct wined3d_surface *dst_surface, const RECT *dst_rect,
+static HRESULT surface_blt_special(struct wined3d_surface *dst_surface, const RECT *dst_rect,
struct wined3d_surface *src_surface, const RECT *src_rect, DWORD flags, const WINEDDBLTFX *DDBltFx,
enum wined3d_texture_filter_type filter)
{
@@ -6864,7 +6864,7 @@ fallback:
if ((dst_surface->resource.usage & WINED3DUSAGE_RENDERTARGET)
|| (src_surface && (src_surface->resource.usage & WINED3DUSAGE_RENDERTARGET)))
{
- if (SUCCEEDED(IWineD3DSurfaceImpl_BltOverride(dst_surface, &dst_rect,
+ if (SUCCEEDED(surface_blt_special(dst_surface, &dst_rect,
src_surface, &src_rect, flags, fx, filter)))
return WINED3D_OK;
}
@@ -6872,8 +6872,8 @@ fallback:
cpu:
/* For the rest call the X11 surface implementation. For render targets
- * this should be implemented OpenGL accelerated in BltOverride, other
- * blits are rather rare. */
+ * this should be implemented OpenGL accelerated in surface_blt_special(),
+ * other blits are rather rare. */
return surface_cpu_blt(dst_surface, &dst_rect, src_surface, &src_rect, flags, fx, filter);
}
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
index 688671d..1a341b7 100644
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -1836,12 +1836,10 @@ struct wined3d_state
DWORD render_states[WINEHIGHEST_RENDER_STATE + 1];
};
-/*****************************************************************************
- * IWineD3DDevice implementation structure
- */
#define WINED3D_UNMAPPED_STAGE ~0U
-/* Multithreaded flag. Removed from the public header to signal that IWineD3D::CreateDevice ignores it */
+/* Multithreaded flag. Removed from the public header to signal that
+ * wined3d_device_create() ignores it. */
#define WINED3DCREATE_MULTITHREADED 0x00000004
struct wined3d_device
@@ -2969,10 +2967,8 @@ DWORD wined3d_format_convert_from_float(const struct wined3d_surface *surface,
static inline BOOL use_vs(const struct wined3d_state *state)
{
- /* Check stateblock->vertexDecl to allow this to be used from
- * IWineD3DDeviceImpl_FindTexUnitMap(). This is safe because
- * stateblock->vertexShader implies a vertex declaration instead of ddraw
- * style strided data. */
+ /* Check state->vertex_declaration to allow this to be used before the
+ * stream info is validated, for example in device_update_tex_unit_map(). */
return state->vertex_shader && !state->vertex_declaration->position_transformed;
}
Module: wine
Branch: master
Commit: 675b052572ee195b784581bf8d7bb399b9081c59
URL: http://source.winehq.org/git/wine.git/?a=commit;h=675b052572ee195b784581bf8…
Author: Ken Thomases <ken(a)codeweavers.com>
Date: Mon Sep 2 22:49:05 2013 -0500
winemac: When ordering sibling child windows, don't remove and re-add ones already in the right order.
---
dlls/winemac.drv/cocoa_window.m | 16 ++++++++++++++--
1 files changed, 14 insertions(+), 2 deletions(-)
diff --git a/dlls/winemac.drv/cocoa_window.m b/dlls/winemac.drv/cocoa_window.m
index 7553cfc..2ad406f 100644
--- a/dlls/winemac.drv/cocoa_window.m
+++ b/dlls/winemac.drv/cocoa_window.m
@@ -875,7 +875,8 @@ static inline void fix_generic_modifiers_by_device(NSUInteger* modifiers)
{
NSMutableArray* windowNumbers;
NSNumber* childWindowNumber;
- NSUInteger otherIndex;
+ NSUInteger otherIndex, limit;
+ NSArray* origChildren;
NSMutableArray* children;
// Get the z-order from the window server and modify it to reflect the
@@ -888,7 +889,8 @@ static inline void fix_generic_modifiers_by_device(NSUInteger* modifiers)
// Get our child windows and sort them in the reverse of the desired
// z-order (back-to-front).
- children = [[[self childWindows] mutableCopy] autorelease];
+ origChildren = [self childWindows];
+ children = [[origChildren mutableCopy] autorelease];
[children sortWithOptions:NSSortStable
usingComparator:^NSComparisonResult(id obj1, id obj2){
NSNumber* window1Number = [NSNumber numberWithInteger:[obj1 windowNumber]];
@@ -912,6 +914,16 @@ static inline void fix_generic_modifiers_by_device(NSUInteger* modifiers)
return NSOrderedSame;
}];
+ // If the current and desired children arrays match up to a point, leave
+ // those matching children alone.
+ limit = MIN([origChildren count], [children count]);
+ for (otherIndex = 0; otherIndex < limit; otherIndex++)
+ {
+ if ([origChildren objectAtIndex:otherIndex] != [children objectAtIndex:otherIndex])
+ break;
+ }
+ [children removeObjectsInRange:NSMakeRange(0, otherIndex)];
+
// Remove all of the child windows and re-add them back-to-front so they
// are in the desired order.
for (other in children)