implement PS_USERSTYLE handling - obviously not correct ;)

Hans Breuer hans at breuer.org
Fri Apr 10 04:31:28 CDT 2009


Hi Daminan,
thanks for looking into this.
At 06.04.2009 15:03, Damian Dixon wrote:
> Hi Hans,
> 
> I have run the patch against my application and the line-styles draw as far
> as I can tell are the same as on Windows when a single line segment where
> the pixel width of one is used.
> 
> However when a polyline is drawn the dash style does not get drawn
> correctly. There seems to be an issue with repeat of the style when the
> pixel width of the line is increased. It looks like the style gets
> multiplied up.
> 
The scaling with linestyle is intentionally and at least with my (extended) 
test it seems to be. I've now run two versions of Dia 0.97 on three 
platforms. The second screenshot at http://hans.breuer.org/dia/dia-wine.htm
shows my standard render test with wine, X11 and win2k side by side.

> I've not looked too deeply into this, however it looks like all pen styles
> are affected by the requested line width.
> 
Yes, look at the third last line of the patch. The line pattern is scaled 
by the line width for PS_ALTERNATE and PS_USERSTYLE.

> I also have an issue with the standard styles as they are defined as I
> belive they are not correct. I'm comparing on a pixel to pixel basis between
> Windows and Wine. However your patch does not affect this. I just wished to
> make you aware. When I have a sample to demonstrate this I will raise a bug
> report.
> 
As simple test program showing the different line styles would certainly help.

> I've made some additional comments below on the patch and on the platforms
> supporting PS_USERSTYLE.
> 
Yes, as I said: supported for all NT based versions; not supported at all 
for win9x versions. IIRC even the normal PS_(DASH)?(DOT)* are limited there.

> In addition there is also the odd even count for the bits that needs to be
> dealt with. However in most cases I doubt this would be an issue.
> 
Are you talking about PS_GEOMETRIC?
> 
> I'm also a bit of a newbie here and am not exactly sure how to advance this
> patch.
> 
> I can create a simple Win32 test which demonstrates the behaviour I am
> looking for. Of course the Windows results will be a screenshoot which will
> have to be compared against the test running under Wine.
> 
I've done exactly this, although my test program is not simple, but a cross 
platfom diagramming tool: http://projects.gnome.org/dia .

> Where would I post this sample?  (no guarentees on how long it's going to
> take me as I'm still trying to write a series of alpha blend tests).
> 
I'm not sure for wine. For other projects I work on bugzilla would be the 
place to go.

Thanks,
	Hans

-------- Hans "at" Breuer "dot" Org -----------
Tell me what you need, and I'll tell you how to
get along without it.                -- Dilbert



More information about the wine-devel mailing list