#include <displayer.h>
Inheritance diagram for XDisplayer:


Public Member Functions | |
| XDisplayer (GtkWidget *drawingarea) | |
| X Displayer Constructor (retained for historical reasons - not used). | |
| ~XDisplayer () | |
| bool | usable () |
| Indicates if an object can be used to render images on the running system. | |
| DisplayerInput | format () |
| Indicates the format required by the abstract put method. | |
Protected Member Functions | |
| void | put (void *data) |
Private Attributes | |
| bool | canuse |
| int | depth |
| GtkWidget * | drawingarea |
| Display * | display |
| Window | window |
| GC | gc |
| XImage * | xImage |
| XGCValues | values |
| XShmSegmentInfo | shmInfo |
|
|
X Displayer Constructor (retained for historical reasons - not used).
Definition at line 384 of file displayer.cc. References canuse, depth, display, gc, Displayer::preferredHeight(), shmInfo, values, window, and xImage. 00384 : xImage( NULL ) 00385 { 00386 this->drawingarea = drawingarea; 00387 this->canuse = true; 00388 00389 cerr << ">> Trying X Displayer" << endl; 00390 #if 0 00391 00392 memset( &shmInfo, 0, sizeof( XShmSegmentInfo ) ); 00393 GdkWindowPrivate *priv = ( GdkWindowPrivate* ) drawingarea->window; 00394 window = priv->xwindow; 00395 display = priv->xdisplay; 00396 00397 gc = XCreateGC( display, window, 0, &values ); 00398 00399 Visual *v = ( ( GdkVisualPrivate * ) gdk_visual_get_system() ) ->xvisual; 00400 depth = DefaultDepth( display, DefaultScreen( display ) ); 00401 00402 xImage = ( XImage * ) XShmCreateImage( display, v, depth, ZPixmap, 00403 ( char * ) NULL, &shmInfo, 00404 this->preferredWidth(), 00405 this->preferredHeight() ); 00406 00407 shmInfo.shmid = shmget( IPC_PRIVATE, 00408 this->preferredWidth() * this->preferredHeight() * 4, 00409 IPC_CREAT | 0777 ); 00410 00411 shmInfo.shmaddr = ( char * ) shmat( shmInfo.shmid, 0, 0 ); 00412 xImage->data = shmInfo.shmaddr; 00413 shmInfo.readOnly = 0; 00414 if ( !XShmAttach( display, &shmInfo ) ) 00415 { 00416 this->canuse = false; 00417 fprintf( stderr, "Cannot attach shared memory\n" ); 00418 xImage = NULL; 00419 return ; 00420 } 00421 #endif 00422 }
|
|
|
Definition at line 424 of file displayer.cc. References display, shmInfo, and xImage. 00425 {
00426 #if 0
00427 if ( shmInfo.shmaddr != NULL )
00428 {
00429 XShmDetach( display, &shmInfo );
00430 shmdt( shmInfo.shmaddr );
00431 }
00432 if ( xImage != NULL )
00433 {
00434 XDestroyImage( xImage );
00435 }
00436 #endif
00437 }
|
|
|
Indicates the format required by the abstract put method.
Reimplemented from Displayer. Definition at line 444 of file displayer.cc. References DISPLAY_RGB. 00445 {
00446 return DISPLAY_RGB;
00447 }
|
|
|
Implements Displayer. Definition at line 449 of file displayer.cc. References display, gc, Displayer::preferredHeight(), window, and xImage. 00450 {
00451 unsigned char * image = ( unsigned char * ) data;
00452 memcpy( xImage->data, image,
00453 this->preferredWidth() * this->preferredHeight() * 4 );
00454 XShmPutImage( display, window, gc, xImage, 0, 0, 0, 0,
00455 this->preferredWidth(), this->preferredHeight(), false );
00456 }
|
|
|
Indicates if an object can be used to render images on the running system.
Reimplemented from Displayer. Definition at line 439 of file displayer.cc. References canuse. 00440 {
00441 return canuse;
00442 }
|
|
|
Definition at line 136 of file displayer.h. Referenced by usable(), and XDisplayer(). |
|
|
Definition at line 137 of file displayer.h. Referenced by XDisplayer(). |
|
|
Definition at line 139 of file displayer.h. Referenced by put(), XDisplayer(), and ~XDisplayer(). |
|
|
Definition at line 138 of file displayer.h. |
|
|
Definition at line 141 of file displayer.h. Referenced by put(), and XDisplayer(). |
|
|
Definition at line 144 of file displayer.h. Referenced by XDisplayer(), and ~XDisplayer(). |
|
|
Definition at line 143 of file displayer.h. Referenced by XDisplayer(). |
|
|
Definition at line 140 of file displayer.h. Referenced by put(), and XDisplayer(). |
|
|
Definition at line 142 of file displayer.h. Referenced by put(), XDisplayer(), and ~XDisplayer(). |
1.4.2