SDL_SetVideoMode
章節:SDL API 參考 (3)
更新:2001年9月11日 星期二 23:01
索引
名稱
SDL_SetVideoMode - 以指定寬度、高度以及每像素的位寬來建立視頻模式。
摘要
#include "SDL.h"
SDL_Surface *SDL_SetVideoMode(int width, int height, int bpp, Uint32 flags);
描述
以指定寬度、高度以及每像素的位寬來建立視頻模式。
若bpp為0,則把它視作當前顯示下每像素的位寬。
參數flags跟結構體SDL_Surface中的flags相同。以下的值按位或的組合是有效的:
- SDL_SWSURFACE
-
在系統內存中創建視頻平面。
- SDL_HWSURFACE
-
在顯存中創建視頻平面。
- SDL_ASYNCBLIT
-
允許異步更新顯示平面。通常,這會使圖塊傳送速度在單處理器機器上有所降低,而在對稱多處理器的系統中有所提升。
- SDL_ANYFORMAT
-
通常,若所請求的每像素位寬(bbp)的視頻平面不是有效的,則SDL會仿真一個映射平面。傳遞SDL_ANYFORMAT以防止這種情況發生,並使SDL使用這個視頻平面,但不管其像素深度。
- SDL_HWPALETTE
-
給予SDL獨佔的調色板使用權。若無此標記,你或許不總是可以通過SDL_SetColors或SDL_SetPalette來獲取你所要求的顏色。
- SDL_DOUBLEBUF
-
允許硬件雙緩衝,但僅在與SDL_HWSURFACE一起使用時有效。調用SDL_Flip可以翻轉緩衝並更新屏幕。所有繪圖都將發生在此刻並不顯示的平面上。若雙緩衝不可用,則SDL_Flip僅會在整個屏幕上執行SDL_UpdateRect。
- SDL_FULLSCREEN
-
SDL將會嘗試使用全屏模式。若不能改變硬件的分辨率(不管是因為什麼原因),則會使用下一更高的分辨率,並將顯示窗口放置于黑色背景的中央。
- SDL_OPENGL
-
創建一個OpenGL渲染上下文。你應該已經事先通過SDL_GL_SetAttribute來設置好OpenGL視頻屬性。
- SDL_OPENGLBLIT
-
像上邊那樣創建一個OpenGL渲染上下文,但允許正常的圖塊傳送操作。屏幕(二維)平面可以含有alpha通道,並且SDL_UpdateRects必須用于更新屏幕平面。
- SDL_RESIZABLE
-
創建尺寸可調整的窗口。當用戶調整窗口尺寸時,會產生一個SDL_VIDEORESIZE事件,並且可用新尺寸來重新調用SDL_SetVideoMode。
- SDL_NOFRAME
-
如果可以的話,SDL_NOFRAME就使SDL創建一個不帶標題條或框架裝飾的窗口。全屏模式自動得到此標記設置。
-
備注:
無論是什麼SDL_SetVideoMode可滿足的flags,都會在所返回的平面成員flags中作相應的設置。
-
備注:
參數bpp是每像素的位數。因此,24pbb使用3字節/像素這樣的打包表示法。對于更常見的4字節/像素模式,使用32bpp。有點怪異的是,15和16(bbp)會要求2字節/像素的模式,但像素格式不同。
返回值
若成功,則返回幀緩衝平面;否則,返回NULL。所返回的平面應該由SDL_Quit()來釋放,而不應該由調用者來釋放。
另見
SDL_LockSurface、SDL_SetColors、SDL_Flip、SDL_Surface
譯者
石仔<guoshimin57@gmail.com>
中文版主頁
http://guoshimin.users.sf.net
中文版最後更新時間
2010年2月15日
索引
- 名稱
-
- 摘要
-
- 描述
-
- 返回值
-
- 另見
-
- 譯者
-
- 中文版主頁
-
- 中文版最後更新時間
-