Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Gnome/gsk/gpu/   (Gnome Linux Desktop Version 4.23.2©)  Datei vom 30.5.2026 mit Größe 6 kB image not shown  

Quelle  gskgpuprint.c

  Sprache: C
 

#include "config.h"

#include "gskgpuprintprivate.h"

#include "gskgpucolorstatesprivate.h"
#include "gskgpuimageprivate.h"
#include "gskgpushaderflagsprivate.h"

void
gsk_gpu_print_indent (GString *string,
                      guint    indent)
{
  g_string_append_printf (string, "%*s"2 * indent, "");
}

static void
gsk_gpu_print_shader_op (GString     *string,
                         GdkShaderOp  op)
{
  switch (op)
    {
      case GDK_SHADER_DEFAULT:
        g_string_append (string, " ");
        break;
      case GDK_SHADER_STRAIGHT:
        g_string_append (string, "-");
        break;
      case GDK_SHADER_2_PLANES:
        g_string_append (string, "2");
        break;
      case GDK_SHADER_3_PLANES:
        g_string_append (string, "3");
        break;
      case GDK_SHADER_3_PLANES_10BIT_LSB:
        g_string_append (string, "A");
        break;
      case GDK_SHADER_3_PLANES_12BIT_LSB:
        g_string_append (string, "C");
        break;
      default:
        g_assert_not_reached ();
        break;
    }
}

void
gsk_gpu_print_shader_flags (GString           *string,
                            GskGpuShaderFlags  flags,
                            gboolean           first)
{
  GskGpuShaderClip clip = gsk_gpu_shader_flags_get_clip (flags);

  g_string_append (string, first ? "+ " : "| ");
#if 0
  g_string_append (string, first ? (last ? "⧫ " : "▲ "
                                 : (last ? "▼ " : "▮ "));
#endif

  switch (clip)
    {
      case GSK_GPU_SHADER_CLIP_NONE:
        g_string_append (string, "⬚");
        break;
      case GSK_GPU_SHADER_CLIP_RECT:
        g_string_append (string, "□");
        break;
      case GSK_GPU_SHADER_CLIP_ROUNDED:
        g_string_append (string, "▢");
        break;
      default:
        g_assert_not_reached ();
        break;
    }

  g_string_append (string, gsk_gpu_shader_flags_has_clip_mask (flags) ? "░" : " ");
  gsk_gpu_print_shader_op (string, gsk_gpu_shader_flags_get_texture0_op (flags));
  gsk_gpu_print_shader_op (string, gsk_gpu_shader_flags_get_texture1_op (flags));

  g_string_append_c (string, ' ');
}

void
gsk_gpu_print_color_states (GString           *string,
                            GskGpuColorStates  color_states)
{
  if (gsk_gpu_color_states_get_alt (color_states) == gsk_gpu_color_states_get_output (color_states))
    g_string_append_printf (string, "any %s -> %s ",
                            gsk_gpu_color_states_is_alt_premultiplied (color_states) ? "(p)" : "",
                            gsk_gpu_color_states_is_output_premultiplied (color_states) ? "(p)" : "");
  else
    g_string_append_printf (string, "%s%s -> %s%s ",
                            gdk_color_state_get_name (gsk_gpu_color_states_get_alt (color_states)),
                            gsk_gpu_color_states_is_alt_premultiplied (color_states) ? "(p)" : "",
                            gdk_color_state_get_name (gsk_gpu_color_states_get_output (color_states)),
                            gsk_gpu_color_states_is_output_premultiplied (color_states) ? "(p)" : "");
}

void
gsk_gpu_print_op (GString    *string,
                  guint       indent,
                  const char *op_name)
{
  gsk_gpu_print_indent (string, indent);
  g_string_append (string, op_name);
  g_string_append_c (string, ' ');
}

void
gsk_gpu_print_string (GString    *string,
                      const char *s)
{
  g_string_append (string, s);
  g_string_append_c (string, ' ');
}

void
gsk_gpu_print_enum (GString *string,
                    GType    type,
                    int      value)
{
  GEnumClass *class;

  class = g_type_class_ref (type);
  gsk_gpu_print_string (string, g_enum_get_value (class, value)->value_nick);
  g_type_class_unref (class);
}

void
gsk_gpu_print_rect (GString     *string,
                    const float  rect[4])
{
  g_string_append_printf (string, "%g %g %g %g ",
                          rect[0], rect[1],
                          rect[2], rect[3]);
}

void
gsk_gpu_print_int_rect (GString                     *string,
                        const cairo_rectangle_int_t *rect)
{
  g_string_append_printf (string, "%d %d %d %d ",
                          rect->x, rect->y,
                          rect->width, rect->height);
}

void
gsk_gpu_print_rounded_rect (GString     *string,
                            const float  rect[12])
{
  gsk_gpu_print_rect (string, (const float *) rect);

  if (rect[4] == 0.0 && rect[5] == 0.0 &&
      rect[6] == 0.0 && rect[7] == 0.0 &&
      rect[8] == 0.0 && rect[9] == 0.0 &&
      rect[10] == 0.0 && rect[11] == 0.0)
    return;

  g_string_append (string, "/ ");

  if (rect[4] != rect[5] ||
      rect[6] != rect[7] ||
      rect[8] != rect[9] ||
      rect[10] != rect[11])
    {
      g_string_append (string, "variable ");
    }
  else if (rect[4] != rect[6] ||
           rect[4] != rect[8] ||
           rect[4] != rect[10])
    {
      g_string_append_printf (string, "%g %g %g %g ",
                              rect[4], rect[6],
                              rect[8], rect[10]);
    }
  else
    {
      g_string_append_printf (string, "%g ", rect[4]);
    }
}

void
gsk_gpu_print_rgba (GString     *string,
                    const float  rgba[4])
{
  GdkRGBA color = { rgba[0], rgba[1], rgba[2], rgba[3] };
  char *s = gdk_rgba_to_string (&color);
  g_string_append (string, s);
  g_string_append_c (string, ' ');
  g_free (s);
}

void
gsk_gpu_print_newline (GString *string)
{
  if (string->len && string->str[string->len - 1] == ' ')
    string->str[string->len - 1] = '\n';
  else
    g_string_append_c (string, '\n');
}

static const char *
gsk_gpu_print_get_conversion_string (GskGpuConversion conv)
{
  switch (conv)
    {
    case GSK_GPU_CONVERSION_NONE:
      return "";
    case GSK_GPU_CONVERSION_SRGB:
      return "srgb";
    case GSK_GPU_CONVERSION_BT601:
      return "bt601";
    case GSK_GPU_CONVERSION_BT601_NARROW:
      return "bt601n";
    case GSK_GPU_CONVERSION_BT709:
      return "bt709";
    case GSK_GPU_CONVERSION_BT709_NARROW:
      return "bt709n";
    case GSK_GPU_CONVERSION_BT2020:
      return "bt2020";
    case GSK_GPU_CONVERSION_BT2020_NARROW:
      return "bt2020n";
    default:
      g_assert_not_reached ();
      return "";
  }
}

void
gsk_gpu_print_image (GString     *string,
                     GskGpuImage *image)
{
  g_string_append_printf (string, "%zux%zu %s%s ",
                          gsk_gpu_image_get_width (image),
                          gsk_gpu_image_get_height (image),
                          gdk_memory_format_get_name (gsk_gpu_image_get_format (image)),
                          gsk_gpu_print_get_conversion_string (gsk_gpu_image_get_conversion (image)));
}


Messung V0.5 in Prozent
C=99 H=100 G=99

¤ Dauer der Verarbeitung: 0.11 Sekunden  (vorverarbeitet am  2026-07-03) ¤

*© 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.