SDL_SetAlpha
章節:SDL API 參考 (3)
更新:2001年9月11日 星期二 23:01
索引
名稱
SDL_SetAlpha - 調整平面的alpha屬性。
摘要
#include "SDL.h"
int SDL_SetAlpha(SDL_Surface *surface, Uint32 flags, Uint8 alpha);
描述
-
備注:
自從1.1.4版以後,此函數和SDL alpha混合的意思已經有所變化。直至1.1.5版,若alpha的值為0,則表示不透明;若為255,則表示透明。但現在的情況就相反了:0(SDL_ALPHA_TRANSPARENT)表示透明,而255(SDL_ALPHA_OPAQUE)表示不透明。
SDL_SetAlpha用于設置基于平面的alpha值、允許或禁止alpha混合。
surface參數指定你想調整的平面的alpha屬性。flags用于指定是否使用alpha混合(SDL_SRCALPHA)以及平面是否為圖塊傳送而使用RLE加速(SDL_RLEACCEL)。flags可以是這兩個選項(譯注:指SDL_SRCALPHA和SDL_RLEACCEL)按位或的組合或者其中之一、0。若不設置SDL_SRCALPHA標記,則當傳送平面時所有alpha信息都被忽略。alpha參數是基于平面的alpha值;平面不一定要有alpha通道才能使用基于平面的alpha,而仍可通過SDL_RLEACCEL來加速圖塊傳送。
-
備注:
128這個基于平面的alpha值是一種特殊情況,它被優化成比其他基于平面的值快得多。
alpha通過以下方式來實現平面圖塊傳送:
- RGBA->RGB,並且設置SDL_SRCALPHA
-
用alpha通道對源與目標進行alpha混合。SDL_SRCCOLORKEY和基于平面的alpha都被忽略。
- RGBA->RGB,並且不設置SDL_SRCALPHA
-
RGB數據從源復制而得。源的alpha通道和基于平面的alpha值都被忽略。
- RGB->RGBA,並且設置SDL_SRCALPHA
-
用基于平面的alpha值對源和目標進行alpha混合。若設置SDL_SRCCOLORKEY,則僅僅復制不匹配色鍵值的像素。被復制的像素的alpha通道設置為不透明。
- RGB->RGBA,並且不設置SDL_SRCALPHA
-
RGB數據從源復制而得,並且被復制的像素的alpha通道設置為不透明。若設置SDL_SRCCOLORKEY,則僅僅復制不匹配色鍵值的像素。
- RGBA->RGBA,並且設置SDL_SRCALPHA
-
用源alpha通道對源和目標進行alpha混合。目標平面的alpha通道不受影響。忽略SDL_SRCCOLORKEY。
- RGBA->RGBA,並且不設置SDL_SRCALPHA
-
RGBA數據被復制到目標平面。若設置SDL_SRCCOLORKEY,則僅僅復制不匹配色鍵值的像素。
- RGB->RGB,並且設置SDL_SRCALPHA
-
用基于平面的alpha值對源和目標進行alpha混合。若設置SDL_SRCCOLORKEY,則僅僅復制不匹配色鍵值的像素。
- RGB->RGB,並且不設置SDL_SRCALPHA
-
RGB數據從源復制而得。若設置SDL_SRCCOLORKEY,則僅僅復制不匹配色鍵值的像素。
-
備注:
請注意RGBA->RGBA傳送圖塊(通過設置SDL_SRCALPHA)會保持目標平面的alpha值不變。這意味著,若通過此方式組合任意兩個RGBA平面,則不會得到你所期望的覆蓋效果,而結果是目標的alpha將通過掩碼來運作。
同時要注意,基于像素的和基于平面的alpha不可組合;如果有效的話,總是使用基于像素的alpha。
返回值
若成功,則此函數返回0;否則,返回-1。
另見
SDL_MapRGBA、SDL_GetRGBA、SDL_DisplayFormatAlpha、SDL_BlitSurface
譯者
石仔<guoshimin57@gmail.com>
中文版主頁
http://guoshimin.users.sf.net
中文版最後更新時間
2010年2月20日
索引
- 名稱
-
- 摘要
-
- 描述
-
- 返回值
-
- 另見
-
- 譯者
-
- 中文版主頁
-
- 中文版最後更新時間
-