47 static void _FillRectOpt24(
GUI_DEVICE * pDevice,
int x0,
int y0,
int x1,
int y1) {
49 U32 Off, Off0, OffLine;
50 int RemPixels, NumLines, RemLines, RemItems, Odd;
51 U32 Data, Data0, Data1, Data2;
55 Off0 = XY2OFF32(pContext->vxSizePhys, x0, y0);
56 RemPixels = x1 - x0 + 1;
58 NumLines = y1 - y0 + 1;
59 OffLine = (pContext->vxSizePhys + pContext->vxSizePhys +pContext->vxSizePhys) >> 2;
67 for (RemLines = NumLines; RemLines; RemLines--) {
69 Off = Off0 + OffLine * (RemLines - 1);
108 RemPixels -= (RemPixels - RemItems);
113 if (RemPixels >= 4) {
114 for (RemLines = NumLines; RemLines; RemLines--) {
115 RemItems = RemPixels;
116 Off = Off0 + OffLine * (RemLines - 1);
118 Data =
READ_MEM32(pContext->VRAMAddr, Off + 0);
121 Data =
READ_MEM32(pContext->VRAMAddr, Off + 1);
124 Data =
READ_MEM32(pContext->VRAMAddr, Off + 2);
128 }
while ((RemItems -= 4) >= 4);
131 RemPixels -= (RemPixels >> 2) << 2;
137 for (RemLines = NumLines; RemLines; RemLines--) {
138 RemItems = RemPixels;
139 Off = Off0 + OffLine * (RemLines - 1);
171 for (RemLines = NumLines; RemLines; RemLines--) {
172 RemItems = RemPixels;
173 Off = Off0 + OffLine * (RemLines - 1);
178 Data |= ColorIndex << 24;
183 Data |= ColorIndex >> 8;
194 Data |= ColorIndex << 16;
199 Data |= ColorIndex >> 16;
210 Data |= ColorIndex << 8;
217 RemPixels -= (RemPixels - RemItems);
222 if (RemPixels >= 4) {
223 for (RemLines = NumLines; RemLines; RemLines--) {
224 RemItems = RemPixels;
225 Off = Off0 + OffLine * (RemLines - 1);
226 Data0 = (ColorIndex ) | (ColorIndex << 24);
227 Data1 = (ColorIndex >> 8) | (ColorIndex << 16);
228 Data2 = (ColorIndex >> 16) | (ColorIndex << 8);
234 }
while ((RemItems -= 4) >= 4);
237 RemPixels -= (RemPixels >> 2) << 2;
243 for (RemLines = NumLines; RemLines; RemLines--) {
244 RemItems = RemPixels;
245 Off = Off0 + OffLine * (RemLines - 1);
255 Data |= ColorIndex << 24;
260 Data |= ColorIndex >> 8;
267 Data |= ColorIndex << 16;
272 Data |= ColorIndex >> 16;
GUI_SADDR GUI_CONTEXT * GUI_pContext
#define LCD__GetColorIndex()
#define READ_MEM32(VRAMAddr, Off)
#define WRITE_MEM32(VRAMAddr, Off, Data)