uint32_t operation; ///< The operation to perform @see BlitOperations
const uint16_t* pSrc; ///< Pointer to the source (pixels or indexes)
const uint16_t* pClut; ///< Pointer to the source CLUT entires
uint16_t* pDst; ///< Pointer to the destination
uint16_t nSteps; ///< The number of pixels in a line
uint16_t nLoops; ///< The number of lines
uint16_t srcLoopStride; ///< The number of bytes to stride the source after every loop
uint16_t dstLoopStride; ///< The number of bytes to stride the destination after every loop
colortype color; ///< Color to fill
uint16_t alpha; ///< The alpha to use
uint16_t srcFormat; ///< The source format @see Bitmap::BitmapFormat
uint16_t dstFormat; ///< The destination format @see Bitmap::BitmapFormat
};
对于任何特定功能,例如旋转和缩放,您可以创建自己的自定义小部件,然后在直接挂接到 GPU API 的 ::draw() 函数中实现这些功能。但是你需要想出一种机制来保护帧缓冲区,就像我们为 DMA2D 所做的那样。这在 Linux 上有点不同。更不用说您需要一个新的定制 HAL 才能在 Linux 上运行。我有一个在 Raspberry pi 上运行的,但它是非常非官方的。
uint32_t operation; ///< The operation to perform @see BlitOperations
const uint16_t* pSrc; ///< Pointer to the source (pixels or indexes)
const uint16_t* pClut; ///< Pointer to the source CLUT entires
uint16_t* pDst; ///< Pointer to the destination
uint16_t nSteps; ///< The number of pixels in a line
uint16_t nLoops; ///< The number of lines
uint16_t srcLoopStride; ///< The number of bytes to stride the source after every loop
uint16_t dstLoopStride; ///< The number of bytes to stride the destination after every loop
colortype color; ///< Color to fill
uint16_t alpha; ///< The alpha to use
uint16_t srcFormat; ///< The source format @see Bitmap::BitmapFormat
uint16_t dstFormat; ///< The destination format @see Bitmap::BitmapFormat
};
对于任何特定功能,例如旋转和缩放,您可以创建自己的自定义小部件,然后在直接挂接到 GPU API 的 ::draw() 函数中实现这些功能。但是你需要想出一种机制来保护帧缓冲区,就像我们为 DMA2D 所做的那样。这在 Linux 上有点不同。更不用说您需要一个新的定制 HAL 才能在 Linux 上运行。我有一个在 Raspberry pi 上运行的,但它是非常非官方的。