00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00054 #ifndef __vtkWin32ImageWindow_h
00055 #define __vtkWin32ImageWindow_h
00056
00057
00058 #include "vtkImageWindow.h"
00059
00060 #ifndef VTK_REMOVE_LEGACY_CODE
00061 class VTK_RENDERING_EXPORT vtkWin32ImageWindow : public vtkImageWindow
00062 {
00063 public:
00064 HINSTANCE ApplicationInstance;
00065 HPALETTE Palette;
00066 HDC DeviceContext;
00067 HWND WindowId;
00068 HWND ParentId;
00069
00070 static vtkWin32ImageWindow *New();
00071 vtkTypeMacro(vtkWin32ImageWindow,vtkImageWindow);
00072 void PrintSelf(ostream& os, vtkIndent indent);
00073
00076 void SwapBuffers();
00077
00080 void Frame();
00081
00082
00083 vtkWin32ImageWindow *GetOutput(){return this;};
00084
00086 void SetWindowInfo(char *);
00087
00089 void SetParentInfo(char *);
00090
00091
00092
00094
00095 HWND GetWindowId();
00096 void SetWindowId(void* id) {this->WindowId = (HWND) id;};
00097 void SetParentId(void* id) {this->ParentId = (HWND) id;};
00098 void SetWindowId(HWND);
00099 void SetParentId(HWND);
00101
00102 void SetDeviceContext(void* dc) {this->DeviceContext = (HDC) dc;};
00103 void SetDeviceContext(HDC);
00104 void SetDisplayId(void *foo) {vtkDebugMacro(<<"SetDisplayID not implemented");};
00105
00106 void *GetGenericDisplayId()
00107 {vtkDebugMacro(<<"Display ID not implemented in Win32."); return (void*) NULL;};
00108 void *GetGenericWindowId() {return (void*) this->WindowId;};
00109 void *GetGenericParentId() {return (void*) this->ParentId;};
00110 void *GetGenericContext() {return (void*) this->DeviceContext;};
00111
00112
00114
00115 void SetSize(int,int);
00116 int *GetSize();
00118
00120
00121 int *GetPosition();
00122 void SetPosition(int,int);
00124
00126 void SetBackgroundColor(float r, float g, float b);
00127
00129 void EraseWindow();
00130
00131 unsigned char *GetDIBPtr();
00132 unsigned char *GetPixelData(int x1, int y1, int x2, int y2, int);
00133
00135 void MakeDefaultWindow();
00136
00138
00140 void SetupMemoryRendering(int x, int y, HDC prn);
00141 void ResumeScreenRendering();
00142 HDC GetMemoryDC();
00143 unsigned char *GetMemoryData(){return this->MemoryData;};
00145
00146 protected:
00147 vtkWin32ImageWindow();
00148 ~vtkWin32ImageWindow();
00149
00150
00151 BITMAPINFO MemoryDataHeader;
00152 HBITMAP MemoryBuffer;
00153 unsigned char *MemoryData;
00154 HDC MemoryHdc;
00155 int ScreenMapped;
00156 int ScreenWindowSize[2];
00157 HDC ScreenDeviceContext;
00158
00159 int OwnWindow;
00160
00161 unsigned char *DIBPtr;
00162 int SwapFlag;
00163 HDC CompatHdc;
00164 HDC OldHdc;
00165 HBITMAP BackBuffer;
00166 BITMAPINFO DataHeader;
00167 private:
00168 vtkWin32ImageWindow(const vtkWin32ImageWindow&);
00169 void operator=(const vtkWin32ImageWindow&);
00170 };
00171
00172 #endif
00173
00174 #endif