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.
163 lines
3.6 KiB
163 lines
3.6 KiB
/**************************************************************************\
|
|
*
|
|
* 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
|