File: glmMovie.m

package info (click to toggle)
psychtoolbox-3 3.0.14.20170103%2Bgit6-g605ff5c.dfsg1-1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 103,044 kB
  • ctags: 69,483
  • sloc: ansic: 167,371; cpp: 11,232; objc: 4,708; sh: 1,875; python: 383; php: 344; makefile: 207; java: 113
file content (54 lines) | stat: -rw-r--r-- 939 bytes parent folder | download | duplicates (4)
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
function glmMovie( imlist, poslist, vbllist, varargin )

% glmMovie  Play a movie
%
% usage:  glmMovie( imlist, poslist, vbllist, packimage1, ... )

% 01-Jan-2006 -- created (RFM)

% ---protected---

if nargin<4,
	error('invalid number of arguments');
end
if nargin<max(imlist+3),
	error('image indices in ''imlist'' exceed number of images');
end

% get constants
global GL
xy=glmGetScreenInfo;

% clear screen
glClear;

% set read and draw buffers
glReadBuffer(GL.FRONT);
glDrawBuffer(GL.BACK);

% step through images
for i=1:numel(imlist),

	% draw image
	glWindowPos2dv(poslist(:,i));
	glmPutPixels(varargin{imlist(i)});

	% flush and pause
	if vbllist(i)>0,
		glmSwapBuffers;
		if vbllist(i)>1,
			% copy front buffer to back buffer
			glWindowPos2dv([ 0 0 ]);
			glCopyPixels(0,0,xy(1),xy(2),GL.COLOR);
			% flush buffer
			for j=2:vbllist(i),
				glmSwapBuffers;
			end
		end
		% prepare for next frame
		glClear;
	end

end

return