Re: Wine: DirectDraw over Direct3D

2005-12-13 Thread Raphael
On Tuesday 13 December 2005 21:43, Mike Hearn wrote:
> On Mon, 12 Dec 2005 21:11:44 +0100, Stefan Dösinger wrote:
> >  In Wine, there are 2 ways: The first is to use X calls, which is safe,
> > but slow.
>
> What makes you think that? X drawing primitives as well as XRender should
> be hardware accelerated even though they aren't OpenGL.

No, most of basic X primitives aren't not really hw accelerated 
XAA is inadequate for recent graphic cards (status  
http://wiki.x.org/wiki/XorgPerformance). For example, for texturing
most of primitives are based on software algorithms (and Mesa do it faster).
With EXA it's better but it's not perfect yet (improving little by little)

Regards,
Raphael



pgpdtlqcYUpua.pgp
Description: PGP signature



Regression in Wine on FreeBSD (DVD Shrink)

2005-12-13 Thread Travis Poppe
Hello All,

Lately I've been trying to track down a problem that prevents DVD Shrink 3.2 
from starting on FreeBSD in any version of Wine built on/after 04-20-2005 
(including the recent beta releases). Any version built prior to this works 
fine.

I've tracked the problem down to the changes made to x11drv/dib.c (and 
associated) on 04-20-2005. I'm not fluent in C; I merely found the problem 
through trial and error.

If I copy the x11drv/dib.c (and ntdll/, so the old dib.c will work) from 
04-18-2005 in place of the one introduced on the 20th, the problem disappears 
and DVD Shrink fires right up. Changing dib.c (and dib.c only) back to the 
20th snapshot re-introduces the problem, and DVD Shrink hangs again.

As I don't understand the code, I don't know how to detect where the problem 
really lies, as the dib.c changes may only be indirectly responsible. I am 
very willing to test for or aid anyone who wouldn't mind helping with this 
problem, however.

I have already contacted the author of the changes (dib.c and associated) and 
he suggested I try this list. If anyone would like to glance at the 
differences between the two files I've mentioned above, I have posted a diff 
here:

http://lickwid.net/~tlp/dib.c.diff

--- are the old and working changes
+++ are the new and broken changes

Any help would be greatly appreciated.

Thanks,
-- 
Travis Poppe
IRC: tlp @ irc.freenode.net




Re: WINE-NB.BLOCK

2005-12-13 Thread Rüdiger Koerschulte

> Hello,
>
> I`m sorry,  but my English is not so good, but I`m trying to get an answer
> about:
>
> I have installed SUSE 10.0, then WINE and then WINETOOLS. and the IE6. Now,
> when I press the key comma, on the numeric-block, I get the remove
> function. When I press die remove function an the cursor-block, I get a
> comma.
>
> The function is always the same. It is the same when I put the
> numeric-block on or off.
>
>  How I can get a comma on the right key?
>
> Thank you for your understanding for my schoolenglish!
>
> Rüdiger




Re: gethostbyname(my_name) and IL2-Sturmovik

2005-12-13 Thread David Nolden
Am Dienstag, 13. Dezember 2005 20:14 schrieb Juan Lang:
>  I still think David's patch could use some work,

What's wrong with the new version?

Greetings, David




Re: Wine: DirectDraw over Direct3D

2005-12-13 Thread Mike Hearn
On Mon, 12 Dec 2005 21:11:44 +0100, Stefan Dösinger wrote:
>  In Wine, there are 2 ways: The first is to use X calls, which is safe, but 
> slow.

What makes you think that? X drawing primitives as well as XRender should
be hardware accelerated even though they aren't OpenGL.





Re: Problems generating c++ project since wine 0.9.3

2005-12-13 Thread Sergio
Vincent Béron wrote:

>> Is there something that I am misisng when generating this project? Or is
>> this a known issue?
> 
> Known problem (caused then fixed by me).
> The fix was committed after 0.9.3, and is the patch available from
>
http://source.winehq.org/git/?p=wine.git;a=commitdiff_plain;h=fe987b303581740cb96231a9abc42987473451db;hp=2b4377f5eb0a8b11484e4f053f9dbcf765c5a32d
> 
> Vincent

Thank you, the patch solved the problem.





Create new mailing list wine-isv?

2005-12-13 Thread Dan Kegel
I used to hate the term ISV (Independent Software Vendor) since
it sounded so acronymy compared to 'developer', but it's
very commonly used in the industry to refer to outfits which
are trying to write and sell off-the-shelf software -- and
as monkey-boy said, Microsoft is where it is partly because
it worked hard to attract and support those guys.

So I've been thinking about how to attract more Windows ISVs
to test, support, and promote their apps on Linux with Wine.

Part of the problem is a lack of high-level documentation specifically
aimed at the
ISV.  Another is ISVs getting lost in the shuffle on wine-users
or wine-devel.

I've made a start at the documentation (http://kegel.com/wine/isv),
and hope to move that to winehq at some point.
Now I'd like to create a discussion forum for ISVs where
they will feel more comfortable; the level of discussion
would be halfway between that in wine-users and wine-devel,
but aimed more at Windows developers than people who are
familiar with Linux.
How about we create a new mailing list, wine-isv, aimed squarely
at ISVs and the Wine community members who want to
help them?

Thanks,
Dan
--
Wine for Windows ISVs: http://kegel.com/wine/isv




[wined3d] Converting Wined3d to use WGL instead of GLX

2005-12-13 Thread Aric Cyr
Hello all,

As I mentinoed in a recent post, I have almost completed the GLX->WGL
conversion.  Last night I tracked down my last bug that was causing most of my
demo apps to fail.  

It seems that the problem was the conversion from glXGetProcAddress to using
wglGetProcAddress.  wined3d uses glXGetProcAddress to get the OpenGL extension
function pointers, which is what wglGetProcAddress also does.  However
wglGetProcAddress _first_ checks opengl32.dll for the extension and returns the
thunk function pointer if it exists, and only then falls back to libGL.so by
calling glXGetProcAddress.

So now I am stuck...  if I use wglGetProcAddress for OpenGL extensions I get
crashes in most D3D9 applications.  If I use glXGetProcAddress in wined3d
everything works fine, but then wined3d is still dependent on glx.

So my questions:

1) should the thunks returned from wglGetProcAddress be causing crashes at all? 
 
   Note that they don't crash right away, but "eventually" usually during a 
call 
   to glDrawArrays it seems (after a call to glSecondaryColor3fEXT).

2) what is the reason for wglGetProcAddress to check opengl32.dll before 
   libGL.so? Would the reverse logic still be a resonable solution?

Regards,
  Aric





Re: Can't install mdac at all now

2005-12-13 Thread Dan Kegel
On 12/13/05, Raphael <[EMAIL PROTECTED]> wrote:
> Hi Dan,
> my patch haven't been commited so it doesn't work

I think you misunderstand.  There's been a regression.  Things are
worse than before, even with your patch not applied before or after;
your patch was to unpack the cabs, but they don't even get copied now,
let alone unpacked.

> Markus is working on a better implementation

Any ETA?  I guess I'll stop worrying, if he's going to get that area
working, he'll fix this regression anyway.
- Dan

--
Wine for Windows ISVs: http://kegel.com/wine/isv




Re: question regarding FindWindow

2005-12-13 Thread Rob Shearman

Marcus Meissner wrote:


Hi,

While debugging Google Earth I see hangs in FindWindow...

Apparently the 
   if (GetWindowTextW( list[i], buffer, len + 1 ) && !strcmpiW( buffer, title )) break;

call hangs on the server... But how is this possible?

+win,+server snippet:

trace:win:RedrawWindow 0x10020 whole window flags: RDW_INVALIDATE RDW_ERASE
0009: redraw_window( window=0x10020, flags=0005, region={} )
0009: redraw_window() = 0
trace:win:RedrawWindow 0x10020 whole window flags: RDW_INVALIDATE RDW_ERASE
0009: redraw_window( window=0x10020, flags=0005, region={} )
0009: redraw_window() = 0
0009: get_window_children( parent=0x10020, atom=, tid= )
0009: get_window_children() = 0 { count=3, children={0x10026,0x10024,0x10022} }
fixme:win:WIN_FindWindow before getwindowtext
fixme:win:WIN_FindWindow after getwindowtext
fixme:win:WIN_FindWindow before getwindowtext
0009: send_message( id=0010, type=1, flags=0, win=0x10024, msg=000d, 
wparam=0023, lparam=55937970, x=0, y=0, time=10a4, info=00
00, timeout=0, callback=(nil), data={} )
0009: send_message() = 0
0009: get_msg_queue( )
0009: get_msg_queue() = 0 { handle=0x148 }
0009: set_queue_mask( wake_mask=8040, changed_mask=8040, skip_wait=1 )
0009: set_queue_mask() = 0 { wake_bits=, changed_bits= }
0009: select( flags=4, cookie=0x55c1f6f8, signal=(nil), timeout=0, 
handles={0x148,0x80} )
0009: select() = PENDING
*hang*

What debug to enable and what to look at?
 



Look at why the message loop for 0x10024 doesn't process the message. 
This may be one of the things that Windows handles in the server rather 
than sending messages to each window.


Rob




Re: WLDAP32: link to the reentrant version of libldap

2005-12-13 Thread Robert Reif

Hans Leidekker wrote:


The configure check somehow needs -lpthread on Fedora based systems but
Wine's build system links wldap32 to libldap_r without it just fine.

Adding -lphtread to the configure check doesn't seem to cause any trouble
on my Debian based Ubuntu either (where it isn't needed). I suspect it's
a problem with the (newer) autoconf tools in Fedora.

-Hans

Changelog
 Link to the reentrant version of libldap.
 




f891a05d34c03c99b3476dea041cca3f9e06cc09
diff --git a/configure.ac b/configure.ac
index a834d40..4b9a0f2 100644
--- a/configure.ac
+++ b/configure.ac
@@ -542,15 +542,20 @@ then
fi

dnl  Check for OpenLDAP ***
+saved_libs="$LIBS"
+LIBS="$LIBS $LIBPTHREAD"
+
AC_SUBST(LDAPLIBS,"")
if test "$ac_cv_header_ldap_h" = "yes" -a "$ac_cv_header_lber_h" = "yes"
then
-AC_CHECK_LIB(ldap, ldap_initialize,
+AC_CHECK_LIB(ldap_r, ldap_initialize,
[AC_CHECK_LIB(lber, ber_init,
[AC_DEFINE(HAVE_LDAP, 1, [Define if you have the OpenLDAP 
development environment])
- LDAPLIBS="-lldap -llber"])])
+ LDAPLIBS="-lldap_r -llber"])])
fi

+LIBS="$saved_libs"
+
dnl  Check for FreeType 2 
AC_SUBST(FREETYPELIBS,"")
AC_SUBST(FREETYPEINCL,"")
 




 

This patch breaks builds on RH9 and appears to be responsible for the 
build breakage on http://www.astro.gla.ac.uk/users/paulm/WRT/wrt.php






Re: Can't install mdac at all now

2005-12-13 Thread Raphael
On Tuesday 13 December 2005 08:39, Dan Kegel wrote:
> Bug 3636 is worse now.
> http://bugs.winehq.org/show_bug.cgi?id=3636
> A few weeks ago, after mdac installer finished,
> I could go and unpack the installed cabs by hand.
> Now the installer aborts before it even copies the cabs.
> Bleah.
>
> --
> Wine for Windows ISVs: http://kegel.com/wine/isv

Hi Dan, 
my patch haven't been commited so it doesn't work

Markus is working on a better implementation

Regards,
Raphael 


pgpM3bmrkByej.pgp
Description: PGP signature



Re: Wine: DirectDraw over Direct3D

2005-12-13 Thread Raphael
On Tuesday 13 December 2005 09:28, Stefan Dösinger wrote:
> Am Dienstag, 13. Dezember 2005 04:25 schrieb Aric Cyr:
> > What is slow with ATI cards?  It seems that you should only need basic 3D
> > acceleration to do what you propose.  Is fglrx missing something that
> > would be required for 2D rendering?
>
> Texture upload is very slow. glReadPixels, glWritePixels and friends take
> ages.  That means that blt, Lock, and Unlock is really slow.
> There is some hope at least: Xine and Mplayer can play videos over OpenGL
> really fast, maybe we can find out how they do it.

for glReadPixels, glWritePixels
you can use the frame buffer object extension (or/with pbuffers) :)

Keep your Good work

> Stefan

Regards,
Raphael


pgpkar9FrUeHA.pgp
Description: PGP signature



Re: Problems generating c++ project since wine 0.9.3

2005-12-13 Thread Vincent Béron
Le dim 11/12/2005 à 19:43, Sergio a écrit :
> Hi all,
> 
> I've been having problems trying to compile one c++ project since latest
> wine version (0.9.3). This project compiled and worked fine with previous
> versions.
> 
> The error messages look like:
> /usr/include/wine/windows/unknwn.h:26: error: expected unqualified-id before
> ‘{’ token
> ...
> /usr/include/wine/windows/objidl.h:66: error: expected unqualified-id before
> ‘:’ token
> ...
> /usr/include/wine/windows/oaidl.h:553: error: expected unqualified-id before
> ‘:’ token
> ...
> /usr/include/wine/windows/propidl.h:287: error: expected unqualified-id
> before ‘:’ token
> ...
> /usr/include/wine/windows/oleidl.h:46: error: expected unqualified-id before
> ‘:’ token
> ...
> 
> Is there something that I am misisng when generating this project? Or is
> this a known issue?

Known problem (caused then fixed by me).
The fix was committed after 0.9.3, and is the patch available from
http://source.winehq.org/git/?p=wine.git;a=commitdiff_plain;h=fe987b303581740cb96231a9abc42987473451db;hp=2b4377f5eb0a8b11484e4f053f9dbcf765c5a32d

Vincent





question regarding FindWindow

2005-12-13 Thread Marcus Meissner
Hi,

While debugging Google Earth I see hangs in FindWindow...

Apparently the 
if (GetWindowTextW( list[i], buffer, len + 1 ) && !strcmpiW( buffer, title 
)) break;
call hangs on the server... But how is this possible?

+win,+server snippet:

trace:win:RedrawWindow 0x10020 whole window flags: RDW_INVALIDATE RDW_ERASE
0009: redraw_window( window=0x10020, flags=0005, region={} )
0009: redraw_window() = 0
trace:win:RedrawWindow 0x10020 whole window flags: RDW_INVALIDATE RDW_ERASE
0009: redraw_window( window=0x10020, flags=0005, region={} )
0009: redraw_window() = 0
0009: get_window_children( parent=0x10020, atom=, tid= )
0009: get_window_children() = 0 { count=3, children={0x10026,0x10024,0x10022} }
fixme:win:WIN_FindWindow before getwindowtext
fixme:win:WIN_FindWindow after getwindowtext
fixme:win:WIN_FindWindow before getwindowtext
0009: send_message( id=0010, type=1, flags=0, win=0x10024, msg=000d, 
wparam=0023, lparam=55937970, x=0, y=0, time=10a4, info=00
00, timeout=0, callback=(nil), data={} )
0009: send_message() = 0
0009: get_msg_queue( )
0009: get_msg_queue() = 0 { handle=0x148 }
0009: set_queue_mask( wake_mask=8040, changed_mask=8040, skip_wait=1 )
0009: set_queue_mask() = 0 { wake_bits=, changed_bits= }
0009: select( flags=4, cookie=0x55c1f6f8, signal=(nil), timeout=0, 
handles={0x148,0x80} )
0009: select() = PENDING
*hang*

What debug to enable and what to look at?

Ciao, Marcus




Re: PATCH: handle NULL XImage in GetBitmapBits

2005-12-13 Thread Marcus Meissner
On Tue, Dec 13, 2005 at 07:13:00PM +0100, Willie Sippel wrote:
> Am Dienstag, 13. Dezember 2005 11:42 schrieb Alexandre Julliard:
> > Marcus Meissner <[EMAIL PROTECTED]> writes:
> > > Changelog:
> > >   In GetBitmapBits() handle the correct bitmap information
> > >   when a DIB is used.
> >
> > I think for a DIB we want to copy the bits directly, like we already
> > do in SetBitmapBits. Does this work for you?
> >
> All three patches (yours and the two by Marcus) fix bug 4034... ;-)

Can also confirm that it fixes the issue.

Ciao, Marcus




Re: Can Wine run "sv.net classic"? Not at the moment :-(

2005-12-13 Thread Dan Kegel
On 12/13/05, Sven Paschukat <[EMAIL PROTECTED]> wrote:
> Dan Kegel schrieb:
> > MDAC-2.7sp1 is plenty for (most?) VB6 apps, and we definitely
> > want Wine to be able to run them sooner rather than later.
> > So I think this deserves fixing, and there's no need to delay.
>
> You can install MDAC and the most other Windows components via the
> Winetools:

That's nice, but it's not an acceptable resolution to the
problem.
Wine should be able to install MDAC without Winetools.

> Installing and running sv.net works fine here.

That's nice to hear, but we need sv.net to run without
"winetools".
- Dan



--
Wine for Windows ISVs: http://kegel.com/wine/isv




Re: Can Wine run "sv.net classic"? Not at the moment :-(

2005-12-13 Thread Sven Paschukat


Dan Kegel schrieb:

MDAC-2.7sp1 is plenty for (most?) VB6 apps, and we definitely
want Wine to be able to run them sooner rather than later.
So I think this deserves fixing, and there's no need to delay.
- Dan


You can install MDAC and the most other Windows components via the 
Winetools:

http://www.von-thadden.de/Joachim/WineTools/

Installing and running sv.net works fine here.

Sven





Re: gethostbyname(my_name) and IL2-Sturmovik

2005-12-13 Thread Juan Lang
Hi Pavel,

> And on the other side, try to query a DNS server for "localhost".
> Every DNS server should immediately return 127.0.0.1, it's RFC
> compliance requirement.

Just to be clear, we're not talking about gethostbyname("localhost"). 
We're talking about gethostbyname(the_name_of_my_machine).  In Windows,
this returns your external address.  See the following sample code which
demonstrates this:
http://tangentsoft.net/wskfaq/examples/ipaddr.html

On Linux, at least for me, I get only 127.0.0.1 for my hostname (juandell,
when I'm running on this laptop.)  If I were to have this name registered
with DNS, and if I were to ask a DNS server for the address of it, I
wouldn't get 127.0.0.1, of course.

But we're not talking about DNS anyway.  We're talking about winsock's
gethostbyname function.  Wine's implementation isn't correct, since it
doesn't match Windows.  I still think David's patch could use some work,
but let's not argue about whether its behaviour is correct: matching
Windows is what we're obliged to do.

--Juan

__
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 




A DirectX ToDo

2005-12-13 Thread Tom Wickline
Hello Everyone,

I've just posted a first draft of a DirectX ToDo on the Wiki :
http://wiki.winehq.org/DirectX-ToDo?action=show

Feedback, Comments, Suggestions are welcome.

Cheers,

Tom




cross-compile error

2005-12-13 Thread Steven Edwards
Hi,
When doing Cross-Compiles I am seeing this error

../../include/wine/exception.h:142: error: parse error before "sigjmp_buf"
../../include/wine/exception.h:142: warning: no semicolon at end of
struct or union
../../include/wine/exception.h:146: error: parse error before '}' token
../../include/wine/exception.h:146: warning: type defaults to `int' in
declaration of `__WINE_FRAME'
../../include/wine/exception.h:146: warning: data definition has no
type or storage class

It seems the detection of sigjmp longjmp is busted for
cross-compiling. I am using this patch locally but don't know how to
properly fix it.

Index: include/wine/exception.h
===
RCS file: /home/wine/wine/include/wine/exception.h,v
retrieving revision 1.26
diff -u -r1.26 exception.h
--- include/wine/exception.h1 Sep 2004 17:36:04 -   1.26
+++ include/wine/exception.h13 Dec 2005 18:03:58 -
@@ -139,7 +139,7 @@
 /* finally data */
 __WINE_FINALLY finally_func;
 } u;
-sigjmp_buf jmp;
+jmp_buf jmp;
 /* hack to make GetExceptionCode() work in handler */
 DWORD ExceptionCode;
 const struct __tagWINE_FRAME *ExceptionRecord;


--
Steven Edwards - ReactOS and Wine developer

"There is one thing stronger than all the armies in the world, and
that is an idea whose time has come." - Victor Hugo




Re: gethostbyname(my_name) and IL2-Sturmovik

2005-12-13 Thread Pavel Troller
Hi!
> 
> I think you are wrong. POSIX does not say that it's wrong to have the 
> computer name associated with 127.0.0.1 in /etc/hosts, and it doesn't say 
> that gethostbyname(my_name) should return a "real" IP. 
OK, but it also doesn't explicitly state that gethostbyname(my_name) may
return 127.0.0.1, so it's just neutral :-).
> If I remember 
> correctly, though, Microsoft, specifies that gethostbyname(my_name) 
> *should* return real IP.
I don't know M$ standards, sorry, cannot comment on this.
> 
> This subtle difference means that Wine must take extra care. Fetching a 
> real IP on a UNIX host is not trivial, but doable.
> 
Yes, it is.

BUT:
  man 5 hosts tells that:
  
  "The  Berkeley  Internet Name Domain (BIND) Server implements the Internet 
name server for UNIX systems. It aug­
   ments or replaces the /etc/hosts file or host name lookup, and frees a host 
from relying on /etc/hosts being up
   to date and complete."
  
  So it seems to imply that the DNS info is currently an authoritative source
for host name queries. Of course everybody knows it, I'm just making note of
it to support my following question:
  Did you ever see in the real world that a DNS server would return 127.0.0.1
as a response to a regular host name query ? I think not. 
  And on the other side, try to query a DNS server for "localhost". Every DNS
server should immediately return 127.0.0.1, it's RFC compliance requirement.
  Isn't it logical to keep the host table coherent with DNS ? Or are you happy
that in case your DNS server fails you get totally different results ?
  
  Of course I cannot argue more. It's just about the administrator's personal
style and knowledge. I'm maintaining and administering Unix systems from 1985,
long before Linux was born, and I would never allow such a thing in my host
table. But if the current distro maintainers are of another view, I will not
do anything against it. It's just about Open Source freedom: I will remove that
patch from wine for me, and that's it :-). 

With regards, Pavel Troller




Re: Latest winetest (20051212) issue on WinXP

2005-12-13 Thread Joris Huizer

Paul Vriens wrote:

Hi,

I've just noticed that during the running of winetest.exe windows
creates a nice desktop stating that 'Active Desktop' is stopped because
an unexpected error occurred.

Anyone?

Paul.



Send them a bugreport ;)




Re: WINED3D / D3D9: SetVertexShader & SetPixelShader should not change the shader's refcount

2005-12-13 Thread H. Verbeet
> The best thing to do is add an internal reference instead of referencing the 
> parent. e.g.
> if (pShader != NULL) {
> IWineD3DVertexShader_AddRef(pShader);
> }
> if (oldShader != NULL) {
> IWineD3DVertexShader_Release(oldShader);
> }
Is that reference really needed?




Re: WINED3D / D3D9: SetVertexShader & SetPixelShader should not change the shader's refcount

2005-12-13 Thread Oliver Stieber

--- "H. Verbeet" <[EMAIL PROTECTED]> wrote:

> SetVertexShader & SetPixelShader should not change the shader's
> refcount. Verified on win2k, DirectX 9.0c.
> 
> Changelog:
>   - Don't change the shader's refcount in SetVertexShader & SetPixelShader
> > 26c6ae144c6f7e40f7a7c6e3059851819ecf
> diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
> index c3a7f9c..a9c253f 100644
> --- a/dlls/wined3d/device.c
> +++ b/dlls/wined3d/device.c
> @@ -3761,7 +3761,6 @@ HRESULT WINAPI IWineD3DDeviceImpl_GetVer
>  
>  HRESULT WINAPI IWineD3DDeviceImpl_SetVertexShader(IWineD3DDevice *iface, 
> IWineD3DVertexShader*
> pShader) {
>  IWineD3DDeviceImpl *This = (IWineD3DDeviceImpl *)iface;
> -IWineD3DVertexShader *oldShader = This->updateStateBlock->vertexShader;
>  
>  This->updateStateBlock->vertexShader = pShader;
>  This->updateStateBlock->changed.vertexShader = TRUE;
> @@ -3772,20 +3771,7 @@ HRESULT WINAPI IWineD3DDeviceImpl_SetVer
>  return D3D_OK;
>  }
>  
> -if (pShader != NULL) {
> -IUnknown *newVertexShaderParent;
> -/* GetParent will add a ref, so leave it hanging until the vertex 
> buffer is cleared */
> -TRACE("(%p) : setting pShader(%p)\n", This, pShader);
> -IWineD3DVertexShader_GetParent(pShader, &newVertexShaderParent);
> -} else {
> -TRACE("Clear down the shader\n");
> -}
> -if (oldShader != NULL) {
> -IUnknown *oldVertexShaderParent;
> -IWineD3DVertexShader_GetParent(oldShader, &oldVertexShaderParent);
> -IUnknown_Release(oldVertexShaderParent);
> -IUnknown_Release(oldVertexShaderParent);
> -}
> +TRACE("(%p) : setting pShader(%p)\n", This, pShader);



The best thing to do is add an internal reference e.g.
if (pShader != NULL) {
IWineD3DVertexShader_AddRef(pShader)
IWineD3DVertexShader_Release(oldShader)




___ 
NEW Yahoo! Cars - sell your car and browse thousands of new and used cars 
online! http://uk.cars.yahoo.com/




Re: WINED3D / D3D9: SetVertexShader & SetPixelShader should not change the shader's refcount

2005-12-13 Thread Oliver Stieber

--- "H. Verbeet" <[EMAIL PROTECTED]> wrote:

> SetVertexShader & SetPixelShader should not change the shader's
> refcount. Verified on win2k, DirectX 9.0c.
> 
> Changelog:
>   - Don't change the shader's refcount in SetVertexShader & SetPixelShader
> > 26c6ae144c6f7e40f7a7c6e3059851819ecf
> diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
> index c3a7f9c..a9c253f 100644
> --- a/dlls/wined3d/device.c
> +++ b/dlls/wined3d/device.c
> @@ -3761,7 +3761,6 @@ HRESULT WINAPI IWineD3DDeviceImpl_GetVer
>  
>  HRESULT WINAPI IWineD3DDeviceImpl_SetVertexShader(IWineD3DDevice *iface, 
> IWineD3DVertexShader*
> pShader) {
>  IWineD3DDeviceImpl *This = (IWineD3DDeviceImpl *)iface;
> -IWineD3DVertexShader *oldShader = This->updateStateBlock->vertexShader;
>  
>  This->updateStateBlock->vertexShader = pShader;
>  This->updateStateBlock->changed.vertexShader = TRUE;
> @@ -3772,20 +3771,7 @@ HRESULT WINAPI IWineD3DDeviceImpl_SetVer
>  return D3D_OK;
>  }
>  
> -if (pShader != NULL) {
> -IUnknown *newVertexShaderParent;
> -/* GetParent will add a ref, so leave it hanging until the vertex 
> buffer is cleared */
> -TRACE("(%p) : setting pShader(%p)\n", This, pShader);
> -IWineD3DVertexShader_GetParent(pShader, &newVertexShaderParent);
> -} else {
> -TRACE("Clear down the shader\n");
> -}
> -if (oldShader != NULL) {
> -IUnknown *oldVertexShaderParent;
> -IWineD3DVertexShader_GetParent(oldShader, &oldVertexShaderParent);
> -IUnknown_Release(oldVertexShaderParent);
> -IUnknown_Release(oldVertexShaderParent);
> -}
> +TRACE("(%p) : setting pShader(%p)\n", This, pShader);



The best thing to do is add an internal reference instead of referencing the 
parent. e.g.
if (pShader != NULL) {
IWineD3DVertexShader_AddRef(pShader);
}
if (oldShader != NULL) {
IWineD3DVertexShader_Release(oldShader);
}




___ 
NEW Yahoo! Cars - sell your car and browse thousands of new and used cars 
online! http://uk.cars.yahoo.com/




Re: gethostbyname(my_name) and IL2-Sturmovik

2005-12-13 Thread David Nolden
@Peter
I'm attaching the patch I've written again, so everyone can find it. It tries 
to find out the public IP by walkind the Interfaces available through the 
Kernel.

@Pavel
I think that such a patch should be applied, Peter just said what I wanted to 
hear :-) 

Windows just acts different in this, and wine should act exactly the same. You 
can't expect every Linux-user to specially hand-write his /etc/hosts so that 
his windows-programs/games work. :)

greetings

Am Dienstag, 13. Dezember 2005 16:57 schrieb Peter Åstrand:
> On Tue, 13 Dec 2005, Pavel Troller wrote:
> >> 127.0.0.1  localhost.localdomain   localhost   Zwirch
> >
> >  Yes, I know that *MANY* well-known distros are wrong with /etc/hosts and
> > similar files..
> >
> >  I think that it is NOT GOOD to patch wine to fix this case; it behaves
> > absolutely correctly and all the problem should be solved by correctly
> > configuring your Linux networking. Please see any good document about
> > naming principles of network interfaces.
>
> I haven't followed the whole thread, so sorry if I've missed something
> obvious, but:
>
> I think you are wrong. POSIX does not say that it's wrong to have the
> computer name associated with 127.0.0.1 in /etc/hosts, and it doesn't say
> that gethostbyname(my_name) should return a "real" IP. If I remember
> correctly, though, Microsoft, specifies that gethostbyname(my_name)
> *should* return real IP.
>
> This subtle difference means that Wine must take extra care. Fetching a
> real IP on a UNIX host is not trivial, but doable.
>
> Instead of just fetching the IP by looking up the hostname, I suggest
> using the approach below instead. It will fail if there is no route to
> 192.168.1.1 (typically this means that you don't have a default gateway).
> When this happens, you can resolv the hostname as a fallback.
>
> #include 
> #include 
> #include 
> #include 
> #include 
>
> int main()
> {
>  int s, c, got_sockname = 0;
>  struct sockaddr_in serv_addr;
>  struct sockaddr_in my_addr;
>  char *my_ip;
>
>  serv_addr.sin_family = AF_INET;
>  serv_addr.sin_port = htons(1);
>  /* Even better: Use the server you will connect to */
>  inet_aton("192.168.1.1", &serv_addr.sin_addr);
>
>  s = socket (PF_INET, SOCK_DGRAM, 0);
>  if (s < 0) {
>  perror("socket");
>  exit(EXIT_FAILURE);
>  }
>
>  /* connect fails if if server is unreachable, for example */
>  if ((c = connect(s, (struct sockaddr*) &serv_addr, sizeof(serv_addr)))
> >= 0) { socklen_t my_addrlen;
>  my_addrlen = sizeof(my_addr);
>  if (getsockname(s, (struct sockaddr*)&my_addr, &my_addrlen) >= 0)
> { got_sockname = 1;
>  }
>  }
>
>  if (!got_sockname)
>  /* Use 127.0.0.1 as a fallback. Even better: Resolv the
> hostname.  */
>  inet_aton("127.0.0.1", &my_addr.sin_addr);
>
>  my_ip = inet_ntoa(my_addr.sin_addr);
>  printf("%s\n", my_ip);
>
>  return 0;
> }
>
> Regards,
Index: dlls/winsock/socket.c
===
RCS file: /home/wine/wine/dlls/winsock/socket.c,v
retrieving revision 1.203
diff -b -B -c -r1.203 socket.c
*** dlls/winsock/socket.c	12 Dec 2005 12:49:05 -	1.203
--- dlls/winsock/socket.c	13 Dec 2005 12:26:18 -
***
*** 2927,2932 
--- 2927,2991 
  return retval;
  }
  
+ 
+ /***
+  *		getpublicIP		(Internal)
+  *
+  *   Tries to guess the public IP-Adress by enumerating the available Interfaces
+  *   target needs to be a buffer with the maximum size given in "size"
+  */
+ 
+ 
+ BOOL getpublicIP(char* target,int size)
+ {
+ char buff[1024];
+ char buffer[1024];
+ struct ifconf ifc;
+ struct ifreq *ifr;
+ int skfd;
+ int i;
+ 
+ skfd = socket(AF_INET, SOCK_DGRAM, 0);
+ if (skfd < 0)
+ {
+ WARN("A socket could not be created");
+ return FALSE;
+ }
+ 
+ ifc.ifc_len = sizeof(buff);
+ ifc.ifc_buf = buff;
+ if (ioctl(skfd, SIOCGIFCONF, &ifc) < 0)
+ {
+ WARN("ioctl(SIOCGIFCONF) failed");
+ close(skfd);
+ return FALSE;
+ }
+ 
+ close(skfd);
+ 
+ ifr = ifc.ifc_req;
+ 
+ for (i = 0; i < ifc.ifc_len / sizeof(struct ifreq); i++)
+ {
+ struct sockaddr_in* addr=(struct sockaddr_in*)&ifr[i].ifr_addr;
+ unsigned char* ip = ((unsigned char*)&addr->sin_addr);
+ 		
+ if(strcmp(ifr[i].ifr_name,"lo")==0)continue;   /*Exclude loopback-device by Name "lo"*/
+ 		
+ if(ip[0]==127&&ip[1]==0&&ip[2]==0&&ip[3]==0)continue; /*Exclude 127.0.0.1*/
+ 		
+ sprintf(buffer,"%i.%i.%i.%i", (int)ip[0],(int)ip[1],(int)ip[2],(int)ip[3]);
+ 
+ if(size>strlen(buffer))strcpy(target,buffer);
+ 		
+ return TRUE;
+ }
+ 
+ return FALSE;
+ }
+ 
+ 
+ 
  /***
   *		

Re: Can Wine run "sv.net classic"? Not at the moment :-(

2005-12-13 Thread Dan Kegel
On 12/13/05, Marcus Meissner <[EMAIL PROTECTED]> wrote:
> MDAC also requires WGA, so we might need to reimplement it anyway first.

MDAC-2.7sp1 is plenty for (most?) VB6 apps, and we definitely
want Wine to be able to run them sooner rather than later.
So I think this deserves fixing, and there's no need to delay.
- Dan

--
Wine for Windows ISVs: http://kegel.com/wine/isv




Latest winetest (20051212) issue on WinXP

2005-12-13 Thread Paul Vriens
Hi,

I've just noticed that during the running of winetest.exe windows
creates a nice desktop stating that 'Active Desktop' is stopped because
an unexpected error occurred.

Anyone?

Paul.







Re: PATCH: handle NULL XImage in GetBitmapBits

2005-12-13 Thread Willie Sippel
Am Dienstag, 13. Dezember 2005 11:42 schrieb Alexandre Julliard:
> Marcus Meissner <[EMAIL PROTECTED]> writes:
> > Changelog:
> > In GetBitmapBits() handle the correct bitmap information
> > when a DIB is used.
>
> I think for a DIB we want to copy the bits directly, like we already
> do in SetBitmapBits. Does this work for you?
>
All three patches (yours and the two by Marcus) fix bug 4034... ;-)

Ciao,
Willie

-- 
Willie Sippel

    |  Tritium Studios
 // |  __
 ///|  http://www.tritium-studios.com

<[EMAIL PROTECTED]>




Re: gethostbyname(my_name) and IL2-Sturmovik

2005-12-13 Thread Peter Åstrand

On Tue, 13 Dec 2005, Pavel Troller wrote:


127.0.0.1   localhost.localdomain   localhost   Zwirch



 Yes, I know that *MANY* well-known distros are wrong with /etc/hosts and
similar files..


 I think that it is NOT GOOD to patch wine to fix this case; it behaves 
absolutely correctly and all the problem should be solved by correctly 
configuring your Linux networking. Please see any good document about 
naming principles of network interfaces.


I haven't followed the whole thread, so sorry if I've missed something 
obvious, but:


I think you are wrong. POSIX does not say that it's wrong to have the 
computer name associated with 127.0.0.1 in /etc/hosts, and it doesn't say 
that gethostbyname(my_name) should return a "real" IP. If I remember 
correctly, though, Microsoft, specifies that gethostbyname(my_name) 
*should* return real IP.


This subtle difference means that Wine must take extra care. Fetching a 
real IP on a UNIX host is not trivial, but doable.


Instead of just fetching the IP by looking up the hostname, I suggest 
using the approach below instead. It will fail if there is no route to 
192.168.1.1 (typically this means that you don't have a default gateway). 
When this happens, you can resolv the hostname as a fallback.


#include 
#include 
#include 
#include 
#include 

int main()
{
int s, c, got_sockname = 0;
struct sockaddr_in serv_addr;
struct sockaddr_in my_addr;
char *my_ip;

serv_addr.sin_family = AF_INET;
serv_addr.sin_port = htons(1);
/* Even better: Use the server you will connect to */
inet_aton("192.168.1.1", &serv_addr.sin_addr);

s = socket (PF_INET, SOCK_DGRAM, 0);
if (s < 0) {
perror("socket");
exit(EXIT_FAILURE);
}

/* connect fails if if server is unreachable, for example */
if ((c = connect(s, (struct sockaddr*) &serv_addr, sizeof(serv_addr))) >= 
0) {
socklen_t my_addrlen;
my_addrlen = sizeof(my_addr);
if (getsockname(s, (struct sockaddr*)&my_addr, &my_addrlen) >= 0) {
got_sockname = 1;
}
}

if (!got_sockname)
/* Use 127.0.0.1 as a fallback. Even better: Resolv the
   hostname.  */
inet_aton("127.0.0.1", &my_addr.sin_addr);

my_ip = inet_ntoa(my_addr.sin_addr);
printf("%s\n", my_ip);

return 0;
}

Regards,
--
Peter Åstrand   Chief Developer
Cendio  www.thinlinc.com
Teknikringen 3  www.cendio.se
583 30 LinköpingPhone: +46-13-21 46 00


Re: gethostbyname(my_name) and IL2-Sturmovik

2005-12-13 Thread Pavel Troller
> On 12/13/05, David Nolden <[EMAIL PROTECTED]> wrote:
> > @Pavel  Troller
> > I've checkt the /etc/hosts now. You were right, it says
> >
> > 127.0.0.1   localhost.localdomain   localhost   Zwirch
> >
> > (With Zwirch the Name of this Computer)
> >
> > But I can't just statically rewrite it, because I use DHCP. Also this is a
> > fresh Ubuntu-Install, so I'm surely not the only
> > Wine-User with such an /etc/hosts..
> >
> 
> This link may be of interest:
> http://lists.debian.org/debian-devel/2005/10/msg00387.html
> 
> Tom
> 
Hi!
  Yes, it uncovers even more problems with the /etc/hosts file on many
distributions (hey, I'm so happy that I'm maintaining my own private
distro, independently of all the "big players" on the market :-) ).
  However, your link talks mainly about localhost.localdomain. I am even more
strict and I'm saying that the host name also should not be there.
  And because I know that the host name should be assigned to EXACTLY ONE
network interface, it is a reason that in my distro, when there are no public
if's active, a dummy0 comes up and the host name is assigned to it. This if
holds an address DIFFERENT from localhost (192.168.0.1 is used as a
preconfigured default on a fresh install).
  Once more, please don't patch wine, it's evidently not its problem at all!
 
 With regards, Pavel Troller




Re: gethostbyname(my_name) and IL2-Sturmovik

2005-12-13 Thread Tom Wickline
On 12/13/05, David Nolden <[EMAIL PROTECTED]> wrote:
> @Pavel  Troller
> I've checkt the /etc/hosts now. You were right, it says
>
> 127.0.0.1   localhost.localdomain   localhost   Zwirch
>
> (With Zwirch the Name of this Computer)
>
> But I can't just statically rewrite it, because I use DHCP. Also this is a
> fresh Ubuntu-Install, so I'm surely not the only
> Wine-User with such an /etc/hosts..
>

This link may be of interest:
http://lists.debian.org/debian-devel/2005/10/msg00387.html

Tom




Re: gethostbyname(my_name) and IL2-Sturmovik

2005-12-13 Thread Pavel Troller
> @Pavel  Troller
> I've checkt the /etc/hosts now. You were right, it says 
> 
> 127.0.0.1 localhost.localdomain   localhost   Zwirch
> 
> (With Zwirch the Name of this Computer) 
> 
> But I can't just statically rewrite it, because I use DHCP. Also this is a 
> fresh Ubuntu-Install, so I'm surely not the only 
> Wine-User with such an /etc/hosts..
> 
Hi !
  Yes, I know that *MANY* well-known distros are wrong with /etc/hosts and
similar files..
  The trick is that specifying your hostname for localhost interface improves
Linux functionality in the case that there isn't other network interface
active. Otherwise, a plenty of services would not work locally. However, when
a real network interface comes up, it should be changed and moved to the line
with a real IP address, which is not so obvious in the real world...
  I think that it is NOT GOOD to patch wine to fix this case; it behaves
absolutely correctly and all the problem should be solved by correctly
configuring your Linux networking. Please see any good document about naming
principles of network interfaces.
   With regards, Pavel Troller
  




Re: gethostbyname(my_name) and IL2-Sturmovik

2005-12-13 Thread David Nolden
@Pavel  Troller
I've checkt the /etc/hosts now. You were right, it says 

127.0.0.1   localhost.localdomain   localhost   Zwirch

(With Zwirch the Name of this Computer) 

But I can't just statically rewrite it, because I use DHCP. Also this is a 
fresh Ubuntu-Install, so I'm surely not the only 
Wine-User with such an /etc/hosts..


@Juan
You're right, I've checked the patch and it indeed was ugly! But when I sent 
it I hadn't done the check under Windows, so I didn't know if the patch was 
generally useful, so I mainly ment it as a piece for discussion.(Also I 
didn't notice how ugly it really was ;)

I've cleaned it up a bit, closed the leak, and did a few other small tweaks so 
now the patch itself might be acceptable.

greetings, David

Am Dienstag, 13. Dezember 2005 07:04 schrieb Pavel Troller:
> > Ok, I've just checked doing the same thing under windows.
> >
> > The test(ripdaveno is the name of the Computer I tested on):
> >
> > {
> > ...
> > hostent* h = gethostbyname("ripdaveno");
> > char* str = inet_ntoa(*((in_addr*)h->h_addr_list[0]));
> > ...
> > }
> >
> > The string in str was "192.168.2.75" which is my Network IP-Adress.  With
> > wine(under Linux), as far as I've tested it, exactly the same code always
> > generates "127.0.0.1".
> >
> > Since Wine tries to simulate Windows as exactly as possible, this is
> > wrong. So, in my opinion this Patch is necessary. :-)
>
> Hi!
>   It's strange but there is no patch in this mail I can look at...
>   However, even more strange is that wine returns localhost address to
> you... Why ? I just tested Your testing code (just slightly modified to get
> it to compile) on both plain linux as well as in wine and in both cases it
> returns my real public IP. Isn't your Linux networking setup (/etc/hosts
> table) a bit wrong ? My one contains (arcus is my machine name)
>
> 127.0.0.1 localhost
> 195.39.17.7   arcus.sinus.cz arcus
>
>   I have already seen broken setups containing things like
>
> 127.0.0.1 localhost arcus
>
>   which is of course wrong.
>
>  Regards, Pavel Troller
Index: dlls/winsock/socket.c
===
RCS file: /home/wine/wine/dlls/winsock/socket.c,v
retrieving revision 1.203
diff -b -B -c -r1.203 socket.c
*** dlls/winsock/socket.c	12 Dec 2005 12:49:05 -	1.203
--- dlls/winsock/socket.c	13 Dec 2005 12:26:18 -
***
*** 2927,2932 
--- 2927,2991 
  return retval;
  }
  
+ 
+ /***
+  *		getpublicIP		(Internal)
+  *
+  *   Tries to guess the public IP-Adress by enumerating the available Interfaces
+  *   target needs to be a buffer with the maximum size given in "size"
+  */
+ 
+ 
+ BOOL getpublicIP(char* target,int size)
+ {
+ char buff[1024];
+ char buffer[1024];
+ struct ifconf ifc;
+ struct ifreq *ifr;
+ int skfd;
+ int i;
+ 
+ skfd = socket(AF_INET, SOCK_DGRAM, 0);
+ if (skfd < 0)
+ {
+ WARN("A socket could not be created");
+ return FALSE;
+ }
+ 
+ ifc.ifc_len = sizeof(buff);
+ ifc.ifc_buf = buff;
+ if (ioctl(skfd, SIOCGIFCONF, &ifc) < 0)
+ {
+ WARN("ioctl(SIOCGIFCONF) failed");
+ close(skfd);
+ return FALSE;
+ }
+ 
+ close(skfd);
+ 
+ ifr = ifc.ifc_req;
+ 
+ for (i = 0; i < ifc.ifc_len / sizeof(struct ifreq); i++)
+ {
+ struct sockaddr_in* addr=(struct sockaddr_in*)&ifr[i].ifr_addr;
+ unsigned char* ip = ((unsigned char*)&addr->sin_addr);
+ 		
+ if(strcmp(ifr[i].ifr_name,"lo")==0)continue;   /*Exclude loopback-device by Name "lo"*/
+ 		
+ if(ip[0]==127&&ip[1]==0&&ip[2]==0&&ip[3]==0)continue; /*Exclude 127.0.0.1*/
+ 		
+ sprintf(buffer,"%i.%i.%i.%i", (int)ip[0],(int)ip[1],(int)ip[2],(int)ip[3]);
+ 
+ if(size>strlen(buffer))strcpy(target,buffer);
+ 		
+ return TRUE;
+ }
+ 
+ return FALSE;
+ }
+ 
+ 
+ 
  /***
   *		gethostbyname		(WS2_32.52)
   */
***
*** 2930,2937 
--- 2989,3000 
  /***
   *		gethostbyname		(WS2_32.52)
   */
+ 
  struct WS_hostent* WINAPI WS_gethostbyname(const char* name)
  {
+ char myname[1000];
+ struct in_addr newaddr;
+ 
  struct WS_hostent *retval = NULL;
  struct hostent* host;
  #ifdef  HAVE_LINUX_GETHOSTBYNAME_R_6
***
*** 2941,2946 
--- 3004,3012 
  int locerr = ENOBUFS;
  #endif
  char buf[100];
+ 
+ gethostname(myname,(size_t)1000);
+ 
  if( !name) {
  name = buf;
  if( gethostname( buf, 100) == -1) {
***
*** 2961,2969 
  #else
  EnterCriticalSection( &csWSgetXXXbyYYY );
  host = gethostbyname(name);
  if (!host) SetLastError((h_errno < 0) ? wsaErrno() : wsaHerrno(h_errno));
  #endif
! if 

Re: BUG (3920) + sync between DIBs and X Server optimisation. (please help)

2005-12-13 Thread Marinescu-Ghetau Iulian
Yeah, i also belive putting the modifying rect in Coerce is better, when i 
first made the changes i just wanted to modify as little as possible and add 
things without modifying the already existing code too much, keeping it 
clean. I also belive i am doing something wrong:


I noticed that in X11DRV_DIB_CopyDIBSection() function created to optimise 
bitblt(), the sync is done this way:


   X11DRV_DIB_DoCopyDIBSection(physBitmap, FALSE, colorMap, nColorMap,
physDevDst->drawable, xSrc, ySrc,
   physDevDst->org.x + xDest, physDevDst->org.y 
+ yDest,

width, height);

They take in consideration the (org.x,org.y) in the physical device! I don't 
understand too well what  a physical devise exactly is, and i was wondering 
if i am not mistaking when i sync like this in 
X11DRV_DIB_DoUpdateDIBSection():


   X11DRV_DIB_DoCopyDIBSection(physBitmap, toDIB,
   physBitmap->colorMap, physBitmap->nColorMap,
   physBitmap->pixmap, x, y, x, y,
   width, height);

and not taking in consideration the origins of the device?

Iulian


From: Robert Shearman <[EMAIL PROTECTED]>
To: Marinescu-Ghetau Iulian <[EMAIL PROTECTED]>
CC: wine-devel@winehq.org
Subject: Re: BUG (3920) + sync between DIBs and X Server optimisation. 
(please help)

Date: Mon, 12 Dec 2005 11:07:20 -0600

Marinescu-Ghetau Iulian wrote:

I came to the conclusion that the slowness in "Heroes IV" it has to do 
with
sync'ing lage bitmaps between application DIBs and X Server(see the log: 
http://bugs.winehq.org/attachment.cgi?id=1470&action=view ).


Also, a complete description of the bug is here: 
http://bugs.winehq.org/show_bug.cgi?id=3902


So i had this ideea that every GDI function could memorise the rectangle 
that is modifying, so each time a sync between DIB and X Server is needed, 
only a small part from the bitmap will get copied! I also made some 
changes to dib.c, bitblt.c and x11drv.h in "wine-0.9.2\dlls\x11drv" folder 
to implement my ideea, keeping backwards compatibility (if a DIB function 
doesn't set a valid rectangle for the bitmap that its modifying, the 
default values are taken - which is the entire bitmap)






- and finally, a GDI function calls it like this (for example bitblt):

   X11DRV_SetBoundRect(physDevDst->bitmap,xDst,yDst,width,height);
   X11DRV_CoerceDIBSection( physDevDst, DIB_Status_GdiMod, FALSE );
   if (physDevDst != physDevSrc)
   {
 X11DRV_SetBoundRect(physDevSrc->bitmap,xSrc,ySrc,width,height);
 X11DRV_CoerceDIBSection( physDevSrc, DIB_Status_GdiMod, FALSE );
   }



I think it would be better to make X11DRV_CoerceDIBSection take the 
parameters for a bounding rect, otherwise it is possible to forget a call 
to SetBoundRect and cause the DIB to not be updated.


--
Rob Shearman








Re: http headers reworking

2005-12-13 Thread Aric Stewart
How odd, I just applied only the patch i sent and rebuilt my tree and 
all the tests pass just fine for me. I will try with a totally clean 
tree but that will take a while to build.


I will ask you offline maybe for wininet logs to see where it is failing.
-aric


Alexandre Julliard wrote:


Aric Stewart <[EMAIL PROTECTED]> writes:

 


Redo how headers are handled.
eliminating the concept of Standard Headers and allow all headers to be 
added multiple times.

Allow querying of headers with an index to get the multiple headers.
Respect response vs request headers in HttpQueryInfo.
Add a number of tests to extensively test header adding and replacing.
All fixes for Picasa.
   



The tests don't work here:

http.c:1152: Test failed: Index was not incremented
http.c:1156: Test failed: Second Index Should Not Exist
http.c:1167: Test failed: Index was not incremented
http.c:1168: Test failed: incorrect string was returned(test2)
http.c:1173: Test failed: Index was not incremented
http.c:1177: Test failed: Third Header Should Not Exist
http.c:1187: Test failed: Index was not incremented
http.c:1188: Test failed: incorrect string was returned(test3)
http.c:1193: Test failed: Index was not incremented
http.c:1197: Test failed: Third Header Should Not Exist
http.c:1207: Test failed: Index was not incremented
http.c:1208: Test failed: incorrect string was returned(test3)
http.c:1213: Test failed: Index was not incremented
http.c:1217: Test failed: Third Header Should Not Exist
http.c:1227: Test failed: Index was not incremented
http.c:1228: Test failed: incorrect string was returned(test4)
http.c:1232: Test failed: Index was not incremented
http.c:1233: Test failed: incorrect string was returned(test4)
http.c:1236: Test failed: Third Header Should Not Exist
http.c:1244: Test failed: Index was not incremented
http.c:1245: Test failed: incorrect string was returned(test5)
http.c:1249: Test failed: Index was not incremented
http.c:1250: Test failed: incorrect string was returned(test5)
http.c:1253: Test failed: Third Header Should Not Exist
http.c:1261: Test failed: Index was not incremented
http.c:1262: Test failed: incorrect string was returned(test6)
http.c:1266: Test failed: Index was not incremented
http.c:1267: Test failed: incorrect string was returned(test6)
http.c:1270: Test failed: Third Header Should Not Exist
http.c:1278: Test failed: Index was not incremented
http.c:1279: Test failed: incorrect string was returned(test7)
http.c:1283: Test failed: Index was not incremented
http.c:1287: Test failed: Third Header Should Not Exist

 







Re: http headers reworking

2005-12-13 Thread Alexandre Julliard
Aric Stewart <[EMAIL PROTECTED]> writes:

> Redo how headers are handled.
> eliminating the concept of Standard Headers and allow all headers to be 
> added multiple times.
> Allow querying of headers with an index to get the multiple headers.
> Respect response vs request headers in HttpQueryInfo.
> Add a number of tests to extensively test header adding and replacing.
> All fixes for Picasa.

The tests don't work here:

http.c:1152: Test failed: Index was not incremented
http.c:1156: Test failed: Second Index Should Not Exist
http.c:1167: Test failed: Index was not incremented
http.c:1168: Test failed: incorrect string was returned(test2)
http.c:1173: Test failed: Index was not incremented
http.c:1177: Test failed: Third Header Should Not Exist
http.c:1187: Test failed: Index was not incremented
http.c:1188: Test failed: incorrect string was returned(test3)
http.c:1193: Test failed: Index was not incremented
http.c:1197: Test failed: Third Header Should Not Exist
http.c:1207: Test failed: Index was not incremented
http.c:1208: Test failed: incorrect string was returned(test3)
http.c:1213: Test failed: Index was not incremented
http.c:1217: Test failed: Third Header Should Not Exist
http.c:1227: Test failed: Index was not incremented
http.c:1228: Test failed: incorrect string was returned(test4)
http.c:1232: Test failed: Index was not incremented
http.c:1233: Test failed: incorrect string was returned(test4)
http.c:1236: Test failed: Third Header Should Not Exist
http.c:1244: Test failed: Index was not incremented
http.c:1245: Test failed: incorrect string was returned(test5)
http.c:1249: Test failed: Index was not incremented
http.c:1250: Test failed: incorrect string was returned(test5)
http.c:1253: Test failed: Third Header Should Not Exist
http.c:1261: Test failed: Index was not incremented
http.c:1262: Test failed: incorrect string was returned(test6)
http.c:1266: Test failed: Index was not incremented
http.c:1267: Test failed: incorrect string was returned(test6)
http.c:1270: Test failed: Third Header Should Not Exist
http.c:1278: Test failed: Index was not incremented
http.c:1279: Test failed: incorrect string was returned(test7)
http.c:1283: Test failed: Index was not incremented
http.c:1287: Test failed: Third Header Should Not Exist

-- 
Alexandre Julliard
[EMAIL PROTECTED]




Re: PATCH: handle NULL XImage in GetBitmapBits

2005-12-13 Thread Alexandre Julliard
Marcus Meissner <[EMAIL PROTECTED]> writes:

> Changelog:
>   In GetBitmapBits() handle the correct bitmap information
>   when a DIB is used.

I think for a DIB we want to copy the bits directly, like we already
do in SetBitmapBits. Does this work for you?

diff --git a/dlls/gdi/bitmap.c b/dlls/gdi/bitmap.c
index a0c6b25..5c2b6c3 100644
--- a/dlls/gdi/bitmap.c
+++ b/dlls/gdi/bitmap.c
@@ -307,6 +307,30 @@ LONG WINAPI GetBitmapBits(
 
 if (!bmp) return 0;
 
+if (bmp->dib)  /* simply copy the bits from the DIB */
+{
+DIBSECTION *dib = bmp->dib;
+const char *src = dib->dsBm.bmBits;
+DWORD max = dib->dsBm.bmWidthBytes * dib->dsBm.bmHeight;
+if (count > max) count = max;
+ret = count;
+if (!bits) goto done;
+
+if (bmp->dib->dsBmih.biHeight >= 0)  /* not top-down, need to flip 
contents vertically */
+{
+src += dib->dsBm.bmWidthBytes * dib->dsBm.bmHeight;
+while (count > 0)
+{
+src -= dib->dsBm.bmWidthBytes;
+memcpy( bits, src, min( count, dib->dsBm.bmWidthBytes ) );
+bits = (char *)bits + dib->dsBm.bmWidthBytes;
+count -= dib->dsBm.bmWidthBytes;
+}
+}
+else memcpy( bits, src, count );
+goto done;
+}
+
 /* If the bits vector is null, the function should return the read size */
 if(bits == NULL)
 {

-- 
Alexandre Julliard
[EMAIL PROTECTED]




Re: Wine: DirectDraw over Direct3D

2005-12-13 Thread Roderick Colenbrander

> > What is slow with ATI cards? Â It seems that you should only need basic
> 3D
> > acceleration to do what you propose. Â Is fglrx missing something that
> would
> > be required for 2D rendering?
> Texture upload is very slow. glReadPixels, glWritePixels and friends take 
> ages.  That means that blt, Lock, and Unlock is really slow.
> There is some hope at least: Xine and Mplayer can play videos over OpenGL 
> really fast, maybe we can find out how they do it.
> 
> Stefan

Indeed glReadPixels and glWritePixels might be slow using the Ati drivers
but  those calls weren't used for the texture uploading. For that purpose
just glTexImage2D / glTexSubImage2D calls were used. If texture uploading
was slow on the Ati drivers people would be unable to play games ;)

Roderick

-- 
GMX DSL-Flatrate 1 Jahr kostenlos* + WLAN-Router ab 0,- Euro*
Bis 31.12.2005 einsteigen! Infos unter: http://www.gmx.net/de/go/dsl




freetype and wine

2005-12-13 Thread Curro Amores

Hi:

I get everytime i want to display a report on my access97 app this error:

fixme:font:load_VDMX Failed to retreive vTable

Then the fonts of the report are displayed separated and bigger than on 
windows.


Somebody told me to install freetype new version.

I have installed the last version of freetype2 (9.8.3)

and it keeps on the same. Do i have to do something  for telling wine to use 
the new version of freetype?


Im using windows98 emulation in wine for this app.
Has it something to do that i have moved all windows xp ttf files to fonts 
fake directory??


Thanks all!






Re: Wine: DirectDraw over Direct3D

2005-12-13 Thread Stefan Dösinger
Am Dienstag, 13. Dezember 2005 04:25 schrieb Aric Cyr:
> What is slow with ATI cards?  It seems that you should only need basic 3D
> acceleration to do what you propose.  Is fglrx missing something that would
> be required for 2D rendering?
Texture upload is very slow. glReadPixels, glWritePixels and friends take 
ages.  That means that blt, Lock, and Unlock is really slow.
There is some hope at least: Xine and Mplayer can play videos over OpenGL 
really fast, maybe we can find out how they do it.

Stefan




Re: Can Wine run "sv.net classic"? Not at the moment :-(

2005-12-13 Thread Marcus Meissner
On Mon, Dec 12, 2005 at 11:51:44PM -0800, Dan Kegel wrote:
> http://www.heise.de/newsticker/meldung/67265 describes
> what looks like a nice opportunity for wine to prove
> itself.  German employers are required to send insurance
> information online.  There are two allowed methods:
> either a web page (which apparantly sucks), or a windows
> app called sv.net classic, available as a free download at
> http://www.itsg.de/svnet/
> 
> I tried installing it, but I didn't get past square one because
> the mdac installer is more busted than it used to be, at
> least on my machine.

MDAC also requires WGA, so we might need to reimplement it anyway first.

Ciao, Marcus