return returnCode;
}
+/**
+***************************************************************************************************
+* AddrGetMacroModeIndex
+*
+* @brief
+* Get macro mode index based on input parameters
+*
+* @return
+* ADDR_OK if successful, otherwise an error code of ADDR_E_RETURNCODE
+***************************************************************************************************
+*/
+ADDR_E_RETURNCODE ADDR_API AddrGetMacroModeIndex(
+ ADDR_HANDLE hLib, ///< address lib handle
+ const ADDR_GET_MACROMODEINDEX_INPUT* pIn, ///< [in] input
+ ADDR_GET_MACROMODEINDEX_OUTPUT* pOut) ///< [out] macro mode index
+{
+ AddrLib1* pLib = AddrLib1::GetAddrLib1(hLib);
+
+ ADDR_E_RETURNCODE returnCode;
+
+ if (pLib != NULL)
+ {
+ returnCode = pLib->GetMacroModeIndex(pIn, pOut);
+ }
+ else
+ {
+ returnCode = ADDR_ERROR;
+ }
+
+ return returnCode;
+}
+
/**
***************************************************************************************************
* AddrConvertTileIndex1
const ADDR_CONVERT_TILEINDEX_INPUT* pIn,
ADDR_CONVERT_TILEINDEX_OUTPUT* pOut);
+/**
+***************************************************************************************************
+* ADDR_GET_MACROMODEINDEX_INPUT
+*
+* @brief
+* Input structure for AddrGetMacroModeIndex
+***************************************************************************************************
+*/
+typedef struct _ADDR_GET_MACROMODEINDEX_INPUT
+{
+ UINT_32 size; ///< Size of this structure in bytes
+ ADDR_SURFACE_FLAGS flags; ///< Surface flag
+ INT_32 tileIndex; ///< Tile index
+ UINT_32 bpp; ///< Bits per pixel
+ UINT_32 numFrags; ///< Number of color fragments
+} ADDR_GET_MACROMODEINDEX_INPUT;
+/**
+***************************************************************************************************
+* ADDR_GET_MACROMODEINDEX_OUTPUT
+*
+* @brief
+* Output structure for AddrGetMacroModeIndex
+***************************************************************************************************
+*/
+typedef struct _ADDR_GET_MACROMODEINDEX_OUTPUT
+{
+ UINT_32 size; ///< Size of this structure in bytes
+ INT_32 macroModeIndex; ///< Index in macro tile mode table if there is one (CI)
+} ADDR_GET_MACROMODEINDEX_OUTPUT;
+
+/**
+***************************************************************************************************
+* AddrGetMacroModeIndex
+*
+* @brief
+* Get macro mode index based on input parameters
+***************************************************************************************************
+*/
+ADDR_E_RETURNCODE ADDR_API AddrGetMacroModeIndex(
+ ADDR_HANDLE hLib,
+ const ADDR_GET_MACROMODEINDEX_INPUT* pIn,
+ ADDR_GET_MACROMODEINDEX_OUTPUT* pOut);
/**
***************************************************************************************************
return returnCode;
}
+/**
+***************************************************************************************************
+* AddrLib1::GetMacroModeIndex
+*
+* @brief
+* Get macro mode index based on input info
+*
+* @return
+* ADDR_E_RETURNCODE
+***************************************************************************************************
+*/
+ADDR_E_RETURNCODE AddrLib1::GetMacroModeIndex(
+ const ADDR_GET_MACROMODEINDEX_INPUT* pIn, ///< [in] input structure
+ ADDR_GET_MACROMODEINDEX_OUTPUT* pOut ///< [out] output structure
+ ) const
+{
+ ADDR_E_RETURNCODE returnCode = ADDR_OK;
+
+ if (GetFillSizeFieldsFlags())
+ {
+ if ((pIn->size != sizeof(ADDR_GET_MACROMODEINDEX_INPUT)) ||
+ (pOut->size != sizeof(ADDR_GET_MACROMODEINDEX_OUTPUT)))
+ {
+ returnCode = ADDR_PARAMSIZEMISMATCH;
+ }
+ }
+
+ if (returnCode == ADDR_OK)
+ {
+ ADDR_TILEINFO tileInfo = {0};
+ pOut->macroModeIndex = HwlComputeMacroModeIndex(pIn->tileIndex, pIn->flags, pIn->bpp,
+ pIn->numFrags, &tileInfo);
+ }
+
+ return returnCode;
+}
+
/**
***************************************************************************************************
* AddrLib1::ConvertTileIndex1
const ADDR_CONVERT_TILEINDEX_INPUT* pIn,
ADDR_CONVERT_TILEINDEX_OUTPUT* pOut) const;
+ ADDR_E_RETURNCODE GetMacroModeIndex(
+ const ADDR_GET_MACROMODEINDEX_INPUT* pIn,
+ ADDR_GET_MACROMODEINDEX_OUTPUT* pOut) const;
+
ADDR_E_RETURNCODE ConvertTileIndex1(
const ADDR_CONVERT_TILEINDEX1_INPUT* pIn,
ADDR_CONVERT_TILEINDEX_OUTPUT* pOut) const;