Graphite Version 3
An experimental 3D geometry processing program
|
A class derived from RenderingContext that interfaces the Application class with Graphite. More...
#include <OGF/skin_imgui/types/rendering_context.h>
Public Member Functions | |
SkinImGUIRenderingContext (GLUPcontext glup_context) | |
SkinImGUIRenderingContext constructor. | |
void | begin_frame () override |
Begins a new frame. | |
void | end_frame () override |
Terminates a frame. | |
void | resize (index_t w, index_t h) override |
Must be called whenever the rendering context is resized. | |
void | draw_last_frame () |
Draws the frame that was rendered in the FBO. | |
void | snapshot (Image *image, bool make_current=true, index_t x0=0, index_t y0=0, index_t w=0, index_t h=0) override |
![]() | |
RenderingContext (GLUPcontext glup_context=nullptr) | |
RenderingContext constructor. | |
~RenderingContext () override | |
RenderingContext destructor. | |
index_t | get_width () const |
Gets the width. | |
index_t | get_height () const |
Gets the height. | |
bool | initialized () const |
Tests whether this RenderingContext is initialized. | |
virtual void | make_current () |
Makes this RenderingContext the current one. | |
virtual void | done_current () |
This function should be called when client code is done with rendering to the current context. | |
virtual void | swap_buffers () |
Meant to make the rendered frame visible. | |
void | clear () |
Clears this RenderingContext. | |
void | load_viewing_matrix (const mat4 &m) |
Sets the current viewing matrix. | |
void | mul_viewing_matrix (const mat4 &m) |
Multiplies the current viewing matrix by another one. | |
const mat4 & | viewing_matrix () const |
Gets the current viewing matrix. | |
const mat4 & | inverse_viewing_matrix () const |
Gets the inverse of the current viewing matrix. | |
void | load_projection_matrix (const mat4 &m) |
Sets the projection matrix and sends it to OpenGL. | |
mat4 | projection_matrix () const |
Gets the projection matrix. | |
const Color & | background_color () const |
Gets the primary background color. | |
void | set_background_color (const Color &c) |
Sets the primary background color. | |
const Color & | background_color_2 () const |
Gets the secondary background color. | |
void | set_background_color_2 (const Color &c) |
Sets the secondary background color. | |
void | set_background_image (Image *image) |
Sets the background image. | |
void | update_background_image_from_data (Memory::pointer ptr, Image::ColorEncoding color_encoding, Image::ComponentEncoding component_encoding, index_t width, index_t height) |
Updates the background image from raw data pointer. | |
void | set_lighting_matrix (const mat4 &m) |
Sets the lighting matrix. | |
const mat4 & | lighting_matrix () const |
Gets the lighting matrix. | |
mat4 | clipping_matrix () const |
Gets the clipping matrix. | |
void | set_clipping_matrix (const mat4 &m) |
Sets the lighting matrix. | |
void | set_clipping (bool x) |
Activates or deactivates clipping. | |
bool | get_clipping () const |
Tests whether clipping is active. | |
void | set_clipping_equation (const vec4 &x) |
Sets the clipping equation. | |
const vec4 & | get_clipping_translation () const |
Gets the clipping equation. | |
void | set_clipping_viewer (bool x) |
Sets whether clipping translation and rotation are applied in object bounding box or in viewer coordinates. | |
bool | get_clipping_viewer () const |
Tests whether clipping translation and rotation are applied in object bounding box or in viewer coordinates. | |
GLUPclipMode | get_clipping_mode () const |
Gets the current clipping mode. | |
void | set_clipping_mode (GLUPclipMode mode) |
Sets the current clipping mode. | |
bool | double_buffer () const |
Tests whether this RenderingContext uses double buffering. | |
bool | stereo () const |
Tests whether this RenderingContext uses stereo rendering. | |
virtual void | set_double_buffer (bool b) |
Specifies whether double buffering should be used. | |
std::string | gl_vendor () const |
Gets the OpenGL vendor. | |
std::string | gl_renderer () const |
Gets the OpenGL renderer. | |
std::string | gl_version () const |
Gets the OpenGL version. | |
std::string | gl_extensions () const |
Gets the OpenGL extension. | |
std::string | get_gpu_information () const |
Gets the information on the GPU. | |
std::string | get_gpu_extensions () const |
Gets the GPU extensions. | |
void | set_full_screen_effect (FullScreenEffectImpl *fse) |
Sets the full screen effect. | |
FullScreenEffectImpl * | get_full_screen_effect () const |
Gets the current full screen effect. | |
vec2 | screen_to_ndc (index_t x, index_t y) const |
Transforms screen coordinates to normalized device coordinates (viewport transform). | |
void | ndc_to_screen (const vec2 &ndc, index_t &x, index_t &y) const |
Transforms normalized device coordinates to screen coordinates (inverse viewport transform). \parma[in] ndc the normalized device coordinates of the point (x and y between -1.0 and 1.0). | |
virtual void | begin_picking (const vec2 &ndc) |
Enters picking mode. | |
virtual void | end_picking () |
Exits picking mode. | |
index_t | picked_id () const |
Gets the picked id that was encoded in the pixel color under the mouse pointer. | |
double | picked_depth () const |
Gets the depth of the picked point in screen coordinates. | |
const vec3 & | picked_point () const |
Gets the picked point in world coordinates. | |
bool | picked_background () const |
Tests whether the background was picked. | |
vec3 | unproject (const vec2 &p_ndc, double depth) const |
Back-transforms a point given by its normalized device coordinates and depth. | |
void | check_gl () const |
Tests whether there was any OpenGL error. | |
GLuint | frame_buffer_id () const |
Gets the default frame buffer id. | |
bool | contains_picking_image () const |
Tests whether the image is a picking image. | |
Overlay & | overlay () |
Gets the Overlay. | |
![]() | |
void | ref () const |
Increments the reference count. | |
void | unref () const |
Decrements the reference count. | |
bool | is_shared () const |
Check if the object is shared. | |
int | nb_refs () const |
Gets the number of references that point to this object. | |
Additional Inherited Members | |
![]() | |
static RenderingContext * | current () |
Gets the current RenderingContext. | |
static bool | is_currently_rendering () |
Tests whether a rendering operation is occuring. | |
static bool | is_currently_picking () |
Tests whether a picking operation is occuring. | |
![]() | |
static void | ref (const Counted *counted) |
Increments the reference count. | |
static void | unref (const Counted *counted) |
Decrements the reference count. | |
![]() | |
virtual void | draw_background () |
Draws the background. | |
void | setup_viewport () |
Setups the viewport transform. | |
void | setup_projection_ortho (double zNear, double zFar) |
Setups the OpenGL projection matrix in orthographic mode. | |
void | setup_projection_perspective (double zScreen, double zNear, double zFar, double eye_offset=0.0) |
Setups the OpenGL projection matrix in orthographic mode. | |
void | setup_modelview (double zScreen) |
Setups the OpenGL model view transform from the viewing parameters. | |
void | setup_lighting () |
Setups OpenGL lighting parameters. | |
void | update_clipping () |
Create a clipping plane perpendicular to the Z axis, transformed by the current clipping matrix and the modelview matrix. | |
Texture * | background_texture () const |
Gets the background texture. | |
void | set_initialized (bool x=true) |
Indicates whether this RenderingContext is initialized. | |
void | set_width (index_t w) |
Sets the width. | |
void | set_height (index_t h) |
Sets the height. | |
void | get_view_parameters () |
Queries the Graphite environment for global rendering parameters, e.g. stereo & perspective, and updates member variables if this RenderingContext accordingly. | |
void | get_picked_point () |
In picking mode, this function gets all the information about the picked point, by reading the depth buffer and the color buffer with color-coded id. | |
![]() | |
Counted () | |
Creates a reference counted object. | |
virtual | ~Counted () |
Destroys a reference counted object. | |
![]() | |
static const double * | convert_matrix (const mat4 &M) |
Converts (transposes) a Graphite matrix for OpenGL use. | |
![]() | |
bool | initialized_ |
index_t | width_ |
index_t | height_ |
bool | double_buffer_ |
int | viewport_x_ |
int | viewport_y_ |
int | viewport_width_ |
int | viewport_height_ |
mat4 | viewing_matrix_ |
mat4 | inverse_viewing_matrix_ |
bool | inverse_viewing_matrix_dirty_ |
bool | lighting_ |
mat4 | lighting_matrix_ |
bool | clipping_ |
mat4 | clipping_matrix_ |
vec4 | clipping_equation_ |
bool | clipping_viewer_ |
GLUPclipMode | clipping_mode_ |
Color | background_color_ |
Color | background_color_2_ |
Texture_var | background_texture_ |
FullScreenEffectImpl_var | full_screen_effect_ |
bool | perspective_ |
bool | stereo_ |
bool | stereo_odd_frame_ |
double | stereo_eye_dist_ |
vec3 | head_position_ |
double | head_tilt_ |
bool | picking_mode_ |
vec2 | picked_ndc_ |
double | picked_depth_ |
index_t | picked_id_ |
vec3 | picked_point_ |
bool | picked_background_ |
bool | last_frame_was_picking_ |
GLuint | frame_buffer_id_ |
The identifier of the default frame buffer associated with this RenderingContext. | |
bool | frame_buffer_id_init_ |
GLUPcontext | glup_context_ |
The GLUP context. | |
bool | owns_glup_context_ |
bool | use_core_profile_ |
bool | use_ES_profile_ |
bool | transparent_ |
Overlay | overlay_ |
![]() | |
static RenderingContext * | current_ |
static bool | geogram_gfx_initialized_ |
static index_t | nb_render_locks_ |
The number of RenderingContext instances that are currently rendering something, i.e. between begin_frame() and end_frame(). | |
static index_t | nb_picking_locks_ |
The number of RenderingContext instances that are currently picking something, or that contain a picking image in their color buffer. | |
A class derived from RenderingContext that interfaces the Application class with Graphite.
Uses a FrameBufferObject so that the GUI can be refreshed without needing to redraw 3D content.
Definition at line 55 of file rendering_context.h.
|
inline |
SkinImGUIRenderingContext constructor.
[in] | glup_context | the GLUP context to be used for rendering. |
Definition at line 63 of file rendering_context.h.
|
overridevirtual |
Begins a new frame.
This clears the color and depth buffer, and setups the viewing matrix. This function calls make_current() before issuing any OpenGL call.
Reimplemented from OGF::RenderingContext.
|
overridevirtual |
Terminates a frame.
Reimplemented from OGF::RenderingContext.
Must be called whenever the rendering context is resized.
Updates the viewport transform.
[in] | w | the new width |
[in] | h | the new height |
Reimplemented from OGF::RenderingContext.
|
overridevirtual |
Copies the color buffer onto the specified image.
[out] | image | The image, it should have the same size as this RenderingContext and should be in RGB mode. |
[in] | make_current | if true, makes this rendering context the current rendering context before reading the pixels. |
[in] | x0,y0,width,height | optional image bounds. If let unspecified, the entire picking buffer is copied. |
Reimplemented from OGF::RenderingContext.