File: glmGetPixels.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 (38 lines) | stat: -rw-r--r-- 898 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
function pixels = glmGetPixels( rect )

% glmGetPixels  Read packed pixels from the screen
%
% usage:  pixels = glmGetPixels( rect )

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

% ---allocate---
% ---protected---

if nargin~=1,
    error('invalid number of arguments');
end

% set parameters
global GL
format=GL.RGB;
type=GL.UNSIGNED_BYTE;
width=rect(3)-rect(1);
height=rect(4)-rect)2);

% allocate return argument
padn=mod( 4-mod(3*width,4) , 4 );
n=(width+padn)*height+8;
pixels=uint8(zeros(n,1));

% call glReadPixels
moglcore( 'glReadPixels', rect(1), rect(2), width, height, ...
    format, type, pixels );

% encode format, type, width, and height at end of matrix
pixels(end-7:end)=[ floor(format/256) mod(format,256) ...
                    floor(type/256)   mod(type,256)   ...
                    floor(width/256)  mod(width,256)  ...
                    floor(height/256) mod(height,256) ];

return