📄 apiosdrender.h
字号:
////////////////////////////////////////////////////////////////////////////////
//
// @file apiOsdRender.h
// @brief Graphic Render Defination
// @author MStar Semiconductor Inc.
//
// Features:
// - Define Graphic Render API
//
// Notes:
//
// Modified: Kevin Hsu
//
////////////////////////////////////////////////////////////////////////////////
#ifndef _APIOSDRENDER_H
#define _APIOSDRENDER_H
//------------------------------------------------------------------------------
// Include Files
//------------------------------------------------------------------------------
#include "DataType.h"
#include "apiOsdGC.h"
#include "DrvGE.h"
//------------------------------------------------------------------------------
// Defines
//------------------------------------------------------------------------------
#define OSD_DBG_ERR 1
#define BYTE_PER_CHAR 1
#define MaxTextOutLen 128 //Max Per line Text Out lengh
#define MaxStringLen 512 //Max String length (for smart string text out)
#ifdef OSD_DBG_ERR
#define PRINTE printf
#else
#define PRINTE
#endif
typedef struct _Pos
{
S16 x;
S16 y;
}Pos;
#define POS(p, X, Y) { p.x = X; p.y = Y; }
//------------------------------------------------------------------------------
// Type and Structure Declaration
//------------------------------------------------------------------------------
#if 0
//Derived from GDI plus
typedef enum
{
AliceBlue = 0xFFF0F8FF, // 0xFFF8F0FF, 0xFFF0F8FF,
AntiqueWhite = 0xFFFAEBD7, // 0xD7EBFAFF, 0xFFFAEBD7,
Aqua = 0xFF00FFFF, // 0xFFFF00FF, 0xFF00FFFF,
Aquamarine = 0xFF7FFFD4, // 0xD4FF7FFF, 0xFF7FFFD4,
Azure = 0xFFF0FFFF, // 0xFFFFF0FF, 0xFFF0FFFF,
Beige = 0xFFF5F5DC, // 0xDCF5F5FF, 0xFFF5F5DC,
Bisque = 0xFFFFE4C4, // 0xC4E4FFFF, 0xFFFFE4C4,
Black = 0xFF080808, // 0x000000FF, 0xFF000000,
BlanchedAlmond = 0xFFFFEBCD, // 0xCDEBFFFF, 0xFFFFEBCD,
Blue = 0xFF0000FF, // 0xFF0000FF, 0xFF0000FF,
BlueViolet = 0xFF8A2BE2, // 0xE22B8AFF, 0xFF8A2BE2,
Brown = 0xFFA52A2A, // 0x2A2AA5FF, 0xFFA52A2A,
BurlyWood = 0xFFDEB887, // 0x87B8DEFF, 0xFFDEB887,
CadetBlue = 0xFF5F9EA0, // 0xA09E5FFF, 0xFF5F9EA0,
Chartreuse = 0xFF7FFF00, // 0x00FF7FFF, 0xFF7FFF00,
Chocolate = 0xFFD2691E, // 0x1E69D2FF, 0xFFD2691E,
Coral = 0xFFFF7F50, // 0x507FFFFF, 0xFFFF7F50,
CornflowerBlue = 0xFF6495ED, // 0xED9564FF, 0xFF6495ED,
Cornsilk = 0xFFFFF8DC, // 0xDCF8FFFF, 0xFFFFF8DC,
Crimson = 0xFFDC143C, // 0x3C14DCFF, 0xFFDC143C,
Cyan = 0xFF00FFFF, // 0xFFFF00FF, 0xFF00FFFF,
DarkBlue = 0xFF00008B, // 0x8B0000FF, 0xFF00008B,
DarkCyan = 0xFF008B8B, // 0x8B8B00FF, 0xFF008B8B,
DarkGoldenrod = 0xFFB8860B, // 0x0B86B8FF, 0xFFB8860B,
DarkGray = 0xFFA9A9A9, // 0xA9A9A9FF, 0xFFA9A9A9,
DarkGreen = 0xFF006400, // 0x006400FF, 0xFF006400,
DarkKhaki = 0xFFBDB76B, // 0x6BB7BDFF, 0xFFBDB76B,
DarkMagenta = 0xFF8B008B, // 0x8B008BFF, 0xFF8B008B,
DarkOliveGreen = 0xFF556B2F, // 0x2F6B55FF, 0xFF556B2F,
DarkOrange = 0xFFFF8C00, // 0x008CFFFF, 0xFFFF8C00,
DarkOrchid = 0xFF9932CC, // 0xCC3299FF, 0xFF9932CC,
DarkRed = 0xFF8B0000, // 0x00008BFF, 0xFF8B0000,
DarkSalmon = 0xFFE9967A, // 0x7A96E9FF, 0xFFE9967A,
DarkSeaGreen = 0xFF8FBC8B, // 0x8BBC8FFF, 0xFF8FBC8B,
DarkSlateBlue = 0xFF483D8B, // 0x8B3D48FF, 0xFF483D8B,
DarkSlateGray = 0xFF2F4F4F, // 0x4F4FF2FF, 0xFF2F4F4F,
DarkTurquoise = 0xFF00CED1, // 0xD1CE00FF, 0xFF00CED1,
DarkViolet = 0xFF9400D3, // 0xD30094FF, 0xFF9400D3,
DeepPink = 0xFFFF1493, // 0x9314FFFF, 0xFFFF1493,
DeepSkyBlue = 0xFF00BFFF, // 0xFFBF00FF, 0xFF00BFFF,
DimGray = 0xFF696969, // 0x696969FF, 0xFF696969,
DodgerBlue = 0xFF1E90FF, // 0xFF901EFF, 0xFF1E90FF,
Firebrick = 0xFFB22222, // 0x2222B2FF, 0xFFB22222,
FloralWhite = 0xFFFFFAF0, // 0xF0FAFFFF, 0xFFFFFAF0,
ForestGreen = 0xFF228B22, // 0x228B22FF, 0xFF228B22,
Fuchsia = 0xFFFF00FF, // 0xFF00FFFF, 0xFFFF00FF,
Gainsboro = 0xFFDCDCDC, // 0xDCDCDCFF, 0xFFDCDCDC,
GhostWhite = 0xFFF8F8FF, // 0xFFF8F8FF, 0xFFF8F8FF,
Gold = 0xFFFFD700, // 0x00D7FFFF, 0xFFFFD700,
Goldenrod = 0xFFDAA520, // 0x20A5DAFF, 0xFFDAA520,
Gray = 0xFF808080, // 0x808080FF, 0xFF808080,
Green = 0xFF008000, // 0x008000FF, 0xFF008000,
GreenYellow = 0xFFADFF2F, // 0x2FFFADFF, 0xFFADFF2F,
Honeydew = 0xFFF0FFF0, // 0xF0FFF0FF, 0xFFF0FFF0,
HotPink = 0xFFFF69B4, // 0xB469FFFF, 0xFFFF69B4,
IndianRed = 0xFFCD5C5C, // 0x5C5CCDFF, 0xFFCD5C5C,
Indigo = 0xFF4B0082, // 0x82004BFF, 0xFF4B0082,
Ivory = 0xFFFFFFF0, // 0x0FFFFFFF, 0xFFFFFFF0,
Khaki = 0xFFF0E68C, // 0x8CE6F0FF, 0xFFF0E68C,
Lavender = 0xFFE6E6FA, // 0xFAE6E6FF, 0xFFE6E6FA,
LavenderBlush = 0xFFFFF0F5, // 0xF5F0FFFF, 0xFFFFF0F5,
LawnGreen = 0xFF7CFC00, // 0x00FC7CFF, 0xFF7CFC00,
LemonChiffon = 0xFFFFFACD, // 0xCDFAFFFF, 0xFFFFFACD,
LightBlue = 0xFFADD8E6, // 0xE6D8ADFF, 0xFFADD8E6,
LightCoral = 0xFFF08080, // 0x8080F0FF, 0xFFF08080,
LightCyan = 0xFFE0FFFF, // 0xFFFFFFE0, 0xFFE0FFFF,
LightGoldenrodYellow = 0xFFFAFAD2, // 0xD2FAFAFF, 0xFFFAFAD2,
LightGray = 0xFFD3D3D3, // 0xD3D3D3FF, 0xFFD3D3D3,
LightGreen = 0xFF90EE90, // 0x90EE90FF, 0xFF90EE90,
LightPink = 0xFFFFB6C1, // 0xC1B6FFFF, 0xFFFFB6C1,
LightSalmon = 0xFFFFA07A, // 0x7AA0FFFF, 0xFFFFA07A,
LightSeaGreen = 0xFF20B2AA, // 0xAAB220FF, 0xFF20B2AA,
LightSkyBlue = 0xFF87CEFA, // 0xFACE87FF, 0xFF87CEFA,
LightSlateGray = 0xFF778899, // 0x998877FF, 0xFF778899,
LightSteelBlue = 0xFFB0C4DE, // 0xD4C4B0FF, 0xFFB0C4DE,
LightYellow = 0xFFFFFFE0, // 0xE0FFFFFF, 0xFFFFFFE0,
Lime = 0xFF00FF00, // 0x00FF00FF, 0xFF00FF00,
LimeGreen = 0xFF32CD32, // 0x32CD32FF, 0xFF32CD32,
Linen = 0xFFFAF0E6, // 0xE6F0FAFF, 0xFFFAF0E6,
Magenta = 0xFFFF00FF, // 0xFF00FFFF, 0xFFFF00FF,
Maroon = 0xFF800000, // 0x000080FF, 0xFF800000,
MediumAquamarine = 0xFF66CDAA, // 0xAACD66FF, 0xFF66CDAA,
MediumBlue = 0xFF0000CD, // 0xCD0000FF, 0xFF0000CD,
MediumOrchid = 0xFFBA55D3, // 0xD355BAFF, 0xFFBA55D3,
MediumPurple = 0xFF9370DB, // 0xDB7093FF, 0xFF9370DB,
MediumSeaGreen = 0xFF3CB371, // 0x71B33CFF, 0xFF3CB371,
MediumSlateBlue = 0xFF7B68EE, // 0xEE687BFF, 0xFF7B68EE,
MediumSpringGreen = 0xFF00FA9A, // 0x9AFA00FF, 0xFF00FA9A,
MediumTurquoise = 0xFF48D1CC, // 0xCCD148FF, 0xFF48D1CC,
MediumVioletRed = 0xFFC71585, // 0x8515C7FF, 0xFFC71585,
MidnightBlue = 0xFF191970, // 0x701919FF, 0xFF191970,
MintCream = 0xFFF5FFFA, // 0xFAFFF5FF, 0xFFF5FFFA,
MistyRose = 0xFFFFE4E1, // 0xE1E4FFFF, 0xFFFFE4E1,
Moccasin = 0xFFFFE4B5, // 0xB5E4FFFF, 0xFFFFE4B5,
NavajoWhite = 0xFFFFDEAD, // 0xADFDFFFF, 0xFFFFDEAD,
Navy = 0xFF000080, // 0x800000FF, 0xFF000080,
OldLace = 0xFFFDF5E6, // 0xE6F5FDFF, 0xFFFDF5E6,
Olive = 0xFF808000, // 0x008080FF, 0xFF808000,
OliveDrab = 0xFF6B8E23, // 0x238E6BFF, 0xFF6B8E23,
Orange = 0xFFFFA500, // 0x00A5FFFF, 0xFFFFA500,
OrangeRed = 0xFFFF4500, // 0x0045FFFF, 0xFFFF4500,
Orchid = 0xFFDA70D6, // 0xD670DAFF, 0xFFDA70D6,
PaleGoldenrod = 0xFFEEE8AA, // 0xAAE8EEFF, 0xFFEEE8AA,
PaleGreen = 0xFF98FB98, // 0x98FB98FF, 0xFF98FB98,
PaleTurquoise = 0xFFAFEEEE, // 0xEEEEAFFF, 0xFFAFEEEE,
PaleVioletRed = 0xFFDB7093, // 0x9370DBFF, 0xFFDB7093,
PapayaWhip = 0xFFFFEFD5, // 0xD5EFFFFF, 0xFFFFEFD5,
PeachPuff = 0xFFFFDAB9, // 0xB9DAFFFF, 0xFFFFDAB9,
Peru = 0xFFCD853F, // 0x3D85CDFF, 0xFFCD853F,
Pink = 0xFFFFC0CB, // 0xCBC0FFFF, 0xFFFFC0CB,
Plum = 0xFFDDA0DD, // 0xDDA0DDFF, 0xFFDDA0DD,
PowderBlue = 0xFFB0E0E6, // 0xE6E0B0FF, 0xFFB0E0E6,
Purple = 0xFF800080, // 0x800080FF, 0xFF800080,
Red = 0xFFFF0000, // 0x0000FFFF, 0xFFFF0000,
RosyBrown = 0xFFBC8F8F, // 0x8F8FBCFF, 0xFFBC8F8F,
RoyalBlue = 0xFF4169E1, // 0xE16941FF, 0xFF4169E1,
SaddleBrown = 0xFF8B4513, // 0x13458BFF, 0xFF8B4513,
Salmon = 0xFFFA8072, // 0x7280FAFF, 0xFFFA8072,
SandyBrown = 0xFFF4A460, // 0x60A4F4FF, 0xFFF4A460,
SeaGreen = 0xFF2E8B57, // 0x578B2EFF, 0xFF2E8B57,
SeaShell = 0xFFFFF5EE, // 0xEEF5FFFF, 0xFFFFF5EE,
Sienna = 0xFFA0522D, // 0x2D52A0FF, 0xFFA0522D,
Silver = 0xFFC0C0C0, // 0xC0C0C0FF, 0xFFC0C0C0,
SkyBlue = 0xFF87CEEB, // 0xEBCE87FF, 0xFF87CEEB,
SlateBlue = 0xFF6A5ACD, // 0xCD5A6AFF, 0xFF6A5ACD,
SlateGray = 0xFF708090, // 0x908070FF, 0xFF708090,
Snow = 0xFFFFFAFA, // 0xFAFAFFFF, 0xFFFFFAFA,
SpringGreen = 0xFF00FF7F, // 0x7FFF00FF, 0xFF00FF7F,
SteelBlue = 0xFF4682B4, // 0xB48246FF, 0xFF4682B4,
Tan = 0xFFD2B48C, // 0x8CB4D2FF, 0xFFD2B48C,
Teal = 0xFF008080, // 0x808000FF, 0xFF008080,
Thistle = 0xFFD8BFD8, // 0xD8BFD8FF, 0xFFD8BFD8,
Tomato = 0xFFFF6347, // 0x4763FFFF, 0xFFFF6347,
// Transparent = 0x00FFFFFF, // 0xFFFFFF00, 0x00FFFFFF,
Transparent = 0xFF000000,
Turquoise = 0xFF40E0D0, // 0xD0E040FF, 0xFF40E0D0,
Violet = 0xFFEE82EE, // 0xEE82EEFF, 0xFFEE82EE,
Wheat = 0xFFF5DEB3, // 0xB3DEF5FF, 0xFFF5DEB3,
White = 0xFFFFFFFF, // 0xFFFFFFFF, 0xFFFFFFFF,
WhiteSmoke = 0xFFF5F5F5, // 0xF5F5F5FF, 0xFFF5F5F5,
Yellow = 0xFFFFFF00, // 0x00FFFFFF, 0xFFFFFF00,
YellowGreen = 0xFF9ACD32 // 0x32CD9AFF 0xFF9ACD32
} OsdColor;
#endif
/*
North
|
\ /
West - - East
/ \
|
South
*/
typedef enum _Corner
{
eNorth = 0,
eNorthEast,
eEast,
eSouthEast,
eSouth,
eSouthWest,
eWest,
eNorthWest
}Corner;
typedef enum _TriangleStyle
{
/*
_
\|
*/
eTriangle1,
/*
|\
-
*/
eTriangle2,
/*
/|
-
*/
eTriangle3,
/*
_
|/
*/
eTriangle4,
/*
<|
*/
eTriangle5,
/*
|>
*/
eTriangle6,
/*
_
\/
*/
eTriangle7,
/*
/\
-
*/
eTriangle8
}TriangleStyle;
typedef enum _LineType
{
eSolidLine,
eDashLine
}LineType;
typedef enum _Rect3DType
{
eRect3D_Normal = 0,
eRect3D_Sink = 0x01,
eRect3D_NoUpBorder = 0x02,
eRect3D_NoLowerBorder = 0x04
}Rect3DType ;
/// Define color
#if 0
typedef struct
{
/// ARGB8888
struct {
/// Blue
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -