summaryrefslogtreecommitdiff
path: root/2004/i/nono/src/ovision/comm.cc
diff options
context:
space:
mode:
Diffstat (limited to '2004/i/nono/src/ovision/comm.cc')
-rw-r--r--2004/i/nono/src/ovision/comm.cc33
1 files changed, 23 insertions, 10 deletions
diff --git a/2004/i/nono/src/ovision/comm.cc b/2004/i/nono/src/ovision/comm.cc
index 526b703..d81cf9c 100644
--- a/2004/i/nono/src/ovision/comm.cc
+++ b/2004/i/nono/src/ovision/comm.cc
@@ -47,8 +47,10 @@ Comm::Comm(char *filename)
// Ouverture de l'image pilote et stockage
img.LoadRGB(filename, 0, 360, 296);
+ imgLeft[0] = new unsigned char[img.nbPixels*3];
+ memcpy(imgLeft[0], img.tabData, sizeof(char) * img.nbPixels * 3);
//if (img.yuv) img.RGBtoYUV();
- tex[0] = LoadImage(img.width, img.height, img.tabData, tex[0]);
+ tex[0] = LoadImage(img.width, img.height, imgLeft[0], tex[0]);
// Conversion en YUV et stockage
img.LoadRGB(filename, 0, 360, 296);
@@ -72,6 +74,9 @@ Comm::Comm(char *filename)
// Affichage de l'image pilote en RGB et YUV
tex[1] = LoadImage(img.width, img.height, data[0], tex[1]);
tex[4] = LoadImage(img.width, img.height, data[1], tex[4]);
+
+ yuvSwitch = 0;
+ imgLeft[1] = NULL;
}
@@ -300,7 +305,7 @@ Comm::ExecuteUiCmds(char *buffer)
// Copie du nom de l'image courante
strcpy(fname, filename);
-
+
// Ouverture de l'image pilote et stockage
img.LoadRGB(filename, 0, 360, 296);
@@ -311,7 +316,10 @@ Comm::ExecuteUiCmds(char *buffer)
data[i] = new unsigned char[img.nbPixels*3];
}
- tex[0] = LoadImage(img.width, img.height, img.tabData, tex[0]);
+ delete[] imgLeft[0];
+ imgLeft[0] = new unsigned char[img.nbPixels*3];
+ memcpy(imgLeft[0], img.tabData, sizeof(char)*img.nbPixels*3);
+ tex[0] = LoadImage(img.width, img.height, imgLeft[0], tex[0]);
// Conversion en YUV et stockage
img.RGBtoYUV();
@@ -382,14 +390,19 @@ Comm::ExecuteUiCmds(char *buffer)
break;
case 'y':
- img.yuv = !img.yuv;
-
- // Conversion en YUV et stockage
- img.ReadRaw(fname);
- if (!img.yuv) img.YUVtoRGB();
- tex[3] = LoadImage(img.width, img.height, img.tabData, tex[3]);
- img.ReadRaw(fname);
+ yuvSwitch++;
+
+ cout << img.yuv << endl;
+ // Conversion en YUV et stockage
+ img.LoadRGB(fname, 0, 360, 296);
+ if (yuvSwitch%3 == 1) img.YUVtoRGB();
+ else if (yuvSwitch%3 == 2) img.RGBtoYUV();
+ delete[] imgLeft[1];
+ imgLeft[1] = new unsigned char[img.nbPixels*3];
+ memcpy(imgLeft[1], img.tabData, sizeof(char)*img.nbPixels*3);
+ tex[3] = LoadImage(img.width, img.height, imgLeft[1], tex[3]);
+ img.LoadRGB(fname, 0, 360, 296);
break;
case 'z':