跳转至内容

MATLAB 编程/Psychtoolbox/屏幕命令

来自维基教科书,开放的书籍,开放的世界
Back to MATLAB Programming/Psychtoolbox

BlitImage255

[编辑 | 编辑源代码]

用法

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" 指定的窗口,速度很快。

BringMATLABToFront

[编辑 | 编辑源代码]

用法

SCREEN('MATLABToFront',[n])

将 MATLAB 窗口菜单中的第 n 个窗口置于最前。如果未指定,则 n 默认值为 0(命令窗口)。

BringWindowToFront

[编辑 | 编辑源代码]

用法

SCREEN(windowPtr,'WindowToFront')

将指定的窗口置于最前。

ClearScreen

[编辑 | 编辑源代码]

用法

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

填充 "rect"。 "color" 是您要插入每个像素的 clut 索引(标量或 [r g b] 三元组);默认情况下,将使用此窗口像素大小的标准 CLUT 生成白色。默认 "rect" 为整个屏幕,因此您可以使用此函数清除屏幕。

用法

SCREEN(windowPtr,'Close')

关闭 SCREEN 的任何窗口(屏幕上或屏幕外)。关闭屏幕上的窗口大约需要一秒钟。在关闭最后一个屏幕上的窗口后,光标将变为可见。

用法

SCREEN('CloseAll')

关闭 SCREEN 的所有窗口(屏幕上和屏幕外)。关闭每个屏幕上的窗口大约需要一秒钟。在关闭最后一个屏幕上的窗口后,光标将变为可见。

CloseScreen

[编辑 | 编辑源代码]

用法

SCREEN(windowPtr,'Close')

关闭 SCREEN 的任何窗口(屏幕上或屏幕外)。关闭屏幕上的窗口大约需要一秒钟。在关闭最后一个屏幕上的窗口后,光标将变为可见。


用法

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" 是您要插入每个像素的 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 或 [] 将被默认值替换。

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 中断)而降低到 0.5(在非 PCI Mac 上)。您的程序可以覆盖此设置,但是,除非您真正知道自己在做什么,否则您的计算机可能会挂起。


PutColorImage

[编辑 | 编辑源代码]

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 数组。

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 之间,依此类推。

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

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=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])

获取/设置此窗口中未来文本绘制的字体大小。

TextStyle

[编辑 | 编辑源代码]

用法

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

获取/设置此窗口中未来文本绘制的字体样式。style 的有用值如下;它们可以被 OR 连接。

0=normal,1=bold,2=italic,4=underline。(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 和 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 调用)。

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')

将指定的窗口置于最前。

华夏公益教科书