Windows NT 4.0 source code leak
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

76 lines
2.3 KiB

*** Brush mask and MIX parameter
If a masked brush is used in an operation involving a MIX parameter (i.e.
DrvTextOut, DrvPaint, DrvStrokePath, DrvFillPath, and DrvStrokeAndFillPath),
then the brush and the MIX parameter must meet the following criteria:
+ The brush pattern must be a 1BPP bitmap and must be the same as the mask
bitmap.
+ Foreground and background ROP2 must be the same, or the background
ROP2 must be R2_NOP (i.e. transparent background).
These conditions are true under current GDI implementation. If somehow this
were to be changed later, please review the code and redo DrvRealizeBrush
and SelectMix.
*** 32-bit coordinates
Path operators should be able to take 32-bit coordinates (as well as 16-bit
and 8-bit coordinates).
*** Coordinate transformation
NT DDI uses XFORMOBJ to pass general 2-D transformations to the driver.
XL should have an operator which takes a 2-D transformation matrix (in
addition to individual operators for setting scale, shear, and angle).
This applies to both page and character transformation.
*** Geometric wide line
What's the behavior of XL given the following sequence?
Define a path
Set pen width and dash
Save graphics state
Change CTM (e.g. scale up 5x10)
Stroke the path
Restore graphics state
NT DDI has a thing called geometric wide line. In order to support it
properly, the expected behavior should be:
1. Line width and line dash are transformed
2. But the path itself is not transformed
As an example, please send the following piece of PostScript code to
a printer and observe the output.
%!PS
100 100 translate
0 0 moveto 100 0 rlineto 0 100 rlineto -100 0 rlineto closepath
1 setlinewidth
[1 1] 0 setdash
gsave
5 10 scale
stroke
grestore
showpage
*** Support for ROP4?
A few NT DDI interface functions use ROP4 and MIX parameters.
ROP4 is used by DrvBitBlt when a 1-bpp mask bitmap is provided. You
can think of a ROP4 as two separate ROP3's. One of the ROP3 is used
anywhere the mask bitmap is 1. The other ROP3 is used anywhere the
mask bitmap is 0.
MIX parameter describes the foreground and background mix mode for
a brush. It consists of two ROP2's - for brush foreground and background
respectively.
*** Updated documentation
Newer version XL spec.
What's a good reference on font and text?