This shows you the differences between two versions of the page.
mgl:functionreferencescreen [2010/07/13 23:18] |
mgl:functionreferencescreen [2022/08/30 13:40] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Main screen functions ====== | ||
- | ===== mglOpen: Opens the screen ===== | ||
- | |||
- | **usage:** mglOpen(whichScreen, <screenWidth>, <screenHeight>, <frameRate>, <bitDepth>)\\ **purpose:** Opens an openGL window | ||
- | |||
- | ^ argument ^ value ^ | ||
- | | whichScreen | 0=Window, 1=primary screen, 2=secondary screen, etc | | ||
- | | <screenWidth> | [width] in pixels | | ||
- | | <screenHeight> | [height] in pixels | | ||
- | | <frameRate> | [frameRate] in hertz | | ||
- | | <bitDepth> | [bitDepth] this is usually 32 bits | | ||
- | |||
- | Open last monitor in list with current window settings | ||
- | |||
- | mglOpen | ||
- | |||
- | Open with resolution 800x600 60Hz 32bit fullscreen | ||
- | |||
- | mglOpen(1,800,600,60,32); | ||
- | |||
- | Open in a window | ||
- | |||
- | mglOpen(0); | ||
- | |||
- | \\ Note that mglOpen hides the mouse cursor as a default. If you want to show the mouse cursor, you should call mglDisplayCursor after opening the screen. | ||
- | |||
- | ===== mglFlush: Flips front and back buffer ===== | ||
- | |||
- | **purpose:** swap front and back buffer (waits for one frame tick)\\ **usage:** mglFlush \\ **N.B.** mglFlush has to be called after each operation that involves drawing or erasing from the currently open window | ||
- | |||
- | ===== mglClose: Closes the screen ===== | ||
- | |||
- | **purpose:** close OpenGL screen\\ **usage:** mglClose | ||
- | ====== Other screen functions ====== | ||
- | ===== mglResolution: Get and set display resolution ===== | ||
- | **availability**: [[mgl:beta|mgl 2.0]]\\ | ||
- | **usage**: mglResolution(<whichScreen>, <screenWidth>, <screenHeight>, <frameRate>, <bitDepth>)\\ | ||
- | **purpose**: Gets or sets the resolution of a display | ||
- | **usage**: To get the resolution of the default display: | ||
- | |||
- | mglResolution | ||
- | |||
- | To get the resolution of display 1: | ||
- | |||
- | mglResolution(1) | ||
- | |||
- | To set the resolution of display 2 to 1440x900: | ||
- | |||
- | mglResolution(2,1440,900) | ||
- | |||
- | ===== mglSwitchDisplay: Switch between multiple monitors ===== | ||
- | |||
- | **usage:** mglSwitchDisplay(<displayID>)\\ **purpose:** If you are using multiple monitors to display stimuli (like for a dichoptic presentation), you can open up multiple displays using this function. | ||
- | |||
- | ^ argument ^ value ^ | ||
- | | <displayID> | which display to switch to | | ||
- | |||
- | You can use this to open up two separate screens and control them independently. For example, say you have two monitors 1 and 2. You open the first in the usual way: | ||
- | |||
- | mglOpen(1) | ||
- | |||
- | Then you switch monitors so that you can open up the other one | ||
- | |||
- | mglSwitchDisplay | ||
- | mglOpen(2) | ||
- | |||
- | Now if you want draw to the first display, you can do | ||
- | |||
- | mglSwitchDisplay(1) | ||
- | mglClearScreen(0.5); | ||
- | mglFlush; | ||
- | |||
- | Similarly, to draw to the second display | ||
- | |||
- | mglSwitchDisplay(2); | ||
- | mglClearScreen(1); | ||
- | mglFlush; | ||
- | |||
- | You can check the status of all open displays with: | ||
- | |||
- | mglSwitchDisplay(-2); | ||
- | |||
- | If you want to close all displays at once, you can do: | ||
- | |||
- | mglSwitchDisplay(-1); | ||
- | |||
- | ===== mglMoveWindow: Moves windows created by mglOpen(0) ===== | ||
- | |||
- | **usage:** mglMoveWindow(leftPos,topPos)\\ **purpose:** Moves a window created by mglOpen(0) | ||
- | |||
- | ^ argument ^ value ^ | ||
- | | leftPos | Left position of where the window will be moved to | | ||
- | | topPos | Top position of where the window will be moved to | | ||
- | |||
- | mglOpen(0); | ||
- | mglMoveWindow(100,100); | ||
- | |||
- | \\ | ||
- | |||
- | ===== mglDescribeDisplays: Get information about your monitor and computer system ===== | ||
- | |||
- | **usage:** [displayInfo computerInfo] = mglDescribeDisplays()\\ **purpose:** Gets information about your displays (as an array of structs with values for each monitor). As well as a single struct with info about your computer. | ||
- | ===== mglFrameGrab: Frame grab to a matlab matrix ===== | ||
- | |||
- | **usage:** mglFrameGrab(<frameRect>)\\ **purpose:** Does a frame grab of the current mgl screen and returns it as a matrix of dimensions widthxheightx3 | ||
- | |||
- | ^ argument ^ value ^ | ||
- | | frameRect | Optional argument that is a 1x4 array specifying a rectangular part of the frame to grab in the format [x y width height] | | ||
- | |||
- | mglOpen(); | ||
- | mglScreenCoordinates; | ||
- | mglClearScreen([0 0 0]); | ||
- | mglPoints2(mglGetParam('screenWidth')*rand(5000,1),mglGetParam('screenHeight')*rand(5000,1)); | ||
- | mglPolygon([0 0 mglGetParam('screenWidth') mglGetParam('screenWidth')],[mglGetParam('screenHeight')/3 mglGetParam('screenHeight')*2/3 mglGetParam('screenHeight')*2/3 mglGetParam('screenHeight')/3],0); | ||
- | mglTextSet('Helvetica',32,[1 1 1]); | ||
- | mglTextDraw('Frame Grab',[mglGetParam('screenWidth')/2 mglGetParam('screenHeight')/2]); | ||
- | frame = mglFrameGrab; | ||
- | imagesc(mean(frame,3)');colormap('gray') | ||
- | mglFlush | ||