class Gdk::DrawContext


Base class for objects implementing different rendering methods.

GdkDrawContext 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 GdkDrawContext 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

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)? data, finalize finalize, freeze_notify : Nil freeze_notify, getv(names : Enumerable(String), values : Enumerable(_)) : Nil getv, 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)? qdata, ref_count : UInt32 ref_count, run_dispose : Nil run_dispose, set_data(key : String, data : Pointer(Void)?) : Nil set_data, set_property(property_name : String, value : _) : Nil set_property, steal_data(key : String) : Pointer(Void)? steal_data, steal_qdata(quark : UInt32) : Pointer(Void)? 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, cast?(obj : GObject::Object) : self? cast?, new(pointer, transfer : GICrystal::Transfer)
, newv(object_type : UInt64, parameters : Enumerable(GObject::Parameter)) : self newv

Class methods inherited from class GObject::Object

compat_control(what : UInt64, data : Pointer(Void)?) : 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

Constructor Detail

def #

Initialize a new DrawContext.

def*, display : Gdk::Display? = nil, surface : Gdk::Surface? = nil) #

Class Method Detail

def self.g_type : UInt64 #

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

Instance Method Detail

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.

def display : Gdk::Display? #

Retrieves the GdkDisplay the @context is created for

def display=(value : Gdk::Display?) : Gdk::Display? #

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.

def frame_region : Cairo::Region? #

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, %NULL will be returned.

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.

def surface : Gdk::Surface? #

Retrieves the surface that @context is bound to.

def surface=(value : Gdk::Surface?) : Gdk::Surface? #