📄 swblt.h
字号:
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//
// Use of this source code is subject to the terms of the Microsoft end-user
// license agreement (EULA) under which you licensed this SOFTWARE PRODUCT.
// If you did not accept the terms of the EULA, you are not authorized to use
// this source code. For a copy of the EULA, please see the LICENSE.RTF on your
// install media.
//
/*
*/
#ifndef __SWBLT_H__
#define __SWBLT_H__
class PixelIterator
{
public:
// Fixed upon creation:
unsigned char *RowPtr;
int RowIncrement;
unsigned long CacheStateNewDWord;
unsigned long CacheStateNewRow;
unsigned long CacheStateIncrement;
unsigned long CacheStateIncrementDirty;
int Is24Bit;
unsigned long Mask;
int BytesPerAccess;
int Bpp;
unsigned char MaskShiftXor;
// IteratorState
unsigned char *Ptr;
unsigned long Cache;
unsigned long Value;
unsigned long CacheState;
void InitPixelIterator(
GPESurf *pSurf,
int xPositive,
int yPositive,
RECTL *prcl,
int xSkip,
int ySkip );
};
class BrushPixelIterator : public PixelIterator
{
public:
int PixelsRemaining; // Pixels still available this row of brush incl cache
int PixelsPerRow; // Width of source surface
int RowInitialPixelsRemaining; // PixelsRemaining at start of each Dst row
int RowsRemaining; // Rows (incl this) left in pattern
int Rows; // Total rows in pattern
int LeftPixelOffset; // Byte offset from the beginning of the row to LeftRowPtr
unsigned char *FirstRowPtr; // Pointer to first DWord to use in top/bottom row
unsigned char *LeftRowPtr; // Ptr to *left* of pattern of current row
// (RowPtr is *start* of next row)
void InitBrushPixelIterator(
GPESurf *pSurf,
int xPositive,
int yPositive,
RECTL *prcl );
};
extern unsigned long ProcessROP3(
unsigned long dstValue,
unsigned long srcValue,
unsigned long brushValue,
unsigned char rop3,
unsigned char dstBitsPerPixel);
#endif // __SWBLT_H__
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -