VR-Forces 5.0.1 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
MFCClasses.h
Go to the documentation of this file.
1 /*****************************************************************************
2  * Copyright (c) 2019 MAK Technologies, Inc.
3  * All rights reserved.
4  *****************************************************************************/
5 #ifndef MFCClasses_H
6 #define MFCClasses_H
7 
8 #include <afxwin.h>
9 #include <GL/GL.h>
10 #include <osg/GraphicsContext>
11 #include <osgViewer/GraphicsWindow>
12 #include <vlutil/vlPerformanceStats.h>
13 #include <vrvCore/DtDe.h>
14 #include <vrvCore/DtDeMainWindow.h>
15 #include <vrvCore/DtWindow.h>
17 #include <vrvOsg/DtOsgWindow.h>
18 #include <vrvOsg/vrvOsg.h>
19 
22 {
23 public:
25 
26  //DtDeMainWindow Interface
28  virtual void setApplicationTitle(const std::string& appName);
29 
31  virtual std::string DtMfcMainWindow::applicationTitle() const;
32 
34  virtual void setApplicationIcon(const std::string& iconName);
35 
37  virtual void setShowQuitDialogOnClose(bool value);
38 
40  virtual void destroyWindow();
41 
43  virtual void quit();
44 
45 protected:
47 
48 };
49 
51 
54 {
55 public:
58 
60  virtual ~DtEmbeddedMfcOsgWindow();
61 
63  virtual bool isValid() const;
64 
66  virtual void setPosition(int x,int y);
67 
69  virtual void resize(int width,int height);
70 
74  virtual void sizeChanged(int width,int height);
75 
76  //Create the OpenGL Window
77  void oglCreate(CRect rect, CWnd *parent);
78 
80  void oglInitialize(bool doubleBuffer, bool stereo, unsigned int colorBits,
81  unsigned int depthBits, unsigned int stencilBits, bool vsync);
82 
83  bool isRealizedImplementation() const;
84 
86  void oglClose();
87 
89  bool makeCurrent();
90 
92  bool release();
93 
95  void swapBuffers();
96 
98  void setVSync(bool enabled);
99 
100  // Added message classes:
101  afx_msg void OnPaint();
102  afx_msg void OnSize(UINT nType, int cx, int cy);
103  afx_msg void OnDraw(CDC *pDC);
104  afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
105  afx_msg void OnMouseMove(UINT nFlags, CPoint point);
106  afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
107  afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
108  afx_msg void OnRButtonDown(UINT nFlags, CPoint point);
109  afx_msg void OnRButtonUp(UINT nFlags, CPoint point);
110  afx_msg void OnMButtonDown(UINT nFlags, CPoint point);
111  afx_msg void OnMButtonUp(UINT nFlags, CPoint point);
112 
113  DECLARE_MESSAGE_MAP()
114 
115 private:
116 
119  HDC myHDC;
120  HGLRC myHGLRC;
122 
123 };
124 
127 {
128 public:
129 
131  virtual makVrv::DtWindow* create(makVrv::DtDe& de,
133 };
134 
135 
137 class DtMfcControlAsOsgContext : public osgViewer::GraphicsWindowEmbedded
138 {
139 public:
140 
142  DtEmbeddedMfcOsgWindow* wnd, osg::GraphicsContext::Traits* traits);
143 
144  virtual bool valid() const;
145  virtual bool realizeImplementation();
146  virtual bool isRealizedImplementation() const;
147  virtual void closeImplementation();
148  virtual void grabFocus();
149  virtual void grabFocusIfPointerInWindow();
150  virtual bool makeCurrentImplementation();
151  virtual bool releaseContextImplementation();
152  virtual void swapBuffersImplementation();
153  virtual void requestWarpPointer( float x, float y );
154  virtual void useCursor( bool onOff );
155 
156 protected:
159 };
160 
163 {
164 public:
165 
168 
169 protected:
170 
173 };
174 
175 
176 #endif
int myPixelFormat
Definition: MFCClasses.h:121
virtual void destroyWindow()
Destroy the window.
afx_msg void OnMButtonDown(UINT nFlags, CPoint point)
Abstract Base class.
Definition: DtWindow.h:25
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct)
void oglCreate(CRect rect, CWnd *parent)
A creator class for DtWindow instances.
Definition: DtWindow.h:130
afx_msg void OnDraw(CDC *pDC)
Provides a MFC Main Window.
Definition: MFCClasses.h:162
afx_msg void OnRButtonDown(UINT nFlags, CPoint point)
Simple MFC based Main Window.
Definition: MFCClasses.h:21
virtual int width() const
Get the window width.
DtMfcControlAsOsgContext * myControl
Definition: MFCClasses.h:117
Contains makVrv::DtViewFactory class.
virtual void sizeChanged(int width, int height)
Called when the size of the window has changed. This is necessary since often the window system will ...
DtDe & de()
Accessor to get the de;.
Definition: DtWindow.h:95
DtEmbeddedMfcOsgWindow(makVrv::DtDe &de, makVrv::DtWindowConfiguration &wc)
CTOR.
afx_msg void OnLButtonDown(UINT nFlags, CPoint point)
bool isRealizedImplementation() const
HGLRC myHGLRC
Definition: MFCClasses.h:120
afx_msg void OnPaint()
virtual bool valid() const
A simple OpenGL OSG control window.
Definition: MFCClasses.h:53
afx_msg void OnSize(UINT nType, int cx, int cy)
virtual void resize(int width, int height)
Resize the window.
Creator class for making the Embedded Mfc window.
Definition: MFCClasses.h:126
afx_msg void OnRButtonUp(UINT nFlags, CPoint point)
The abstract main window provider.
Definition: DtDeMainWindow.h:66
Contains makVrv::DtDe class.
This owns a list of channel configurations.
Definition: DtWindowConfiguration.h:28
virtual bool makeCurrentImplementation()
DtMfcControlAsOsgContext(makVrv::DtDe &de, DtEmbeddedMfcOsgWindow *wnd, osg::GraphicsContext::Traits *traits)
virtual bool isValid() const
Check to see if the window is still valid.
virtual makVrv::DtDeMainWindow * createMainWindow(makVrv::DtDe &de)
Create a main window.
Contains makVrv::DtDeMainWindow class.
DtEmbeddedMfcOsgWindow * myControl
Definition: MFCClasses.h:157
afx_msg void OnMButtonUp(UINT nFlags, CPoint point)
void oglInitialize(bool doubleBuffer, bool stereo, unsigned int colorBits, unsigned int depthBits, unsigned int stencilBits, bool vsync)
Initialize the OpenGL context.
HDC myHDC
Definition: MFCClasses.h:119
virtual int height() const
Get the window height.
afx_msg void OnLButtonUp(UINT nFlags, CPoint point)
virtual bool realizeImplementation()
virtual void swapBuffersImplementation()
virtual void grabFocus()
virtual void quit()
Quit the application.
void setVSync(bool enabled)
Control this window&#39;s vsync.
Contains makVrv::DtIgView class.
virtual bool isRealizedImplementation() const
DtDe & de()
Definition: DtDeMainWindow.h:50
void oglClose()
Deinitialize OpenGL.
The abstract main window class.
Definition: DtDeMainWindow.h:23
virtual void closeImplementation()
virtual void grabFocusIfPointerInWindow()
void swapBuffers()
Swap this window&#39;s OpenGL buffers.
makVrv::DtDe & myDe
Definition: MFCClasses.h:158
bool release()
Release this window&#39;s context.
afx_msg void OnMouseMove(UINT nFlags, CPoint point)
virtual void setApplicationIcon(const std::string &iconName)
Set the application&#39;s icon, typically use a resource name.
virtual void requestWarpPointer(float x, float y)
CWnd * myHWnd
Definition: MFCClasses.h:118
bool myShowQuitFlag
Definition: MFCClasses.h:46
Contains DLL export macros.
virtual void setApplicationTitle(const std::string &appName)
Set the application&#39;s name, typically for the Title Bar.
virtual void useCursor(bool onOff)
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:70
virtual std::string applicationTitle() const
Get the application&#39;s name.
Contains makVrv::DtOsgView class.
virtual ~DtEmbeddedMfcOsgWindow()
DTOR.
virtual void setPosition(int x, int y)
Set the position of the window in screen coordinates.
DtMfcMainWindowProvider(makVrv::DtDe &de)
Constructor.
virtual makVrv::DtWindow * create(makVrv::DtDe &de, makVrv::DtWindowConfiguration &config)
Create an window instance.
DtMfcMainWindow(makVrv::DtDe &de)
A basic OSG display window, used to get the osg context for a display window.
Definition: DtOsgWindow.h:36
bool makeCurrent()
Make this window&#39;s context current.
virtual bool releaseContextImplementation()
Internal class for embedding The OpenGL Qt code into OSG.
Definition: MFCClasses.h:137
virtual void setShowQuitDialogOnClose(bool value)
Set whether or not to show quit dialog on close if this is the last window.

Document ID: Generated on Mon Jun 20 00:38:30 EDT 2022 from SVN revision 244029
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)