Re: mshtml: Removed tests failing on IE7.

2010-11-18 Thread Marvin
Hi,

While running your changed tests on Windows, I think I found new failures.
Being a bot and all I'm not very good at pattern recognition, so I might be
wrong, but could you please double-check?
Full results can be found at
http://testbot.winehq.org/JobDetails.pl?Key=7145

Your paranoid android.


=== W98SE (32 bit) ===
No test summary line found

=== W2KPROSP4 (32 bit) ===
No test summary line found

=== WXPPROSP3 (32 bit) ===
No test summary line found

=== W2K3R2SESP2 (32 bit) ===
No test summary line found

=== WVISTAADM (32 bit) ===
No test summary line found

=== W2K8SE (32 bit) ===
No test summary line found

=== W7PRO (32 bit) ===
No test summary line found

=== W7PROX64 (32 bit) ===
No test summary line found

=== W7PROX64 (64 bit) ===
No test summary line found




RFC: flipping more than one backbuffer on swapchain

2010-11-18 Thread Pavel Procházka
I had patched IWineGDISwapChainImpl_Present, which can now fully support 
looping behavior on swapchain for more than one backbuffer. Patch 2/3 allows 
more backbuffers creation for GDI surfaces, and last patch is test to ddraw.
  From 6dc3ea954a4241147ba8060d1a3272c3c762c013 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Pavel=20Proch=C3=A1zka?= pavelvonlost...@seznam.cz
Date: Thu, 18 Nov 2010 10:45:57 +0100
Subject: [RFC:][1/3] wined3d: Implement flipping with more than one backbuffer for gdi surfaces.

---
 dlls/wined3d/swapchain_gdi.c |   66 ++
 1 files changed, 41 insertions(+), 25 deletions(-)

diff --git a/dlls/wined3d/swapchain_gdi.c b/dlls/wined3d/swapchain_gdi.c
index 8920cae..cfc75c4 100644
--- a/dlls/wined3d/swapchain_gdi.c
+++ b/dlls/wined3d/swapchain_gdi.c
@@ -174,7 +174,9 @@ static HRESULT WINAPI IWineGDISwapChainImpl_SetDestWindowOverride(IWineD3DSwapCh
 
 static HRESULT WINAPI IWineGDISwapChainImpl_Present(IWineD3DSwapChain *iface, CONST RECT *pSourceRect, CONST RECT *pDestRect, HWND hDestWindowOverride, CONST RGNDATA *pDirtyRegion, DWORD dwFlags) {
 IWineD3DSwapChainImpl *This = (IWineD3DSwapChainImpl *) iface;
-IWineD3DSurfaceImpl *front, *back;
+IWineD3DSurfaceImpl *front,*hlp1,*hlp2;
+IWineD3DSurfaceImpl back;
+UINT i;
 
 if (!This-back_buffers)
 {
@@ -182,50 +184,64 @@ static HRESULT WINAPI IWineGDISwapChainImpl_Present(IWineD3DSwapChain *iface, CO
 return WINED3DERR_INVALIDCALL;
 }
 front = This-front_buffer;
-back = This-back_buffers[0];
+back  = *((IWineD3DSurfaceImpl *)This-back_buffers[0]);
+
+/* Presentation algorithm:
+  ^^^
+  | |   |
+|front_buffer| |back_buffer0|back_buffer1|back_buffer2||back_bufferN|
+^ v
+||
+^   ^
+||
+
+*/
+
+for(i=0;iThis-presentParms.BackBufferCount-1;i++)
+{
+hlp1 = (IWineD3DSurfaceImpl *)This-back_buffers[i];
+hlp2 = (IWineD3DSurfaceImpl *)This-back_buffers[i+1];
+hlp1-hDC = hlp2-hDC;
+hlp1-dib.DIBsection = hlp2-dib.DIBsection;
+hlp1-dib.bitmap_data = hlp2-dib.bitmap_data;
+hlp1-resource.allocatedMemory = hlp2-resource.allocatedMemory;
+hlp1-dib.client_memory = hlp2-dib.client_memory;
+}
+
+/* move data from front buffer to end of back_buffers array */
+hlp1 = (IWineD3DSurfaceImpl *)This-back_buffers[i];
+hlp1-hDC = front-hDC;
+hlp1-dib.DIBsection = front-dib.DIBsection;
+hlp1-dib.bitmap_data = front-dib.bitmap_data;
+hlp1-resource.allocatedMemory = front-resource.allocatedMemory;
+hlp1-dib.client_memory = front-dib.client_memory;
 
 /* Flip the DC */
 {
-HDC tmp;
-tmp = front-hDC;
-front-hDC = back-hDC;
-back-hDC = tmp;
+front-hDC = back.hDC;
 }
 
 /* Flip the DIBsection */
 {
-HBITMAP tmp;
-tmp = front-dib.DIBsection;
-front-dib.DIBsection = back-dib.DIBsection;
-back-dib.DIBsection = tmp;
+front-dib.DIBsection = back.dib.DIBsection;
 }
 
 /* Flip the surface data */
 {
-void* tmp;
-
-tmp = front-dib.bitmap_data;
-front-dib.bitmap_data = back-dib.bitmap_data;
-back-dib.bitmap_data = tmp;
-
-tmp = front-resource.allocatedMemory;
-front-resource.allocatedMemory = back-resource.allocatedMemory;
-back-resource.allocatedMemory = tmp;
+front-dib.bitmap_data = back.dib.bitmap_data;
+front-resource.allocatedMemory = back.resource.allocatedMemory;
 
 if(front-resource.heapMemory) {
 ERR(GDI Surface %p has heap memory allocated\n, front);
 }
-if(back-resource.heapMemory) {
-ERR(GDI Surface %p has heap memory allocated\n, back);
+if(back.resource.heapMemory) {
+ERR(GDI Surface %p has heap memory allocated\n, back);
 }
 }
 
 /* client_memory should not be different, but just in case */
 {
-BOOL tmp;
-tmp = front-dib.client_memory;
-front-dib.client_memory = back-dib.client_memory;
-back-dib.client_memory = tmp;
+front-dib.client_memory = back.dib.client_memory;
 }
 
 /* FPS support */
-- 
1.7.1

From d711a1e7f258732adeec7a974619c8a60afd01a1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Pavel=20Proch=C3=A1zka?= pavelvonlost...@seznam.cz
Date: Thu, 18 Nov 2010 10:48:42 +0100
Subject: [RFC:][2/3] wined3d: Allow any count of backbuffers for gdi surfaces.

---
 dlls/wined3d/swapchain.c |   21 -
 1 files changed, 12 insertions(+), 9 deletions(-)

diff --git a/dlls/wined3d/swapchain.c b/dlls/wined3d/swapchain.c
index a29eeb4..b6b8f0b 100644
--- a/dlls/wined3d/swapchain.c
+++ 

Re: [PATCH 4/4] ddraw: Return DDERR_INVALIDPARAMS for 0 width / height surface creation.

2010-11-18 Thread Marvin
Hi,

While running your changed tests on Windows, I think I found new failures.
Being a bot and all I'm not very good at pattern recognition, so I might be
wrong, but could you please double-check?
Full results can be found at
http://testbot.winehq.org/JobDetails.pl?Key=7157

Your paranoid android.


=== W98SE (32 bit dsurface) ===
dsurface: unhandled exception c005 at 00415849




Re: [PATCH 1/4] wined3d: Disallow empty surfaces.

2010-11-18 Thread Stefan Dösinger
Am Donnerstag 18 November 2010, 12:21:39 schrieb Henri Verbeet:
 +if (!resource_size) return WINED3DERR_INVALIDCALL;
Shouldn't we add a format flag that controls wether a format can be used to 
create a resource instead? I'm thinking about the NULL fourcc code that also 
has a resource size of zero but can be used to create a surface.


signature.asc
Description: This is a digitally signed message part.



Re: [3/5] gdi32: Add the ability to load a scalable font resource. Take 3.

2010-11-18 Thread Alexandre Julliard
Dmitry Timoshkov dmi...@codeweavers.com writes:

 +if (!ReadFile(hfile, dos, sizeof(dos), NULL, NULL))
 +goto errexit;
 +
 +if (dos.e_magic != IMAGE_DOS_SIGNATURE)
 +goto errexit;
 +
 +if (SetFilePointer(hfile, dos.e_lfanew, NULL, FILE_BEGIN) == 
 INVALID_SET_FILE_POINTER)
 +goto errexit;
 +
 +if (!ReadFile(hfile, os2, sizeof(os2), NULL, NULL))
 +goto errexit;

Again that's inefficient, you don't want to read it bit by bit. You
should read the whole file in one go, or use a memory mapping. If using
ReadFile you also have to check the returned size.

-- 
Alexandre Julliard
julli...@winehq.org




Re: Patch for bug 25063 - _pclose should wait for the command processor to terminate and return it's exit status

2010-11-18 Thread Alexandre Julliard
Borut Razem borut.ra...@siol.net writes:

 I was also thinking abut that. We could add a hProcess member to the
 ioinfo structure, but this means MSVCRT_MAX_FILES * sizeof(HANDLE) =
 2048 * 4 = 8KB additional data space, which will be more then less
 unused...

That's not an issue, if it's unused the cost is minimal. The real
problem is that the ioinfo structure can't be changed.

 The problem is that the highest file descriptor in use (actually the
 number of popen calls during the process life) is not konwn in
 advance, that's why I implemented it as dynamically growing
 array. Or I'm missing something?

You are confusing the allocation and the lookup. Yes, you need to grow
it dynamically. That doesn't mean you need a linear search.

-- 
Alexandre Julliard
julli...@winehq.org




Re: [PATCH 1/4] wined3d: Disallow empty surfaces.

2010-11-18 Thread Henri Verbeet
On 18 November 2010 14:59, Stefan Dösinger stefandoesin...@gmx.at wrote:
 Am Donnerstag 18 November 2010, 12:21:39 schrieb Henri Verbeet:
 +    if (!resource_size) return WINED3DERR_INVALIDCALL;
 Shouldn't we add a format flag that controls wether a format can be used to
 create a resource instead? I'm thinking about the NULL fourcc code that also
 has a resource size of zero but can be used to create a surface.

NULL is pretty special, and will require changes in a number of
places. Maybe it shouldn't go through the regular surface creation
path at all. Note that the point of the series is to disallow creating
surfaces with a zero width or height; failing NVDB surface creation is
just a fortunate side effect. In the longer term we should also
disallow e.g. formats without a GL format for resources in the default
or managed pools.




Re: [1/2] opengl32/tests: Add tests for special case of SetPixelFormat

2010-11-18 Thread Matijn Woudt
I got confused by the relay logs earlier (they don't include the calls
to com objects), it's our implementation of IDirect3D9::CreateDevice
which is calling SetPixelFormat. The application calls CreateDevice
with focus_window a handle from GetDesktopWindow();

You're right that the game isn't actually drawing to this device, it
calls a few functions (see attached files) and then it releases this
device and creates a new one with an appropriate window for the game
itself.

There are currently no test cases for using a 'root_window'. What test
cases do you want to see? I can duplicate the current tests for use
with a root_window, but that's probably not what you want.

For the implementation, we might be able to detect this inside
CreateDevice, and skip the creation of a swapchain. Not sure if that's
a correct fix though.

Thanks again,

Matijn

On Mon, Nov 15, 2010 at 2:24 AM, Roderick Colenbrander
thunderbir...@gmail.com wrote:
 It has been a while since I last looked at this area. The following
 bug came to my mind which is the same thing
 http://bugs.winehq.org/show_bug.cgi?id=9786

 I would start by figuring out for what purpose and for what calls the
 game is using GetDC(0). Turn on some d3d debug channels and try to
 figure that out. You might have to write some test cases (though they
 might exists already in d3d, but I haven't looked at the test in a
 while). I don't know for sure but can Direct3D actually render to the
 'root_window'? I guess you can't ..

 Roderick

 On Sun, Nov 14, 2010 at 3:33 PM, Matijn Woudt tijn...@gmail.com wrote:
 On Mon, Nov 15, 2010 at 12:06 AM, Roderick Colenbrander
 thunderbir...@gmail.com wrote:
 Hi Matijn,

 What 3D API is this game using? Is it using Direct3D or OpenGL?

 If it is Direct3D then I have the feeling the 'issue' is getting fixed
 in the wrong layer.

 It's using Direct3D, but I don't see how this can be fixed in Direct3D.


 Further I'm not really sure whether we want to allow pixel format 1 to
 be used at all. In case of Wine all pixel formats are hardware
 accelerated (okay, the bitmaps one are set to indirect rendering so
 might be software based depending on the GLX implementation). On
 Windows you essentially have two GL implementations namely the
 Microsoft GDI renderer and the OpenGL ICD driver. The first several
 pixel formats are the ones from the software based GDI renderer...

 So even though Windows might allow setting pixel format 1 on HDC 0, I
 don't think it is the right thing to do.

 Roderick

 Not setting the pixel format (e.g. just returning TRUE) won't help the
 game. Setting a different (hardware accelerated) format will probably
 work, but that doesn't feel right. I'd really like to fix this bug,
 but if the patch isn't right I don't have a clue how to fix it 'the
 right way'.
 Any hints?

 Thanks,

 Matijn

 ps. Trial for the game is available at:
 http://www.sandlotgames.com/w5/hearts_medicine_season_1.html (200MB),
 after installing run bin/prog.exe, launcher doesn't work.

 On Sun, Nov 14, 2010 at 9:55 AM, Matijn Woudt tijn...@gmail.com wrote:
 Add tests for special case of SetPixelFormat

 Tests pass on my Windows XP laptop and Windows 7 PC.
 The game 'Heart's Medicine Season One' depends on this behaviour.









calls
Description: Binary data



Re: [1/5] gdi32: Separate font loading from adding a font to global font list. Take 3.

2010-11-18 Thread Alexandre Julliard
Dmitry Timoshkov dmi...@codeweavers.com writes:

 ---
  dlls/gdi32/freetype.c |  304 
 +
  1 files changed, 205 insertions(+), 99 deletions(-)

It doesn't build on Mac:

gcc -m32 -c -I. -I. -I../../include -I../../include 
-I/usr/local/include/freetype2 -I/usr/local/include  -I/usr/X11/include 
-D__WINESRC__ -D_GDI32_ -D_REENTRANT -fPIC -Wall -pipe -fno-strict-aliasing 
-Wdeclaration-after-statement -Wstrict-prototypes -Wwrite-strings 
-Wpointer-arith  -g -O2  -o freetype.o freetype.c
freetype.c: In function 'load_font':
freetype.c:1418: error: 'fake_family' undeclared (first use in this function)
freetype.c:1418: error: (Each undeclared identifier is reported only once
freetype.c:1418: error: for each function it appears in.)
make[1]: *** [freetype.o] Error 1

-- 
Alexandre Julliard
julli...@winehq.org




Re: [1/2] opengl32/tests: Add tests for special case of SetPixelFormat

2010-11-18 Thread Henri Verbeet
On 18 November 2010 15:05, Matijn Woudt tijn...@gmail.com wrote:
 For the implementation, we might be able to detect this inside
 CreateDevice, and skip the creation of a swapchain. Not sure if that's
 a correct fix though.

Swapchain creation isn't something you want to skip. Perhaps it's
possible to delay GL context creation until something actually needs
it though. I'm curious if things like DrawPrimitive() shouldn't fail
anyway when the device is created with GetDesktopWindow() as window.
Another option may be to allow the D3D context to be created, but
immediately mark it invalid.




Re: dlls/oledb32: added conversions for I1, I8, UI2, DEC and GetConversionSize

2010-11-18 Thread Dan Kegel
Hi Andreas,
Thanks for helping Wine!
A few administrivial issues:
Please submit only one attachment per post.
Also, please avoid sending HTML mail to wine-patches.
See http://wiki.winehq.org/SubmittingPatches
- Dan

On Thu, Nov 18, 2010 at 4:05 AM, Andreas Pflug pf...@pse-consulting.de wrote:

 This complements my previous post, which is included for completeness' sake 
 below (0001-OLEDB-xxx)

 convert_DataConvert is extended for the types DBTYPE_I1, DBTYPE_I8 
 ,DBTYPE_UI2, DBTYPE_DECIMAL. The conversions are performed using the 
 OLEAUT32-Functions VarXXXFromYYY, as far as they exist which made this mostly 
 a carefully handled copy/paste job.

 Conversion DBTYPE_TIMESTAMP-DBTYPE_DATE have been successfully tested using 
 a commercial app (HIW Rendite 10).

 GetConversionLength has been implemented trivially for fixed-length dstTypes, 
 and partially for var-length types (as far as the app required it).


  Original-Nachricht 
 Betreff: dlls/oledb32: added conversions for R8,BOOL,DATE,DBTIMESTAMP
 Datum: Wed, 17 Nov 2010 13:45:25 +0100
 Von: Andreas Pflug pf...@pse-consulting.de
 An: wine-patc...@winehq.org

 convert_DataConvert now know the types DBTYPE_R8, DBTYPE_BOOL,
 DBTYPE_DATE and will convert from all source types supported by
 VarXXXFromYYY functions.
 DBTYPE_TIMESTAMP is supported to convert from and to DBTYPE_DATE.
 get_length is extended accordingly.






Re: [1/2] opengl32/tests: Add tests for special case of SetPixelFormat

2010-11-18 Thread Matijn Woudt
On Thu, Nov 18, 2010 at 3:35 PM, Henri Verbeet hverb...@gmail.com wrote:
 On 18 November 2010 15:05, Matijn Woudt tijn...@gmail.com wrote:
 For the implementation, we might be able to detect this inside
 CreateDevice, and skip the creation of a swapchain. Not sure if that's
 a correct fix though.

 Swapchain creation isn't something you want to skip. Perhaps it's
 possible to delay GL context creation until something actually needs
 it though. I'm curious if things like DrawPrimitive() shouldn't fail
 anyway when the device is created with GetDesktopWindow() as window.
 Another option may be to allow the D3D context to be created, but
 immediately mark it invalid.


I gave the visual test suite a shot, normal test run on my Windows 7 x64:
visual.c:196: Driver string: atiumdag.dl
visual.c:197: Description string: ATI Ra
visual.c:199: Device name string: \\.\DI
visual.c:201: Driver version 8.14.10.678

visual: 5493 tests executed (0 marked as todo, 75 failures), 3 skipped.

now, changing the code in create_window to return GetDesktopWindow(), gives

visual.c:196: Driver string: atiumdag.dl
visual.c:197: Description string: ATI Ra
visual.c:199: Device name string: \\.\DI
visual.c:201: Driver version 8.14.10.678

visual: 5493 tests executed (0 marked as todo, 75 failures), 3 skipped.

There's only 1 difference, the first one really shows a window with
all the triangle's, like it should. Second one doesn't show anything.
So all the functions don't fail, they just don't seem to do anything.




building a winelib dll?

2010-11-18 Thread Seth Burleigh
Im trying to build a simple winelib. Its not working and is returning 'error
127'. I have some question:

(1) how do i determine which functions are exported by wine? All i see using
nm zmq.dll.so is the names of my proxy function (add_proxy) instead of the
name that is going to be called by the windows program (add)
(2) whats the point of a spec file? what im saying is that i can build my
files without a spec file and no error message is produced. In what stage of
building is the spec file actually used?
(3) is there any way to debug just specifically the errors produced by my
stub dll under wine? somehow specify a debug channel where the real reason
for 'error 127' is? The stub dll being dynamically loaded by a program for
which i have no source code.

I am using these simple test files:
//in zmq.c
#include zmq.h
#include wine/debug.h
#include windef.h

long WINAPI add_proxy(long a,long b) {
return a+b;
}
;;in zmq.dll.spec
@  stdcall add( long long ) add_proxy


and then i do

winegcc -c  -o zmq.o zmq.c
winegcc -shared -o zmq.dll.so zmq.o

However, i notice that i can just get rid of the spec file and no error
messages are produced which makes no sense since the dll is supposed to
redirect calls to add to add_proxy.

And once i use the windows program to call function add, i get the 'error
127', which means it cant find the function 'add.'



Re: [PATCH 1/3] ws2_32/tests: add a test for an overlapped send

2010-11-18 Thread Marvin
Hi,

While running your changed tests on Windows, I think I found new failures.
Being a bot and all I'm not very good at pattern recognition, so I might be
wrong, but could you please double-check?
Full results can be found at
http://testbot.winehq.org/JobDetails.pl?Key=7170

Your paranoid android.


=== W98SE (32 bit sock) ===
sock.c:2661: Test failed: Failed to start overlapped send 0 - 0 - 
1048576/1048576




Re: [PATCH 2/3] ws2_32: fix up iovecs after transmission in WS2_send instead of WS2_sendto

2010-11-18 Thread Marvin
Hi,

While running your changed tests on Windows, I think I found new failures.
Being a bot and all I'm not very good at pattern recognition, so I might be
wrong, but could you please double-check?
Full results can be found at
http://testbot.winehq.org/JobDetails.pl?Key=7171

Your paranoid android.


=== W98SE (32 bit sock) ===
sock.c:2661: Test failed: Failed to start overlapped send 0 - 0 - 
1048576/1048576




Re: [PATCH 2/3] ws2_32: fix up iovecs after transmission in WS2_send instead of WS2_sendto

2010-11-18 Thread Marvin
Hi,

While running your changed tests on Windows, I think I found new failures.
Being a bot and all I'm not very good at pattern recognition, so I might be
wrong, but could you please double-check?
Full results can be found at
http://testbot.winehq.org/JobDetails.pl?Key=7173

Your paranoid android.


=== WXPPROSP3 (32 bit sock) ===
sock.c:3404: Test failed: Expected event sequence [FD_READ(0)], got []
sock.c:3411: Test failed: Expected event sequence [], got [FD_READ(0)]

=== WVISTAADM (32 bit sock) ===
sock.c:862: Test failed: gethostbyname() failed unexpectedly: 11004