[PD-cvs] externals/gem2pdp pix_2pdp.cpp,1.3,1.4 pix_2pdp.h,1.1,1.2
IOhannes m zmölnig
zmoelnig at users.sourceforge.net
Tue Oct 11 17:34:37 CEST 2005
Update of /cvsroot/pure-data/externals/gem2pdp
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22211
Modified Files:
pix_2pdp.cpp pix_2pdp.h
Log Message:
accept the upside-down flag of Gem's image
Index: pix_2pdp.cpp
===================================================================
RCS file: /cvsroot/pure-data/externals/gem2pdp/pix_2pdp.cpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** pix_2pdp.cpp 11 Oct 2005 02:37:22 -0000 1.3
--- pix_2pdp.cpp 11 Oct 2005 15:34:35 -0000 1.4
***************
*** 29,32 ****
--- 29,33 ----
gem_ysize = 0;
gem_csize = 0;
+ gem_upsidedown = 0;
}
***************
*** 39,42 ****
--- 40,44 ----
gem_csize = image.csize;
gem_format = image.format;
+ gem_upsidedown = image.upsidedown;
}
***************
*** 58,62 ****
pY = m_data;
! pY2 = m_data + gem_xsize;
pV = m_data+psize;
pU = m_data+psize+(psize>>2);
--- 60,64 ----
pY = m_data;
! pY2 = m_data + gem_xsize;
pV = m_data+psize;
pU = m_data+psize+(psize>>2);
***************
*** 69,79 ****
case GL_BGR:
case GL_BGRA:
! for ( py=0; py<gem_ysize; py++)
{
for ( px=0; px<gem_xsize; px++)
{
// the way to access the pixels: (C=chRed, chBlue, ...)
// image[Y * xsize * csize + X * csize + C]
! helper = py*gem_xsize*gem_csize + px*gem_csize;
g1=gem_image[helper+chRed]; // R
g2=gem_image[helper+chGreen]; // G
--- 71,82 ----
case GL_BGR:
case GL_BGRA:
! for ( py=0; py<gem_ysize; py++)
{
+ const t_int py2=(gem_upsidedown)?py:(gem_ysize-py);
for ( px=0; px<gem_xsize; px++)
{
// the way to access the pixels: (C=chRed, chBlue, ...)
// image[Y * xsize * csize + X * csize + C]
! helper = py2*gem_xsize*gem_csize + px*gem_csize;
g1=gem_image[helper+chRed]; // R
g2=gem_image[helper+chGreen]; // G
***************
*** 98,101 ****
--- 101,109 ----
unsigned char *pixel = gem_image;
unsigned char *pixel2 = gem_image + gem_xsize * gem_csize;
+ const int row_length = gem_xsize* gem_csize;
+ if(0==gem_upsidedown){
+ pixel=gem_image+row_length * (gem_ysize-1);
+ pixel2=gem_image+row_length * (gem_ysize-2);
+ }
while (row--){
int col=cols;
***************
*** 114,120 ****
pU++; pV++;
}
! pixel += gem_xsize * gem_csize;
! pixel2 += gem_xsize * gem_csize;
! pY += gem_xsize; pY2 += gem_xsize;
}
pdp_packet_pass_if_valid(m_pdpoutlet, &m_packet0);
--- 122,133 ----
pU++; pV++;
}
! if(gem_upsidedown){
! pixel += row_length;
! pixel2 += row_length;
! } else {
! pixel -= 3*row_length;
! pixel2 -= 3*row_length;
! }
! pY += gem_xsize; pY2 += gem_xsize;
}
pdp_packet_pass_if_valid(m_pdpoutlet, &m_packet0);
***************
*** 125,131 ****
for ( py=0; py<gem_ysize; py++)
{
for ( px=0; px<gem_xsize; px++)
{
! *pY = gem_image[py*gem_xsize*gem_csize + px*gem_csize] << 7;
pY++;
if ( (px%2==0) && (py%2==0) )
--- 138,145 ----
for ( py=0; py<gem_ysize; py++)
{
+ const t_int py2=(gem_upsidedown)?py:(gem_ysize-py);
for ( px=0; px<gem_xsize; px++)
{
! *pY = gem_image[py2*gem_xsize*gem_csize + px*gem_csize] << 7;
pY++;
if ( (px%2==0) && (py%2==0) )
Index: pix_2pdp.h
===================================================================
RCS file: /cvsroot/pure-data/externals/gem2pdp/pix_2pdp.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** pix_2pdp.h 17 Jun 2005 13:45:22 -0000 1.1
--- pix_2pdp.h 11 Oct 2005 15:34:35 -0000 1.2
***************
*** 43,47 ****
int gem_csize;
int gem_format;
!
// pdp data
t_outlet *m_pdpoutlet;
--- 43,48 ----
int gem_csize;
int gem_format;
! int gem_upsidedown;
!
// pdp data
t_outlet *m_pdpoutlet;
More information about the Pd-cvs
mailing list