File: glmGetPixels.m

package info (click to toggle)
psychtoolbox-3 3.0.15.20190207.dfsg1-1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 101,848 kB
  • sloc: ansic: 174,133; cpp: 11,232; objc: 4,832; sh: 1,874; python: 1,047; php: 384; makefile: 189; 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