Graphviz 13.0.0~dev.20250608.0154
Loading...
Searching...
No Matches
gvrender_gdiplus.cpp File Reference
#include "config.h"
#include <cassert>
#include <climits>
#include <stdlib.h>
#include <string.h>
#include <util/gv_math.h>
#include <gvc/gvplugin_device.h>
#include <gvc/gvplugin_render.h>
#include <gvc/gvio.h>
#include "gvplugin_gdiplus.h"
#include <memory>
#include <vector>
Include dependency graph for gvrender_gdiplus.cpp:

Go to the source code of this file.

Data Structures

struct  ImageGraphics
 

Functions

static void gdiplusgen_begin_job (GVJ_t *job)
 
static void gdiplusgen_end_job (GVJ_t *job)
 
static void gdiplusgen_begin_page (GVJ_t *job)
 
static void gdiplusgen_textspan (GVJ_t *job, pointf p, textspan_t *span)
 
static vector< PointF > points (pointf *A, int n)
 
static void gdiplusgen_path (GVJ_t *job, const GraphicsPath &pathname, int filled)
 
static void gdiplusgen_ellipse (GVJ_t *job, pointf *A, int filled)
 
static void gdiplusgen_polygon (GVJ_t *job, pointf *A, size_t n, int filled)
 
static void gdiplusgen_bezier (GVJ_t *job, pointf *A, size_t n, int filled)
 
static void gdiplusgen_polyline (GVJ_t *job, pointf *A, size_t n)
 

Variables

static gvrender_engine_t gdiplusgen_engine
 
static gvrender_features_t render_features_gdiplus
 
static gvdevice_features_t device_features_gdiplus_emf
 
static gvdevice_features_t device_features_gdiplus
 
gvplugin_installed_t gvrender_gdiplus_types []
 
gvplugin_installed_t gvdevice_gdiplus_types []
 

Function Documentation

◆ gdiplusgen_begin_job()

static void gdiplusgen_begin_job ( GVJ_t job)
static

Definition at line 41 of file gvrender_gdiplus.cpp.

References GVJ_s::context, GVJ_s::device, GVJ_s::external_context, FORMAT_METAFILE, gvplugin_active_device_s::id, UseGdiplus(), and GVJ_s::window.

Here is the call graph for this function:

◆ gdiplusgen_begin_page()

static void gdiplusgen_begin_page ( GVJ_t job)
static

Definition at line 92 of file gvrender_gdiplus.cpp.

References GVJ_s::context, d2f(), GVJ_s::device, GVJ_s::external_context, FORMAT_EMF, FORMAT_EMFPLUS, FORMAT_METAFILE, GVJ_s::height, gvplugin_active_device_s::id, image, GVJ_s::rotation, GVJ_s::scale, GVJ_s::translation, GVJ_s::width, GVJ_s::window, pointf_s::x, and pointf_s::y.

Here is the call graph for this function:

◆ gdiplusgen_bezier()

static void gdiplusgen_bezier ( GVJ_t job,
pointf A,
size_t  n,
int  filled 
)
static

Definition at line 255 of file gvrender_gdiplus.cpp.

References A, gdiplusgen_path(), and points.

Here is the call graph for this function:

◆ gdiplusgen_ellipse()

static void gdiplusgen_ellipse ( GVJ_t job,
pointf A,
int  filled 
)
static

Definition at line 232 of file gvrender_gdiplus.cpp.

References A, d2f(), dx, dy, and gdiplusgen_path().

Here is the call graph for this function:

◆ gdiplusgen_end_job()

static void gdiplusgen_end_job ( GVJ_t job)
static

Definition at line 56 of file gvrender_gdiplus.cpp.

References GVJ_s::context, GVJ_s::device, GVJ_s::external_context, FORMAT_EMF, FORMAT_EMFPLUS, FORMAT_METAFILE, gvwrite(), gvplugin_active_device_s::id, image, ImageGraphics::image, SaveBitmapToStream(), and ImageGraphics::stream.

Here is the call graph for this function:

◆ gdiplusgen_path()

static void gdiplusgen_path ( GVJ_t job,
const GraphicsPath &  pathname,
int  filled 
)
static

Definition at line 198 of file gvrender_gdiplus.cpp.

References GVJ_s::context, d2f(), obj_state_s::fillcolor, GVJ_s::obj, obj_state_s::pen, PEN_DASHED, PEN_DOTTED, PEN_NONE, PEN_SOLID, obj_state_s::pencolor, obj_state_s::penwidth, color_s::rgba, and color_s::u.

Referenced by gdiplusgen_bezier(), gdiplusgen_ellipse(), gdiplusgen_polygon(), and gdiplusgen_polyline().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ gdiplusgen_polygon()

static void gdiplusgen_polygon ( GVJ_t job,
pointf A,
size_t  n,
int  filled 
)
static

Definition at line 245 of file gvrender_gdiplus.cpp.

References A, gdiplusgen_path(), and points.

Here is the call graph for this function:

◆ gdiplusgen_polyline()

static void gdiplusgen_polyline ( GVJ_t job,
pointf A,
size_t  n 
)
static

Definition at line 265 of file gvrender_gdiplus.cpp.

References A, gdiplusgen_path(), and points.

Here is the call graph for this function:

◆ gdiplusgen_textspan()

static void gdiplusgen_textspan ( GVJ_t job,
pointf  p,
textspan_t span 
)
static

◆ points()

static vector< PointF > points ( pointf A,
int  n 
)
static

Definition at line 189 of file gvrender_gdiplus.cpp.

References A, and d2f().

Here is the call graph for this function:

Variable Documentation

◆ device_features_gdiplus

gvdevice_features_t device_features_gdiplus
static
Initial value:
= {
{0.,0.},
{0.,0.},
{96.,96.}
}
#define GVDEVICE_DOES_TRUECOLOR
Definition gvcjob.h:90
#define GVDEVICE_BINARY_FORMAT
Definition gvcjob.h:91

Definition at line 325 of file gvrender_gdiplus.cpp.

◆ device_features_gdiplus_emf

gvdevice_features_t device_features_gdiplus_emf
static
Initial value:
= {
{0.,0.},
{0.,0.},
{72.,72.}
}
#define GVRENDER_NO_WHITE_BG
Definition gvcjob.h:106

Definition at line 316 of file gvrender_gdiplus.cpp.

◆ gdiplusgen_engine

gvrender_engine_t gdiplusgen_engine
static

Definition at line 275 of file gvrender_gdiplus.cpp.

◆ gvdevice_gdiplus_types

gvplugin_installed_t gvdevice_gdiplus_types[]
Initial value:
= {
{FORMAT_METAFILE, "metafile:gdiplus", 8, nullptr, &device_features_gdiplus_emf},
{FORMAT_BMP, "bmp:gdiplus", 8, nullptr, &device_features_gdiplus},
{FORMAT_EMF, "emf:gdiplus", 8, nullptr, &device_features_gdiplus_emf},
{FORMAT_EMFPLUS, "emfplus:gdiplus", 8, nullptr, &device_features_gdiplus_emf},
{FORMAT_GIF, "gif:gdiplus", 8, nullptr, &device_features_gdiplus},
{FORMAT_JPEG, "jpe:gdiplus", 8, nullptr, &device_features_gdiplus},
{FORMAT_JPEG, "jpeg:gdiplus", 8, nullptr, &device_features_gdiplus},
{FORMAT_JPEG, "jpg:gdiplus", 8, nullptr, &device_features_gdiplus},
{FORMAT_PNG, "png:gdiplus", 8, nullptr, &device_features_gdiplus},
{FORMAT_TIFF, "tif:gdiplus", 8, nullptr, &device_features_gdiplus},
{FORMAT_TIFF, "tiff:gdiplus", 8, nullptr, &device_features_gdiplus},
{0, nullptr, 0, nullptr, nullptr}
}
@ FORMAT_TIFF
@ FORMAT_BMP
@ FORMAT_EMFPLUS
@ FORMAT_EMF
@ FORMAT_METAFILE
@ FORMAT_JPEG
Definition gvrender_gd.c:37
@ FORMAT_GIF
Definition gvrender_gd.c:36
@ FORMAT_PNG
Definition gvrender_gd.c:38
static gvdevice_features_t device_features_gdiplus
static gvdevice_features_t device_features_gdiplus_emf

Definition at line 338 of file gvrender_gdiplus.cpp.

◆ gvrender_gdiplus_types

gvplugin_installed_t gvrender_gdiplus_types[]
Initial value:
= {
{0, nullptr, 0, nullptr, nullptr}
}
static gvrender_engine_t gdiplusgen_engine
static gvrender_features_t render_features_gdiplus

Definition at line 333 of file gvrender_gdiplus.cpp.

◆ render_features_gdiplus

gvrender_features_t render_features_gdiplus
static
Initial value:
= {
4.,
nullptr,
0,
}
@ RGBA_BYTE
Definition color.h:26
#define GVRENDER_DOES_TRANSFORM
Definition gvcjob.h:95
#define GVRENDER_Y_GOES_DOWN
Definition gvcjob.h:94

Definition at line 308 of file gvrender_gdiplus.cpp.