Graphics Device Context.
More...
#include <libemf.h>
|
| ::FILE * | fp |
| DATASTREAM | ds |
| ENHMETAHEADER * | header |
| std::vector< EMF::METARECORD * > | records |
|
SIZEL | resolution |
| | The resolution in DPI of the reference DC.
|
|
SIZEL | viewport_ext |
| | The extent of the viewport.
|
|
POINT | viewport_org |
| | The origin of the viewport.
|
|
SIZEL | window_ext |
| | The extent of the window.
|
|
POINT | window_org |
| | The origin of the window.
|
|
bool | update_frame |
| | Update the frame automatically?
|
|
POINT | min_device_point |
| | The lft/top-most painted point in device units.
|
|
POINT | max_device_point |
| | The rgt/btm-most painted point in device units.
|
|
POINT | point |
| | The current point.
|
|
PEN * | pen |
| | The current pen.
|
|
BRUSH * | brush |
| | The current brush.
|
|
FONT * | font |
| | The current font.
|
|
PALETTE * | palette |
| | The current palette.
|
|
UINT | text_alignment |
| | The current text alignment.
|
|
COLORREF | text_color |
| | The current text foreground color.
|
|
COLORREF | bk_color |
| | The current background color.
|
|
INT | bk_mode |
| | The current background mode.
|
|
INT | polyfill_mode |
| | The current polygon fill mode.
|
|
INT | map_mode |
| | The current mapping mode.
|
|
FLOAT | miter_limit |
| | The current miter length limit.
|
| std::vector< bool > | handles |
| std::map< HGDIOBJ, HGDIOBJ > | emf_handles |
| HGDIOBJ | handle |
Graphics Device Context.
Almost all GDI graphics calls require a device context (except those which create graphics objects such as pens and fonts). This is a specific context which renders to a metafile. There is a one-to-one correspondence between the device context and the metafile.
◆ METAFILEDEVICECONTEXT()
| EMF::METAFILEDEVICECONTEXT::METAFILEDEVICECONTEXT |
( |
FILE * | fp_, |
|
|
const RECT * | size, |
|
|
LPCWSTR | description_w ) |
|
inline |
Most graphics programs seem to want to handle the opening and closing of files themselves, so this is an extension to the w32 interface.
- Parameters
-
| fp_ | stdio pointer to an open file. May be null. |
| size | the rectangle describing the position and size of the metafile on the "page". May be null. |
| description_w | a UNICODE string describing the metafile. The format must be "some text\0some more text\0\0". May be null. |
◆ ~METAFILEDEVICECONTEXT()
| virtual EMF::METAFILEDEVICECONTEXT::~METAFILEDEVICECONTEXT |
( |
| ) |
|
|
inlinevirtual |
Destructor frees all the graphics objects which may have been allocated. Now, it also frees any metarecords which it might hold, too.
◆ appendHandle()
| void EMF::METAFILEDEVICECONTEXT::appendHandle |
( |
METARECORD * | record | ) |
|
|
inline |
Add this record to the metafile.
- Parameters
-
| record | this record is an object so it increments the handle count as well. |
◆ appendRecord()
| void EMF::METAFILEDEVICECONTEXT::appendRecord |
( |
METARECORD * | record | ) |
|
|
inline |
Add this record to the metafile.
- Parameters
-
| record | standard graphics record |
◆ clearHandle()
| void EMF::METAFILEDEVICECONTEXT::clearHandle |
( |
DWORD | handle | ) |
|
|
inline |
Clear the usage of this handle
◆ deleteMetafile()
| void EMF::METAFILEDEVICECONTEXT::deleteMetafile |
( |
void | | ) |
|
|
inline |
Delete all the records from the metafile. This would seem to include deleting the header record as well.
◆ getType()
| OBJECTTYPE EMF::METAFILEDEVICECONTEXT::getType |
( |
void | | ) |
const |
|
inlinevirtual |
Return the type of this object (could probably do better with RTTI()).
Implements EMF::OBJECT.
◆ mergePoint() [1/2]
| void EMF::METAFILEDEVICECONTEXT::mergePoint |
( |
const LONG & | x, |
|
|
const LONG & | y ) |
|
inline |
Somewhat superfluous, except checker doesn't understand the initialization of automatic structures in the declaration.
◆ mergePoint() [2/2]
| void EMF::METAFILEDEVICECONTEXT::mergePoint |
( |
const POINT & | p | ) |
|
|
inline |
Take the given point and determine if it enlarges the "painted" area of the device.
◆ nextHandle()
| DWORD EMF::METAFILEDEVICECONTEXT::nextHandle |
( |
void | | ) |
|
|
inline |
Scan the bit vector of used handles and return the index of the first free bit as this objects metafile handle.
◆ ds
All i/o to the metafile is wrapped by this class so that byte swapping on big-endian machines is transparent.
◆ emf_handles
| std::map< HGDIOBJ, HGDIOBJ > EMF::METAFILEDEVICECONTEXT::emf_handles |
This map holds the current mapping between EMF handles and global object handles as a metafile is played back (with PlayEnhMetaFile).
◆ fp
| ::FILE* EMF::METAFILEDEVICECONTEXT::fp |
If it is a file-based metafile, then this pointer is not null.
◆ handles
| std::vector< bool > EMF::METAFILEDEVICECONTEXT::handles |
For compatibility, it appears that metafile handles are reused as objects are deleted. Attempt to emulate that behavior with a bit vector of used metafile handles.
◆ header
| ENHMETAHEADER* EMF::METAFILEDEVICECONTEXT::header |
Serves double duty as the physical device description.
◆ records
All of the metafile records are stored in memory.
The documentation for this class was generated from the following file: