41 #ifndef vtkRenderWindow_h
42 #define vtkRenderWindow_h
44 #include "vtkRenderingCoreModule.h"
59 #define VTK_STEREO_CRYSTAL_EYES 1
60 #define VTK_STEREO_RED_BLUE 2
61 #define VTK_STEREO_INTERLACED 3
62 #define VTK_STEREO_LEFT 4
63 #define VTK_STEREO_RIGHT 5
64 #define VTK_STEREO_DRESDEN 6
65 #define VTK_STEREO_ANAGLYPH 7
66 #define VTK_STEREO_CHECKERBOARD 8
67 #define VTK_STEREO_SPLITVIEWPORT_HORIZONTAL 9
68 #define VTK_STEREO_FAKE 10
70 #define VTK_CURSOR_DEFAULT 0
71 #define VTK_CURSOR_ARROW 1
72 #define VTK_CURSOR_SIZENE 2
73 #define VTK_CURSOR_SIZENW 3
74 #define VTK_CURSOR_SIZESW 4
75 #define VTK_CURSOR_SIZESE 5
76 #define VTK_CURSOR_SIZENS 6
77 #define VTK_CURSOR_SIZEWE 7
78 #define VTK_CURSOR_SIZEALL 8
79 #define VTK_CURSOR_HAND 9
80 #define VTK_CURSOR_CROSSHAIR 10
113 static const char *GetRenderLibrary();
118 virtual const char *GetRenderingBackend();
143 vtkGetMacro(CapturingGL2PSSpecialProps,
int);
150 void Render() VTK_OVERRIDE;
155 virtual
void Start() = 0;
160 virtual
void Finalize() = 0;
166 virtual
void Frame() = 0;
172 virtual
void WaitForCompletion()=0;
178 virtual
void CopyResultFrame();
194 virtual
void HideCursor() = 0;
195 virtual
void ShowCursor() = 0;
196 virtual
void SetCursorPosition(
int ,
int ) {}
204 vtkGetMacro(CurrentCursor,
int);
211 virtual void SetFullScreen(
int) = 0;
212 vtkGetMacro(FullScreen,
int);
223 vtkGetMacro(Borders,
int);
232 vtkGetMacro(StereoCapableWindow,
int);
234 virtual void SetStereoCapableWindow(
int capable);
241 vtkGetMacro(StereoRender,
int);
242 void SetStereoRender(
int stereo);
251 vtkGetMacro(AlphaBitPlanes,
int);
261 vtkGetMacro(PointSmoothing,
int);
271 vtkGetMacro(LineSmoothing,
int);
281 vtkGetMacro(PolygonSmoothing,
int);
304 vtkGetMacro(StereoType,
int);
328 const char *GetStereoTypeAsString();
334 virtual void StereoUpdate();
340 virtual void StereoMidpoint();
346 virtual void StereoRenderComplete();
356 vtkSetClampMacro(AnaglyphColorSaturation,
float, 0.0f, 1.0f);
357 vtkGetMacro(AnaglyphColorSaturation,
float);
375 vtkSetVector2Macro(AnaglyphColorMask,
int);
376 vtkGetVectorMacro(AnaglyphColorMask,
int,2);
384 virtual void WindowRemap() = 0;
391 vtkGetMacro(SwapBuffers,
int);
408 virtual int SetPixelData(
int x,
int y,
int x2,
int y2,
unsigned char *
data,
410 virtual int SetPixelData(
int x,
int y,
int x2,
int y2,
422 virtual float *GetRGBAPixelData(
int x,
int y,
int x2,
int y2,
int front) = 0;
423 virtual int GetRGBAPixelData(
int x,
int y,
int x2,
int y2,
int front,
425 virtual int SetRGBAPixelData(
int x,
int y,
int x2,
int y2,
float *,
426 int front,
int blend=0) = 0;
427 virtual int SetRGBAPixelData(
int,
int,
int,
int,
vtkFloatArray*,
428 int,
int blend=0) = 0;
429 virtual void ReleaseRGBAPixelData(
float *
data)=0;
430 virtual unsigned char *GetRGBACharPixelData(
int x,
int y,
int x2,
int y2,
432 virtual int GetRGBACharPixelData(
int x,
int y,
int x2,
int y2,
int front,
434 virtual int SetRGBACharPixelData(
int x,
int y,
int x2,
int y2,
435 unsigned char *
data,
int front,
437 virtual int SetRGBACharPixelData(
int x,
int y,
int x2,
int y2,
448 virtual float *GetZbufferData(
int x,
int y,
int x2,
int y2) = 0;
449 virtual int GetZbufferData(
int x,
int y,
int x2,
int y2,
float *z) = 0;
450 virtual int GetZbufferData(
int x,
int y,
int x2,
int y2,
452 virtual int SetZbufferData(
int x,
int y,
int x2,
int y2,
float *z) = 0;
453 virtual int SetZbufferData(
int x,
int y,
int x2,
int y2,
458 this->GetZbufferData(x, y, x, y, &value);
469 vtkGetMacro(AAFrames,
int);
481 vtkGetMacro(FDFrames,
int);
482 virtual void SetFDFrames (
int fdFrames);
493 vtkGetMacro(UseConstantFDOffsets,
int);
506 vtkGetMacro(SubFrames,
int);
507 virtual void SetSubFrames(
int subFrames);
514 vtkGetMacro(NeverRendered,
int);
522 vtkGetMacro(AbortRender,
int);
524 vtkGetMacro(InAbortCheck,
int);
526 virtual int CheckAbortStatus();
529 vtkGetMacro(IsPicking,
int);
539 virtual int GetEventPending() = 0;
560 virtual void SetDesiredUpdateRate(
double);
561 vtkGetMacro(DesiredUpdateRate,
double);
571 vtkGetMacro(NumberOfLayers,
int);
572 vtkSetClampMacro(NumberOfLayers,
int, 1,
VTK_INT_MAX);
598 void SetWindowId(
void *) VTK_OVERRIDE = 0;
599 virtual
void SetNextWindowId(
void *) = 0;
600 void SetParentId(
void *) VTK_OVERRIDE = 0;
601 void *GetGenericDisplayId() VTK_OVERRIDE = 0;
602 void *GetGenericWindowId() VTK_OVERRIDE = 0;
603 void *GetGenericParentId() VTK_OVERRIDE = 0;
604 void *GetGenericContext() VTK_OVERRIDE = 0;
605 void *GetGenericDrawable() VTK_OVERRIDE = 0;
606 void SetWindowInfo(
char *) VTK_OVERRIDE = 0;
607 virtual
void SetNextWindowInfo(
char *) = 0;
608 void SetParentInfo(
char *) VTK_OVERRIDE = 0;
615 virtual
bool InitializeFromCurrentContext() {
return false; };
627 virtual
bool IsCurrent()=0;
635 virtual
bool IsDrawable(){
return true; }
663 virtual int GetDepthBufferSize() = 0;
669 virtual int GetColorBufferSizes(
int *rgba) = 0;
685 vtkGetMacro(MultiSamples,
int);
693 vtkGetMacro(StencilCapable,
int);
705 vtkGetMacro(DeviceIndex,
int);
731 virtual
void DoStereoRender();
732 virtual
void DoFDRender();
733 virtual
void DoAARender();
743 int PolygonSmoothing;
747 int StereoCapableWindow;
750 unsigned char* StereoBuffer;
751 float *AccumulationBuffer;
752 unsigned int AccumulationBufferSize;
755 int UseConstantFDOffsets;
756 double *ConstantFDOffsets[2];
759 unsigned char *ResultFrame;
761 double DesiredUpdateRate;
769 float AnaglyphColorSaturation;
770 int AnaglyphColorMask[2];
773 int CapturingGL2PSSpecialProps;
779 double AbortCheckTime;
abstract superclass for all actors, volumes and annotations
virtual void SetForceMakeCurrent()
If called, allow MakeCurrent() to skip cache-check when called.
void SetStereoTypeToRight()
Set/Get what type of stereo rendering to use.
virtual void SetDisplayId(void *)=0
These are window system independent methods that are used to help interface vtkWindow to native windo...
virtual int SetUseOffScreenBuffers(bool)
Create and bind offscreen rendering buffers without destroying the current OpenGL context...
void SetStereoTypeToFake()
Set/Get what type of stereo rendering to use.
#define VTK_STEREO_CHECKERBOARD
dynamic, self-adjusting array of float
void SetStereoTypeToSplitViewportHorizontal()
Set/Get what type of stereo rendering to use.
#define VTK_STEREO_DRESDEN
void SetStereoTypeToAnaglyph()
Set/Get what type of stereo rendering to use.
#define VTK_STEREO_RED_BLUE
abstract specification for renderers
#define VTK_STEREO_INTERLACED
void SetStereoTypeToCrystalEyes()
Set/Get what type of stereo rendering to use.
window superclass for vtkRenderWindow
platform-independent render window interaction including picking and frame rate control.
virtual const char * ReportCapabilities()
Get report of capabilities for the render window.
virtual int IsDirect()
Is this render window using hardware acceleration? 0-false, 1-true.
virtual int SupportsOpenGL()
Does this render window support OpenGL? 0-false, 1-true.
an ordered list of renderers
An adapter between a vtkPainter and a rendering device.
virtual int CheckInRenderStatus()
Are we rendering at the moment.
virtual void UnRegister(vtkObjectBase *o)
Decrease the reference count (release by another object).
void SetStereoTypeToRedBlue()
Set/Get what type of stereo rendering to use.
a simple class to control print indentation
void SetStereoTypeToCheckerboard()
Set/Get what type of stereo rendering to use.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
float GetZbufferDataAtPoint(int x, int y)
Set/Get the zbuffer data from the frame buffer.
void SetStereoTypeToInterlaced()
Set/Get what type of stereo rendering to use.
abstract base class for most VTK objects
virtual void MakeCurrent()
Make the window current.
#define VTK_STEREO_CRYSTAL_EYES
vtkSetMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.
dynamic, self-adjusting array of unsigned char
void SetStereoTypeToDresden()
Set/Get what type of stereo rendering to use.
create a window for renderers to draw into
#define VTK_STEREO_SPLITVIEWPORT_HORIZONTAL
virtual void ClearInRenderStatus()
Clear status (after an exception was thrown for example)
create and manipulate ordered lists of objects
Allocate and hold a VTK object.
vtkBooleanMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on...
virtual bool GetUseOffScreenBuffers()
virtual int GetNumberOfDevices()
Returns the number of devices (graphics cards) on a system.
virtual void Render()=0
Ask each viewport owned by this Window to render its image and synchronize this process.
void SetStereoTypeToLeft()
Set/Get what type of stereo rendering to use.
#define VTK_STEREO_ANAGLYPH
Asynchronously measures GPU execution times for a series of events.