You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
nmWTAI-Platform/3rd/VTK7.1/include/vtkGenericOpenGLRenderWindow.h

132 lines
4.1 KiB
C++

/*=========================================================================
Program: Visualization Toolkit
Module: vtkRenderWindow.h
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.
=========================================================================*/
/**
* @class vtkGenericOpenGLRenderWindow
* @brief platform independent render window
*
*
* vtkGenericOpenGLRenderWindow provides a skeleton for implementing a render window
* using one's own OpenGL context and drawable.
* To be effective, one must register an observer for WindowMakeCurrentEvent,
* WindowIsCurrentEvent and WindowFrameEvent. When this class sends a WindowIsCurrentEvent,
* the call data is an bool* which one can use to return whether the context is current.
*/
#ifndef vtkGenericOpenGLRenderWindow_h
#define vtkGenericOpenGLRenderWindow_h
#include "vtkRenderingOpenGLModule.h" // For export macro
#include "vtkOpenGLRenderWindow.h"
class VTKRENDERINGOPENGL_EXPORT vtkGenericOpenGLRenderWindow : public vtkOpenGLRenderWindow
{
public:
static vtkGenericOpenGLRenderWindow* New();
vtkTypeMacro(vtkGenericOpenGLRenderWindow, vtkOpenGLRenderWindow);
void PrintSelf(ostream& os, vtkIndent indent);
protected:
vtkGenericOpenGLRenderWindow();
~vtkGenericOpenGLRenderWindow();
public:
//! Cleans up graphics resources allocated in the context for this VTK scene.
void Finalize();
//! flush the pending drawing operations
//! Class user may to watch for WindowFrameEvent and act on it
void Frame();
//! Makes the context current. It is the class user's
//! responsibility to watch for WindowMakeCurrentEvent and set it current.
void MakeCurrent();
//! Returns if the context is current. It is the class user's
//! responsibility to watch for WindowIsCurrentEvent and set the bool* flag
//! passed through the call data parameter.
bool IsCurrent();
//! Returns if OpenGL is supported. It is the class user's
//! responsibility to watch for WindowSupportsOpenGLEvent and set the int* flag
//! passed through the call data parameter.
int SupportsOpenGL();
//! Returns if the context is direct. It is the class user's
//! responsibility to watch for WindowIsDirectEvent and set the int* flag
//! passed through the call data parameter.
int IsDirect();
// {@
//! set the drawing buffers to use
void SetFrontBuffer(unsigned int);
void SetFrontLeftBuffer(unsigned int);
void SetFrontRightBuffer(unsigned int);
void SetBackBuffer(unsigned int);
void SetBackLeftBuffer(unsigned int);
void SetBackRightBuffer(unsigned int);
// }@
//! convenience function to push the state and push/init the transform matrices
void PushState();
//! convenience function to pop the state and pop the transform matrices
void PopState();
// {@
//! does nothing
void SetWindowId(void*);
void* GetGenericWindowId();
void SetDisplayId(void*);
void SetParentId(void*);
void* GetGenericDisplayId();
void* GetGenericParentId();
void* GetGenericContext();
void* GetGenericDrawable();
void SetWindowInfo(char*);
void SetParentInfo(char*);
int* GetScreenSize();
void Start();
void HideCursor();
void ShowCursor();
void SetFullScreen(int);
void WindowRemap();
int GetEventPending();
void SetNextWindowId(void*);
void SetNextWindowInfo(char*);
void CreateAWindow();
void DestroyWindow();
// }@
//@{
/**
* Allow to update state within observer callback without changing
* data argument and MTime.
*/
void SetIsDirect(int newValue);
void SetSupportsOpenGL(int newValue);
void SetIsCurrent(bool newValue);
//@}
protected:
int DirectStatus;
int SupportsOpenGLStatus;
bool CurrentStatus;
private:
vtkGenericOpenGLRenderWindow(const vtkGenericOpenGLRenderWindow&) VTK_DELETE_FUNCTION;
void operator=(const vtkGenericOpenGLRenderWindow&) VTK_DELETE_FUNCTION;
};
#endif