File: ScreenExit.c

package info (click to toggle)
psychtoolbox-3 3.0.9%2Bsvn2579.dfsg1-1
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 63,408 kB
  • sloc: ansic: 73,310; cpp: 11,139; objc: 3,129; sh: 1,669; python: 382; php: 272; makefile: 172; java: 113
file content (62 lines) | stat: -rwxr-xr-x 1,606 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
/*
	PsychToolbox2/Source/Common/Screen/ScreenExit.cpp		

	AUTHORS:
	
		Allen.Ingling@nyu.edu		awi 

	PLATFORMS:	
	
		Only OS X fow now.  


	HISTORY:
	
		12/20/01	awi		Created.
		1/25/04		awi		Added update provided by mk. It makes the ScreenCloseAllWindows call.  
                7/22/05         mk              Added call to CloseWindowBank() to free dynamic window bank array.
	DESCRIPTION:
	
		ScreenExitFunction is called before the Screen module is flushed.

	T0 DO:
		
		


*/

#include "Screen.h"

void PsychCleanupSCREENFillPoly(void);

PsychError ScreenExitFunction(void)
{
	//The timing array holds time values set by Screen internal diagnostics.  It allocates memory with 
	//malloc to hold the array of times.  This call frees the memory prior to unloading Screen
	ClearTimingArray();
  
	// Close all open onscreen windows and release their resources,
	// -> Perform exactly the same cleanup that Screen('CloseAll') would do.
	ScreenCloseAllWindows();
	CloseWindowBank();

	#if PSYCH_SYSTEM == PSYCH_LINUX
		// Linux specific hack. Close display connection(s) to X-Server(s). This is a bit unclean.
		PsychCleanupDisplayGlue();
	#endif

	#if PSYCH_SYSTEM == PSYCH_OSX
		// Shutdown connection to kernel level driver, if any exists:
		PsychOSShutdownPsychtoolboxKernelDriverInterface();
	#endif
	
	// Cleanup internal data structures of SCREEN('FillPoly');
	// This is defined in Common/Screen/SCREENFillPoly.c
	PsychCleanupSCREENFillPoly();

	// Release our internal locale object for character <-> unicode conversion:
	PsychSetUnicodeTextConversionLocale(NULL);

	return(PsychError_none);
}