mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-09-14 15:09:14 +02:00
Adds initial Xft and fontconfig headers
git-svn-id: trunk@19879 -
This commit is contained in:
parent
60c1b263d6
commit
4785b5637f
2
.gitattributes
vendored
2
.gitattributes
vendored
@ -6749,6 +6749,7 @@ packages/x11/Makefile svneol=native#text/plain
|
|||||||
packages/x11/Makefile.fpc svneol=native#text/plain
|
packages/x11/Makefile.fpc svneol=native#text/plain
|
||||||
packages/x11/fpmake.pp svneol=native#text/plain
|
packages/x11/fpmake.pp svneol=native#text/plain
|
||||||
packages/x11/src/cursorfont.pp svneol=native#text/plain
|
packages/x11/src/cursorfont.pp svneol=native#text/plain
|
||||||
|
packages/x11/src/fontconfig.pas svneol=native#text/pascal
|
||||||
packages/x11/src/keysym.pp svneol=native#text/plain
|
packages/x11/src/keysym.pp svneol=native#text/plain
|
||||||
packages/x11/src/randr.inc svneol=native#text/plain
|
packages/x11/src/randr.inc svneol=native#text/plain
|
||||||
packages/x11/src/x.pp svneol=native#text/plain
|
packages/x11/src/x.pp svneol=native#text/plain
|
||||||
@ -6757,6 +6758,7 @@ packages/x11/src/xcms.pp svneol=native#text/plain
|
|||||||
packages/x11/src/xf86dga.pp svneol=native#text/plain
|
packages/x11/src/xf86dga.pp svneol=native#text/plain
|
||||||
packages/x11/src/xf86dga1.inc svneol=native#text/plain
|
packages/x11/src/xf86dga1.inc svneol=native#text/plain
|
||||||
packages/x11/src/xf86vmode.pp svneol=native#text/plain
|
packages/x11/src/xf86vmode.pp svneol=native#text/plain
|
||||||
|
packages/x11/src/xft.pas svneol=native#text/pascal
|
||||||
packages/x11/src/xi.pp svneol=native#text/plain
|
packages/x11/src/xi.pp svneol=native#text/plain
|
||||||
packages/x11/src/xinerama.pp svneol=native#text/plain
|
packages/x11/src/xinerama.pp svneol=native#text/plain
|
||||||
packages/x11/src/xkb.pp svneol=native#text/plain
|
packages/x11/src/xkb.pp svneol=native#text/plain
|
||||||
|
@ -93,7 +93,12 @@ begin
|
|||||||
AddUnit('xshm');
|
AddUnit('xshm');
|
||||||
end;
|
end;
|
||||||
T:=P.Targets.AddUnit('xv.pp');
|
T:=P.Targets.AddUnit('xv.pp');
|
||||||
|
T:=P.Targets.AddUnit('fontconfig.pas');
|
||||||
|
T.Dependencies.AddUnit('xlib');
|
||||||
|
T:=P.Targets.AddUnit('xft.pas');
|
||||||
|
T.Dependencies.AddUnit('xlib');
|
||||||
|
T.Dependencies.AddUnit('xrender');
|
||||||
|
T.Dependencies.AddUnit('fontconfig');
|
||||||
|
|
||||||
{$ifndef ALLPACKAGES}
|
{$ifndef ALLPACKAGES}
|
||||||
Run;
|
Run;
|
||||||
|
269
packages/x11/src/fontconfig.pas
Normal file
269
packages/x11/src/fontconfig.pas
Normal file
@ -0,0 +1,269 @@
|
|||||||
|
{*
|
||||||
|
* fontconfig/fontconfig/fontconfig.h
|
||||||
|
*
|
||||||
|
* Copyright © 2001 Keith Packard
|
||||||
|
*
|
||||||
|
* Permission to use, copy, modify, distribute, and sell this software and its
|
||||||
|
* documentation for any purpose is hereby granted without fee, provided that
|
||||||
|
* the above copyright notice appear in all copies and that both that
|
||||||
|
* copyright notice and this permission notice appear in supporting
|
||||||
|
* documentation, and that the name of Keith Packard not be used in
|
||||||
|
* advertising or publicity pertaining to distribution of the software without
|
||||||
|
* specific, written prior permission. Keith Packard makes no
|
||||||
|
* representations about the suitability of this software for any purpose. It
|
||||||
|
* is provided "as is" without express or implied warranty.
|
||||||
|
*
|
||||||
|
* THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
|
||||||
|
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
|
||||||
|
* EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR
|
||||||
|
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
|
||||||
|
* DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
|
||||||
|
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||||
|
* PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
*}
|
||||||
|
unit fontconfig;
|
||||||
|
|
||||||
|
{$mode objfpc}{$H+}
|
||||||
|
{$packrecords c}
|
||||||
|
|
||||||
|
interface
|
||||||
|
|
||||||
|
uses
|
||||||
|
Classes, SysUtils, X, XLib, Xutil, ctypes;
|
||||||
|
|
||||||
|
const
|
||||||
|
{$IF Defined(DARWIN)}
|
||||||
|
fclib = 'libfontconfig.dylib';
|
||||||
|
{$LINKLIB libfontconfig}
|
||||||
|
{$ELSE}
|
||||||
|
fclib = 'libfontconfig.so';
|
||||||
|
{$IFEND}
|
||||||
|
|
||||||
|
//#define FcPublic
|
||||||
|
|
||||||
|
type
|
||||||
|
FcChar8 = cuchar;
|
||||||
|
PFcChar8 = ^FcChar8;
|
||||||
|
FcChar16 = cushort;
|
||||||
|
FcChar32 = cuint;
|
||||||
|
FcBool = cint;
|
||||||
|
|
||||||
|
const
|
||||||
|
{*
|
||||||
|
* Current Fontconfig version number. This same number
|
||||||
|
* must appear in the fontconfig configure.in file. Yes,
|
||||||
|
* it'a a pain to synchronize version numbers like this.
|
||||||
|
*}
|
||||||
|
|
||||||
|
FC_MAJOR = 2;
|
||||||
|
FC_MINOR = 8;
|
||||||
|
FC_REVISION = 0;
|
||||||
|
|
||||||
|
FC_VERSION = ((FC_MAJOR * 10000) + (FC_MINOR * 100) + (FC_REVISION));
|
||||||
|
|
||||||
|
{*
|
||||||
|
* Current font cache file format version
|
||||||
|
* This is appended to the cache files so that multiple
|
||||||
|
* versions of the library will peacefully coexist
|
||||||
|
*
|
||||||
|
* Change this value whenever the disk format for the cache file
|
||||||
|
* changes in any non-compatible way. Try to avoid such changes as
|
||||||
|
* it means multiple copies of the font information.
|
||||||
|
*}
|
||||||
|
|
||||||
|
FC_CACHE_VERSION = '3';
|
||||||
|
|
||||||
|
FcTrue = 1;
|
||||||
|
FcFalse = 0;
|
||||||
|
|
||||||
|
const
|
||||||
|
FC_FAMILY = 'family'; //* String */
|
||||||
|
FC_STYLE = 'style'; //* String */
|
||||||
|
FC_SLANT = 'slant'; //* Int */
|
||||||
|
FC_WEIGHT = 'weight'; //* Int */
|
||||||
|
FC_SIZE = 'size'; //* Double */
|
||||||
|
FC_ASPECT = 'aspect'; //* Double */
|
||||||
|
FC_PIXEL_SIZE = 'pixelsize'; //* Double */
|
||||||
|
FC_SPACING = 'spacing'; //* Int */
|
||||||
|
FC_FOUNDRY = 'foundry'; //* String */
|
||||||
|
FC_ANTIALIAS = 'antialias'; //* Bool (depends) */
|
||||||
|
FC_HINTING = 'hinting'; //* Bool (true) */
|
||||||
|
FC_HINT_STYLE = 'hintstyle'; //* Int */
|
||||||
|
FC_VERTICAL_LAYOUT = 'verticallayout';//* Bool (false) */
|
||||||
|
FC_AUTOHINT = 'autohint'; //* Bool (false) */
|
||||||
|
FC_GLOBAL_ADVANCE = 'globaladvance'; //* Bool (true) */
|
||||||
|
FC_WIDTH= 'width'; //* Int */
|
||||||
|
FC_FILE = 'file'; //* String */
|
||||||
|
FC_INDEX = 'index'; //* Int */
|
||||||
|
FC_FT_FACE = 'ftface'; //* FT_Face */
|
||||||
|
FC_RASTERIZER = 'rasterizer'; //* String */
|
||||||
|
FC_OUTLINE = 'outline'; //* Bool */
|
||||||
|
FC_SCALABLE = 'scalable'; //* Bool */
|
||||||
|
FC_SCALE = 'scale'; //* double */
|
||||||
|
FC_DPI = 'dpi'; //* double */
|
||||||
|
FC_RGBA = 'rgba'; //* Int */
|
||||||
|
FC_MINSPACE = 'minspace'; //* Bool use minimum line spacing */
|
||||||
|
FC_SOURCE = 'source'; //* String (X11, freetype) */
|
||||||
|
FC_CHARSET = 'charset'; //* CharSet */
|
||||||
|
FC_LANG = 'lang'; //* String RFC 3066 langs */
|
||||||
|
FC_FONTVERSION = 'fontversion'; //* Int from 'head' table */
|
||||||
|
FC_FULLNAME = 'fullname'; //* String */
|
||||||
|
FC_FAMILYLANG = 'familylang'; //* String RFC 3066 langs */
|
||||||
|
FC_STYLELANG = 'stylelang'; //* String RFC 3066 langs */
|
||||||
|
FC_FULLNAMELANG = 'fullnamelang'; //* String RFC 3066 langs */
|
||||||
|
FC_CAPABILITY = 'capability'; //* String */
|
||||||
|
FC_FONTFORMAT = 'fontformat'; //* String */
|
||||||
|
FC_EMBOLDEN = 'embolden'; //* Bool - true if emboldening needed*/
|
||||||
|
FC_EMBEDDED_BITMAP = 'embeddedbitmap';//* Bool - true to enable embedded bitmaps */
|
||||||
|
FC_DECORATIVE = 'decorative'; //* Bool - true if style is a decorative variant */
|
||||||
|
FC_LCD_FILTER = 'lcdfilter'; //* Int */
|
||||||
|
|
||||||
|
//FC_CACHE_SUFFIX ".cache-"FC_CACHE_VERSION
|
||||||
|
//FC_DIR_CACHE_FILE "fonts.cache-"FC_CACHE_VERSION
|
||||||
|
//FC_USER_CACHE_FILE ".fonts.cache-"FC_CACHE_VERSION
|
||||||
|
|
||||||
|
// Adjust outline rasterizer */
|
||||||
|
FC_CHAR_WIDTH = 'charwidth'; // Int */
|
||||||
|
FC_CHAR_HEIGHT = 'charheight'; // Int */
|
||||||
|
FC_MATRIX = 'matrix'; //* FcMatrix */
|
||||||
|
|
||||||
|
FC_WEIGHT_THIN = 0;
|
||||||
|
FC_WEIGHT_EXTRALIGHT = 40;
|
||||||
|
FC_WEIGHT_ULTRALIGHT = FC_WEIGHT_EXTRALIGHT;
|
||||||
|
FC_WEIGHT_LIGHT = 50;
|
||||||
|
FC_WEIGHT_BOOK = 75;
|
||||||
|
FC_WEIGHT_REGULAR = 80;
|
||||||
|
FC_WEIGHT_NORMAL = FC_WEIGHT_REGULAR;
|
||||||
|
FC_WEIGHT_MEDIUM = 100;
|
||||||
|
FC_WEIGHT_DEMIBOLD = 180;
|
||||||
|
FC_WEIGHT_SEMIBOLD = FC_WEIGHT_DEMIBOLD;
|
||||||
|
FC_WEIGHT_BOLD = 200;
|
||||||
|
FC_WEIGHT_EXTRABOLD = 205;
|
||||||
|
FC_WEIGHT_ULTRABOLD = FC_WEIGHT_EXTRABOLD;
|
||||||
|
FC_WEIGHT_BLACK = 210;
|
||||||
|
FC_WEIGHT_HEAVY = FC_WEIGHT_BLACK;
|
||||||
|
FC_WEIGHT_EXTRABLACK = 215;
|
||||||
|
FC_WEIGHT_ULTRABLACK = FC_WEIGHT_EXTRABLACK;
|
||||||
|
|
||||||
|
FC_SLANT_ROMAN = 0;
|
||||||
|
FC_SLANT_ITALIC = 100;
|
||||||
|
FC_SLANT_OBLIQUE = 110;
|
||||||
|
|
||||||
|
FC_WIDTH_ULTRACONDENSED = 50;
|
||||||
|
FC_WIDTH_EXTRACONDENSED = 63;
|
||||||
|
FC_WIDTH_CONDENSED = 75;
|
||||||
|
FC_WIDTH_SEMICONDENSED = 87;
|
||||||
|
FC_WIDTH_NORMAL = 100;
|
||||||
|
FC_WIDTH_SEMIEXPANDED = 113;
|
||||||
|
FC_WIDTH_EXPANDED = 125;
|
||||||
|
FC_WIDTH_EXTRAEXPANDED = 150;
|
||||||
|
FC_WIDTH_ULTRAEXPANDED = 200;
|
||||||
|
|
||||||
|
FC_PROPORTIONAL = 0;
|
||||||
|
FC_DUAL = 90;
|
||||||
|
FC_MONO = 100;
|
||||||
|
FC_CHARCELL = 110;
|
||||||
|
|
||||||
|
//* sub-pixel order */
|
||||||
|
FC_RGBA_UNKNOWN = 0;
|
||||||
|
FC_RGBA_RGB = 1;
|
||||||
|
FC_RGBA_BGR = 2;
|
||||||
|
FC_RGBA_VRGB = 3;
|
||||||
|
FC_RGBA_VBGR = 4;
|
||||||
|
FC_RGBA_NONE = 5;
|
||||||
|
|
||||||
|
// hinting style */
|
||||||
|
FC_HINT_NONE = 0;
|
||||||
|
FC_HINT_SLIGHT = 1;
|
||||||
|
FC_HINT_MEDIUM = 2;
|
||||||
|
FC_HINT_FULL = 3;
|
||||||
|
|
||||||
|
// LCD filter */
|
||||||
|
FC_LCD_NONE = 0;
|
||||||
|
FC_LCD_DEFAULT = 1;
|
||||||
|
FC_LCD_LIGHT = 2;
|
||||||
|
FC_LCD_LEGACY = 3;
|
||||||
|
|
||||||
|
type
|
||||||
|
TFcType = Byte; // In C was a enum
|
||||||
|
|
||||||
|
const
|
||||||
|
FcTypeVoid = 0;
|
||||||
|
FcTypeInteger = 1;
|
||||||
|
FcTypeDouble = 2;
|
||||||
|
FcTypeString = 3;
|
||||||
|
FcTypeBool = 4;
|
||||||
|
FcTypeMatrix = 5;
|
||||||
|
FcTypeCharSet = 6;
|
||||||
|
FcTypeFTFace = 7;
|
||||||
|
FcTypeLangSet = 8;
|
||||||
|
|
||||||
|
type
|
||||||
|
TFcMatrix = record
|
||||||
|
xx, xy, yx, yy: double;
|
||||||
|
end;
|
||||||
|
|
||||||
|
//#define FcMatrixInit(m) ((m)->xx = (m)->yy = 1, \
|
||||||
|
// (m)->xy = (m)->yx = 0)
|
||||||
|
|
||||||
|
{*
|
||||||
|
* A data structure to represent the available glyphs in a font.
|
||||||
|
* This is represented as a sparse boolean btree.
|
||||||
|
*}
|
||||||
|
|
||||||
|
TFcCharSet = record
|
||||||
|
dummy : integer;
|
||||||
|
end;
|
||||||
|
PFcCharSet = ^TFcCharSet;
|
||||||
|
|
||||||
|
TFcObjectType = record
|
||||||
|
object_: PChar;
|
||||||
|
type_: TFcType;
|
||||||
|
end;
|
||||||
|
|
||||||
|
TFcConstant = record
|
||||||
|
name: PFcChar8;
|
||||||
|
object_: PChar;
|
||||||
|
value: cint;
|
||||||
|
end;
|
||||||
|
|
||||||
|
TFcResult = (
|
||||||
|
FcResultMatch, FcResultNoMatch, FcResultTypeMismatch, FcResultNoId,
|
||||||
|
FcResultOutOfMemory);
|
||||||
|
|
||||||
|
TFcPattern = record
|
||||||
|
dummy : integer;
|
||||||
|
end;
|
||||||
|
|
||||||
|
PFcPattern = ^TFcPattern;
|
||||||
|
PPFcPattern = ^PFcPattern;
|
||||||
|
|
||||||
|
TFcLangSet = record
|
||||||
|
dummy : integer;
|
||||||
|
end;
|
||||||
|
|
||||||
|
TFcValue = record
|
||||||
|
type_: TFcType;
|
||||||
|
(*union {
|
||||||
|
const FcChar8 *s;
|
||||||
|
int i;
|
||||||
|
FcBool b;
|
||||||
|
double d;
|
||||||
|
const FcMatrix *m;
|
||||||
|
const FcCharSet *c;
|
||||||
|
void *f;
|
||||||
|
const FcLangSet *l;
|
||||||
|
} u;*)
|
||||||
|
end;
|
||||||
|
|
||||||
|
TFcFontSet = packed record
|
||||||
|
nfont : integer;
|
||||||
|
sfont : integer;
|
||||||
|
fonts : PPFcPattern;
|
||||||
|
end;
|
||||||
|
PFcFontSet = ^TFcFontSet;
|
||||||
|
|
||||||
|
implementation
|
||||||
|
|
||||||
|
end.
|
||||||
|
|
126
packages/x11/src/xft.pas
Normal file
126
packages/x11/src/xft.pas
Normal file
@ -0,0 +1,126 @@
|
|||||||
|
{ Original C header:
|
||||||
|
* include/X11/Xft/Xft.h. Generated from Xft.h.in by configure. */
|
||||||
|
/*
|
||||||
|
* Copyright © 2000 Keith Packard
|
||||||
|
*
|
||||||
|
* Permission to use, copy, modify, distribute, and sell this software and its
|
||||||
|
* documentation for any purpose is hereby granted without fee, provided that
|
||||||
|
* the above copyright notice appear in all copies and that both that
|
||||||
|
* copyright notice and this permission notice appear in supporting
|
||||||
|
* documentation, and that the name of Keith Packard not be used in
|
||||||
|
* advertising or publicity pertaining to distribution of the software without
|
||||||
|
* specific, written prior permission. Keith Packard makes no
|
||||||
|
* representations about the suitability of this software for any purpose. It
|
||||||
|
* is provided "as is" without express or implied warranty.
|
||||||
|
*
|
||||||
|
* KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
|
||||||
|
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
|
||||||
|
* EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
|
||||||
|
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
|
||||||
|
* DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
|
||||||
|
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||||
|
* PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
*}
|
||||||
|
{
|
||||||
|
Initial Pascal headers obtained from:
|
||||||
|
fpGUI - Free Pascal GUI Toolkit
|
||||||
|
|
||||||
|
Copyright (C) 2006 - 2010 See the file AUTHORS.txt, included in this
|
||||||
|
distribution, for details of the copyright.
|
||||||
|
|
||||||
|
See the file COPYING.modifiedLGPL, included in this distribution,
|
||||||
|
for details about redistributing fpGUI.
|
||||||
|
|
||||||
|
This program 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.
|
||||||
|
|
||||||
|
Headers extended and modified by Felipe Monteiro de Carvalho in 2011
|
||||||
|
|
||||||
|
Description:
|
||||||
|
Xft interface functions
|
||||||
|
}
|
||||||
|
unit xft;
|
||||||
|
|
||||||
|
{$mode objfpc}{$H+}
|
||||||
|
{$packrecords c}
|
||||||
|
|
||||||
|
interface
|
||||||
|
|
||||||
|
uses
|
||||||
|
Classes, SysUtils, X, XLib, Xutil, ctypes, fontconfig, xrender;
|
||||||
|
|
||||||
|
//#include FT_FREETYPE_H
|
||||||
|
//#include <fontconfig/fontconfig.h>
|
||||||
|
//#include <X11/extensions/Xrender.h>
|
||||||
|
|
||||||
|
const
|
||||||
|
{$IF Defined(DARWIN)}
|
||||||
|
libXft = 'libXft.dylib';
|
||||||
|
{$linklib Xft}
|
||||||
|
{$ELSE}
|
||||||
|
libXft = 'libXft.so';
|
||||||
|
{$IFEND}
|
||||||
|
|
||||||
|
{* Current Xft version number, set from version in the Xft configure.ac file. *}
|
||||||
|
XFT_MAJOR = 2;
|
||||||
|
XFT_MINOR = 2;
|
||||||
|
XFT_REVISION = 0;
|
||||||
|
|
||||||
|
XFT_VERSION = ((XFT_MAJOR * 10000) + (XFT_MINOR * 100) + (XFT_REVISION));
|
||||||
|
XftVersion = XFT_VERSION;
|
||||||
|
|
||||||
|
XFT_CORE = 'core';
|
||||||
|
XFT_RENDER = 'render';
|
||||||
|
XFT_XLFD = 'xlfd';
|
||||||
|
XFT_MAX_GLYPH_MEMORY ='maxglyphmemory';
|
||||||
|
XFT_MAX_UNREF_FONTS = 'maxunreffonts';
|
||||||
|
|
||||||
|
type
|
||||||
|
// extern FT_Library _XftFTlibrary;
|
||||||
|
|
||||||
|
TXftFontInfo = record end;
|
||||||
|
|
||||||
|
TPicture = longword;
|
||||||
|
|
||||||
|
TXftDraw = record end;
|
||||||
|
PXftDraw = ^TXftDraw;
|
||||||
|
|
||||||
|
TXftFont = record
|
||||||
|
ascent : cint;
|
||||||
|
descent : cint;
|
||||||
|
height : cint;
|
||||||
|
max_advance_width : cint;
|
||||||
|
ptr1 : PFcCharSet;
|
||||||
|
ptr2 : PFcPattern;
|
||||||
|
end;
|
||||||
|
PXftFont = ^TXftFont;
|
||||||
|
|
||||||
|
TXftColor = record
|
||||||
|
pixel : culong;
|
||||||
|
color : TXRenderColor;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function XftDrawCreate(display : PXDisplay; win : TXID; vis : PVisual; colorm : longint) : PXftDraw; cdecl; external libXft;
|
||||||
|
procedure XftDrawChange(xftd : PXftDraw; win : TXID); cdecl; external libXft;
|
||||||
|
procedure XftDrawDestroy(draw : PXftDraw); cdecl; external libXft;
|
||||||
|
function XftDrawPicture(draw : PXftDraw) : TPicture; cdecl; external libXft;
|
||||||
|
function XftFontOpenName(display : PXDisplay; scr : integer; par3 : PChar) : PXftFont; cdecl; external libXft;
|
||||||
|
procedure XftFontClose(display : PXDisplay; fnt : PXftFont); cdecl; external libXft;
|
||||||
|
procedure XftDrawStringUtf8(draw : PXftDraw; var col : TXftColor; fnt : PXftFont; x,y : integer; txt : PChar; len : integer); cdecl; external libXft;
|
||||||
|
procedure XftDrawString8(draw : PXftDraw; var col : TXftColor; fnt : PXftFont; x,y : integer; txt : PChar; len : integer); cdecl; external libXft;
|
||||||
|
procedure XftDrawString16(draw : PXftDraw; var col : TXftColor; fnt : PXftFont; x,y : integer; txt : PChar; len : integer); cdecl; external libXft;
|
||||||
|
procedure XftTextExtentsUtf8(display : PXDisplay; fnt : PXftFont; txt : PChar; len : integer; var extents : TXGlyphInfo); cdecl; external libXft;
|
||||||
|
procedure XftTextExtents8(display : PXDisplay; fnt : PXftFont; txt : PChar; len : integer; var extents : TXGlyphInfo); cdecl; external libXft;
|
||||||
|
procedure XftTextExtents16(display : PXDisplay; fnt : PXftFont; txt : PChar; len : integer; var extents : TXGlyphInfo); cdecl; external libXft;
|
||||||
|
//function XftGlyphExists(display : PXDisplay; fnt : PXftFont; ch : integer) : longbool; cdecl; external libXft;
|
||||||
|
//procedure XftDrawSetClipRectangles(draw : PXftDraw; xorigin, yorigin : integer; rect : PXRectangle; rnum : integer); cdecl; external libXft;
|
||||||
|
procedure XftDrawSetClip(draw : PXftDraw; rg : TRegion); cdecl; external libXft;
|
||||||
|
function XftListFonts(display : PXDisplay; screen : integer; params : array of const) : PFcFontSet; cdecl; external libXft;
|
||||||
|
function XftNameUnparse(pat : PFcPattern; dest : PChar; destlen : integer) : boolean; cdecl; external libXft;
|
||||||
|
procedure FcFontSetDestroy(fsp : PFcFontSet); cdecl; external libXft;
|
||||||
|
|
||||||
|
implementation
|
||||||
|
|
||||||
|
end.
|
||||||
|
|
@ -1,7 +1,9 @@
|
|||||||
unit xrender;
|
unit xrender;
|
||||||
|
|
||||||
interface
|
interface
|
||||||
|
|
||||||
uses
|
uses
|
||||||
x,xlib;
|
x, xlib, ctypes;
|
||||||
|
|
||||||
{$ifndef os2}
|
{$ifndef os2}
|
||||||
{$LinkLib c}
|
{$LinkLib c}
|
||||||
@ -133,6 +135,13 @@ type
|
|||||||
colormap : TColormap;
|
colormap : TColormap;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
TXRenderColor = record
|
||||||
|
red : cushort;
|
||||||
|
green : cushort;
|
||||||
|
blue : cushort;
|
||||||
|
alpha : cushort;
|
||||||
|
end;
|
||||||
|
|
||||||
const
|
const
|
||||||
PictFormatID = 1 shl 0;
|
PictFormatID = 1 shl 0;
|
||||||
PictFormatType = 1 shl 1;
|
PictFormatType = 1 shl 1;
|
||||||
@ -198,12 +207,12 @@ type
|
|||||||
|
|
||||||
PXGlyphInfo = ^TXGlyphInfo;
|
PXGlyphInfo = ^TXGlyphInfo;
|
||||||
TXGlyphInfo = record
|
TXGlyphInfo = record
|
||||||
width : word;
|
width : cushort;
|
||||||
height : word;
|
height : cushort;
|
||||||
x : smallint;
|
x : cshort;
|
||||||
y : smallint;
|
y : cshort;
|
||||||
xOff : smallint;
|
xOff : cshort;
|
||||||
yOff : smallint;
|
yOff : cshort;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function XRenderQueryExtension(dpy:PDisplay; event_basep:Plongint; error_basep:Plongint):TBoolResult;cdecl;external libX11;
|
function XRenderQueryExtension(dpy:PDisplay; event_basep:Plongint; error_basep:Plongint):TBoolResult;cdecl;external libX11;
|
||||||
|
Loading…
Reference in New Issue
Block a user