gtkmm: Gdk::DrawContext Class Reference

gtkmm 4.2.0

Public Member Functions | Static Public Member Functions | Protected Member Functions | Related Functions | List of all members
Gdk::DrawContext Class Reference

Drawing context base class. More...

`#include <gdkmm/drawcontext.h>`

Inheritance diagram for Gdk::DrawContext:
[legend]

## Public Member Functions
| DrawContext (DrawContext&& src) noexcept
DrawContext& | operator= (DrawContext&& src) noexcept
| ~DrawContext () noexcept override
GdkDrawContext* | gobj ()
| Provides access to the underlying C GObject. More...
const GdkDrawContext* | gobj () const
| Provides access to the underlying C GObject. More...
GdkDrawContext* | gobj_copy ()
| Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs. More...
Glib::RefPtr< Display > | get_display ()
| Retrieves the `GdkDisplay` the context is created for. More...
Glib::RefPtr< const Display > | get_display () const
| Retrieves the `GdkDisplay` the context is created for. More...
Glib::RefPtr< Surface > | get_surface ()
| Retrieves the surface that context is bound to. More...
Glib::RefPtr< const Surface > | get_surface () const
| Retrieves the surface that context is bound to. More...
void | begin_frame (const ::Cairo::RefPtr< const ::Cairo::Region >& region)
| Indicates that you are beginning the process of redrawing region on the context's surface. More...
void | end_frame ()
| Ends a drawing operation started with begin_frame(). More...
bool | is_in_frame () const
| Returns `true` if context is in the process of drawing to its surface. More...
::Cairo::RefPtr< const ::Cairo::Region > | get_frame_region () const
| Retrieves the region that is currently being repainted. More...
Glib::PropertyProxy_ReadOnly< Glib::RefPtr< Display > > | property_display () const
| The `GdkDisplay` used to create the `GdkDrawContext`. More...
Glib::PropertyProxy_ReadOnly< Glib::RefPtr< Surface > > | property_surface () const
| The `GdkSurface` the context is bound to. More...
Public Member Functions inherited from Glib::Object
| Object (const Object &)=delete
Object & | operator= (const Object &)=delete
| Object (Object &&src) noexcept
Object & | operator= (Object &&src) noexcept
void * | get_data (const QueryQuark &key)
void | set_data (const Quark &key, void *data)
void | set_data (const Quark &key, void *data, DestroyNotify notify)
void | remove_data (const QueryQuark &quark)
void * | steal_data (const QueryQuark &quark)
Glib::RefPtr< Glib::Object > | wrap (GObject *object, bool take_copy=false)
Public Member Functions inherited from Glib::ObjectBase
| ObjectBase (const ObjectBase &)=delete
ObjectBase & | operator= (const ObjectBase &)=delete
void | set_property_value (const Glib::ustring &property_name, const Glib::ValueBase &value)
void | get_property_value (const Glib::ustring &property_name, Glib::ValueBase &value) const
void | set_property (const Glib::ustring &property_name, const PropertyType &value)
void | get_property (const Glib::ustring &property_name, PropertyType &value) const
PropertyType | get_property (const Glib::ustring &property_name) const
sigc::connection | connect_property_changed (const Glib::ustring &property_name, const sigc::slot< void()> &slot)
sigc::connection | connect_property_changed (const Glib::ustring &property_name, sigc::slot< void()> &&slot)
void | freeze_notify ()
void | thaw_notify ()
virtual void | reference () const
virtual void | unreference () const
GObject * | gobj ()
const GObject * | gobj () const
GObject * | gobj_copy () const

## Static Public Member Functions
static GType | get_type ()
| Get the GType for this class, for use with the underlying GObject type system. More...

## Protected Member Functions
| DrawContext ()
| This constructor is protected because only derived classes shall be instantiated. More...
Protected Member Functions inherited from Glib::Object
| Object ()
| Object (const Glib::ConstructParams &construct_params)
| Object (GObject *castitem)
| ~Object () noexcept override
Protected Member Functions inherited from Glib::ObjectBase
| ObjectBase ()
| ObjectBase (const char *custom_type_name)
| ObjectBase (const std::type_info &custom_type_info)
| ObjectBase (ObjectBase &&src) noexcept
ObjectBase & | operator= (ObjectBase &&src) noexcept
virtual | ~ObjectBase () noexcept=0
void | initialize (GObject *castitem)
void | initialize_move (GObject *castitem, Glib::ObjectBase *previous_wrapper)

## Related Functions
(Note that these are not member functions.)
Glib::RefPtr< Gdk::DrawContext > | wrap (GdkDrawContext* object, bool take_copy=false)
| A Glib::wrap() method for this object. More...

## Additional Inherited Members
Public Types inherited from Glib::Object
typedef void(*)(gpointer data | DestroyNotify)

## Detailed Description

Drawing context base class.

Gdk::DrawContext is the base object used by contexts implementing different rendering methods, such as GLContext or VulkanContext. It provides shared functionality between those contexts.

You will always interact with one of those subclasses.

Since gtkmm 3.90:

## Constructor & Destructor Documentation

## ◆ DrawContext() [1/2]

Gdk::DrawContext::DrawContext | ( | DrawContext&& | src | ) |
| noexcept

## ◆ ~DrawContext()

Gdk::DrawContext::~DrawContext | ( |  | ) |
| overridenoexcept

## ◆ DrawContext() [2/2]

Gdk::DrawContext::DrawContext | ( |  | ) |
| protected

This constructor is protected because only derived classes shall be instantiated.

## Member Function Documentation

## ◆ begin_frame()

void Gdk::DrawContext::begin_frame | ( | const ::Cairo::RefPtr< const ::Cairo::Region > & | region | ) |

Indicates that you are beginning the process of redrawing region on the context's surface.

Calling this function begins a drawing operation using context on the surface that context was created from. The actual requirements and guarantees for the drawing operation vary for different implementations of drawing, so a [class Gdk.CairoContext] and a [class Gdk.GLContext] need to be treated differently.

A call to this function is a requirement for drawing and must be followed by a call to [method Gdk.DrawContext.end_frame], which will complete the drawing operation and ensure the contents become visible on screen.

Note that the region passed to this function is the minimum region that needs to be drawn and depending on implementation, windowing system and hardware in use, it might be necessary to draw a larger region. Drawing implementation must use [method Gdk.DrawContext.get_frame_region() to query the region that must be drawn.

When using GTK, the widget system automatically places calls to begin_frame() and end_frame() via the use of [class Gsk.Renderer]s, so application code does not need to call these functions explicitly.

Parameters

  region | Minimum region that should be drawn.

## ◆ end_frame()

void Gdk::DrawContext::end_frame | ( |  | ) |

Ends a drawing operation started with begin_frame().

This makes the drawing available on screen. See [method Gdk.DrawContext.begin_frame] for more details about drawing.

When using a [class Gdk.GLContext], this function may call `glFlush()` implicitly before returning; it is not recommended to call `glFlush()` explicitly before calling this function.

## ◆ get_display() [1/2]

Glib::RefPtr<Display> Gdk::DrawContext::get_display | ( |  | ) |

Retrieves the `GdkDisplay` the context is created for.

Returns
  A `GdkDisplay` or `nullptr`.

## ◆ get_display() [2/2]

Glib::RefPtr<const Display> Gdk::DrawContext::get_display | ( |  | ) | const

Retrieves the `GdkDisplay` the context is created for.

Returns
  A `GdkDisplay` or `nullptr`.

## ◆ get_frame_region()

::Cairo::RefPtr<const ::Cairo::Region> Gdk::DrawContext::get_frame_region | ( |  | ) | const

Retrieves the region that is currently being repainted.

After a call to [method Gdk.DrawContext.begin_frame] this function will return a union of the region passed to that function and the area of the surface that the context determined needs to be repainted.

If context is not in between calls to [method Gdk.DrawContext.begin_frame] and [method Gdk.DrawContext.end_frame], `nullptr` will be returned.

Returns
  A Cairo region or `nullptr` if not drawing a frame.

## ◆ get_surface() [1/2]

Glib::RefPtr<Surface> Gdk::DrawContext::get_surface | ( |  | ) |

Retrieves the surface that context is bound to.

Returns
  A Gdk::Surface or `nullptr`.

## ◆ get_surface() [2/2]

Glib::RefPtr<const Surface> Gdk::DrawContext::get_surface | ( |  | ) | const

Retrieves the surface that context is bound to.

Returns
  A Gdk::Surface or `nullptr`.

## ◆ get_type()

static GType Gdk::DrawContext::get_type | ( |  | ) |
| static

Get the GType for this class, for use with the underlying GObject type system.

## ◆ gobj() [1/2]

GdkDrawContext* Gdk::DrawContext::gobj | ( |  | ) |
| inline

Provides access to the underlying C GObject.

## ◆ gobj() [2/2]

const GdkDrawContext* Gdk::DrawContext::gobj | ( |  | ) | const
| inline

Provides access to the underlying C GObject.

## ◆ gobj_copy()

GdkDrawContext* Gdk::DrawContext::gobj_copy | ( |  | ) |

Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs.

## ◆ is_in_frame()

bool Gdk::DrawContext::is_in_frame | ( |  | ) | const

Returns `true` if context is in the process of drawing to its surface.

This is the case between calls to [method Gdk.DrawContext.begin_frame] and [method Gdk.DrawContext.end_frame]. In this situation, drawing commands may be effecting the contents of the context's surface.

Returns
  `true` if the context is between [method Gdk.DrawContext.begin_frame] and [method Gdk.DrawContext.end_frame] calls.

## ◆ operator=()

DrawContext& Gdk::DrawContext::operator= | ( | DrawContext&& | src | ) |
| noexcept

## ◆ property_display()

Glib::PropertyProxy_ReadOnly< Glib::RefPtr<Display> > Gdk::DrawContext::property_display | ( |  | ) | const

The `GdkDisplay` used to create the `GdkDrawContext`.

Returns
  A PropertyProxy_ReadOnly that allows you to get the value of the property, or receive notification when the value of the property changes.

## ◆ property_surface()

Glib::PropertyProxy_ReadOnly< Glib::RefPtr<Surface> > Gdk::DrawContext::property_surface | ( |  | ) | const

The `GdkSurface` the context is bound to.

Returns
  A PropertyProxy_ReadOnly that allows you to get the value of the property, or receive notification when the value of the property changes.

## Friends And Related Function Documentation

## ◆ wrap()

Glib::RefPtr< Gdk::DrawContext > wrap | ( | GdkDrawContext * | object,
|  | bool | take_copy = `false`
| ) |  |
| related

A Glib::wrap() method for this object.

Parameters

  object | The C instance.
  take_copy | False if the result should take ownership of the C instance. True if it should take a new copy or ref.

Returns
  A C++ instance that wraps this C instance.