Review Request: Rough implementation of GdipBeginContainer and GdipEndContainer

Mike Kaplinskiy mike.kaplinskiy at gmail.com
Tue Jun 30 23:31:28 CDT 2009


On Tue, Jun 30, 2009 at 11:48 PM, Andrew
Eikum<andrew at brightnightgames.com> wrote:
> Attached to this email is a rough implementation of the main GDI+
> containers functions.  It performs correctly in a few simple tests I
> ran on it, but it's not quite ready to send off to wine-patches.  I'd
> like to get some feedback here, since I'm certain that I'm doing some
> things wrong.  I'm wondering about two things specifically.  Since the
> vast majority of my programming experience has been with object
> oriented languages, I'm not used to how to do things in C.
>
> First, where should the utility functions and variables go?  Right
> now, they're just thrown in above the functions I'm working on.  It
> seems messy to me to have, for example, low and high (which need to be
> renamed) declared where they are.  Do they belong there (or, rather,
> near the top of graphics.c like some other utility functions), or
> should they be placed elsewhere?
>
> Second, I implemented a simple linked list to manage the stack of
> GpGraphics objects.  I would imagine that there's some standard way of
> doing stacks, rather than creating a simple one with utility functions
> as I have here.  Can someone point me in the direction of the proper
> way to do stacks like this in C?
>

A quick answer to this question: In C - no; in wine source - yes.
http://source.winehq.org/source/include/wine/list.h#L30 . There's also
a rb tree somewhere.

>
> Finally, while the code's still rough and needs cleaning up,
> correctness checking, using Windows types and const properly, etc., am
> I doing anything glaringly wrong?  As I mentioned, it works as
> expected in the tests I've done, so I can't be too far off the mark :)
>
> Thanks for taking a look,
> Andrew
>
> Patch attached.
> Also available at:
> http://www.brightnightgames.com/wine/gdipcontainers.patch
>
> ---
>  dlls/gdiplus/graphics.c |  125 ++++++++++++++++++++++++++++++++++++++++++++--
>  1 files changed, 119 insertions(+), 6 deletions(-)
>
>
>
>

Mike.



More information about the wine-devel mailing list