89 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			89 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| /////////////////////////////////////////////////////////////////////////////
 | |
| // Name:        pyramid.h
 | |
| // Purpose:     OpenGL version >= 3.2 sample
 | |
| // Author:      Manuel Martin
 | |
| // Created:     2015/11/05
 | |
| // Copyright:   (c) 2015 Manuel Martin
 | |
| // Licence:     wxWindows licence
 | |
| /////////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
| #ifndef PYRSAMLE_H
 | |
| #define PYRSAMLE_H
 | |
| 
 | |
| // Define a new application
 | |
| class MyApp: public wxApp
 | |
| {
 | |
| public:
 | |
|     MyApp(){};
 | |
|     bool OnInit() wxOVERRIDE;
 | |
| };
 | |
| 
 | |
| 
 | |
| class MyGLCanvas;
 | |
| 
 | |
| // The main frame class
 | |
| class MyFrame : public wxFrame
 | |
| {
 | |
| public:
 | |
|     MyFrame(const wxString& title);
 | |
| 
 | |
|     void OnAbout(wxCommandEvent& event);
 | |
|     void OnQuit(wxCommandEvent& event);
 | |
| #if wxUSE_LOGWINDOW
 | |
|     void OnLogWindow(wxCommandEvent& event);
 | |
| #endif // wxUSE_LOGWINDOW
 | |
|     void SetOGLString(const wxString& ogls)
 | |
|         { m_OGLString = ogls; }
 | |
|     bool OGLAvailable();
 | |
| 
 | |
| private:
 | |
| #if wxUSE_LOGWINDOW
 | |
|     wxLogWindow* m_LogWin;
 | |
| #endif // wxUSE_LOGWINDOW
 | |
|     wxString     m_OGLString;
 | |
|     MyGLCanvas*  m_mycanvas;
 | |
| 
 | |
|     wxDECLARE_EVENT_TABLE();
 | |
| };
 | |
| 
 | |
| 
 | |
| // The canvas window
 | |
| class MyGLCanvas : public wxGLCanvas
 | |
| {
 | |
| public:
 | |
|     MyGLCanvas(MyFrame* parent, const wxGLAttributes& canvasAttrs);
 | |
|     ~MyGLCanvas();
 | |
| 
 | |
|     //Used just to know if we must end now because OGL 3.2 isn't available
 | |
|     bool OglCtxAvailable()
 | |
|         {return m_oglContext != NULL;}
 | |
| 
 | |
|     //Init the OpenGL stuff
 | |
|     bool oglInit();
 | |
| 
 | |
|     void OnPaint(wxPaintEvent& event);
 | |
|     void OnSize(wxSizeEvent& event);
 | |
|     void OnMouse(wxMouseEvent& event);
 | |
| 
 | |
| private:
 | |
|     // Members
 | |
|     MyFrame*      m_parent;
 | |
|     wxGLContext*  m_oglContext;
 | |
|     myOGLManager* m_oglManager;
 | |
|     int           m_winHeight; // We use this var to know if we have been sized
 | |
| 
 | |
|     wxDECLARE_EVENT_TABLE();
 | |
| };
 | |
| 
 | |
| 
 | |
| // IDs for the controls and the menu commands
 | |
| enum
 | |
| {
 | |
|     Pyramid_Quit = wxID_EXIT,
 | |
|     Pyramid_About = wxID_ABOUT,
 | |
|     Pyramid_LogW = wxID_HIGHEST + 10
 | |
| };
 | |
| 
 | |
| #endif // PYRSAMLE_H
 | |
| 
 |