blob: bf4755b7d876d3fb608e1e582d4b31eef0b46e61 [file] [log] [blame]
/**
* projectM -- Milkdrop-esque visualisation SDK
* Copyright (C)2003-2004 projectM Team
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
* See 'LICENSE.txt' included within this release
*
*/
/**
* wxvisCanvas.h
*
* Encapsulation of an OpenGL drawing canvas...
*
*/
#ifndef _WXPROJECTMVISCANVAS_H
#define _WXPROJECTMVISCANVAS_H
#include <wx/wx.h>
#include <wx/glcanvas.h>
class projectM;
class wxvisFrame;
class wxvisCanvas : public wxGLCanvas {
private:
/** Parent frame in the hierarchy */
wxvisFrame *_parent;
/** Has this viewport been initialised */
int _hasInitialised;
#ifdef WIN32
/** Refresh mutex */
CRITICAL_SECTION refreshMutex;
HANDLE refreshSemaphore;
#endif /** WIN32 */
/** projectM */
projectM *pm;
public:
/** Constructor */
wxvisCanvas( wxFrame *parent, const wxWindowID id = -1,
const wxPoint &pos = wxDefaultPosition,
const wxSize &dims = wxDefaultSize,
long style = 0, const wxString &name = "wxvisCanvas" );
/** Event handlers */
void OnPaint( wxPaintEvent &event );
void OnSize( wxSizeEvent &event );
void OnEraseBackground( wxEraseEvent &event );
void OnKeyPress( wxKeyEvent &event );
DECLARE_EVENT_TABLE()
public:
/** Miscellaneous methods */
void initialise();
/** Returns the number of depth bits */
int getDepthBits();
/** Returns the number of stencil bits */
int getStencilBits();
/** Returns the parent frame */
wxvisFrame *getParent() { return _parent; }
};
#endif /** !_WXPROJECTMVISCANVAS_H */