## gwydgets

gwydgets — Base functions

## Functions

void | gwy_widgets_type_init ()
gboolean | gwy_widgets_gl_init ()
GdkGLConfig * | gwy_widgets_get_gl_config ()

## Types and Values

typedef | GdkGLConfig

## Includes

    #include <libgwydgets/gwydgets.h>

## Description

Gwyddion classes has to be initialized before they can be safely deserialized. The function `gwy_type_init()` performs this initialization.

Before 3D widgets (Gwy3DView) can be used, OpenGL must be initialized with `gwy_widgets_gl_init()`.

## Functions

### gwy_widgets_type_init ()

    void
    gwy_widgets_type_init (void);

Makes libgwydgets types safe for deserialization and performs other initialization. You have to call this function before using widgets and objects from libgwydgets.

Calls `gwy_draw_type_init()` first to make sure libgwydraw is initialized.

It is safe to call this function more than once, subsequent calls are no-op.

### gwy_widgets_gl_init ()

    gboolean
    gwy_widgets_gl_init (void);

Configures an OpenGL-capable visual for 3D widgets.

Use `gwy_widgets_get_gl_config()` to get the framebuffer configuration.

This function must be called before OpenGL widgets can be used.

#### Returns

`TRUE` if an appropriate visual was found. If Gwyddion was compiled without OpenGL support, it always returns `FALSE`.

### gwy_widgets_get_gl_config ()

    GdkGLConfig *
    gwy_widgets_get_gl_config (void);

Returns OpenGL framebuffer configuration for 3D widgets.

Call `gwy_widgets_gl_init()` first.

#### Returns

The OpenGL framebuffer configuration, `NULL` if OpenGL initialization was not successfull.

## Types and Values

### GdkGLConfig

    typedef void GdkGLConfig;

Placeholder typedef.

If Gwyddion is compiled with OpenGL (i.e., GtkGLExt) this is the real

GdkGLConfig. However, if Gwyddion is compiled without OpenGL

this type is typedefed as void.

Since one cannot actually use any of the Gwyddion OpenGL widgets if they are not enabled, this usually works well. However, it can break in the unlikely case one compiles with wibgwydgets that have OpenGL disabled and at the same time he uses GtkGLExt directly. In such case

GdkGLConfig is defined twice. The only known fix is not

to include `gwydgets.h` and GtkGLExt headers in the same source file.