class Gdk::DrawContext


Base class for objects implementing different rendering methods.

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

You will always interact with one of those subclasses.

A Gdk::DrawContext is always associated with a single toplevel surface.

Direct Known Subclasses

Defined in:



Class Method Summary

Instance Method Summary

Instance methods inherited from class GObject::Object

==(other : self) ==, bind_property(source_property : String, target : GObject::Object, target_property : String, flags : GObject::BindingFlags) : GObject::Binding bind_property, bind_property_full(source_property : String, target : GObject::Object, target_property : String, flags : GObject::BindingFlags, transform_to : GObject::Closure, transform_from : GObject::Closure) : GObject::Binding bind_property_full, data(key : String) : Pointer(Void) | Nil data, finalize finalize, freeze_notify : Nil freeze_notify, getv(names : Enumerable(String), values : Enumerable(_)) : Nil getv, hash(hasher) hash, notify(property_name : String) : Nil notify, notify_by_pspec(pspec : GObject::ParamSpec) : Nil notify_by_pspec, notify_signal notify_signal, property(property_name : String, value : _) : Nil property, qdata(quark : UInt32) : Pointer(Void) | Nil qdata, ref_count : UInt32 ref_count, run_dispose : Nil run_dispose, set_data(key : String, data : Pointer(Void) | Nil) : Nil set_data, set_property(property_name : String, value : _) : Nil set_property, steal_data(key : String) : Pointer(Void) | Nil steal_data, steal_qdata(quark : UInt32) : Pointer(Void) | Nil steal_qdata, thaw_notify : Nil thaw_notify, to_unsafe : Pointer(Void) to_unsafe, watch_closure(closure : GObject::Closure) : Nil watch_closure

Constructor methods inherited from class GObject::Object

cast(obj : GObject::Object) : self cast, new(pointer : Pointer(Void), transfer : GICrystal::Transfer)
, newv(object_type : UInt64, parameters : Enumerable(GObject::Parameter)) : self newv

Class methods inherited from class GObject::Object

cast?(obj : GObject::Object) : self | Nil cast?, compat_control(what : UInt64, data : Pointer(Void) | Nil) : UInt64 compat_control, g_type : UInt64 g_type, interface_find_property(g_iface : GObject::TypeInterface, property_name : String) : GObject::ParamSpec interface_find_property, interface_list_properties(g_iface : GObject::TypeInterface) : Enumerable(GObject::ParamSpec) interface_list_properties

Macros inherited from class GObject::Object

previous_vfunc(*args) previous_vfunc, previous_vfunc!(*args) previous_vfunc!, signal(signature) signal

Constructor Detail

def #

Initialize a new DrawContext.

[View source]
def*, display : Gdk::Display | Nil = nil, surface : Gdk::Surface | Nil = nil) #

[View source]

Class Method Detail

def self.g_type : UInt64 #

Returns the type id (GType) registered in GLib type system.

[View source]

Instance Method Detail

def ==(other : self) #
Description copied from class Reference

Returns true if this reference is the same as other. Invokes same?.

def begin_frame(region : Cairo::Region) : Nil #

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 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 Gdk::DrawContext#frame_region to query the region that must be drawn.

When using GTK, the widget system automatically places calls to gdk_draw_context_begin_frame() and gdk_draw_context_end_frame() via the use of Gsk::Renderers, so application code does not need to call these functions explicitly.

[View source]
def display : Gdk::Display | Nil #

Retrieves the Gdk::Display the context is created for

[View source]
def display=(value : Gdk::Display | Nil) : Gdk::Display | Nil #

[View source]
def end_frame : Nil #

Ends a drawing operation started with gdk_draw_context_begin_frame().

This makes the drawing available on screen. See Gdk::DrawContext#begin_frame 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.

[View source]
def frame_region : Cairo::Region | Nil #

Retrieves the region that is currently being repainted.

After a call to 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 Gdk::DrawContext#begin_frame and Gdk::DrawContext#end_frame, nil will be returned.

[View source]
def hash(hasher) #
Description copied from class Reference

See Object#hash(hasher)

def is_in_frame : Bool #

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

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

[View source]
def surface : Gdk::Surface | Nil #

Retrieves the surface that context is bound to.

[View source]
def surface=(value : Gdk::Surface | Nil) : Gdk::Surface | Nil #

[View source]