Differences

This shows you the differences between two versions of the page.

Link to this comparison view

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