Re: ntdll: remove an unnecessary NULL check : Coverity

2007-01-02 Thread Dmitry Timoshkov

Jeff L [EMAIL PROTECTED] wrote:

Looking a bit further it seems that NtCreateMailslotFile is only called 
from CreateMailslotW.  If there is a problem with a NULL then it stems 
from there. http://source.winehq.org/ident?i=CreateMailslotW


NtCreateMailslotFile is a public API, so probably it should handle the case
when attr is NULL. I see the same problem at least in NtCreateNamedPipeFile.
In general, handling of OBJECT_ATTRIBUTES in ntdll is not consistent, but
fixing it properly most likely a test is needed to see what Windows does
in that case.

--
Dmitry.




Re: ntdll: remove an unnecessary NULL check : Coverity

2007-01-02 Thread Jeff L

Dmitry Timoshkov wrote:


NtCreateMailslotFile is a public API, so probably it should handle the 
case
when attr is NULL. I see the same problem at least in 
NtCreateNamedPipeFile.

In general, handling of OBJECT_ATTRIBUTES in ntdll is not consistent, but
fixing it properly most likely a test is needed to see what Windows does
in that case.


Thanks for that, I will see what I can do about creating a suitable test.

Jeff




Re: dbghelp: Search for .gnu_debuglink file

2007-01-02 Thread Eric Pouech

Frank Richter a écrit :
The .gnu_debuglink section contains only a bare filename, however, the 
debug file can be in a number of locations. These are stated in the 
GDB manual and are now searched when a .gnu_debuglink is encountered.

Frank,

a couple of remarks:
- there are memory leaks in the code (moduleDir can be leaked, as well 
as the newly found pathname)
- for the code to still be readable, I'd rather but in a single function 
all the processing required, ie. do it the same way as for the other 
debug information: if the .gnu_debuglink section is found, map it, and 
then let this new function handle the lot


A+




World of Warcraft Progress

2007-01-02 Thread darckness
Ahoy!

First off, I'd like to say happy 2007!  Hope you all did some good
celebrating.  I know I did ;)

Anyway, I've been doing some testing on World of Warcraft, and I noticed
some things of interest (Latest wine version from cvs/git, no patches
applied).

First off, the D3D (DX9) runs MUCH better (faster and more smoothly)
than the OGL mode.  Big kudos to you guys; last time I played, the D3D
mode was completely unusable because there was no D3D support in wine.
Very impressive.

The OGL performance isn't bad by any means, but it isn't great either.
I was running some traces as I played, but nothing in particular seemed
to be the culprit in terms of choppiness, so it's possible that it
could just be my system.  I'll write back soon when I have more
conclusive evidence.  Additionally, OGL mode crashes any time I attempt
to change a video setting, something that does not happen in D3D mode.

The load time (both startup and between zones/etc) is at least 10x
faster than it used to be.  I know that Blizzard has been working on
this a bit, but based on what I've seen on systems running Windows, the
load time reduction seems largely due to improvements in wine.

I guess my only real complaint at this point, since the D3D mode woks
so well, is that the X cursor still shows up in the game window along
with the game cursor.  I vaguely recall having this problem a long long
time ago in OGL mode, but I can't remember exactly what caused it or how
it was fixed.  Anyone have a better memory than I do?

That's pretty much the state of WoW at the
moment.

Comments/Questions/Solutions?




Re: wininet: ensure null check before dereference

2007-01-02 Thread James Hawkins

On 1/1/07, Jeff Latimer [EMAIL PROTECTED] wrote:

Coverity cid: 367 Do the null check before the dereference.  Given that
this is an simple internal function, do we need to check for null pointers?



Generally we don't check for NULL params in internal functions.

--
James Hawkins




Re: [9/16] WineD3D: Move decoding the vertex declaration to the device

2007-01-02 Thread Stefan Dösinger


Am 02.01.2007 um 05:38 schrieb Ivan Gyurdiev:

+if (stateblock-wineD3DDevice-vs_selected_mode != SHADER_NONE  
 stateblock-vertexShader  +   ((IWineD3DVertexShaderImpl *) 
stateblock-vertexShader)-baseShader.function != NULL)
+memcpy(stateblock-wineD3DDevice-strided_streams,  
stateblock-wineD3DDevice-up_strided, sizeof(stateblock- 
wineD3DDevice-strided_streams));


+primitiveDeclarationConvertToStridedData 
((IWineD3DDevice *) stateblock-wineD3DDevice,  
useVertexShaderFunction, +stateblock- 
wineD3DDevice-strided_streams, stateblock-wineD3DDevice- 
streamFixedUp);


My eyes hurt - can we *please* store the device in a local variable.

Ok, I can change that :-)



Also, I am not sure how we got to the point where this many upward  
references to the device from the stateblock are necessary - there  
has to be something wrong with that: a stateblock captures the  
state of a device, so why is it referring back to its parent device  
and looking up state there? This type of thing was introduced into  
the shader code as well, and IIRC it was wrong there too.
I knew you'd come up with that :-) . My plan is to remove all the  
upward references to the device later on and store most of the things  
stored in the device in a seperate context variable, which is passed  
to the state handlers. But for now I want to keep the code unchanged  
as much as possible, and thus work with the device everywhere.


Also, all this transient data from the drawprim codepath moved into  
the device - can you explain again why that's necessary, does it  
really need to persist after the drawprim call?
Yes, most of the data stays valid and can be used after the drawprim  
finished. The decoded vertex declaration is valid until the next  
SetStreamSource, SetVertexDeclaration, SetFVF or SetVertexShader  
call. Future drawprim calls can reuse it, and the Vertex Buffer  
Preload function can access it too(instead having to do its own  
decoding to get exactly the same result)






Re: World of Warcraft Progress

2007-01-02 Thread Stefan Dösinger


Am 02.01.2007 um 09:51 schrieb darckness:

First off, the D3D (DX9) runs MUCH better (faster and more smoothly)
than the OGL mode.  Big kudos to you guys; last time I played, the D3D
mode was completely unusable because there was no D3D support in wine.
Very impressive.

Nice :-)

The OGL performance isn't bad by any means, but it isn't great either.
I was running some traces as I played, but nothing in particular  
seemed

to be the culprit in terms of choppiness, so it's possible that it
could just be my system.  I'll write back soon when I have more
conclusive evidence.  Additionally, OGL mode crashes any time I  
attempt

to change a video setting, something that does not happen in D3D mode.
The d3d renderer of wow is said to be much better than the ogl  
renderer, even under windows. And I think there is a bug in wow which  
causes performance issues with the GL_ARB_vertex_buffer_object  
extension, you can bypass this by blacklisting it with a registry key.



I guess my only real complaint at this point, since the D3D mode woks
so well, is that the X cursor still shows up in the game window along
with the game cursor.  I vaguely recall having this problem a long  
long
time ago in OGL mode, but I can't remember exactly what caused it  
or how

it was fixed.  Anyone have a better memory than I do?
Yes, that is a known problem. We haven't figured out yet when the  
cursor is shown or hidden exactly, but for wow it seems that we have  
to hide the cursor on the IDirect3DDevice9::SetCursorProperties call  
which sets a d3d cursor. Unfortunately wow only calls that if hw  
cursors are enabled, but wine doesn't do that yet. Henri Verbeet has  
some patches needed for that, but they are pretty huge and affect the  
core cursor handling down to wineserver.






Re: dlls/opengl32/wgl.c: minor dealloc fix

2007-01-02 Thread Kai Blin
On Tuesday 02 January 2007 02:40, Nick Burns wrote:

 However, this seems dangerous if you wanted to take any of that code and
 run it under windows (but im guessing xp and 2k work this way -- and few
 people use 95/98/me anymore)

There are win98 tests run on test.winehq.org. You can check there if the 
HeapFree() works there.


 Where is a good place for api docs other than the MSDN? (and no source does
 not count as good api docs)

I'm afraid the Wine source is the most complete win32 api doc apart from MSDN.

 It seems like Microsoft should be notified of incorrect/incomplete api docs
 -- so they can correct them
 (but sadly this is a huge thankless task...)

I sort of doubt they'll fix it for us. They didn't fix it for the EU.

Cheers,
Kai

-- 
Kai Blin, kai Dot blin At gmail Dot com
WorldForge developerhttp://www.worldforge.org/
Wine developer  http://wiki.winehq.org/KaiBlin/
--
Will code for cotton.


pgptSS2lFqOQs.pgp
Description: PGP signature



Re: systray [2]: transparent icons: let systray window responsible for background

2007-01-02 Thread Alexandre Julliard
Kirill K. Smirnov [EMAIL PROTECTED] writes:

 @@ -366,6 +366,7 @@ static void systray_dock_window( Display
  
  wine_tsx11_lock();
  XSendEvent( display, systray_window, False, NoEventMask, ev );
 +XSetWindowBackgroundPixmap(display, data-whole_window, 
 ParentRelative);
  wine_tsx11_unlock();

This won't really do what you want. You have to set the window shape
if you want the background to be properly transparent.

-- 
Alexandre Julliard
[EMAIL PROTECTED]




Re: Resend: d3d9: fix failing tests on windows, when no 3d hardware acceleration is available

2007-01-02 Thread Alexandre Julliard
Louis. Lenders [EMAIL PROTECTED] writes:

 Hi, is there anything wrong with this patch? If so, could you please tell me 
 what. Thx

I fixed it up, but next time please try to respect the indentation
style of the existing file. We don't have any place that uses a
strange style like this:

 +if(FAILED(hr))
 +  {
 +  trace(could not create device, IDirect3D9_CreateDevice returned 
 %#x\n, hr);
 +  goto cleanup;
 +  }

-- 
Alexandre Julliard
[EMAIL PROTECTED]




Re: Resend: d3d9: fix failing tests on windows, when no 3d hardware acceleration is available

2007-01-02 Thread Ivan Gyurdiev

Louis. Lenders wrote:
Hi, is there anything wrong with this patch? If so, could you please 
tell me what. Thx


*/Louis. Lenders [EMAIL PROTECTED]/* wrote:

Hi, this patch should fix failing tests in d3d9, like you see for
example here:
http://test.winehq.org/data/200612231000/

Appearently the tests in stateblock.c didn't need to be modified,
as they create the device with flag D3DDEVTYPE_NULLREF; these
tests do not fail anywhere.

thanks for some advice from stringfellow


So why not fallback to REF or NULLREF type of device everywhere else if 
HAL is unavailable?

Do those tests need HAL support in the first place?




Re: Resend: d3d9: fix failing tests on windows, when no 3d hardware acceleration is available

2007-01-02 Thread Stefan Dösinger


Am 02.01.2007 um 13:45 schrieb Ivan Gyurdiev:



So why not fallback to REF or NULLREF type of device everywhere  
else if HAL is unavailable?

Do those tests need HAL support in the first place?
There are some differences between HAL and REF which are important to  
some games. Refcount tests are ok with NULLREF, but for other things  
we have to take the driver into account.







Re: World of Warcraft Progress

2007-01-02 Thread Tomas Carnecky
darckness wrote:
 First off, the D3D (DX9) runs MUCH better (faster and more smoothly)
 than the OGL mode.  Big kudos to you guys; last time I played, the D3D
 mode was completely unusable because there was no D3D support in wine.
 Very impressive.
 

The GLX_ARB_vertex_buffer_object is described on the AppDb page for
World of Warcraft and has now been known for quite some time already. If
you apply the hack, you'll see that running in OGL and D3D mode won't
make a difference in the framerate.

I also noticed the modeswitch crash, but I didn't investigate it. I
always edit the Config.wtf file if I need to switch modes (or graphics
settings). But I'll look into if if nobody else will ;)

tom




Re: systray [2]: transparent icons: let systray window responsible for background

2007-01-02 Thread Kirill K. Smirnov

 Kirill K. Smirnov [EMAIL PROTECTED] writes:
 
  @@ -366,6 +366,7 @@ static void systray_dock_window( Display
   
   wine_tsx11_lock();
   XSendEvent( display, systray_window, False, NoEventMask, 
ev );
  +XSetWindowBackgroundPixmap(display, data-whole_window, 
ParentRelative);
   wine_tsx11_unlock();
 
 This won't really do what you want. You have to set the window shape
 if you want the background to be properly transparent.

Now I understand, that the problem is more hard than I think before.

1) The code I sent is the solution... unless the application change 
icon. In this case new icon is painted over and produces a mixture.

2) If I set window shape to 'AND' bitmap of icon (do I correctly 
understand you?) then what to do with full transparent icons? E.g. some 
applications (qip) flashes the icons by changing the icon with full 
transparent icon and back.
 a) Will window with NULL shape be created?
 b) if a) is true, then when I click on null icon will I get any events?


For some time I wonder, why kde icons looks good even when they are 
changing??? The answer is kde applications use KSystemTray directly 
without XEMBED.

xmule to achieve the same goal, removes the icon from systray and adds 
new one (as I understand it, I may wrong). Shall we use the same 
mechanism?

Any other suggestion?




Re: systray [2]: transparent icons: let systray window responsible for background

2007-01-02 Thread Alexandre Julliard
Kirill K. Smirnov [EMAIL PROTECTED] writes:

 2) If I set window shape to 'AND' bitmap of icon (do I correctly 
 understand you?) then what to do with full transparent icons? E.g. some 
 applications (qip) flashes the icons by changing the icon with full 
 transparent icon and back.
  a) Will window with NULL shape be created?
  b) if a) is true, then when I click on null icon will I get any events?

No, you'd have to click while the icon is shown. I don't think there's
any way to make a window transparent for output but not for input. Not
sure it's a big problem though.

-- 
Alexandre Julliard
[EMAIL PROTECTED]




Re: quartz: add implementations for AmpFactorToDB and DBToAmpFactor

2007-01-02 Thread Roderick Colenbrander
Hi,

Why are you using a lookup table and not just a log10(x) and 10^(x) for the 
gain - dB conversions? That's how it should be done I think like 10x 
corresponding to 20dB (assuming signal gain). In your tests it is just:
2000*log10(gain) - 9630 for going to that dB-like scale.

Regards,
Roderick
-- 
Der GMX SmartSurfer hilft bis zu 70% Ihrer Onlinekosten zu sparen! 
Ideal für Modem und ISDN: http://www.gmx.net/de/go/smartsurfer




Re: [SPAM] Re: Looking for sound testers

2007-01-02 Thread Alex Villací­s Lasso

Neil Skrypuch escribió:

On Thursday, December 28, 2006 10:04, Maarten Lankhorst wrote:
  

Hi all,

I've forward ported the old patches of Davin McCall (dsound.patch).
With them I have no more sound underruns etc, I'm therefore looking
for other people to test them as well. I'm welcoming comments on how
it works and possible issues with it.

I also attached my patch to alsa, I'm aware of the things I need to
fix for that, but I thought it might be good to test dsound with
winealsa, to see if other things still need to be fixed.

Cheers,

Maarten



I've given this a spin with Icewind Dale, and while it does seem to remove the 
underrun issues (at least I don't see them spit out anymore), the sound still 
stutters and crackles just as much as before.


- Neil

  
With both ALSA and dsound patches applied, the tests hang when trying to 
play from a 96000Hz buffer. Enabling direct access for the winealsa 
driver works around this.


--
perl -e '$x = 2.4; print sprintf(%.0f + %.0f = %.0f\n, $x, $x, $x + $x);'





Re: atl: Declare some items static

2007-01-02 Thread Robert Shearman

Andrew Talbot wrote:

-HRESULT WINAPI AtlModuleLoadTypeLib(_ATL_MODULEW *pM, LPCOLESTR lpszIndex,
-BSTR *pbstrPath, ITypeLib **ppTypeLib)
+static HRESULT WINAPI AtlModuleLoadTypeLib(_ATL_MODULEW *pM, LPCOLESTR 
lpszIndex,
+   BSTR *pbstrPath, ITypeLib 
**ppTypeLib)
  


Did you try compiling  linking this? WINAPI is usually only applied to 
exported functions.


--
Rob Shearman





Re: rpc issues

2007-01-02 Thread Damjan Jovanovic

On 1/1/07, Matthew Edlefsen [EMAIL PROTECTED] wrote:

Hi, I've been trying to get a program that uses rpc to work on wine and I've
been having some problems (my understanding is that isn't surprising).  The
goal is to be able to run a rpc server that sits and waits for connections
over tcp/ip (It's for doing distributed computing).  My first problem was
that I was using RpcServerUseProtseq which after looking at the code noticed
will always fail with tcp/ip since it passes RpcServerUseProtseqEp NULL for
the endpoint which eventually causes
rpcrt4_protseq_ncacn_ip_tcp_open_endpoint to call
getaddrinfo with NULL for both the ip and port which I guess isn't allowed.

Anyways I altered my code to use a given endpoint instead and now it tells
me:
fixme:rpc:RpcMgmtWaitServerListen not waiting for server
calls to finish


Ah yes - that one!


Does this mean the function just doesn't work?  Is there any way around it?


It does work. After calling RpcMgmtWaitServerListen, just sleep
forever. The RPC function calls come in on a different thread anyway.


I assume if it was easy to implement it would have already but just in case
what exactly needs to be done to get it working?


I was wondering this too, Robert might know.


I was also confused by the
differences between the online git tree and the LXR/what actually gets
downloaded to my computer.

To be honest I'm pretty new to wine and linux in general but it would be
absolutely wonderful to get this working.


Good luck.


Thanks in advance - Matt Edlefsen


Damjan




Re: [SPAM] Re: Looking for sound testers

2007-01-02 Thread SorinN

Hi all

I dont know what you do there guys but ..BEFORE last ALSA related upgrade (
ubuntu feisty ) foobar2000 under  wine cannot play mp3 files - AFTER the
upgrade ( 2 files I think ) foobar2000 play my files and work EXACT like
foobar2000 under XP.

I use right now wine 0.9.27

Good job.

Sorin

2007/1/2, Alex Villací­s Lasso [EMAIL PROTECTED]:


Neil Skrypuch escribió:
 On Thursday, December 28, 2006 10:04, Maarten Lankhorst wrote:

 Hi all,

 I've forward ported the old patches of Davin McCall (dsound.patch).
 With them I have no more sound underruns etc, I'm therefore looking
 for other people to test them as well. I'm welcoming comments on how
 it works and possible issues with it.

 I also attached my patch to alsa, I'm aware of the things I need to
 fix for that, but I thought it might be good to test dsound with
 winealsa, to see if other things still need to be fixed.

 Cheers,

 Maarten


 I've given this a spin with Icewind Dale, and while it does seem to
remove the
 underrun issues (at least I don't see them spit out anymore), the sound
still
 stutters and crackles just as much as before.

 - Neil


With both ALSA and dsound patches applied, the tests hang when trying to
play from a 96000Hz buffer. Enabling direct access for the winealsa
driver works around this.

--
perl -e '$x = 2.4; print sprintf(%.0f + %.0f = %.0f\n, $x, $x, $x +
$x);'







--
Nemes Ioan Sorin



Re: [PATCH 1/3] [Msvcrt]: reset a signal to DFL after it's been used

2007-01-02 Thread Alexandre Julliard
Eric Pouech [EMAIL PROTECTED] writes:

 @@ -455,13 +456,13 @@ static LONG WINAPI msvcrt_exception_filt
  case EXCEPTION_FLT_OVERFLOW:
  case EXCEPTION_FLT_STACK_CHECK:
  case EXCEPTION_FLT_UNDERFLOW:
 -if (sighandlers[MSVCRT_SIGFPE])
 +if ((handler =3D sighandlers[MSVCRT_SIGFPE]) !=3D MSVCRT_SIG_DFL=
 )
  {
 -if (sighandlers[MSVCRT_SIGFPE] !=3D MSVCRT_SIG_IGN)
 +sighandlers[MSVCRT_SIGSEGV] =3D MSVCRT_SIG_DFL;
 +if (handler !=3D MSVCRT_SIG_IGN)

You have to check for SIG_IGN first, the handler should not be reset
in that case.

-- 
Alexandre Julliard
[EMAIL PROTECTED]




Re: [PATCH] [DbgHelp]: implemented 64 bit versions of EnumerateLoadedModules

2007-01-02 Thread Alexandre Julliard
Eric Pouech [EMAIL PROTECTED] writes:

 +BOOL  WINAPI EnumerateLoadedModulesW64(HANDLE hProcess,
 +   PENUMLOADED_MODULES_CALLBACKW64 E=
 numLoadedModulesCallback,
 +   PVOID UserContext)
 +{
 +struct enum_load_mod64_W64  x;
 +
 +x.cb =3D EnumLoadedModulesCallback;
 +x.user =3D UserContext;
 +
 +return EnumerateLoadedModules64(hProcess, enum_load_mod64_W64, x);

You should make the A function call the W one, not the other way
around.

-- 
Alexandre Julliard
[EMAIL PROTECTED]




Re: [PATCH] [ImageHlp]: MapAndLoad

2007-01-02 Thread Alexandre Julliard
Eric Pouech [EMAIL PROTECTED] writes:

 @@ -199,7 +204,10 @@ BOOL WINAPI MapAndLoad(LPSTR pszImageNam
  ((LPBYTE) pNtHeader-OptionalHeader +
   pNtHeader-FileHeader.SizeOfOptionalHeader);
  pLoadedImage-NumberOfSections =3D pNtHeader-FileHeader.NumberOfSec=
 tions;
 -pLoadedImage-SizeOfImage  =3D pNtHeader-OptionalHeader.SizeOfI=
 mage;
 +/* we need to return the size of image which has been mapped */
 +pLoadedImage-SizeOfImage  =3D pNtHeader-OptionalHeader.SizeOfH=
 eaders;
 +for (i =3D 0; i  pLoadedImage-NumberOfSections; i++)
 +pLoadedImage-SizeOfImage  +=3D pLoadedImage-Sections[i].SizeOf=
 RawData;

There's no reason that the SizeOfRawData fields would add up to the
size of the mapping. You have to use GetFileSize() if you need the
true size.

-- 
Alexandre Julliard
[EMAIL PROTECTED]




Re: [SPAM] Re: Looking for sound testers

2007-01-02 Thread * *

On 1/2/07, SorinN [EMAIL PROTECTED] wrote:

Hi all

I dont know what you do there guys but ..BEFORE last ALSA related upgrade (
ubuntu feisty ) foobar2000 under  wine cannot play mp3 files - AFTER the
upgrade ( 2 files I think ) foobar2000 play my files and work EXACT like
foobar2000 under XP.

I use right now wine 0.9.27

Good job.

Sorin

2007/1/2, Alex Villací­s Lasso [EMAIL PROTECTED]:
 Neil Skrypuch escribió:
  On Thursday, December 28, 2006 10:04, Maarten Lankhorst wrote:
 
  Hi all,
 
  I've forward ported the old patches of Davin McCall (dsound.patch).
  With them I have no more sound underruns etc, I'm therefore looking
  for other people to test them as well. I'm welcoming comments on how
  it works and possible issues with it.
 
  I also attached my patch to alsa, I'm aware of the things I need to
  fix for that, but I thought it might be good to test dsound with
  winealsa, to see if other things still need to be fixed.
 
  Cheers,
 
  Maarten
 
 


With Galactic Civilizations 2 Dark Avatar (just posted three patches
that make it run mostly ok), everything sounds great.  Only glitching
I have is when I break into the debugger, even with a ton of trace
output the sound is still smooth.

This is using the git version, but it's been nice and smooth in
several different versions I've pulled in the last two weeks.




help with dll

2007-01-02 Thread xie jason
Hi there,
 My name is Jason. I am trying to compile my
windows application under linux. I found that the dll
file i use to build mu application links to some other
dlls. i was just wondering that when i compile it
under linux, do i need to compile with those dlls. if
yes, it will be very troublesome since they are quite
a lot and i have no access to the header files. 


thanks
Jason

Send instant messages to your online friends http://au.messenger.yahoo.com 




Re: quartz: add implementations for AmpFactorToDB and DBToAmpFactor

2007-01-02 Thread Robert Reif

Roderick Colenbrander wrote:


Hi,

Why are you using a lookup table and not just a log10(x) and 10^(x) for the gain 
- dB conversions? That's how it should be done I think like 10x corresponding 
to 20dB (assuming signal gain). In your tests it is just:
2000*log10(gain) - 9630 for going to that dB-like scale.

Regards,
Roderick
 

That was the only way to get the exact same results as a native dll.  
For whatever reason Microsoft decided not to use the standard equations 
like the rest of the world.  I assume it was to eliminate the need for 
floating point calculations.  Actually you could use the same equation 
that the generated the table to go from dB to amp but you can't use an 
equation to go the other way around because of the weird roundoff errors 
that result from using a lookup table.






Re: Uniscribe improvements

2007-01-02 Thread Marcus Meissner
On Tue, Jan 02, 2007 at 12:42:25PM -0600, * * wrote:

Please use your real name.

To avoid problems with ligitation later on we need it for
tracking.

Ciao, Marcus




Re: Uniscribe improvements

2007-01-02 Thread Hans Leidekker
On Tuesday 02 January 2007 19:42, * * wrote:

 StringAnalysis should have a cache object, not save the HDC directly.

I agree, although you shouldn't free the cache in ScriptStringFree, the
caller is responsible for that.

 One of the important things about the cache, which wine currently
 doesn't do, is that the caller is free to select a different font into
 the HDC after calling ScriptStringAnalyse and Uniscribe is supposed to
 use the right one.

Yes, cache handling is still very basic. If the font changes the cache
should be invalidated. It also needs to be ref counted and locked.

 -Hans




Re: Uniscribe improvements

2007-01-02 Thread * *

On 1/2/07, Hans Leidekker [EMAIL PROTECTED] wrote:

On Tuesday 02 January 2007 19:42, * * wrote:

 StringAnalysis should have a cache object, not save the HDC directly.

I agree, although you shouldn't free the cache in ScriptStringFree, the
caller is responsible for that.

 One of the important things about the cache, which wine currently
 doesn't do, is that the caller is free to select a different font into
 the HDC after calling ScriptStringAnalyse and Uniscribe is supposed to
 use the right one.

Yes, cache handling is still very basic. If the font changes the cache
should be invalidated. It also needs to be ref counted and locked.


According to MSDN, the pending error is to give the calling app a
chance to select the matching font back into the DC if the information
wasn't cached.  I think that the get_script_cache function is broken,
in that it should return the pending error if the HDC isn't provided,
since the HDC in the cache might no longer have the same font
selected.  However maybe some applications don't deal with the pending
case properly.

{{ Seems with wine-devel the default action isn't reply to list, I've
got to be more careful when replying }}

-- Richard Voigt



 -Hans






Re: systray icon questions

2007-01-02 Thread James Liggett
On Fri, 2006-12-29 at 11:33 +0300, Kirill K. Smirnov wrote 
 
 I've tried kde, fluxbox and xfce4 (and fvwm, but it lacks systray).
 Now I can see that xfce4 suffers from it. I did not noticed that before.
 
 So, I suppose a new patch (attached). Does it work correct with 
 GNOME? In xfce is OK.
 
 Thanks for pointing the path!
I tried your patch, and on GNOME it doesn't seem to have much of an
effect (the systray window still had a caption on it.) I also tried it
on XFce, where for some weird reason it hung my box. Not sure what's
going on there :( Anyway, I did try this once before, and it didn't
work. So it seems that this isn't the solution you're hoping for :(

Sorry to burst your bubble,
James






Re: atl: Declare some items static

2007-01-02 Thread Andrew Talbot
Robert Shearman wrote:

 Did you try compiling  linking this? WINAPI is usually only applied to
 exported functions.
 

Hi Rob,

My patch was totally wrong: I think I must have compiled and linked
the before version. I infer that an exported function (in the DLL sense)
must have external linkage (in the C sense).

Thanks,

-- Andy.






RE: RFC: Patch better support for DevMode

2007-01-02 Thread Nick Burns

Anyone have comments in this space?

I am sure that the behavior difference of EnumDisplaySettings{A,W} before 
and after window creation is a bug.


I think I will submit this patch (barring any complaints) and try to fix the 
behavior difference later.


This is still a solid fix afaict.

Any comments?

- Nick


From: Nick Burns [EMAIL PROTECTED]
To: wine-devel@winehq.com
Subject: RFC: Patch better support for DevMode Date: Mon, 01 Jan 2007 
02:56:29 -0800


After looking at the behavior on xp and wine for EnumDisplaySettingsA and 
EnumDisplaySettingsW before and after a window has been created (I wrote a 
little program to dump the devmodes), I noticed that the devmode structs 
that wine gives back are lacking some fields.


Attached is a patch that fills out the devmode structs out quite a bit more 
(similar to how XP does it).
This does not fix the issue that when you do not create a window you get 
different behavior if you have an emulated desktop (i would like soem help 
with this part).
Also attached is log_dev_pfd.zi_  -- it is a zip file (sorry about this but 
the log files are too big)
  ogl_fullscreen.cpp: source for the app that I used to test 
EnumDisplaySettings{A,W}

  wine_log_dev_pfd.txt: wine log from app (using an emulated desktop)
  nv34_log_dev_pfd.txt: log from nv34 using xp driver
  rv250_log_dev_pfd.txt: log from rv250 using xp driver

I would like some help with the behavior difference before and after window 
creation (visible in wine_log_dev_pfd.txt -- the fullscreen modes that are 
supported should not change)


And would like any comments on the patch

Also -- I would like to get the correct driver names in there and not just 
-- desktop/NoRes


- Nick





 log_dev_pfd.zi_ 




 winePatchDevModeFill.diff 












Re: What to do about apps that require 256-color mode?

2007-01-02 Thread L. Rahyen
On Tuesday January 2 2007 00:43, Dan Kegel wrote:
 So what's Wine to do?  Can we somehow tell Wine
 to emulate 256 color mode for particular apps?

You can try to launch game like this:

wine explorer /desktop=Game,800x600 game.exe

At least for me this simple trick helps sometimes.




Re: Uniscribe improvements

2007-01-02 Thread Jeff L

* * wrote:


According to MSDN, the pending error is to give the calling app a
chance to select the matching font back into the DC if the information
wasn't cached.  I think that the get_script_cache function is broken,
in that it should return the pending error if the HDC isn't provided,
since the HDC in the cache might no longer have the same font
selected.  However maybe some applications don't deal with the pending
case properly.
The functionality tests ok in Windows the way it is implemented.  What 
you are asking for is not the way it actually works.  Having tested a 
few applications, they all seem to handle the E_PENDING ok.  In Windows 
the cache contains font info to speed up the uniscribe processing so 
many apps only pass the psc and not the HDC.  There is a rule that once 
you have an script_cache the caller can't change the font.  If he does 
it is his fault and he can fix it.  In our case we currently only seek 
conformance with Windows.


Jeff Latimer




Re: ppviewer.exe MSI failure (PowerPoint 2k3): HowTo assemble a lynch mob?

2007-01-02 Thread Ben Hodgetts (Enverex)

James Hawkins wrote:

On 1/1/07, Andreas Mohr [EMAIL PROTECTED] wrote:

Hi all,

http://www.microsoft.com/downloads/details.aspx?familyid=428D5727-43AB-4F24-90B7-A94784AF71A4displaylang=en 



failed to install with some nice MSI failures when I tried it last 
week on a current

Wine version (Ubuntu package 0.9.28, I think).

Does that mean that I'm entitled to assemble a capable lynch mob for 
the guys
who were supposed to fix any and all MSI installer issues at 
CodeWeavers? ;)


IMHO ppviewer.exe is important since those people who receive some 
scripted
PowerPoint file (yes, that's even some games!) won't have much luck 
with
OpenOffice Impress, so they're fully dependant on getting 
ppviewer.exe to work.




This installer works fine for me with git wine.



It is probably the -2140172307 bug 
(http://bugs.winehq.org/show_bug.cgi?id=6998 - Tested by me and Vitaliy) 
doing it. Basically it started happening after 0.9.27 to newer 
installshield apps. They simply stop installing without error but it 
wasn't always and was at a random point (then patches after .28 caused 
it to give a crazy error message and now a patch has been submitted to 
fix it). The errors seen in the terminal were normal, you tend to get a 
lot when installing things but they are rarely critical.


Ex.




Re: wined3d: state_pointsprite should apply to all texture units

2007-01-02 Thread Tomas Carnecky
Chris Robinson wrote:
 +for (i = 0; i  GL_LIMITS(texture_stages); i++) {
 +/* Note the WINED3DRS value applies to all textures, but GL has one
 + * per texture, so apply it now ready to be used!
 + */
 +if (GL_SUPPORT(ARB_MULTITEXTURE)) {
 +GL_EXTCALL(glActiveTextureARB(GL_TEXTURE0_ARB + i));
 +checkGLcall(glActiveTextureARB);
 +} else if (i0) {
 +FIXME(Program using multiple concurrent textures which this 
 opengl implementation doesn't support\n);
 +}

I'd do that '} else if (i == 1) {', otherwise you'll print a whole lot
FIXME's, and maybe add a 'break', since it doesn't make sense to call
glTexEnvi() over and over for the same texture.

tom




Re: Uniscribe improvements

2007-01-02 Thread * *

On 1/2/07, Jeff L [EMAIL PROTECTED] wrote:

* * wrote:

 According to MSDN, the pending error is to give the calling app a
 chance to select the matching font back into the DC if the information
 wasn't cached.  I think that the get_script_cache function is broken,
 in that it should return the pending error if the HDC isn't provided,
 since the HDC in the cache might no longer have the same font
 selected.  However maybe some applications don't deal with the pending
 case properly.
The functionality tests ok in Windows the way it is implemented.  What
you are asking for is not the way it actually works.  Having tested a
few applications, they all seem to handle the E_PENDING ok.  In Windows
the cache contains font info to speed up the uniscribe processing so
many apps only pass the psc and not the HDC.  There is a rule that once
you have an script_cache the caller can't change the font.  If he does
it is his fault and he can fix it.  In our case we currently only seek
conformance with Windows.


That's distinctly not what MSDN documentation and the associated
example code reads:
http://www.microsoft.com/typography/developers/uniscribe/uniscribe.htm
http://msdn2.microsoft.com/en-gb/library/ms776467.aspx

If the device context is passed as NULL and Uniscribe needs to access
it for any reason, Uniscribe returns the error code E_PENDING. This
code is returned quickly, allowing the application to avoid
time-consuming SelectObject calls.

Whereas the current implementation will silently access an HDC even if
the application passed NULL, which means the application doesn't get a
chance to SelectObject the right font.



Jeff Latimer








Re: appdb rating inflation

2007-01-02 Thread Dan Kegel

As Chris Morgan pointed out,
http://appdb.winehq.org/help/?sTopic=maintainer_ratings
might need clarification.  It now says

-- snip --
Platinum
An application can be rated as Platinum if it installs and runs out
of the box No changes required to winecfg.

Gold
Application works flawlessly with some DLL overrides or other
settings, crack etc.

Silver
Application works excellently for 'normal' use; a game works fine in
single-player but not in multi-player, Windows Media Player works fine
as a plug-in and stand-alone player, but can't handle DRM etc.
-- snip --

I'd like to change this to make it clear that cracks are a no-no for
anything Silver and above, and make Platinum and Gold rather
more rigorous:

-- snip --
Platinum
Platinum applications install normally and run flawlessly.
No manual editing of files, no winecfg settings, no native DLLs, no third-party
install scripts, and no cracks are allowed for a Platinum rating.

Gold
Gold applications install normally and run well.
Some cosmetic problems may be present, but they should not be noticable
to the average user.
No manual editing of files, no winecfg settings, no native DLLs, no
third-party install scripts, and no cracks are allowed for a Gold
rating.

Silver
Application installs and works well for 'normal' use, but some features may
be broken.  For instance, a game that works fine in single-player but
not in multi-player,
or a media player that works fine for mp3 files but not for DRM-protected files.
No manual editing of files or cracks are allowed for Silver ratings,
but winecfg settings, native DLLs, or third-party install scripts may
be required.
-- snip --

What do people think?
- Dan




Re: appdb rating inflation

2007-01-02 Thread * *

On 1/2/07, Dan Kegel [EMAIL PROTECTED] wrote:

As Chris Morgan pointed out,
http://appdb.winehq.org/help/?sTopic=maintainer_ratings
might need clarification.  It now says

-- snip --
Platinum
An application can be rated as Platinum if it installs and runs out
of the box No changes required to winecfg.

Gold
Application works flawlessly with some DLL overrides or other
settings, crack etc.

Silver
Application works excellently for 'normal' use; a game works fine in
single-player but not in multi-player, Windows Media Player works fine
as a plug-in and stand-alone player, but can't handle DRM etc.
-- snip --

I'd like to change this to make it clear that cracks are a no-no for
anything Silver and above, and make Platinum and Gold rather
more rigorous:

-- snip --
Platinum
Platinum applications install normally and run flawlessly.
No manual editing of files, no winecfg settings, no native DLLs, no third-party
install scripts, and no cracks are allowed for a Platinum rating.

Gold
Gold applications install normally and run well.
Some cosmetic problems may be present, but they should not be noticable
to the average user.
No manual editing of files, no winecfg settings, no native DLLs, no
third-party install scripts, and no cracks are allowed for a Gold
rating.


How about still permitting required native DLLs, but only if an
installer is available as a  download from Microsoft or the
application developer (but not third party), and no manual editing on
the user's part, manual file copying, settings, or cracks?

This would include, for instance, any program that installs and runs
after installing MS Installer 3.0 Unicode package.



Silver
Application installs and works well for 'normal' use, but some features may
be broken.  For instance, a game that works fine in single-player but
not in multi-player,
or a media player that works fine for mp3 files but not for DRM-protected files.
No manual editing of files or cracks are allowed for Silver ratings,
but winecfg settings, native DLLs, or third-party install scripts may
be required.
-- snip --

What do people think?
- Dan








Re: appdb rating inflation

2007-01-02 Thread Frank Richter

On 03.01.2007 04:00, Dan Kegel wrote:
No manual editing of files, no winecfg settings, no native DLLs, no 
third-party

install scripts, and no cracks are allowed for a Platinum rating.


Giving a set of points may lead to some people think hey to run 
MyApplication I just have to some obscure workaround. It's not in the 
list, so lets rate it platinum!. So maybe put some generalized 
criterium in front of that list: The application should install and run 
on a fresh, unmodified Wine, from original installation media. That 
means, among other things, no manual editing of files, ...


OTOH, there are not much obscure workarounds not covered by that list. 
Manually editing the registry might be one that should be be disallowed. 
Also, you mentioned apps that only run as root; this might be worthwhile 
to disallow, too.


-f.r.





Re: What to do about apps that require 256-color mode?

2007-01-02 Thread Dan Kegel

On 1/2/07, L. Rahyen [EMAIL PROTECTED] wrote:

 So what's Wine to do?  Can we somehow tell Wine
 to emulate 256 color mode for particular apps?

You can try to launch game like this:

wine explorer /desktop=Game,800x600 game.exe

At least for me this simple trick helps sometimes.


Thanks for the tip.  Doesn't help in this case, though.  The
app sits in a loop, waiting forever for the screen to do something
magic, I suppose.   +relay output appended for the curious.
- Dan

...
000e:Call gdi32.CreateICA(00fae4fc DISPLAY,,,) ret=00f
a28b7
000e:Ret  gdi32.CreateICA() retval=1208 ret=00fa28b7
000e:Call gdi32.GetDeviceCaps(1208,0008) ret=00fa28ff
000e:Ret  gdi32.GetDeviceCaps() retval=0320 ret=00fa28ff
...
000e:Call user32.ChangeDisplaySettingsA(0034f734,0002) ret=00fa21f9
000e:Call winex11.drv.ChangeDisplaySettingsEx(,0034f558,,000
2,) ret=7ec4bb39
000e:Ret  winex11.drv.ChangeDisplaySettingsEx() retval= ret=7ec4bb39
000e:Ret  user32.ChangeDisplaySettingsA() retval= ret=00fa21f9
000e:Call kernel32.lstrcatA(00fb0420 800 600 16 0 noninterlaced color dynamic\r
320 200 16 0 noninterlaced color dynamic\r400 300 16 0 noninterlaced color dynam
ic\r512 384 16 0 noninterlaced color dynamic\r640 480 16 0 noninterlaced color d
ynamic\r1024 768 16 0 noninterlaced color dynamic\r800 600 8 0 noninterlaced col
or dynamic\r320 200...,00fae148 dynamic) ret=00fa226f
000e:Ret  kernel32.lstrcatA() retval=00fb0420 ret=00fa226f
000e:Call user32.EnumDisplaySettingsA(,0012,0034f734) ret=00fa20ce
000e:Call winex11.drv.EnumDisplaySettingsEx(,0012,0034f548,)
ret=7ec4bcde
000e:Ret  winex11.drv.EnumDisplaySettingsEx() retval= ret=7ec4bcde
000e:Ret  user32.EnumDisplaySettingsA() retval= ret=00fa20ce
000e:Call kernel32.GetTickCount() ret=00459289
000e:Ret  kernel32.GetTickCount() retval=0002bc87 ret=00459289
000e:Call kernel32.GetTickCount() ret=0049b7c4
000e:Ret  kernel32.GetTickCount() retval=0002bc87 ret=0049b7c4
000e:Call user32.PeekMessageA(0034fc58,,,,0001) ret=
0049b823
000e:Call winex11.drv.MsgWaitForMultipleObjectsEx(,,,000
004ff,) ret=7ec34c3b
000e:Ret  winex11.drv.MsgWaitForMultipleObjectsEx() retval=0102 ret=7ec34c3b
000e:Ret  user32.PeekMessageA() retval= ret=0049b823
000e:Call user32.GetAsyncKeyState(001b) ret=0049b8ab
000e:Call winex11.drv.GetAsyncKeyState(001b) ret=7ec16bb3
000e:Ret  winex11.drv.GetAsyncKeyState() retval= ret=7ec16bb3
000e:Ret  user32.GetAsyncKeyState() retval= ret=0049b8ab
000e:Call user32.GetAsyncKeyState(0011) ret=0049b8b4
000e:Call winex11.drv.GetAsyncKeyState(0011) ret=7ec16bb3
000e:Ret  winex11.drv.GetAsyncKeyState() retval= ret=7ec16bb3
000e:Ret  user32.GetAsyncKeyState() retval= ret=0049b8b4
...
repeat above over and over forever.




Re: What to do about apps that require 256-color mode?

2007-01-02 Thread L. Rahyen
On Wednesday January 3 2007 06:22, Dan Kegel wrote:
 On 1/2/07, L. Rahyen [EMAIL PROTECTED] wrote:
   So what's Wine to do?  Can we somehow tell Wine
   to emulate 256 color mode for particular apps?
 
  You can try to launch game like this:
 
  wine explorer /desktop=Game,800x600 game.exe
 
  At least for me this simple trick helps sometimes.

 Thanks for the tip.  Doesn't help in this case, though.  The
 app sits in a loop, waiting forever for the screen to do something
 magic, I suppose.   +relay output appended for the curious.

Please file a bug report against this bug to bugzilla: 
http://bugs.winehq.org . If possible add link to demo-version of the game  
(if it is available of course).




Re: Uniscribe improvements

2007-01-02 Thread Jeff L

* * wrote:

If the device context is passed as NULL and Uniscribe needs to access
it for any reason, Uniscribe returns the error code E_PENDING. This
code is returned quickly, allowing the application to avoid
time-consuming SelectObject calls.

Whereas the current implementation will silently access an HDC even if
the application passed NULL, which means the application doesn't get a
chance to SelectObject the right font.
I have checked how this works by not selecting a font before the first 
ScriptShape.  The test run works as as specified and  Windows did not 
return E_PENDING in this case.  My reading of uniscribe is that its not 
too fussy about what fonts you use and accepts what ever the default is 
in the HDC.  The key thing is that once you have initialised a 
Script_Cache from a HDC then the font can't be changed cache.


Jeff