VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkWinCEOpenGLRenderWindow.h,v $ 00005 00006 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen 00007 All rights reserved. 00008 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00009 00010 This software is distributed WITHOUT ANY WARRANTY; without even 00011 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00012 PURPOSE. See the above copyright notice for more information. 00013 00014 =========================================================================*/ 00023 #ifndef __vtkWinCEOpenGLRenderWindow_h 00024 #define __vtkWinCEOpenGLRenderWindow_h 00025 00026 #include "vtkOpenGLRenderWindow.h" 00027 00028 #include "GL/osmesa.h" // Needed for Mesa types 00029 00030 class vtkIdList; 00031 00032 class VTK_RENDERING_EXPORT vtkWinCEOpenGLRenderWindow : public vtkOpenGLRenderWindow 00033 { 00034 public: 00035 static vtkWinCEOpenGLRenderWindow *New(); 00036 vtkTypeRevisionMacro(vtkWinCEOpenGLRenderWindow,vtkOpenGLRenderWindow); 00037 void PrintSelf(ostream& os, vtkIndent indent); 00038 00040 virtual void Start(void); 00041 00043 void Frame(void); 00044 00046 virtual void WindowInitialize(void); 00047 00052 virtual void Initialize(void); 00053 00058 virtual void Finalize(void); 00059 00061 virtual void SetFullScreen(int); 00062 00064 virtual void WindowRemap(void); 00065 00067 virtual void PrefFullScreen(void); 00068 00070 virtual void SetSize(int,int); 00071 00073 virtual int *GetSize(); 00074 00076 virtual void SetPosition(int,int); 00077 00079 virtual int *GetScreenSize(); 00080 00082 virtual int *GetPosition(); 00083 00086 virtual void SetWindowName(char *); 00087 00089 void SetWindowInfo(char *); 00090 00091 void SetNextWindowInfo(char *); 00092 00094 void SetParentInfo(char *); 00095 00096 //BTX 00097 virtual void *GetGenericDisplayId() {return (void *)this->OffScreenContextId;}; 00098 virtual void *GetGenericWindowId() {return (void *)this->WindowId;}; 00099 virtual void *GetGenericParentId() {return (void *)this->ParentId;}; 00100 virtual void *GetGenericContext() {return (void *)this->DeviceContext;}; 00101 virtual void SetDisplayId(void *) {}; 00102 00104 00105 virtual HWND GetWindowId(); 00106 void SetWindowId(void *foo) {this->SetWindowId((HWND)foo);}; 00108 00110 virtual void SetWindowId(HWND); 00111 00113 00114 virtual void SetParentId(HWND); 00115 void SetParentId(void *foo) {this->SetParentId((HWND)foo);}; 00117 00119 virtual void SetNextWindowId(HWND); 00120 00121 virtual void SetNextWindowId(void *); 00122 //ETX 00123 00128 virtual void SetStereoCapableWindow(int capable); 00129 00131 void MakeCurrent(); 00132 00136 void SetForceMakeCurrent(); 00137 00140 virtual int GetEventPending(); 00141 00143 void Clean(); 00144 00146 00148 void HideCursor(); 00149 void ShowCursor(); 00151 00152 protected: 00153 vtkWinCEOpenGLRenderWindow(); 00154 ~vtkWinCEOpenGLRenderWindow(); 00155 00156 HINSTANCE ApplicationInstance; 00157 00158 OSMesaContext OffScreenContextId; 00159 void *OffScreenWindow; 00160 00161 HDC DeviceContext; 00162 HWND WindowId; 00163 HWND ParentId; 00164 HWND NextWindowId; 00165 int OwnWindow; 00166 int ScreenSize[2]; 00167 00168 //BTX 00169 // message handler 00170 virtual LRESULT MessageProc(HWND hWnd, UINT message, 00171 WPARAM wParam, LPARAM lParam); 00172 00173 static LRESULT APIENTRY WndProc(HWND hWnd, UINT message, 00174 WPARAM wParam, LPARAM lParam); 00175 //ETX 00176 int CursorHidden; 00177 int ForceMakeCurrent; 00178 00179 void ResizeWhileOffscreen(int xsize, int ysize); 00180 void CreateAWindow(int x, int y, int width, int height); 00181 void InitializeApplication(); 00182 private: 00183 vtkWinCEOpenGLRenderWindow(const vtkWinCEOpenGLRenderWindow&); // Not implemented. 00184 void operator=(const vtkWinCEOpenGLRenderWindow&); // Not implemented. 00185 }; 00186 00187 00188 #endif 00189