跳到內容

MATLAB 程式設計/Psychtoolbox/螢幕命令

來自華夏公益教科書,開放的書籍,開放的世界
(重定向自 Psychtoolbox:Screen Commands)
Back to MATLAB Programming/Psychtoolbox

BlitImage255

[編輯 | 編輯原始碼]

用法

SCREEN(windowPtr,'PutImage',imageArray,[rect],[copyMode])

將“imageArray”複製到視窗,速度較慢。“imageArray”可以是雙精度或 uint8 型別。它的值應為非負整數,透過 CopyBits 或 CopyBitsQuickly 複製到視窗。“imageArray”可以是 MxN 陣列(對於任何視窗)或 MxNx3 陣列(僅當視窗 pixelSize 為 16 或 32 位時)。在後一種情況下,三個 rgb 分量將根據視窗 pixelSize 合併,形成一個單個值,該值將複製到視窗。在 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”指定的視窗。

BringMATLABToFront

[編輯 | 編輯原始碼]

用法

SCREEN('MATLABToFront',[n])

將 MATLAB 視窗選單中的第 n 個視窗向前移動。如果未指定,則 n 預設值為 0(命令視窗)。

BringWindowToFront

[編輯 | 編輯原始碼]

用法

SCREEN(windowPtr,'WindowToFront')

將指定的視窗置於最前面。

ClearScreen

[編輯 | 編輯原始碼]

用法

SCREEN(windowPtr,'FillRect',[color],[rect])

填充“rect”。“color”是您要插入每個畫素的 clut 索引(標量或 [r g b] 三元組);預設情況下會使用此視窗 pixelSize 的標準 CLUT 生成白色。預設的“rect”是整個螢幕,因此您可以使用此函式清除螢幕。

用法

SCREEN(windowPtr,'Close')

關閉任何 SCREEN 視窗(螢幕內或螢幕外)。關閉螢幕內視窗大約需要 1 秒鐘。關閉最後一個螢幕內視窗後,游標將變為可見。

用法

SCREEN('CloseAll')

關閉所有 SCREEN 視窗(螢幕內和螢幕外)。關閉每個螢幕內視窗大約需要 1 秒鐘。關閉最後一個螢幕內視窗後,游標將變為可見。

CloseScreen

[編輯 | 編輯原始碼]

用法

SCREEN(windowPtr,'Close')

關閉任何 SCREEN 視窗(螢幕內或螢幕外)。關閉螢幕內視窗大約需要 1 秒鐘。關閉最後一個螢幕內視窗後,游標將變為可見。


用法

desribeStruct=SCREEN('Computer')

在 Matlab 結構體中返回有關計算機的資訊。

CopyWindow

[編輯 | 編輯原始碼]

用法

SCREEN('CopyWindow',srcWindowPtr,dstWindowPtr,[srcRect],[dstRect],[copyMode])

在兩個視窗(螢幕內或螢幕外)之間快速複製影像。copyMode 在 Win 上只能是 'srcCopy'(預設,將影像縮放以適合 dstRect)。與 Rush 結合使用以獲得可靠的計時。請參閱 Rush。

CopyWindows

[編輯 | 編輯原始碼]

用法

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” 是您要插入每個畫素的調色盤索引(標量或 [r g b] 三元組)。預設為黑色。預設的“penWidth” 和“penHeight” 為 1。“penMode” 指定繪圖模式:Win32 GDI 介面不支援這些複製、或、異或操作。因此,這裡的筆模式表示筆的線型:“patCopy”(實線,預設)、“patOr”(虛線)、“patXor”(點劃線)、“patBic”(點線)、“notPatCopy”(不可見)、“notPatOr”(虛線)、“notPatXor”(點劃點線)、“notPatBic”(內部框架)。

用法

SCREEN(windowPtr,'FillOval',[color],[rect])

用給定的顏色填充橢圓,橢圓內接於“rect”。“color” 是您要插入每個畫素的調色盤索引(標量或 [r g b] 三元組);預設情況下,對於此視窗的 pixelSize,會產生帶有標準 CLUT 的白色。預設的矩形是整個視窗。

用法

SCREEN(windowPtr,'FillPoly',[color],pointList)

填充多邊形。“color” 是您要插入每個畫素的調色盤索引(標量或 [r g b] 三元組);預設情況下,對於此視窗的 pixelSize,會產生帶有標準 CLUT 的白色。“pointList” 是一個矩陣:每行指定頂點的 (x,y) 座標。

用法

SCREEN(windowPtr,'FillRect',[color],[rect])

填充“rect”。“color”是您要插入每個畫素的 clut 索引(標量或 [r g b] 三元組);預設情況下會使用此視窗 pixelSize 的標準 CLUT 生成白色。預設的“rect”是整個螢幕,因此您可以使用此函式清除螢幕。

用法

[newX,newY] = SCREEN(windowPtr,'DrawText',text,[x],[y],[color])

繪製文字。“text” 可以包含雙位元組字元(例如中文)。預設的“x” “y” 是當前筆的位置。“color” 是您要插入每個畫素的調色盤索引(標量或 [r g b] 三元組);預設情況下,對於此視窗的 pixelSize,會產生帶有標準 CLUT 的黑色。“newX,newY” 返回最終的筆位置。

用法

SCREEN(windowPtr,'FillArc',[color],[rect],startAngle,arcAngle)

繪製內接於矩形的填充弧線。“color” 是您要插入每個畫素的調色盤索引(標量或 [r g b] 三元組);預設情況下,對於此視窗的 pixelSize,會產生帶有標準 CLUT 的黑色。預設的“rect” 是整個視窗。角度從垂直方向順時針測量。

用法

SCREEN(windowPtr,'FillOval',[color],[rect])

用給定的顏色填充橢圓,橢圓內接於“rect”。“color” 是您要插入每個畫素的調色盤索引(標量或 [r g b] 三元組);預設情況下,對於此視窗的 pixelSize,會產生帶有標準 CLUT 的白色。預設的矩形是整個視窗。

用法

SCREEN(windowPtr,'FillPoly',[color],pointList)

填充多邊形。“color” 是您要插入每個畫素的調色盤索引(標量或 [r g b] 三元組);預設情況下,對於此視窗的 pixelSize,會產生帶有標準 CLUT 的白色。“pointList” 是一個矩陣:每行指定頂點的 (x,y) 座標。

用法

SCREEN(windowPtr,'FillRect',[color],[rect])

填充“rect”。“color”是您要插入每個畫素的 clut 索引(標量或 [r g b] 三元組);預設情況下會使用此視窗 pixelSize 的標準 CLUT 生成白色。預設的“rect”是整個螢幕,因此您可以使用此函式清除螢幕。

用法

SCREEN(windowPtr,'FrameArc',[color],[rect],startAngle,arcAngle,[penWidth],[penHeight],[penMode])

繪製內接於矩形的弧線。“color” 是您要插入每個畫素的調色盤索引(標量或 [r g b] 三元組);預設情況下,對於此視窗的 pixelSize,會產生帶有標準 CLUT 的黑色。預設的“rect” 是整個視窗。預設的筆大小是 1,1。角度以度為單位,從垂直方向順時針測量。

FrameOval

[編輯 | 編輯原始碼]

用法

SCREEN(windowPtr,'FrameOval',[color],[rect],[penWidth],[penHeight],[penMode])

繪製橢圓的輪廓。“color” 是您要插入每個畫素的調色盤索引(標量或 [r g b] 三元組);預設情況下,對於此視窗的 pixelSize,會產生帶有標準 CLUT 的黑色。預設的“rect” 是整個視窗。預設的筆大小是 1,1。

FrameRate

[編輯 | 編輯原始碼]

用法

hz=SCREEN(windowPtrOrScreenNumber,'FrameRate',[hz])

幀速率(以 Hz 為單位),為該螢幕最近測量的幀速率(通常是在您首次開啟螢幕時)。

MacOS:FrameRate 在一定測量時間內統計幀數並計算速率。設定“hz” 不會影響螢幕,只會影響返回的值。將“hz” 設定為 NaN 或 [] 會強制 SCREEN 現在重新測量,例如,在您使用控制面板更改螢幕解析度後。在您關閉該螢幕上的最後一個視窗時,快取的值將被清除。

Windows:返回的值是標稱幀速率,而不是測量速率。返回的值始終是當前的值。FrameRate 將接受一個引數,以與 MacOS 實現相容,但會忽略傳遞的值。

FrameRect

[編輯 | 編輯原始碼]

用法

SCREEN(windowPtr,'FrameRect',[color],[rect],[penWidth],[penHeight],[penMode])

繪製矩形的輪廓。“color” 是您要插入每個畫素的調色盤索引(標量或 [r g b] 三元組);預設情況下,對於此視窗的 pixelSize,會產生帶有標準 CLUT 的黑色。預設的“rect” 是整個視窗。預設的筆大小是 1,1。“penMode” 指定繪圖模式:Win32 GDI 介面不支援這些複製、或、異或操作。因此,這裡的筆模式表示筆的線型:“patCopy”(實線,預設)、“patOr”(虛線)、“patXor”(點劃線)、“patBic”(點線)、“notPatCopy”(不可見)、“notPatOr”(虛線)、“notPatXor”(點劃點線)、“notPatBic”(內部框架)。

用法

[oldGammaTable,dacSize]=SCREEN(windowPtrOrScreenNumber,'Gamma',[gammaTable],[dacSize])

獲取/設定伽馬錶。伽馬錶通常是 256x1 或 256x3。大多數使用者不需要此函式。

用法

clut=SCREEN(windowPtrOrScreenNumber,'GetClut',[bits])

獲取影片螢幕的調色盤 (CLUT)。返回的“clut” 是一個 3 列矩陣,每行代表硬體 CLUT 中的一個 RGB 條目。“clut” 值對於 8 位 CLUT 位於 0 到 255 的範圍內。


GetFrontWindow

[編輯 | 編輯原始碼]

用法

[windowPtr,rect]=SCREEN('GetFrontWindow')

獲取最前面視窗的視窗指標。

用法

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

[編輯 | 編輯原始碼]

用法

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

[編輯 | 編輯原始碼]

用法

[windowPtr,rect]=SCREEN('GetMATLABWindow',[n])

獲取 MATLAB 視窗選單中第 n 個視窗的視窗指標。

GetWindowByTitle

[編輯 | 編輯原始碼]

用法

[windowPtr,rect]=SCREEN('GetWindowByTitle',title);

獲取指定標題的視窗指標。

GlobalRect

[編輯 | 編輯原始碼]

SCREENGlobalRect 尚未支援。

IsOffscreen

[編輯 | 編輯原始碼]

用法

isOffscreen=SCREEN(windowPtr,'IsOffscreen')

判斷視窗是否為離屏視窗。返回結果:1=是;0=否。

MATLABToFront

[編輯 | 編輯原始碼]

用法

SCREEN('MATLABToFront',[n])

將 MATLAB 視窗選單中的第 n 個視窗向前移動。如果未指定,則 n 預設值為 0(命令視窗)。

MoveWindow

[編輯 | 編輯原始碼]

SCREENMoveWindow 尚未支援。

OpenOffscreenWindow

[編輯 | 編輯原始碼]

用法

[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 或 [] 將被預設值替換。

OpenWindow

[編輯 | 編輯原始碼]

用法

[windowPtr,rect]=SCREEN(windowPtrOrScreenNumber,'OpenWindow',[color],[rect],[pixelSize]);

開啟一個螢幕視窗。透過 windowPtr 或 screenNumber 指定一個螢幕(0 為主螢幕,帶選單欄)。“color” 是要插入每個畫素的 clut 索引(標量或 [r g b] 三元組);預設值為白色。如果提供,“rect” 必須至少包含一個畫素。如果提供了 windowPtr,則 “rect” 位於視窗座標系中(左上角為原點),並預設為整個視窗。如果提供了 screenNumber,則 “rect” 位於螢幕座標系中(左上角為原點),並預設為整個螢幕。(在所有情況下,對這個新視窗的後續引用都將使用它的座標:左上角為原點。)Windows 版本接受 “rect” 但會忽略它,視窗始終與顯示其的顯示器大小相同。“pixelSize” 設定每個畫素的深度(以位為單位);預設值為保持深度不變。開啟或關閉視窗大約需要一秒鐘。

PixelSize

[編輯 | 編輯原始碼]

用法

[oldPixelSize,oldIsColor,pages]=SCREEN(windowPtrOrScreenNumber,'PixelSize',[pixelSize],[isColor])

獲取/設定螢幕深度、灰度/彩色模式以及影片頁面數量。(我們尚未提供更改頁面的方法。)

PixelSizes

[編輯 | 編輯原始碼]

用法

pixelSizes=SCREEN(windowPtrOrScreenNumber,'PixelSizes')

列出此螢幕的所有可能的 pixelSizes。Windows 版本僅返回當前顯示器尺寸下可用的畫素大小。

Preference

[編輯 | 編輯原始碼]

用法

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 中斷)進行計時的情況下(在非 PCI Mac 上),它將降至 0.5。您的程式可以覆蓋此設定,但您的計算機很可能會掛起,除非您真正知道自己在做什麼。


PutColorImage

[編輯 | 編輯原始碼]

PutColorImage 已過時。請使用 PutImage 代替。請使用 SCREENPutImage。

用法

SCREEN(windowPtr,'PutImage',imageArray,[rect],[copyMode])

將“imageArray”複製到視窗,速度較慢。“imageArray”可以是雙精度或 uint8 型別。它的值應為非負整數,透過 CopyBits 或 CopyBitsQuickly 複製到視窗。“imageArray”可以是 MxN 陣列(對於任何視窗)或 MxNx3 陣列(僅當視窗 pixelSize 為 16 或 32 位時)。在後一種情況下,三個 rgb 分量將根據視窗 pixelSize 合併,形成一個單個值,該值將複製到視窗。在 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 陣列。

SelectMATLAB

[編輯 | 編輯原始碼]

用法

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 之間,依此類推。

偏好

用法

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 之間,依此類推。

偏好

SetDrawingRegion

[編輯 | 編輯原始碼]

用法

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=普通,1=粗體,2=斜體,4=下劃線。(在 Windows 版本中,Outline、Condense 和 Extend 尚未支援)

用法

[oldFontName,oldFontNumber]=SCREEN(windowPtr,'TextFont',[fontNameOrNumber])

獲取/設定此視窗未來文字繪製的字型。您可以詢問當前字型,或者按編號或名稱指定所需字型(例如 'Helvetica')。字型編號在不同的 PC 上可能不一致。如果沒有提供 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])

獲取/設定此視窗未來文字繪製的字型大小。

TextStyle

[編輯 | 編輯原始碼]

用法

oldStyle=SCREEN(windowPtr,'TextStyle',[style])

獲取/設定此視窗未來文字繪製的字型樣式。style 的可用值如下;它們可以被 OR 運算子組合。

0=普通,1=粗體,2=斜體,4=下劃線。(在 Windows 版本中,Outline、Condense 和 Extend 尚未支援)

TextWidth

[編輯 | 編輯原始碼]

用法

width=SCREEN(windowPtr,'TextWidth',text); % 水平偏移量(對於從右到左的指令碼,例如希伯來語,為負數)。

獲取文字字串的寬度。寬度是指透過呼叫 DrawText 將產生的水平筆位置的變化;對於從右到左的指令碼(例如希伯來語),它為負數。文字可能包含 2 位元組字元(例如中文)。

UsageWarnings

[編輯 | 編輯原始碼]

用法

[oldMore,oldSeverity,oldAlready]=SCREEN('UsageWarnings',[more],[severity],[already])

控制如何處理使用警告。

Severity=0(抑制)、1(警告)、2(錯誤)

VideoCard

[編輯 | 編輯原始碼]

用法

[cardName,driverName,driverVersion,slotName]=SCREEN(windowPtrOrScreenNumber,'VideoCard')

獲取有關影片硬體的資訊。

WaitBlanking

[編輯 | 編輯原始碼]

用法

framesSinceLastWait=SCREEN(windowPtrOrScreenNumber,'WaitBlanking',[waitFrames])

等待指定的空白次數(幀結束)。呼叫 waitFrames==1(或省略它,因為它是預設值)以等待下一幀的開始。影片卡透過將垂直同步電平 (VBL) 的電壓短暫降低來標記每個影片幀的結束,這會使螢幕變黑。所有影片計時都是相對於空白開始進行的。您可能希望以高優先順序執行 'WaitBlanking'(參見 Rush and Priority)以獲得可靠的計時。為了使此例程儘可能快,除非您提供一個引數來接收它,否則不會返回值。當處理器優先順序低於或等於 MaxPriorityForBlankingInterrupt 時,WaitBlankingUsesInterrupt 'Preference' 控制每個螢幕上 'WaitBlanking' 是否呼叫 SetClut(預設)或等待空白中斷。當處理器優先順序高於 MaxPriorityForBlankingInterrupt 時,'WaitBlanking' 始終使用 SetClut(即對影片驅動程式的 cscSetEntries 或 cscDirectSetEntries 呼叫)。

用法

framesSinceLastWait=SCREEN(windowPtrOrScreenNumber,'WaitBlanking',[waitFrames])

等待指定的空白次數(幀結束)。呼叫 waitFrames==1(或省略它,因為它是預設值)以等待下一幀的開始。影片卡透過將垂直同步電平 (VBL) 的電壓短暫降低來標記每個影片幀的結束,這會使螢幕變黑。所有影片計時都是相對於空白開始進行的。您可能希望以高優先順序執行 'WaitBlanking'(參見 Rush and Priority)以獲得可靠的計時。為了使此例程儘可能快,除非您提供一個引數來接收它,否則不會返回值。當處理器優先順序低於或等於 MaxPriorityForBlankingInterrupt 時,WaitBlankingUsesInterrupt 'Preference' 控制每個螢幕上 'WaitBlanking' 是否呼叫 SetClut(預設)或等待空白中斷。當處理器優先順序高於 MaxPriorityForBlankingInterrupt 時,'WaitBlanking' 始終使用 SetClut(即對影片驅動程式的 cscSetEntries 或 cscDirectSetEntries 呼叫)。

WindowKind

[編輯 | 編輯原始碼]

用法

kind=SCREEN(windowPtr,'WindowKind')

這是什麼型別的 windowPtr?如果無效,則返回 0,如果為離屏,則返回 -1,如果為螢幕,則返回 1,如果為 MATLAB 的螢幕,則返回 2。

用法

windowPtrs=SCREEN('Windows')

返回一個 windowPtr 陣列。

WindowScreenNumber

[編輯 | 編輯原始碼]

用法

screenNumber=SCREEN(windowPtrOrScreenNumber,'WindowScreenNumber')

獲取螢幕編號。

WindowTitle

[編輯 | 編輯原始碼]

用法

title=SCREEN(windowPtr,'WindowTitle')

獲取視窗標題

WindowToBack

[編輯 | 編輯原始碼]

用法

SCREEN(windowPtr,'WindowToBack')

將指定的視窗傳送到後面

WindowToFront

[編輯 | 編輯原始碼]

用法

SCREEN(windowPtr,'WindowToFront')

將指定的視窗置於最前面。

華夏公益教科書