313 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			Plaintext
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			313 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			Plaintext
		
	
	
		
			Executable File
		
	
	
	
	
| GxGfx Note
 | ||
| 
 | ||
| (一)Brush weight and type
 | ||
| 
 | ||
| 設定功能:
 | ||
| (A) 控制畫線段的粗細 
 | ||
| BRUSHWEIGHT(Radius) …..可指定線段粗細=Radius*2+1 pixels, (NOTE: 0<=Radius<=15)
 | ||
| default = BRUSHWEIGHT(0) (預設粗細只有1pixel)
 | ||
| (B) 控制畫線段的筆頭
 | ||
| BRUSHTYPE_CIRCLE or BRUSHTYPE_SQUARE  …..可指定圓形筆頭或方形筆頭
 | ||
| default = BRUSHTYPE_CIRCLE(預設筆頭為圓形)
 | ||
| 
 | ||
| 支援上述新設定的drawing API有:
 | ||
| RESULT GxGfx_Point          (DC* pDestDC, LVALUE x, LVALUE y);
 | ||
| RESULT GxGfx_LineTo         (DC* pDestDC, LVALUE x, LVALUE y);
 | ||
| RESULT GxGfx_Line           (DC* pDestDC, LVALUE x1, LVALUE y1, LVALUE x2, LVALUE y2);
 | ||
| RESULT GxGfx_FrameRect      (DC* pDestDC, LVALUE x1, LVALUE y1, LVALUE x2, LVALUE y2);
 | ||
| RESULT GxGfx_Rectangle      (DC* pDestDC, LVALUE x1, LVALUE y1, LVALUE x2, LVALUE y2);
 | ||
| RESULT GxGfx_Ellipse        (DC* pDestDC, LVALUE x1, LVALUE y1, LVALUE x2, LVALUE y2);
 | ||
| RESULT GxGfx_RoundRect      (DC* pDestDC, LVALUE x1, LVALUE y1, LVALUE x2, LVALUE y2, LVALUE rw, LVALUE rh);
 | ||
| 
 | ||
| 
 | ||
| 下面是<畫粗框的圓角矩形>範例
 | ||
| 
 | ||
| int Radius = 2
 | ||
| //框線樣式=連續線段|框線粗細(Radius)|圓形筆頭, 填充樣式=填滿內部|畫出框線
 | ||
| GxGfx_SetShapeStroke(LINESTYLE_LINE|BRUSHWEIGHT(Radius)|BRUSHTYPE_CIRCLE, (FILLSTYLE_FILL|FILLSTYLE_BORDER));
 | ||
| //框線顏色=白色, 內部顏色=黑色
 | ||
| GxGfx_SetShapeColor(COLOR_INDEX8_WHITE, COLOR_INDEX8_BLACK, 0);
 | ||
| //畫出圓角矩形, 圓角直徑為20
 | ||
| GxGfx_RoundRect(pDC[0], x1, y1, x2, y2, 20, 20);
 | ||
| 
 | ||
| //回復成預設樣式
 | ||
| GxGfx_SetShapeStroke(SHAPELINESTYLE_DEFAULT, SHAPEFILLSTYLE_DEFAULT);
 | ||
| 
 | ||
| 
 | ||
| (二) Text Color
 | ||
| GxGfx_SetTextColor(c1,c2,c3);
 | ||
| 第一個參數代表 : 字的顏色
 | ||
| 第二個參數代表 : 框線的顏色
 | ||
| 第三個參數代表 : 底線的顏色 (目前無作用)
 | ||
| 
 | ||
| 如果某區域不想畫出來  (不想影響現有畫面上已經畫的顏色)
 | ||
| 請使用 COLOR_TRANSPARENT 來代表
 | ||
| 
 | ||
| 範例:
 | ||
| //只畫出字的部份, 但是不畫出框線的部份
 | ||
| GxGfx_SetTextColor(COLOR_WHITE_INDEX8, COLOR_TRANSPARENT, COLOR_TRANSPARENT);
 | ||
| //畫出字的部份, 也畫出框線的部份
 | ||
| GxGfx_SetTextColor(COLOR_WHITE_INDEX8, COLOR_RED_INDEX8, COLOR_TRANSPARENT);
 | ||
| //不畫出字的部份, 但畫出框線的部份
 | ||
| GxGfx_SetTextColor(COLOR_TRANSPARENT, COLOR_RED_INDEX8, COLOR_TRANSPARENT);
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| (三) Font Effect 
 | ||
| 可以動態地在使用的字型加上陰影特效, 或加上外框特效
 | ||
| 
 | ||
| //total 6 effects now
 | ||
| FONTEFFECT_SHADOW	//右下角陰影
 | ||
| FONTEFFECT_SHADOW2	//右下角陰影(粗)
 | ||
| FONTEFFECT_HIGHLIGHT	//左上角陰影
 | ||
| FONTEFFECT_HIGHLIGHT2 	//左上角陰影(粗)
 | ||
| FONTEFFECT_OUTLINE	//外框
 | ||
| FONTEFFECT_OUTLINE2	//外框(粗)
 | ||
| 
 | ||
| 使用範例如下:
 | ||
| 
 | ||
| //no effect
 | ||
| GxGfx_SetTextStroke(pFont, FONTEFFECT_NONE,TEXTSCALE_DEFAULT);
 | ||
| GxGfx_SetTextColor(COLOR_WHITE_INDEX8, COLOR_TRANSPARENT, COLOR_TRANSPARENT);
 | ||
| GxGfx_Text(pDC, 0, 0, “This is a font effect test.”);
 | ||
| 
 | ||
| //using shadow effect (in red color)
 | ||
| GxGfx_SetTextStroke(pFont, FONTEFFECT_SHADOW,TEXTSCALE_DEFAULT);
 | ||
| GxGfx_SetTextColor(COLOR_WHITE_INDEX8, COLOR_RED_INDEX8, COLOR_TRANSPARENT);
 | ||
| GxGfx_Text(pDC, 0, 0, “This is a font effect test.”);
 | ||
| 
 | ||
| //using outline effect (in red color)
 | ||
| GxGfx_SetTextStroke(pFont, FONTEFFECT_OUTLINE,TEXTSCALE_DEFAULT);
 | ||
| GxGfx_SetTextColor(COLOR_WHITE_INDEX8, COLOR_RED_INDEX8, COLOR_TRANSPARENT);
 | ||
| GxGfx_Text(pDC, 0, 0, “This is a font effect test.”);
 | ||
| 
 | ||
| 注意: 如果想要使用font effect, 請事先指定一塊記憶體給GxGfx作為temp buffer (至少4K)
 | ||
| GxGfx_AssignTempPool (pBuf, 0x4000);
 | ||
| 如果缺少這的buffer, 字型將會畫不出來
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| (四) GxGfx_ImageInRect
 | ||
| 可以畫 Image在指定的Rect內部, 並指定上下對齊, 左右對齊的格式 (很像GxGfx_TextInRect的用法)
 | ||
| 
 | ||
| 使用範例如下:
 | ||
| 
 | ||
| //draw image and align to rect - left and top
 | ||
| GxGfx_SetImageLayout(IMAGELAYOUT_DEFAULT, ALIGN_LEFT| ALIGN_TOP);
 | ||
| GxGfx_ImageInRect(pDC, 0, 0, 320-1, 240-1, GxGfx_GetImageID(ICONID_PLAY));
 | ||
| 
 | ||
| //draw image and align to rect - right and middle
 | ||
| GxGfx_SetImageLayout(IMAGELAYOUT_DEFAULT, ALIGN_RIGHT| ALIGN_MIDDLE);
 | ||
| GxGfx_ImageInRect(pDC, 0, 0, 320-1, 240-1, GxGfx_GetImageID(ICONID_STOP));
 | ||
| 
 | ||
| 注意:原先畫出放大縮小Image的功能, 已經改名為 GxGfx_ImageScale();
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| (五) GxGfx_Image, GxGfx_ImageScale 對 ROP的支援
 | ||
| 
 | ||
| ROP		Formula
 | ||
| ==========================
 | ||
| ROP_COPY	A’ = B					
 | ||
| ROP_AND		A’ = A & B
 | ||
| ROP_OR		A’ = A | B
 | ||
| ROP_XOR		A’ = A ^ B
 | ||
| ROP_NOT		A’ = ~B
 | ||
| ROP_DESTNOT	A’ = ~A
 | ||
| ROP_KEY		A’ = (B==ColorKey)?A:B
 | ||
| ROP_DESTKEY	A’ = (A==ColorKey)?B:A
 | ||
| ROP_DESTFILL	A’ = FillColor
 | ||
| ROP_ADD		A’ = A+(B>>src_div)
 | ||
| ROP_SUB		A’ = A-(B>>src_div)
 | ||
| ROP_ABSSUB	A’ = abs(A-(B>>src_div))
 | ||
| ROP_MUL		A’ = (A*B) >> out_div
 | ||
| ROP_BLEND 	A’ = (1-alpha)*A + (alpha)*B ... alpha = (src_alpha+1)/8
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| Normal MODE (Pxlfmt of src DC and dest DC are the same)
 | ||
| ==============================================================================
 | ||
| 			Image 						ImageScale			
 | ||
| Pxlfmt of DC		INDEX1/2/4	INDEX8		YUV444/422/420	INDEX1/2/4	INDEX8		YUV444/422/420	YUV444/422/420+FILTER_LINEAR
 | ||
| ROP_COPY		Yes		Yes(GE)		Yes(GE)		Yes		Yes		Yes		Yes(IME)
 | ||
| ROP_KEY			Yes		Yes		Yes		Yes		Yes		-		-
 | ||
| ROP_DESTKEY		Yes		Yes(GE)		Yes(GE)		Yes		Yes		-		-	
 | ||
| ROP_NOT			Yes		Yes(GE)		Yes(GE)		Yes		Yes		-		-
 | ||
| ROP_AND			Yes		Yes(GE)		Yes(GE)		Yes		Yes		-		-
 | ||
| ROP_OR			Yes		Yes(GE)		Yes(GE)		Yes		Yes		-		-
 | ||
| ROP_XOR			Yes		Yes(GE)		Yes(GE)		Yes		Yes		-		-
 | ||
| ROP_DESTFILL		Yes		Yes(GE)		Yes(GE)		Yes		Yes		-		-
 | ||
| ROP_DESTNOT		Yes		Yes(GE)		Yes(GE)		Yes		Yes		-		-
 | ||
| ROP_ADD 		-		-		Yes(GE)		-		-		-		-
 | ||
| ROP_SUB 		-		-		Yes(GE)		-		-		-		-
 | ||
| ROP_ABSSUB		-		-		Yes(GE)		-		-		-		-	
 | ||
| ROP_MUL			-		-		Yes(GE)		-		-		-		-
 | ||
| ROP_BLEND		-		-		Yes(GE)		-		-		-		-
 | ||
| 
 | ||
| NOTE: GE,IME : h/w name
 | ||
| 
 | ||
| 
 | ||
| NOTE: MAPPING is only work if rop=(ROP_COPY,ROP_KEY,ROP_DESTKEY)
 | ||
| 
 | ||
| Convert MODE (Pxlfmt of src DC and dest DC are NOT the same)
 | ||
| ==============================================================================
 | ||
| Image INDEX to INDEX (_DC_BitBlt_INDEX_sw)
 | ||
| //rcDC ->destDC		condition
 | ||
| INDEX1->INDEX1		rop=(ROP_COPY,ROP_KEY,ROP_DESTKEY,ROP_NOT,ROP_AND,ROP_OR,ROP_XOR,ROP_DESTFILL,ROP_DESTNOT), pTable=0
 | ||
| INDEX1->INDEX2		rop=(ROP_COPY,ROP_KEY,ROP_DESTKEY,ROP_NOT,ROP_AND,ROP_OR,ROP_XOR,ROP_DESTFILL,ROP_DESTNOT), pTable=0
 | ||
| INDEX1->INDEX4		rop=(ROP_COPY,ROP_KEY,ROP_DESTKEY,ROP_NOT,ROP_AND,ROP_OR,ROP_XOR,ROP_DESTFILL,ROP_DESTNOT), pTable=0
 | ||
| INDEX1->INDEX8		rop=(ROP_COPY,ROP_KEY,ROP_DESTKEY,ROP_NOT,ROP_AND,ROP_OR,ROP_XOR,ROP_DESTFILL,ROP_DESTNOT), pTable=0
 | ||
| INDEX2->INDEX2		rop=(ROP_COPY,ROP_KEY,ROP_DESTKEY,ROP_NOT,ROP_AND,ROP_OR,ROP_XOR,ROP_DESTFILL,ROP_DESTNOT), pTable=0
 | ||
| INDEX2->INDEX4		rop=(ROP_COPY,ROP_KEY,ROP_DESTKEY,ROP_NOT,ROP_AND,ROP_OR,ROP_XOR,ROP_DESTFILL,ROP_DESTNOT), pTable=0
 | ||
| INDEX2->INDEX8		rop=(ROP_COPY,ROP_KEY,ROP_DESTKEY,ROP_NOT,ROP_AND,ROP_OR,ROP_XOR,ROP_DESTFILL,ROP_DESTNOT), pTable=0
 | ||
| INDEX4->INDEX4		rop=(ROP_COPY,ROP_KEY,ROP_DESTKEY,ROP_NOT,ROP_AND,ROP_OR,ROP_XOR,ROP_DESTFILL,ROP_DESTNOT), pTable=0
 | ||
| INDEX4->INDEX8		rop=(ROP_COPY,ROP_KEY,ROP_DESTKEY,ROP_NOT,ROP_AND,ROP_OR,ROP_XOR,ROP_DESTFILL,ROP_DESTNOT), pTable=0
 | ||
| INDEX8->INDEX8		rop=(ROP_COPY,ROP_KEY,ROP_DESTKEY,ROP_NOT,ROP_AND,ROP_OR,ROP_XOR,ROP_DESTFILL,ROP_DESTNOT), pTable=0
 | ||
| 
 | ||
| INDEX1->INDEX2		rop=(ROP_COPY,ROP_KEY,ROP_DESTKEY), pTable=MAPPING
 | ||
| INDEX1->INDEX4		rop=(ROP_COPY,ROP_KEY,ROP_DESTKEY), pTable=MAPPING
 | ||
| INDEX1->INDEX8		rop=(ROP_COPY,ROP_KEY,ROP_DESTKEY), pTable=MAPPING
 | ||
| INDEX2->INDEX4		rop=(ROP_COPY,ROP_KEY,ROP_DESTKEY), pTable=MAPPING
 | ||
| INDEX2->INDEX8		rop=(ROP_COPY,ROP_KEY,ROP_DESTKEY), pTable=MAPPING
 | ||
| INDEX4->INDEX8		rop=(ROP_COPY,ROP_KEY,ROP_DESTKEY), pTable=MAPPING
 | ||
| 
 | ||
| Image INDEX to YUV (_DC_BitBlt_INDEX2YUV_sw) 
 | ||
| //rcDC ->destDC		condition
 | ||
| INDEX1->YUV444		rop=(ROP_COPY,ROP_KEY,ROP_DESTKEY), pTable=PALETTE
 | ||
| INDEX1->YUV422		rop=(ROP_COPY,ROP_KEY,ROP_DESTKEY), pTable=PALETTE
 | ||
| INDEX1->YUV420		rop=(ROP_COPY,ROP_KEY,ROP_DESTKEY), pTable=PALETTE
 | ||
| INDEX1->RGB888		rop=(ROP_COPY,ROP_KEY,ROP_DESTKEY), pTable=PALETTE
 | ||
| INDEX2->YUV444		rop=(ROP_COPY,ROP_KEY,ROP_DESTKEY), pTable=PALETTE
 | ||
| INDEX2->YUV422		rop=(ROP_COPY,ROP_KEY,ROP_DESTKEY), pTable=PALETTE
 | ||
| INDEX2->YUV420		rop=(ROP_COPY,ROP_KEY,ROP_DESTKEY), pTable=PALETTE
 | ||
| INDEX2->RGB888		rop=(ROP_COPY,ROP_KEY,ROP_DESTKEY), pTable=PALETTE
 | ||
| INDEX4->YUV444		rop=(ROP_COPY,ROP_KEY,ROP_DESTKEY), pTable=PALETTE
 | ||
| INDEX4->YUV422		rop=(ROP_COPY,ROP_KEY,ROP_DESTKEY), pTable=PALETTE
 | ||
| INDEX4->YUV420		rop=(ROP_COPY,ROP_KEY,ROP_DESTKEY), pTable=PALETTE
 | ||
| INDEX4->RGB888		rop=(ROP_COPY,ROP_KEY,ROP_DESTKEY), pTable=PALETTE
 | ||
| INDEX8->YUV444		rop=(ROP_COPY,ROP_KEY,ROP_DESTKEY), pTable=PALETTE
 | ||
| INDEX8->YUV422		rop=(ROP_COPY,ROP_KEY,ROP_DESTKEY), pTable=PALETTE
 | ||
| INDEX8->YUV420		rop=(ROP_COPY,ROP_KEY,ROP_DESTKEY), pTable=PALETTE
 | ||
| INDEX8->RGB888		rop=(ROP_COPY,ROP_KEY,ROP_DESTKEY), pTable=PALETTE
 | ||
| 
 | ||
| Image RGB_PK to RGB_PK (_DC_BitBlt_INDEX)
 | ||
| //rcDC ->destDC		condition
 | ||
| RGB888_PK->RGB888_PK	rop=ROP_COPY
 | ||
| RGB565_PK->RGB565_PK	rop=ROP_COPY
 | ||
| RGB555_PK->RGB555_PK	rop=ROP_COPY
 | ||
| RGBD8888_PK->RGBD8888_PK	rop=ROP_COPY
 | ||
| 
 | ||
| Image RGB_PK to RGB (_DC_ConvetBlt_RGBToRGB_sw)
 | ||
| Image RGB to RGB_PK (_DC_ConvetBlt_RGBToRGB_sw)
 | ||
| //rcDC ->destDC		condition
 | ||
| RGB888->RGB888_PK	rop=ROP_COPY, same size
 | ||
| RGB888->RGBD8888_PK	rop=ROP_COPY, same size
 | ||
| RGB888_PK->RGB888	rop=ROP_COPY, same size
 | ||
| RGBD8888_PK->RGB888	rop=ROP_COPY, same size
 | ||
| 
 | ||
| ImageScale INDEX to INDEX (_DC_StretchBlt_INDEX)
 | ||
| //rcDC ->destDC		condition
 | ||
| INDEX1->INDEX1		rop=(ROP_COPY,ROP_KEY,ROP_DESTKEY,ROP_NOT,ROP_AND,ROP_OR,ROP_XOR,ROP_DESTFILL,ROP_DESTNOT), pTable=0
 | ||
| INDEX1->INDEX2		rop=(ROP_COPY,ROP_KEY,ROP_DESTKEY,ROP_NOT,ROP_AND,ROP_OR,ROP_XOR,ROP_DESTFILL,ROP_DESTNOT), pTable=0
 | ||
| INDEX1->INDEX4		rop=(ROP_COPY,ROP_KEY,ROP_DESTKEY,ROP_NOT,ROP_AND,ROP_OR,ROP_XOR,ROP_DESTFILL,ROP_DESTNOT), pTable=0
 | ||
| INDEX1->INDEX8		rop=(ROP_COPY,ROP_KEY,ROP_DESTKEY,ROP_NOT,ROP_AND,ROP_OR,ROP_XOR,ROP_DESTFILL,ROP_DESTNOT), pTable=0
 | ||
| INDEX2->INDEX2		rop=(ROP_COPY,ROP_KEY,ROP_DESTKEY,ROP_NOT,ROP_AND,ROP_OR,ROP_XOR,ROP_DESTFILL,ROP_DESTNOT), pTable=0
 | ||
| INDEX2->INDEX4		rop=(ROP_COPY,ROP_KEY,ROP_DESTKEY,ROP_NOT,ROP_AND,ROP_OR,ROP_XOR,ROP_DESTFILL,ROP_DESTNOT), pTable=0
 | ||
| INDEX2->INDEX8		rop=(ROP_COPY,ROP_KEY,ROP_DESTKEY,ROP_NOT,ROP_AND,ROP_OR,ROP_XOR,ROP_DESTFILL,ROP_DESTNOT), pTable=0
 | ||
| INDEX4->INDEX4		rop=(ROP_COPY,ROP_KEY,ROP_DESTKEY,ROP_NOT,ROP_AND,ROP_OR,ROP_XOR,ROP_DESTFILL,ROP_DESTNOT), pTable=0
 | ||
| INDEX4->INDEX8		rop=(ROP_COPY,ROP_KEY,ROP_DESTKEY,ROP_NOT,ROP_AND,ROP_OR,ROP_XOR,ROP_DESTFILL,ROP_DESTNOT), pTable=0
 | ||
| INDEX8->INDEX8		rop=(ROP_COPY,ROP_KEY,ROP_DESTKEY,ROP_NOT,ROP_AND,ROP_OR,ROP_XOR,ROP_DESTFILL,ROP_DESTNOT), pTable=0
 | ||
| 
 | ||
| INDEX1->INDEX2		rop=(ROP_COPY,ROP_KEY,ROP_DESTKEY), pTable=MAPPING
 | ||
| INDEX1->INDEX4		rop=(ROP_COPY,ROP_KEY,ROP_DESTKEY), pTable=MAPPING
 | ||
| INDEX1->INDEX8		rop=(ROP_COPY,ROP_KEY,ROP_DESTKEY), pTable=MAPPING
 | ||
| INDEX2->INDEX4		rop=(ROP_COPY,ROP_KEY,ROP_DESTKEY), pTable=MAPPING
 | ||
| INDEX2->INDEX8		rop=(ROP_COPY,ROP_KEY,ROP_DESTKEY), pTable=MAPPING
 | ||
| INDEX4->INDEX8		rop=(ROP_COPY,ROP_KEY,ROP_DESTKEY), pTable=MAPPING
 | ||
| 
 | ||
| ImageScale INDEX to YUV 
 | ||
| (Not support yet)
 | ||
| 
 | ||
| ImageScale YUV to YUV (_DC_StretchBlt_YUV)
 | ||
| //rcDC ->destDC		condition
 | ||
| YUV444->YUV422		rop=ROP_COPY, FILTER_LINEAR
 | ||
| YUV444->YUV420		rop=ROP_COPY, FILTER_LINEAR
 | ||
| YUV444->RGB888		rop=ROP_COPY, FILTER_LINEAR
 | ||
| YUV422->YUV444		rop=ROP_COPY, FILTER_LINEAR	
 | ||
| YUV422->YUV420		rop=ROP_COPY, FILTER_LINEAR
 | ||
| YUV422->RGB888		rop=ROP_COPY, FILTER_LINEAR
 | ||
| YUV420->YUV444		rop=ROP_COPY, FILTER_LINEAR
 | ||
| YUV420->YUV422		rop=ROP_COPY, FILTER_LINEAR
 | ||
| YUV420->RGB888		rop=ROP_COPY, FILTER_LINEAR
 | ||
| RGB888->YUV444		rop=ROP_COPY, FILTER_LINEAR
 | ||
| RGB888->YUV422		rop=ROP_COPY, FILTER_LINEAR
 | ||
| RGB888->YUV420		rop=ROP_COPY, FILTER_LINEAR
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| INTERNAL-PATH
 | ||
| ==============================================================================
 | ||
| GxGfx_Convert
 | ||
| 
 | ||
| GxGfx_Image
 | ||
| //support clipping window
 | ||
| _DC_BitBlt_INDEX		--> by GE
 | ||
| _DC_BitBlt_INDEX_sw		(if not INDEX8, or special ROP)
 | ||
| _DC_FillRect_INDEX_sw		(only DESTFILL and DESTNOT path)
 | ||
| _DC_BitBlt_INDEX2YUV_sw
 | ||
| _DC_BitBlt_YUV			--> by GE
 | ||
| _DC_BitBlt_YUV_Jpeg (JPEG2YUV)	--> by JPEG->GE
 | ||
| 
 | ||
| GxGfx_ImageScale
 | ||
| //not support clipping window
 | ||
| _DC_StretchBlt_INDEX (sw)  	--> by IME ????? (FILTER_NONE)
 | ||
| _DC_StretchBlt_YUV		--> by IME (FILTER_LINER or FILTER_NONE)
 | ||
| _DC_StretchBlt_YUV_sw		(just for FILTER_NONE)
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| (六) 對h/w的一些想法???
 | ||
| 
 | ||
| 
 | ||
| HW-TODO
 | ||
| ==============================================================================
 | ||
| DMA bandwidth
 | ||
| GE : 
 | ||
| 	no word alignment limit in addr
 | ||
| 	+AOP srckey : dest=(A==cky)?B:A
 | ||
|      	add format for per-pixel alpha blending
 | ||
| 	RGB888_PK
 | ||
| 	RGB565_PK
 | ||
| 	ARGB8888_PK
 | ||
| 	ARGB1555_PK
 | ||
| 	ARGB4444_PK
 | ||
| 
 | ||
| IME : 
 | ||
| 	no word alignment limit in w,h,addr
 | ||
| 	filter = none, pixel, linear
 | ||
| 
 | ||
| IDE : 	
 | ||
| 	photoshop-like layer blending
 | ||
| 	add format.
 | ||
| 	RGB888_PK, 
 | ||
| 	RGB565_PK, 
 | ||
| 	ARGB8888_PK
 | ||
| 	ARGB1555_PK
 | ||
| 	ARGB4444_PK
 | ||
| 	
 | ||
| JPEG : 
 | ||
| 	support decode with pitch setting
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | ||
| 
 | 
