Changeset 675 for trunk/geant4/visualization
- Timestamp:
- Jan 10, 2008, 2:51:15 PM (17 years ago)
- Location:
- trunk/geant4/visualization/OpenGL/src
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/geant4/visualization/OpenGL/src/G4OpenGLQtViewer.cc
r673 r675 1355 1355 glRenderMode (GL_FEEDBACK); 1356 1356 1357 glViewport (0, 0, aWidth,aHeight); 1357 int side = qMin(aWidth, aHeight); 1358 glViewport((aWidth - side) / 2, (aHeight - side) / 2, side, side); 1358 1359 DrawView(); 1359 1360 -
trunk/geant4/visualization/OpenGL/src/G4OpenGLStoredQtViewer.cc
r673 r675 52 52 G4OpenGLQtViewer (sceneHandler), 53 53 G4OpenGLStoredViewer (sceneHandler), 54 QGLWidget( )// FIXME : gerer le pb du parent !54 QGLWidget(QGLFormat(QGL::SampleBuffers)) // FIXME : gerer le pb du parent ! 55 55 { 56 56 zoomAction = false; … … 86 86 printf("G4OpenGLStoredQtViewer::Initialise () 3\n"); 87 87 #endif 88 CreateFontLists (); // FIXME Does nothing!88 // CreateFontLists (); // FIXME Does nothing! 89 89 90 90 #ifdef GEANT4_QT_DEBUG … … 101 101 ShowView(); 102 102 FinishView(); 103 #ifdef GEANT4_QT_DEBUG 104 printf("G4OpenGLStoredQtViewer::Initialise () 4\n"); 105 #endif 103 106 } 104 107 … … 128 131 129 132 void G4OpenGLStoredQtViewer::DrawView () { 130 131 133 #ifdef GEANT4_QT_DEBUG 132 134 printf("G4OpenGLStoredQtViewer::DrawView %d %d VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV\n",WinSize_x, WinSize_y); … … 257 259 { 258 260 if (zoomAction) { 261 // glEnable (GL_DEPTH_TEST); 262 // glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); 263 264 setupViewport(width(),height()); 265 SetView(); 266 ClearView (); //ok, put the background correct 267 259 268 QPainter painter; 260 269 painter.begin(this); 270 // painter.setCompositionMode(QPainter::CompositionMode_DestinationOver); 271 // painter.setCompositionMode(QPainter::CompositionMode_SourceOver); // diagonale en pointillé 272 // painter.setCompositionMode(QPainter::CompositionMode_DestinationOver); // blanc 273 // painter.setCompositionMode(QPainter::CompositionMode_Clear);// diagonale noire 274 // painter.setCompositionMode(QPainter::CompositionMode_Source); // diagonale en pointillé 275 // painter.setCompositionMode(QPainter::CompositionMode_Destination); // blanc 276 // painter.setCompositionMode(QPainter::CompositionMode_SourceIn); // blanc ? 277 // painter.setCompositionMode(QPainter::CompositionMode_DestinationIn); // blanc 278 // painter.setCompositionMode(QPainter::CompositionMode_SourceOut); // digonale noire 279 // painter.setCompositionMode(QPainter::CompositionMode_DestinationOut); // diagonale noire 280 // painter.setCompositionMode(QPainter::CompositionMode_SourceAtop); // diagonale noire 281 // painter.setCompositionMode(QPainter::CompositionMode_DestinationAtop); // blanc 282 // painter.setCompositionMode(QPainter::CompositionMode_Xor); // diagonale noire 261 283 // painter.setRenderHint(QPainter::Antialiasing); 262 QColor bg = QColor(glBufferImage.pixel(0,0)); 263 printf("%d+%d+%d+%d %d+%d+%d+%d",bg.red(),bg.green(),bg.blue(),bg.alpha(),qAlpha(glBufferImage.pixel(0,0)),qRed(glBufferImage.pixel(0,0)),qGreen(glBufferImage.pixel(0,0)),qBlue(glBufferImage.pixel(0,0))); 264 painter.setBackground(QBrush(bg)); 265 // painter.drawRect(10,10,50,80); 266 // QImage test = grabFrameBuffer().copy(); 267 // painter.drawImage(0, 0,test); 284 // painter.setBackgroundMode(Qt::OpaqueMode); 285 painter.drawImage(0, 0, glBufferImage); 286 287 // painter.setRenderHint(QPainter::Antialiasing); 288 // QColor bg = QColor(glBufferImage.pixel(0,0)); 289 // printf("%d+%d+%d+%d %d+%d+%d+%d",bg.red(),bg.green(),bg.blue(),bg.alpha(),qAlpha(glBufferImage.pixel(0,0)),qRed(glBufferImage.pixel(0,0)),qGreen(glBufferImage.pixel(0,0)),qBlue(glBufferImage.pixel(0,0))); 290 // painter.setBackground(QBrush(bg)); 291 // // painter.drawRect(10,10,50,80); 292 // // QImage test = grabFrameBuffer().copy(); 293 // // painter.drawImage(0, 0,test); 268 294 for (int ay=0;ay<glBufferImage.height();ay++) { 269 295 for (int ax=0;ax<glBufferImage.width();ax++) { 270 if(QColor(glBufferImage.pixel(ax,ay)) != bg) {271 //painter.setPen(QColor(glBufferImage.pixel(ax,ay)));272 // painter.drawPoint(ax,glBufferImage.height()-ay);273 } else {274 printf("o");275 }296 // if(QColor(glBufferImage.pixel(ax,ay)) != bg) { 297 //. painter.setPen(QColor(glBufferImage.pixel(ax,ay))); 298 //. painter.drawPoint(ax,ay); 299 // } else { 300 // printf("o"); 301 // } 276 302 // printf("%d+%d+%d+%d ",QColor(glBufferImage.pixel(ax,ay)).red(),QColor(glBufferImage.pixel(ax,ay)).green(),QColor(glBufferImage.pixel(ax,ay)).blue(),QColor(glBufferImage.pixel(ax,ay)).alpha()); 277 // if (glBufferImage.pixel(ax,ay) == 255) {278 // test.setPixel(ax,ay,1);279 // } else {280 // test.setPixel(ax,ay,0);281 // }303 // if (glBufferImage.pixel(ax,ay) == 255) { 304 // test.setPixel(ax,ay,1); 305 // } else { 306 // test.setPixel(ax,ay,0); 307 // } 282 308 } 283 309 // printf("\n"); 284 310 } 285 // for (int ay=0;ay<test.height();ay++) {286 // for (int ax=0;ax<test.width();ax++) {287 // if (test.pixel(ax,ay) == 1) {288 // printf(".");289 // } else if (!test.pixel(ax,ay)) {290 // printf("X");291 // } else {292 // printf("%d",test.pixel(ax,ay));293 // }294 // }295 // printf("\n");296 // }311 // // for (int ay=0;ay<test.height();ay++) { 312 // // for (int ax=0;ax<test.width();ax++) { 313 // // if (test.pixel(ax,ay) == 1) { 314 // // printf("."); 315 // // } else if (!test.pixel(ax,ay)) { 316 // // printf("X"); 317 // // } else { 318 // // printf("%d",test.pixel(ax,ay)); 319 // // } 320 // // } 321 // // printf("\n"); 322 // // } 297 323 298 324 // painter.drawImage(0, 0, glBufferImage); 299 325 // painter.drawImage(0, 0, test,0,0,-1,-1,Qt::ColorOnly); 300 326 301 printf("paint event zoom \n"); 302 // painter.drawRect(beginZoom.x(),beginZoom.y(),endZoom.x()-beginZoom.x(),endZoom.y()-beginZoom.y()); 327 #ifdef GEANT4_QT_DEBUG 328 printf("G4OpenGLStoredQtViewer::paintGL ============ zoom event\n"); 329 #endif 330 painter.setBrush(Qt::NoBrush); 331 painter.setPen(Qt::red); 332 painter.setPen(Qt::DashLine); 333 painter.drawRect(beginZoom.x(),beginZoom.y(),endZoom.x()-beginZoom.x(),endZoom.y()-beginZoom.y()); 303 334 painter.end(); 304 335 } else { … … 346 377 hasToRepaint =false; 347 378 379 } 348 380 #ifdef GEANT4_QT_DEBUG 349 381 printf("G4OpenGLStoredQtViewer::paintGL ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ %d ready %d\n",nbPaint,readyToPaint); 350 382 #endif 351 }352 383 } 353 384 … … 368 399 setMouseTracking(true); 369 400 zoomAction=true; 370 makeCurrent();371 glBufferImage = QImage( width(), height(), QImage::Format_ARGB32_Premultiplied );372 glReadPixels( 0, 0, width(), height(), GL_RGBA, GL_UNSIGNED_BYTE, glBufferImage.bits() );373 // glBufferImage = grabFrameBuffer(false).convertToFormat(QImage::Format_RGB16); //QImage::Format_ARGB32_Premultiplied401 // makeCurrent(); 402 // glBufferImage = QImage( width(), height(), QImage::Format_ARGB32_Premultiplied ); 403 // glReadPixels( 0, 0, width(), height(), GL_RGBA, GL_UNSIGNED_BYTE, glBufferImage.bits() ); 404 glBufferImage = grabFrameBuffer().convertToFormat(QImage::Format_ARGB32_Premultiplied); 374 405 375 406 #ifdef GEANT4_QT_DEBUG
Note: See TracChangeset
for help on using the changeset viewer.