Visualization Library 2.0.0
A lightweight C++ OpenGL middleware for 2D/3D graphics
|
[Download] [Tutorials] [All Classes] [Grouped Classes] |
The Win32Context class implements an OpenGLContext using the Win32 API. More...
#include <Win32Context.hpp>
Public Member Functions | |
Win32Context () | |
Win32Context (int w, int h) | |
~Win32Context () | |
virtual HWND | hwnd () const =0 |
HDC | hdc () const |
HGLRC | hglrc () const |
void | shareOpenGLResources (HGLRC hGLRC) |
Use this function when you want two OpenGL contexts to share their resources (display lists, textures, shader objects, buffer objects etc.) Equivalent to wglShareLists(this->hglrc(), hGLRC) More... | |
void | makeCurrent () |
Sets the OpenGL context as current for the calling thread. More... | |
void | update () |
If the OpenGLContext is a widget this function requests a redraw and generates an updateEvent(). More... | |
void | swapBuffers () |
Swaps the back and front buffers to present the last rendering. More... | |
void | setWindowTitle (const vl::String &title) |
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 | getFocus () |
If the OpenGL context is a widget this function requests the mouse focus on it. 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... | |
void | setMousePosition (int x, int y) |
If the OpenGL context is a widget this function sets the mouse position. More... | |
void | setPosition (int x, int y) |
If the OpenGL context is a widget this function sets its position. More... | |
vl::ivec2 | position () const |
If the OpenGL context is a widget this function returns its position. More... | |
void | setSize (int w, int h) |
The actual size of the OpenGL context, i.e. More... | |
vl::ivec2 | size () const |
The actual size of the OpenGL context, i.e. the client area if this is a window. More... | |
void | setWindowSize (int w, int h) |
Sets the size of the window. Note that if this Win32Window has window decorations the actual OpenGL context will be smaller than the given w and h parameters. More... | |
vl::ivec2 | windowSize () const |
Returns the size of the window and not the client area. More... | |
bool | setFullscreen (bool fullscreen_on) |
If the OpenGL context is a widget this function requests a maximization to fullscreen. More... | |
void | quitApplication () |
Calls the PostQuitMessage(0) function (Win32 API). More... | |
const std::vector< int > & | contextAttribs () const |
Context attributes used when creating an OpenGL 3.x / 4.x context. More... | |
std::vector< int > & | contextAttribs () |
Context attributes used when creating an OpenGL 3.x / 4.x context. More... | |
void | setContextAttribs (const int *attribs, int size) |
Context attributes used when creating an OpenGL 3.x / 4.x context. 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... | |
Protected Member Functions | |
bool | initWin32GLContext (HGLRC share_context, const vl::String &title, const vl::OpenGLContextFormat &fmt, int x, int y, int width, int height) |
Protected Member Functions inherited from vl::Object | |
virtual | ~Object () |
Additional Inherited Members | |
Static Public Member Functions inherited from vl::OpenGLContext | |
static bool | areUniformsColliding (const UniformSet *u1, const UniformSet *u2) |
Returns true if the two UniformSet contain at least one Uniform variable with the same name. More... | |
The Win32Context class implements an OpenGLContext using the Win32 API.
Definition at line 46 of file Win32Context.hpp.
|
inline |
Definition at line 49 of file Win32Context.hpp.
|
inline |
Definition at line 51 of file Win32Context.hpp.
Win32Context::~Win32Context | ( | ) |
Definition at line 40 of file Win32Context.cpp.
|
inline |
Context attributes used when creating an OpenGL 3.x / 4.x context.
The flags must be the ones specified by http://www.opengl.org/registry/specs/ARB/wgl_create_context.txt
Definition at line 111 of file Win32Context.hpp.
|
inline |
Context attributes used when creating an OpenGL 3.x / 4.x context.
The flags must be the ones specified by http://www.opengl.org/registry/specs/ARB/wgl_create_context.txt
Definition at line 115 of file Win32Context.hpp.
|
virtual |
If the OpenGL context is a widget this function requests the mouse focus on it.
Reimplemented from vl::OpenGLContext.
Definition at line 146 of file Win32Context.cpp.
|
inline |
Definition at line 57 of file Win32Context.hpp.
Referenced by vlWin32::Win32Window::WindowProc().
|
inline |
Definition at line 59 of file Win32Context.hpp.
Referenced by vlMFC::MFCWindow::initMFCWindow(), and vlWin32::Win32Window::WindowProc().
|
virtual |
If the OpenGL context is a widget this function makes it invisible to the user.
Reimplemented from vl::OpenGLContext.
Definition at line 140 of file Win32Context.cpp.
|
pure virtual |
Implemented in vlWin32::Win32Window, vlMFC::MFCWindow, and vlMFC::MDIWindow.
|
protected |
Definition at line 249 of file Win32Context.cpp.
References vlWin32::choosePixelFormat(), vl::Log::error(), vl::OpenGLContextFormat::fullscreen(), mHDC, mHGLRC, vl::OpenGLContextFormat::multisample(), NULL, VL_CHECK, and vl::OpenGLContextFormat::vSync().
|
virtual |
Sets the OpenGL context as current for the calling thread.
Implements vl::OpenGLContext.
Definition at line 50 of file Win32Context.cpp.
|
virtual |
If the OpenGL context is a widget this function returns its position.
Reimplemented from vl::OpenGLContext.
Definition at line 103 of file Win32Context.cpp.
|
virtual |
Calls the PostQuitMessage(0) function (Win32 API).
Reimplemented from vl::OpenGLContext.
Definition at line 62 of file Win32Context.cpp.
void Win32Context::setContextAttribs | ( | const int * | attribs, |
int | size | ||
) |
Context attributes used when creating an OpenGL 3.x / 4.x context.
The flags must be the ones specified by http://www.opengl.org/registry/specs/ARB/wgl_create_context.txt
Definition at line 374 of file Win32Context.cpp.
References vlWin32::gWin32WindowClassName, and vlWin32::registerClass().
|
virtual |
If the OpenGL context is a widget this function requests a maximization to fullscreen.
Reimplemented from vl::OpenGLContext.
Definition at line 168 of file Win32Context.cpp.
References NULL.
|
virtual |
If the OpenGL context is a widget this function sets the mouse position.
Reimplemented from vl::OpenGLContext.
Definition at line 152 of file Win32Context.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 67 of file Win32Context.cpp.
|
virtual |
If the OpenGL context is a widget this function sets its position.
Reimplemented from vl::OpenGLContext.
Definition at line 76 of file Win32Context.cpp.
|
virtual |
The actual size of the OpenGL context, i.e.
the client area if this is a window. Note that if this Win32Window has window decorations the actual window size will be bigger than the given w and h parameters.
Reimplemented from vl::OpenGLContext.
Definition at line 82 of file Win32Context.cpp.
void Win32Context::setWindowSize | ( | int | w, |
int | h | ||
) |
Sets the size of the window. Note that if this Win32Window has window decorations the actual OpenGL context will be smaller than the given w and h parameters.
Definition at line 95 of file Win32Context.cpp.
|
virtual |
If the OpenGL context is a top window this function sets its title.
Reimplemented from vl::OpenGLContext.
Definition at line 128 of file Win32Context.cpp.
References vl::String::ptr().
void Win32Context::shareOpenGLResources | ( | HGLRC | hGLRC | ) |
Use this function when you want two OpenGL contexts to share their resources (display lists, textures, shader objects, buffer objects etc.) Equivalent to wglShareLists(this->hglrc(), hGLRC)
Definition at line 44 of file Win32Context.cpp.
|
virtual |
If the OpenGL context is a widget this function makes it visible to the user.
Reimplemented from vl::OpenGLContext.
Definition at line 134 of file Win32Context.cpp.
vl::ivec2 Win32Context::size | ( | ) | const |
The actual size of the OpenGL context, i.e. the client area if this is a window.
Definition at line 119 of file Win32Context.cpp.
|
virtual |
Swaps the back and front buffers to present the last rendering.
Implements vl::OpenGLContext.
Definition at line 162 of file Win32Context.cpp.
|
virtual |
If the OpenGLContext is a widget this function requests a redraw and generates an updateEvent().
Implements vl::OpenGLContext.
Definition at line 56 of file Win32Context.cpp.
Referenced by vlWin32::dispatchUpdate().
vl::ivec2 Win32Context::windowSize | ( | ) | const |
Returns the size of the window and not the client area.
Use the size() method if you need the size of the actual OpenGL rendering context.
Definition at line 111 of file Win32Context.cpp.
|
protected |
Definition at line 125 of file Win32Context.hpp.
|
protected |
Definition at line 127 of file Win32Context.hpp.
Referenced by initWin32GLContext().
|
protected |
Definition at line 128 of file Win32Context.hpp.
Referenced by initWin32GLContext().
|
protected |
Definition at line 132 of file Win32Context.hpp.
|
protected |
Definition at line 130 of file Win32Context.hpp.
|
protected |
Definition at line 131 of file Win32Context.hpp.
Visualization Library 2.0.0 Reference Documentation
Updated on Wed Dec 23 2020 12:44:13.
© Copyright Michele Bosi. All rights reserved.