Re: dockFill problem
On 26/11/2010 01:51 μμ, Dan Kegel wrote: .bill wrote: I have the following problem in a .NET application. A form resides in a maximized MDI window. On startup the MDI gets maximized but the form is not although the dockFill property is set. Sounds interesting. If you're not already, please try the latest version of wine (1.3.7 or built from git). If the problem persists, please file a bug, and we'll give you suggestions about debugging there. If you can include the source and binary for a tiny program that demonstrates the problem, that would help greatly. - Dan Hi, Thanks for answering this. I am trying from latest git (as of yesterday). I am not sure I can do that (provide source and binary) but I will ask. As I said it is a .NET application. Since I am on the clock here I was hoping for a quick advice like (i.e. dockFill is honored in user32/win.c in the function blah blah and you can track it by WINEDEBUG=+magic,+dockFill) As I have already said in earlier questions the compatibility level of wine is simply amazing. From a fresh .wine prefix I can install net3.5, flash and the relevant application. The application loads flash files with a component called f_in_a_box. Everything works with minor problems like this and some bigger ones (transparency). So, all in all, simply amazing. Vassilis
dockFill problem
Hi everybody, I have the following problem in a .NET application. A form resides in a maximized MDI window. On startup the MDI gets maximized but the form is not although the dockFill property is set. Needless to say that it works on windows. 1) My question is how to debug this - What are the relevant wine debug channels? (+win) 2) What it should happen? Should the application get a maximization message that is missing? 3) Any idea / old patch I could try on wine? 4) Any workaround at the application level I could try to make the application run properly? Thanks .bill
Re: Transparent windows (with alpha channel)
On 04/11/2010 05:07 μμ, Roderick Colenbrander wrote: You would require ARGB visuals. Various drivers support them these days for desktop composition purposes. When I asked Alexandre about them a long time ago, he said we couldn't use them in Wine. I don't know why that was. Further even if we could use it, we would have to recreate the window upon this call since I don't think we would want to use ARGB by default. Thanks for the info. I wasn't aware of the proper terms (ARGB visual) to google properly. Is it possible to destroy and recreate a window under an application's nose without noticing during the call to UpdateLayeredWindowIndirect() and friends? Is there any other part of wine that is pulling such a trick (underlying window recreation)? And if we do that then the next stop is bitblt in order to implement the proper blending behaviour. Is that correct? May I ask about input transparency? Does X support that at all? .bill
Re: Transparent windows (with alpha channel)
On 03/11/2010 12:36 πμ, Vassilis Virvilis wrote: On 02/11/2010 02:12 πμ, Vincent Povirk wrote: It is probably a layered window, in which case the following functions in user32 are relevant: SetLayeredWindowAttributes, GetLayeredWindowAttributes, UpdateLayeredWindowIndirect, and UpdateLayeredWindow Most of user32 is implemented based on gdi32, wineserver, and winex11.drv. When you see USER_Driver in user32, that indicates a function in winex11.drv. So USER_Driver->pSetLayeredWindowAttributes is really X11DRV_SetLayeredWindowAttributes. Wine requires a compositing window manager to implement layered windows properly. It does not matter whether the window manager provides any 3D effects or uses opengl. Thank you very much for the directions. They certainly put me on the right track. Again thanks for the directions. The UpdateLayeredWindowIndirect implementation of wine only utilizes a global per window alpha value. After a little bit of research it looks like what I want is something called per-pixel alpha or per color alpha or blending with alpha channel. Does wine and/or X-Windows support something like this and if so where? My guess is in bitblit but any insightful comment is welcome. .bill
Re: Transparent windows
On 02/11/2010 02:12 πμ, Vincent Povirk wrote: It is probably a layered window, in which case the following functions in user32 are relevant: SetLayeredWindowAttributes, GetLayeredWindowAttributes, UpdateLayeredWindowIndirect, and UpdateLayeredWindow Most of user32 is implemented based on gdi32, wineserver, and winex11.drv. When you see USER_Driver in user32, that indicates a function in winex11.drv. So USER_Driver->pSetLayeredWindowAttributes is really X11DRV_SetLayeredWindowAttributes. Wine requires a compositing window manager to implement layered windows properly. It does not matter whether the window manager provides any 3D effects or uses opengl. Thank you very much for the directions. They certainly put me on the right track. WINEDEBUG=+win does the trick and shows relevant information. My application still displays black instead of transparent. I took the liberty and augment the trace message with the BLENDFUNCTION struct members like this --- a/dlls/user32/win.c +++ b/dlls/user32/win.c @@ -3531,7 +3531,7 @@ BOOL WINAPI UpdateLayeredWindowIndirect( HWND hwnd, const UPDATELAYEREDWINDOWINF } if (info->pblend && !(info->dwFlags & ULW_OPAQUE)) alpha = info->pblend->SourceConstantAlpha; -TRACE( "setting window %p alpha %u\n", hwnd, alpha ); +TRACE( "setting window %p alpha %u BlendOp %u, BlendFlags %x SourceConstantAlpha %u AlphaFormat %x \n", hwnd, alpha, info->pblend->BlendOp, info->pblend->BlendFlags, info->pblend->SourceConstantAlpha, info->pblend->AlphaFormat); USER_Driver->pSetLayeredWindowAttributes( hwnd, info->crKey, alpha, info->dwFlags & (LWA_ALPHA | LWA_COLORKEY) ); return TRUE; and I got output like this trace:win:UpdateLayeredWindowIndirect setting window 0x10060 alpha 255 BlendOp 0, BlendFlags 0 SourceConstantAlpha 255 AlphaFormat 1 The BLENDFUNCTION structure is documented in MSDN http://msdn.microsoft.com/en-us/library/dd183393%28VS.85%29.aspx and is defined in include/wingdi.h So from MSDN BlendOp = 0 == AC_SRC_OVER (the only option) BlendFlags = 0 (the only option) SourceConstantAlpha = 255 = 0xff AlphaFormat = 1 == AC_SRC_ALPHA (the only option) then the documentation branches depending on if the SourceConstantAlpha is 0xff or not, if there is source alpha if there is destination alpha. Just to be sure I hardcoded another value for SourceConstantAlpha and I did get some kind of transparency but not the right kind :-( Is it possible that wine's implementation has a bug in the alpha blending handling in some subcase? It is late now. I will hunt it down some more tomorrow. .bill
Transparent windows
Hi everybody, I am trying to run a pretty complex dotnet (3.5) app which renders flash contents via flash in a box http://www.f-in-box.com/ I have to say that congratulations are in order to everybody involved because the whole thing works remarkably well for such a complex amalgam of technologies and platforms. The problem I am trying to debug right now is that transparent windows comes out black in wine. So the question is: 1) What are the wine debug channels I have to turn on in order to understand what's happening? 2) Any ideas where the code responsible might be located (gdi, user32, wineserver)? 2a) Is it some window creation flag responsible for this? 2b) Is it X-Window dependent? Does it require OpenGL and 3D effects enabled? Thanks in advance .bill
Re: Wine & .NET app
On 07/09/2010 02:53 πμ, James McKenzie wrote: These appear to be .NET errors and it might be a good idea to look into using Mono and see if these 'go away'. What version of .NET does the program require? I tried it. I didn't mention it because I didn't want to clutter my first message. The application dies a similar death with gif and jpeg warnings and finally a color conversion error winetricks supports installation of Mono 2.x and is, for now, the best way to get the product installed. Yes, we are looking into including it into the Wine package or as an add-on (like the Gecko engine.) Mono supports 1.1, 2.0 and 3.0 very well and 3.5 somewhat (and maybe better than that.) .NET 3.5 will not install, due to .dll dependencies, on Wine as it stands today. winetricks managed to install dotnet 3 Vassilis
Re: Wine & .NET app
On 07/09/2010 02:02 πμ, Reece Dunn wrote: Googling the error indicates that it is coming from libjpeg: JMESSAGE(JERR_CONVERSION_NOTIMPL, "Unsupported color conversion request") thanks. You probably want the windowscodecs trace output to see where it is failing. 2) JpegDecoder_Frame_GetResolution doesn't look terribly difficult to implement. Am I completely misguided? Looking at the parameter names they indicate that the resolutions are in dots per inch (DPI), so that may complicate things a bit. As always, this will need test coverage. 3) URL_ParseUrl lives in in dlls/shwapi/url.c around 1979. The implementation looks fleshed enough. What is the problem? URL_ParseUrl is being passed a URL like "System.Xml" -- the function is not handling this as a valid URL. Here, tests will be needed to see how Windows behaves and the wine implementation should then be improved to cover that/those cases. 4) The GUID are referring to IManaged, IProvideClassInfo, IMarshal, IRpcOptions. What is the implementation scope of these? Looking at the fixme's -- fixme:ole:OLEPictureImpl_QueryInterface () -- those interfaces are being requested for and not found in the OLEPicture implementation. NOTE: A test case will need to be added for each of these to check if Windows actually implements those interfaces for the OLEPicture object. Something along the lines of: IUnknown *picture = ...; /* OLEPicture object from existing tests. */ IManaged * managed = NULL; HRESULT hr; int refcount; hr = picture->QueryInterface(&IID_IManaged, (void **)&managed); ok(hr == S_OK, "OLEPicture should support IManaged: expected S_OK, got 0x%08x\n", hr); IUnknown_AddRef(picture); refcount = IUnknown_Release(picture); ok(refcount == 2, "Expected there to be 2 references to OLEPicture, got %d\n", refcount); text_picture_managed(managed); /* test IManaged methods */ IUnknown_Release(managed); Here is the log: fixme:actctx:parse_manifest_buffer root element is L"asmv1:assembly", not Manifest parsing should support xmlns:name="..." qualifiers for elements as well as xmlns="..." qualifiers. This will need tests. Also thanks for the code dump. I will try to add that code as an OLE test and see what happens. I am a wine and git newbie so that may take while. One more question: Based on your experience what do you think is the first thing look after in order to move my application forward. I would say the color conversion problem and or the jpegDecoder_Frame_GetResolution... Vassilis
Wine & .NET app
Hi everybody, My name is Vassilis Virvilis and I am trying to get .net app to run under wine. The objective of the questions below is to determine what needs to be implemented in wine in order to support the app. So the app bring its window momentarily and then it crashes with a 'Unsupported color conversion request' How difficult to implement are the following error messages? 1) Where is the code that prints 'Unsupported color conversion request'. I can't find it 2) JpegDecoder_Frame_GetResolution doesn't look terribly difficult to implement. Am I completely misguided? 3) URL_ParseUrl lives in in dlls/shwapi/url.c around 1979. The implementation looks fleshed enough. What is the problem? 4) The GUID are referring to IManaged, IProvideClassInfo, IMarshal, IRpcOptions. What is the implementation scope of these? Here is the log: fixme:actctx:parse_manifest_buffer root element is L"asmv1:assembly", not fixme:sync:CreateMemoryResourceNotification (0) stub fixme:shell:URL_ParseUrl failed to parse L"Microsoft.VisualBasic" fixme:shell:URL_ParseUrl failed to parse L"System" fixme:shell:URL_ParseUrl failed to parse L"System.Windows.Forms" fixme:shell:URL_ParseUrl failed to parse L"System.Drawing" fixme:shell:URL_ParseUrl failed to parse L"System.Runtime.Remoting" fixme:shell:URL_ParseUrl failed to parse L"System.Configuration" fixme:shell:URL_ParseUrl failed to parse L"System.Xml" fixme:shell:URL_ParseUrl failed to parse L"mscorlib.resources" fixme:shell:URL_ParseUrl failed to parse L"mscorlib.resources" fixme:shell:URL_ParseUrl failed to parse L"System.Drawing.resources" fixme:shell:URL_ParseUrl failed to parse L"System.Drawing.resources" fixme:gdiplus:GdipGetFamilyName No support for handling of multiple languages! fixme:shell:URL_ParseUrl failed to parse L"LMA.resources" fixme:shell:URL_ParseUrl failed to parse L"LMA.resources" fixme:shell:URL_ParseUrl failed to parse L"LMA.resources" fixme:gdiplus:GdipCreateHalftonePalette stub fixme:shell:URL_ParseUrl failed to parse L"System.Xml.XmlSerializers" fixme:shell:URL_ParseUrl failed to parse L"LMA.resources" fixme:wincodecs:JpegDecoder_Frame_GetResolution (0x16d2dc,0x32dd48,0x32dd40): stub fixme:shell:URL_ParseUrl failed to parse L"LMA.resources" fixme:ole:OLEPictureImpl_QueryInterface () : asking for un supported interface {c3fcc19e-a970-11d2-8b5a-00a0c9b7c9c4} fixme:ole:OLEPictureImpl_QueryInterface () : asking for un supported interface {b196b283-bab4-101a-b69c-00aa00341d07} fixme:ole:OLEPictureImpl_QueryInterface () : asking for un supported interface {0003---c000-0046} fixme:ole:OLEPictureImpl_QueryInterface () : asking for un supported interface {0144---c000-0046} fixme:wincodecs:JpegDecoder_Frame_GetResolution (0x1a9924,0x32de38,0x32de30): stub Unsupported color conversion request Thanks in advance Vassilis Virvilis
Re: Looking for programmator to complete Direct3D 9.0c with GLSL in the Wine
Mirek wrote: Hi, I am not so good at programming in C, but I would like to be perfectly working in Direct3D 9.0c in the Wine. I dont know how much work is on so if someone cold told me how far is the complementation of the Direct3D 9.0c support in the Wine? Here is the offer for everyone: The aim is to prepare all apps below working under the Windows on Nvidia GF 6XXX series, with at least 50% of speed in WinXP. There is not needed sound after merging those patches in cvs main head. I offer 1 000 Euro or 1 200 dollars for this work. 3DMark 2003 3DMark 2005 3DMark 2006 CoD 2 NFS MW NFS Carbon ES IV Oblivion Please, contact me or send this to another person you would think could do it. Mirek Slugen Czech Republic There are some companies that are specialized into these kind of collective payements. I haven't used any so I can't comment about the quality of their services. Some links... http://www.rentacoder.com/RentACoder/default.asp http://fundable.org/ I am sure there are more... .bill
Re: Copy protection
Mike McCormack wrote: Tim Schmidt wrote: It sounds like a general framework for routing these kind of raw disk i/o would be useful... probably configurable by app would be most useful. UML has a COW (copy-on-write) layer [1]. If we had something like this, conceivable we could allow Wine to read raw disks (or the COW file), then write back to the COW file. It would be even nicer if the Linux kernel supported that in a general way... Mike [1] http://user-mode-linux.sourceforge.net/UserModeLinux-HOWTO-7.html How about a loopback device in linux? .bill
Re: Valgrind warning cleanup...
Dan Kegel wrote: On 5/13/06, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote: I know this kind of errors from working on GNU Parted with Valgrind, and my policy is to leave the code alone when I can't spot why it should be wrong. I strongly advise against doing otherwise. I'll buy that. That's why I sent the note to wine-devel instead of wine-patches. There's another valgrind warning that is much more understandable, and I'm sending an obvious fix for it to wine-patches. (My first patch missed one instance, so I'm resending.) I'd appreciate it if you could check that one, too. - Dan For errors like these valgrind has a feature that records them (the errors) and allows you to put them somewhere so they get excluded from future runs. I have never done it though so I don't know if the feature works as advertised but for sure I have been tempted enough by the various ld/dlopen issues to start me reading the man page. .bill
Re: WSH, WMI scripts
Sreenivas Tatti wrote: Hi Mike, You could have understood my requirement. I am looking at WINE to get this thing done. If not supported in WINE, then what other possible way, I can achieve this. I have to do some windows registry modifications and start/stop/query about windows services from a Linux box. I have to remotely install my agent on a windows box. That is my goal. Thanks in anticipation. With regards, Sreenivas It is absolutely unrelated to wine and completely off topic but since you asked why don't you install cygwin to the remote machines and do the staff you want to do with ssh and some local scripting. I mean if you can do it from a dos prompt, ok a cmd prompt, then you have to be able to do it with a ssh connection remotely and in a secure manner too. http://pigtail.net/LRP/printsrv/cygwin-sshd.html .bill
Re: Software patents
gslink wrote: Borland probably doesn't even realize that Wine exists although some of the people in Borland are probably very familiar with it. I think you will find this to be true of all big software companies such as IBM and Microsoft. IRC borland had a delphi for linux named kylix which if I remember correctly used wine. They had 2 sets of widgets, native and qt classes to ease development and porting. Here is the article. It also mentions codeweavers... Really old news. http://open.itworld.com/4907/IW010305tckylix/page_1.html So it's not possible that they have never heard about wine before... .Bill