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

Quelle  gdkmemoryformatprivate.h

  Sprache: C
 

/*
 * Copyright © 2021 Benjamin Otte
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library. If not, see <http://www.gnu.org/licenses/>.
 *
 * Authors: Benjamin Otte <otte@gnome.org>
 */


#pragma once

#include "gdkenums.h"
#include "gdkmemorylayoutprivate.h"
#include "gdkdxgiformatprivate.h"
#include "gdkswizzleprivate.h"
#include "gdktypes.h"

/* epoxy needs this, see https://github.com/anholt/libepoxy/issues/299 */
#ifdef GDK_WINDOWING_WIN32
#include <windows.h>
#endif

#include <epoxy/gl.h>

#ifdef GDK_RENDERING_VULKAN
#include <vulkan/vulkan.h>
#endif

#ifdef HAVE_GSTREAMER
#include <gst/video/video.h>
#endif

G_BEGIN_DECLS

typedef enum {
  GDK_MEMORY_ALPHA_PREMULTIPLIED,
  GDK_MEMORY_ALPHA_STRAIGHT,
  GDK_MEMORY_ALPHA_OPAQUE
} GdkMemoryAlpha;

typedef enum {
  GDK_MEMORY_NONE,
  GDK_MEMORY_U8,
  GDK_MEMORY_FLOAT16,
  GDK_MEMORY_FLOAT32,

  GDK_N_DEPTHS
} GdkMemoryDepth;

#define GDK_MEMORY_DEPTH_BITS 3

typedef enum {
  GDK_SHADER_DEFAULT,
  GDK_SHADER_STRAIGHT,
  GDK_SHADER_2_PLANES,
  GDK_SHADER_3_PLANES,
  GDK_SHADER_3_PLANES_10BIT_LSB,
  GDK_SHADER_3_PLANES_12BIT_LSB
} GdkShaderOp;

static inline gsize
gdk_shader_op_get_n_shaders (GdkShaderOp op)
{
  static gsize n_shaders[] = { 112333 };
  return n_shaders[op];
}

gsize                   gdk_memory_format_alignment         (GdkMemoryFormat             format) G_GNUC_CONST;
GdkMemoryAlpha          gdk_memory_format_alpha             (GdkMemoryFormat             format) G_GNUC_CONST;
GdkMemoryFormat         gdk_memory_format_get_premultiplied (GdkMemoryFormat             format) G_GNUC_CONST;
GdkMemoryFormat         gdk_memory_format_get_straight      (GdkMemoryFormat             format) G_GNUC_CONST;
const GdkMemoryFormat * gdk_memory_format_get_fallbacks     (GdkMemoryFormat             format) G_GNUC_CONST;
GdkMemoryFormat         gdk_memory_format_get_mipmap_format (GdkMemoryFormat             format) G_GNUC_CONST;
gboolean                gdk_memory_format_get_rgba_format   (GdkMemoryFormat             format,
                                                             GdkMemoryFormat            *out_format,
                                                             GdkSwizzle                 *out_swizzle);
GdkMemoryDepth          gdk_memory_format_get_depth         (GdkMemoryFormat             format) G_GNUC_CONST;
gsize                   gdk_memory_format_get_n_planes      (GdkMemoryFormat             format) G_GNUC_CONST;
gsize                   gdk_memory_format_get_block_width   (GdkMemoryFormat             format) G_GNUC_CONST;
gsize                   gdk_memory_format_get_block_height  (GdkMemoryFormat             format) G_GNUC_CONST;
gboolean                gdk_memory_format_is_block_boundary (GdkMemoryFormat             format,
                                                             gsize                       x,
                                                             gsize                       y) G_GNUC_CONST;
gsize                   gdk_memory_format_get_plane_block_width
                                                            (GdkMemoryFormat             format,
                                                             gsize                       plane) G_GNUC_CONST;
gsize                   gdk_memory_format_get_plane_block_height
                                                            (GdkMemoryFormat             format,
                                                             gsize                       plane) G_GNUC_CONST;
gsize                   gdk_memory_format_get_plane_block_bytes
                                                            (GdkMemoryFormat             format,
                                                             gsize                       plane) G_GNUC_CONST;
GdkMemoryDepth          gdk_memory_depth_merge              (GdkMemoryDepth              depth1,
                                                             GdkMemoryDepth              depth2) G_GNUC_CONST;
GdkMemoryFormat         gdk_memory_depth_get_format         (GdkMemoryDepth              depth) G_GNUC_CONST;
GdkMemoryFormat         gdk_memory_depth_get_alpha_format   (GdkMemoryDepth              depth) G_GNUC_CONST;
const char *            gdk_memory_depth_get_name           (GdkMemoryDepth              depth);
GdkShaderOp             gdk_memory_format_get_default_shader_op
                                                            (GdkMemoryFormat             format);
gsize                   gdk_memory_format_get_shader_plane  (GdkMemoryFormat             format,
                                                             gsize                       plane,
                                                             gsize                      *width_subsample,
                                                             gsize                      *height_subsample,
                                                             gsize                      *bpp);
gboolean                gdk_memory_format_gl_format         (GdkMemoryFormat             format,
                                                             gsize                       plane,
                                                             gboolean                    gles,
                                                             GLint                      *out_internal_format,
                                                             GLint                      *out_internal_srgb_format,
                                                             GLenum                     *out_format,
                                                             GLenum                     *out_type,
                                                             GdkSwizzle                 *out_swizzle) G_GNUC_WARN_UNUSED_RESULT;
#ifdef GDK_RENDERING_VULKAN
VkFormat                gdk_memory_format_vk_format         (GdkMemoryFormat             format,
                                                             VkComponentMapping         *out_swizzle,
                                                             gboolean                   *needs_ycbcr_conversion);
VkFormat                gdk_memory_format_vk_srgb_format    (GdkMemoryFormat             format);
#endif

gboolean                gdk_memory_format_find_by_dmabuf_fourcc     (guint32                     fourcc,
                                                                     gboolean                    premultiplied,
                                                                     GdkMemoryFormat            *out_format,
                                                                     gboolean                   *out_is_yuv);
guint32                 gdk_memory_format_get_dmabuf_rgb_fourcc     (GdkMemoryFormat             format);
guint32                 gdk_memory_format_get_dmabuf_yuv_fourcc     (GdkMemoryFormat             format);
guint32                 gdk_memory_format_get_dmabuf_shader_fourcc  (GdkMemoryFormat             format,
                                                                     gsize                       plane);

gboolean                gdk_memory_format_find_by_dxgi_format       (DXGI_FORMAT                 format,
                                                                     gboolean                    premultiplied,
                                                                     GdkMemoryFormat            *out_format);
DXGI_FORMAT             gdk_memory_format_get_dxgi_format           (GdkMemoryFormat             format,
                                                                     guint                      *out_shader_4_component_mapping);
DXGI_FORMAT             gdk_memory_format_get_dxgi_srgb_format      (GdkMemoryFormat             format);

gboolean                gdk_memory_format_find_by_cairo_format      (cairo_format_t              cairo_format,
                                                                     GdkMemoryFormat            *out_memory_format);
cairo_format_t          gdk_memory_format_get_cairo_format          (GdkMemoryFormat             format);

#ifdef HAVE_GSTREAMER
gboolean                gdk_memory_format_find_by_gst_video_format  (GstVideoFormat              gst_format,
                                                                     gboolean                    premultiplied,
                                                                     GdkMemoryFormat            *out_memory_format);
GstVideoFormat          gdk_memory_format_get_gst_video_format      (GdkMemoryFormat             format);
#endif

const char *            gdk_memory_format_get_name                  (GdkMemoryFormat             format);

void                    gdk_memory_convert                  (guchar                     *dest_data,
                                                             const GdkMemoryLayout      *dest_layout,
                                                             GdkColorState              *dest_cs,
                                                             const guchar               *src_data,
                                                             const GdkMemoryLayout      *src_layout,
                                                             GdkColorState              *src_cs);
void                    gdk_memory_convert_color_state      (guchar                     *data,
                                                             const GdkMemoryLayout      *layout,
                                                             GdkColorState              *src_color_state,
                                                             GdkColorState              *dest_color_state);
void                    gdk_memory_mipmap                   (guchar                     *dest,
                                                             const GdkMemoryLayout      *dest_layout,
                                                             const guchar               *src,
                                                             const GdkMemoryLayout      *src_layout,
                                                             guint                       lod_level,
                                                             gboolean                    linear);


G_END_DECLS


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

¤ Dauer der Verarbeitung: 0.1 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.