Rendering/vtkWin32OpenGLRenderWindow.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00029 #ifndef __vtkWin32OpenGLRenderWindow_h
00030 #define __vtkWin32OpenGLRenderWindow_h
00031
00032 #include "vtkOpenGLRenderWindow.h"
00033
00034 #ifndef VTK_IMPLEMENT_MESA_CXX
00035 #include <GL/gl.h>
00036 #endif
00037
00038 class vtkIdList;
00039
00040 class VTK_RENDERING_EXPORT vtkWin32OpenGLRenderWindow : public vtkOpenGLRenderWindow
00041 {
00042 public:
00043 static vtkWin32OpenGLRenderWindow *New();
00044 vtkTypeRevisionMacro(vtkWin32OpenGLRenderWindow,vtkOpenGLRenderWindow);
00045 void PrintSelf(ostream& os, vtkIndent indent);
00046
00048 virtual void Start(void);
00049
00051 void Frame(void);
00052
00054 virtual void WindowInitialize(void);
00055
00060 virtual void Initialize(void);
00061
00066 virtual void Finalize(void);
00067
00069 virtual void SetFullScreen(int);
00070
00072 virtual void WindowRemap(void);
00073
00075 virtual void PrefFullScreen(void);
00076
00078
00079 virtual void SetSize(int,int);
00080 virtual void SetSize(int a[2]) {vtkOpenGLRenderWindow::SetSize(a);};
00082
00084 virtual int *GetSize();
00085
00087
00088 virtual void SetPosition(int,int);
00089 virtual void SetPosition(int a[2]) {vtkOpenGLRenderWindow::SetPosition(a);};
00091
00093 virtual int *GetScreenSize();
00094
00096 virtual int *GetPosition();
00097
00100 virtual void SetWindowName(const char *);
00101
00103 void SetWindowInfo(char *);
00104
00106 void SetNextWindowInfo(char *);
00107
00109 void SetParentInfo(char *);
00110
00111
00112 virtual void *GetGenericDisplayId() {return (void *)this->ContextId;};
00113 virtual void *GetGenericWindowId() {return (void *)this->WindowId;};
00114 virtual void *GetGenericParentId() {return (void *)this->ParentId;};
00115 virtual void *GetGenericContext() {return (void *)this->DeviceContext;};
00116 virtual void *GetGenericDrawable() {return (void *)this->WindowId;};
00117 virtual void SetDisplayId(void *);
00118
00120
00121 virtual HWND GetWindowId();
00122 void SetWindowId(void *foo) {this->SetWindowId((HWND)foo);};
00124
00126 virtual void SetWindowId(HWND);
00127
00129
00130 virtual void SetParentId(HWND);
00131 void SetParentId(void *foo) {this->SetParentId((HWND)foo);};
00133
00134 void SetContextId(HGLRC);
00135 void SetDeviceContext(HDC);
00136
00138 virtual void SetNextWindowId(HWND);
00139
00142 virtual void SetNextWindowId(void *arg);
00143
00144
00145
00150 virtual void SetStereoCapableWindow(int capable);
00151
00153 void MakeCurrent();
00154
00156 const char *ReportCapabilities();
00157
00159 int SupportsOpenGL();
00160
00162 int IsDirect();
00163
00167 virtual int GetEventPending();
00168
00170
00172 void SetupMemoryRendering(int x, int y, HDC prn);
00173 void SetupMemoryRendering(HBITMAP hbmp);
00174 void ResumeScreenRendering(void);
00175 HDC GetMemoryDC();
00176 unsigned char *GetMemoryData(){return this->MemoryData;};
00178
00180
00181 virtual void SetupPalette(HDC hDC);
00182 virtual void SetupPixelFormat(HDC hDC, DWORD dwFlags, int debug,
00183 int bpp=16, int zbpp=16);
00185
00187 void Clean();
00188
00190
00193 void HideCursor();
00194 void ShowCursor();
00195 void SetCursorPosition(int x, int y);
00197
00199 virtual void SetCurrentCursor(int);
00200
00203 virtual void SetOffScreenRendering(int offscreen);
00204
00205 protected:
00206 vtkWin32OpenGLRenderWindow();
00207 ~vtkWin32OpenGLRenderWindow();
00208
00209 HINSTANCE ApplicationInstance;
00210 HPALETTE Palette;
00211 HPALETTE OldPalette;
00212 HGLRC ContextId;
00213 HDC DeviceContext;
00214 BOOL MFChandledWindow;
00215 HWND WindowId;
00216 HWND ParentId;
00217 HWND NextWindowId;
00218 int OwnWindow;
00219 int ScreenSize[2];
00220
00221
00222 BITMAPINFO MemoryDataHeader;
00223 HBITMAP MemoryBuffer;
00224 unsigned char *MemoryData;
00225 HDC MemoryHdc;
00226
00227 int ScreenMapped;
00228 int ScreenWindowSize[2];
00229 HDC ScreenDeviceContext;
00230 int ScreenDoubleBuffer;
00231 HGLRC ScreenContextId;
00232
00233
00234
00235 virtual LRESULT MessageProc(HWND hWnd, UINT message,
00236 WPARAM wParam, LPARAM lParam);
00237
00238 static LRESULT APIENTRY WndProc(HWND hWnd, UINT message,
00239 WPARAM wParam, LPARAM lParam);
00240
00241 int CursorHidden;
00242 int ForceMakeCurrent;
00243
00244 char *Capabilities;
00245
00246 void ResizeWhileOffscreen(int xsize, int ysize);
00247 void CreateAWindow(int x, int y, int width, int height);
00248 void InitializeApplication();
00249 void CleanUpOffScreenRendering(void);
00250 void CreateOffScreenDC(int xsize, int ysize, HDC aHdc);
00251 void CreateOffScreenDC(HBITMAP hbmp, HDC aHdc);
00252 private:
00253 vtkWin32OpenGLRenderWindow(const vtkWin32OpenGLRenderWindow&);
00254 void operator=(const vtkWin32OpenGLRenderWindow&);
00255 };
00256
00257
00258 #endif
00259