Module: wine
Branch: master
Commit: aec86b4ef92c8d0b2b19364dafb8236e19df6f6c
URL: http://source.winehq.org/git/wine.git/?a=commit;h=aec86b4ef92c8d0b2b19364da…
Author: Stefan Dösinger <stefan(a)codeweavers.com>
Date: Tue Oct 9 14:53:58 2007 +0200
wined3d: Silently ignore setting the 0 texture on gdi surfaces.
---
dlls/wined3d/surface_gdi.c | 11 ++++++++++-
1 files changed, 10 insertions(+), 1 deletions(-)
diff --git a/dlls/wined3d/surface_gdi.c b/dlls/wined3d/surface_gdi.c
index 33dfb10..c198dbb 100644
--- a/dlls/wined3d/surface_gdi.c
+++ b/dlls/wined3d/surface_gdi.c
@@ -710,7 +710,16 @@ IWineGDISurfaceImpl_PrivateSetup(IWineD3DSurface *iface)
void WINAPI IWineGDISurfaceImpl_SetGlTextureDesc(IWineD3DSurface *iface, UINT textureName, int target) {
IWineD3DSurfaceImpl *This = (IWineD3DSurfaceImpl *)iface;
- FIXME("(%p) : Should not be called on a GDI surface. textureName %u, target %i\n", This, textureName, target);
+
+ /* Ignore 0 textureName and target. D3D textures can be created with gdi surfaces as plain
+ * containers, but they're useless until the app creates a d3d device from a d3d point of
+ * view, it's not an implementation limitation. This avoids false warnings when the texture
+ * is destroyed and sets the description back to 0/0
+ */
+ if(textureName != 0 || target != 0) {
+ FIXME("(%p) : Should not be called on a GDI surface. textureName %u, target %i\n", This, textureName, target);
+ DebugBreak();
+ }
}
void WINAPI IWineGDISurfaceImpl_GetGlDesc(IWineD3DSurface *iface, glDescriptor **glDescription) {
Module: wine
Branch: master
Commit: c5055fb3eb59b951898d7408fae0d9461313e397
URL: http://source.winehq.org/git/wine.git/?a=commit;h=c5055fb3eb59b951898d7408f…
Author: Stefan Dösinger <stefan(a)codeweavers.com>
Date: Tue Oct 9 14:42:06 2007 +0200
ddraw: Cope with Init3D failures.
---
dlls/ddraw/ddraw.c | 29 ++++++++++++++++++++++++-----
dlls/ddraw/ddraw_private.h | 1 +
dlls/ddraw/surface.c | 2 +-
3 files changed, 26 insertions(+), 6 deletions(-)
diff --git a/dlls/ddraw/ddraw.c b/dlls/ddraw/ddraw.c
index 7c6bf5f..508832b 100644
--- a/dlls/ddraw/ddraw.c
+++ b/dlls/ddraw/ddraw.c
@@ -2519,10 +2519,6 @@ IDirectDrawImpl_CreateSurface(IDirectDraw7 *iface,
return hr;
}
- /* Addref the ddraw interface to keep an reference for each surface */
- IDirectDraw7_AddRef(iface);
- object->ifaceToRelease = (IUnknown *) iface;
-
/* If the implementation is OpenGL and there's no d3ddevice, attach a d3ddevice
* But attach the d3ddevice only if the currently created surface was
* a primary surface (2D app in 3D mode) or a 3DDEVICE surface (3D app)
@@ -2555,10 +2551,32 @@ IDirectDrawImpl_CreateSurface(IDirectDraw7 *iface,
hr = IDirectDrawImpl_AttachD3DDevice(This, target);
if(hr != D3D_OK)
{
+ IDirectDrawSurfaceImpl *release_surf;
ERR("IDirectDrawImpl_AttachD3DDevice failed, hr = %x\n", hr);
+ *Surf = NULL;
+
+ /* The before created surface structures are in an incomplete state here.
+ * WineD3D holds the reference on the IParents, and it released them on the failure
+ * already. So the regular release method implementation would fail on the attempt
+ * to destroy either the IParents or the swapchain. So free the surface here.
+ * The surface structure here is a list, not a tree, because onscreen targets
+ * cannot be cube textures
+ */
+ while(object)
+ {
+ release_surf = object;
+ object = object->complex_array[0];
+ IDirectDrawSurfaceImpl_Destroy(release_surf);
+ }
+ LeaveCriticalSection(&ddraw_cs);
+ return hr;
}
}
+ /* Addref the ddraw interface to keep an reference for each surface */
+ IDirectDraw7_AddRef(iface);
+ object->ifaceToRelease = (IUnknown *) iface;
+
/* Create a WineD3DTexture if a texture was requested */
if(desc2.ddsCaps.dwCaps & DDSCAPS_TEXTURE)
{
@@ -3077,7 +3095,8 @@ IDirectDrawImpl_AttachD3DDevice(IDirectDrawImpl *This,
D3D7CB_CreateAdditionalSwapChain);
if(FAILED(hr))
{
- This->wineD3DDevice = NULL;
+ This->d3d_target = NULL;
+ This->d3d_initialized = FALSE;
return hr;
}
diff --git a/dlls/ddraw/ddraw_private.h b/dlls/ddraw/ddraw_private.h
index 2f35643..9b78edf 100644
--- a/dlls/ddraw/ddraw_private.h
+++ b/dlls/ddraw/ddraw_private.h
@@ -273,6 +273,7 @@ const IDirect3DTexture2Vtbl IDirect3DTexture2_Vtbl;
const IDirect3DTextureVtbl IDirect3DTexture1_Vtbl;
HRESULT WINAPI IDirectDrawSurfaceImpl_AddAttachedSurface(IDirectDrawSurfaceImpl *This, IDirectDrawSurfaceImpl *Surf);
+void IDirectDrawSurfaceImpl_Destroy(IDirectDrawSurfaceImpl *This);
/* Get the number of bytes per pixel for a given surface */
#define PFGET_BPP(pf) (pf.dwFlags&DDPF_PALETTEINDEXED8?1:((pf.dwRGBBitCount+7)/8))
diff --git a/dlls/ddraw/surface.c b/dlls/ddraw/surface.c
index a5a0b21..646ea1a 100644
--- a/dlls/ddraw/surface.c
+++ b/dlls/ddraw/surface.c
@@ -178,7 +178,7 @@ IDirectDrawSurfaceImpl_AddRef(IDirectDrawSurface7 *iface)
* This: Surface to free
*
*****************************************************************************/
-static void IDirectDrawSurfaceImpl_Destroy(IDirectDrawSurfaceImpl *This)
+void IDirectDrawSurfaceImpl_Destroy(IDirectDrawSurfaceImpl *This)
{
TRACE("(%p)\n", This);
Module: wine
Branch: master
Commit: 4bf62af099fdacf831bf590542e44c1eb614d968
URL: http://source.winehq.org/git/wine.git/?a=commit;h=4bf62af099fdacf831bf59054…
Author: Hwang YunSong(황윤성) <hys545(a)dreamwiz.com>
Date: Mon Oct 8 08:39:42 2007 +0900
wineboot: New Korean resource.
---
programs/wineboot/wineboot.rc | 1 +
programs/wineboot/wineboot_Ko.rc | 37 +++++++++++++++++++++++++++++++++++++
2 files changed, 38 insertions(+), 0 deletions(-)
diff --git a/programs/wineboot/wineboot.rc b/programs/wineboot/wineboot.rc
index 4607e01..0e699c1 100644
--- a/programs/wineboot/wineboot.rc
+++ b/programs/wineboot/wineboot.rc
@@ -28,3 +28,4 @@
#include "resource.h"
#include "wineboot_En.rc"
+#include "wineboot_Ko.rc"
diff --git a/programs/wineboot/wineboot_Ko.rc b/programs/wineboot/wineboot_Ko.rc
new file mode 100644
index 0000000..869a6af
--- /dev/null
+++ b/programs/wineboot/wineboot_Ko.rc
@@ -0,0 +1,37 @@
+/*
+ * WineBoot Korean resources
+ *
+ * Copyright (C) 2007 Robert Shearman for CodeWeavers
+ * Copyright (C) 2007 YunSong Hwang(hys545(a)dreamwiz.com, Ȳ����)
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ *
+ */
+
+LANGUAGE LANG_KOREAN, SUBLANG_NEUTRAL
+
+
+IDD_ENDTASK DIALOG DISCARDABLE 0, 0, 186, 71
+STYLE DS_MODALFRAME | DS_NOIDLEMSG | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "���α� �����"
+FONT 8, "MS Shell Dlg"
+BEGIN
+ DEFPUSHBUTTON "����� ������",IDOK,51,49,71,15
+ PUSHBUTTON "���",IDCANCEL,129,49,50,15
+ LTEXT " �� ���μ����� �α� ������ ���Ḧ �õ�������, �� ���α��� �ƹ��� ������ �����ϴ�.",
+ IDC_STATIC,7,7,172,19
+ LTEXT "���� ����� �� ���μ����� �����ٸ� ���� ���� ���� ��� ������ �Ҿ���� ���Դϴ�.",
+ IDC_STATIC,7,28,172,15
+END