MiniGUI API Reference (MiniGUI-Processes)  v5.0.6
A mature and proven cross-platform GUI system for embedded and smart IoT devices
Data Structures | Macros | Typedefs | Enumerations | Functions | Variables
gdi.h File Reference

This file includes graphics device interfaces (GDI) of MiniGUI. More...

#include "common.h"
#include <stdio.h>
#include <stddef.h>
#include <stdlib.h>
#include "endianrw.h"

Go to the source code of this file.

Data Structures

struct  _BLOCKHEAP
 
struct  _CLIPRECT
 
struct  _CLIPRGN
 
struct  _STIPPLE
 
struct  _ARC
 
struct  _STRETCH_EXTRA_INFO
 
struct  _LOGFONT
 
struct  _DEVFONT
 
struct  _FONTMETRICS
 
struct  _GLYPHBITMAP
 
struct  _WORDINFO
 
struct  _DTFIRSTLINE
 
struct  _MYBITMAP
 
struct  _BITMAP
 
struct  _GLYPHEXTINFO
 
struct  _GLYPHPOS
 
struct  _DrmSurfaceInfo
 

Macros

#define PIXEL_invalid   0
 
#define PIXEL_transparent   SysPixelIndex[0]
 Transparent. More...
 
#define PIXEL_darkblue   SysPixelIndex[1]
 Dark blue. More...
 
#define PIXEL_darkgreen   SysPixelIndex[2]
 Dark green. More...
 
#define PIXEL_darkcyan   SysPixelIndex[3]
 Dark cyan. More...
 
#define PIXEL_darkred   SysPixelIndex[4]
 Dark red. More...
 
#define PIXEL_darkmagenta   SysPixelIndex[5]
 Dark magenta. More...
 
#define PIXEL_darkyellow   SysPixelIndex[6]
 Dark yellow. More...
 
#define PIXEL_darkgray   SysPixelIndex[7]
 Dark gray. More...
 
#define PIXEL_lightgray   SysPixelIndex[8]
 Light gray. More...
 
#define PIXEL_blue   SysPixelIndex[9]
 Blue. More...
 
#define PIXEL_green   SysPixelIndex[10]
 Green. More...
 
#define PIXEL_cyan   SysPixelIndex[11]
 Cyan. More...
 
#define PIXEL_red   SysPixelIndex[12]
 Red. More...
 
#define PIXEL_magenta   SysPixelIndex[13]
 Magenta. More...
 
#define PIXEL_yellow   SysPixelIndex[14]
 Yellow. More...
 
#define PIXEL_lightwhite   SysPixelIndex[15]
 Light white. More...
 
#define PIXEL_black   SysPixelIndex[16]
 Black. More...
 
#define COLOR_invalid   PIXEL_invalid
 
#define COLOR_transparent   PIXEL_transparent
 
#define COLOR_darkred   PIXEL_darkred
 
#define COLOR_darkgreen   PIXEL_darkgreen
 
#define COLOR_darkyellow   PIXEL_darkyellow
 
#define COLOR_darkblue   PIXEL_darkblue
 
#define COLOR_darkmagenta   PIXEL_darkmagenta
 
#define COLOR_darkcyan   PIXEL_darkcyan
 
#define COLOR_lightgray   PIXEL_lightgray
 
#define COLOR_darkgray   PIXEL_darkgray
 
#define COLOR_red   PIXEL_red
 
#define COLOR_green   PIXEL_green
 
#define COLOR_yellow   PIXEL_yellow
 
#define COLOR_blue   PIXEL_blue
 
#define COLOR_magenta   PIXEL_magenta
 
#define COLOR_cyan   PIXEL_cyan
 
#define COLOR_lightwhite   PIXEL_lightwhite
 
#define COLOR_black   PIXEL_black
 
#define RGBA_transparent
 
#define RGBA_darkblue
 
#define RGBA_darkgreen
 
#define RGBA_darkcyan
 
#define RGBA_darkred
 
#define RGBA_darkmagenta
 
#define RGBA_darkyellow
 
#define RGBA_darkgray
 
#define RGBA_lightgray
 
#define RGBA_blue
 
#define RGBA_green
 
#define RGBA_cyan
 
#define RGBA_red
 
#define RGBA_magenta
 
#define RGBA_yellow
 
#define RGBA_lightwhite
 
#define RGBA_black
 
#define SysColorIndex   SysPixelColor
 
#define InitFreeClipRectList(heap, size)   InitBlockDataHeap (heap, sizeof (CLIPRECT), size)
 Initializes the private block data heap used to allocate clipping rectangles. More...
 
#define ClipRectAlloc(heap)   BlockDataAlloc (heap)
 Allocates a clipping rectangles from the private block data heap. More...
 
#define FreeClipRect(heap, cr)   BlockDataFree (heap, cr);
 Frees a clipping rectangle which is allocated from the private block data heap. More...
 
#define DestroyFreeClipRectList(heap)   DestroyBlockDataHeap (heap);
 Destroys the private block data heap used to allocate clipping rectangles. More...
 
#define UnionRectWithRegion   AddClipRect
 Is an alias of AddClipRect. More...
 
#define CopyRegion   ClipRgnCopy
 Is an alias of ClipRgnCopy. More...
 
#define IntersectRegion   ClipRgnIntersect
 Is an alias of ClipRgnIntersect. More...
 
#define HDC_SCREEN   ((HDC)0)
 Handle to the device context of the whole screen or the fake screen when MiniGUI is running under MiniGUI-Processes with compositing schema. More...
 
#define HDC_INVALID   ((HDC)-1)
 Indicates an invalid handle to device context. More...
 
#define CreateCompatibleDC(hdc)   CreateCompatibleDCEx(hdc, 0, 0)
 Creates a memory DC which is compatible with a given DC. More...
 
#define DeleteCompatibleDC(hdc)   DeleteMemDC(hdc)
 Deletes a memory DC. More...
 
#define GetBkColor(hdc)   GetDCAttr (hdc, DC_ATTR_BK_COLOR)
 Get the background color of a DC. More...
 
#define GetBkMode(hdc)   GetDCAttr (hdc, DC_ATTR_BK_MODE)
 Get the background mode of a DC. More...
 
#define GetPenColor(hdc)   GetDCAttr (hdc, DC_ATTR_PEN_COLOR)
 Get the pen color of a DC. More...
 
#define GetBrushColor(hdc)   GetDCAttr (hdc, DC_ATTR_BRUSH_COLOR)
 Get the brush color of a DC. More...
 
#define GetTextColor(hdc)   GetDCAttr (hdc, DC_ATTR_TEXT_COLOR)
 Get the text color of a DC. More...
 
#define GetTabStop(hdc)   GetDCAttr (hdc, DC_ATTR_TAB_STOP)
 Get the tabstop value of a DC. More...
 
#define SetBkColor(hdc, color)   SetDCAttr (hdc, DC_ATTR_BK_COLOR, (DWORD) color)
 Set the background color of a DC to a new value. More...
 
#define SetBkMode(hdc, mode)   SetDCAttr (hdc, DC_ATTR_BK_MODE, (DWORD) mode)
 Set the background color of a DC to a new mode. More...
 
#define SetPenColor(hdc, color)   SetDCAttr (hdc, DC_ATTR_PEN_COLOR, (DWORD) color)
 Set the pen color of a DC to a new value. More...
 
#define SetBrushColor(hdc, color)   SetDCAttr (hdc, DC_ATTR_BRUSH_COLOR, (DWORD) color)
 Set the brush color of a DC to a new value. More...
 
#define SetTextColor(hdc, color)   SetDCAttr (hdc, DC_ATTR_TEXT_COLOR, (DWORD) color)
 Set the text color of a DC to a new value. More...
 
#define SetTabStop(hdc, value)   SetDCAttr (hdc, DC_ATTR_TAB_STOP, (DWORD) value)
 Set the tabstop of a DC to a new value. More...
 
#define DrawHDotLine(hdc, x, y, w)   DrawHVDotLine (hdc, x, y, w, TRUE);
 Draws a horizontal dot dash line. More...
 
#define DrawVDotLine(hdc, x, y, h)   DrawHVDotLine (hdc, x, y, h, FALSE);
 Draws a vertical dot line. More...
 
#define PolygonGenerator(context, pts, vertices, cb)   PolygonGeneratorEx(context, pts, vertices, cb, NULL)
 This is a general polygon generator. More...
 
#define GetPenType(hdc)   GetDCAttr (hdc, DC_ATTR_PEN_TYPE)
 Get the pen type of a DC. More...
 
#define SetPenType(hdc, type)   SetDCAttr (hdc, DC_ATTR_PEN_TYPE, (DWORD) type)
 Set the pen type of a DC to a new type. More...
 
#define GetPenCapStyle(hdc)   GetDCAttr (hdc, DC_ATTR_PEN_CAP_STYLE)
 Get the pen cap style of a DC. More...
 
#define SetPenCapStyle(hdc, style)   SetDCAttr (hdc, DC_ATTR_PEN_CAP_STYLE, (DWORD) style)
 Set the pen type of a DC to a new type. More...
 
#define GetPenJoinStyle(hdc)   GetDCAttr (hdc, DC_ATTR_PEN_JOIN_STYLE)
 Get the pen join style of a DC. More...
 
#define SetPenJoinStyle(hdc, style)   SetDCAttr (hdc, DC_ATTR_PEN_JOIN_STYLE, (DWORD) style)
 Set the pen type of a DC to a new type. More...
 
#define GetPenWidth(hdc)   GetDCAttr (hdc, DC_ATTR_PEN_WIDTH)
 Get the pen width of a DC. More...
 
#define SetPenWidth(hdc, width)   SetDCAttr (hdc, DC_ATTR_PEN_WIDTH, (DWORD) width)
 Set the pen width of a DC to a new width. More...
 
#define GetBrushType(hdc)   GetDCAttr (hdc, DC_ATTR_BRUSH_TYPE)
 Get the brush type of a DC. More...
 
#define SetBrushType(hdc, type)   SetDCAttr (hdc, DC_ATTR_BRUSH_TYPE, (DWORD) type)
 Set the brush type of a DC to a new type. More...
 
#define GetMapMode(hdc)   GetDCAttr (hdc, DC_ATTR_MAP_MODE)
 Retrieve the current mapping mode of a DC. More...
 
#define SetMapMode(hdc, mapmode)   SetDCAttr (hdc, DC_ATTR_MAP_MODE, (DWORD)mapmode)
 Set the mapping mode of a display context. More...
 
#define GetViewportOrg(hdc, pPt)   GetDCLCS(hdc, DC_LCS_VORG, pPt)
 Retrieve the x-coordinates and y-coordinates of the viewport origin for a device context. More...
 
#define GetViewportExt(hdc, pPt)   GetDCLCS(hdc, DC_LCS_VEXT, pPt)
 Retrieve the x-extents and y-extents of the current viewport for a device context. More...
 
#define GetWindowOrg(hdc, pPt)   GetDCLCS(hdc, DC_LCS_WORG, pPt)
 Retrieve the x-coordinates and y-coordinates of the window for a device context. More...
 
#define GetWindowExt(hdc, pPt)   GetDCLCS(hdc, DC_LCS_WEXT, pPt)
 Retrieve the x-extents and y-extents of the current window for a device context. More...
 
#define SetViewportOrg(hdc, pPt)   SetDCLCS(hdc, DC_LCS_VORG, pPt)
 Set the x-coordinates and y-coordinates of the viewport origin for a device context. More...
 
#define SetViewportExt(hdc, pPt)   SetDCLCS(hdc, DC_LCS_VEXT, pPt)
 Set the x-extents and y-extents of the current viewport for a device context. More...
 
#define SetWindowOrg(hdc, pPt)   SetDCLCS(hdc, DC_LCS_WORG, pPt)
 Set the x-coordinates and y-coordinates of the window for a device context. More...
 
#define SetWindowExt(hdc, pPt)   SetDCLCS(hdc, DC_LCS_WEXT, pPt)
 Set the x-extents and y-extents of the current window for a device context. More...
 
#define CreateIcon(hdc, w, h, AndBits, XorBits, colornum)   CreateIconEx(hdc, w, h, AndBits, XorBits, colornum, NULL)
 
#define RECTWP(prc)   ((prc)->right - (prc)->left)
 Get the width of a RECT object by using the pointer to it. More...
 
#define RECTHP(prc)   ((prc)->bottom - (prc)->top)
 Get the height of a RECT object by using the pointer to it. More...
 
#define RECTW(rc)   ((rc).right - (rc).left)
 Get the width of a RECT object. More...
 
#define RECTH(rc)   ((rc).bottom - (rc).top)
 Get the height of a RECT object. More...
 
#define FONT_CHARSET_GB1988_0   "GB1988-0"
 EUC encoding of GB1988 charset, treat as ISO8859-1. More...
 
#define FONT_CHARSET_GB2312_0   "GB2312-0"
 EUC encoding of GB2312 charset. More...
 
#define FONT_CHARSET_GB18030_0   "GB18030-0"
 EUC encoding of GB18030 charset. More...
 
#define FONT_CHARSET_EUCTW   "EUC-TW"
 EUC encoding of CNS11643 charset, not supported. More...
 
#define FONT_CHARSET_KSC5636_0   "KSC5636-0"
 EUC encoding of KSC5636 charset, treat as ISO8859-1. More...
 
#define FONT_CHARSET_KSC5601_0   "KSC5601-0"
 EUC encoding of KSC5601 charset. More...
 
#define FONT_CHARSET_JISX0201_0   "JISX0201-0"
 EUC encoding of JISX0201 charset. More...
 
#define FONT_CHARSET_JISX0208_0   "JISX0208-0"
 EUC encoding of JISX0208 charset. More...
 
#define FONT_CHARSET_JISX0201_1   "JISX0201-1"
 Shift-JIS encoding of JISX0201 charset. More...
 
#define FONT_CHARSET_JISX0208_1   "JISX0208-1"
 Shift-JIS encoding of JISX0208 charset. More...
 
#define FONT_CHARSET_ISO_10646_1   "ISO-10646-1"
 UCS-2 encoding of UNICODE. More...
 
#define FONT_CHARSET_UTF8   "UTF-8"
 UTF-8 encoding of UNICODE. More...
 
#define FONT_CHARSET_UTF16LE   "UTF-16LE"
 UTF-16 encoding (Little-Endian) of UNICODE. More...
 
#define FONT_CHARSET_UTF16BE   "UTF-16BE"
 UTF-16 encoding (Big-Endian) of UNICODE. More...
 
#define ACHARTYPE_EXTRACT_BASIC(t)   (((t) & ACHARTYPE_BASIC_MASK))
 Extract the basic type from an abstract character type. More...
 
#define ACHARTYPE_EXTRACT_CATEGORY(t)   (((t) & ACHARTYPE_CATEGORY_MASK) >> 16)
 Extract the UNICODE general category from an abstract character type. More...
 
#define ACHARTYPE_EXTRACT_BREAK(t)   (((t) & ACHARTYPE_BREAK_MASK) >> 24)
 Extract the UNICODE break class from an abstract character type. More...
 
#define ACHARTYPE_UNKNOWN   0
 Unknown abstract character type. More...
 
#define ACHAR_BASIC_CTRL1   0x0100
 
#define ACHAR_BASIC_BEL   0x0200
 
#define ACHAR_BASIC_BS   0x0300
 
#define ACHAR_BASIC_HT   0x0400
 
#define ACHAR_BASIC_LF   0x0500
 
#define ACHAR_BASIC_VT   0x0600
 
#define ACHAR_BASIC_FF   0x0700
 
#define ACHAR_BASIC_CR   0x0800
 
#define ACHAR_BASIC_CTRL2   0x0900
 
#define ACHAR_BASIC_SPACE   0x0A00
 
#define ACHAR_BASIC_ZEROWIDTH   0x0B00
 
#define INV_LOGFONT   0
 Invalid logfont. More...
 
#define SYSLOGFONT_DEFAULT   0
 
#define SYSLOGFONT_WCHAR_DEF   1
 
#define SYSLOGFONT_FIXED   2
 
#define SYSLOGFONT_CAPTION   3
 
#define SYSLOGFONT_MENU   4
 
#define SYSLOGFONT_CONTROL   5
 
#define MB2WC(log_font, dest, mstr, n)   MB2WCEx (log_font, dest, sizeof(wchar_t) == 4, mstr, n)
 The backward compatibility version of MB2WCEx. More...
 
#define WC2MB(log_font, s, wc)   WC2MBEx (log_font, s, (Uchar32)wc)
 The backward compatibility version of WC2MBEx. More...
 
#define MBS2WCS(log_font, dest, mstr, mstr_len, n)
 The backward compatibility version of MBS2WCSEx. More...
 
#define WCS2MBS(log_font, dest, wcs, wcs_len, n)
 The backward compatibility version of WCS2MBSEx. More...
 
#define BIDI_TYPE_LTR   (BIDI_MASK_STRONG | BIDI_MASK_LETTER)
 Strong left to right. More...
 
#define BIDI_TYPE_RTL   (BIDI_MASK_STRONG | BIDI_MASK_LETTER | BIDI_MASK_RTL)
 Right to left characters. More...
 
#define BIDI_TYPE_AL   (BIDI_MASK_STRONG | BIDI_MASK_LETTER | BIDI_MASK_RTL | BIDI_MASK_ARABIC)
 Arabic characters. More...
 
#define BIDI_TYPE_LRE   (BIDI_MASK_STRONG | BIDI_MASK_EXPLICIT)
 Left-To-Right embedding. More...
 
#define BIDI_TYPE_RLE   (BIDI_MASK_STRONG | BIDI_MASK_EXPLICIT | BIDI_MASK_RTL)
 Right-To-Left embedding. More...
 
#define BIDI_TYPE_LRO   (BIDI_MASK_STRONG | BIDI_MASK_EXPLICIT | BIDI_MASK_OVERRIDE)
 Left-To-Right override. More...
 
#define BIDI_TYPE_RLO   (BIDI_MASK_STRONG | BIDI_MASK_EXPLICIT | BIDI_MASK_RTL | BIDI_MASK_OVERRIDE)
 Right-To-Left override. More...
 
#define BIDI_TYPE_PDF   (BIDI_MASK_WEAK | BIDI_MASK_EXPLICIT)
 Pop directional override. More...
 
#define BIDI_TYPE_EN   (BIDI_MASK_WEAK | BIDI_MASK_NUMBER)
 European digit. More...
 
#define BIDI_TYPE_AN   (BIDI_MASK_WEAK | BIDI_MASK_NUMBER | BIDI_MASK_ARABIC)
 Arabic digit. More...
 
#define BIDI_TYPE_ES   (BIDI_MASK_WEAK | BIDI_MASK_NUMSEPTER | BIDI_MASK_ES)
 European number separator. More...
 
#define BIDI_TYPE_ET   (BIDI_MASK_WEAK | BIDI_MASK_NUMSEPTER | BIDI_MASK_ET)
 European number terminator. More...
 
#define BIDI_TYPE_CS   (BIDI_MASK_WEAK | BIDI_MASK_NUMSEPTER | BIDI_MASK_CS)
 Common Separator. More...
 
#define BIDI_TYPE_NSM   (BIDI_MASK_WEAK | BIDI_MASK_NSM)
 Non spacing mark. More...
 
#define BIDI_TYPE_BN   (BIDI_MASK_WEAK | BIDI_MASK_SPACE | BIDI_MASK_BN)
 Boundary neutral. More...
 
#define BIDI_TYPE_BS   (BIDI_MASK_NEUTRAL | BIDI_MASK_SPACE | BIDI_MASK_SEPARATOR | BIDI_MASK_BS)
 Block separator (Paragraph separator) More...
 
#define BIDI_TYPE_SS   (BIDI_MASK_NEUTRAL | BIDI_MASK_SPACE | BIDI_MASK_SEPARATOR | BIDI_MASK_SS)
 Segment separator. More...
 
#define BIDI_TYPE_WS   (BIDI_MASK_NEUTRAL | BIDI_MASK_SPACE | BIDI_MASK_WS)
 Whitespace. More...
 
#define BIDI_TYPE_ON   (BIDI_MASK_NEUTRAL)
 Other Neutral. More...
 
#define BIDI_TYPE_LRI   (BIDI_MASK_NEUTRAL | BIDI_MASK_ISOLATE)
 Left-to-Right Isolate. More...
 
#define BIDI_TYPE_RLI   (BIDI_MASK_NEUTRAL | BIDI_MASK_ISOLATE | BIDI_MASK_RTL)
 Right-to-Left Isolate. More...
 
#define BIDI_TYPE_FSI   (BIDI_MASK_NEUTRAL | BIDI_MASK_ISOLATE | BIDI_MASK_FIRST)
 First Strong Isolate. More...
 
#define BIDI_TYPE_PDI   (BIDI_MASK_NEUTRAL | BIDI_MASK_WEAK | BIDI_MASK_ISOLATE)
 Pop Directional Isolate. More...
 
#define CTR_NONE   0x00
 No effects. More...
 
#define CTR_CAPITALIZE   0x01
 Puts the first typographic letter unit of each word, if lowercase, in titlecase; other characters are unaffected. More...
 
#define CTR_UPPERCASE   0x02
 Puts all letters in uppercase. More...
 
#define CTR_LOWERCASE   0x03
 Puts all letters in lowercase. More...
 
#define CTR_FULL_WIDTH   0x10
 Puts all typographic character units in fullwidth form. If a character does not have a corresponding fullwidth form, it is left as is. This value is typically used to typeset Latin letters and digits as if they were ideographic characters. More...
 
#define CTR_FULL_SIZE_KANA   0x20
 Converts all small Kana characters to the equivalent full-size Kana. This value is typically used for ruby annotation text, where authors may want all small Kana to be drawn as large Kana to compensate for legibility issues at the small font sizes typically used in ruby. More...
 
#define WBR_NORMAL   0x00
 Words break according to their customary rules, as defined by UNICODE LINE BREAKING ALGORITHM. More...
 
#define WBR_BREAK_ALL   0x01
 Breaking is allowed within “words”. More...
 
#define WBR_KEEP_ALL   0x02
 Breaking is forbidden within “words”. More...
 
#define LBP_NORMAL   0x00
 Breaks text using the most common set of line-breaking rules. More...
 
#define LBP_LOOSE   0x01
 Breaks text using the least restrictive set of line-breaking rules. Typically used for short lines, such as in newspapers. More...
 
#define LBP_STRICT   0x02
 Breaks text using the most stringent set of line-breaking rules. More...
 
#define LBP_ANYWHERE   0x03
 There is a soft wrap opportunity around every typographic character unit, including around any punctuation character or preserved spaces, or in the middle of words, disregarding any prohibition against line breaks, even those introduced by characters with the GL, WJ, or ZWJ breaking class or mandated by the word breaking rule. The different wrapping opportunities must not be prioritized. Hyphenation is not applied. More...
 
#define BOV_UNKNOWN   0x0000
 
#define BOV_WHITESPACE   0x8000
 
#define BOV_EXPANDABLE_SPACE   0x0800
 
#define BOV_ZERO_WIDTH   0x0080
 
#define BOV_GB_CHAR_BREAK   0x1000
 
#define BOV_GB_CURSOR_POS   0x2000
 
#define BOV_GB_BACKSPACE_DEL_CH   0x4000
 
#define BOV_WB_WORD_BOUNDARY   0x0100
 
#define BOV_WB_WORD_START   0x0200
 
#define BOV_WB_WORD_END   0x0400
 
#define BOV_SB_SENTENCE_BOUNDARY   0x0010
 
#define BOV_SB_SENTENCE_START   0x0020
 
#define BOV_SB_SENTENCE_END   0x0040
 
#define BOV_LB_ALLOWED   (BOV_LB_BREAK_FLAG | 0x0001)
 
#define BOV_LB_MANDATORY   (BOV_LB_BREAK_FLAG | BOV_LB_MANDATORY_FLAG | 0x0002)
 
#define BOV_LB_NOTALLOWED   0x0003
 
#define GetTextCharacterExtra(hdc)   GetDCAttr (hdc, DC_ATTR_CHAR_EXTRA)
 Retrieve the current inter-character spacing for the DC. More...
 
#define GetTextWordExtra(hdc)   GetDCAttr (hdc, DC_ATTR_WORD_EXTRA)
 Retrieve the current inter-word spacing for the DC. More...
 
#define GetTextAboveLineExtra(hdc)   GetDCAttr (hdc, DC_ATTR_ALINE_EXTRA)
 Retrieve the current spacing above line for the DC. More...
 
#define GetTextBellowLineExtra(hdc)   GetDCAttr (hdc, DC_ATTR_BLINE_EXTRA)
 Retrieve the current spacing bellow line for the DC. More...
 
#define SetTextCharacterExtra(hdc, extra)   SetDCAttr (hdc, DC_ATTR_CHAR_EXTRA, (DWORD) extra)
 Set the inter-character spacing for the DC and returns the old spacing value. More...
 
#define SetTextWordExtra(hdc, extra)   SetDCAttr (hdc, DC_ATTR_WORD_EXTRA, (DWORD) extra)
 Set the inter-word spacing for the DC and returns the old spacing value. More...
 
#define SetTextAboveLineExtra(hdc, extra)   SetDCAttr (hdc, DC_ATTR_ALINE_EXTRA, (DWORD) extra)
 Set the spacing above line for the DC and returns the old value. More...
 
#define SetTextBellowLineExtra(hdc, extra)   SetDCAttr (hdc, DC_ATTR_BLINE_EXTRA, (DWORD) extra)
 Set the spacing bellow line for the DC and returns the old value. More...
 
#define GetTextAlign(hdc)   GetDCAttr (hdc, DC_ATTR_TEXT_ALIGN)
 Retrieve the current text-alignment flags of a DC. More...
 
#define SetTextAlign(hdc, ta_flags)   SetDCAttr (hdc, DC_ATTR_TEXT_ALIGN, (DWORD)ta_flags)
 Set text-alignment flags of a DC. More...
 
#define TextOut(hdc, x, y, text)   TextOutLen (hdc, x, y, text, -1)
 Outputs text. More...
 
#define TabbedTextOut(hdc, x, y, text)   TabbedTextOutLen (hdc, x, y, text, -1)
 Outputs formatted text. More...
 
#define DrawText(hdc, text, n, rc, format)   DrawTextEx2 (hdc, text, n, rc, 0, format, NULL)
 Draws a formatted text in a rectangle. More...
 
#define DrawTextEx(hdc, text, n, rc, indent, format)   DrawTextEx2 (hdc, text, n, rc, indent, format, NULL)
 Draws a formatted text in a rectangle. More...
 
#define MLS_BLENDMODE_NONE   0x00
 
#define LoadBitmap   LoadBitmapFromFile
 An alias of LoadBitmapFromFile. More...
 
#define LoadMyBitmap   LoadMyBitmapFromFile
 Alias of LoadMyBitmapFromFile. More...
 
#define GLYPHBMP_TYPE_MONO   0x00
 
#define GLYPHBMP_TYPE_GREY   0x01
 
#define GLYPHBMP_TYPE_GREY4b   0x02
 
#define GLYPHBMP_TYPE_SUBPIXEL   0x03
 
#define GLYPHBMP_TYPE_PRERENDER   0x04
 
#define WSR_NORMAL   0x00
 This value directs GetUCharsUntilParagraphBoundary collapses sequences of white space into a single character. Lines may wrap at allowed soft wrap opportunities. More...
 
#define WSR_PRE   0x01
 This value prevents GetUCharsUntilParagraphBoundary from collapsing sequences of white space. Segment breaks such as line feeds are preserved as forced line breaks. Lines only break at forced line breaks; content that does not fit within the specified extent overflows it. More...
 
#define WSR_NOWRAP   0x02
 Like WSR_NORMAL, this value collapses white spaces; but like WSR_PRE, it does not allow wrapping. More...
 
#define WSR_PRE_WRAP   0x03
 Like WSR_PRE, this value preserves white space; but like WSR_NORMAL, it allows wrapping. More...
 
#define WSR_BREAK_SPACES   0x04
 The behavior is identical to that of WSR_PRE_WRAP, except that: More...
 
#define WSR_PRE_LINE   0x05
 Like WS_NORMAL, this value collapses consecutive spaces and allows wrapping, but preserves segment breaks in the source as forced line breaks. More...
 
#define UCHAR2ACHAR(uc)   ((uc) | 0x80000000)
 The macro to convert a Uchar32 value to Achar32 value. More...
 
#define GRF_WRITING_MODE_HORIZONTAL_TB   0x00000000
 
#define GRF_WRITING_MODE_HORIZONTAL_BT   0x10000000
 
#define GRF_WRITING_MODE_VERTICAL_RL   0x20000000
 
#define GRF_WRITING_MODE_VERTICAL_LR   0x30000000
 
#define GRF_TEXT_ORIENTATION_UPRIGHT   0x00000000
 
#define GRF_TEXT_ORIENTATION_SIDEWAYS   0x01000000
 
#define GRF_TEXT_ORIENTATION_UPSIDE_DOWN   0x02000000
 
#define GRF_TEXT_ORIENTATION_SIDEWAYS_LEFT   0x03000000
 
#define GRF_TEXT_ORIENTATION_AUTO   0x04000000
 
#define GRF_TEXT_ORIENTATION_MIXED   0x05000000
 
#define GRF_LINE_EXTENT_FIXED   0x00000000
 
#define GRF_LINE_EXTENT_VARIABLE   0x00400000
 
#define GRF_INDENT_NONE   0x00000000
 
#define GRF_INDENT_FIRST_LINE   0x00100000
 
#define GRF_INDENT_HANGING   0x00200000
 
#define GRF_OVERFLOW_WRAP_NORMAL   0x00000000
 
#define GRF_OVERFLOW_WRAP_BREAK_WORD   0x00040000
 
#define GRF_OVERFLOW_WRAP_ANYWHERE   0x00080000
 
#define GRF_OVERFLOW_ELLIPSIZE_NONE   0x00000000
 
#define GRF_OVERFLOW_ELLIPSIZE_START   0x00010000
 
#define GRF_OVERFLOW_ELLIPSIZE_MIDDLE   0x00020000
 
#define GRF_OVERFLOW_ELLIPSIZE_END   0x00030000
 
#define GRF_ALIGN_START   0x00000000
 
#define GRF_ALIGN_END   0x00001000
 
#define GRF_ALIGN_LEFT   0x00002000
 
#define GRF_ALIGN_RIGHT   0x00003000
 
#define GRF_ALIGN_CENTER   0x00004000
 
#define GRF_ALIGN_JUSTIFY   0x00005000
 
#define GRF_TEXT_JUSTIFY_NONE   0x00000000
 
#define GRF_TEXT_JUSTIFY_AUTO   0x00000100
 
#define GRF_TEXT_JUSTIFY_INTER_WORD   0x00000200
 
#define GRF_TEXT_JUSTIFY_INTER_CHAR   0x00000300
 
#define GRF_HANGING_PUNC_NONE   0x00000000
 
#define GRF_HANGING_PUNC_FORCE_END   0x00000010
 
#define GRF_HANGING_PUNC_ALLOW_END   0x00000020
 
#define GRF_HANGING_PUNC_OPEN   0x00000040
 
#define GRF_HANGING_PUNC_CLOSE   0x00000080
 
#define GRF_SPACES_KEEP   0x00000000
 
#define GRF_SPACES_REMOVE_START   0x00000001
 
#define GRF_SPACES_REMOVE_END   0x00000002
 
#define GRF_SPACES_HANGE_END   0x00000004
 

Typedefs

typedef struct _BLOCKHEAP BLOCKHEAP
 
typedef BLOCKHEAPPBLOCKHEAP
 Data type of the pointer to a BLOCKHEAP. More...
 
typedef struct _BITMAP BITMAP
 
typedef BITMAPPBITMAP
 Data type of pointer to a BITMAP. More...
 
typedef struct _MYBITMAP MYBITMAP
 
typedef struct _MYBITMAPPMYBITMAP
 Data type of pointer to a struct _MYBITMAP. More...
 
typedef struct _CLIPRECT CLIPRECT
 
typedef struct _CLIPRGN CLIPRGN
 
typedef CLIPRGNPCLIPRGN
 Data type of the pointer to a CLIPRGN. More...
 
typedef void(* CB_DIRECT_DRAW_RECT) (HDC hdc, Uint8 *pixels, int pitch, int bytesPerPixel, const RECT *rc, void *context)
 Type of directly access pixels hook function. More...
 
typedef int(* ON_UPDATE_SECONDARYDC) (HWND hwnd, HDC secondary_dc, HDC real_dc, const RECT *secondary_rc, const RECT *real_rc, const RECT *main_update_rc)
 The callback type of on updating secondary DC. More...
 
typedef void(* CB_LINE) (void *context, int stepx, int stepy)
 The type of line generator callback. More...
 
typedef void(* CB_CIRCLE) (void *context, int x1, int x2, int y)
 The type of circle generator callback. More...
 
typedef void(* CB_ELLIPSE) (void *context, int x1, int x2, int y)
 The type of ellipse generator callback. More...
 
typedef void(* CB_ARC) (void *context, int x, int y)
 The type of arc generator callback. More...
 
typedef void(* CB_POLYGON) (void *context, int x1, int x2, int y)
 The type of polygon generator callback. More...
 
typedef BOOL(* CB_EQUAL_PIXEL) (void *context, int x, int y)
 Flodd filling generator's equation callback. More...
 
typedef void(* CB_FLOOD_FILL) (void *context, int x1, int x2, int y)
 Flodd filling generator's scan line callback. More...
 
typedef struct _STIPPLE STIPPLE
 
typedef struct _ARC ARC
 
typedef struct _STRETCH_EXTRA_INFO STRETCH_EXTRA_INFO
 
typedef struct _LOGFONT LOGFONT
 
typedef LOGFONTPLOGFONT
 Data type of pointer to a LOGFONT. More...
 
typedef struct _WORDINFO WORDINFO
 Date type of _WORDINFO. More...
 
typedef struct _FONTMETRICS FONTMETRICS
 
typedef struct _GLYPHBITMAP GLYPHBITMAP
 
typedef Sint8 BidiLevel
 
typedef Uint16 BidiType
 
typedef Uint32 BidiBracketType
 
typedef Uint8 BidiJoiningType
 
typedef Uint8 BidiArabicProp
 
typedef Uint16 ParagraphDir
 
typedef Uint16 BreakOppo
 
typedef struct _DTFIRSTLINE DTFIRSTLINE
 
typedef BOOL(* CB_ALLOC_BITMAP_BUFF) (void *context, BITMAP *bmp)
 The type of callback to allocate pixel buffer for BITMAP object. More...
 
typedef void(* CB_ONE_SCANLINE) (void *context, MYBITMAP *my_bmp, int y)
 The type of scanline loaded callback. More...
 
typedef struct _ACHARMAPINFO ACHARMAPINFO
 Data type of struct _ACHARMAPINFO. More...
 
typedef struct _GLYPHINFO GLYPHINFO
 Data type of struct _GLYPHINFO. More...
 
typedef struct _GLYPHEXTINFO GLYPHEXTINFO
 
typedef struct _GLYPHPOS GLYPHPOS
 
typedef struct _TEXTRUNS TEXTRUNS
 
typedef struct _LAYOUT LAYOUT
 
typedef struct _LAYOUTLINE LAYOUTLINE
 
typedef struct _DrmSurfaceInfo DrmSurfaceInfo
 

Enumerations

enum  {
  IDX_COLOR_transparent = 0, IDX_COLOR_darkblue, IDX_COLOR_darkgreen, IDX_COLOR_darkcyan,
  IDX_COLOR_darkred, IDX_COLOR_darkmagenta, IDX_COLOR_darkyellow, IDX_COLOR_darkgray,
  IDX_COLOR_lightgray, IDX_COLOR_blue, IDX_COLOR_green, IDX_COLOR_cyan,
  IDX_COLOR_red, IDX_COLOR_magenta, IDX_COLOR_yellow, IDX_COLOR_lightwhite,
  IDX_COLOR_black
}
 
enum  PenType { PT_SOLID, PT_ON_OFF_DASH, PT_DOUBLE_DASH }
 
enum  PTCapStyle { PT_CAP_BUTT, PT_CAP_ROUND, PT_CAP_PROJECTING }
 
enum  PTJoinStyle { PT_JOIN_MITER, PT_JOIN_ROUND, PT_JOIN_BEVEL }
 
enum  BrushType { BT_SOLID, BT_TILED, BT_STIPPLED, BT_OPAQUE_STIPPLED }
 
enum  ColorBlendMethod { ,
  COLOR_BLEND_PD_CLEAR = 0x0100, COLOR_BLEND_PD_SRC = 0x0101, COLOR_BLEND_PD_DST = 0x0102, COLOR_BLEND_PD_SRC_OVER = 0x0103,
  COLOR_BLEND_PD_DST_OVER = 0x0104, COLOR_BLEND_PD_SRC_IN = 0x0105, COLOR_BLEND_PD_DST_IN = 0x0106, COLOR_BLEND_PD_SRC_OUT = 0x0107,
  COLOR_BLEND_PD_DST_OUT = 0x0108, COLOR_BLEND_PD_SRC_ATOP = 0x0109, COLOR_BLEND_PD_DST_ATOP = 0x010a, COLOR_BLEND_PD_XOR = 0x010b,
  COLOR_BLEND_PD_PLUS = 0x010c, COLOR_BLEND_PD_MODULATE = 0x010d , COLOR_BLEND_SP_NORMAL = 0x0801, COLOR_BLEND_SP_MULTIPLY = 0x0830,
  COLOR_BLEND_SP_SCREEN = 0x0831, COLOR_BLEND_SP_OVERLAY = 0x0832, COLOR_BLEND_SP_DARKEN = 0x0833, COLOR_BLEND_SP_LIGHTEN = 0x0834,
  COLOR_BLEND_SP_COLOR_DODGE = 0x0835, COLOR_BLEND_SP_COLOR_BURN = 0x0836, COLOR_BLEND_SP_HARD_LIGHT = 0x0837, COLOR_BLEND_SP_SOFT_LIGHT = 0x0838,
  COLOR_BLEND_SP_DIFFERENCE = 0x0839, COLOR_BLEND_SP_EXCLUSION = 0x083a , COLOR_BLEND_NS_HUE = 0x103b, COLOR_BLEND_NS_SATURATION = 0x103c,
  COLOR_BLEND_NS_COLOR = 0x103d, COLOR_BLEND_NS_LUMINOSITY = 0x103e
}
 
enum  ColorLogicalOp
 
enum  ScalingFilter {
  SCALING_FILTER_FAST = 0x00000000, SCALING_FILTER_GOOD = 0x00010000, SCALING_FILTER_BEST = 0x00020000, SCALING_FILTER_NEAREST = 0x00020000,
  SCALING_FILTER_BILINEAR = 0x00040000, SCALING_FILTER_CONVOLUTION = 0x00050000
}
 
enum  UCharGeneralCategory
 
enum  UCharBreakType
 
enum  ScriptType
 
enum  LanguageCode {
  LANGCODE_unknown = 0xFF, LANGCODE_aa = 0, LANGCODE_ab, LANGCODE_af,
  LANGCODE_am, LANGCODE_ar, LANGCODE_as, LANGCODE_ay,
  LANGCODE_az, LANGCODE_ba, LANGCODE_be, LANGCODE_bg,
  LANGCODE_bh, LANGCODE_bi, LANGCODE_bn, LANGCODE_bo,
  LANGCODE_br, LANGCODE_ca, LANGCODE_co, LANGCODE_cs,
  LANGCODE_cy, LANGCODE_da, LANGCODE_de, LANGCODE_dv,
  LANGCODE_dz, LANGCODE_el, LANGCODE_en, LANGCODE_eo,
  LANGCODE_es, LANGCODE_et, LANGCODE_eu, LANGCODE_fa,
  LANGCODE_fi, LANGCODE_fj, LANGCODE_fo, LANGCODE_fr,
  LANGCODE_fy, LANGCODE_ga, LANGCODE_gd, LANGCODE_gl,
  LANGCODE_gn, LANGCODE_gu, LANGCODE_ha, LANGCODE_hi,
  LANGCODE_he, LANGCODE_hr, LANGCODE_hu, LANGCODE_hy,
  LANGCODE_ia, LANGCODE_id, LANGCODE_ie, LANGCODE_ik,
  LANGCODE_in, LANGCODE_is, LANGCODE_it, LANGCODE_iu,
  LANGCODE_iw, LANGCODE_ja, LANGCODE_ji, LANGCODE_jw,
  LANGCODE_ka, LANGCODE_kk, LANGCODE_kl, LANGCODE_km,
  LANGCODE_kn, LANGCODE_ko, LANGCODE_ks, LANGCODE_ku,
  LANGCODE_ky, LANGCODE_la, LANGCODE_ln, LANGCODE_lo,
  LANGCODE_lt, LANGCODE_lv, LANGCODE_mg, LANGCODE_mi,
  LANGCODE_mk, LANGCODE_ml, LANGCODE_mn, LANGCODE_mo,
  LANGCODE_mr, LANGCODE_ms, LANGCODE_mt, LANGCODE_my,
  LANGCODE_na, LANGCODE_ne, LANGCODE_nl, LANGCODE_no,
  LANGCODE_oc, LANGCODE_om, LANGCODE_or, LANGCODE_pa,
  LANGCODE_pl, LANGCODE_ps, LANGCODE_pt, LANGCODE_qu,
  LANGCODE_rm, LANGCODE_rn, LANGCODE_ro, LANGCODE_ru,
  LANGCODE_rw, LANGCODE_sa, LANGCODE_sd, LANGCODE_sg,
  LANGCODE_sh, LANGCODE_si, LANGCODE_sk, LANGCODE_sl,
  LANGCODE_sm, LANGCODE_sn, LANGCODE_so, LANGCODE_sq,
  LANGCODE_sr, LANGCODE_ss, LANGCODE_st, LANGCODE_su,
  LANGCODE_sv, LANGCODE_sw, LANGCODE_ta, LANGCODE_te,
  LANGCODE_tg, LANGCODE_th, LANGCODE_ti, LANGCODE_tk,
  LANGCODE_tl, LANGCODE_tn, LANGCODE_to, LANGCODE_tr,
  LANGCODE_ts, LANGCODE_tt, LANGCODE_tw, LANGCODE_ug,
  LANGCODE_uk, LANGCODE_ur, LANGCODE_uz, LANGCODE_vi,
  LANGCODE_vo, LANGCODE_wo, LANGCODE_xh, LANGCODE_yi,
  LANGCODE_yo, LANGCODE_za, LANGCODE_zh, LANGCODE_zu
}
 
enum  FT2LCDFilter {
  MG_SMOOTH_NONE = 0, MG_SMOOTH_DEFAULT = 1, MG_SMOOTH_LIGHT = 2, MG_SMOOTH_LEGACY = 16,
  MG_SMOOTH_MAX
}
 
enum  ACHARSHAPETYPE
 Achar32 shape type. More...
 

Functions

MG_EXPORT BOOL InitBlockDataHeap (PBLOCKHEAP heap, size_t bd_size, size_t heap_size)
 Initializes a private block data heap. More...
 
MG_EXPORT void * BlockDataAlloc (PBLOCKHEAP heap)
 Allocates a data block from private heap. More...
 
MG_EXPORT void BlockDataFree (PBLOCKHEAP heap, void *data)
 Frees an allocated data block. More...
 
MG_EXPORT void DestroyBlockDataHeap (PBLOCKHEAP heap)
 Destroys a private block data heap. More...
 
MG_EXPORT void GUIAPI InitClipRgn (PCLIPRGN pRgn, PBLOCKHEAP pFreeList)
 Initializes a clipping region. More...
 
MG_EXPORT void GUIAPI EmptyClipRgn (PCLIPRGN pRgn)
 Empties a clipping region. More...
 
MG_EXPORT PCLIPRGN GUIAPI CreateClipRgn (void)
 Creates a clipping region. More...
 
MG_EXPORT void GUIAPI DestroyClipRgn (PCLIPRGN pRgn)
 Empties and destroys a clipping region. More...
 
MG_EXPORT BOOL GUIAPI ClipRgnCopy (PCLIPRGN pDstRgn, const CLIPRGN *pSrcRgn)
 Copies one region to another. More...
 
MG_EXPORT BOOL GUIAPI ClipRgnIntersect (PCLIPRGN pRstRgn, const CLIPRGN *pRgn1, const CLIPRGN *pRgn2)
 Intersects two region. More...
 
MG_EXPORT void GUIAPI GetClipRgnBoundRect (PCLIPRGN pRgn, PRECT pRect)
 Get the bounding rectangle of a region. More...
 
MG_EXPORT BOOL GUIAPI SetClipRgn (PCLIPRGN pRgn, const RECT *pRect)
 Set a region to contain only one rect. More...
 
MG_EXPORT BOOL GUIAPI IsEmptyClipRgn (const CLIPRGN *pRgn)
 Determine whether a region is an empty region. More...
 
MG_EXPORT BOOL GUIAPI AddClipRect (PCLIPRGN pRgn, const RECT *pRect)
 Unions one rectangle to a region. More...
 
MG_EXPORT BOOL GUIAPI IntersectClipRect (PCLIPRGN pRgn, const RECT *pRect)
 Intersects a rectangle with a region. More...
 
MG_EXPORT BOOL GUIAPI SubtractClipRect (PCLIPRGN pRgn, const RECT *pRect)
 Subtracts a rectangle from a region. More...
 
MG_EXPORT BOOL GUIAPI PtInRegion (const PCLIPRGN region, int x, int y)
 Determine whether a point is in a region. More...
 
MG_EXPORT BOOL GUIAPI RectInRegion (const PCLIPRGN region, const RECT *rect)
 Determine whether a rectangle is intersected with a region. More...
 
static BOOL GUIAPI AreRegionsIntersected (const PCLIPRGN s1, const PCLIPRGN s2)
 Determine whether two regions are intersected. More...
 
MG_EXPORT void GUIAPI OffsetRegionEx (PCLIPRGN region, const RECT *rcClient, const RECT *rcScroll, int x, int y)
 Offsets the region in the specified window's scroll area. More...
 
MG_EXPORT void GUIAPI OffsetRegion (PCLIPRGN region, int x, int y)
 Offsets the region. More...
 
MG_EXPORT BOOL GUIAPI UnionRegion (PCLIPRGN dst, const CLIPRGN *src1, const CLIPRGN *src2)
 Unions two regions. More...
 
MG_EXPORT BOOL GUIAPI SubtractRegion (CLIPRGN *rgnD, const CLIPRGN *rgnM, const CLIPRGN *rgnS)
 Substrcts a region from another. More...
 
MG_EXPORT BOOL GUIAPI XorRegion (CLIPRGN *dst, const CLIPRGN *src1, const CLIPRGN *src2)
 Does the XOR operation between two regions. More...
 
MG_EXPORT BOOL GUIAPI InitCircleRegion (PCLIPRGN dst, int x, int y, int r)
 Initializes a region to be an enclosed circle. More...
 
MG_EXPORT BOOL GUIAPI InitEllipseRegion (PCLIPRGN dst, int x, int y, int rx, int ry)
 Initializes a region to be an enclosed ellipse. More...
 
MG_EXPORT BOOL GUIAPI InitPolygonRegion (PCLIPRGN dst, const POINT *pts, int vertices)
 Initializes a region to be an enclosed polygon. More...
 
MG_EXPORT Uint32 GUIAPI GetGDCapability (HDC hdc, int iItem)
 Returns a capability of a DC. More...
 
MG_EXPORT HDC GUIAPI GetDCEx (HWND hWnd, BOOL bClient)
 Get a window or client DC of a window. More...
 
static HDC GUIAPI GetDC (HWND hWnd)
 Get a window DC of a window. More...
 
static HDC GUIAPI GetClientDC (HWND hWnd)
 Get a client DC of a window. More...
 
MG_EXPORT HDC GUIAPI GetSubDC (HDC hdc, int off_x, int off_y, int width, int height)
 This function gets a sub DC which is compliant to the specified client DC. More...
 
MG_EXPORT void GUIAPI ReleaseDC (HDC hdc)
 Releases a DC from DC pool. More...
 
MG_EXPORT HWND GUIAPI WindowFromDC (HDC hdc)
 Get the window handle from DC. More...
 
MG_EXPORT int GUIAPI SaveDC (HDC hdc)
 Saves the current state of a device context. More...
 
MG_EXPORT BOOL GUIAPI RestoreDC (HDC hdc, int saved_dc)
 Restores a device context (DC) to the specified state. More...
 
MG_EXPORT HDC GUIAPI CreateCompatibleDCEx (HDC hdc, int width, int height)
 Creates a memory DC which is compatible with the specified reference DC. More...
 
MG_EXPORT BOOL GUIAPI IsCompatibleDC (HDC hdc1, HDC hdc2)
 Check whether a given DC is compliant to a specific DC. More...
 
MG_EXPORT BOOL GUIAPI IsMemDC (HDC hdc)
 Check whether a given DC is a memory DC. More...
 
MG_EXPORT BOOL GUIAPI IsScreenDC (HDC hdc)
 Check whether a given DC is a screen DC. More...
 
MG_EXPORT BOOL GUIAPI IsWindowDC (HDC hdc)
 Check whether a given DC is a window DC. More...
 
MG_EXPORT HDC GUIAPI CreateMemDCEx (int width, int height, int depth, DWORD flags, Uint32 Rmask, Uint32 Gmask, Uint32 Bmask, Uint32 Amask, void *bits, int pitch)
 Creates a memory DC. More...
 
static HDC GUIAPI CreateMemDC (int width, int height, int depth, DWORD flags, Uint32 Rmask, Uint32 Gmask, Uint32 Bmask, Uint32 Amask)
 Creates a memory DC. More...
 
MG_EXPORT HDC GUIAPI CreateSubMemDC (HDC parent, int off_x, int off_y, int width, int height, BOOL comp_to_parent)
 Creates a sub memory DC in the given memory DC. More...
 
MG_EXPORT HDC GUIAPI CreateMemDCFromBitmap (HDC hdc, const BITMAP *bmp)
 Creates a memory DC from a reference DC and a BITMAP object. More...
 
MG_EXPORT HDC GUIAPI CreateMemDCFromMyBitmap (const MYBITMAP *my_bmp, const RGB *pal)
 Creates a memory DC from a device independent MYBITMAP object. More...
 
MG_EXPORT BOOL GUIAPI ConvertMemDC (HDC mem_dc, HDC ref_dc, DWORD flags)
 Converts a memory DC to have a same format as a reference DC. More...
 
MG_EXPORT BOOL GUIAPI SetMemDCAlpha (HDC mem_dc, DWORD flags, Uint8 alpha)
 Set the alpha value for the entire surface of a DC, as opposed to using the alpha component of each pixel. More...
 
MG_EXPORT BOOL GUIAPI SetMemDCColorKey (HDC mem_dc, DWORD flags, Uint32 color_key)
 Set the color key (transparent pixel) of a memory DC. More...
 
MG_EXPORT void GUIAPI DeleteMemDC (HDC mem_dc)
 Deletes a memory DC. More...
 
MG_EXPORT Uint8 *GUIAPI LockDC (HDC hdc, const RECT *rw_rc, int *width, int *height, int *pitch)
 Locks a dc to get direct access to pixels in the DC. More...
 
MG_EXPORT BOOL GUIAPI LockDCEx (HDC hdc, const PCLIPRGN region, void *context, CB_DIRECT_DRAW_RECT cb)
 directly access the pixels in a DC. More...
 
MG_EXPORT void GUIAPI UnlockDC (HDC hdc)
 Unlocks a locked DC. More...
 
MG_EXPORT HDC GUIAPI CreatePrivateDC (HWND hwnd)
 Creates a private window DC of a window. More...
 
MG_EXPORT HDC GUIAPI CreatePrivateClientDC (HWND hwnd)
 Creates a private client DC of a window. More...
 
HDC GUIAPI CreatePrivateSubDC (HDC hdc, int off_x, int off_y, int width, int height)
 Creates a private SubDC of a window. More...
 
MG_EXPORT HDC GUIAPI GetPrivateClientDC (HWND hwnd)
 Returns the private client DC of a window. More...
 
MG_EXPORT void GUIAPI DeletePrivateDC (HDC hdc)
 Deletes the DC returned by CreatePrivateDC or CreatePrivateClientDC or CreatePrivateSubDC. More...
 
MG_EXPORT HDC GUIAPI CreateSecondaryDC (HWND hwnd)
 Creates a secondary DC for a main window. More...
 
MG_EXPORT HDC GUIAPI SetSecondaryDC (HWND hwnd, HDC secondary_dc, ON_UPDATE_SECONDARYDC on_update_secondarydc)
 Set a window's secondary DC and the callback procedure for the secondary DC update. More...
 
MG_EXPORT HDC GUIAPI GetSecondaryDC (HWND hwnd)
 Retrieve and return the secondary DC of a specific window. More...
 
MG_EXPORT HDC GUIAPI GetDCInSecondarySurface (HWND hWnd, BOOL bClient)
 Get a window or client DC by using the secondary surface if possible. More...
 
static HDC GUIAPI GetSecondaryClientDC (HWND hwnd)
 Get a client DC of a window by using the secondary surface if possible. More...
 
static void GUIAPI ReleaseSecondaryDC (HWND hwnd, HDC hdc)
 Release the DC returned by GetSecondaryClientDC. More...
 
MG_EXPORT void GUIAPI DeleteSecondaryDC (HWND hwnd)
 Deletes the secondary DC of the window. More...
 
MG_EXPORT HDC GUIAPI GetEffectiveCDC (HWND hwnd)
 Get the effective client DC of a window. More...
 
MG_EXPORT BOOL GUIAPI SyncUpdateDC (HDC hdc)
 Synchronize the update rectangles of the surface corresponding to a DC to screen. More...
 
MG_EXPORT BOOL GUIAPI SyncUpdateSurface (HWND hwnd)
 Synchronize the update rectangles of the backing surface of a window to screen. More...
 
MG_EXPORT Uint32 GUIAPI GetDCAttr (HDC hdc, int attr)
 Get a specified attribute value of a DC. More...
 
MG_EXPORT Uint32 GUIAPI SetDCAttr (HDC hdc, int attr, Uint32 value)
 Set a specified attribute value of a DC. More...
 
MG_EXPORT int GUIAPI GetRasterOperation (HDC hdc)
 Get the raster operation of a DC. More...
 
MG_EXPORT int GUIAPI SetRasterOperation (HDC hdc, int rop)
 Set the raster operation of a DC to a new value. More...
 
MG_EXPORT int GUIAPI GetPalette (HDC hdc, int start, int len, GAL_Color *cmap)
 Get palette entries of a DC. More...
 
MG_EXPORT BOOL GUIAPI SetPalette (HDC hdc, int start, int len, GAL_Color *cmap)
 Set palette entries of a DC. More...
 
MG_EXPORT BOOL GUIAPI SetColorfulPalette (HDC hdc)
 Set a DC with colorful palette. More...
 
MG_EXPORT HPALETTE GUIAPI CreatePalette (GAL_Palette *pal)
 Creates a logical palette. More...
 
MG_EXPORT BOOL GUIAPI SelectPalette (HDC hdc, HPALETTE hpal, BOOL reserved)
 Selects a palette for a DC. More...
 
MG_EXPORT BOOL GUIAPI RealizePalette (HDC hdc)
 This function maps palette entries from the current logical palette to the system palette. More...
 
MG_EXPORT BOOL GUIAPI ResizePalette (HPALETTE hpal, int len)
 Resizes a logical palette. More...
 
MG_EXPORT void GUIAPI DestroyPalette (HPALETTE hpal)
 Destroy a logical palette. More...
 
MG_EXPORT HPALETTE GUIAPI GetDefaultPalette (void)
 Get the system default logical palette. More...
 
MG_EXPORT int GUIAPI GetPaletteEntries (HPALETTE hpal, int start, int len, GAL_Color *cmap)
 Get palette entries of a logical palette. More...
 
MG_EXPORT int GUIAPI SetPaletteEntries (HPALETTE hpal, int start, int len, GAL_Color *cmap)
 Set palette entries of a logical palette. More...
 
MG_EXPORT UINT GUIAPI GetNearestPaletteIndex (HPALETTE hpal, Uint8 red, Uint8 green, Uint8 blue)
 Get the nearest palette index in the logical palette for a spefici color. More...
 
MG_EXPORT RGBCOLOR GUIAPI GetNearestColor (HDC hdc, Uint8 red, Uint8 green, Uint8 blue)
 Get the nearest color compliant to a DC for a spefici color. More...
 
MG_EXPORT void GUIAPI SetPixel (HDC hdc, int x, int y, gal_pixel pixel)
 Set the pixel with a new pixel value at the specified position on a DC. More...
 
MG_EXPORT gal_pixel GUIAPI SetPixelRGB (HDC hdc, int x, int y, Uint8 r, Uint8 g, Uint8 b)
 Set the pixel by a RGB triple at the specified position on a DC. More...
 
MG_EXPORT gal_pixel GUIAPI SetPixelRGBA (HDC hdc, int x, int y, Uint8 r, Uint8 g, Uint8 b, Uint8 a)
 Set the pixel by a RGBA quarter at the specified position on a DC. More...
 
MG_EXPORT gal_pixel GUIAPI GetPixel (HDC hdc, int x, int y)
 Get the pixel value at the specified position on a DC. More...
 
MG_EXPORT gal_pixel GUIAPI GetPixelRGB (HDC hdc, int x, int y, Uint8 *r, Uint8 *g, Uint8 *b)
 Get the pixel value at the specified position on a DC in RGB triple. More...
 
MG_EXPORT gal_pixel GUIAPI GetPixelRGBA (HDC hdc, int x, int y, Uint8 *r, Uint8 *g, Uint8 *b, Uint8 *a)
 Get the pixel value at the specified position on a DC in RGBA quarter. More...
 
MG_EXPORT void GUIAPI RGBA2Pixels (HDC hdc, const RGB *rgbs, gal_pixel *pixels, int count)
 Get the pixel values from a color array in RGBA quarter under a DC. More...
 
static gal_pixel RGBA2Pixel (HDC hdc, Uint8 r, Uint8 g, Uint8 b, Uint8 a)
 Get the pixel value from a color in RGBA quarter under a DC. More...
 
MG_EXPORT void GUIAPI RGB2Pixels (HDC hdc, const RGB *rgbs, gal_pixel *pixels, int count)
 Get the pixel values from a color array in RGB triple under a DC. More...
 
static gal_pixel RGB2Pixel (HDC hdc, Uint8 r, Uint8 g, Uint8 b)
 Get the pixel value from a color in RGB triple under a DC. More...
 
MG_EXPORT void GUIAPI Pixel2RGBs (HDC hdc, const gal_pixel *pixels, RGB *rgbs, int count)
 Get the colors in RGB triple from a pixel value array under a DC. More...
 
static void Pixel2RGB (HDC hdc, gal_pixel pixel, Uint8 *r, Uint8 *g, Uint8 *b)
 Get the color in RGB triple from a pixel value under a DC. More...
 
MG_EXPORT void GUIAPI Pixel2RGBAs (HDC hdc, const gal_pixel *pixels, RGB *rgbs, int count)
 Get the colors in RGBA quarter from a array of pixel values under a DC. More...
 
static void Pixel2RGBA (HDC hdc, gal_pixel pixel, Uint8 *r, Uint8 *g, Uint8 *b, Uint8 *a)
 Get the color in RGBA quarter from a pixel value under a DC. More...
 
static DWORD Pixel2DWORD (HDC hdc, gal_pixel pixel)
 An inline function to convert pixel value to DWORD color. More...
 
static gal_pixel DWORD2Pixel (HDC hdc, DWORD dword)
 An inline function to convert DWORD color to gal_pixel. More...
 
MG_EXPORT void GUIAPI FocusRect (HDC hdc, int x0, int y0, int x1, int y1)
 Draws a focus rectangle. More...
 
MG_EXPORT void GUIAPI DrawHVDotLine (HDC hdc, int x, int y, int w_h, BOOL H_V)
 Draws a horizontal or vertical dot dash line. More...
 
MG_EXPORT BOOL GUIAPI LineClipper (const RECT *cliprc, int *_x0, int *_y0, int *_x1, int *_y1)
 The line clipper using Cohen-Sutherland algorithm. More...
 
MG_EXPORT void GUIAPI LineGenerator (void *context, int x1, int y1, int x2, int y2, CB_LINE cb)
 A line generator based-on Breshenham algorithm. More...
 
MG_EXPORT void GUIAPI CircleGenerator (void *context, int sx, int sy, int r, CB_CIRCLE cb)
 A circle generator. More...
 
MG_EXPORT void GUIAPI EllipseGenerator (void *context, int sx, int sy, int rx, int ry, CB_ELLIPSE cb)
 An ellipse generator. More...
 
MG_EXPORT void GUIAPI CircleArcGenerator (void *context, int sx, int sy, int r, int ang1, int ang2, CB_ARC cb)
 An arc generator. More...
 
MG_EXPORT BOOL GUIAPI MonotoneVerticalPolygonGenerator (void *context, const POINT *pts, int vertices, CB_POLYGON cb)
 A monotone vertical polygon generator. More...
 
MG_EXPORT BOOL GUIAPI PolygonIsMonotoneVertical (const POINT *pts, int vertices)
 Check a polygon is monotone vertical or not. More...
 
MG_EXPORT BOOL GUIAPI PolygonGeneratorEx (void *context, const POINT *pts, int vertices, CB_POLYGON cb, RECT *rc_output)
 A general polygon generator. More...
 
MG_EXPORT BOOL GUIAPI FloodFillGenerator (void *context, const RECT *src_rc, int x, int y, CB_EQUAL_PIXEL cb_equal_pixel, CB_FLOOD_FILL cb_flood_fill)
 A flood filling generator. More...
 
MG_EXPORT int GUIAPI SetBitmapScalerType (HDC hdc, int scaler_type)
 Set bitmap scaler algorithm callback of DC according by scaler_type. More...
 
MG_EXPORT void GUIAPI MoveTo (HDC hdc, int x, int y)
 Moves the current zero pen position. More...
 
MG_EXPORT void GUIAPI LineTo (HDC hdc, int x, int y)
 Draws a zero line to a position. More...
 
MG_EXPORT void GUIAPI Rectangle (HDC hdc, int x0, int y0, int x1, int y1)
 Draws a rectangle. More...
 
MG_EXPORT void GUIAPI PolyLineTo (HDC hdc, const POINT *pts, int vertices)
 Draws a polyline. More...
 
MG_EXPORT void GUIAPI SplineTo (HDC hdc, const POINT *pts)
 Draws a bezier spline. More...
 
MG_EXPORT void GUIAPI Circle (HDC hdc, int sx, int sy, int r)
 Draws a circle. More...
 
MG_EXPORT void GUIAPI Ellipse (HDC hdc, int sx, int sy, int rx, int ry)
 Draws a ellipse. More...
 
MG_EXPORT void GUIAPI CircleArc (HDC hdc, int sx, int sy, int r, int ang1, int ang2)
 Draws an arc. More...
 
MG_EXPORT void GUIAPI FillBox (HDC hdc, int x, int y, int w, int h)
 Fills a rectangle box. More...
 
MG_EXPORT void GUIAPI FillCircle (HDC hdc, int sx, int sy, int r)
 Fills a circle. More...
 
MG_EXPORT void GUIAPI FillEllipse (HDC hdc, int sx, int sy, int rx, int ry)
 Fills an ellipse. More...
 
MG_EXPORT BOOL GUIAPI FillPolygon (HDC hdc, const POINT *pts, int vertices)
 Fills an polygon. More...
 
MG_EXPORT BOOL GUIAPI FloodFill (HDC hdc, int x, int y)
 Fills an enclosed area starting at point (x,y). More...
 
MG_EXPORT void GUIAPI SetPenDashes (HDC hdc, int dash_offset, const unsigned char *dash_list, int n)
 Set the way dashed-lines are drawn. More...
 
MG_EXPORT void GUIAPI SetBrushInfo (HDC hdc, const BITMAP *tile, const STIPPLE *stipple)
 Set the tile or stipple with the DC. More...
 
MG_EXPORT void GUIAPI SetBrushOrigin (HDC hdc, int x, int y)
 Set the origin when using tiles or stipples with the DC. More...
 
MG_EXPORT void GUIAPI LineEx (HDC hdc, int x1, int y1, int x2, int y2)
 Draws a line with the current pen in the DC hdc. More...
 
MG_EXPORT void GUIAPI ArcEx (HDC hdc, int x, int y, int width, int height, int ang1, int ang2)
 Draws an arc with the current pen in a DC. More...
 
MG_EXPORT void GUIAPI FillArcEx (HDC hdc, int x, int y, int width, int height, int ang1, int ang2)
 Fills an arc with the current brush in a DC. More...
 
MG_EXPORT void GUIAPI PolyLineEx (HDC hdc, const POINT *pts, int nr_pts)
 Draws a polyline with the current pen in a DC. More...
 
MG_EXPORT void GUIAPI PolyArcEx (HDC hdc, const ARC *arcs, int nr_arcs)
 Draws a polyarc with the current pen in a DC. More...
 
MG_EXPORT void GUIAPI PolyFillArcEx (HDC hdc, const ARC *arcs, int nr_arcs)
 Fill a polyarc with the current brush in a DC. More...
 
MG_EXPORT BOOL GUIAPI RoundRect (HDC hdc, int x0, int y0, int x1, int y1, int cw, int ch)
 Draw and fill a rectangle with rounded corners in a DC. More...
 
MG_EXPORT void GUIAPI GetDCLCS (HDC hdc, int which, POINT *pt)
 Retrieve mapping parameters of a device context. More...
 
MG_EXPORT void GUIAPI SetDCLCS (HDC hdc, int which, const POINT *pt)
 Set mapping parameters of a device context. More...
 
MG_EXPORT void GUIAPI DPtoLP (HDC hdc, POINT *pPt)
 Converts device coordinates into logical coordinates. More...
 
MG_EXPORT void GUIAPI LPtoDP (HDC hdc, POINT *pPt)
 Converts logical coordinates into device coordinates. More...
 
MG_EXPORT void GUIAPI SPtoLP (HDC hdc, POINT *pPt)
 Converts screen coordinates into logical coordinates. More...
 
MG_EXPORT void GUIAPI LPtoSP (HDC hdc, POINT *pPt)
 Converts logical coordinates into screen coordinates. More...
 
MG_EXPORT void GUIAPI ExcludeClipRect (HDC hdc, const RECT *prc)
 Excludes the specified rectangle from the current visible region of a DC. More...
 
MG_EXPORT void GUIAPI IncludeClipRect (HDC hdc, const RECT *prc)
 Includes the specified rectangle to the current visible region of a DC. More...
 
MG_EXPORT BOOL GUIAPI PtVisible (HDC hdc, int x, int y)
 Check whether a point is visible. More...
 
MG_EXPORT void GUIAPI ClipRectIntersect (HDC hdc, const RECT *prc)
 Intersects the specified rectangle with the visible region of the DC. More...
 
MG_EXPORT void GUIAPI SelectClipRect (HDC hdc, const RECT *prc)
 Set the visible region of a DC to be a rectangle. More...
 
MG_EXPORT int GUIAPI SelectClipRegionEx (HDC hdc, const CLIPRGN *pRgn, int fnMode)
 Combines the specified region with the current clipping region using the specified mode. More...
 
MG_EXPORT void GUIAPI SelectClipRegion (HDC hdc, const CLIPRGN *pRgn)
 Set the visible region of a DC to be a region. More...
 
MG_EXPORT int GUIAPI OffsetClipRegion (HDC hdc, int nXOffset, int nYOffset)
 Moves the clipping region of a device context by the specified offsets. More...
 
MG_EXPORT void GUIAPI GetBoundsRect (HDC hdc, RECT *pRect)
 Retrieve the bounding rectangle of the current visible region of a DC. More...
 
MG_EXPORT BOOL GUIAPI RectVisible (HDC hdc, const RECT *pRect)
 Check whether the specified rectangle is visible. More...
 
MG_EXPORT int GUIAPI GetClipBox (HDC hdc, RECT *clipbox)
 Retrieve the bounding rectangle of the current clipping region of a DC. More...
 
MG_EXPORT int GUIAPI GetClipRegion (HDC hdc, CLIPRGN *cliprgn)
 Get the current clipping region of a DC. More...
 
MG_EXPORT BOOL GUIAPI GetBitmapFromDC (HDC hdc, int x, int y, int w, int h, BITMAP *bmp)
 Get image box on a DC and saves it into a BITMAP object. More...
 
MG_EXPORT BOOL GUIAPI FillBoxWithBitmap (HDC hdc, int x, int y, int w, int h, const BITMAP *bmp)
 Fills a box with a BITMAP object. More...
 
MG_EXPORT BOOL GUIAPI FillBoxWithBitmapPart (HDC hdc, int x, int y, int w, int h, int bw, int bh, const BITMAP *bmp, int xo, int yo)
 Fills a box with a part of a bitmap oject. More...
 
MG_EXPORT BOOL GUIAPI FillBitmapPartInBox (HDC hdc, int box_x, int box_y, int box_w, int box_h, const BITMAP *pbmp, int bmp_x, int bmp_y, int bmp_w, int bmp_h)
 Fills a part of bitmap into a box, and the parts bitmap will be scaled if needed. More...
 
MG_EXPORT void GUIAPI BitBlt (HDC hsdc, int sx, int sy, int sw, int sh, HDC hddc, int dx, int dy, DWORD dwRop)
 Performs a bit-block transfer from a device context into another device context. More...
 
static void GUIAPI StretchBlt (HDC hsdc, int sx, int sy, int sw, int sh, HDC hddc, int dx, int dy, int dw, int dh, DWORD dwRop)
 Copies a bitmap from a source rectangle into a destination rectangle, streches the bitmap if necessary. More...
 
MG_EXPORT BOOL GUIAPI ScaleBitmapEx (BITMAP *dst, const BITMAP *src, HDC ref_dc)
 Scales a BITMAP object into another BITMAP object by specify algorithm. More...
 
MG_EXPORT gal_pixel GUIAPI GetPixelInBitmapEx (const BITMAP *bmp, int x, int y, Uint8 *alpha)
 Returns the pixel value in a BITMAP object. More...
 
static gal_pixel GUIAPI GetPixelInBitmap (const BITMAP *bmp, int x, int y)
 Returns the pixel value in a BITMAP object. More...
 
static BOOL GUIAPI SetPixelInBitmap (const BITMAP *bmp, int x, int y, gal_pixel pixel)
 Set pixel value in a BITMAP object. More...
 
MG_EXPORT BOOL GUIAPI SaveScreenRectContent (const RECT *rcWin, const char *filename)
 Saves content of a rectangle in the screen to a file. More...
 
MG_EXPORT BOOL GUIAPI SaveMainWindowContent (HWND hWnd, const char *filename)
 Saves content of a main window to a file. More...
 
MG_EXPORT HICON GUIAPI LoadIconFromFile (HDC hdc, const char *filename, int which)
 Load an icon from a Windows ICO file. More...
 
MG_EXPORT HICON GUIAPI LoadIconFromMem (HDC hdc, const void *area, int which)
 Load an icon from a memory area. More...
 
MG_EXPORT HICON GUIAPI CreateIconEx (HDC hdc, int w, int h, const BYTE *AndBits, const BYTE *XorBits, int colornum, const RGB *pal)
 Creates an icon object from the memory. More...
 
MG_EXPORT HICON GUIAPI LoadBitmapIconFromFile (HDC hdc, const char *file_name)
 Load an icon from a bitmap file. More...
 
MG_EXPORT HICON GUIAPI LoadBitmapIconFromMem (HDC hdc, const void *mem, size_t size, const char *ext)
 Load an icon from memory. More...
 
MG_EXPORT BOOL GUIAPI DestroyIcon (HICON hicon)
 Destroys an icon object. More...
 
MG_EXPORT BOOL GUIAPI GetIconSize (HICON hicon, int *w, int *h)
 Get the size of an icon object. More...
 
MG_EXPORT void GUIAPI DrawIcon (HDC hdc, int x, int y, int w, int h, HICON hicon)
 Draws an icon into a box. More...
 
static void SetRect (RECT *prc, int left, int top, int right, int bottom)
 Set a rectangle. More...
 
static void SetRectEmpty (RECT *prc)
 Empties a rectangle. More...
 
static void CopyRect (RECT *pdrc, const RECT *psrc)
 Copies one rectangle to another. More...
 
static void OffsetRect (RECT *prc, int x, int y)
 Moves a rectangle by offsets. More...
 
static void InflateRect (RECT *prc, int cx, int cy)
 Increases or decreases the width and height of an rectangle. More...
 
static void InflateRectToPt (RECT *prc, int x, int y)
 Inflates a rectangle to contain a point. More...
 
static BOOL PtInRect (const RECT *prc, int x, int y)
 Determine whether a point lies within an rectangle. More...
 
MG_EXPORT BOOL GUIAPI IsRectEmpty (const RECT *prc)
 Determine whether an rectangle is empty. More...
 
MG_EXPORT BOOL GUIAPI EqualRect (const RECT *prc1, const RECT *prc2)
 Determine whether two rectangles are equal. More...
 
MG_EXPORT void GUIAPI NormalizeRect (RECT *pRect)
 Normalizes a rectangle. More...
 
MG_EXPORT BOOL GUIAPI IntersectRect (RECT *pdrc, const RECT *psrc1, const RECT *psrc2)
 Calculates the intersection of two rectangles. More...
 
MG_EXPORT BOOL GUIAPI IsCovered (const RECT *prc1, const RECT *prc2)
 Determine whether one rectangle is covered by another. More...
 
MG_EXPORT BOOL GUIAPI DoesIntersect (const RECT *psrc1, const RECT *psrc2)
 Determine whether two rectangles intersect. More...
 
MG_EXPORT BOOL GUIAPI UnionRect (RECT *pdrc, const RECT *psrc1, const RECT *psrc2)
 Unions two source rectangles. More...
 
MG_EXPORT void GUIAPI GetBoundRect (PRECT pdrc, const RECT *psrc1, const RECT *psrc2)
 Get the bound rectangle of two source rectangles. More...
 
MG_EXPORT int GUIAPI SubtractRect (RECT *rc, const RECT *psrc1, const RECT *psrc2)
 Obtains the rectangles when substracting one rectangle from another. More...
 
MG_EXPORT LanguageCode GUIAPI LanguageCodeFromISO639s1 (Uint16 iso639_1)
 Get MiniGUI language code from an encoded ISO639-1 language code. More...
 
static LanguageCode GUIAPI LanguageCodeFromISO639s1Code (const char *iso639_1)
 Get MiniGUI language code from an ISO639-1 language code string. More...
 
const MG_EXPORT char *GUIAPI LanguageCodeToISO639s1 (LanguageCode lc)
 
MG_EXPORT LanguageCode GUIAPI GetSampleLanguageForScript (ScriptType st)
 
const MG_EXPORT ScriptType *GUIAPI GetScriptsForLang (const char *lang_name, LanguageCode *lang_code, int *nr_scripts)
 
MG_EXPORT ScriptType GUIAPI NormalizeScriptType (LanguageCode cl, ScriptType ws)
 
MG_EXPORT void GUIAPI GetFontMetrics (LOGFONT *log_font, FONTMETRICS *font_metrics)
 Get metrics information of a logical font. More...
 
MG_EXPORT void GUIAPI GetGlyphBitmap (LOGFONT *log_font, const char *mchar, int mchar_len, GLYPHBITMAP *glyph_bitmap)
 Get the glyph bitmap information when uses a logical font to output a multi-byte character. More...
 
static BOOL GUIAPI InitVectorialFonts (void)
 Initializes vectorial font renderer. More...
 
static void GUIAPI TermVectorialFonts (void)
 Terminates vectorial font renderer. More...
 
MG_EXPORT PLOGFONT GUIAPI CreateLogFont (const char *type, const char *family, const char *charset, char weight, char slant, char flip, char other, char underline, char struckout, int size, int rotation)
 Creates a logical font. More...
 
MG_EXPORT PLOGFONT GUIAPI CreateLogFontEx (const char *type, const char *family, const char *charset, char weight, char slant, char flip, char other, char decoration, char rendering, int size, int rotation)
 Creates a logical font. More...
 
MG_EXPORT PLOGFONT GUIAPI CreateLogFontByName (const char *font_name)
 Creates a logical font by a font name. More...
 
MG_EXPORT PLOGFONT GUIAPI CreateLogFontForMChar2UChar (const char *charset)
 Create a logical font for conversion from multi-byte character string to Uchar32 string. More...
 
MG_EXPORT PLOGFONT GUIAPI CreateLogFontIndirect (LOGFONT *logfont)
 Creates a logical font indirectly from a LOGFONT structure. More...
 
MG_EXPORT PLOGFONT GUIAPI CreateLogFontIndirectEx (LOGFONT *logfont, int rotation)
 Creates a new logical font indirectly from a LOGFONT structure with a rotation degrees. More...
 
MG_EXPORT void GUIAPI DestroyLogFont (PLOGFONT log_font)
 Destroys a logical font. More...
 
MG_EXPORT void GUIAPI GetLogFontInfo (HDC hdc, LOGFONT *log_font)
 Get logical font information of a DC. More...
 
MG_EXPORT PLOGFONT GUIAPI GetCurFont (HDC hdc)
 Get the pointer to the current logical font of a DC. More...
 
MG_EXPORT PLOGFONT GUIAPI SelectFont (HDC hdc, PLOGFONT log_font)
 Selects a logical font into a DC. More...
 
const MG_EXPORT DEVFONT *GUIAPI GetNextDevFont (const DEVFONT *dev_font)
 Get next devfont information. More...
 
MG_EXPORT BOOL GUIAPI ft2SetLcdFilter (LOGFONT *logfont, FT2LCDFilter filter)
 Set freetype2 smooth mode. More...
 
MG_EXPORT DEVFONT *GUIAPI LoadDevFontFromIncoreData (const char *devfont_name, const void *data)
 Load device font from incore data. More...
 
MG_EXPORT DEVFONT *GUIAPI LoadDevFontFromFile (const char *devfont_name, const char *file_name)
 Load device font from font file. More...
 
MG_EXPORT void GUIAPI DestroyDynamicDevFont (DEVFONT **devfont)
 Destroy device font loaded dynamically from font file. More...
 
static PLOGFONT GUIAPI GetSystemFont (int font_id)
 Get the system logical font through an font identifier. More...
 
MG_EXPORT int GUIAPI GetSysFontMaxWidth (int font_id)
 Get the maximal width of a single-byte character of a system font. More...
 
MG_EXPORT int GUIAPI GetSysFontAveWidth (int font_id)
 Get the average width of a single-byte character of a system font. More...
 
MG_EXPORT int GUIAPI GetSysFontHeight (int font_id)
 Get the height of a single-byte character of a system font. More...
 
const MG_EXPORT char *GUIAPI GetSysCharset (BOOL wchar)
 Get the current system charset. More...
 
MG_EXPORT int GUIAPI GetSysCharHeight (void)
 Get the height of a character of the default system font. More...
 
MG_EXPORT int GUIAPI GetSysCharWidth (void)
 Get the width of a single-byte character of the default system font. More...
 
MG_EXPORT int GUIAPI GetSysCCharWidth (void)
 Get the width of a multi-byte character of the default system font. More...
 
MG_EXPORT int GUIAPI GetTextMCharInfo (PLOGFONT log_font, const char *mstr, int len, int *pos_chars)
 Retrieve positions of multi-byte characters in a string. More...
 
MG_EXPORT int GUIAPI GetTextWordInfo (PLOGFONT log_font, const char *mstr, int len, int *pos_words, WORDINFO *info_words)
 Retrieve information of multi-byte words in a string. More...
 
MG_EXPORT int GUIAPI GetFirstMCharLen (PLOGFONT log_font, const char *mstr, int len)
 Retrieve the length of the first multi-byte character in a string. More...
 
MG_EXPORT int GUIAPI GetFirstWord (PLOGFONT log_font, const char *mstr, int len, WORDINFO *word_info)
 Retrieve the length and info of the first multi-byte word in a string. More...
 
MG_EXPORT int GUIAPI GetTextExtentPoint (HDC hdc, const char *text, int len, int max_extent, int *fit_chars, int *pos_chars, int *dx_chars, SIZE *size)
 Computes the extent of a string when output the string in a limited space. More...
 
MG_EXPORT int GUIAPI GetTabbedTextExtentPoint (HDC hdc, const char *text, int len, int max_extent, int *fit_chars, int *pos_chars, int *dx_chars, SIZE *size)
 Computes the extent of a string when output the formatted string in a limited space. More...
 
MG_EXPORT int GUIAPI MB2WCEx (PLOGFONT log_font, void *dest, BOOL wc32, const unsigned char *mstr, int n)
 Converts a multibyte character to a wide character in UCS according to the charset/encoding of the logical font. More...
 
MG_EXPORT int GUIAPI WC2MBEx (PLOGFONT log_font, unsigned char *s, Uchar32 wc)
 Converts a wide character in UCS to a multibyte character according to the charset/encoding of the logical font. More...
 
MG_EXPORT int GUIAPI MBS2WCSEx (PLOGFONT log_font, void *dest, BOOL wc32, const unsigned char *mstr, int mstr_len, int n, int *conved_mstr_len)
 Converts a multibyte string to a wide character string in UC16 according to the charset/encoding of the logical font. More...
 
MG_EXPORT UCharGeneralCategory GUIAPI UCharGetCategory (Uchar32 uc)
 Get the general category of a Unicode character. More...
 
MG_EXPORT UCharBreakType GUIAPI UCharGetBreakType (Uchar32 uc)
 Get the break property of a Unicode character. More...
 
MG_EXPORT BidiType GUIAPI UCharGetBidiType (Uchar32 uc)
 Get bidi type of a Unicode character. More...
 
MG_EXPORT void GUIAPI UStrGetBidiTypes (const Uchar32 *ucs, int nr_ucs, BidiType *bdts)
 Get bidi types for an string of Unicode characters. More...
 
MG_EXPORT BidiBracketType GUIAPI UCharGetBracketType (Uchar32 ch)
 Get bracketed character. More...
 
MG_EXPORT void GUIAPI UStrGetBracketTypes (const Uchar32 *ucs, const BidiType *bidi_types, int len_ucs, BidiBracketType *bracket_types)
 Get bracketed characters of a Uchar32 string. More...
 
MG_EXPORT BOOL GUIAPI UCharGetMirror (Uchar32 uc, Uchar32 *mirrored)
 Get mirrored character. More...
 
MG_EXPORT BidiJoiningType GUIAPI UCharGetJoiningType (Uchar32 uc)
 Get character joining type. More...
 
MG_EXPORT void GUIAPI UStrGetJoiningTypes (const Uchar32 *ucs, int nr_ucs, BidiJoiningType *joining_types)
 Get joining types for a string of Unicode characters. More...
 
MG_EXPORT BidiType GUIAPI UBidiGetParagraphDir (const BidiType *bidi_types, int len)
 Get the base paragraph direction. More...
 
MG_EXPORT BidiLevel GUIAPI UBidiGetParagraphEmbeddingLevelsAlt (const Uchar32 *ucs, int nr_ucs, ParagraphDir *paragraph_dir, BidiLevel *embedding_levels)
 An alternative of UBidiGetParagraphEmbeddingLevels(). More...
 
MG_EXPORT void GUIAPI UBidiShapeMirroring (const BidiLevel *embedding_levels, int len, Uchar32 *ucs)
 Do mirroring shaping. More...
 
MG_EXPORT void GUIAPI UBidiJoinArabic (const BidiType *bidi_types, const BidiLevel *embedding_levels, int len, BidiArabicProp *ar_props)
 Do Arabic joining. More...
 
MG_EXPORT void GUIAPI UBidiShapeArabic (Uint32 shaping_flags, const BidiLevel *embedding_levels, int len, BidiArabicProp *ar_props, Uchar32 *ucs)
 Do Arabic shaping. More...
 
MG_EXPORT int GUIAPI UStrGetBreaks (LanguageCode lang_code, Uint8 ctr, Uint8 wbr, Uint8 lbp, Uchar32 *ucs, int nr_ucs, BreakOppo **break_oppos)
 Calculate the breaking opportunities of a Uchar32 string under the specified rules and line breaking policy. More...
 
MG_EXPORT BOOL GUIAPI IsUCharAlnum (Uchar32 uc)
 
MG_EXPORT BOOL GUIAPI IsUCharAlpha (Uchar32 uc)
 
MG_EXPORT BOOL GUIAPI IsUCharControl (Uchar32 uc)
 
MG_EXPORT BOOL GUIAPI IsUCharDigit (Uchar32 uc)
 
MG_EXPORT BOOL GUIAPI IsUCharGraph (Uchar32 uc)
 
MG_EXPORT BOOL GUIAPI IsUCharLowercase (Uchar32 uc)
 
MG_EXPORT BOOL GUIAPI IsUCharPrint (Uchar32 uc)
 
MG_EXPORT BOOL GUIAPI IsUCharUppercase (Uchar32 uc)
 
MG_EXPORT BOOL GUIAPI IsUCharPunct (Uchar32 uc)
 
MG_EXPORT BOOL GUIAPI IsUCharSpace (Uchar32 uc)
 
MG_EXPORT BOOL GUIAPI IsUCharMark (Uchar32 uc)
 
MG_EXPORT BOOL GUIAPI IsUCharTitle (Uchar32 uc)
 
MG_EXPORT BOOL GUIAPI IsUCharXDigit (Uchar32 uc)
 
MG_EXPORT BOOL GUIAPI IsUCharDefined (Uchar32 uc)
 
MG_EXPORT BOOL GUIAPI IsUCharZeroWidth (Uchar32 uc)
 
MG_EXPORT BOOL GUIAPI IsUCharWide (Uchar32 uc)
 
MG_EXPORT BOOL GUIAPI IsUCharWideCJK (Uchar32 uc)
 
MG_EXPORT Uchar32 UCharToUpper (Uchar32 uc)
 
MG_EXPORT Uchar32 GUIAPI UCharToLower (Uchar32 uc)
 
MG_EXPORT Uchar32 GUIAPI UCharToTitle (Uchar32 uc)
 
MG_EXPORT Uchar32 GUIAPI UCharToFullWidth (Uchar32 uc)
 
MG_EXPORT Uchar32 GUIAPI UCharToSingleWidth (Uchar32 uc)
 
MG_EXPORT Uchar32 GUIAPI UCharToFullSizeKana (Uchar32 uc)
 
MG_EXPORT Uchar32 GUIAPI UCharToSmallKana (Uchar32 uc)
 
MG_EXPORT BOOL GUIAPI UCharIsArabicVowel (Uchar32 uc)
 
MG_EXPORT int GUIAPI UCharCombiningClass (Uchar32 uc)
 
MG_EXPORT void GUIAPI UCharCanonicalOrdering (Uchar32 *string, int len)
 
MG_EXPORT BOOL GUIAPI UCharCompose (Uchar32 a, Uchar32 b, Uchar32 *ch)
 
MG_EXPORT BOOL GUIAPI UCharDecompose (Uchar32 ch, Uchar32 *a, Uchar32 *b)
 
MG_EXPORT int GUIAPI UCharFullyDecompose (Uchar32 ch, BOOL compat, Uchar32 *result, int result_len)
 
MG_EXPORT ScriptType GUIAPI UCharGetScriptType (Uchar32 ch)
 
MG_EXPORT Uint32 GUIAPI ScriptTypeToISO15924 (ScriptType script)
 
MG_EXPORT ScriptType GUIAPI ScriptTypeFromISO15924 (Uint32 iso15924)
 Get the ScriptType value from an encoded ISO15924 script code. More...
 
static ScriptType GUIAPI ScriptTypeFromISO15924Code (const char *iso15924)
 
MG_EXPORT UVerticalOrient GUIAPI UCharGetVerticalOrientation (Uchar32 uc)
 
MG_EXPORT int GUIAPI GetFontHeight (HDC hdc)
 Retrieve the height of the current logical font in a DC. More...
 
MG_EXPORT int GUIAPI GetMaxFontWidth (HDC hdc)
 Retrieve the maximal character width of the current logical font in a DC. More...
 
MG_EXPORT int GUIAPI GetTextExtent (HDC hdc, const char *spText, int len, SIZE *pSize)
 Computes the output extent of a string of text. More...
 
MG_EXPORT int GUIAPI GetTabbedTextExtent (HDC hdc, const char *spText, int len, SIZE *pSize)
 Computes the output extent of a formatted text. More...
 
MG_EXPORT int GUIAPI TextOutLen (HDC hdc, int x, int y, const char *spText, int len)
 Outputs a string of text. More...
 
MG_EXPORT int GUIAPI TextOutOmitted (HDC hdc, int x, int y, const char *mtext, int len, int max_extent)
 Outputs a string of text with omitted format. More...
 
MG_EXPORT int GUIAPI TabbedTextOutLen (HDC hdc, int x, int y, const char *spText, int len)
 Outputs a formatted text. More...
 
MG_EXPORT int GUIAPI TabbedTextOutEx (HDC hdc, int x, int y, const char *spText, int nCount, int nTabPositions, int *pTabPositions, int nTabOrigin)
 Writes a character string at a specified location, expanding tabs to the values specified in an anrry of tab-stop positions. More...
 
MG_EXPORT void GUIAPI GetLastTextOutPos (HDC hdc, POINT *pt)
 Retrieve the last text output position. More...
 
MG_EXPORT int GUIAPI DrawTextEx2 (HDC hdc, const char *pText, int nCount, RECT *pRect, int nIndent, UINT nFormat, DTFIRSTLINE *firstline)
 Draws a formatted text in a rectangle. More...
 
const MG_EXPORT char *GUIAPI CheckBitmapType (MG_RWops *fp)
 Check the type of the bitmap in a data source. More...
 
MG_EXPORT BOOL GUIAPI mlsEnableSlaveScreen (HDC dc_mls, BOOL enable)
 Enable or Disable a MLShadow slave screen. More...
 
MG_EXPORT int GUIAPI LoadBitmapEx2 (HDC hdc, PBITMAP pBitmap, MG_RWops *area, const char *ext, CB_ALLOC_BITMAP_BUFF cb_alloc_buff, void *context)
 Load a device-dependent bitmap from a general data source. More...
 
static int LoadBitmapEx (HDC hdc, PBITMAP pBitmap, MG_RWops *area, const char *ext)
 Load a device-dependent bitmap from a general data source. More...
 
MG_EXPORT int GUIAPI LoadBitmapFromFile (HDC hdc, PBITMAP pBitmap, const char *spFileName)
 Load a device-dependent bitmap from a file. More...
 
MG_EXPORT int GUIAPI LoadBitmapFromMem (HDC hdc, PBITMAP pBitmap, const void *mem, size_t size, const char *ext)
 Load a device-dependent bitmap from memory. More...
 
MG_EXPORT void GUIAPI UnloadBitmap (PBITMAP pBitmap)
 Unloads a bitmap. More...
 
MG_EXPORT int GUIAPI SetBitmapKeyColor (HDC hdc, PBITMAP bmp, Uint8 r, Uint8 g, Uint8 b)
 Set the bitmap color key. More...
 
MG_EXPORT void GUIAPI ReplaceBitmapColor (HDC hdc, PBITMAP pBitmap, gal_pixel iOColor, gal_pixel iNColor)
 Replaces a specific pixels in a bitmap with another pixel. More...
 
MG_EXPORT void GUIAPI HFlipBitmap (BITMAP *bmp, unsigned char *inter_buff)
 Horizontal Flip the special Bitmap object. More...
 
MG_EXPORT void GUIAPI VFlipBitmap (BITMAP *bmp, unsigned char *inter_buff)
 Vertical Flip the special Bitmap object. More...
 
MG_EXPORT void *GUIAPI InitMyBitmapSL (MG_RWops *area, const char *ext, MYBITMAP *my_bmp, RGB *pal)
 Initializes scanline loader of the MYBITMAP object from a data source. More...
 
MG_EXPORT int GUIAPI LoadMyBitmapSL (MG_RWops *area, void *load_info, MYBITMAP *my_bmp, CB_ONE_SCANLINE cb, void *context)
 Load MYBITMAP scanlines from a data source one by one. More...
 
MG_EXPORT int GUIAPI CleanupMyBitmapSL (MYBITMAP *my_bmp, void *load_info)
 Cleanups the scanline loader. More...
 
MG_EXPORT int GUIAPI LoadMyBitmapEx (PMYBITMAP my_bmp, RGB *pal, MG_RWops *area, const char *ext)
 Load a MYBITMAP object from a data source. More...
 
MG_EXPORT int GUIAPI LoadMyBitmapFromFile (PMYBITMAP my_bmp, RGB *pal, const char *file_name)
 Load a MYBITMAP object from a file. More...
 
MG_EXPORT int GUIAPI LoadMyBitmapFromMem (PMYBITMAP my_bmp, RGB *pal, const void *mem, size_t size, const char *ext)
 Load a MYBITMAP object from memory. More...
 
MG_EXPORT void GUIAPI UnloadMyBitmap (PMYBITMAP my_bmp)
 Unloads a bitmap. More...
 
MG_EXPORT int GUIAPI SaveMyBitmapToFile (PMYBITMAP my_bmp, RGB *pal, const char *spFileName)
 Saves a MYBITMAP object to a bitmap file. More...
 
MG_EXPORT int GUIAPI SaveBitmapToFile (HDC hdc, PBITMAP pBitmap, const char *spFileName)
 Saves a BITMAP object to a bitmap file. More...
 
MG_EXPORT BOOL GUIAPI InitBitmap (HDC hdc, Uint32 w, Uint32 h, Uint32 pitch, BYTE *bits, PBITMAP bmp)
 Initializes a BITMAP object as a normal bitmap. More...
 
MG_EXPORT HDC GUIAPI InitSlaveScreenEx (const char *name, const char *mode, int dpi)
 Initializes slave screen. More...
 
static HDC InitSlaveScreen (const char *name, const char *mode)
 Initializes slave screen. More...
 
MG_EXPORT void GUIAPI TerminateSlaveScreen (HDC hdc)
 Terminates slave screen. More...
 
MG_EXPORT BOOL GUIAPI InitBitmapPixelFormat (HDC hdc, PBITMAP bmp)
 Initializes the bitmap pixel format information of a BITMAP object. More...
 
MG_EXPORT void GUIAPI DeleteBitmapAlphaPixel (PBITMAP bmp)
 Deletes the bitmap alpha pixel format information of a BITMAP object. More...
 
MG_EXPORT int GUIAPI ExpandMyBitmap (HDC hdc, PBITMAP bmp, const MYBITMAP *my_bmp, const RGB *pal, int frame)
 Expands a MYBITMAP object to a BITMAP object. More...
 
MG_EXPORT void GUIAPI ExpandMonoBitmap (HDC hdc, BYTE *bits, Uint32 pitch, const BYTE *my_bits, Uint32 my_pitch, Uint32 w, Uint32 h, DWORD flags, Uint32 bg, Uint32 fg)
 Convert a mono color MYBITMAP pixel data to a BITMAP pixel data. More...
 
static void GUIAPI Expand16CBitmap (HDC hdc, BYTE *bits, Uint32 pitch, const BYTE *my_bits, Uint32 my_pitch, Uint32 w, Uint32 h, DWORD flags, const RGB *pal)
 Convert a 16 color MYBITMAP pixel data to a BITMAP pixel data. More...
 
static void GUIAPI Expand256CBitmap (HDC hdc, BYTE *bits, Uint32 pitch, const BYTE *my_bits, Uint32 my_pitch, Uint32 w, Uint32 h, DWORD flags, const RGB *pal, CB_DRAW_PIXEL cb_draw, MYBITMAP_CONTXT *mybmp)
 Convert a 256 color MYBITMAP pixel data to a BITMAP pixel data. More...
 
MG_EXPORT void GUIAPI CompileRGBABitmap (HDC hdc, BYTE *bits, Uint32 pitch, const BYTE *my_bits, Uint32 my_pitch, Uint32 w, Uint32 h, DWORD flags, void *pixel_format, CB_DRAW_PIXEL cb_draw, MYBITMAP_CONTXT *mybmp)
 Convert a MYBITMAP pixel data to a BITMAP pixel data. More...
 
MG_EXPORT void GUIAPI CompileRGBABitmapEx (HDC hdc, BYTE *bits, Uint32 pitch, const BYTE *my_bits, Uint32 my_pitch, Uint32 w, Uint32 h, DWORD flags, void *pixel_format, CB_DRAW_PIXEL cb_draw, MYBITMAP_CONTXT *mybmp, BYTE *alpha_mask)
 Compile a MYBITMAP pixel data to a BITMAP pixel data. More...
 
MG_EXPORT int GUIAPI PaintImageEx (HDC hdc, int x, int y, MG_RWops *area, const char *ext)
 Paints an image from data source on device directly. More...
 
MG_EXPORT int GUIAPI PaintImageFromFile (HDC hdc, int x, int y, const char *spFileName)
 Paints an image from file on device directly. More...
 
MG_EXPORT int GUIAPI PaintImageFromMem (HDC hdc, int x, int y, const void *mem, size_t size, const char *ext)
 Paints an image from memory on device directly. More...
 
MG_EXPORT int GUIAPI StretchPaintImageEx (HDC hdc, int x, int y, int w, int h, MG_RWops *area, const char *ext)
 Paints an image from data source on device directly. More...
 
MG_EXPORT int GUIAPI StretchPaintImageFromFile (HDC hdc, int x, int y, int w, int h, const char *spFileName)
 Paints an image from file on device directly. More...
 
MG_EXPORT int GUIAPI StretchPaintImageFromMem (HDC hdc, int x, int y, int w, int h, const void *mem, size_t size, const char *ext)
 Paints an image from memory on device directly. More...
 
MG_EXPORT void GUIAPI RotateBitmap (HDC hdc, const BITMAP *bmp, int lx, int ty, int angle)
 Rotate a bitmap object. More...
 
MG_EXPORT void GUIAPI RotateBitmapVFlip (HDC hdc, const BITMAP *bmp, int lx, int ty, int angle)
 Flips vertically and rotates a bitmap object. More...
 
MG_EXPORT void GUIAPI RotateBitmapHFlip (HDC hdc, const BITMAP *bmp, int lx, int ty, int angle)
 Flips horizontally and rotates a bitmap object. More...
 
MG_EXPORT void GUIAPI RotateScaledBitmap (HDC hdc, const BITMAP *bmp, int lx, int ty, int angle, int w, int h)
 Stretches or shrinks a bitmap object at the same as rotating it. More...
 
MG_EXPORT void GUIAPI RotateScaledBitmapVFlip (HDC hdc, const BITMAP *bmp, int lx, int ty, int angle, int w, int h)
 Flip vertically, rotates, stretch or shrinks a bitmap object. More...
 
MG_EXPORT void GUIAPI RotateScaledBitmapHFlip (HDC hdc, const BITMAP *bmp, int lx, int ty, int angle, int w, int h)
 Flip horizontaly, rotates, stretch or shrinks a bitmap object. More...
 
MG_EXPORT void GUIAPI PivotBitmap (HDC hdc, const BITMAP *bmp, int lx, int ty, int cx, int cy, int angle)
 Pivot a bitmap object. More...
 
MG_EXPORT void GUIAPI PivotScaledBitmapFlip (HDC hdc, const BITMAP *bmp, fixed x, fixed y, fixed cx, fixed cy, int angle, fixed scale_x, fixed scale_y, BOOL h_flip, BOOL v_flip)
 Rotates, stretches or shrinks, flips a bitmap object. More...
 
MG_EXPORT BOOL GUIAPI AddGlyphsToBMPFont (DEVFONT *dev_font, BITMAP *glyph_bmp, const char *start_mchar, int nr_glyphs, int glyph_width)
 Add a new segment in device font. More...
 
MG_EXPORT void GUIAPI DestroyBMPFont (DEVFONT *dev_font)
 Destroy the bitmap device font. More...
 
MG_EXPORT Achar32 GUIAPI GetACharValue (LOGFONT *logfont, const char *mchar, int mchar_len, const char *pre_mchar, int pre_len)
 Get the character value of a multi-byte character. More...
 
MG_EXPORT int GUIAPI GetNextUChar (LOGFONT *logfont, const char *mchar, int mchar_len, Uchar32 *uc)
 Get the Uchar32 value (Unicode code point) of a multi-byte character in specified LOGFONT object. More...
 
MG_EXPORT Uint32 GUIAPI GetACharType (LOGFONT *logfont, Achar32 chv)
 Retrieve the basic type, the general cateory of Unicode, and the break class of Unicode of an abstract character. More...
 
MG_EXPORT Achar32 GUIAPI GetShapedAChar (LOGFONT *logfont, const char *mchar, int mchar_len, ACHARSHAPETYPE shape_type)
 Get the glyph shape of a character. More...
 
MG_EXPORT BOOL GUIAPI GetMirrorAChar (LOGFONT *logfont, Achar32 chv, Achar32 *mirrored)
 Get the mirrored abstract character if possible. More...
 
MG_EXPORT BidiType GUIAPI GetACharBidiType (LOGFONT *log_font, Achar32 chv)
 Retrieve the BIDI type of an abstract character. More...
 
MG_EXPORT int GUIAPI BIDIGetTextLogicalAChars (LOGFONT *log_font, const char *text, int text_len, Achar32 **achars, ACHARMAPINFO **achars_map)
 Get logical achars string of the text. More...
 
MG_EXPORT void GUIAPI BIDIGetTextRangesLog2Vis (LOGFONT *log_font, const char *text, int text_len, int start_index, int end_index, int **ranges, int *nr_ranges)
 Get a list of visual ranges corresponding to a given logical range. More...
 
MG_EXPORT int GUIAPI BIDIGetTextVisualAChars (LOGFONT *log_font, const char *text, int text_len, Achar32 **achars, ACHARMAPINFO **achars_map)
 Get visual achars and glyph_map info relative with logical string byte index. More...
 
MG_EXPORT BOOL GUIAPI BIDILogAChars2VisACharsEx (LOGFONT *log_font, Achar32 *achars, int nr_achars, int pel, void *extra, CB_REVERSE_ARRAY cb_reverse_extra)
 Reorder the specified logical glyph string in visual order and reorder an extra array to reflect the visule order of the achars. More...
 
MG_EXPORT Achar32 *GUIAPI BIDILogAChars2VisAChars (LOGFONT *log_font, Achar32 *achars, int nr_achars, ACHARMAPINFO *achars_map)
 Reorder the specified logical glyph string in visual order and reorder glyph map if specified. More...
 
MG_EXPORT int GUIAPI GetACharsExtent (HDC hdc, Achar32 *achars, int nr_achars, SIZE *size)
 Get visual extent value of an achar string. More...
 
MG_EXPORT int GUIAPI GetACharsExtentPoint (HDC hdc, Achar32 *achars, int nr_achars, int max_extent, SIZE *size)
 Get the visual extent value of an achar string. More...
 
MG_EXPORT Glyph32 GUIAPI GetGlyphValue (LOGFONT *logfont, const char *mchar, int mchar_len, const char *pre_mchar, int pre_len)
 Get the glyph value of a multi-byte character. More...
 
MG_EXPORT Glyph32 GUIAPI GetGlyphValueAlt (LOGFONT *logfont, Achar32 chv)
 Get the LOGFONT glyph value of an abstract character. More...
 
MG_EXPORT int GUIAPI DrawGlyph (HDC hdc, int x, int y, Glyph32 glyph_value, int *adv_x, int *adv_y)
 Draw a glyph. More...
 
MG_EXPORT int GUIAPI GetGlyphsExtent (HDC hdc, Glyph32 *glyphs, int nr_glyphs, SIZE *size)
 Get visual extent value of a glyph string. More...
 
MG_EXPORT int GUIAPI GetGlyphsExtentPoint (HDC hdc, Glyph32 *glyphs, int nr_glyphs, int max_extent, SIZE *size)
 Get the visual extent value of an glyph string. More...
 
MG_EXPORT int GUIAPI GetGlyphInfo (LOGFONT *logfont, Glyph32 glyph_value, GLYPHINFO *glyph_info)
 Retrieve the information of a glyph. More...
 
MG_EXPORT int GUIAPI GetUCharsUntilParagraphBoundary (LOGFONT *logfont, const char *mstr, int mstr_len, Uint8 wsr, Uchar32 **uchars, int *nr_uchars)
 Convert a multi-byte character string to a Unicode character (Uchar32) string until the end of text (null character) or an explicit paragraph boundary encountered. More...
 
MG_EXPORT Uchar32 GUIAPI AChar2UChar (LOGFONT *logfont, Achar32 chv)
 Get Uchar32 value (Unicode wide character value) from a LOGFONT abstract character value. More...
 
MG_EXPORT int GUIAPI AChars2UChars (LOGFONT *logfont, const Achar32 *chs, Uchar32 *ucs, int n)
 Convert an Achar32 array to Unicode character array. More...
 
MG_EXPORT BOOL GUIAPI UChar2AChar (LOGFONT *logfont, Uchar32 uc, Achar32 *ac)
 Get the LOGFONT Achar32 value from a Unicode character value. More...
 
MG_EXPORT int GUIAPI UChars2AChars (LOGFONT *logfont, const Uchar32 *ucs, Achar32 *acs, int n)
 Convert an Uchar32 array to Unicode character array. More...
 
MG_EXPORT int GUIAPI GetGlyphsExtentFromUChars (LOGFONT *logfont_upright, const Achar32 *uchars, int nr_uchars, const BreakOppo *break_oppos, Uint32 render_flags, int x, int y, int letter_spacing, int word_spacing, int tab_size, int max_extent, SIZE *line_size, Glyph32 *glyphs, GLYPHEXTINFO *glyph_ext_info, GLYPHPOS *glyph_pos, LOGFONT **logfont_sideways)
 Get the visual extent info of all glyphs fitting in the specified maximal output extent. More...
 
MG_EXPORT TEXTRUNS *GUIAPI CreateTextRuns (const Uchar32 *ucs, int nr_ucs, LanguageCode lang_code, ParagraphDir base_dir, const char *logfont_name, RGBCOLOR color, RGBCOLOR bg_color, BreakOppo *break_oppos)
 Split a Uchar32 paragraph string in mixed scripts into text runs. More...
 
MG_EXPORT BOOL GUIAPI SetFontNameInTextRuns (TEXTRUNS *truns, int start_index, int length, const char *logfont_name)
 Set logfont name of text runs. More...
 
const MG_EXPORT char *GUIAPI GetFontNameInTextRuns (const TEXTRUNS *truns, int index)
 
MG_EXPORT BOOL GUIAPI SetTextColorInTextRuns (TEXTRUNS *truns, int start_index, int length, RGBCOLOR color)
 Set text color in a TEXTRUNS object. More...
 
MG_EXPORT RGBCOLOR GUIAPI GetTextColorInTextRuns (const TEXTRUNS *truns, int index)
 
MG_EXPORT BOOL GUIAPI SetBackgroundColorInTextRuns (TEXTRUNS *truns, int start_index, int length, RGBCOLOR color)
 Set background color in a TEXTRUNS object. More...
 
MG_EXPORT RGBCOLOR GUIAPI GetBackgroundColorInTextRuns (const TEXTRUNS *truns, int index)
 
MG_EXPORT BOOL GUIAPI DestroyTextRuns (TEXTRUNS *truns)
 Destroy the glyph run info object. It also frees all data allocated for shapping and layouting the glyphs. More...
 
MG_EXPORT BOOL GUIAPI InitBasicShapingEngine (TEXTRUNS *truns)
 Initialize the base shaping engine for a TEXTRUNS object. More...
 
MG_EXPORT BOOL GUIAPI InitComplexShapingEngine (TEXTRUNS *truns)
 Initialize the complex shaping engine for a TEXTRUNS object. More...
 
MG_EXPORT LAYOUT *GUIAPI CreateLayout (const TEXTRUNS *truns, Uint32 render_flags, const BreakOppo *break_oppos, BOOL persist_lines, int max_line_extent, int indent, int letter_spacing, int word_spacing, int tab_size, int *tabs, int nr_tabs)
 Create layout information structure for laying out a paragraph. More...
 
MG_EXPORT BOOL GUIAPI DestroyLayout (LAYOUT *layout)
 Destroy the specified layout information structure. More...
 
MG_EXPORT LAYOUTLINE *GUIAPI LayoutNextLine (LAYOUT *layout, LAYOUTLINE *prev_line, int max_extent, BOOL last_line, CB_GLYPH_LAID_OUT cb_laid_out, GHANDLE ctxt)
 Layout the next line of a paragraph according to the layout information. More...
 
MG_EXPORT BOOL GUIAPI GetLayoutLineSize (const LAYOUTLINE *line, SIZE *line_size)
 Get the size of a layout line. More...
 
MG_EXPORT int GUIAPI CalcLayoutBoundingRect (LAYOUT *layout, int max_line_extent, int max_height, int line_height, int x, int y, RECT *bounding)
 Calculate the bounding rectangle of a layout. More...
 
MG_EXPORT int DrawLayoutLine (HDC hdc, const LAYOUTLINE *line, int x, int y)
 Draw a laid out line at the specific position. More...
 
MG_EXPORT GHANDLE GetVideoHandle (HDC hdc)
 
MG_EXPORT int drmGetDeviceFD (GHANDLE video)
 
MG_EXPORT BOOL drmGetSurfaceInfo (GHANDLE video, HDC hdc, DrmSurfaceInfo *info)
 
MG_EXPORT HDC drmCreateDCFromNameEx (GHANDLE video, uint32_t name, uint32_t drm_format, off_t offset, uint32_t width, uint32_t height, uint32_t pitch)
 
MG_EXPORT HDC drmCreateDCFromPrimeFdEx (GHANDLE video, int prime_fd, size_t size, uint32_t drm_format, off_t offset, uint32_t width, uint32_t height, uint32_t pitch)
 
MG_EXPORT HDC drmCreateDCFromHandleEx (GHANDLE video, uint32_t handle, size_t size, uint32_t drm_format, off_t offset, uint32_t width, uint32_t height, uint32_t pitch)
 

Variables

const typedef LOGFONTCPLOGFONT
 Data type of pointer to a LOGFONT. More...
 
MG_EXPORT gal_pixel SysPixelIndex []
 The pre-defined system pixel values. More...
 
const MG_EXPORT RGB SysPixelColor []
 The pre-defined system RGB colors. More...
 

Detailed Description

This file includes graphics device interfaces (GDI) of MiniGUI.

Author
Wei Yongming vince.nosp@m.nt@m.nosp@m.inigu.nosp@m.i.or.nosp@m.g
Date
2002/01/06
   This file is part of MiniGUI, a mature cross-platform windowing
   and Graphics User Interface (GUI) support system for embedded systems
   and smart IoT devices.

   Copyright (C) 2002~2020, Beijing FMSoft Technologies Co., Ltd.
   Copyright (C) 1998~2002, WEI Yongming

   This program is free software: you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation, either version 3 of the License, or
   (at your option) any later version.

   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.

   You should have received a copy of the GNU General Public License
   along with this program.  If not, see <http://www.gnu.org/licenses/>.

   Or,

   As this program is a library, any link to this program must follow
   GNU General Public License version 3 (GPLv3). If you cannot accept
   GPLv3, you need to be licensed from FMSoft.

   If you have got a commercial license of this program, please use it
   under the terms and conditions of the commercial license.

   For more information about the commercial license, please refer to
   <http://www.minigui.com/blog/minigui-licensing-policy/>.

Definition in file gdi.h.

Function Documentation

◆ AddGlyphsToBMPFont()

BOOL GUIAPI AddGlyphsToBMPFont ( DEVFONT dev_font,
BITMAP glyph_bmp,
const char *  start_mchar,
int  nr_glyphs,
int  glyph_width 
)

Add a new segment in device font.

This function add a new segment to the device font pointed by dev_font.

Parameters
dev_fontThe pointer to the device font.
glyph_bmpThe pointer to the segment glyph bitmap object.
start_mcharThe pointer to the first char of the segment.
nr_glyphsThe character count of the segment.
glyph_widthThe character width in the segment.
Returns
TRUE if success, otherwise FALSE.

◆ DestroyBMPFont()

void GUIAPI DestroyBMPFont ( DEVFONT dev_font)

Destroy the bitmap device font.

This function destroy the bitmap device font pointed by dev_font.

Parameters
dev_fontThe pointer to the device font which will be destroyed.
Returns
TRUE if success, otherwise FALSE.