initial commit
Signed-off-by: Peter Siegmund <mars3142@noreply.mars3142.dev>
This commit is contained in:
91
libs/wxWidgets-3.3.1/samples/opengl/cube/cube.h
Normal file
91
libs/wxWidgets-3.3.1/samples/opengl/cube/cube.h
Normal file
@@ -0,0 +1,91 @@
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// Name: cube.h
|
||||
// Purpose: wxGLCanvas demo program
|
||||
// Author: Julian Smart
|
||||
// Created: 04/01/98
|
||||
// Copyright: (c) Julian Smart
|
||||
// Licence: wxWindows licence
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef _WX_CUBE_H_
|
||||
#define _WX_CUBE_H_
|
||||
|
||||
#include "wx/glcanvas.h"
|
||||
|
||||
// the rendering context used by all GL canvases
|
||||
class TestGLContext : public wxGLContext
|
||||
{
|
||||
public:
|
||||
TestGLContext(wxGLCanvas *canvas);
|
||||
|
||||
// render the cube showing it at given angles
|
||||
void DrawRotatedCube(float xangle, float yangle);
|
||||
|
||||
private:
|
||||
// textures for the cube faces
|
||||
GLuint m_textures[6];
|
||||
};
|
||||
|
||||
// Define a new application type
|
||||
class MyApp : public wxApp
|
||||
{
|
||||
public:
|
||||
MyApp() { m_glContext = nullptr; m_glStereoContext = nullptr; }
|
||||
|
||||
// Returns the shared context used by all frames and sets it as current for
|
||||
// the given canvas.
|
||||
TestGLContext& GetContext(wxGLCanvas *canvas, bool useStereo);
|
||||
|
||||
// virtual wxApp methods
|
||||
virtual bool OnInit() override;
|
||||
virtual int OnExit() override;
|
||||
|
||||
private:
|
||||
// the GL context we use for all our mono rendering windows
|
||||
TestGLContext *m_glContext;
|
||||
// the GL context we use for all our stereo rendering windows
|
||||
TestGLContext *m_glStereoContext;
|
||||
};
|
||||
|
||||
// Define a new frame type
|
||||
class MyFrame : public wxFrame
|
||||
{
|
||||
public:
|
||||
MyFrame(bool stereoWindow = false);
|
||||
|
||||
private:
|
||||
void OnClose(wxCommandEvent& event);
|
||||
void OnNewWindow(wxCommandEvent& event);
|
||||
void OnNewStereoWindow(wxCommandEvent& event);
|
||||
|
||||
wxDECLARE_EVENT_TABLE();
|
||||
};
|
||||
|
||||
class TestGLCanvas : public wxGLCanvas
|
||||
{
|
||||
public:
|
||||
TestGLCanvas(wxWindow *parent, bool useStereo);
|
||||
|
||||
private:
|
||||
void OnPaint(wxPaintEvent& event);
|
||||
void Spin(float xSpin, float ySpin);
|
||||
void OnKeyDown(wxKeyEvent& event);
|
||||
void OnSpinTimer(wxTimerEvent& WXUNUSED(event));
|
||||
|
||||
// angles of rotation around x- and y- axis
|
||||
float m_xangle,
|
||||
m_yangle;
|
||||
|
||||
wxTimer m_spinTimer;
|
||||
bool m_useStereo,
|
||||
m_stereoWarningAlreadyDisplayed;
|
||||
|
||||
wxDECLARE_EVENT_TABLE();
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
NEW_STEREO_WINDOW = wxID_HIGHEST
|
||||
};
|
||||
|
||||
#endif // _WX_CUBE_H_
|
||||
Reference in New Issue
Block a user