Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Firefox/gfx/src/   (Browser von der Mozilla Stiftung Version 136.0.1©)  Datei vom 10.2.2025 mit Größe 2 kB image not shown  

Quelle  WPFGpuRaster.h   Sprache: C

 
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */


#ifndef MOZILLA_GFX_WPF_GPU_RASTER_H
#define MOZILLA_GFX_WPF_GPU_RASTER_H

#include <stddef.h>
#include <stdint.h>

namespace WGR {

enum class FillMode { EvenOdd, Winding };
struct PathBuilder;
struct Point {
  int32_t x;
  int32_t y;
};
constexpr uint8_t PathPointTypeStart = 0;
constexpr uint8_t PathPointTypeLine = 1;
constexpr uint8_t PathPointTypeBezier = 3;
constexpr uint8_t PathPointTypePathTypeMask = 0x07;
constexpr uint8_t PathPointTypeCloseSubpath = 0x80;
struct Path {
  FillMode fill_mode;
  const Point* points;
  size_t num_points;
  const uint8_t* types;
  size_t num_types;
};
struct OutputVertex {
  float x;
  float y;
  float coverage;
};
struct VertexBuffer {
  OutputVertex* data;
  size_t len;
};

extern "C" {
PathBuilder* wgr_new_builder();
void wgr_builder_reset(PathBuilder* pb);
void wgr_builder_move_to(PathBuilder* pb, float x, float y);
void wgr_builder_line_to(PathBuilder* pb, float x, float y);
void wgr_builder_curve_to(PathBuilder* pb, float c1x, float c1y, float c2x,
                          float c2y, float x, float y);
void wgr_builder_quad_to(PathBuilder* pb, float cx, float cy, float x, float y);
void wgr_builder_close(PathBuilder* pb);
void wgr_builder_set_fill_mode(PathBuilder* pb, FillMode fill_mode);
Path wgr_builder_get_path(PathBuilder* pb);
VertexBuffer wgr_path_rasterize_to_tri_list(
    const Path* p, int32_t clip_x, int32_t clip_y, int32_t clip_width,
    int32_t clip_height, bool need_inside = truebool need_outside = false,
    bool rasterization_truncates = false, OutputVertex* output_ptr = nullptr,
    size_t output_capacity = 0);
void wgr_path_release(Path p);
void wgr_vertex_buffer_release(VertexBuffer vb);
void wgr_builder_release(PathBuilder* pb);
};

}  // namespace WGR

#endif  // MOZILLA_GFX_WPF_GPU_RASTER_H

Messung V0.5
C=94 H=99 G=96

¤ Dauer der Verarbeitung: 0.3 Sekunden  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

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.