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
00053 #ifndef __vtkWin32ImageWindow_h
00054 #define __vtkWin32ImageWindow_h
00055
00056
00057 #include "vtkImageWindow.h"
00058
00059 #ifndef VTK_REMOVE_LEGACY_CODE
00060 class VTK_EXPORT vtkWin32ImageWindow : public vtkImageWindow
00061 {
00062 public:
00063 HINSTANCE ApplicationInstance;
00064 HPALETTE Palette;
00065 HDC DeviceContext;
00066 HWND WindowId;
00067 HWND ParentId;
00068
00069 static vtkWin32ImageWindow *New();
00070 vtkTypeMacro(vtkWin32ImageWindow,vtkImageWindow);
00071 void PrintSelf(ostream& os, vtkIndent indent);
00072
00075 void SwapBuffers();
00076
00079 void Frame();
00080
00081
00082 vtkWin32ImageWindow *GetOutput(){return this;};
00083
00084
00085
00087 HWND GetWindowId();
00088 void SetWindowId(void* id) {this->WindowId = (HWND) id;};
00089 void SetParentId(void* id) {this->ParentId = (HWND) id;};
00090 void SetWindowId(HWND);
00091 void SetParentId(HWND);
00092
00093 void SetDeviceContext(void* dc) {this->DeviceContext = (HDC) dc;};
00094 void SetDeviceContext(HDC);
00095 void SetDisplayId(void *foo) {vtkDebugMacro(<<"SetDisplayID not implemented");};
00096
00097 void *GetGenericDisplayId()
00098 {vtkDebugMacro(<<"Display ID not implemented in Win32."); return (void*) NULL;};
00099 void *GetGenericWindowId() {return (void*) this->WindowId;};
00100 void *GetGenericParentId() {return (void*) this->ParentId;};
00101 void *GetGenericContext() {return (void*) this->DeviceContext;};
00102
00103
00105 void SetSize(int,int);
00106 int *GetSize();
00107
00109 int *GetPosition();
00110 void SetPosition(int,int);
00111
00113 void SetBackgroundColor(float r, float g, float b);
00114
00116 void EraseWindow();
00117
00118 unsigned char *GetDIBPtr();
00119 unsigned char *GetPixelData(int x1, int y1, int x2, int y2, int);
00120
00122 void MakeDefaultWindow();
00123
00126 void SetupMemoryRendering(int x, int y, HDC prn);
00127 void ResumeScreenRendering();
00128 HDC GetMemoryDC();
00129 unsigned char *GetMemoryData(){return this->MemoryData;};
00130
00131 protected:
00132 vtkWin32ImageWindow();
00133 ~vtkWin32ImageWindow();
00134 vtkWin32ImageWindow(const vtkWin32ImageWindow&) {};
00135 void operator=(const vtkWin32ImageWindow&) {};
00136
00137
00138 BITMAPINFO MemoryDataHeader;
00139 HBITMAP MemoryBuffer;
00140 unsigned char *MemoryData;
00141 HDC MemoryHdc;
00142 int ScreenMapped;
00143 int ScreenWindowSize[2];
00144 HDC ScreenDeviceContext;
00145
00146 int OwnWindow;
00147
00148 unsigned char *DIBPtr;
00149 int SwapFlag;
00150 HDC CompatHdc;
00151 HDC OldHdc;
00152 HBITMAP BackBuffer;
00153 BITMAPINFO DataHeader;
00154 };
00155
00156 #endif
00157
00158 #endif