MATLAB 程式設計/Psychtoolbox/螢幕命令
Back to MATLAB Programming/Psychtoolbox
用法
SCREEN(windowPtr,'PutImage',imageArray,[rect],[copyMode])
將 "imageArray" 緩慢複製到視窗。 "imageArray" 可以是雙精度或 uint8。它的值應該是非負整數,透過 CopyBits 或 CopyBitsQuickly 複製到視窗。 "imageArray" 可以是 MxN 陣列(對於任何視窗)或 MxNx3 陣列(僅當視窗畫素大小為 16 或 32 位時)。在後一種情況下,三個 rgb 分量將根據視窗畫素大小進行組合,以形成一個單一值,該值被複制到視窗。在 16 位模式下,r、g 和 b 分別貢獻 5 位。在 32 位模式下,r、g 和 b 分別貢獻 8 位。
"rect" 是視窗座標。整個影像被複制到 "rect",如果需要則進行縮放。rect 的預設值為 imageArray 的 rect,位於視窗的中心。陣列在視窗中的方向與 MATLAB 在命令視窗中數值陣列顯示的方向相同。第一個畫素位於左上角,行是水平的。除非您指定 "Quickly" copyMode,否則 PutImage 繼承 CopyBits 的行為,將影像縮放至 rect。
copyMode 引數是一個字串變數,它被傳遞給 VideoToolbox CopyWindows 例程。copyMode 可以是 'srcCopy'(預設)或 'bltFast'。
複製分兩個階段進行。首先,從影像陣列到一個臨時離屏視窗,速度較慢;然後,從那裡到由 "windowPtr" 指定的視窗,速度很快。
用法
SCREEN('MATLABToFront',[n])
將 MATLAB 視窗選單中的第 n 個視窗置於最前。如果未指定,則 n 預設值為 0(命令視窗)。
用法
SCREEN(windowPtr,'WindowToFront')
將指定的視窗置於最前。
用法
SCREEN(windowPtr,'FillRect',[color],[rect])
填充 "rect"。 "color" 是您要插入每個畫素的 clut 索引(標量或 [r g b] 三元組);預設情況下,將使用此視窗畫素大小的標準 CLUT 生成白色。預設 "rect" 為整個螢幕,因此您可以使用此函式清除螢幕。
用法
SCREEN(windowPtr,'Close')
關閉 SCREEN 的任何視窗(螢幕上或螢幕外)。關閉螢幕上的視窗大約需要一秒鐘。在關閉最後一個螢幕上的視窗後,游標將變為可見。
用法
SCREEN('CloseAll')
關閉 SCREEN 的所有視窗(螢幕上和螢幕外)。關閉每個螢幕上的視窗大約需要一秒鐘。在關閉最後一個螢幕上的視窗後,游標將變為可見。
用法
SCREEN(windowPtr,'Close')
關閉 SCREEN 的任何視窗(螢幕上或螢幕外)。關閉螢幕上的視窗大約需要一秒鐘。在關閉最後一個螢幕上的視窗後,游標將變為可見。
用法
desribeStruct=SCREEN('Computer')
返回關於計算機的資訊,以 Matlab 結構體形式。
用法
SCREEN('CopyWindow',srcWindowPtr,dstWindowPtr,[srcRect],[dstRect],[copyMode])
在兩個視窗(螢幕上或螢幕外)之間快速複製影像。copyMode 只能在 Win 上為 'srcCopy'(預設,將影像縮放至適應 dstRect)。與 Rush 一起使用以確保時間可靠。見 Rush。
用法
SCREEN('CopyWindow',srcWindowPtr,dstWindowPtr,[srcRect],[dstRect],[copyMode])
在兩個視窗(螢幕上或螢幕外)之間快速複製影像。copyMode 只能在 Win 上為 'srcCopy'(預設,將影像縮放至適應 dstRect)。與 Rush 一起使用以確保時間可靠。見 Rush。
用法
SCREEN(windowPtr,'DrawLine',[color],fromH,fromV,toH,toV,[penWidth],[penHeight],[penMode])
繪製一條線。 "color" 是您要插入每個畫素的 clut 索引(標量或 [r g b] 三元組)。預設值為黑色。預設 "penWidth" 和 "penHeight" 為 1。 "penMode" 指定繪製模式:Win32 GDI 介面不支援這些 Copy、Or、xOr 操作。因此,這裡的筆模式表示筆的線型:'patCopy'(實線筆,預設)、'patOr'(虛線)、'patXor'(點劃線)、'patBic'(點線)、'notPatCopy'(不可見)、'notPatOr'(虛線)、'notPatXor'(點劃線)、'notPatBic'(框架內部)。
用法
SCREEN(windowPtr,'FillOval',[color],[rect])
用給定的顏色填充橢圓,內切於 "rect"。 "color" 是您要插入每個畫素的 clut 索引(標量或 [r g b] 三元組);預設情況下,將使用此視窗畫素大小的標準 CLUT 生成白色。預設 rect 為整個視窗。
用法
SCREEN(windowPtr,'FillPoly',[color],pointList)
填充多邊形。 "color" 是您要插入每個畫素的 clut 索引(標量或 [r g b] 三元組);預設情況下,將使用此視窗畫素大小的標準 CLUT 生成白色。 "pointList" 是一個矩陣:每一行指定一個頂點的 (x,y) 座標。
用法
SCREEN(windowPtr,'FillRect',[color],[rect])
填充 "rect"。 "color" 是您要插入每個畫素的 clut 索引(標量或 [r g b] 三元組);預設情況下,將使用此視窗畫素大小的標準 CLUT 生成白色。預設 "rect" 為整個螢幕,因此您可以使用此函式清除螢幕。
DrawText
[edit | edit source]用法
[newX,newY] = SCREEN(windowPtr,'DrawText',text,[x],[y],[color])
繪製文字。 "text" 可以包含雙位元組字元(例如中文)。 預設的 "x" "y" 是當前筆的位置。 "color" 是您要插入每個畫素的 CLUT 索引(標量或 [r g b] 三元組); 預設情況下,使用此視窗的 pixelSize 的標準 CLUT 生成黑色。 "newX,newY" 返回最終的筆位置。
FillArc
[edit | edit source]用法
SCREEN(windowPtr,'FillArc',[color],[rect],startAngle,arcAngle)
在矩形內繪製一個填充的弧。 "color" 是您要插入每個畫素的 clut 索引(標量或 [r g b] 三元組); 預設情況下,使用此視窗的 pixelSize 的標準 CLUT 生成黑色。 預設的 "rect" 是整個視窗。 角度是從垂直方向順時針測量的。
FillOval
[edit | edit source]用法
SCREEN(windowPtr,'FillOval',[color],[rect])
用給定的顏色填充橢圓,內切於 "rect"。 "color" 是您要插入每個畫素的 clut 索引(標量或 [r g b] 三元組);預設情況下,將使用此視窗畫素大小的標準 CLUT 生成白色。預設 rect 為整個視窗。
FillPoly
[edit | edit source]用法
SCREEN(windowPtr,'FillPoly',[color],pointList)
填充多邊形。 "color" 是您要插入每個畫素的 clut 索引(標量或 [r g b] 三元組);預設情況下,將使用此視窗畫素大小的標準 CLUT 生成白色。 "pointList" 是一個矩陣:每一行指定一個頂點的 (x,y) 座標。
FillRect
[edit | edit source]用法
SCREEN(windowPtr,'FillRect',[color],[rect])
填充 "rect"。 "color" 是您要插入每個畫素的 clut 索引(標量或 [r g b] 三元組);預設情況下,將使用此視窗畫素大小的標準 CLUT 生成白色。預設 "rect" 為整個螢幕,因此您可以使用此函式清除螢幕。
FrameArc
[edit | edit source]用法
SCREEN(windowPtr,'FrameArc',[color],[rect],startAngle,arcAngle,[penWidth],[penHeight],[penMode])
在矩形內繪製一個弧。 "color" 是您要插入每個畫素的 clut 索引(標量或 [r g b] 三元組); 預設情況下,使用此視窗的 pixelSize 的標準 CLUT 生成黑色。 預設的 "rect" 是整個視窗。 預設的筆大小為 1,1 。 角度以度為單位,從垂直方向順時針測量。
FrameOval
[edit | edit source]用法
SCREEN(windowPtr,'FrameOval',[color],[rect],[penWidth],[penHeight],[penMode])
繪製橢圓的輪廓。 "color" 是您要插入每個畫素的 clut 索引(標量或 [r g b] 三元組); 預設情況下,使用此視窗的 pixelSize 的標準 CLUT 生成黑色。 預設的 "rect" 是整個視窗。 預設的筆大小為 1,1。
FrameRate
[edit | edit source]用法
hz=SCREEN(windowPtrOrScreenNumber,'FrameRate',[hz])
幀速率,以 Hz 為單位,這是最近為該螢幕測量的幀速率(通常是在您首次開啟它時)。
MacOS:FrameRate 在某些測量期間計算幀並計算速率。 設定 "hz" 不會影響螢幕,只會影響返回的值。 將 "hz" 設定為 NaN 或 [] 會強制 SCREEN 立即重新測量它,例如,在使用控制面板更改螢幕解析度之後。 當您關閉該螢幕上的最後一個視窗時,快取的值會被清除。
Windows:返回的值是標稱幀速率,而不是測量速率。 返回的值始終是當前的。 FrameRate 將接受一個引數,以與 MacOS 實現相容,但它會忽略傳入的值。
FrameRect
[edit | edit source]用法
SCREEN(windowPtr,'FrameRect',[color],[rect],[penWidth],[penHeight],[penMode])
繪製矩形的輪廓。 "color" 是您要插入每個畫素的 clut 索引(標量或 [r g b] 三元組); 預設情況下,使用此視窗的 pixelSize 的標準 CLUT 生成黑色。 預設的 "rect" 是整個視窗。 預設的筆大小為 1,1。 "penMode" 指定繪圖模式:Win32 GDI 介面不支援這些 Copy、Or、xOr 操作。 因此,這裡的這些筆模式表示筆的線型:"patCopy"(實線筆,預設),"patOr"(虛線),"patXor"(點劃線),"patBic"(點線),"notPatCopy"(不可見),"notPatOr"(虛線),"notPatXor"(點劃線),"notPatBic"(框架內)。
Gamma
[edit | edit source]用法
[oldGammaTable,dacSize]=SCREEN(windowPtrOrScreenNumber,'Gamma',[gammaTable],[dacSize])
獲取/設定伽瑪表。 伽瑪表通常為 256x1 或 256x3。 大多數使用者不需要此函式。
GetClut
[edit | edit source]用法
clut=SCREEN(windowPtrOrScreenNumber,'GetClut',[bits])
獲取影片螢幕的顏色查詢表 (CLUT)。 返回的 "clut" 是一個 3 列矩陣,每行代表硬體 CLUT 中的一個 RGB 條目。 對於 8 位 CLUT,"clut" 值將在 0 到 255 的範圍內。
GetFrontWindow
[edit | edit source]用法
[windowPtr,rect]=SCREEN('GetFrontWindow')
獲取最前面視窗的視窗指標。
GetImage
[edit | edit source]用法
imageArray=SCREEN(windowPtr,'GetImage',[rect])
從視窗中緩慢複製影像,返回一個 MATLAB uint8 陣列。 如果視窗的 pixelSize>8,則返回的 imageArray 有三層,即 RGB 影像。 "rect" 位於視窗座標中,其預設值為整個視窗。 更改:從 1998 年 4 月開始,imageArray 現在是 uint8 而不是 double,以節省空間(8 倍)。 但是,如果您嘗試對 uint8 陣列進行數學運算,MATLAB 將會發出錯誤,因此您可能需要使用 DOUBLE 進行轉換,例如,imageArray/255 將會產生錯誤,但 double(imageArray)/255 則可以。 另請參閱 "PutImage" 和 "CopyWindow"。
GetImage255
[edit | edit source]用法
imageArray=SCREEN(windowPtr,'GetImage',[rect])
從視窗中緩慢複製影像,返回一個 MATLAB uint8 陣列。 如果視窗的 pixelSize>8,則返回的 imageArray 有三層,即 RGB 影像。 "rect" 位於視窗座標中,其預設值為整個視窗。 更改:從 1998 年 4 月開始,imageArray 現在是 uint8 而不是 double,以節省空間(8 倍)。 但是,如果您嘗試對 uint8 陣列進行數學運算,MATLAB 將會發出錯誤,因此您可能需要使用 DOUBLE 進行轉換,例如,imageArray/255 將會產生錯誤,但 double(imageArray)/255 則可以。 另請參閱 "PutImage" 和 "CopyWindow"。
GetMATLABWindow
[edit | edit source]用法
[windowPtr,rect]=SCREEN('GetMATLABWindow',[n])
獲取 MATLAB 的視窗選單中第 n 個視窗的視窗指標。
GetWindowByTitle
[edit | edit source]用法
[windowPtr,rect]=SCREEN('GetWindowByTitle',title);
獲取具有指定標題的視窗的視窗指標。
GlobalRect
[edit | edit source]SCREENGlobalRect 尚未支援。
IsOffscreen
[edit | edit source]用法
isOffscreen=SCREEN(windowPtr,'IsOffscreen')
找出視窗是否在螢幕外。 響應:1=是; 0=否
MATLABToFront
[edit | edit source]用法
SCREEN('MATLABToFront',[n])
將 MATLAB 視窗選單中的第 n 個視窗置於最前。如果未指定,則 n 預設值為 0(命令視窗)。
MoveWindow
[edit | edit source]SCREENMoveWindow 尚未支援。
OpenOffscreenWindow
[edit | edit source]用法
[windowPtr,rect]=SCREEN(windowPtrOrScreenNumber,'OpenOffscreenWindow',[color],[rect],[pixelSize]);
開啟一個離屏視窗(DirectDraw 中的離屏表面)。這僅僅是記憶體中被視為視窗的區域。離屏視窗對於建立用於後續顯示的影像非常有用,因為視窗之間的複製速度非常快。您可以指定一個螢幕(screenNumber>=0)或沒有螢幕(screenNumber=-1)。如果您指定了一個螢幕,那麼離屏視窗將附加到與該螢幕關聯的 DirectDraw 物件。您可以指定沒有螢幕(screenNumber=-1),但在您呼叫 OpenOffscreenWindow 時,任何真實的螢幕都必須已經有一個開啟的 SCREEN 視窗。"color" 是您要插入每個畫素的 clut 索引(標量或 [r g b] 三元組);預設值為白色。"rect" 指定離屏視窗的大小以及離屏視窗與螢幕的哪個部分對齊。如果提供,"rect" 必須包含至少一個畫素。如果提供了 screenNumber,那麼 "rect" 將以螢幕座標(原點在左上角)表示,並且預設為該螢幕的大小。如果提供了 screenNumber -1,那麼 "rect" 預設為主螢幕的大小。(在所有情況下,後續對該新離屏視窗的引用都將使用其座標:原點在其左上角。)"pixelSize" 設定每個畫素的深度(以位為單位)。如果您指定了一個螢幕(screenNumber>=0)和一個 pixelSize>0,那麼它們必須一致。如果您指定了沒有螢幕(screenNumber=-1),那麼預設的 pixelSize 與主螢幕相同,但您可以指定任何合法的深度:8、16、24、32。pixelSize 為 0 或 [] 將被預設值替換。
用法
[windowPtr,rect]=SCREEN(windowPtrOrScreenNumber,'OpenWindow',[color],[rect],[pixelSize]);
開啟一個螢幕視窗。透過 windowPtr 或 screenNumber 指定一個螢幕(0 是主螢幕,帶有選單欄)。"color" 是您要插入每個畫素的 clut 索引(標量或 [r g b] 三元組);預設值為白色。如果提供,"rect" 必須包含至少一個畫素。如果提供了 windowPtr,那麼 "rect" 將以視窗座標(原點在左上角)表示,並且預設為整個視窗。如果提供了 screenNumber,那麼 "rect" 將以螢幕座標(原點在左上角)表示,並且預設為整個螢幕。(在所有情況下,後續對該新視窗的引用都將使用其座標:原點在其左上角。)Windows 版本接受 "rect",但會忽略它,視窗始終是其顯示在其上的顯示器的大小。"pixelSize" 設定每個畫素的深度(以位為單位);預設值為保持深度不變。開啟或關閉一個視窗大約需要一秒鐘。
用法
[oldPixelSize,oldIsColor,pages]=SCREEN(windowPtrOrScreenNumber,'PixelSize',[pixelSize],[isColor])
獲取/設定螢幕深度、灰度/彩色模式和影片頁數。(我們目前沒有提供更改頁面的方法。)
用法
pixelSizes=SCREEN(windowPtrOrScreenNumber,'PixelSizes')
列出此螢幕的所有可能的 pixelSizes。Windows 版本僅返回當前顯示尺寸下可用的畫素大小。
用法
boolean=SCREEN('Preference','Backgrounding') oldBoolean=SCREEN('Preference','IgnoreCase',[boolean]) psychTableVersion=SCREEN('Preference','PsychTableVersion') mexFunctionName=SCREEN('Preference','PsychTableCreator') oldPriority=SCREEN(windowPtrOrScreenNumber,'Preference','MaxPriorityForBlankingInterrupt',priority) oldBoolean=SCREEN(windowPtrOrScreenNumber,'Preference','WaitBlankingUsesInterrupt',[boolean]) bits=SCREEN(windowPtrOrScreenNumber,'Preference','ClutDacSize') boolean=SCREEN(windowPtrOrScreenNumber,'Preference','FixedClut') oldBoolean=SCREEN(windowPtrOrScreenNumber,'Preference','SetClutDriverWaitsForBlanking',[boolean]) oldBoolean=SCREEN(windowPtrOrScreenNumber,'Preference','SetClutQuickly',[boolean]) oldBoolean=SCREEN(windowPtrOrScreenNumber,'Preference','SetClutCallsWaitBlanking',[boolean]) oldFrames=SCREEN(windowPtrOrScreenNumber,'Preference','SetClutSimulatesBlankingInterrupts',[frames])
獲取/設定各種首選項。前四個是通用的,其餘與 WaitBlanking 或 SetClut 相關並且是特定於螢幕的。"boolean" 值為 1(非零)表示是,0 表示否。首選項是易失性的:它們在您首次使用每個螢幕時由 SCREEN 設定,並且在關閉最後一個 SCREEN 視窗時(例如,透過 'Close'、'CloseAll' 或 透過鍵入 "clear screen" 重新整理 SCREEN.mex)被重新整理。因此,在呼叫 'OpenWindow' 後進行任何首選項設定。警告:這些設定允許您訪問確定 SCREEN 行為的所有內部引數。因此,引數集一直在變化,因為 SCREEN 正在不斷發展以應對不斷變化的環境(例如,不等待 blanking 的影片驅動程式和 Rush 的高優先順序)。您可以隨意使用這些專家控制,但是,如果您這樣做,請意識到您可能需要在 PsychToolbox 的每次新版本中調整您的 'Preference' 呼叫。
- SetClutDriverWaitsForBlanking 報告顯示器影片驅動程式是否等待 blanking。通常是隻讀的,您也可以在 PowerMac 7300/7500/7600/8500/8600 內建驅動程式上設定/清除它。- SetClutQuickly 指定您是否要使用自定義 SetEntriesQuickly.c 驅動程式(如果此裝置可用)代替標準影片驅動程式的首選項。SetEntriesQuickly 驅動程式不等待 blanking。- SetClutCallsWaitBlanking 確定是否應在每次呼叫 SetClut 後呼叫 WaitBlanking。- SetClutSimulatesBlankingInterrupts 設定/獲取每次 SetClut 後要模擬的 blanking 中斷次數,以彌補 SetClut 呼叫期間錯過的中斷。- WaitBlankingUsesInterrupt 指定 WaitBlanking 是否應使用 SetClut(原始驅動程式)或螢幕的 blanking 中斷來等待 blanking 的首選項。請參見 'WaitBlanking'。- MaxPriorityForBlankingInterrupt 指定硬體 blanking 中斷仍然有效的最高優先順序。通常情況下,這為 1,但如果需要為計時 3 毫秒間隔(在此間隔期間會忽略虛假 VBL 中斷)而降低到 0.5(在非 PCI Mac 上)。您的程式可以覆蓋此設定,但是,除非您真正知道自己在做什麼,否則您的計算機可能會掛起。
PutColorImage 已過時。請使用 PutImage。請使用 SCREENPutImage。
用法
SCREEN(windowPtr,'PutImage',imageArray,[rect],[copyMode])
將 "imageArray" 緩慢複製到視窗。 "imageArray" 可以是雙精度或 uint8。它的值應該是非負整數,透過 CopyBits 或 CopyBitsQuickly 複製到視窗。 "imageArray" 可以是 MxN 陣列(對於任何視窗)或 MxNx3 陣列(僅當視窗畫素大小為 16 或 32 位時)。在後一種情況下,三個 rgb 分量將根據視窗畫素大小進行組合,以形成一個單一值,該值被複制到視窗。在 16 位模式下,r、g 和 b 分別貢獻 5 位。在 32 位模式下,r、g 和 b 分別貢獻 8 位。
"rect" 是視窗座標。整個影像被複制到 "rect",如果需要則進行縮放。rect 的預設值為 imageArray 的 rect,位於視窗的中心。陣列在視窗中的方向與 MATLAB 在命令視窗中數值陣列顯示的方向相同。第一個畫素位於左上角,行是水平的。除非您指定 "Quickly" copyMode,否則 PutImage 繼承 CopyBits 的行為,將影像縮放至 rect。
copyMode 引數是一個字串變數,它被傳遞給 VideoToolbox CopyWindows 例程。copyMode 可以是 'srcCopy'(預設)或 'bltFast'。
複製分兩個階段進行。首先,從影像陣列到一個臨時離屏視窗,速度較慢;然後,從那裡到由 "windowPtr" 指定的視窗,速度很快。
用法
rect=SCREEN(windowPtrOrScreenNumber,'Rect')
獲取視窗或螢幕的本地矩形。
用法
screenNumbers=SCREEN('Screens')
返回一個 screenNumbers 陣列。
用法
SCREEN('MATLABToFront',[n])
將 MATLAB 視窗選單中的第 n 個視窗置於最前。如果未指定,則 n 預設值為 0(命令視窗)。
用法
err=SCREEN(windowPtr,'SetClut',clut,[startEntry],[bits])
設定螢幕的 DirectDraw 調色盤。
調色盤立即設定,無需等待垂直同步。
"clut" 引數是具有 3 列的 MATLAB 矩陣。寫入的條目數是 "clut" 中的行數。硬體 CLUT 中的每個 RGB 條目都將載入 "clut" 的一行。對於 8 位 CLUT,每個 "clut" 值應在 0 到 255 之間。引數 startEntry 是可選的,它決定要載入哪個 CLUT 條目(條目從 0 開始編號),以僅載入 CLUT 條目的一部分。我們建議 "startEntry" 始終為零或更大。
"bits" 引數指定您想要寫入 CLUT 的位數。通常它將為 8,這是預設值。如果您將其設定為其他值,則允許條目的範圍將相應縮放。因此,如果您使用 9 位 CLUT,則每個條目應在 0 到 511 之間,依此類推。
PREFERENCES
用法
err=SCREEN(windowPtr,'SetClut',clut,[startEntry],[bits])
設定螢幕的 DirectDraw 調色盤。
調色盤立即設定,無需等待垂直同步。
"clut" 引數是具有 3 列的 MATLAB 矩陣。寫入的條目數是 "clut" 中的行數。硬體 CLUT 中的每個 RGB 條目都將載入 "clut" 的一行。對於 8 位 CLUT,每個 "clut" 值應在 0 到 255 之間。引數 startEntry 是可選的,它決定要載入哪個 CLUT 條目(條目從 0 開始編號),以僅載入 CLUT 條目的一部分。我們建議 "startEntry" 始終為零或更大。
"bits" 引數指定您想要寫入 CLUT 的位數。通常它將為 8,這是預設值。如果您將其設定為其他值,則允許條目的範圍將相應縮放。因此,如果您使用 9 位 CLUT,則每個條目應在 0 到 511 之間,依此類推。
PREFERENCES
用法
SCREEN(windowPtr,'SetDrawingRegion',shapeSpec,[shapeFlag])
使後續繪製到視窗僅在指定區域內可見。這並不適用於 PutImage 或 CopyWindow 操作。呼叫 rect 等於 screenRect 以重新建立整個螢幕。繪製在區域之外將被抑制,但仍需花費正常的時間才能完成。
如果 shapeFlag == 0 [預設值],則 shapeSpec 是一個矩形,區域是矩形。如果 shapeFlag == 1,則 shapeSpec 是一個矩形,區域是橢圓。如果 shapeFlag == 2,則 shapeSpec 是一個點列表,區域是多邊形。
用法
[oldGammaTable,dacSize]=SCREEN(windowPtrOrScreenNumber,'Gamma',[gammaTable],[dacSize])
獲取/設定伽瑪表。 伽瑪表通常為 256x1 或 256x3。 大多數使用者不需要此函式。
用法
oldStyle=SCREEN(windowPtr,'TextStyle',[style])
獲取/設定此視窗中未來文字繪製的字型樣式。style 的有用值如下;它們可以被 OR 連線。
0=normal,1=bold,2=italic,4=underline。(Windows 版本尚不支援 Outline、Condense 和 Extend)
用法
[oldFontName,oldFontNumber]=SCREEN(windowPtr,'TextFont',[fontNameOrNumber])
獲取/設定此視窗中未來文字繪製的字型。您可以詢問當前字型,或透過數字或名稱(例如“Helvetica”)指定所需的字型。字型編號在不同電腦之間可能不一致。如果未提供 windowPtr,且未提供 fontName 引數,則會列印所有字型名稱的列表。對於螢幕視窗和離屏視窗,預設字型(由 Windows 設定)為 1(系統字型)。
用法
oldCopyMode=SCREEN(windowPtr,'TextMode',[copyMode])
獲取/設定此視窗的文字複製模式。
copyMode 可以是整數或字串:“srcCopy”(預設)、“srcOr”、“srcXor”、“srcBic”、“notSrcCopy”、“notSrcOr”、“notSrcXor”、“notSrcBic”、“patCopy”、“patOr”、“patXor”、“patBic”、“notPatCopy”、“notPatOr”、“notPatXor”、“notPatBic”。在 Windows 版本中,此函式什麼也不做,因為 Windows 上沒有與 Mac 文字模式相對應的選項。
用法
oldFontSize=SCREEN(windowPtr,'TextSize',[fontSize])
獲取/設定此視窗中未來文字繪製的字型大小。
用法
oldStyle=SCREEN(windowPtr,'TextStyle',[style])
獲取/設定此視窗中未來文字繪製的字型樣式。style 的有用值如下;它們可以被 OR 連線。
0=normal,1=bold,2=italic,4=underline。(Windows 版本尚不支援 Outline、Condense 和 Extend)
用法
width=SCREEN(windowPtr,'TextWidth',text); % 水平偏移(對於從右到左的指令碼(例如希伯來語)為負數)。
獲取文字字串的寬度。寬度是由呼叫 DrawText 所產生的水平筆位置的改變數;對於從右到左的指令碼(例如希伯來語)為負數。文字可能包含 2 位元組字元(例如中文)。
用法
[oldMore,oldSeverity,oldAlready]=SCREEN('UsageWarnings',[more],[severity],[already])
控制如何處理使用警告。
Severity=0(抑制)、1(警告)、2(錯誤)
用法
[cardName,driverName,driverVersion,slotName]=SCREEN(windowPtrOrScreenNumber,'VideoCard')
獲取有關影片硬體的資訊。
用法
framesSinceLastWait=SCREEN(windowPtrOrScreenNumber,'WaitBlanking',[waitFrames])
等待指定的次數的空白(幀結束)。使用 waitFrames==1(或省略它,因為這是預設值)來等待下一幀的開始。影片卡透過將電壓短暫降低到垂直消隱電平 (VBL) 來標記每個影片幀的結束,這會將螢幕“空白”到黑色。我們相對於消隱開始進行所有影片計時。您可能希望以高優先順序執行“WaitBlanking”(請參閱 Rush 和 Priority)以確保計時可靠。為了使此例程儘可能快,除非您提供一個引數來接收它,否則不會返回任何值。當處理器優先順序在或低於 MaxPriorityForBlankingInterrupt 時,WaitBlankingUsesInterrupt 'Preference' 控制每個螢幕的 'WaitBlanking' 是否呼叫 SetClut(預設)或等待消隱中斷。當處理器優先順序高於 MaxPriorityForBlankingInterrupt 時,'WaitBlanking' 始終使用 SetClut(即對影片驅動程式的 cscSetEntries 或 cscDirectSetEntries 呼叫)。
用法
framesSinceLastWait=SCREEN(windowPtrOrScreenNumber,'WaitBlanking',[waitFrames])
等待指定的次數的空白(幀結束)。使用 waitFrames==1(或省略它,因為這是預設值)來等待下一幀的開始。影片卡透過將電壓短暫降低到垂直消隱電平 (VBL) 來標記每個影片幀的結束,這會將螢幕“空白”到黑色。我們相對於消隱開始進行所有影片計時。您可能希望以高優先順序執行“WaitBlanking”(請參閱 Rush 和 Priority)以確保計時可靠。為了使此例程儘可能快,除非您提供一個引數來接收它,否則不會返回任何值。當處理器優先順序在或低於 MaxPriorityForBlankingInterrupt 時,WaitBlankingUsesInterrupt 'Preference' 控制每個螢幕的 'WaitBlanking' 是否呼叫 SetClut(預設)或等待消隱中斷。當處理器優先順序高於 MaxPriorityForBlankingInterrupt 時,'WaitBlanking' 始終使用 SetClut(即對影片驅動程式的 cscSetEntries 或 cscDirectSetEntries 呼叫)。
用法
kind=SCREEN(windowPtr,'WindowKind')
此 windowPtr 是什麼型別的?如果無效,則返回 0;如果為離屏,則返回 -1;如果為螢幕視窗,則返回 1;如果為 MATLAB 的螢幕視窗,則返回 2。
用法
windowPtrs=SCREEN('Windows')
返回一個 windowPtr 陣列。
用法
screenNumber=SCREEN(windowPtrOrScreenNumber,'WindowScreenNumber')
獲取螢幕編號。
用法
title=SCREEN(windowPtr,'WindowTitle')
獲取視窗的標題。
用法
SCREEN(windowPtr,'WindowToBack')
將指定的視窗傳送到後面。
用法
SCREEN(windowPtr,'WindowToFront')
將指定的視窗置於最前。