Eine aufbereitete Darstellung der Quelle

 
     
 
 
Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 

Benutzer

Quelle  gskgradientprivate.h

  Sprache: C
 

#pragma once

#include "gskrendernode.h"
#include <cairo.h>

#include "gdk/gdkmemoryformatprivate.h"
#include "gdk/gdkcolorprivate.h"

G_BEGIN_DECLS

/*< private >
 * GskGradientStop:
 * @offset: the offset of the color stop, as a value between 0 and 1
 * @transition_hint: where to place the midpoint between the previous stop
 *   and this one, as a value between 0 and 1. If this is != 0.5, the
 *   interpolation is non-linear
 * @color: the color at the given offset
 *
 * A color stop in a gradient node.
 */

typedef struct _GskGradientStop GskGradientStop;
struct _GskGradientStop
{
  float offset;
  float transition_hint;
  GdkColor color;
};

typedef enum
{
  GSK_HUE_INTERPOLATION_SHORTER,
  GSK_HUE_INTERPOLATION_LONGER,
  GSK_HUE_INTERPOLATION_INCREASING,
  GSK_HUE_INTERPOLATION_DECREASING,
} GskHueInterpolation;

typedef enum
{
  GSK_REPEAT_NONE,
  GSK_REPEAT_PAD,
  GSK_REPEAT_REPEAT,
  GSK_REPEAT_REFLECT,
} GskRepeat;

typedef struct _GskGradient GskGradient;

static inline void
clear_stop (GskGradientStop *s)
{
  gdk_color_finish (&s->color);
}

#define GDK_ARRAY_NAME gradient_stops
#define GDK_ARRAY_TYPE_NAME GradientStops
#define GDK_ARRAY_ELEMENT_TYPE GskGradientStop
#define GDK_ARRAY_BY_VALUE 1
#define GDK_ARRAY_PREALLOC 4
#define GDK_ARRAY_NO_MEMSET 1
#define GDK_ARRAY_FREE_FUNC clear_stop
#include "gdk/gdkarrayimpl.c"

struct _GskGradient
{
  GradientStops stops;
  GdkColorState *interpolation;
  GskHueInterpolation hue_interpolation;
  gboolean premultiplied;
  GskRepeat repeat;
  gboolean opaque;
  GskColorStop *rgba_stops;
};

GskGradient *   gsk_gradient_new                        (void);

GskGradient *   gsk_gradient_copy                       (const GskGradient       *gradient);
void            gsk_gradient_free                       (GskGradient             *gradient);

void            gsk_gradient_clear                      (GskGradient             *gradient);
GskGradient *   gsk_gradient_init_copy                  (GskGradient             *gradient,
                                                         const GskGradient       *orig);

gboolean        gsk_gradient_equal                      (const GskGradient       *gradient0,
                                                         const GskGradient       *gradient1);

void            gsk_gradient_add_stop                   (GskGradient             *gradient,
                                                         float                    offset,
                                                         float                    transition_hint,
                                                         const GdkColor          *color);
void            gsk_gradient_add_color_stops            (GskGradient             *gradient,
                                                         const GskColorStop      *stops,
                                                         gsize                    n_stops);
void            gsk_gradient_set_repeat                 (GskGradient             *gradient,
                                                         GskRepeat                start);
void            gsk_gradient_set_interpolation          (GskGradient             *gradient,
                                                         GdkColorState           *interpolation);
void            gsk_gradient_set_hue_interpolation      (GskGradient             *gradient,
                                                         GskHueInterpolation      hue_interpolation);
void            gsk_gradient_set_premultiplied          (GskGradient             *gradient,
                                                         gboolean                 premultiplied);

gsize           gsk_gradient_get_n_stops                (const GskGradient       *gradient);
const GskGradientStop *
                gsk_gradient_get_stops                  (const GskGradient       *gradient);
const GdkColor *gsk_gradient_get_stop_color             (const GskGradient       *gradient,
                                                         gsize                    idx);
float           gsk_gradient_get_stop_offset            (const GskGradient       *gradient,
                                                         gsize                    idx);
float           gsk_gradient_get_stop_transition_hint   (const GskGradient       *gradient,
                                                         gsize                    idx);

GdkColorState * gsk_gradient_get_interpolation          (const GskGradient       *gradient);
GskHueInterpolation
                gsk_gradient_get_hue_interpolation      (const GskGradient       *gradient);
gboolean        gsk_gradient_get_premultiplied          (const GskGradient       *gradient);
GskRepeat       gsk_gradient_get_repeat                 (const GskGradient       *gradient);
gboolean        gsk_gradient_is_opaque                  (const GskGradient       *gradient);
const GdkColor *gsk_gradient_check_single_color         (const GskGradient       *gradient);
void            gsk_gradient_get_average_color          (const GskGradient       *self,
                                                         GdkColor                *out_color);
const GskColorStop *
                gsk_gradient_get_color_stops            (GskGradient             *gradient,
                                                         gsize                   *n_stops);

float           gsk_hue_interpolation_fixup             (GskHueInterpolation      interp,
                                                         float                    h1,
                                                         float                    h2);
cairo_extend_t  gsk_repeat_to_cairo (GskRepeat repeat);

G_END_DECLS

Messung V0.5 in Prozent
C=98 H=96 G=96

¤ Dauer der Verarbeitung: 0.9 Sekunden  (vorverarbeitet am  2026-07-02) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Quellcodebibliothek
     Eigene Quellcodes
     Fremde Quellcodes
     Suchen

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....

Besucherstatistik

Besucherstatistik