embeddedsw/XilinxProcessorIPLib/drivers/osd/doc/html/api/xosd_8c.html
Shravan Kumar A 1fb4235048 osd: Added source files
Modified the source files, added selftest example, Doxygen docs

Signed-off-by: Shravan Kumar A <skumara@xilinx.com>
Acked-by: Srikanth Vemula <svemula@xilinx.com>
2014-09-02 11:21:09 +05:30

1173 lines
60 KiB
HTML

<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>
xosd.c File Reference
</title>
<link href="$DriverApiDocsCssPath" rel="stylesheet" type="text/css">
</head>
<h3 class="PageHeader">Xilinx Processor IP Library</h3>
<hl>Software Drivers</hl>
<hr class="whs1">
<!-- Generated by Doxygen 1.4.7 -->
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li id="current"><a href="files.html"><span>Files</span></a></li>
</ul></div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File&nbsp;List</span></a></li>
<li><a href="globals.html"><span>File&nbsp;Members</span></a></li>
</ul></div>
<h1>xosd.c File Reference</h1><hr><a name="_details"></a><h2>Detailed Description</h2>
This file is main code of Xilinx Video On-Screen-Display (OSD) core. Please see <a class="el" href="xosd_8h.html">xosd.h</a> for more details of the driver.<p>
<pre>
MODIFICATION HISTORY:</pre><p>
<pre> Ver Who Date Changes
----- ------ -------- -------------------------------------------------------
1.00a xd 08/18/08 First release.
1.02a xd 12/21/10 Removed endian conversion for text bank loading.
1.03a cm 09/07/11 Updated <a class="el" href="xosd_8c.html#b692eaddc144c270dfb05f7171c403e2">XOsd_GetLayerAlpha()</a>, <a class="el" href="xosd_8c.html#08b6809a1bd0d27dd275e06fe1cbea61">XOsd_SetLayerAlpha()</a>,
<a class="el" href="xosd_8c.html#b2040236e554455aa030814966dad413">XOsd_SetBackgroundColor()</a> and <a class="el" href="xosd_8c.html#a7361c792b36dafe0e48ae22c32cf125">XOsd_GetBackgroundColor()</a>
to allow 10 and 12 bit alpha and background colors.
2.00a cjm 12/18/12 Converted from xio.h to xil_io.h, translating
basic types, MB cache functions, exceptions and
assertions to xil_io format.
4.0 adk 02/18/14 Renamed S_AXIS_VIDEO_DATA_WIDTH -&gt;
SlaveAxisVideoDataWidth.
Removed from XOsd_CfgInitialize:
VbiStartCallBack, VbiStartRef, VbiEndCallBack,
VbiEndRef.</pre><p>
<pre> Added in XOsd_CfgInitialize:
ProcStartCallBack, ProcStartRef.</pre><p>
<pre> Renamed the following function prototypes:
XOSD_CfgInitialize -&gt; XOsd_CfgInitialize,
XOSD_SetScreenSize -&gt; XOsd_SetActiveSize,
XOSD_GetScreenSize -&gt; XOsd_GetActiveSize,
XOSD_SetBackgroundColor -&gt; XOsd_SetBackgroundColor,
XOSD_GetBackgroundColor -&gt; XOSD_GetBackgroundColor,
XOSD_SetLayerDimension -&gt; XOsd_SetLayerDimension,
XOSD_GetLayerDimension -&gt; XOsd_GetLayerDimension,
XOSD_SetLayerAlpha -&gt; XOsd_SetLayerAlpha,
XOSD_GetLayerAlpha -&gt; XOsd_GetLayerAlpha,
XOSD_SetLayerAlpha -&gt; XOsd_SetLayerAlpha,
XOSD_GetLayerAlpha -&gt; XOsd_GetLayerAlpha,
XOSD_SetLayerPriority -&gt; XOsd_SetLayerPriority,
XOSD_GetLayerPriority -&gt; XOsd_GetLayerPriority,
XOSD_EnableLayer -&gt; XOsd_EnableLayer,
XOSD_DisableLayer -&gt; XOsd_DisableLayer,
XOSD_LoadColorLUTBank - &gt; XOsd_LoadColorLUTBank,
XOSD_LoadCharacterSetBank -&gt; XOsd_LoadCharacterSetBank,
XOSD_LoadTextBank - &gt; XOsd_LoadTextBank,
XOSD_SetActiveBank -&gt; XOsd_SetActiveBank,
XOSD_CreateInstruction -&gt; XOsd_CreateInstruction,
XOSD_LoadInstructionList -&gt; XOsd_LoadInstructionList,
XOSD_LookupConfig -&gt; XOsd_LookupConfig,
XOSD_IntrHandler -&gt; XOsd_IntrHandler,
XOSD_SetCallBack -&gt; XOsd_SetCallBack.</pre><p>
<pre> Changed the prototype of XOSD_GetVersion and renamed it as
XOsd_GetVersion</pre><p>
<pre> Removed the following function implementation:
XOSD_SetBlankPolarity.
</pre>
<p>
<code>#include &quot;<a class="el" href="xosd_8h.html">xosd.h</a>&quot;</code><br>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xosd_8c.html#f9dad59565307cd8f71b385689f91048">XOsd_CfgInitialize</a> (<a class="el" href="struct_x_osd.html">XOsd</a> *InstancePtr, <a class="el" href="struct_x_osd___config.html">XOsd_Config</a> *CfgPtr, u32 EffectiveAddr)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xosd_8c.html#037810c3a4ef79dba6cc202afc679373">XOsd_SetActiveSize</a> (<a class="el" href="struct_x_osd.html">XOsd</a> *InstancePtr, u32 Width, u32 Height)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xosd_8c.html#fad06669f4df698b225bfe8b05e6dbbd">XOsd_GetActiveSize</a> (<a class="el" href="struct_x_osd.html">XOsd</a> *InstancePtr, u32 *WidthPtr, u32 *HeightPtr)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xosd_8c.html#b2040236e554455aa030814966dad413">XOsd_SetBackgroundColor</a> (<a class="el" href="struct_x_osd.html">XOsd</a> *InstancePtr, u16 Red, u16 Blue, u16 Green)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xosd_8c.html#a7361c792b36dafe0e48ae22c32cf125">XOsd_GetBackgroundColor</a> (<a class="el" href="struct_x_osd.html">XOsd</a> *InstancePtr, u16 *RedPtr, u16 *BluePtr, u16 *GreenPtr)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xosd_8c.html#33679ac417b6f2596c6b6b085d39a5b1">XOsd_SetLayerDimension</a> (<a class="el" href="struct_x_osd.html">XOsd</a> *InstancePtr, u8 LayerIndex, u16 XStart, u16 YStart, u16 XSize, u16 YSize)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xosd_8c.html#3223d1726b2e25cda7de089d85353c1b">XOsd_GetLayerDimension</a> (<a class="el" href="struct_x_osd.html">XOsd</a> *InstancePtr, u8 LayerIndex, u16 *XStartPtr, u16 *YStartPtr, u16 *XSizePtr, u16 *YSizePtr)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xosd_8c.html#08b6809a1bd0d27dd275e06fe1cbea61">XOsd_SetLayerAlpha</a> (<a class="el" href="struct_x_osd.html">XOsd</a> *InstancePtr, u8 LayerIndex, u16 GlobalAlphaEnable, u16 GlobalAlphaValue)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xosd_8c.html#b692eaddc144c270dfb05f7171c403e2">XOsd_GetLayerAlpha</a> (<a class="el" href="struct_x_osd.html">XOsd</a> *InstancePtr, u8 LayerIndex, u16 *GlobalAlphaEnablePtr, u16 *GlobalAlphaValuePtr)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xosd_8c.html#e10e5b163cf71fd385200b724d1dd560">XOsd_SetLayerPriority</a> (<a class="el" href="struct_x_osd.html">XOsd</a> *InstancePtr, u8 LayerIndex, u8 Priority)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xosd_8c.html#02cbaaa4f5e6b640c876b727db267602">XOsd_GetLayerPriority</a> (<a class="el" href="struct_x_osd.html">XOsd</a> *InstancePtr, u8 LayerIndex, u8 *PriorityPtr)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xosd_8c.html#cdb4b75859dbfc611d70382fb2c94a7f">XOsd_EnableLayer</a> (<a class="el" href="struct_x_osd.html">XOsd</a> *InstancePtr, u8 LayerIndex)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xosd_8c.html#1ecd1900b797b12867274e0daf1a8d62">XOsd_DisableLayer</a> (<a class="el" href="struct_x_osd.html">XOsd</a> *InstancePtr, u8 LayerIndex)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xosd_8c.html#9d28c4453d039dc09b540d55c78c80b2">XOsd_LoadColorLUTBank</a> (<a class="el" href="struct_x_osd.html">XOsd</a> *InstancePtr, u8 GcIndex, u8 BankIndex, u32 ColorData[])</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xosd_8c.html#6579cb01322e477e72faec9ea6feee63">XOsd_LoadCharacterSetBank</a> (<a class="el" href="struct_x_osd.html">XOsd</a> *InstancePtr, u8 GcIndex, u8 BankIndex, u32 CharSetData[])</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xosd_8c.html#5a76210dc91d4a51111855bbc501c4e8">XOsd_LoadTextBank</a> (<a class="el" href="struct_x_osd.html">XOsd</a> *InstancePtr, u8 GcIndex, u8 BankIndex, u32 TextData[])</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xosd_8c.html#5552532bfdfcd272722180e71d6c7b75">XOsd_SetActiveBank</a> (<a class="el" href="struct_x_osd.html">XOsd</a> *InstancePtr, u8 GcIndex, u8 ColorBankIndex, u8 CharBankIndex, u8 TextBankIndex, u8 InstructionBankIndex)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xosd_8c.html#7abff2415587a54c259f159fc780e2cc">XOsd_CreateInstruction</a> (<a class="el" href="struct_x_osd.html">XOsd</a> *InstancePtr, u32 InstructionPtr[], u8 GcIndex, u16 ObjType, u8 ObjSize, u16 XStart, u16 YStart, u16 XEnd, u16 YEnd, u8 TextIndex, u8 ColorIndex)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xosd_8c.html#55937cb3259f5843c9e1beec4e126955">XOsd_LoadInstructionList</a> (<a class="el" href="struct_x_osd.html">XOsd</a> *InstancePtr, u8 GcIndex, u8 BankIndex, u32 InstSetPtr[], u32 InstNum)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">u32&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="xosd_8c.html#94b9d7eac70a2fc2315b07059e832986">XOsd_GetVersion</a> (<a class="el" href="struct_x_osd.html">XOsd</a> *InstancePtr)</td></tr>
</table>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="f9dad59565307cd8f71b385689f91048"></a><!-- doxytag: member="xosd.c::XOsd_CfgInitialize" ref="f9dad59565307cd8f71b385689f91048" args="(XOsd *InstancePtr, XOsd_Config *CfgPtr, u32 EffectiveAddr)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int XOsd_CfgInitialize </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_osd.html">XOsd</a> *&nbsp;</td>
<td class="paramname"> <em>InstancePtr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="struct_x_osd___config.html">XOsd_Config</a> *&nbsp;</td>
<td class="paramname"> <em>CfgPtr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u32&nbsp;</td>
<td class="paramname"> <em>EffectiveAddr</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
This function initializes an OSD core. This function must be called prior to using an OSD core. Initialization of an OSD includes setting up the instance data and ensuring the hardware is in a quiescent state.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>InstancePtr</em>&nbsp;</td><td>is a pointer to the <a class="el" href="struct_x_osd.html">XOsd</a> instance to be worked on. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>CfgPtr</em>&nbsp;</td><td>points to the configuration structure associated with the OSD core. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>EffectiveAddr</em>&nbsp;</td><td>is the base address of the core. If address translation is being used, then this parameter must reflect the virtual base address. Otherwise, the physical address should be used.</td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>- XST_SUCCESS if XOsd_CfgInitialize was successful.</dd></dl>
<dl compact><dt><b>Note:</b></dt><dd>None. </dd></dl>
</div>
</div><p>
<a class="anchor" name="7abff2415587a54c259f159fc780e2cc"></a><!-- doxytag: member="xosd.c::XOsd_CreateInstruction" ref="7abff2415587a54c259f159fc780e2cc" args="(XOsd *InstancePtr, u32 InstructionPtr[], u8 GcIndex, u16 ObjType, u8 ObjSize, u16 XStart, u16 YStart, u16 XEnd, u16 YEnd, u8 TextIndex, u8 ColorIndex)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void XOsd_CreateInstruction </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_osd.html">XOsd</a> *&nbsp;</td>
<td class="paramname"> <em>InstancePtr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u32&nbsp;</td>
<td class="paramname"> <em>InstructionPtr</em>[], </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u8&nbsp;</td>
<td class="paramname"> <em>GcIndex</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u16&nbsp;</td>
<td class="paramname"> <em>ObjType</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u8&nbsp;</td>
<td class="paramname"> <em>ObjSize</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u16&nbsp;</td>
<td class="paramname"> <em>XStart</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u16&nbsp;</td>
<td class="paramname"> <em>YStart</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u16&nbsp;</td>
<td class="paramname"> <em>XEnd</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u16&nbsp;</td>
<td class="paramname"> <em>YEnd</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u8&nbsp;</td>
<td class="paramname"> <em>TextIndex</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u8&nbsp;</td>
<td class="paramname"> <em>ColorIndex</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
This function creates an instruction for the OSD core.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>InstancePtr</em>&nbsp;</td><td>is a pointer to the <a class="el" href="struct_x_osd.html">XOsd</a> instance to be worked on. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>InstructionPtr</em>&nbsp;</td><td>is a pointer to the instruction buffer to be populated with the instruction to be created. The upper level application is responsible for allocating this instruction buffer. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>GcIndex</em>&nbsp;</td><td>indicates the Graphics Controller that will consume the instruction. Valid value range is from 0 to (The Number of Layers) - 1. The layer's type must be set to XOSD_LAYER_TYPE_GPU (defined in <a class="el" href="xosd__hw_8h.html">xosd_hw.h</a>) for this function to work properly. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>ObjType</em>&nbsp;</td><td>indicates the type of object to draw. Use one of XOSD_INS_OPCODE_* constants defined in <a class="el" href="xosd__hw_8h.html">xosd_hw.h</a>. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>ObjSize</em>&nbsp;</td><td>indicates line width of boxes and lines and the text scale factor for text boxes. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>XStart</em>&nbsp;</td><td>indicates the horizontal start pixel of the Object. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>YStart</em>&nbsp;</td><td>indicates the vertical start line of the Object. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>XEnd</em>&nbsp;</td><td>indicates the horizontal end pixel of the Object. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>YEnd</em>&nbsp;</td><td>indicates the vertical end line of the Object. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>TextIndex</em>&nbsp;</td><td>indicates the string index. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>ColorIndex</em>&nbsp;</td><td>indicates the color index.</td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>None.</dd></dl>
<dl compact><dt><b>Note:</b></dt><dd>None. </dd></dl>
</div>
</div><p>
<a class="anchor" name="1ecd1900b797b12867274e0daf1a8d62"></a><!-- doxytag: member="xosd.c::XOsd_DisableLayer" ref="1ecd1900b797b12867274e0daf1a8d62" args="(XOsd *InstancePtr, u8 LayerIndex)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void XOsd_DisableLayer </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_osd.html">XOsd</a> *&nbsp;</td>
<td class="paramname"> <em>InstancePtr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u8&nbsp;</td>
<td class="paramname"> <em>LayerIndex</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
This function disables an OSD layer.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>InstancePtr</em>&nbsp;</td><td>is a pointer to the <a class="el" href="struct_x_osd.html">XOsd</a> instance to be worked on. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>LayerIndex</em>&nbsp;</td><td>indicates which layer to be worked on. Valid value range is from 0 to (the number of layers implemented in the core - 1).</td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>None.</dd></dl>
<dl compact><dt><b>Note:</b></dt><dd>None. </dd></dl>
</div>
</div><p>
<a class="anchor" name="cdb4b75859dbfc611d70382fb2c94a7f"></a><!-- doxytag: member="xosd.c::XOsd_EnableLayer" ref="cdb4b75859dbfc611d70382fb2c94a7f" args="(XOsd *InstancePtr, u8 LayerIndex)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void XOsd_EnableLayer </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_osd.html">XOsd</a> *&nbsp;</td>
<td class="paramname"> <em>InstancePtr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u8&nbsp;</td>
<td class="paramname"> <em>LayerIndex</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
This function enables an OSD layer.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>InstancePtr</em>&nbsp;</td><td>is a pointer to the <a class="el" href="struct_x_osd.html">XOsd</a> instance to be worked on. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>LayerIndex</em>&nbsp;</td><td>indicates which layer to be worked on. Valid value range is from 0 to (the number of layers implemented in the core - 1).</td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>None.</dd></dl>
<dl compact><dt><b>Note:</b></dt><dd>None. </dd></dl>
</div>
</div><p>
<a class="anchor" name="fad06669f4df698b225bfe8b05e6dbbd"></a><!-- doxytag: member="xosd.c::XOsd_GetActiveSize" ref="fad06669f4df698b225bfe8b05e6dbbd" args="(XOsd *InstancePtr, u32 *WidthPtr, u32 *HeightPtr)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void XOsd_GetActiveSize </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_osd.html">XOsd</a> *&nbsp;</td>
<td class="paramname"> <em>InstancePtr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u32 *&nbsp;</td>
<td class="paramname"> <em>WidthPtr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u32 *&nbsp;</td>
<td class="paramname"> <em>HeightPtr</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
This function gets the screen size of the OSD Output.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>InstancePtr</em>&nbsp;</td><td>is a pointer to the <a class="el" href="struct_x_osd.html">XOsd</a> instance to be worked on. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>WidthPtr</em>&nbsp;</td><td>will point to the width of the OSD output after this function returns. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>HeightPtr</em>&nbsp;</td><td>will point to the height of the OSD output after this function returns.</td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>None.</dd></dl>
<dl compact><dt><b>Note:</b></dt><dd>None. </dd></dl>
</div>
</div><p>
<a class="anchor" name="a7361c792b36dafe0e48ae22c32cf125"></a><!-- doxytag: member="xosd.c::XOsd_GetBackgroundColor" ref="a7361c792b36dafe0e48ae22c32cf125" args="(XOsd *InstancePtr, u16 *RedPtr, u16 *BluePtr, u16 *GreenPtr)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void XOsd_GetBackgroundColor </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_osd.html">XOsd</a> *&nbsp;</td>
<td class="paramname"> <em>InstancePtr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u16 *&nbsp;</td>
<td class="paramname"> <em>RedPtr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u16 *&nbsp;</td>
<td class="paramname"> <em>BluePtr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u16 *&nbsp;</td>
<td class="paramname"> <em>GreenPtr</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
This function gets the background color used by the OSD output.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>InstancePtr</em>&nbsp;</td><td>is a pointer to the <a class="el" href="struct_x_osd.html">XOsd</a> instance to be worked on. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>RedPtr</em>&nbsp;</td><td>will point to the red value used in the background color after this function returns. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>BluePtr</em>&nbsp;</td><td>will point to the blue value used in the background color after this function returns. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>GreenPtr</em>&nbsp;</td><td>will point to the green value used in the background color after this function returns.</td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>None.</dd></dl>
<dl compact><dt><b>Note:</b></dt><dd>None. </dd></dl>
</div>
</div><p>
<a class="anchor" name="b692eaddc144c270dfb05f7171c403e2"></a><!-- doxytag: member="xosd.c::XOsd_GetLayerAlpha" ref="b692eaddc144c270dfb05f7171c403e2" args="(XOsd *InstancePtr, u8 LayerIndex, u16 *GlobalAlphaEnablePtr, u16 *GlobalAlphaValuePtr)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void XOsd_GetLayerAlpha </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_osd.html">XOsd</a> *&nbsp;</td>
<td class="paramname"> <em>InstancePtr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u8&nbsp;</td>
<td class="paramname"> <em>LayerIndex</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u16 *&nbsp;</td>
<td class="paramname"> <em>GlobalAlphaEnablePtr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u16 *&nbsp;</td>
<td class="paramname"> <em>GlobalAlphaValuePtr</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
This function gets the alpha value and mode of an OSD layer.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>InstancePtr</em>&nbsp;</td><td>is a pointer to the <a class="el" href="struct_x_osd.html">XOsd</a> instance to be worked on. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>LayerIndex</em>&nbsp;</td><td>indicates which layer to be worked on. Valid value range is from 0 to (the number of layers implemented in the core - 1). </td></tr>
<tr><td valign="top"></td><td valign="top"><em>GlobalAlphaEnablePtr</em>&nbsp;</td><td>will point to a flag indicating whether the global alpha is enabled on a layer after this function returns. Flag 1 indicates that the global alpha is enabled, 0 indicates that it is not. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>GlobalAlphaValuePtr</em>&nbsp;</td><td>will point to the transparent level after this function returns. 0 for 100% transparent, 255 (8bit) for 0% transparent (100% opaque).</td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>None.</dd></dl>
<dl compact><dt><b>Note:</b></dt><dd>None. </dd></dl>
</div>
</div><p>
<a class="anchor" name="3223d1726b2e25cda7de089d85353c1b"></a><!-- doxytag: member="xosd.c::XOsd_GetLayerDimension" ref="3223d1726b2e25cda7de089d85353c1b" args="(XOsd *InstancePtr, u8 LayerIndex, u16 *XStartPtr, u16 *YStartPtr, u16 *XSizePtr, u16 *YSizePtr)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void XOsd_GetLayerDimension </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_osd.html">XOsd</a> *&nbsp;</td>
<td class="paramname"> <em>InstancePtr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u8&nbsp;</td>
<td class="paramname"> <em>LayerIndex</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u16 *&nbsp;</td>
<td class="paramname"> <em>XStartPtr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u16 *&nbsp;</td>
<td class="paramname"> <em>YStartPtr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u16 *&nbsp;</td>
<td class="paramname"> <em>XSizePtr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u16 *&nbsp;</td>
<td class="paramname"> <em>YSizePtr</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
This function gets the start position and size of an OSD layer.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>InstancePtr</em>&nbsp;</td><td>is a pointer to the <a class="el" href="struct_x_osd.html">XOsd</a> instance to be worked on. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>LayerIndex</em>&nbsp;</td><td>indicates which layer to be worked on. Valid value range is from 0 to (the number of layers implemented in the core - 1). </td></tr>
<tr><td valign="top"></td><td valign="top"><em>XStartPtr</em>&nbsp;</td><td>will point to the horizontal start pixel value of origin of the layer after this function returns. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>YStartPtr</em>&nbsp;</td><td>will point to the vertical start line of origin of the layer after this function returns. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>XSizePtr</em>&nbsp;</td><td>will point to the horizontal size value of the layer after this function returns. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>YSizePtr</em>&nbsp;</td><td>will point to the vertical size value of the layer after this function returns.</td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>None.</dd></dl>
<dl compact><dt><b>Note:</b></dt><dd>None. </dd></dl>
</div>
</div><p>
<a class="anchor" name="02cbaaa4f5e6b640c876b727db267602"></a><!-- doxytag: member="xosd.c::XOsd_GetLayerPriority" ref="02cbaaa4f5e6b640c876b727db267602" args="(XOsd *InstancePtr, u8 LayerIndex, u8 *PriorityPtr)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void XOsd_GetLayerPriority </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_osd.html">XOsd</a> *&nbsp;</td>
<td class="paramname"> <em>InstancePtr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u8&nbsp;</td>
<td class="paramname"> <em>LayerIndex</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u8 *&nbsp;</td>
<td class="paramname"> <em>PriorityPtr</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
This function gets the priority of an OSD layer.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>InstancePtr</em>&nbsp;</td><td>is a pointer to the <a class="el" href="struct_x_osd.html">XOsd</a> instance to be worked on. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>LayerIndex</em>&nbsp;</td><td>indicates which layer to be worked on. Valid value range is from 0 to (the number of layers implemented in the core - 1). </td></tr>
<tr><td valign="top"></td><td valign="top"><em>PriorityPtr</em>&nbsp;</td><td>will point to the priority used on the layer after this function returns. Use one of XOSD_LAYER_PRIORITY_0 (the lowest priority) through XOSD_LAYER_PRIORITY_7 (the highest priority) defined in <a class="el" href="xosd__hw_8h.html">xosd_hw.h</a> to interpret the value.</td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>None.</dd></dl>
<dl compact><dt><b>Note:</b></dt><dd>None. </dd></dl>
</div>
</div><p>
<a class="anchor" name="94b9d7eac70a2fc2315b07059e832986"></a><!-- doxytag: member="xosd.c::XOsd_GetVersion" ref="94b9d7eac70a2fc2315b07059e832986" args="(XOsd *InstancePtr)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">u32 XOsd_GetVersion </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_osd.html">XOsd</a> *&nbsp;</td>
<td class="paramname"> <em>InstancePtr</em> </td>
<td>&nbsp;)&nbsp;</td>
<td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
This function returns the Version of the OSD core.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>InstancePtr</em>&nbsp;</td><td>is a pointer to the <a class="el" href="struct_x_osd.html">XOsd</a> instance to be worked on.</td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>Contents of the Version register.</dd></dl>
<dl compact><dt><b>Note:</b></dt><dd>None. </dd></dl>
</div>
</div><p>
<a class="anchor" name="6579cb01322e477e72faec9ea6feee63"></a><!-- doxytag: member="xosd.c::XOsd_LoadCharacterSetBank" ref="6579cb01322e477e72faec9ea6feee63" args="(XOsd *InstancePtr, u8 GcIndex, u8 BankIndex, u32 CharSetData[])" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void XOsd_LoadCharacterSetBank </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_osd.html">XOsd</a> *&nbsp;</td>
<td class="paramname"> <em>InstancePtr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u8&nbsp;</td>
<td class="paramname"> <em>GcIndex</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u8&nbsp;</td>
<td class="paramname"> <em>BankIndex</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u32&nbsp;</td>
<td class="paramname"> <em>CharSetData</em>[]</td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
This function loads character set data (font) into an OSD Graphics Controller bank.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>InstancePtr</em>&nbsp;</td><td>is a pointer to the <a class="el" href="struct_x_osd.html">XOsd</a> instance to be worked on. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>GcIndex</em>&nbsp;</td><td>indicates which Graphics Controller to work on. Valid value range is from 0 to (The Number of Layers) - 1. The layer's type must be set to XOSD_LAYER_TYPE_GPU (defined in <a class="el" href="xosd__hw_8h.html">xosd_hw.h</a>) for this function to work properly. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>BankIndex</em>&nbsp;</td><td>indicates which GC bank to be worked on. Valid value range is from 0 to XOSD_GC_BANK_NUM - 1. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>CharSetData</em>&nbsp;</td><td>points to the character set data to be loaded.</td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>None.</dd></dl>
<dl compact><dt><b>Note:</b></dt><dd>None. </dd></dl>
</div>
</div><p>
<a class="anchor" name="9d28c4453d039dc09b540d55c78c80b2"></a><!-- doxytag: member="xosd.c::XOsd_LoadColorLUTBank" ref="9d28c4453d039dc09b540d55c78c80b2" args="(XOsd *InstancePtr, u8 GcIndex, u8 BankIndex, u32 ColorData[])" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void XOsd_LoadColorLUTBank </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_osd.html">XOsd</a> *&nbsp;</td>
<td class="paramname"> <em>InstancePtr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u8&nbsp;</td>
<td class="paramname"> <em>GcIndex</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u8&nbsp;</td>
<td class="paramname"> <em>BankIndex</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u32&nbsp;</td>
<td class="paramname"> <em>ColorData</em>[]</td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
This function loads color look up table data into an OSD Graphics Controller bank.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>InstancePtr</em>&nbsp;</td><td>is a pointer to the <a class="el" href="struct_x_osd.html">XOsd</a> instance to be worked on. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>GcIndex</em>&nbsp;</td><td>indicates which Graphics Controller to work on. Valid value range is from 0 to (The Number of Layers) - 1. The layer's type must be set to XOSD_LAYER_TYPE_GPU (defined in <a class="el" href="xosd__hw_8h.html">xosd_hw.h</a>) for this function to work properly. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>BankIndex</em>&nbsp;</td><td>indicates which GC Bank to be worked on. Valid value range is from 0 to XOSD_GC_BANK_NUM - 1. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>ColorData</em>&nbsp;</td><td>points to the color LUT data to be loaded.</td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>None.</dd></dl>
<dl compact><dt><b>Note:</b></dt><dd>None. </dd></dl>
</div>
</div><p>
<a class="anchor" name="55937cb3259f5843c9e1beec4e126955"></a><!-- doxytag: member="xosd.c::XOsd_LoadInstructionList" ref="55937cb3259f5843c9e1beec4e126955" args="(XOsd *InstancePtr, u8 GcIndex, u8 BankIndex, u32 InstSetPtr[], u32 InstNum)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void XOsd_LoadInstructionList </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_osd.html">XOsd</a> *&nbsp;</td>
<td class="paramname"> <em>InstancePtr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u8&nbsp;</td>
<td class="paramname"> <em>GcIndex</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u8&nbsp;</td>
<td class="paramname"> <em>BankIndex</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u32&nbsp;</td>
<td class="paramname"> <em>InstSetPtr</em>[], </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u32&nbsp;</td>
<td class="paramname"> <em>InstNum</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
This function load an instruction list to be used by an Graphic Controller in the OSD core.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>InstancePtr</em>&nbsp;</td><td>is a pointer to the <a class="el" href="struct_x_osd.html">XOsd</a> instance to be worked on. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>GcIndex</em>&nbsp;</td><td>indicates which Graphics Controller to work on. Valid value range is from 0 to (The Number of Layers) - 1. The layer's type must be set to XOSD_LAYER_TYPE_GPU (defined in <a class="el" href="xosd__hw_8h.html">xosd_hw.h</a>) for this function to work properly. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>BankIndex</em>&nbsp;</td><td>indicates which GC Bank to be worked on. Valid value range is from 0 to XOSD_GC_BANK_NUM. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>InstSetPtr</em>&nbsp;</td><td>is a pointer to the start of the instruction list to load into the OSD core. The last instruction in the list must has XOSD_INS_OPCODE_END type. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>InstNum</em>&nbsp;</td><td>indicates the number of the instructions in the list to load. Valid value range is from 1 to the half of the size of the instruction memory created for the Graphic Controller.</td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>None.</dd></dl>
<dl compact><dt><b>Note:</b></dt><dd>None. </dd></dl>
</div>
</div><p>
<a class="anchor" name="5a76210dc91d4a51111855bbc501c4e8"></a><!-- doxytag: member="xosd.c::XOsd_LoadTextBank" ref="5a76210dc91d4a51111855bbc501c4e8" args="(XOsd *InstancePtr, u8 GcIndex, u8 BankIndex, u32 TextData[])" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void XOsd_LoadTextBank </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_osd.html">XOsd</a> *&nbsp;</td>
<td class="paramname"> <em>InstancePtr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u8&nbsp;</td>
<td class="paramname"> <em>GcIndex</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u8&nbsp;</td>
<td class="paramname"> <em>BankIndex</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u32&nbsp;</td>
<td class="paramname"> <em>TextData</em>[]</td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
This function loads text data into an OSD Graphics Controller bank.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>InstancePtr</em>&nbsp;</td><td>is a pointer to the <a class="el" href="struct_x_osd.html">XOsd</a> instance to be worked on. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>GcIndex</em>&nbsp;</td><td>indicates which Graphics Controller to work on. Valid value range is from 0 to (The Number of Layers) - 1. The layer's type must be set to XOSD_LAYER_TYPE_GPU (defined in <a class="el" href="xosd__hw_8h.html">xosd_hw.h</a>) for this function to work properly. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>BankIndex</em>&nbsp;</td><td>indicates which GC bank to be worked on. Valid value range is from 0 to XOSD_GC_BANK_NUM - 1. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>TextData</em>&nbsp;</td><td>points to the text data to be loaded.</td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>None.</dd></dl>
<dl compact><dt><b>Note:</b></dt><dd>None. </dd></dl>
</div>
</div><p>
<a class="anchor" name="5552532bfdfcd272722180e71d6c7b75"></a><!-- doxytag: member="xosd.c::XOsd_SetActiveBank" ref="5552532bfdfcd272722180e71d6c7b75" args="(XOsd *InstancePtr, u8 GcIndex, u8 ColorBankIndex, u8 CharBankIndex, u8 TextBankIndex, u8 InstructionBankIndex)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void XOsd_SetActiveBank </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_osd.html">XOsd</a> *&nbsp;</td>
<td class="paramname"> <em>InstancePtr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u8&nbsp;</td>
<td class="paramname"> <em>GcIndex</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u8&nbsp;</td>
<td class="paramname"> <em>ColorBankIndex</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u8&nbsp;</td>
<td class="paramname"> <em>CharBankIndex</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u8&nbsp;</td>
<td class="paramname"> <em>TextBankIndex</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u8&nbsp;</td>
<td class="paramname"> <em>InstructionBankIndex</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
This function chooses active banks for a GC in the OSD core.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>InstancePtr</em>&nbsp;</td><td>is a pointer to the <a class="el" href="struct_x_osd.html">XOsd</a> instance to be worked on. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>GcIndex</em>&nbsp;</td><td>indicates which Graphics Controller to work on. Valid value range is from 0 to (The Number of Layers) - 1. The layer's type must be set to XOSD_LAYER_TYPE_GPU (defined in <a class="el" href="xosd__hw_8h.html">xosd_hw.h</a>) for this function to work properly. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>ColorBankIndex</em>&nbsp;</td><td>indicates the color LUT bank to be choose as active. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>CharBankIndex</em>&nbsp;</td><td>indicates the character set bank to be chosen as active. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>TextBankIndex</em>&nbsp;</td><td>indicates the text data bank to be chosen as active. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>InstructionBankIndex</em>&nbsp;</td><td>indicates the instruction bank to be chosen as active.</td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>None.</dd></dl>
<dl compact><dt><b>Note:</b></dt><dd>None. </dd></dl>
</div>
</div><p>
<a class="anchor" name="037810c3a4ef79dba6cc202afc679373"></a><!-- doxytag: member="xosd.c::XOsd_SetActiveSize" ref="037810c3a4ef79dba6cc202afc679373" args="(XOsd *InstancePtr, u32 Width, u32 Height)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void XOsd_SetActiveSize </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_osd.html">XOsd</a> *&nbsp;</td>
<td class="paramname"> <em>InstancePtr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u32&nbsp;</td>
<td class="paramname"> <em>Width</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u32&nbsp;</td>
<td class="paramname"> <em>Height</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
This function sets the screen size of the OSD Output.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>InstancePtr</em>&nbsp;</td><td>is a pointer to the <a class="el" href="struct_x_osd.html">XOsd</a> instance to be worked on. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>Width</em>&nbsp;</td><td>defines the width of the OSD output. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>Height</em>&nbsp;</td><td>defines the height of the OSD output.</td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>None.</dd></dl>
<dl compact><dt><b>Note:</b></dt><dd>None. </dd></dl>
</div>
</div><p>
<a class="anchor" name="b2040236e554455aa030814966dad413"></a><!-- doxytag: member="xosd.c::XOsd_SetBackgroundColor" ref="b2040236e554455aa030814966dad413" args="(XOsd *InstancePtr, u16 Red, u16 Blue, u16 Green)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void XOsd_SetBackgroundColor </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_osd.html">XOsd</a> *&nbsp;</td>
<td class="paramname"> <em>InstancePtr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u16&nbsp;</td>
<td class="paramname"> <em>Red</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u16&nbsp;</td>
<td class="paramname"> <em>Blue</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u16&nbsp;</td>
<td class="paramname"> <em>Green</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
This function sets the background color used by the OSD output.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>InstancePtr</em>&nbsp;</td><td>is a pointer to the <a class="el" href="struct_x_osd.html">XOsd</a> instance to be worked on. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>Red</em>&nbsp;</td><td>indicates the red value to be used in the background color. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>Blue</em>&nbsp;</td><td>indicates the blue value to be used in the background color. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>Green</em>&nbsp;</td><td>indicates the green value to be used in the background color.</td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>None.</dd></dl>
<dl compact><dt><b>Note:</b></dt><dd>None. </dd></dl>
</div>
</div><p>
<a class="anchor" name="08b6809a1bd0d27dd275e06fe1cbea61"></a><!-- doxytag: member="xosd.c::XOsd_SetLayerAlpha" ref="08b6809a1bd0d27dd275e06fe1cbea61" args="(XOsd *InstancePtr, u8 LayerIndex, u16 GlobalAlphaEnable, u16 GlobalAlphaValue)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void XOsd_SetLayerAlpha </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_osd.html">XOsd</a> *&nbsp;</td>
<td class="paramname"> <em>InstancePtr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u8&nbsp;</td>
<td class="paramname"> <em>LayerIndex</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u16&nbsp;</td>
<td class="paramname"> <em>GlobalAlphaEnable</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u16&nbsp;</td>
<td class="paramname"> <em>GlobalAlphaValue</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
This function sets the alpha value and mode of an OSD layer.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>InstancePtr</em>&nbsp;</td><td>is a pointer to the <a class="el" href="struct_x_osd.html">XOsd</a> instance to be worked on. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>LayerIndex</em>&nbsp;</td><td>indicates which layer to be worked on. Valid value range is from 0 to (the number of layers implemented in the core - 1). </td></tr>
<tr><td valign="top"></td><td valign="top"><em>GlobalAlphaEnable</em>&nbsp;</td><td>indicates whether to enable the global alpha. Use any non-0 value to enable the global alpha, and 0 to disable it. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>GlobalAlphaValue</em>&nbsp;</td><td>indicates the transparent level. 0 for 100% transparent, 255 (8bit) for 0% transparent (100% opaque). This argument will be ignored if parameter GlobalAlphaEnble has value 0.</td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>None.</dd></dl>
<dl compact><dt><b>Note:</b></dt><dd>None. </dd></dl>
</div>
</div><p>
<a class="anchor" name="33679ac417b6f2596c6b6b085d39a5b1"></a><!-- doxytag: member="xosd.c::XOsd_SetLayerDimension" ref="33679ac417b6f2596c6b6b085d39a5b1" args="(XOsd *InstancePtr, u8 LayerIndex, u16 XStart, u16 YStart, u16 XSize, u16 YSize)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void XOsd_SetLayerDimension </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_osd.html">XOsd</a> *&nbsp;</td>
<td class="paramname"> <em>InstancePtr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u8&nbsp;</td>
<td class="paramname"> <em>LayerIndex</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u16&nbsp;</td>
<td class="paramname"> <em>XStart</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u16&nbsp;</td>
<td class="paramname"> <em>YStart</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u16&nbsp;</td>
<td class="paramname"> <em>XSize</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u16&nbsp;</td>
<td class="paramname"> <em>YSize</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
This function sets the start position and size of an OSD layer.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>InstancePtr</em>&nbsp;</td><td>is a pointer to the <a class="el" href="struct_x_osd.html">XOsd</a> instance to be worked on. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>LayerIndex</em>&nbsp;</td><td>indicates which layer to be worked on. Valid value range is from 0 to (the number of layers implemented in the core - 1). </td></tr>
<tr><td valign="top"></td><td valign="top"><em>XStart</em>&nbsp;</td><td>indicates the horizontal start pixel of origin of the layer. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>YStart</em>&nbsp;</td><td>indicates the vertical start line of origin of the layer. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>XSize</em>&nbsp;</td><td>indicates the horizontal size of the layer. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>YSize</em>&nbsp;</td><td>indicates the vertical size of the layer.</td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>None.</dd></dl>
<dl compact><dt><b>Note:</b></dt><dd>None. </dd></dl>
</div>
</div><p>
<a class="anchor" name="e10e5b163cf71fd385200b724d1dd560"></a><!-- doxytag: member="xosd.c::XOsd_SetLayerPriority" ref="e10e5b163cf71fd385200b724d1dd560" args="(XOsd *InstancePtr, u8 LayerIndex, u8 Priority)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void XOsd_SetLayerPriority </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_x_osd.html">XOsd</a> *&nbsp;</td>
<td class="paramname"> <em>InstancePtr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u8&nbsp;</td>
<td class="paramname"> <em>LayerIndex</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">u8&nbsp;</td>
<td class="paramname"> <em>Priority</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td width="100%"></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
This function sets the priority of an OSD layer.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>InstancePtr</em>&nbsp;</td><td>is a pointer to the <a class="el" href="struct_x_osd.html">XOsd</a> instance to be worked on. </td></tr>
<tr><td valign="top"></td><td valign="top"><em>LayerIndex</em>&nbsp;</td><td>indicates which layer to be worked on. Valid value range is from 0 to (the number of layers implemented in the core - 1). </td></tr>
<tr><td valign="top"></td><td valign="top"><em>Priority</em>&nbsp;</td><td>indicates the priority to be applied on the layer. Use one of XOSD_LAYER_PRIORITY_0 (the lowest priority) through XOSD_LAYER_PRIORITY_7 (the highest priority) defined in <a class="el" href="xosd__hw_8h.html">xosd_hw.h</a>.</td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>None.</dd></dl>
<dl compact><dt><b>Note:</b></dt><dd>None. </dd></dl>
</div>
</div><p>
Copyright @ 1995-2014 Xilinx, Inc. All rights reserved.