Class: Gtk::GLArea

Inherits:
Widget
  • Object
show all
Defined in:
(unknown)

Overview

The GtkGLAreaClass structure contains only private data.

Instance Method Summary collapse

Methods inherited from Widget

#accessible_role, #accessible_role=, #action_set_enabled, #activate, #activate_action, #activate_action_variant, #activate_default, #activate_signal, #activate_signal=, #activate_signal_from_name=, #add_binding, #add_binding_action, #add_binding_signal, #add_controller, #add_css_class, #add_mnemonic_label, #add_shortcut, #add_tick_callback, #allocate, #allocated_baseline, #allocated_height, #allocated_width, #baseline, #bind_template_callback_full, #bind_template_child_full, #can_focus, #can_focus=, #can_focus?, #can_target, #can_target=, #can_target?, #child_focus, #child_visible, #child_visible=, #clipboard, #compute_bounds, #compute_expand, #compute_point, #compute_transform, #contains, #create_pango_context, #create_pango_layout, #css_classes, #css_classes=, #css_name, #css_name=, #cursor, #cursor=, #cursor_from_name=, default_direction, default_direction=, #direction, #direction=, #display, #dispose_template, #drag_check_threshold, #error_bell, #first_child, #focus_child, #focus_child=, #focus_on_click, #focus_on_click=, #focus_on_click?, #focusable, #focusable=, #focusable?, #font_map, #font_map=, #font_options, #font_options=, #frame_clock, #get_allocation, #get_ancestor, #get_color, #get_preferred_size, #get_size, #get_size_request, #get_template_child, #grab_focus, #halign, #halign=, #has_css_class, #has_default, #has_default=, #has_default?, #has_focus, #has_focus=, #has_focus?, #has_tooltip, #has_tooltip=, #has_tooltip?, #has_visible_focus, #height, #height_request, #height_request=, #hexpand, #hexpand=, #hexpand?, #hexpand_set, #hexpand_set=, #hexpand_set?, #hide, #in_destruction, #init_template, #insert_action_group, #insert_after, #insert_before, #install_action, #install_property_action, #is_ancestor, #is_drawable, #is_focus, #is_sensitive, #is_visible, #keynav_failed, #last_child, #layout_manager, #layout_manager=, #layout_manager_type, #layout_manager_type=, #list_mnemonic_labels, #map, #mapped, #margin_bottom, #margin_bottom=, #margin_end, #margin_end=, #margin_start, #margin_start=, #margin_top, #margin_top=, #measure, #mnemonic_activate, #name, #name=, #native, #next_sibling, #observe_children, #observe_controllers, #opacity, #opacity=, #overflow, #overflow=, #pango_context, #parent, #parent=, #pick, #prev_sibling, #primary_clipboard, #query_action, #queue_allocate, #queue_draw, #queue_resize, #realize, #realized, #receives_default, #receives_default=, #receives_default?, #remove_controller, #remove_css_class, #remove_mnemonic_label, #remove_tick_callback, #request_mode, #root, #root=, #scale_factor, #scale_factor=, #sensitive, #sensitive=, #sensitive?, #set_size_request, #set_state_flags, #settings, #should_layout, #show, #size_allocate, #snapshot_child, #state_flags, #style_context, #template=, #template_from_resource=, #template_scope=, #tooltip_markup, #tooltip_markup=, #tooltip_text, #tooltip_text=, #translate_coordinates, #trigger_tooltip_query, #unmap, #unparent, #unrealize, #unset_state_flags, #valign, #valign=, #vexpand, #vexpand=, #vexpand?, #vexpand_set, #vexpand_set=, #vexpand_set?, #visible, #visible=, #visible?, #width, #width_request, #width_request=

Constructor Details

#initializeGtk::Widget

Creates a new GtkGLArea widget.

Instance Method Details

#allowed_apisGdk::GLAPI

The allowed APIs.

Returns:

  • (Gdk::GLAPI)

    allowed-apis

#allowed_apis=(allowed_apis) ⇒ Gdk::GLAPI

The allowed APIs.

Parameters:

  • allowed_apis (Gdk::GLAPI)

Returns:

  • (Gdk::GLAPI)

    allowed-apis

  • (Gdk::GLAPI)

    allowed-apis

#apiGdk::GLAPI

The API currently in use.

Returns:

  • (Gdk::GLAPI)

    api

#api=(api) ⇒ Gdk::GLAPI

The API currently in use.

Parameters:

  • api (Gdk::GLAPI)

Returns:

  • (Gdk::GLAPI)

    api

  • (Gdk::GLAPI)

    api

#attach_buffersnil

Binds buffers to the framebuffer.

Ensures that the area framebuffer object is made the current draw and read target, and that all the required buffers for the area are created and bound to the framebuffer.

This function is automatically called before emitting the [signalGtk.GLArea::render] signal, and doesn't normally need to be called by application code.

Returns:

  • (nil)

#auto_renderBoolean

Returns whether the area is in auto render mode or not.

Returns:

  • (Boolean)

    true if the area is auto rendering, false otherwise

#auto_render=(auto_render) ⇒ Boolean

If set to true the ::render signal will be emitted every time the widget draws.

This is the default and is useful if drawing the widget is faster.

If set to false the data from previous rendering is kept around and will be used for drawing the widget the next time, unless the window is resized. In order to force a rendering [methodGtk.GLArea.queue_render] must be called. This mode is useful when the scene changes seldom, but takes a long time to redraw.

Parameters:

  • auto_render (Boolean)

Returns:

  • (Boolean)

    auto-render

  • (Boolean)

    auto-render

#auto_render?Boolean

If set to true the ::render signal will be emitted every time the widget draws.

This is the default and is useful if drawing the widget is faster.

If set to false the data from previous rendering is kept around and will be used for drawing the widget the next time, unless the window is resized. In order to force a rendering [methodGtk.GLArea.queue_render] must be called. This mode is useful when the scene changes seldom, but takes a long time to redraw.

Returns:

  • (Boolean)

    auto-render

#contextGdk::GLContext

The GdkGLContext used by the GtkGLArea widget.

The GtkGLArea widget is responsible for creating the GdkGLContext instance. If you need to render with other kinds of buffers (stencil, depth, etc), use render buffers.

Returns:

  • (Gdk::GLContext)

    context

#context=(context) ⇒ Gdk::GLContext

The GdkGLContext used by the GtkGLArea widget.

The GtkGLArea widget is responsible for creating the GdkGLContext instance. If you need to render with other kinds of buffers (stencil, depth, etc), use render buffers.

Parameters:

  • context (Gdk::GLContext)

Returns:

  • (Gdk::GLContext)

    context

  • (Gdk::GLContext)

    context

#errorGLib::Error

Gets the current error set on the area.

Returns:

  • (GLib::Error)

    the GError

#error=(error) ⇒ nil

Sets an error on the area which will be shown instead of the GL rendering.

This is useful in the [signalGtk.GLArea::create-context] signal if GL context creation fails.

Parameters:

  • error (GLib::Error)

    a new GError, or nil to unset the error

Returns:

  • (nil)

#get_required_version(major, minor) ⇒ nil

Retrieves the required version of OpenGL.

See [methodGtk.GLArea.set_required_version].

Parameters:

  • major (Integer)

    return location for the required major version

  • minor (Integer)

    return location for the required minor version

Returns:

  • (nil)

#has_depth_bufferBoolean

Returns whether the area has a depth buffer.

Returns:

  • (Boolean)

    true if the area has a depth buffer, false otherwise

#has_depth_buffer=(has_depth_buffer) ⇒ Boolean

If set to true the widget will allocate and enable a depth buffer for the target framebuffer.

Setting this property will enable GL's depth testing as a side effect. If you don't need depth testing, you should call glDisable(GL_DEPTH_TEST) in your GtkGLArea::render handler.

Parameters:

  • has_depth_buffer (Boolean)

Returns:

  • (Boolean)

    has-depth-buffer

  • (Boolean)

    has-depth-buffer

#has_depth_buffer?Boolean

If set to true the widget will allocate and enable a depth buffer for the target framebuffer.

Setting this property will enable GL's depth testing as a side effect. If you don't need depth testing, you should call glDisable(GL_DEPTH_TEST) in your GtkGLArea::render handler.

Returns:

  • (Boolean)

    has-depth-buffer

#has_stencil_bufferBoolean

Returns whether the area has a stencil buffer.

Returns:

  • (Boolean)

    true if the area has a stencil buffer, false otherwise

#has_stencil_buffer=(has_stencil_buffer) ⇒ Boolean

If set to true the widget will allocate and enable a stencil buffer for the target framebuffer.

Parameters:

  • has_stencil_buffer (Boolean)

Returns:

  • (Boolean)

    has-stencil-buffer

  • (Boolean)

    has-stencil-buffer

#has_stencil_buffer?Boolean

If set to true the widget will allocate and enable a stencil buffer for the target framebuffer.

Returns:

  • (Boolean)

    has-stencil-buffer

#make_currentnil

Ensures that the GdkGLContext used by area is associated with the GtkGLArea.

This function is automatically called before emitting the [signalGtk.GLArea::render] signal, and doesn't normally need to be called by application code.

Returns:

  • (nil)

#queue_rendernil

Marks the currently rendered data (if any) as invalid, and queues a redraw of the widget.

This ensures that the [signalGtk.GLArea::render] signal is emitted during the draw.

This is only needed when [methodGtk.GLArea.set_auto_render] has been called with a false value. The default behaviour is to emit [signalGtk.GLArea::render] on each draw.

Returns:

  • (nil)

#set_required_version(major, minor) ⇒ nil

Sets the required version of OpenGL to be used when creating the context for the widget.

This function must be called before the area has been realized.

Parameters:

  • major (Integer)

    the major version

  • minor (Integer)

    the minor version

Returns:

  • (nil)

#use_esBoolean

Returns whether the GtkGLArea should use OpenGL ES.

See [methodGtk.GLArea.set_use_es].

Returns:

  • (Boolean)

    true if the GtkGLArea should create an OpenGL ES context and false otherwise

#use_es=(use_es) ⇒ Boolean

If set to true the widget will try to create a GdkGLContext using OpenGL ES instead of OpenGL.

Parameters:

  • use_es (Boolean)

Returns:

  • (Boolean)

    use-es

  • (Boolean)

    use-es

#use_es?Boolean

If set to true the widget will try to create a GdkGLContext using OpenGL ES instead of OpenGL.

Returns:

  • (Boolean)

    use-es