VR-Forces 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 
20 namespace makVrv
21 {
22  class DtDeSplashScreen;
23 }
24 
27 {
28 public:
30 
31  //DtDeMainWindow Interface
33  virtual void setApplicationTitle(const std::string& appName);
34 
36  virtual std::string DtMfcMainWindow::applicationTitle() const;
37 
39  virtual void setApplicationIcon(const std::string& iconName);
40 
42  virtual void setShowQuitDialogOnClose(bool value);
43 
45  virtual void destroyWindow();
46 
48  virtual void setSplashScreen(makVrv::DtDeSplashScreen* splashScreen);
49 
52  virtual void showBasedOnSettings();
53 
55  virtual void quit();
56 
57 protected:
59 
60 };
61 
63 
66 {
67 public:
70 
72  virtual ~DtEmbeddedMfcOsgWindow();
73 
75  virtual bool isValid() const;
76 
78  virtual void setPosition(int x,int y);
79 
81  virtual void resize(int width,int height);
82 
86  virtual void sizeChanged(int width,int height);
87 
88  //Create the OpenGL Window
89  void oglCreate(CRect rect, CWnd *parent);
90 
92  void oglInitialize(bool doubleBuffer, bool stereo, unsigned int colorBits,
93  unsigned int depthBits, unsigned int stencilBits, bool vsync);
94 
95  bool isRealizedImplementation() const;
96 
98  void oglClose();
99 
101  bool makeCurrent();
102 
104  bool release();
105 
107  void swapBuffers();
108 
110  void setVSync(bool enabled);
111 
112  // Added message classes:
113  afx_msg void OnPaint();
114  afx_msg void OnSize(UINT nType, int cx, int cy);
115  afx_msg void OnDraw(CDC *pDC);
116  afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
117  afx_msg void OnMouseMove(UINT nFlags, CPoint point);
118  afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
119  afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
120  afx_msg void OnRButtonDown(UINT nFlags, CPoint point);
121  afx_msg void OnRButtonUp(UINT nFlags, CPoint point);
122  afx_msg void OnMButtonDown(UINT nFlags, CPoint point);
123  afx_msg void OnMButtonUp(UINT nFlags, CPoint point);
124 
125  DECLARE_MESSAGE_MAP()
126 
127 private:
128 
131  HDC myHDC;
132  HGLRC myHGLRC;
134 
135 };
136 
139 {
140 public:
141 
143  virtual makVrv::DtWindow* create(makVrv::DtDe& de,
145 };
146 
147 
149 class DtMfcControlAsOsgContext : public osgViewer::GraphicsWindowEmbedded
150 {
151 public:
152 
154  DtEmbeddedMfcOsgWindow* wnd, osg::GraphicsContext::Traits* traits);
155 
156  virtual bool valid() const;
157  virtual bool realizeImplementation();
158  virtual bool isRealizedImplementation() const;
159  virtual void closeImplementation();
160  virtual void grabFocus();
161  virtual void grabFocusIfPointerInWindow();
162  virtual bool makeCurrentImplementation();
163  virtual bool releaseContextImplementation();
164  virtual void swapBuffersImplementation();
165  virtual void requestWarpPointer( float x, float y );
166  virtual void useCursor( bool onOff );
167 
168 protected:
171 };
172 
175 {
176 public:
177 
180 
181 protected:
182 
185 };
186 
187 
188 #endif
int myPixelFormat
Definition: MFCClasses.h:133
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:174
afx_msg void OnRButtonDown(UINT nFlags, CPoint point)
Simple MFC based Main Window.
Definition: MFCClasses.h:26
virtual int width() const
Get the window width.
DtMfcControlAsOsgContext * myControl
Definition: MFCClasses.h:129
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:132
afx_msg void OnPaint()
virtual void setSplashScreen(makVrv::DtDeSplashScreen *splashScreen)
Not supported in this example.
virtual bool valid() const
A simple OpenGL OSG control window.
Definition: MFCClasses.h:65
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:138
afx_msg void OnRButtonUp(UINT nFlags, CPoint point)
The abstract main window provider.
Definition: DtDeMainWindow.h:74
Contains makVrv::DtDe class.
This owns a list of channel configurations.
Definition: DtWindowConfiguration.h:26
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:169
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:131
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:58
void oglClose()
Deinitialize OpenGL.
The abstract main window class.
Definition: DtDeMainWindow.h:24
virtual void closeImplementation()
virtual void grabFocusIfPointerInWindow()
void swapBuffers()
Swap this window&#39;s OpenGL buffers.
makVrv::DtDe & myDe
Definition: MFCClasses.h:170
bool release()
Release this window&#39;s context.
afx_msg void OnMouseMove(UINT nFlags, CPoint point)
virtual void showBasedOnSettings()
Show the main window based on application settings. This also handles the creation of the startup dia...
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:130
bool myShowQuitFlag
Definition: MFCClasses.h:58
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 VR-Vantage Splash Screen Interface.
Definition: DtDeSplashScreen.h:33
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:72
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:149
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 Wed Mar 27 22:49:11 EDT 2024 from SVN revision 264633
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)