Cloned library of VTK-5.0.0 with extra build files for internal package management.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

207 lines
6.2 KiB

2 years ago
/*=========================================================================
Program: Visualization Toolkit
Module: $RCSfile: vtkWinCEOpenGLRenderWindow.h,v $
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.
=========================================================================*/
// .NAME vtkWinCEOpenGLRenderWindow - OpenGL rendering window
// .SECTION Description
// vtkWinCEOpenGLRenderWindow is a concrete implementation of the abstract
// class vtkRenderWindow. vtkWinCEOpenGLRenderer interfaces to the standard
// OpenGL graphics library in the Windows/NT environment..
#ifndef __vtkWinCEOpenGLRenderWindow_h
#define __vtkWinCEOpenGLRenderWindow_h
#include "vtkOpenGLRenderWindow.h"
#include "GL/osmesa.h" // Needed for Mesa types
class vtkIdList;
class VTK_RENDERING_EXPORT vtkWinCEOpenGLRenderWindow : public vtkOpenGLRenderWindow
{
public:
static vtkWinCEOpenGLRenderWindow *New();
vtkTypeRevisionMacro(vtkWinCEOpenGLRenderWindow,vtkOpenGLRenderWindow);
void PrintSelf(ostream& os, vtkIndent indent);
// Description:
// Begin the rendering process.
virtual void Start(void);
// Description:
// End the rendering process and display the image.
void Frame(void);
// Description:
// Create the window
virtual void WindowInitialize(void);
// Description:
// Initialize the rendering window. This will setup all system-specific
// resources. This method and Finalize() must be symmetric and it
// should be possible to call them multiple times, even changing WindowId
// in-between. This is what WindowRemap does.
virtual void Initialize(void);
// Description:
// Finalize the rendering window. This will shutdown all system-specific
// resources. After having called this, it should be possible to destroy
// a window that was used for a SetWindowId() call without any ill effects.
virtual void Finalize(void);
// Description:
// Change the window to fill the entire screen.
virtual void SetFullScreen(int);
// Description:
// Remap the window.
virtual void WindowRemap(void);
// Description:
// Set the preferred window size to full screen.
virtual void PrefFullScreen(void);
// Description:
// Set the size of the window.
virtual void SetSize(int,int);
// Description:
// Get the current size of the window.
virtual int *GetSize();
// Description:
// Set the position of the window.
virtual void SetPosition(int,int);
// Description:
// Return the screen size.
virtual int *GetScreenSize();
// Description:
// Get the position in screen coordinates of the window.
virtual int *GetPosition();
// Description:
// Set the name of the window. This appears at the top of the window
// normally.
virtual void SetWindowName(char *);
// Description:
// Set this RenderWindow's window id to a pre-existing window.
void SetWindowInfo(char *);
void SetNextWindowInfo(char *);
// Description:
// Sets the HWND id of the window that WILL BE created.
void SetParentInfo(char *);
//BTX
virtual void *GetGenericDisplayId() {return (void *)this->OffScreenContextId;};
virtual void *GetGenericWindowId() {return (void *)this->WindowId;};
virtual void *GetGenericParentId() {return (void *)this->ParentId;};
virtual void *GetGenericContext() {return (void *)this->DeviceContext;};
virtual void SetDisplayId(void *) {};
// Description:
// Get the window id.
virtual HWND GetWindowId();
void SetWindowId(void *foo) {this->SetWindowId((HWND)foo);};
// Description:
// Set the window id to a pre-existing window.
virtual void SetWindowId(HWND);
// Description:
// Set the window's parent id to a pre-existing window.
virtual void SetParentId(HWND);
void SetParentId(void *foo) {this->SetParentId((HWND)foo);};
// Description:
// Set the window id of the new window once a WindowRemap is done.
virtual void SetNextWindowId(HWND);
virtual void SetNextWindowId(void *);
//ETX
// Description:
// Prescribe that the window be created in a stereo-capable mode. This
// method must be called before the window is realized. This method
// overrides the superclass method since this class can actually check
// whether the window has been realized yet.
virtual void SetStereoCapableWindow(int capable);
// Description:
// Make this windows OpenGL context the current context.
void MakeCurrent();
// Description:
// If called, allow MakeCurrent() to skip cache-check when called.
// MakeCurrent() reverts to original behavior of cache-checking
// on the next render.
void SetForceMakeCurrent();
// Description:
// Check to see if an event is pending for this window.
// This is a useful check to abort a long render.
virtual int GetEventPending();
// Description:
// Clean up device contexts, rendering contexts, etc.
void Clean();
// Description:
// Hide or Show the mouse cursor, it is nice to be able to hide the
// default cursor if you want VTK to display a 3D cursor instead.
void HideCursor();
void ShowCursor();
protected:
vtkWinCEOpenGLRenderWindow();
~vtkWinCEOpenGLRenderWindow();
HINSTANCE ApplicationInstance;
OSMesaContext OffScreenContextId;
void *OffScreenWindow;
HDC DeviceContext;
HWND WindowId;
HWND ParentId;
HWND NextWindowId;
int OwnWindow;
int ScreenSize[2];
//BTX
// message handler
virtual LRESULT MessageProc(HWND hWnd, UINT message,
WPARAM wParam, LPARAM lParam);
static LRESULT APIENTRY WndProc(HWND hWnd, UINT message,
WPARAM wParam, LPARAM lParam);
//ETX
int CursorHidden;
int ForceMakeCurrent;
void ResizeWhileOffscreen(int xsize, int ysize);
void CreateAWindow(int x, int y, int width, int height);
void InitializeApplication();
private:
vtkWinCEOpenGLRenderWindow(const vtkWinCEOpenGLRenderWindow&); // Not implemented.
void operator=(const vtkWinCEOpenGLRenderWindow&); // Not implemented.
};
#endif