Add a new OpenGL pyramid sample
This sample shows the use of modern OpenGL (3.2). Closes #16910.
This commit is contained in:
committed by
Vadim Zeitlin
parent
bdc95f5766
commit
d6fb44e158
88
samples/opengl/pyramid/pyramid.h
Normal file
88
samples/opengl/pyramid/pyramid.h
Normal file
@@ -0,0 +1,88 @@
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// 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
|
||||
|
Reference in New Issue
Block a user