Cloned library of VTK-5.0.0 with extra build files for internal package management.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

238 lines
6.9 KiB

2 years ago
/*=========================================================================
Program: Visualization Toolkit
Module: $RCSfile: vtkXMesaRenderWindow.h,v $
Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
All rights reserved.
See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
This software is distributed WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the above copyright notice for more information.
=========================================================================*/
// .NAME vtkXMesaRenderWindow - Mesa rendering window
// .SECTION Description
// vtkXMesaRenderWindow is a concrete implementation of the abstract class
// vtkRenderWindow. vtkOpenGLRenderer interfaces to the OpenGL graphics
// library. Application programmers should normally use vtkRenderWindow
// instead of the OpenGL specific version.
#ifndef __vtkXMesaRenderWindow_h
#define __vtkXMesaRenderWindow_h
#include "vtkMesaRenderWindow.h"
#include <X11/Xlib.h> // Needed for X types used in the public interface
#include <X11/Xutil.h> // Needed for X types used in the public interface
class vtkIdList;
class vtkXMesaRenderWindowInternal;
class VTK_RENDERING_EXPORT vtkXMesaRenderWindow : public vtkMesaRenderWindow
{
public:
static vtkXMesaRenderWindow *New();
vtkTypeRevisionMacro(vtkXMesaRenderWindow,vtkMesaRenderWindow);
void PrintSelf(ostream& os, vtkIndent indent);
// Description:
// Begin the rendering process.
virtual void Start(void);
// Description:
// End the rendering process and display the image.
virtual void Frame(void);
// Description:
// Initialize the window for rendering.
virtual void WindowInitialize(void);
// Description:
// Initialize the rendering window.
virtual void Initialize(void);
// Description:
// Shut-down all resources initialized by Initialize()
virtual void Finalize(void);
// Description:
// Change the window to fill the entire screen.
virtual void SetFullScreen(int);
// Description:
// Resize the window.
virtual void WindowRemap(void);
// Description:
// Set the preferred window size to full screen.
virtual void PrefFullScreen(void);
// Description:
// Specify the size of the rendering window.
virtual void SetSize(int,int);
virtual void SetSize(int a[2]) {this->SetSize(a[0], a[1]);};
// Description:
// Get the X properties of an ideal rendering window.
virtual Colormap GetDesiredColormap();
virtual Visual *GetDesiredVisual();
virtual XVisualInfo *GetDesiredVisualInfo();
virtual int GetDesiredDepth();
// Description:
// Prescribe that the window be created in a stereo-capable mode. This
// method must be called before the window is realized. This method
// overrides the superclass method since this class can actually check
// whether the window has been realized yet.
virtual void SetStereoCapableWindow(int capable);
// Description:
// Make this window the current OpenGL context.
void MakeCurrent();
// Description:
// If called, allow MakeCurrent() to skip cache-check when called.
// MakeCurrent() reverts to original behavior of cache-checking
// on the next render.
void SetForceMakeCurrent();
// Description:
// Get report of capabilities for the render window
const char *ReportCapabilities();
// Description:
// Does this render window support OpenGL? 0-false, 1-true
int SupportsOpenGL();
// Description:
// Is this render window using hardware acceleration? 0-false, 1-true
int IsDirect();
// Description:
// Xwindow get set functions
virtual void *GetGenericDisplayId() {return (void *)this->GetDisplayId();};
virtual void *GetGenericWindowId();
virtual void *GetGenericParentId() {return (void *)this->ParentId;};
virtual void *GetGenericContext();
virtual void *GetGenericDrawable() {return (void *)this->WindowId;};
// Description:
// Get the size of the screen in pixels
virtual int *GetScreenSize();
// Description:
// Get the position in screen coordinates (pixels) of the window.
virtual int *GetPosition();
// Description:
// Get this RenderWindow's X display id.
Display *GetDisplayId();
// Description:
// Set the X display id for this RenderWindow to use to a pre-existing
// X display id.
void SetDisplayId(Display *);
void SetDisplayId(void *);
// Description:
// Get this RenderWindow's parent X window id.
Window GetParentId();
// Description:
// Sets the parent of the window that WILL BE created.
void SetParentId(Window);
void SetParentId(void *);
// Description:
// Get this RenderWindow's X window id.
Window GetWindowId();
// Description:
// Set this RenderWindow's X window id to a pre-existing window.
void SetWindowId(Window);
void SetWindowId(void *);
// Description:
// Specify the X window id to use if a WindowRemap is done.
void SetNextWindowId(Window);
void SetNextWindowId(void *);
void SetWindowName(const char *);
// Description:
// Move the window to a new position on the display.
void SetPosition(int,int);
void SetPosition(int a[2]) {this->SetPosition(a[0], a[1]);};
// Description:
// Hide or Show the mouse cursor, it is nice to be able to hide the
// default cursor if you want VTK to display a 3D cursor instead.
void HideCursor();
void ShowCursor();
// Description:
// Change the shape of the cursor
virtual void SetCurrentCursor(int);
// Description:
// Get the properties available at runtime that would result in
// the best Xwindow for 3D rendering.
virtual int GetEventPending();
// Description:
// Set this RenderWindow's X window id to a pre-existing window.
void SetWindowInfo(char *info);
void SetNextWindowInfo(char *);
// Description:
// Sets the X window id of the window that WILL BE created.
void SetParentInfo(char *info);
// Description:
// This computes the size of the render window
// before calling the supper classes render
void Render();
// Description:
// Render without displaying the window.
void SetOffScreenRendering(int i);
protected:
vtkXMesaRenderWindow();
~vtkXMesaRenderWindow();
vtkXMesaRenderWindowInternal *Internal;
Window ParentId;
Window WindowId;
Window NextWindowId;
Display *DisplayId;
Colormap ColorMap;
int OwnWindow;
int OwnDisplay;
int ScreenSize[2];
int CursorHidden;
int ForceMakeCurrent;
int UsingHardware;
char *Capabilities;
// we must keep track of the cursors we are using
Cursor XCArrow;
Cursor XCSizeAll;
Cursor XCSizeNS;
Cursor XCSizeWE;
Cursor XCSizeNE;
Cursor XCSizeNW;
Cursor XCSizeSE;
Cursor XCSizeSW;
private:
vtkXMesaRenderWindow(const vtkXMesaRenderWindow&); // Not implemented.
void operator=(const vtkXMesaRenderWindow&); // Not implemented.
};
#endif