# SDL_Pango.c File Reference

Implementation of SDL_Pango. More...

`#include <pango/pango.h>`
`#include <pango/pangoft2.h>`
`#include "SDL_Pango.h"`

## Classes

struct | _surfaceArgs
struct | _contextImpl

## Defines

#define | DEFAULT_FONT_FAMILY "Sans"
#define | DEFAULT_FONT_SIZE 12
#define | DEFAULT_DPI 96
#define | _MAKE_FONT_NAME(family, size) family " " #size
#define | MAKE_FONT_NAME(family, size) _MAKE_FONT_NAME(family, size)
#define | DEFAULT_DEPTH 32
#define | DEFAULT_RMASK (Uint32)(255 << (8 * 3))
#define | DEFAULT_GMASK (Uint32)(255 << (8 * 2))
#define | DEFAULT_BMASK (Uint32)(255 << (8 * 1))
#define | DEFAULT_AMASK (Uint32)255

## Typedefs

typedef _surfaceArgs | surfaceArgs
typedef _contextImpl | contextImpl

## Functions

int | SDLPango_Init ()
int | SDLPango_WasInit ()
void | SDLPango_CopyFTBitmapToSurface (const FT_Bitmap *bitmap, SDL_Surface *surface, const SDLPango_Matrix *matrix, SDL_Rect *rect)
SDLPango_Context * | SDLPango_CreateContext ()
void | SDLPango_FreeContext (SDLPango_Context *context)
void | SDLPango_SetSurfaceCreateArgs (SDLPango_Context *context, Uint32 flags, int depth, Uint32 Rmask, Uint32 Gmask, Uint32 Bmask, Uint32 Amask)
SDL_Surface * | SDLPango_CreateSurfaceDraw (SDLPango_Context *context)
void | SDLPango_Draw (SDLPango_Context *context, SDL_Surface *surface, int x, int y)
void | SDLPango_SetMinimumSize (SDLPango_Context *context, int width, int height)
void | SDLPango_SetDefaultColor (SDLPango_Context *context, const SDLPango_Matrix *color_matrix)
int | SDLPango_GetLayoutWidth (SDLPango_Context *context)
int | SDLPango_GetLayoutHeight (SDLPango_Context *context)
void | SDLPango_SetMarkup (SDLPango_Context *context, const char *markup, int length)
void | SDLPango_SetText (SDLPango_Context *context, const char *text, int length)
void | SDLPango_SetDpi (SDLPango_Context *context, double dpi_x, double dpi_y)
void SDLCALL | SDLPango_SetLanguage (SDLPango_Context *context, const char *language_tag)
void SDLCALL | SDLPango_SetBaseDirection (SDLPango_Context *context, SDLPango_Direction direction)
PangoFontMap *SDLCALL | SDLPango_GetPangoFontMap (SDLPango_Context *context)
PangoFontDescription *SDLCALL | SDLPango_GetPangoFontDescription (SDLPango_Context *context)
PangoLayout *SDLCALL | SDLPango_GetPangoLayout (SDLPango_Context *context)

## Detailed Description

Implementation of SDL_Pango.

Author:
  NAKAMURA Ken'ichi

Date:
  2004/12/07
  Revision
    1.6

## Function Documentation

void SDLPango_CopyFTBitmapToSurface | ( | const FT_Bitmap * | bitmap,
|  | SDL_Surface * | surface,
|  | const SDLPango_Matrix * | matrix,
|  | SDL_Rect * | rect
| ) |

Copy bitmap to surface. From (x, y)-(w, h) to (x, y)-(w, h) of rect.

Parameters:

  | *bitmap | [in] Grayscale bitmap
  | *surface | [out] Surface
  | *matrix | [in] Foreground and background color
  | *rect | [in] Rect to copy

SDLPango_Context* SDLPango_CreateContext | ( |  | ) |

Create a context which contains Pango objects.

Returns:
  A pointer to the context as a SDLPango_Context*.

SDL_Surface* SDLPango_CreateSurfaceDraw | ( | SDLPango_Context * | context | ) |

Create a surface and draw text on it. The size of surface is same as lauout size.

Parameters:

  | *context | [in] Context

Returns:
  A newly created surface

void SDLPango_Draw | ( | SDLPango_Context * | context,
|  | SDL_Surface * | surface,
|  | int | x,
|  | int | y
| ) |

Draw text on a existing surface.

Parameters:

  | *context | [in] Context
  | *surface | [i/o] Surface to draw on it
  | x | [in] X of left-top of drawing area
  | y | [in] Y of left-top of drawing area

void SDLPango_FreeContext | ( | SDLPango_Context * | context | ) |

Free a context.

Parameters:

  | *context | [i/o] Context to be free

int SDLPango_GetLayoutHeight | ( | SDLPango_Context * | context | ) |

Get layout height.

Parameters:

  | *context | [in] Context

Returns:
  Height

int SDLPango_GetLayoutWidth | ( | SDLPango_Context * | context | ) |

Get layout width.

Parameters:

  | *context | [in] Context

Returns:
  Width

PangoFontDescription* SDLCALL SDLPango_GetPangoFontDescription | ( | SDLPango_Context * | context | ) |

Get font description from context.

Parameters:

  | *context | [in] Context

Returns:
  Font description

PangoFontMap* SDLCALL SDLPango_GetPangoFontMap | ( | SDLPango_Context * | context | ) |

Get font map from context.

Parameters:

  | *context | [in] Context

Returns:
  Font map

PangoLayout* SDLCALL SDLPango_GetPangoLayout | ( | SDLPango_Context * | context | ) |

Get layout from context.

Parameters:

  | *context | [in] Context

Returns:
  Layout

int SDLPango_Init | ( |  | ) |

Initialize the Glib and Pango API. This must be called before using other functions in this library, excepting SDLPango_WasInit. SDL does not have to be initialized before this call.

Returns:
  always 0.

void SDLCALL SDLPango_SetBaseDirection | ( | SDLPango_Context * | context,
|  | SDLPango_Direction | direction
| ) |

Set base direction to context.

Parameters:

  | *context | [i/o] Context
  | direction | [in] Direction

void SDLPango_SetDefaultColor | ( | SDLPango_Context * | context,
|  | const SDLPango_Matrix * | color_matrix
| ) |

Specify default color.

Parameters:

  | *context | [i/o] Context
  | *color_matrix | [in] Foreground and background color

void SDLPango_SetDpi | ( | SDLPango_Context * | context,
|  | double | dpi_x,
|  | double | dpi_y
| ) |

Set DPI to context.

Parameters:

  | *context | [i/o] Context
  | dpi_x | [in] X dpi
  | dpi_y | [in] Y dpi

void SDLCALL SDLPango_SetLanguage | ( | SDLPango_Context * | context,
|  | const char * | language_tag
| ) |

Set language to context.

Parameters:

  | *context | [i/o] Context
  | *language_tag | [in] A RFC-3066 format language tag

void SDLPango_SetMarkup | ( | SDLPango_Context * | context,
|  | const char * | markup,
|  | int | length
| ) |

Set markup text to context. Text must be utf-8. Markup format is same as pango.

Parameters:

  | *context | [i/o] Context
  | *markup | [in] Markup text
  | length | [in] Text length. -1 means NULL-terminated text.

void SDLPango_SetMinimumSize | ( | SDLPango_Context * | context,
|  | int | width,
|  | int | height
| ) |

Specify minimum size of drawing rect.

Parameters:

  | *context | [i/o] Context
  | width | [in] Width. -1 means no wrapping mode.
  | height | [in] Height. zero/minus value means non-specified.

void SDLPango_SetSurfaceCreateArgs | ( | SDLPango_Context * | context,
|  | Uint32 | flags,
|  | int | depth,
|  | Uint32 | Rmask,
|  | Uint32 | Gmask,
|  | Uint32 | Bmask,
|  | Uint32 | Amask
| ) |

Specify Arguments when create a surface. When SDL_Pango creates a surface, the arguments are used.

Parameters:

  | *context | [i/o] Context
  | flags | [in] Same as SDL_CreateRGBSurface()
  | depth | [in] Same as SDL_CreateRGBSurface()
  | Rmask | [in] Same as SDL_CreateRGBSurface()
  | Gmask | [in] Same as SDL_CreateRGBSurface()
  | Bmask | [in] Same as SDL_CreateRGBSurface()
  | Amask | [in] Same as SDL_CreateRGBSurface()

void SDLPango_SetText | ( | SDLPango_Context * | context,
|  | const char * | text,
|  | int | length
| ) |

Set plain text to context. Text must be utf-8.

Parameters:

  | *context | [i/o] Context
  | *text | [in] Plain text
  | length | [in] Text length. -1 means NULL-terminated text.

int SDLPango_WasInit | ( |  | ) |

Query the initilization status of the Glib and Pango API. You may, of course, use this before SDLPango_Init to avoid initilizing twice in a row.

Returns:
  zero when already initialized. non-zero when not initialized.