~ubuntu-branches/ubuntu/wily/hedgewars/wily

« back to all changes in this revision

Viewing changes to misc/libfreetype/src/raster/rastpic.c

  • Committer: Package Import Robot
  • Author(s): Dmitry E. Oboukhov
  • Date: 2011-09-23 10:16:55 UTC
  • mfrom: (1.2.11 upstream)
  • Revision ID: package-import@ubuntu.com-20110923101655-3977th2gc5n0a3pv
Tags: 0.9.16-1
* New upstream version.
 + Downloadable content! Simply click to install any content.
   New voices, hats, maps, themes, translations, music, scripts...
   Hedgewars is now more customisable than ever before! As time goes
   by we will be soliciting community content to feature on this page,
   so remember to check it from time to time. If you decide you want
   to go back to standard Hedgewars, just remove the Data directory
   from your Hedgewars config directory.
 + 3-D rendering! Diorama-like rendering of the game in a variety
   of 3D modes. Let us know which ones work best for you, we didn't
   really have the equipment to test them all.
 + Resizable game window.
 + New utilities! The Time Box will remove one of your hedgehogs
   from the game for a while, protecting from attack until it returns,
   somewhere else on the map. Land spray will allow you to build bridges,
   seal up holes, or just make life unpleasant for your enemies.
 + New single player: Bamboo Thicket, That Sinking Feeling, Newton and
   the Tree and multi-player: The Specialists, Space Invaders,
   Racer - scripts! And a ton more script hooks for scripters
 + New twists on old weapons. Drill strike, seduction and fire have
   been adjusted. Defective mines have been added, rope can attach to
   hogs/crates/barrels again, grenades now have variable bounce (use
   precise key + 1-5). Portal gun is now more usable in flight and
   all game actions are a lot faster.
 + New theme - Golf, dozens of new community hats and a new
   localised Default voice, Ukranian.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/***************************************************************************/
 
2
/*                                                                         */
 
3
/*  rastpic.c                                                              */
 
4
/*                                                                         */
 
5
/*    The FreeType position independent code services for raster module.   */
 
6
/*                                                                         */
 
7
/*  Copyright 2009, 2010 by                                                */
 
8
/*  Oran Agra and Mickey Gabel.                                            */
 
9
/*                                                                         */
 
10
/*  This file is part of the FreeType project, and may only be used,       */
 
11
/*  modified, and distributed under the terms of the FreeType project      */
 
12
/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
 
13
/*  this file you indicate that you have read the license and              */
 
14
/*  understand and accept it fully.                                        */
 
15
/*                                                                         */
 
16
/***************************************************************************/
 
17
 
 
18
 
 
19
#include <ft2build.h>
 
20
#include FT_FREETYPE_H
 
21
#include FT_INTERNAL_OBJECTS_H
 
22
#include "rastpic.h"
 
23
 
 
24
#ifdef FT_CONFIG_OPTION_PIC
 
25
 
 
26
  /* forward declaration of PIC init functions from ftraster.c */
 
27
  void FT_Init_Class_ft_standard_raster(FT_Raster_Funcs*);
 
28
 
 
29
  void
 
30
  ft_raster1_renderer_class_pic_free(  FT_Library library )
 
31
  {
 
32
    FT_PIC_Container* pic_container = &library->pic_container;
 
33
    FT_Memory memory = library->memory;
 
34
    if ( pic_container->raster )
 
35
    {
 
36
      RasterPIC* container = (RasterPIC*)pic_container->raster;
 
37
      if(--container->ref_count)
 
38
        return;
 
39
      FT_FREE( container );
 
40
      pic_container->raster = NULL;
 
41
    }
 
42
  }
 
43
 
 
44
 
 
45
  FT_Error
 
46
  ft_raster1_renderer_class_pic_init( FT_Library library )
 
47
  {
 
48
    FT_PIC_Container* pic_container = &library->pic_container;
 
49
    FT_Error          error         = Raster_Err_Ok;
 
50
    RasterPIC*        container;
 
51
    FT_Memory         memory        = library->memory;
 
52
 
 
53
 
 
54
    /* since this function also serve raster5 renderer, 
 
55
       it implements reference counting */
 
56
    if ( pic_container->raster )
 
57
    {
 
58
      ((RasterPIC*)pic_container->raster)->ref_count++;
 
59
      return error;
 
60
    }
 
61
 
 
62
    /* allocate pointer, clear and set global container pointer */
 
63
    if ( FT_ALLOC ( container, sizeof ( *container ) ) )
 
64
      return error;
 
65
    FT_MEM_SET( container, 0, sizeof(*container) );
 
66
    pic_container->raster = container;
 
67
    container->ref_count = 1;
 
68
 
 
69
    /* initialize pointer table - this is how the module usually expects this data */
 
70
    FT_Init_Class_ft_standard_raster(&container->ft_standard_raster);
 
71
/*Exit:*/
 
72
    if(error)
 
73
      ft_raster1_renderer_class_pic_free(library);
 
74
    return error;
 
75
  }
 
76
 
 
77
  /* re-route these init and free functions to the above functions */
 
78
  FT_Error ft_raster5_renderer_class_pic_init(FT_Library library)
 
79
  {
 
80
    return ft_raster1_renderer_class_pic_init(library);
 
81
  }
 
82
  void ft_raster5_renderer_class_pic_free(FT_Library library)
 
83
  {
 
84
    ft_raster1_renderer_class_pic_free(library);
 
85
  }
 
86
 
 
87
#endif /* FT_CONFIG_OPTION_PIC */
 
88
 
 
89
 
 
90
/* END */