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日


 

索引

名稱
摘要
描述
返回值
另見
譯者
中文版主頁
中文版最後更新時間