WindowsXP-SP1/windows/advcore/gdiplus/engine/entry/imageattr.hpp
2020-09-30 16:53:49 +02:00

164 lines
3.6 KiB
C++

/**************************************************************************\
*
* Copyright (c) 1999 Microsoft Corporation
*
* Module Name:
*
* ImageAttr.hpp
*
* Abstract:
*
* ImageAttribute (recolor) related declarations
*
* Revision History:
*
* 14-Nov-1999 gilmanw
* Created it.
*
\**************************************************************************/
#ifndef _IMAGEATTR_HPP
#define _IMAGEATTR_HPP
class GpImageAttributes : public GpObject
{
protected:
VOID SetValid(BOOL valid)
{
GpObject::SetValid(valid ? ObjectTagImageAttributes : ObjectTagInvalid);
}
public:
GpImageAttributes();
GpImageAttributes* Clone() const;
VOID Dispose();
GpLockable* GetObjectLock() const
{
return &Lockable;
}
// Set to identity, regardless of what the default color adjustment is.
GpStatus
SetToIdentity(
ColorAdjustType type
);
// Remove any individual color adjustments, and go back to using the default
GpStatus
Reset(
ColorAdjustType type
);
GpStatus
SetColorMatrix(
ColorAdjustType type,
BOOL enable,
ColorMatrix* colorMatrix,
ColorMatrix* grayMatrix,
ColorMatrixFlags flags);
GpStatus
SetThreshold(
ColorAdjustType type,
BOOL enable,
REAL threshold);
GpStatus
SetGamma(
ColorAdjustType type,
BOOL enable,
REAL gamma);
GpStatus SetNoOp(
ColorAdjustType type,
BOOL enable);
GpStatus
SetColorKeys(
ColorAdjustType type,
BOOL enable,
Color* colorLow,
Color* colorHigh);
GpStatus
SetOutputChannel(
ColorAdjustType type,
BOOL enable,
ColorChannelFlags channelFlags);
GpStatus
SetOutputChannelProfile(
ColorAdjustType type,
BOOL enable,
WCHAR *profile);
GpStatus
SetRemapTable(
ColorAdjustType type,
BOOL enable,
UINT mapSize,
ColorMap* map);
GpStatus
SetCachedBackground(
BOOL enableFlag);
BOOL HasRecoloring(
ColorAdjustType type = ColorAdjustTypeAny
) const;
GpStatus SetWrapMode(WrapMode wrap, ARGB color = 0, BOOL Clamp = FALSE);
GpStatus SetICMMode(BOOL on);
VOID GetAdjustedPalette(
ColorPalette * colorPalette,
ColorAdjustType colorAdjustType
);
//----------------------------------------------------------------------
// GpObject virtuals
//----------------------------------------------------------------------
virtual BOOL IsValid() const
{
// If the image attribtes came from a different version of GDI+, its tag
// will not match, and it won't be considered valid.
return ((recolor != NULL) && GpObject::IsValid(ObjectTagImageAttributes));
}
virtual ObjectType GetObjectType() const
{
return ObjectTypeImageAttributes;
}
// Serialization
virtual UINT GetDataSize() const;
virtual GpStatus GetData(IStream * stream) const;
virtual GpStatus SetData(const BYTE * dataBuffer, UINT size);
public:
GpRecolor* recolor;
// !!! should move this into the DpImageAttributes
BOOL cachedBackground;
// Contains DrawImage Wrap-Mode settings
DpImageAttributes DeviceImageAttributes;
protected:
// Object lock
mutable GpLockable Lockable;
public:
~GpImageAttributes();
};
#endif