gtkmm: Gdk::DrawContext Class Reference

Drawing context base class. More...

#include <gdkmm/drawcontext.h>

Inheritance diagram for Gdk::DrawContext:

Public Member Functions

 DrawContext (DrawContext&& src) noexcept
 
DrawContextoperator= (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< Displayget_display ()
 Retrieves the Gdk::Display the context is created for. More...

 
Glib::RefPtr< const Displayget_display () const
 Retrieves the Gdk::Display the context is created for. More...

 
Glib::RefPtr< Surfaceget_surface ()
 Retrieves the Gdk::Surface used by the context. More...

 
Glib::RefPtr< const Surfaceget_surface () const
 Retrieves the Gdk::Surface used by the context. 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() and makes the drawing available on screen. More...

 
bool is_in_frame () const
 Returns true if context is in the process of drawing to its surface after a call to begin_frame() and not yet having called end_frame(). More...

 
::Cairo::RefPtr< const ::Cairo::Regionget_frame_region () const
 Retrieves the region that is currently in the process of being repainted. More...

 
Glib::PropertyProxy_ReadOnly< Glib::RefPtr< Display > > property_display () const
 The Gdk::Display used to create the Gdk::DrawContext. More...

 
Glib::PropertyProxy_ReadOnly< Glib::RefPtr< Surface > > property_surface () const
 The Gdk::Surface the context is bound to. More...

 
- Public Member Functions inherited from Glib::Object
 Object (const Object &)=delete
 
Objectoperator= (const Object &)=delete
 
 Object (Object &&src) noexcept
 
Objectoperator= (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::Objectwrap (GObject *object, bool take_copy=false)
 
- Public Member Functions inherited from Glib::ObjectBase
 ObjectBase (const ObjectBase &)=delete
 
ObjectBaseoperator= (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
 
- Public Member Functions inherited from sigc::trackable
 trackable () noexcept
 
 trackable (const trackable &src) noexcept
 
 trackable (trackable &&src) noexcept
 
 ~trackable ()
 
void add_destroy_notify_callback (notifiable *data, func_destroy_notify func) const
 
void notify_callbacks ()
 
trackableoperator= (const trackable &src)
 
trackableoperator= (trackable &&src) noexcept
 
void remove_destroy_notify_callback (notifiable *data) 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
 
ObjectBaseoperator= (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::DrawContextwrap (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)
 
- Public Types inherited from sigc::trackable
typedef internal::func_destroy_notify func_destroy_notify
 
- Public Types inherited from sigc::notifiable
typedef internal::func_destroy_notify func_destroy_notify
 

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

Gdk::DrawContext::DrawContext ( DrawContext&&  src)
noexcept
Gdk::DrawContext::~DrawContext ( )
overridenoexcept
Gdk::DrawContext::DrawContext ( )
protected

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

Member Function Documentation

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 Gdk::CairoContext and a 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 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 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 Gsk::Renderers, so application code does not need to call these functions explicitly.

Parameters
regionMinimum region that should be drawn.
void Gdk::DrawContext::end_frame ( )

Ends a drawing operation started with begin_frame() and makes the drawing available on screen.

See that function for more details about drawing.

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

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

Retrieves the Gdk::Display the context is created for.

Returns
A Gdk::Display or nullptr.
Glib::RefPtr<const Display> Gdk::DrawContext::get_display ( ) const

Retrieves the Gdk::Display the context is created for.

Returns
A Gdk::Display or nullptr.
::Cairo::RefPtr<const ::Cairo::Region> Gdk::DrawContext::get_frame_region ( ) const

Retrieves the region that is currently in the process of being repainted.

After a call to 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 begin_frame() and end_frame(), nullptr will be returned.

Returns
A Cairo region or nullptr if not drawing a frame.
Glib::RefPtr<Surface> Gdk::DrawContext::get_surface ( )

Retrieves the Gdk::Surface used by the context.

Returns
A Gdk::Surface or nullptr.
Glib::RefPtr<const Surface> Gdk::DrawContext::get_surface ( ) const

Retrieves the Gdk::Surface used by the context.

Returns
A Gdk::Surface or nullptr.
static GType Gdk::DrawContext::get_type ( )
static

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

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

Provides access to the underlying C GObject.

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

Provides access to the underlying C GObject.

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.

bool Gdk::DrawContext::is_in_frame ( ) const

Returns true if context is in the process of drawing to its surface after a call to begin_frame() and not yet having called end_frame().

In this situation, drawing commands may be effecting the contents of a context's surface.

Returns
true if the context is between begin_frame() and end_frame() calls.
DrawContext& Gdk::DrawContext::operator= ( DrawContext&&  src)
noexcept
Glib::PropertyProxy_ReadOnly< Glib::RefPtr<Display> > Gdk::DrawContext::property_display ( ) const

The Gdk::Display used to create the Gdk::DrawContext.

Returns
A PropertyProxy_ReadOnly that allows you to get the value of the property, or receive notification when the value of the property changes.
Glib::PropertyProxy_ReadOnly< Glib::RefPtr<Surface> > Gdk::DrawContext::property_surface ( ) const

The Gdk::Surface 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

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

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

Parameters
objectThe C instance.
take_copyFalse 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.