[prev in list] [next in list] [prev in thread] [next in thread] 

List:       wine-devel
Subject:    ExtCreatePen redo
From:       Joshua Thielen <thielen () netperson ! net>
Date:       1999-05-28 20:16:56
[Download RAW message or body]

Hello everyone,

This patch replaces my previous patch for CreatePenIndirect16 and 32. I
basically stuffed CreatePenIndirect into ExtCreatePen. It is not a
complete fix because PS_USERSTYLE is still ignored.

["pen2.diff" (text/plain)]

Index: objects/pen.c
===================================================================
RCS file: /home/wine/wine/objects/pen.c,v
retrieving revision 1.7
diff -u -w -r1.7 pen.c
--- objects/pen.c	1999/05/23 10:25:26	1.7
+++ objects/pen.c	1999/05/28 20:15:02
@@ -97,7 +97,8 @@
                               const LOGBRUSH * brush, DWORD style_count,
                               const DWORD *style_bits )
 {
-    LOGPEN logpen;
+    PENOBJ * penPtr;
+    HPEN hpen;
 
     if ((style & PS_STYLE_MASK) == PS_USERSTYLE)
 	FIXME("PS_USERSTYLE not handled\n");
@@ -105,11 +106,15 @@
 	if (brush->lbHatch)
 	    FIXME("Hatches not implemented\n");
 
-    logpen.lopnStyle = style & ~PS_TYPE_MASK;
-    logpen.lopnWidth.x = (style & PS_GEOMETRIC) ? width : 1;
-    logpen.lopnWidth.y = 0;
-    logpen.lopnColor = brush->lbColor;
-    return CreatePenIndirect( &logpen );
+    hpen = GDI_AllocObject( sizeof(PENOBJ), PEN_MAGIC );
+    if (!hpen) return 0;
+    penPtr = (PENOBJ *)GDI_HEAP_LOCK( hpen );
+    penPtr->logpen.lopnStyle = style & ~PS_TYPE_MASK; 
+    penPtr->logpen.lopnWidth.x = (style & PS_GEOMETRIC) ? width : 1; 
+    penPtr->logpen.lopnColor = brush->lbColor;
+    GDI_HEAP_UNLOCK( hpen );
+
+    return hpen;
 }
 
 /***********************************************************************

=========================================================================


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic