Visualization Library 2.0.0
A lightweight C++ OpenGL middleware for 2D/3D graphics
|
[Download] [Tutorials] [All Classes] [Grouped Classes] |
The WXGLCanvas class implements a vl::OpenGLContext using the wxWidgets library. More...
#include <WXGLCanvas.hpp>
Public Member Functions | |
WXGLCanvas (wxWindow *parent, const wxGLContext *shared, wxWindowID id=wxID_ANY, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=0, int *attribList=0, const wxString &name=wxT("WXGLCanvas"), const wxPalette &palette=wxNullPalette) | |
~WXGLCanvas () | |
void | OnPaint (wxPaintEvent &ev) |
void | OnSize (wxSizeEvent &ev) |
void | OnEraseBackground (wxEraseEvent &ev) |
void | OnKeyDown (wxKeyEvent &ev) |
void | OnKeyUp (wxKeyEvent &ev) |
void | OnMouseMotion (wxMouseEvent &ev) |
void | OnMouseDown (wxMouseEvent &ev) |
void | OnMouseUp (wxMouseEvent &ev) |
void | OnMouseWheel (wxMouseEvent &ev) |
void | OnMouseEnter (wxMouseEvent &ev) |
void | OnIdle (wxIdleEvent &ev) |
void | OnDropFiles (wxDropFilesEvent &ev) |
bool | setFullscreen (bool fullscreen) |
If the OpenGL context is a widget this function requests a maximization to fullscreen. More... | |
void | quitApplication () |
Asks to the windowing system that is managing the OpenGLContext to quit the application. More... | |
void | makeCurrent () |
Sets the OpenGL context as current for the calling thread. More... | |
void | swapBuffers () |
Swaps the back and front buffers to present the last rendering. More... | |
void | getFocus () |
If the OpenGL context is a widget this function requests the mouse focus on it. More... | |
void | setMousePosition (int x, int y) |
If the OpenGL context is a widget this function sets the mouse position. More... | |
void | update () |
If the OpenGLContext is a widget this function requests a redraw and generates an updateEvent(). More... | |
void | setWindowTitle (const vl::String &text) |
If the OpenGL context is a top window this function sets its title. More... | |
void | show () |
If the OpenGL context is a widget this function makes it visible to the user. More... | |
void | hide () |
If the OpenGL context is a widget this function makes it invisible to the user. More... | |
void | setPosition (int x, int y) |
If the OpenGL context is a widget this function sets its position. More... | |
void | setSize (int w, int h) |
If the OpenGL context is a widget this function sets its size. More... | |
vl::ivec2 | position () const |
If the OpenGL context is a widget this function returns its position. More... | |
void | setMouseVisible (bool visible) |
If the OpenGL context is a widget this function sets whether the mouse is visible over it or not. More... | |
Public Member Functions inherited from vl::OpenGLContext | |
OpenGLContext (int w=0, int h=0) | |
Constructor. More... | |
~OpenGLContext () | |
Destructor. More... | |
bool | initGLContext (bool log=true) |
Initializes the supported OpenGL extensions. More... | |
void | logOpenGLInfo () |
Logs some information about the OpenGL context. More... | |
const std::string & | extensions () const |
Returns the list of OpenGL extensions supported separated by '|' characters. More... | |
bool | isExtensionSupported (const char *ext_name) |
Returns true if the given extension is supported. More... | |
void * | getProcAddress (const char *function_name) |
Returns the address of an OpenGL extension function. More... | |
Framebuffer * | leftFramebuffer () |
The render target representing the default left framebuffer. More... | |
const Framebuffer * | leftFramebuffer () const |
The render target representing the default left framebuffer. More... | |
Framebuffer * | rightFramebuffer () |
The render target representing the default right framebuffer (if a stereo OpenGL context is present). More... | |
const Framebuffer * | rightFramebuffer () const |
The render target representing the default right framebuffer (if a stereo OpenGL context is present). More... | |
Framebuffer * | framebuffer () |
The default render target (always returns leftFramebuffer()). More... | |
const Framebuffer * | framebuffer () const |
The default render target (always returns leftFramebuffer()). More... | |
ref< FramebufferObject > | createFramebufferObject () |
Equivalent to "createFramebufferObject(0,0);" . More... | |
ref< FramebufferObject > | createFramebufferObject (int width, int height, EReadDrawBuffer draw_buffer=RDB_COLOR_ATTACHMENT0, EReadDrawBuffer read_buffer=RDB_COLOR_ATTACHMENT0) |
Creates a new FramebufferObject (framebuffer object Framebuffer). More... | |
void | destroyFramebufferObject (FramebufferObject *fbort) |
Destroys the specified FramebufferObject. More... | |
void | destroyAllFramebufferObjects () |
Removes all FramebufferObjects belonging to an OpenGLContext. More... | |
void | destroyAllOpenGLResources () |
Removes all OpenGL resources handled by the OpenGLContext. More... | |
virtual bool | fullscreen () const |
If the OpenGL context is a widget this function returns whether it has been maximized to fullscreen. More... | |
int | width () const |
Returns the width in pixels of an OpenGLContext. More... | |
int | height () const |
Returns the height in pixels of an OpenGLContext. More... | |
virtual bool | mouseVisible () const |
If the OpenGL context is a widget this function returns whether the mouse is visible over it or not. More... | |
void | setVSyncEnabled (bool enable) |
If the OpenGL context is a widget this function enabled/disables double buffer swapping to the monitor's vertical synch. More... | |
bool | vsyncEnabled () const |
If the OpenGL context is a widget this function returns whether vsync is enabled or not. More... | |
virtual void | setContinuousUpdate (bool continuous) |
If the OpenGL context is a widget this function sets whether its area is continuously updated at each frame. More... | |
bool | continuousUpdate () const |
If the OpenGL context is a widget this function returns whether its area is continuously updated at each frame. More... | |
void | addEventListener (UIEventListener *el) |
Adds an UIEventListener to be notified of OpenGLContext related events. More... | |
void | removeEventListener (UIEventListener *el) |
Removes an UIEventListener. More... | |
void | eraseAllEventListeners () |
Removes all UIEventListener previously registered. More... | |
const std::vector< ref< UIEventListener > > & | eventListeners () const |
The currently UIEventListener registered to be notified of OpenGLContext related events. More... | |
const UIEventListener * | eventListener (int i) const |
Returns the i-th UIEventListener registered to an OpenGLContext. More... | |
UIEventListener * | eventListener (int i) |
Returns the i-th UIEventListener registered to an OpenGLContext. More... | |
int | eventListenerCount () const |
Returns the number of UIEventListener registered to an OpenGLContext. More... | |
const OpenGLContextFormat & | openglContextInfo () const |
Returns an OpenGLContextFormat structure describing an OpenGLContext. More... | |
void | setOpenGLContextInfo (const OpenGLContextFormat &info) |
Sets the OpenGLContextFormat associated to an OpenGLContext. More... | |
void | ignoreNextMouseMoveEvent () |
Requests not to dispatch the next mouse move event. More... | |
void | dispatchResizeEvent (int w, int h) |
Dispatches the UIEventListener::resizeEvent() notification to the subscribed UIEventListener objects. More... | |
void | dispatchMouseMoveEvent (int x, int y) |
Dispatches the UIEventListener::mouseMoveEvent() notification to the subscribed UIEventListener objects. More... | |
void | dispatchMouseUpEvent (EMouseButton button, int x, int y) |
Dispatches the UIEventListener::mouseUpEvent() notification to the subscribed UIEventListener objects. More... | |
void | dispatchMouseDownEvent (EMouseButton button, int x, int y) |
Dispatches the UIEventListener::mouseDownEvent() notification to the subscribed UIEventListener objects. More... | |
void | dispatchMouseWheelEvent (int n) |
Dispatches the UIEventListener::mouseWheelEvent() notification to the subscribed UIEventListener objects. More... | |
void | dispatchKeyPressEvent (unsigned short unicode_ch, EKey key) |
Dispatches the UIEventListener::keyPressEvent() notification to the subscribed UIEventListener objects. More... | |
void | dispatchKeyReleaseEvent (unsigned short unicode_ch, EKey key) |
Dispatches the UIEventListener::keyReleaseEvent() notification to the subscribed UIEventListener objects. More... | |
void | dispatchDestroyEvent () |
Dispatches the UIEventListener::destroyEvent() notification to the subscribed UIEventListener(s), calls destroyAllOpenGLResources() and eraseAllEventListeners() This event must be issued just before the actual GL context is destroyed. More... | |
void | dispatchUpdateEvent () |
Dispatches the UIEventListener::updateEvent() notification to the subscribed UIEventListener objects. More... | |
void | dispatchVisibilityEvent (bool visible) |
Dispatches the UIEventListener::visibilityEvent() notification to the subscribed UIEventListener objects. More... | |
void | dispatchInitEvent () |
Dispatches the UIEventListener::initEvent() notification to the subscribed UIEventListener objects. More... | |
void | dispatchFileDroppedEvent (const std::vector< String > &files) |
Dispatches the UIEventListener::fileDroppedEvent() notification to the subscribed UIEventListener objects. More... | |
const std::set< EKey > & | keyboard () const |
Returns the std::set containing the currently pressed keys. More... | |
bool | isKeyPressed (EKey key) const |
Returns true if the given key is pressed. More... | |
void | keyPress (EKey key) |
Inserts the specified key in the set of currently active keys - For internal use only. More... | |
void | keyRelease (EKey key) |
Removes the specified key from the set of currently active keys - For internal use only. More... | |
bool | isInitialized () const |
Returns true if the OpenGLContext is in an initialized state. More... | |
int | vertexAttribCount () const |
The number (clamped to VA_MaxAttribCount) of generic vertex attributes as returned by glGet(GL_MAX_VERTEX_ATTRIBS) More... | |
int | textureImageUnitCount () const |
The number (clamped to VL_MAX_TEXTURE_IMAGE_UNITS) of texture image units supported by the current hardware. More... | |
int | textureCoordCount () const |
The number (clamped to VL_MAX_LEGACY_TEXTURE_UNITS) of fixed function pipeline texture units supported by the current hardware. More... | |
bool | hasDoubleBuffer () const |
Returns true if an OpenGLContext supports double buffering. More... | |
void | useGLSLProgram (const GLSLProgram *glsl) |
Activates the given GLSLProgram or unbinds the current one if glsl is NULL. More... | |
void | bindVAS (const IVertexAttribSet *vas, bool use_vbo, bool force) |
Activates the specified vertex attribute set - For internal use only. More... | |
void | bindVAS_Attribs (const IVertexAttribSet *vas, bool use_vbo) |
void | bindVAS_Fixed (const IVertexAttribSet *vas, bool use_vbo) |
void | bindVAS_Reset () |
void | applyEnables (const EnableSet *cur) |
Applies an EnableSet to an OpenGLContext - Typically for internal use only. More... | |
void | applyRenderStates (const RenderStateSet *cur, const Camera *camera) |
Applies a RenderStateSet to an OpenGLContext - Typically for internal use only. More... | |
void | resetEnables () |
Resets all the interanal enable-tables - For internal use only. More... | |
void | resetRenderStates () |
Resets all the interanal render-states-tables - For internal use only. More... | |
void | setDefaultRenderState (const RenderStateSlot &rs_slot) |
Defines the default render state slot to be used by the opengl context. More... | |
const RenderStateSlot & | defaultRenderState (ERenderState rs) |
Returns the default render state slot used by VL when a specific render state type is left undefined. More... | |
void | resetContextStates (EResetContextStates start_or_finish) |
Resets the OpenGL states necessary to begin and finish a rendering. - For internal use only. More... | |
void | setTexUnitBinding (int unit_i, ETextureDimension target) |
Declares that texture unit unit_i is currently bound to the specified texture target. - For internal use only. More... | |
ETextureDimension | texUnitBinding (int unit_i) const |
Returnes the texture target currently active for the specified texture unit. - For internal use only. More... | |
const GLSLProgram * | glslProgram () const |
GLSLProgram * | glslProgram () |
bool | isCleanState (bool verbose) |
Checks whether the OpenGL state is clean or not. More... | |
const fvec3 & | normal () const |
const fvec4 & | color () const |
const fvec3 & | secondaryColor () const |
const fvec4 & | vertexAttribValue (int i) const |
Public Member Functions inherited from vl::Object | |
Object () | |
Constructor. More... | |
Object (const Object &other) | |
Copy constructor: copies the name, ref count mutex and user data. More... | |
Object & | operator= (const Object &other) |
Copy operator: copies the object's name, ref count mutex and user data. More... | |
const std::string & | objectName () const |
The name of the object, by default set to the object's class name. More... | |
void | setObjectName (const char *name) |
The name of the object, by default set to the object's class name in debug builds. More... | |
void | setObjectName (const std::string &name) |
The name of the object, by default set to the object's class name in debug builds. More... | |
void | setRefCountMutex (IMutex *mutex) |
The mutex used to protect the reference counting of an Object across multiple threads. More... | |
IMutex * | refCountMutex () |
The mutex used to protect the reference counting of an Object across multiple threads. More... | |
const IMutex * | refCountMutex () const |
The mutex used to protect the reference counting of an Object across multiple threads. More... | |
int | referenceCount () const |
Returns the number of references of an object. More... | |
void | incReference () const |
Increments the reference count of an object. More... | |
void | decReference () |
Decrements the reference count of an object and deletes it if both automaticDelete() is true the count reaches 0. More... | |
void | setAutomaticDelete (bool autodel_on) |
If set to true the Object is deleted when its reference count reaches 0. More... | |
bool | automaticDelete () const |
If set to true the Object is deleted when its reference count reaches 0. More... | |
template<class T > | |
T * | as () |
Casts an Object to the specified class. More... | |
template<class T > | |
const T * | as () const |
Casts an Object to the specified class. More... | |
The WXGLCanvas class implements a vl::OpenGLContext using the wxWidgets library.
Definition at line 52 of file WXGLCanvas.hpp.
WXGLCanvas::WXGLCanvas | ( | wxWindow * | parent, |
const wxGLContext * | shared, | ||
wxWindowID | id = wxID_ANY , |
||
const wxPoint & | pos = wxDefaultPosition , |
||
const wxSize & | size = wxDefaultSize , |
||
long | style = 0 , |
||
int * | attribList = 0 , |
||
const wxString & | name = wxT("WXGLCanvas") , |
||
const wxPalette & | palette = wxNullPalette |
||
) |
Definition at line 66 of file WXGLCanvas.cpp.
References vl::Object::setAutomaticDelete().
WXGLCanvas::~WXGLCanvas | ( | ) |
Definition at line 61 of file WXGLCanvas.cpp.
|
virtual |
If the OpenGL context is a widget this function requests the mouse focus on it.
Reimplemented from vl::OpenGLContext.
Definition at line 385 of file WXGLCanvas.cpp.
|
virtual |
If the OpenGL context is a widget this function makes it invisible to the user.
Reimplemented from vl::OpenGLContext.
Definition at line 417 of file WXGLCanvas.cpp.
|
virtual |
Sets the OpenGL context as current for the calling thread.
Implements vl::OpenGLContext.
Definition at line 367 of file WXGLCanvas.cpp.
Referenced by OnPaint().
void WXGLCanvas::OnDropFiles | ( | wxDropFilesEvent & | ev | ) |
Definition at line 84 of file WXGLCanvas.cpp.
References vl::OpenGLContext::dispatchFileDroppedEvent().
void WXGLCanvas::OnEraseBackground | ( | wxEraseEvent & | ev | ) |
Definition at line 337 of file WXGLCanvas.cpp.
void WXGLCanvas::OnIdle | ( | wxIdleEvent & | ev | ) |
Definition at line 96 of file WXGLCanvas.cpp.
References vl::OpenGLContext::continuousUpdate().
void WXGLCanvas::OnKeyDown | ( | wxKeyEvent & | ev | ) |
Definition at line 298 of file WXGLCanvas.cpp.
References vl::OpenGLContext::dispatchKeyPressEvent(), vl::Key_Unknown, and translateKey().
void WXGLCanvas::OnKeyUp | ( | wxKeyEvent & | ev | ) |
Definition at line 308 of file WXGLCanvas.cpp.
References vl::OpenGLContext::dispatchKeyReleaseEvent(), vl::Key_Unknown, and translateKey().
void WXGLCanvas::OnMouseDown | ( | wxMouseEvent & | ev | ) |
Definition at line 139 of file WXGLCanvas.cpp.
References vl::OpenGLContext::dispatchMouseDownEvent(), vl::LeftButton, vl::MiddleButton, vl::RightButton, vl::UnknownButton, and VL_CHECK.
void WXGLCanvas::OnMouseEnter | ( | wxMouseEvent & | ev | ) |
Definition at line 104 of file WXGLCanvas.cpp.
void WXGLCanvas::OnMouseMotion | ( | wxMouseEvent & | ev | ) |
Definition at line 109 of file WXGLCanvas.cpp.
References vl::OpenGLContext::dispatchMouseMoveEvent().
void WXGLCanvas::OnMouseUp | ( | wxMouseEvent & | ev | ) |
Definition at line 120 of file WXGLCanvas.cpp.
References vl::OpenGLContext::dispatchMouseUpEvent(), vl::LeftButton, vl::MiddleButton, vl::RightButton, vl::UnknownButton, and VL_CHECK.
void WXGLCanvas::OnMouseWheel | ( | wxMouseEvent & | ev | ) |
Definition at line 114 of file WXGLCanvas.cpp.
References vl::OpenGLContext::dispatchMouseWheelEvent().
void WXGLCanvas::OnPaint | ( | wxPaintEvent & | ev | ) |
Definition at line 317 of file WXGLCanvas.cpp.
References vl::OpenGLContext::dispatchUpdateEvent(), makeCurrent(), and swapBuffers().
void WXGLCanvas::OnSize | ( | wxSizeEvent & | ev | ) |
Definition at line 158 of file WXGLCanvas.cpp.
References vl::OpenGLContext::dispatchResizeEvent().
|
virtual |
If the OpenGL context is a widget this function returns its position.
Reimplemented from vl::OpenGLContext.
Definition at line 432 of file WXGLCanvas.cpp.
|
virtual |
Asks to the windowing system that is managing the OpenGLContext to quit the application.
Reimplemented from vl::OpenGLContext.
Definition at line 359 of file WXGLCanvas.cpp.
References vl::OpenGLContext::eraseAllEventListeners().
|
virtual |
If the OpenGL context is a widget this function requests a maximization to fullscreen.
Reimplemented from vl::OpenGLContext.
Definition at line 342 of file WXGLCanvas.cpp.
References vl::OpenGLContext::fullscreen(), and vl::OpenGLContext::mFullscreen.
|
virtual |
If the OpenGL context is a widget this function sets the mouse position.
Reimplemented from vl::OpenGLContext.
Definition at line 390 of file WXGLCanvas.cpp.
|
virtual |
If the OpenGL context is a widget this function sets whether the mouse is visible over it or not.
Reimplemented from vl::OpenGLContext.
Definition at line 438 of file WXGLCanvas.cpp.
References vl::OpenGLContext::mMouseVisible, and vl::OpenGLContext::mouseVisible().
|
virtual |
If the OpenGL context is a widget this function sets its position.
Reimplemented from vl::OpenGLContext.
Definition at line 422 of file WXGLCanvas.cpp.
|
virtual |
If the OpenGL context is a widget this function sets its size.
Reimplemented from vl::OpenGLContext.
Definition at line 427 of file WXGLCanvas.cpp.
|
virtual |
If the OpenGL context is a top window this function sets its title.
Reimplemented from vl::OpenGLContext.
Definition at line 400 of file WXGLCanvas.cpp.
References vl::String::toStdString(), and vl::String::toStdWString().
|
virtual |
If the OpenGL context is a widget this function makes it visible to the user.
Reimplemented from vl::OpenGLContext.
Definition at line 412 of file WXGLCanvas.cpp.
|
virtual |
Swaps the back and front buffers to present the last rendering.
Implements vl::OpenGLContext.
Definition at line 376 of file WXGLCanvas.cpp.
Referenced by OnPaint().
|
virtual |
If the OpenGLContext is a widget this function requests a redraw and generates an updateEvent().
Implements vl::OpenGLContext.
Definition at line 395 of file WXGLCanvas.cpp.
Visualization Library 2.0.0 Reference Documentation
Updated on Wed Dec 23 2020 12:44:13.
© Copyright Michele Bosi. All rights reserved.