Fwd: Winehq donation and DATA COMPRESSION

2010-02-05 Thread Gert van den Berg
correct from address

-- Forwarded message --
From: Gert van den Berg


On Sat, Jan 30, 2010 at 15:58, Gerold Jens Wucherpfennig
 wrote:
> BTW I've done some cabinet.dll stuff some years ago.
> Can anybody give me a hint to some easy-to-understand data compression
> documentation?
> I want to complete the cabinet.dll archive creation compression,
> if I get the required knowledge. It's so difficult... :-(

7-zip might have some usable code under a LGPL license (many files are
public domain as well)? (But is is mostly C++, but some codecs seem to
have C implementations...) (p7zip might be easier..)

http://www.7-zip.org/

Gert




Re: libpng dependency issue

2010-02-05 Thread Steven Edwards
On Fri, Feb 5, 2010 at 9:54 AM, Vincent Povirk
 wrote:
> It's supported 32bpp with transparency from the start. The full list
> of supported writing formats is here:
> http://source.winehq.org/source/dlls/windowscodecs/pngformat.c#L680
>
> GUID_WICPixelFormat32bppBGRA is the format you want, I think.
>
> You probably tried to use a format not on that list, which defaults to
> 24-bit. I'm not sure what the behavior should be in that case.

Thanks, I'll take another look.

> That's odd. Both WIC and winemenubuilder appear to be using BGR for
> 32-bit pixel formats and informing libpng of this . I don't know where
> you could be getting RGB pixels.

It was just a thought, as I said, my understand of the graphics
manipulation is pretty limited, I just assumed that was the problem
due to resulting images. I'll try to give it another shot with this
information.

Thanks
-- 
Steven Edwards

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




Display drivers

2010-02-05 Thread C . W . Betts
An idea that popped into my head when I was thinking about a Quartz (OS X) 
driver that perhaps there could be separate drivers for Quartz (OS X) and X11.  
Such drivers would include OpenGL and DirectX "Drivers".



Implement D3DXDeclaratorFromFVF

2010-02-05 Thread paulo lesgaz
The patch is a copy/paste from the file d3d9/verdeclaration.c. So this file 
should be simplified too, if we simplify the d3dx9_36/mesh.c implementation.

Obviously, to compute the size of the vertex, we can use D3DXGetDeclVertexSize, 
but we gain very few.

So, what do you think about this?

A+

David



  


Re: MDI client repaint issues (client and children) and conformance tests for this

2010-02-05 Thread Dmitry Timoshkov
Reece Dunn  wrote:

> And in terms of a fix, what is the best approach for fixing the issue?
> That is, Alexandre does not like an explicit call to InvalidateRect in
> the WM_MDICREATE handler, so I assume that the repaint logic should be
> done in a more specific place or figure out why it is not being called
> for the MDI client.

Probably WM_SETREDRAW has something to do with redrawing bug. Before
fixing the problem we need to understand what exactly is the sequence
of events that leads to it, how Windows and Wine behaviours differ.

-- 
Dmitry.




Re: Winehq donation and DATA COMPRESSION

2010-02-05 Thread Scott Ritchie
Gerold Jens Wucherpfennig wrote:
> 
> Hi, I've donated some bucks to winehq by PayPal and want to spend more...
> Can I decide for which things will be spend?
> When donating money, how much of it will go to PayPal?
> Is there a better way than using PayPal (by the donate link of the
> winehq front-page)?
> 
> BTW I've done some cabinet.dll stuff some years ago.
> Can anybody give me a hint to some easy-to-understand data compression
> documentation?
> I want to complete the cabinet.dll archive creation compression,
> if I get the required knowledge. It's so difficult... :-(
> 
> 

By the way, I was tasked at Wineconf with sprucing up the Donate page to
answer questions like this in detail, however I had been putting it off
until I got my actual reimbursement check from wineconf.  That finally
happened recently, so I'll be working on this.

Thanks,
Scott Ritchie




Status of USB patches?

2010-02-05 Thread Scott Ritchie
I wanted to experiment with these, but I'm not sure of their current
state.  Do they still apply cleanly?  Are they on track for eventual
inclusion?  I'm willing to help provide community testing by putting
them in a special package repository.

Thanks,
Scott Ritchie




Re: CJK default fonts for packagers to set

2010-02-05 Thread Hin-Tak Leung
--- On Fri, 5/2/10, Aric Stewart  wrote:

> Scott Ritchie wrote:
> > My notes from Wineconf remind me that I need to create
> some manual links in the registry to whatever default CJK
> fonts are on the system.  Can someone tell me what
> these are supposed to look like?
> > 
> > Thanks,
> > Scott Ritchie
> > 
> > 
> 
> Sure! (sorry for the delay)
> 
> The important keys are the following:
> HKLM,"Software\Microsoft\Windows
> NT\CurrentVersion\FontLink\SystemLink","Tahoma"
> 
> HKLM,"Software\Microsoft\Windows
> NT\CurrentVersion\FontLink\SystemLink","Microsoft Sans
> Serif"
> 
> and
> HKLM,"Software\Microsoft\Windows
> NT\CurrentVersion\FontLink\SystemLink","Lucida Sans
> Unicode"
> 
> They are REG_SZ_MULTI type of either
> ":"  or
> ""

You meant ',' instead of ':' here, right, judging from your example below? (and 
my impression)

> 
> so for example windows sets (in inf format for Japanese
> Windows):
> 
> HKLM,"Software\Microsoft\Windows
> NT\CurrentVersion\FontLink\SystemLink","Tahoma",0x00010002,"MSGOTHIC.TTC,MS
> UI
> Gothic","gulim.ttc,gulim","SimSun.TTC,SimSun","mingliu.ttc,PMingLiU"
> 
> The glyphs will be found in order.  So if a glyph is
> missing from Tahoma, then it tries MSGOTHIC.TTC next, if
> still missing gulim.ttc and so on.  I do not have
> chinese windows to investigate but it may be that the order
> of the fonts is different. This may not be an issue on
> linux.
> 
> Any other questions just ask.
> thanks!
> -aric
> 
> 
> 


  




Re: side-effects/type safe min/max (Was Re: [1/3] d3dx9: Partial implementation of D3DXAssembleShader function. [try 2])

2010-02-05 Thread Michael Stefaniuc

On 02/05/2010 07:38 PM, Henri Verbeet wrote:

On 5 February 2010 19:10, Michael Stefaniuc  wrote:

Henri Verbeet wrote:

min and max are already defined in windef.h. Note that they're not
safe for expressions with side-effects, but for simple expressions
like the one here they're ok.

We can lift the side-effects and type safe min/max macros from the Linux
Kernel. Of course Alexandre would have to accept the use of typeof(); we
can do a fallback for the compilers that don't support that.


I imagine it can't be *that* hard to fix the macros, but wouldn't that
make them incompatible with the PSDK ones?
Not really, you can guard them with ifdef __WINESRC__. The Wine source 
already has stricter requirements than what the Win32 API would allow.
Of course the real issue is getting to the point where Wine will compile 
without warnings with the strict min/max macros. Actually that was once 
a janitorial task to use the strict min/max macros and fixup the 
problems found by that.


bye
michael




Re: CJK default fonts for packagers to set

2010-02-05 Thread Aric Stewart

Hin-Tak Leung wrote:

--- On Fri, 5/2/10, Aric Stewart  wrote:


Scott Ritchie wrote:

My notes from Wineconf remind me that I need to create

some manual links in the registry to whatever default CJK
fonts are on the system.  Can someone tell me what
these are supposed to look like?

Thanks,
Scott Ritchie



Sure! (sorry for the delay)

The important keys are the following:
HKLM,"Software\Microsoft\Windows
NT\CurrentVersion\FontLink\SystemLink","Tahoma"

HKLM,"Software\Microsoft\Windows
NT\CurrentVersion\FontLink\SystemLink","Microsoft Sans
Serif"

and
HKLM,"Software\Microsoft\Windows
NT\CurrentVersion\FontLink\SystemLink","Lucida Sans
Unicode"

They are REG_SZ_MULTI type of either
":"  or
""


You meant ',' instead of ':' here, right, judging from your example below? (and 
my impression)


correct!  my mistake.
-aric




Re: side-effects/type safe min/max (Was Re: [1/3] d3dx9: Partial implementation of D3DXAssembleShader function. [try 2])

2010-02-05 Thread Henri Verbeet
On 5 February 2010 19:10, Michael Stefaniuc  wrote:
> Henri Verbeet wrote:
>> min and max are already defined in windef.h. Note that they're not
>> safe for expressions with side-effects, but for simple expressions
>> like the one here they're ok.
> We can lift the side-effects and type safe min/max macros from the Linux
> Kernel. Of course Alexandre would have to accept the use of typeof(); we
> can do a fallback for the compilers that don't support that.
>
I imagine it can't be *that* hard to fix the macros, but wouldn't that
make them incompatible with the PSDK ones?




side-effects/type safe min/max (Was Re: [1/3] d3dx9: Partial implementation of D3DXAssembleShader function. [try 2])

2010-02-05 Thread Michael Stefaniuc
Henri Verbeet wrote:
> On 5 February 2010 18:19, Matteo Bruni  wrote:
>> Sure. Better to go with something like "len = len < (desc->size -
>> desc->pos) ? len : desc->size - desc->pos" or creating a "min"
>> function?
>>
> min and max are already defined in windef.h. Note that they're not
> safe for expressions with side-effects, but for simple expressions
> like the one here they're ok.
We can lift the side-effects and type safe min/max macros from the Linux
Kernel. Of course Alexandre would have to accept the use of typeof(); we
can do a fallback for the compilers that don't support that.

bye
michael




Re: CJK default fonts for packagers to set

2010-02-05 Thread Aric Stewart

Scott Ritchie wrote:
My notes from Wineconf remind me that I need to create some manual links 
in the registry to whatever default CJK fonts are on the system.  Can 
someone tell me what these are supposed to look like?


Thanks,
Scott Ritchie




Sure! (sorry for the delay)

The important keys are the following:
HKLM,"Software\Microsoft\Windows 
NT\CurrentVersion\FontLink\SystemLink","Tahoma"


HKLM,"Software\Microsoft\Windows 
NT\CurrentVersion\FontLink\SystemLink","Microsoft Sans Serif"


and
HKLM,"Software\Microsoft\Windows 
NT\CurrentVersion\FontLink\SystemLink","Lucida Sans Unicode"


They are REG_SZ_MULTI type of either
":"  or ""

so for example windows sets (in inf format for Japanese Windows):

HKLM,"Software\Microsoft\Windows 
NT\CurrentVersion\FontLink\SystemLink","Tahoma",0x00010002,"MSGOTHIC.TTC,MS 
UI Gothic","gulim.ttc,gulim","SimSun.TTC,SimSun","mingliu.ttc,PMingLiU"


The glyphs will be found in order.  So if a glyph is missing from 
Tahoma, then it tries MSGOTHIC.TTC next, if still missing gulim.ttc and 
so on.  I do not have chinese windows to investigate but it may be that 
the order of the fonts is different. This may not be an issue on linux.


Any other questions just ask.
thanks!
-aric




Re: [1/3] d3dx9: Partial implementation of D3DXAssembleShader function. [try 2]

2010-02-05 Thread Henri Verbeet
On 5 February 2010 18:19, Matteo Bruni  wrote:
> Sure. Better to go with something like "len = len < (desc->size -
> desc->pos) ? len : desc->size - desc->pos" or creating a "min"
> function?
>
min and max are already defined in windef.h. Note that they're not
safe for expressions with side-effects, but for simple expressions
like the one here they're ok.

>> I don't think it's very nice to have the HeapAlloc() and HeapFree() on
>> different levels of the code like that. I.e., either have both in
>> wpp_open_mem()/wpp_close_mem() or have both in the caller. The current
>> scheme has the allocation in the caller and the deallocation in
>> wpp_close_mem(), except sometimes when wpp_parse() fails to call
>> wpp_close_mem(). (Can that even happen? Looking at the source of
>> wpp_parse() it's not clear to me how.) Also, does wpp_parse() really
>> need the input to be zero-terminated?
>
> wpp_parse() doesn't call wpp_close_mem() if the call to
> pp_push_define_state() fails (can fail in out-of-memory conditions),
> so the extra HeapFree was there for this case.
Right, I only looked if wpp_callbacks->open()/wpp_callbacks->close()
matched. If the alloc/free calls are on the same level it can't
happen.




Re: [1/3] d3dx9: Partial implementation of D3DXAssembleShader function. [try 2]

2010-02-05 Thread Matteo Bruni
Seems like I'm unable to review my code...

>
>> +    if(desc->pos + len > desc->size) len = desc->size - desc->pos;
> It's usually safer to write expressions like that as "if (len >
> desc->size - desc->pos)" because "desc->pos + len" can wrap around if
> len is large, while "desc->size - desc->pos" should always be safe.
> Perhaps the caller is expected to always pass sane values here, but
> it's a somewhat dangerous construction in the general case in terms of
> reading/writing past the end of buffers. It can also be simplified to
> "len = min(len, desc->size - desc->pos);" here.

Sure. Better to go with something like "len = len < (desc->size -
desc->pos) ? len : desc->size - desc->pos" or creating a "min"
function?

>
>> +    if(wpp_output_size + len > wpp_output_capacity)
> Similar issue as above.
>
>> +int wpp_close_output(void)
>> +{
>> +    /* trim buffer to the effective size */
>> +    char *new_wpp_output = HeapReAlloc(GetProcessHeap(), 0, wpp_output,
>> +                                       wpp_output_size + 1);
>> +    if(!new_wpp_output) return 0;
>> +    wpp_output[wpp_output_size]='\0';
>> +    return 1;
>> +}
> This doesn't really make sense. The comment is misleading, because you
> actually grow the buffer if "wpp_output_size == wpp_output_capacity".
> If you didn't, you wouldn't care about HeapRealloc() failure because
> the worst thing that could happen was that the buffer was a bit larger
> than it strictly needed to be. More importantly though, you assume
> new_wpp_output is the same pointer as wpp_output after a successful
> HeapReAlloc(), which isn't necessarily true.
>

Yep, this is clearly broken. Will fix it.

>> +    current_shader.buffer = HeapAlloc(GetProcessHeap(), 0, data_len + 1);
> ...
>> +    ret = wpp_parse("", NULL);
>> +    if(!wpp_close_output())
>> +        ret = 1;
>> +    if(ret)
>> +    {
>> +        TRACE("Error during shader preprocessing\n");
>> +        HeapFree(GetProcessHeap(), 0, current_shader.buffer);
> I don't think it's very nice to have the HeapAlloc() and HeapFree() on
> different levels of the code like that. I.e., either have both in
> wpp_open_mem()/wpp_close_mem() or have both in the caller. The current
> scheme has the allocation in the caller and the deallocation in
> wpp_close_mem(), except sometimes when wpp_parse() fails to call
> wpp_close_mem(). (Can that even happen? Looking at the source of
> wpp_parse() it's not clear to me how.) Also, does wpp_parse() really
> need the input to be zero-terminated?

wpp_parse() doesn't call wpp_close_mem() if the call to
pp_push_define_state() fails (can fail in out-of-memory conditions),
so the extra HeapFree was there for this case. Anyway, as you noticed,
there is no need to null-terminate wpp input (while there is this need
for the shader parser), so the entire
allocation-copy-nulltermination-deallocation is useless...




Re: Git does not build properly after daily pull -- font errors

2010-02-05 Thread Alexandre Julliard
Susan Cragin  writes:

> What's up with the git repository?
> I do the following:
>
> git pull
> sudo make uninstall
> ./configure --enable-win64 && make distclean
> ./configure --enable-win64 && make depend && make
>
> and I get the following:
>
> warning: System 16: missing glyph for char f8c8
> make[1]: *** No rule to make target `marlett.ttf', needed by `all'.  Stop.
> make[1]: Leaving directory `/home/susan/wine/fonts'
> make: *** [fonts] Error 2
>
> So I delete the git repository and download a new one. 

A "git checkout -f" would be enough to recover the deleted files, but
yes, it's a bug.

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




Re: Git does not build properly after daily pull -- font errors

2010-02-05 Thread Susan Cragin
>Susan Cragin wrote:
>> ./configure --enable-win64 && make distclean
>> ./configure --enable-win64 && make depend && make
>Huh? Are you actually trying to build the 64-bit version of Wine? Why
>would you want to do that? Especially when 64-bit Wine isn't mature yet.
>
>Did you try it without --enable-win64?
>> 
>> and I get the following:
>> 
>> warning: System 16: missing glyph for char f8c8
>> make[1]: *** No rule to make target `marlett.ttf', needed by `all'.  Stop.
>> make[1]: Leaving directory `/home/susan/wine/fonts'
>> make: *** [fonts] Error 2
>Check out commit 8350aafd5495c77ad4ba005dc4ae3f61a1ad1147:
>
> Author: Alexandre Julliard 
> Date:   Thu Feb  4 20:29:23 2010 +0100
>
> fonts: Remove the rules for font symlinks and go back to standard VPATH
>usage.
>
>I'll bet that has something to do with it...
>> 
>> So I delete the git repository and download a new one. 
>OK? Then what happened? Did it work, or didn't it?

The new git repository worked. 
I've been doing --enable-win64 because it has worked for me. I've been doing it 
for a couple of weeks and haven't had a problem. 
Susan






Re: confirm af48973b6246cef737c553415eed7349e89b5944

2010-02-05 Thread L. Rahyen
On 2010-02-02 (February, Tuesday) 15:00:01 wine-devel-requ...@winehq.org wrote:
> Your membership in the mailing list wine-devel has been disabled due
> to excessive bounces The last bounce received from you was dated
> 26-Jan-2010.  You will not get any more messages from this list until
> you re-enable your membership.  You will receive 2 more reminders like
> this before your membership in the list is deleted.
> 
> To re-enable your membership, you can simply respond to this message
> (leaving the Subject: line intact), or visit the confirmation page at
> 
>
>  http://www.winehq.org/mailman/confirm/wine-devel/af48973b6246cef737c553415
> eed7349e89b5944
> 
> 
> You can also visit your membership page at
> 
> http://www.winehq.org/mailman/options/wine-devel/research%40science.su
> 
> 
> On your membership page, you can change various delivery options such
> as your email address and whether you get digests or not.  As a
> reminder, your membership password is
> 
> xearaxon
> 
> If you have any questions or problems, you can contact the list owner
> at
> 
> wine-devel-ow...@winehq.org
> 




MDI client repaint issues (client and children) and conformance tests for this

2010-02-05 Thread Reece Dunn
Hi,

I have been looking at http://bugs.winehq.org/show_bug.cgi?id=14312
which shows up as the MDI client window not being repainted properly
when a new child is created given an already maximised child window
being present.

There is a related issue here that sometimes the child window frames
are not being redrawn properly.

I am trying to understand where this problem is occurring, and am
failing to see the big picture.

As I understand it, WM_MDIRESTORE is sent for the maximised child
window, which calls ShowWindow(SW_RESTORE) on the child. This is then
(from what I can tell) is handled by the windowing code (with the
client behaving like a desktop window), which is taking care of the
positioning and layout of the child windows.

For some reason, the parent window (the client) is not being updated
properly (i.e. a WM_ERASEBKGND+WM_PAINT is not being sent). Likewise,
the child windows don't appear to be handling and/or receiving a
WM_NCPAINT message to redraw their frame.

In addition to this, looking at the message trail tests in
user32/tests/msg.c, only some of these are testing a
WM_ERASEBKGND+WM_PAINT message is being sent. How accurate are these
with respect to WM_PAINT messages (that is, are WM_PAINT messages
ignored in message trails unless explicitly tested for?).

And in terms of a fix, what is the best approach for fixing the issue?
That is, Alexandre does not like an explicit call to InvalidateRect in
the WM_MDICREATE handler, so I assume that the repaint logic should be
done in a more specific place or figure out why it is not being called
for the MDI client.

- Reece




Re: Git does not build properly after daily pull -- font errors

2010-02-05 Thread Charles Davis
Susan Cragin wrote:
> ./configure --enable-win64 && make distclean
> ./configure --enable-win64 && make depend && make
Huh? Are you actually trying to build the 64-bit version of Wine? Why
would you want to do that? Especially when 64-bit Wine isn't mature yet.

Did you try it without --enable-win64?
> 
> and I get the following:
> 
> warning: System 16: missing glyph for char f8c8
> make[1]: *** No rule to make target `marlett.ttf', needed by `all'.  Stop.
> make[1]: Leaving directory `/home/susan/wine/fonts'
> make: *** [fonts] Error 2
Check out commit 8350aafd5495c77ad4ba005dc4ae3f61a1ad1147:

 Author: Alexandre Julliard 
 Date:   Thu Feb  4 20:29:23 2010 +0100

 fonts: Remove the rules for font symlinks and go back to standard VPATH
usage.

I'll bet that has something to do with it...
> 
> So I delete the git repository and download a new one. 
OK? Then what happened? Did it work, or didn't it?




Git does not build properly after daily pull -- font errors

2010-02-05 Thread Susan Cragin
What's up with the git repository?
I do the following:

git pull
sudo make uninstall
./configure --enable-win64 && make distclean
./configure --enable-win64 && make depend && make

and I get the following:

warning: System 16: missing glyph for char f8c8
make[1]: *** No rule to make target `marlett.ttf', needed by `all'.  Stop.
make[1]: Leaving directory `/home/susan/wine/fonts'
make: *** [fonts] Error 2

So I delete the git repository and download a new one. 






Re: libpng dependency issue

2010-02-05 Thread Vincent Povirk
> I was looking in to the overall architectural issues but have not had
> the time to really hack on it recently. As far as I understand, the
> current png support in wine's windowscodecs does not support creation
> of a 32bpp image with transparency, unless I missed some commit
> messages or totally misunderstood our discussions. I believe from my
> reading native does support doing the conversions, saving the alpha
> channel information, applying the masking, etc.

It's supported 32bpp with transparency from the start. The full list
of supported writing formats is here:
http://source.winehq.org/source/dlls/windowscodecs/pngformat.c#L680

GUID_WICPixelFormat32bppBGRA is the format you want, I think.

You probably tried to use a format not on that list, which defaults to
24-bit. I'm not sure what the behavior should be in that case.

> I was working on a patch for winemenubuilder so we would at least have
> that part part done, even if it only spit out 24bpp images without
> transparency but never got very far with it. If I recall correctly,
> the current code parses the raw ico bitmapinfo, passes that to libpng,
> applies the mask and generates the resulting image. I tried a few
> different ways, using WIC to open a stream to the icon that was then
> parsed by the icon decoder feeding the png encoder to generate the
> image. I also tried using the existing parsing system, feeding that to
> the bitmap decoder then the png encoder and never could get it to work
> quite right. With the patch I had, the resulting png image was corrupt
> possibly due to some RGB/BGR issue, I seem to recall Vincent
> mentioning something about that as well.

That's odd. Both WIC and winemenubuilder appear to be using BGR for
32-bit pixel formats and informing libpng of this . I don't know where
you could be getting RGB pixels.




Re: [1/3] d3dx9: Partial implementation of D3DXAssembleShader function. [try 2]

2010-02-05 Thread Henri Verbeet
On 4 February 2010 19:26, Matteo Bruni  wrote:
> +void wpp_write_message_var(const char *fmt, ...) PRINTF_ATTR(1,2);
> +void wpp_write_message_var(const char *fmt, ...)
You can just do the following:
+void PRINTF_ATTR(1,2) wpp_write_message_var(const char *fmt, ...)

> +desc = HeapAlloc(GetProcessHeap(), 0, sizeof(struct mem_file_desc));
sizeof(*desc) is generally easier, but that's minor of course.

> +if(desc->pos + len > desc->size) len = desc->size - desc->pos;
It's usually safer to write expressions like that as "if (len >
desc->size - desc->pos)" because "desc->pos + len" can wrap around if
len is large, while "desc->size - desc->pos" should always be safe.
Perhaps the caller is expected to always pass sane values here, but
it's a somewhat dangerous construction in the general case in terms of
reading/writing past the end of buffers. It can also be simplified to
"len = min(len, desc->size - desc->pos);" here.

> +if(wpp_output_size + len > wpp_output_capacity)
Similar issue as above.

> +int wpp_close_output(void)
> +{
> +/* trim buffer to the effective size */
> +char *new_wpp_output = HeapReAlloc(GetProcessHeap(), 0, wpp_output,
> +   wpp_output_size + 1);
> +if(!new_wpp_output) return 0;
> +wpp_output[wpp_output_size]='\0';
> +return 1;
> +}
This doesn't really make sense. The comment is misleading, because you
actually grow the buffer if "wpp_output_size == wpp_output_capacity".
If you didn't, you wouldn't care about HeapRealloc() failure because
the worst thing that could happen was that the buffer was a bit larger
than it strictly needed to be. More importantly though, you assume
new_wpp_output is the same pointer as wpp_output after a successful
HeapReAlloc(), which isn't necessarily true.

> +current_shader.buffer = HeapAlloc(GetProcessHeap(), 0, data_len + 1);
...
> +ret = wpp_parse("", NULL);
> +if(!wpp_close_output())
> +ret = 1;
> +if(ret)
> +{
> +TRACE("Error during shader preprocessing\n");
> +HeapFree(GetProcessHeap(), 0, current_shader.buffer);
I don't think it's very nice to have the HeapAlloc() and HeapFree() on
different levels of the code like that. I.e., either have both in
wpp_open_mem()/wpp_close_mem() or have both in the caller. The current
scheme has the allocation in the caller and the deallocation in
wpp_close_mem(), except sometimes when wpp_parse() fails to call
wpp_close_mem(). (Can that even happen? Looking at the source of
wpp_parse() it's not clear to me how.) Also, does wpp_parse() really
need the input to be zero-terminated?




Re: kernel32: Add support for InterlockedCompareExchange64, try 2

2010-02-05 Thread Maarten Lankhorst

Hello Alexandre,

Alexandre Julliard wrote:

Maarten Lankhorst  writes:

  

---
Fix the definitions in winbase.h, and the inline assembly :)



There are still several problems with your assembly, and I don't
understand why you want to reinvent the wheel when we have a perfectly
fine interlocked_cmpxchg64 implementation already
I copied the 32-bits Interlocked64 definition from my patch, changed 
LONG64 to long long, and WINAPI to __attribute__((__stdcall__)) and then 
tried a few calls against the inline and it works fine and compare the 
returned and expected result, which seem to work for the case where it 
should replace, and where it shouldn't replace. Tests also run against 
the kernel32 assembly version. versionInterlockedCompareExchange64 when 
available.


The 64-bits InterlockedCompareExchange64 assembly call is copied from 
InterlockedCompareExchangePointer


What are the remaining problems then?

Cheers,
Maarten.




Re: d3dx9: Implement D3DXDeclaratorFromFVF

2010-02-05 Thread Henri Verbeet
On 5 February 2010 05:09, David Adam  wrote:
>  This patch is from Tony Wasserka. It comes from  his  git repertory. He
> authorized to pick up patches (see Wine-devel) to submit to Wine.
> I just cleanup it a little bit. I let Tony as the author of this patch. All
> the tests pass in a real Windows Vista box.
>
Looks more complicated than needed.




Re: kernel32: Add support for InterlockedCompareExchange64, try 2

2010-02-05 Thread Alexandre Julliard
Maarten Lankhorst  writes:

> ---
> Fix the definitions in winbase.h, and the inline assembly :)

There are still several problems with your assembly, and I don't
understand why you want to reinvent the wheel when we have a perfectly
fine interlocked_cmpxchg64 implementation already.

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




Re: libpng dependency issue

2010-02-05 Thread Luca Bennati
2010/2/4 Vincent Povirk

>

> > As a side note, you need to do a similar work on winemenubuilder, as it
> uses
> > libpng and fails linking without modifications. to test this images i
> > statically linked it to libpng, just to make it work, as it wasn't needed
> in
> > your test.
> > Thank you for working on this, since i'm not really an expert on this
> > dynamical loading code and couldn't help.
>
> Technically, winemenubuilder should be using windowscodecs for its png
> support, like the rest of wine. I believe Steven Edwards has done some
> work on this.
>
Don't know about this. What i know is that currently winemenubuilder shows
this
problem and it's needed to be worked out if you want to support builds on
libpng
1.4.



Re: libpng dependency issue

2010-02-05 Thread Luca Bennati
2010/2/4 Vincent Povirk

>

> > * http://www.libpng.org/pub/png/PngSuite/basn4a16.png - This is a
> > grayscale png with an alpha channel. That's the situation where we use
> > the png_set_gray... function that was removed.
>
> Errr.. I may actually be thinking of
> http://www.libpng.org/pub/png/PngSuite/tbbn1g04.png
>
Those two show correctly, while the other doesn't work, but it's the image's
fault, as it's only 49 B and can't be open even in other programs.
As a side note, you need to do a similar work on winemenubuilder, as it uses
libpng and fails linking without modifications. to test this images i
statically linked it to libpng, just to make it work, as it wasn't needed in
your test.
Thank you for working on this, since i'm not really an expert on this
dynamical loading code and couldn't help.