view libass/ass_bitmap.h @ 21477:706ee13d09f1

help_mp-de.h: r21367: If a glyph is not found in the current font, switch to another one. r21476: Open embedded fonts directly from memory. [...] mplayer.1: r21357: Cycling through video tracks works with libavformat as well. r21398: improve description of lavf's i_certify_that_my_video_stream_does_not_use_b_frames r21399: fix suggested by Diego r21410: document new meaning of dia=-1 introduced by lavc r7192 r21413: mark lavc's uneven multi-hexagon search as slow, remove stray '.' r21430: documented -mpegopts :[va]buf_size r21441: Audio track switching works for AVI and libavformat as well. r21446: Remove long-deprecated -vop option. r21449: Merge dga/nodga suboption of vo_vesa, no short forms. r21452: document s3fb video out driver r21484: documented -mpegopts :tele_src and :tele_dest r21486: Improoving readability of pullup filter section r21487: document s3fb suboption, [...]
author kraymer
date Mon, 04 Dec 2006 19:06:19 +0000
parents fa122b7c71c6
children 71b3e04d0555
line wrap: on
line source

// -*- c-basic-offset: 8; indent-tabs-mode: t -*-
// vim:ts=8:sw=8:noet:ai:
/*
  Copyright (C) 2006 Evgeniy Stepanov <eugeni.stepanov@gmail.com>

  This program is free software; you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
  the Free Software Foundation; either version 2 of the License, or
  (at your option) any later version.

  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.  See the
  GNU General Public License for more details.

  You should have received a copy of the GNU General Public License
  along with this program; if not, write to the Free Software
  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/

#ifndef __ASS_BITMAP_H__
#define __ASS_BITMAP_H__

typedef struct ass_synth_priv_s ass_synth_priv_t;

ass_synth_priv_t* ass_synth_init();
void ass_synth_done(ass_synth_priv_t* priv);

typedef struct bitmap_s {
	int left, top;
	int w, h; // width, height
	unsigned char* buffer; // w x h buffer
} bitmap_t;

/**
 * \brief perform glyph rendering
 * \param glyph original glyph
 * \param outline_glyph "border" glyph, produced from original by FreeType's glyph stroker
 * \param bm_g out: pointer to the bitmap of original glyph is returned here
 * \param bm_o out: pointer to the bitmap of outline (border) glyph is returned here
 * \param bm_g out: pointer to the bitmap of glyph shadow is returned here
 * \param be 1 = produces blurred bitmaps, 0 = normal bitmaps
 */
int glyph_to_bitmap(ass_synth_priv_t* priv, FT_Glyph glyph, FT_Glyph outline_glyph, bitmap_t** bm_g, bitmap_t** bm_o, bitmap_t** bm_s, int be);

void ass_free_bitmap(bitmap_t* bm);

#endif