Ignore:
Timestamp:
Apr 8, 2009, 6:56:12 PM (15 years ago)
Author:
garnier
Message:

Improvments for print in pixmap. Not finish yet

Location:
trunk/source/visualization/OpenGL
Files:
11 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/visualization/OpenGL/History

    r973 r975  
    1 $Id: History,v 1.134 2009/04/08 15:15:07 lgarnier Exp $
     1$Id: History,v 1.135 2009/04/08 16:55:44 lgarnier Exp $
    22-------------------------------------------------------------------
    33
     
    23238th April 2009, Laurent Garnier
    2424 - G4OpenGLBitmapStore.hh : BugFix correction for windows (introduce 2nd February ?)
     25 - G4OpenGLViewer.hh : move methods in private
     26 - G4OpenGLXViewer.hh : Add debug methods
     27 - G4OpenGLImmediateXmViewer.cc, G4OpenGLStoredViewer.cc, G4OpenGLStoredXmViewer.cc,
     28   G4OpenGLStoredXViewer.cc, G4OpenGLViewer.cc   : Add debug messages
     29 - G4OpenGLStoredXmViewer.cc,G4OpenGLStoredXViewer.cc, G4OpenGLStoredWin32Viewer.cc :
     30   - Add a DrawDisplay list in case of KernelVisit=1 and  nothing new to display.
     31   - Add a flush at the end of the view.
     32 - G4OpenGLViewer.cc :
     33   - Improve the fix and resizing when X/Y size was even (lack of precision
     34     in a /2)
     35   - Set line/point size at a default size when printing.
     36 - G4OpenGLXmWindowsHandlingCallbacks.cc : print method rename in printEPS
     37 - G4OpenGLXViewer.cc : Lot of changes, try to debug it. Pb when printing in pixmap
     38   mode on some windows size
    2539
    26406th April 2009, Joseph Perl (opengl-V09-02-02)
  • trunk/source/visualization/OpenGL/include/G4OpenGLViewer.hh

    r946 r975  
    2525//
    2626//
    27 // $Id: G4OpenGLViewer.hh,v 1.29 2009/03/05 16:36:13 lgarnier Exp $
     27// $Id: G4OpenGLViewer.hh,v 1.30 2009/04/08 16:55:44 lgarnier Exp $
    2828// GEANT4 tag $Name:  $
    2929//
  • trunk/source/visualization/OpenGL/include/G4OpenGLXViewer.hh

    r950 r975  
    2525//
    2626//
    27 // $Id: G4OpenGLXViewer.hh,v 1.30 2009/02/04 16:48:41 lgarnier Exp $
     27// $Id: G4OpenGLXViewer.hh,v 1.31 2009/04/08 16:55:44 lgarnier Exp $
    2828// GEANT4 tag $Name:  $
    2929//
     
    8080  Colormap                          cmap;
    8181  XSetWindowAttributes              swa;
    82   GLXDrawable                       fGLXWin;
     82  GLXDrawable                       win;
    8383  GLXContext                        cx;
    8484  XEvent                            event;
  • trunk/source/visualization/OpenGL/src/G4OpenGLImmediateXmViewer.cc

    r948 r975  
    2525//
    2626//
    27 // $Id: G4OpenGLImmediateXmViewer.cc,v 1.20 2009/02/04 16:48:41 lgarnier Exp $
     27// $Id: G4OpenGLImmediateXmViewer.cc,v 1.21 2009/04/08 16:55:44 lgarnier Exp $
    2828// GEANT4 tag $Name:  $
    2929//
     
    9696
    9797  //Make sure current viewer is attached and clean...
    98   glXMakeCurrent (dpy, fGLXWin, cx);
     98  glXMakeCurrent (dpy, win, cx);
    9999
    100100  if(style!=G4ViewParameters::hlr &&
  • trunk/source/visualization/OpenGL/src/G4OpenGLStoredViewer.cc

    r946 r975  
    2525//
    2626//
    27 // $Id: G4OpenGLStoredViewer.cc,v 1.25 2009/01/19 16:53:42 lgarnier Exp $
     27// $Id: G4OpenGLStoredViewer.cc,v 1.26 2009/04/08 16:55:44 lgarnier Exp $
    2828// GEANT4 tag $Name:  $
    2929//
     
    134134  size_t nPasses = cutawayUnion? cutaways.size(): 1;
    135135#ifdef G4DEBUG_VIS_OGL
    136   printf("G4OpenGLStoredViewer::DrawDisplayLists %d",nPasses);
     136  printf("G4OpenGLStoredViewer::DrawDisplayLists");
    137137#endif
    138138  for (size_t i = 0; i < nPasses; ++i) {
  • trunk/source/visualization/OpenGL/src/G4OpenGLStoredWin32Viewer.cc

    r955 r975  
    2525//
    2626//
    27 // $Id: G4OpenGLStoredWin32Viewer.cc,v 1.20 2009/01/13 09:47:05 lgarnier Exp $
     27// $Id: G4OpenGLStoredWin32Viewer.cc,v 1.21 2009/04/08 16:55:44 lgarnier Exp $
    2828// GEANT4 tag $Name:  $
    2929//
  • trunk/source/visualization/OpenGL/src/G4OpenGLStoredXViewer.cc

    r955 r975  
    2525//
    2626//
    27 // $Id: G4OpenGLStoredXViewer.cc,v 1.24 2009/01/19 16:53:42 lgarnier Exp $
     27// $Id: G4OpenGLStoredXViewer.cc,v 1.25 2009/04/08 16:55:44 lgarnier Exp $
    2828// GEANT4 tag $Name:  $
    2929//
     
    8484#endif
    8585  //Make sure current viewer is attached and clean...
    86   glXMakeCurrent (dpy, fGLXWin, cx);
     86  glXMakeCurrent (dpy, win, cx);
    8787
    8888  G4ViewParameters::DrawingStyle style = GetViewParameters().GetDrawingStyle();
     
    154154  GLint renderMode;
    155155  glGetIntegerv(GL_RENDER_MODE, &renderMode);
    156   if (renderMode == GL_RENDER) glXSwapBuffers (dpy, fGLXWin); 
     156  if (renderMode == GL_RENDER) glXSwapBuffers (dpy, win); 
    157157}
    158158
  • trunk/source/visualization/OpenGL/src/G4OpenGLStoredXmViewer.cc

    r955 r975  
    2525//
    2626//
    27 // $Id: G4OpenGLStoredXmViewer.cc,v 1.24 2009/01/19 16:53:42 lgarnier Exp $
     27// $Id: G4OpenGLStoredXmViewer.cc,v 1.25 2009/04/08 16:55:44 lgarnier Exp $
    2828// GEANT4 tag $Name:  $
    2929//
     
    8383void G4OpenGLStoredXmViewer::DrawView () {
    8484#ifdef G4DEBUG_VIS_OGL
    85   printf("G4OpenGLStoredXmViewer::DrawView  context:%d old winGL:%d \n",cx,fGLXWin);
     85  printf("G4OpenGLStoredXmViewer::DrawView \n");
    8686#endif
    8787
    8888  //Make sure current viewer is attached and clean...
    89   glXMakeCurrent (dpy, fGLXWin, cx);
     89  glXMakeCurrent (dpy, win, cx);
    9090
    9191  G4ViewParameters::DrawingStyle style = GetViewParameters().GetDrawingStyle();
     
    159159  GLint renderMode;
    160160  glGetIntegerv(GL_RENDER_MODE, &renderMode);
    161   if (renderMode == GL_RENDER) glXSwapBuffers (dpy, fGLXWin); 
     161  if (renderMode == GL_RENDER) glXSwapBuffers (dpy, win); 
    162162}
    163163
  • trunk/source/visualization/OpenGL/src/G4OpenGLViewer.cc

    r959 r975  
    2525//
    2626//
    27 // $Id: G4OpenGLViewer.cc,v 1.50 2009/03/05 16:36:13 lgarnier Exp $
     27// $Id: G4OpenGLViewer.cc,v 1.53 2009/04/08 16:55:44 lgarnier Exp $
    2828// GEANT4 tag $Name:  $
    2929//
     
    616616  if (!fGL2PSAction) return false;
    617617
    618 
    619618  fGL2PSAction->setFileName(fPrintFilename.c_str());
    620619  // try to resize
     
    624623  fWinSize_x = width;
    625624  fWinSize_y = height;
    626 
    627625  ResizeGLView();
    628626  if (fGL2PSAction->enableFileWriting()) {
  • trunk/source/visualization/OpenGL/src/G4OpenGLXViewer.cc

    r959 r975  
    2525//
    2626//
    27 // $Id: G4OpenGLXViewer.cc,v 1.51 2009/03/05 16:36:13 lgarnier Exp $
     27// $Id: G4OpenGLXViewer.cc,v 1.52 2009/04/08 16:55:44 lgarnier Exp $
    2828// GEANT4 tag $Name:  $
    2929//
     
    9292
    9393void G4OpenGLXViewer::SetView () {
    94   glXMakeCurrent (dpy, fGLXWin, cx);
     94  glXMakeCurrent (dpy, win, cx);
    9595  G4OpenGLViewer::SetView (); 
    9696}
     
    259259  class_hints -> res_class = NewString("G4OpenGL");
    260260
    261    fGLXWin = XCreateWindow (dpy, XRootWindow (dpy, vi -> screen), x_origin,
     261   win = XCreateWindow (dpy, XRootWindow (dpy, vi -> screen), x_origin,
    262262                        y_origin, fWinSize_x, fWinSize_y, 0, vi -> depth,
    263263                        InputOutput, vi -> visual, 
     
    266266                        &swa);
    267267 
    268    XSetWMProperties (dpy, fGLXWin, &windowName, &iconName, 0, 0,
     268   XSetWMProperties (dpy, win, &windowName, &iconName, 0, 0,
    269269                     size_hints, wm_hints, class_hints);
    270270 
    271271// request X to Draw window on screen.
    272   XMapWindow (dpy, fGLXWin);
     272  XMapWindow (dpy, win);
    273273
    274274// Wait for window to appear (wait for an "expose" event).
    275   XIfEvent (dpy, &event, G4OpenGLXViewerWaitForNotify, (char*) fGLXWin);
     275  XIfEvent (dpy, &event, G4OpenGLXViewerWaitForNotify, (char*) win);
    276276
    277277// connect the context to a window
    278   Bool success = glXMakeCurrent (dpy, fGLXWin, cx);
     278  Bool success = glXMakeCurrent (dpy, win, cx);
    279279  if (!success) {
    280280    fViewId = -1;  // This flags an error.
     
    405405    glXMakeCurrent (dpy, None, NULL);
    406406    glXDestroyContext (dpy, cx);
    407     if (fGLXWin) XDestroyWindow (dpy, fGLXWin); // ...if already deleted in
     407    if (win) XDestroyWindow (dpy, win); // ...if already deleted in
    408408    // sub-class G4OpenGLXmViewer.
    409409    XFlush (dpy);
     
    451451
    452452#ifdef G4DEBUG_VIS_OGL
    453     printf("G4OpenGLXViewer::print Create pixmap old context:%d new context %d old winGL:%d  Size :%d %d\n",cx,pcx,fGLXWin,fWinSize_x, fWinSize_y);
     453    printf("G4OpenGLXViewer::print Create pixmap  Size :%d %d\n",fWinSize_x, fWinSize_y);
    454454#endif
    455455    cx=pcx;
     
    478478
    479479    GLXDrawable tmp_win;
    480     tmp_win=fGLXWin;
    481     fGLXWin=glxpmap;
    482    
    483     int winX=fWinSize_x;
    484     int winY=fWinSize_y;
     480    tmp_win=win;
     481    win=glxpmap;
     482   
     483//     int winX=fWinSize_x;
     484//     int winY=fWinSize_y;
    485485
    486486    //#define CHECK_MULTIPLE_PRINT 1
     
    504504
    505505#ifdef G4DEBUG_VIS_OGL
    506     printf("G4OpenGLXViewer::print Call DrawView context:%d old winGL:%d \n",cx,fGLXWin);
     506    printf("G4OpenGLXViewer::print Call DrawView \n");
    507507#endif
    508508
     
    537537    fWinSize_x = winX;
    538538#endif
    539     fGLXWin=tmp_win;
     539    win=tmp_win;
    540540    cx=tmp_cx;
    541541   
    542542//     bool er2 = glXMakeCurrent (dpy,
    543 //                  fGLXWin,
     543//                  win,
    544544//                  cx);
    545545#ifdef G4DEBUG_VIS_OGL
    546     printf("G4OpenGLXViewer::print Restored context:%d old winGL:%d \n",cx,fGLXWin);
     546    printf("G4OpenGLXViewer::print Restored \n");
    547547#endif
    548548    //    printf("Error 1:%d 2:%d\n",er1,er2);
     
    593593
    594594 
    595 #ifdef G4DEBUG_VIS_OGL
    596   printf("------%d------\n",tmp_cx);
    597 #endif
    598595  return glXCreateContext (dpy,
    599596                           pvi,
     
    623620  if (lineBuffer == NULL)
    624621    return false;
    625   for (int y = 0; y<lineSize; y++) {
     622  for (unsigned int y = 0; y<lineSize; y++) {
    626623    lineBuffer[y] = 0;
    627624  }
     
    662659
    663660
    664   for (int i=0;i<height;i++) {
     661  for (unsigned int i=0;i<height;i++) {
    665662    glReadPixels (0, i, (GLsizei)width, 1, format, GL_UNSIGNED_BYTE, (GLvoid*) lineBuffer);
    666663    glXWaitGL (); //Wait for effects of all previous OpenGL commands to
    667664    //    printf("\n%d ",i);
    668     for (int j=0;j<lineSize;j++) {
     665    for (unsigned int j=0;j<lineSize;j++) {
    669666      buffer[j+i*lineSize] = lineBuffer[j];
    670667      //      printf("%d ",buffer[j]);
     
    699696  GLubyte* pixels;
    700697  GLubyte* curpix;
    701   int components, pos, i;
     698  int components;
    702699
    703700  GLenum format;
     
    777774         
    778775  curpix = (GLubyte*) pixels;
    779   pos = 0;
    780   for (i = width*height*components; i>0; i--) {
     776  unsigned int pos = 0;
     777  for (unsigned int i = width*height*components; i>0; i--) {
    781778    fprintf (fp, "%02hx ", *(curpix++));
    782779    if (++pos >= width) {
  • trunk/source/visualization/OpenGL/src/G4OpenGLXmWindowHandlingCallbacks.cc

    r946 r975  
    2525//
    2626//
    27 // $Id: G4OpenGLXmWindowHandlingCallbacks.cc,v 1.9 2009/02/25 15:15:50 lgarnier Exp $
     27// $Id: G4OpenGLXmWindowHandlingCallbacks.cc,v 1.10 2009/04/08 16:55:44 lgarnier Exp $
    2828// GEANT4 tag $Name:  $
    2929//
Note: See TracChangeset for help on using the changeset viewer.