OpenTTD Source: BlitterFactory Class Reference

OpenTTD Source 13.2.1

Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Types | Static Private Member Functions | Private Attributes
BlitterFactory Class Referenceabstract

The base factory, keeping track of all blitters. More...

`#include <factory.hpp>`

Inheritance diagram for BlitterFactory:

## Public Member Functions
const std::string & | GetName () const
| Get the long, human readable, name for the Blitter-class.
const std::string & | GetDescription () const
| Get a nice description of the blitter-class.
virtual Blitter * | CreateInstance ()=0
| Create an instance of this Blitter-class.

## Static Public Member Functions
static Blitter * | SelectBlitter (const std::string &name)
| Find the requested blitter and return its class. More...
static BlitterFactory * | GetBlitterFactory (const std::string &name)
| Get the blitter factory with the given name. More...
static Blitter * | GetCurrentBlitter ()
| Get the current active blitter (always set by calling SelectBlitter).
static char * | GetBlittersInfo (char *p, const char *last)
| Fill a buffer with information about the blitters. More...

## Protected Member Functions
| BlitterFactory (const char *name, const char *description, bool usable=true)
| Construct the blitter, and register it. More...
virtual bool | IsUsable () const
| Is the blitter usable with the current drivers and hardware config? More...

## Private Types
typedef std::map< std::string, BlitterFactory * > | Blitters
| Map of blitter factories.

## Static Private Member Functions
static Blitters & | GetBlitters ()
| Get the map with currently known blitters. More...
static Blitter ** | GetActiveBlitter ()
| Get the currently active blitter. More...

## Private Attributes
const std::string | name
| The name of the blitter factory.
const std::string | description
| The description of the blitter.

## Detailed Description

The base factory, keeping track of all blitters.

Definition at line 23 of file factory.hpp.

## Constructor & Destructor Documentation

## ◆ BlitterFactory()

BlitterFactory::BlitterFactory | ( | const char * | name,
|  | const char * | description,
|  | bool | usable = `true`
| ) |  |
| inlineprotected

Construct the blitter, and register it.

Parameters

  name | The name of the blitter.
  description | A longer description for the blitter.
  usable | Whether the blitter is usable (on the current computer). For example for disabling SSE blitters when the CPU can't handle them.

Precondition
  name != nullptr.
  description != nullptr.
  There is no blitter registered with this name.

Definition at line 60 of file factory.hpp.

References Debug, GetBlitters(), and name.

## Member Function Documentation

## ◆ GetActiveBlitter()

static Blitter** BlitterFactory::GetActiveBlitter | ( |  | ) |
| inlinestaticprivate

Get the currently active blitter.

Returns
  The currently active blitter.

Definition at line 44 of file factory.hpp.

Referenced by GetCurrentBlitter(), and SelectBlitter().

## ◆ GetBlitterFactory()

static BlitterFactory* BlitterFactory::GetBlitterFactory | ( | const std::string & | name | ) |
| inlinestatic

Get the blitter factory with the given name.

Parameters

  name | the blitter factory to select.

Returns
  The blitter factory, or nullptr when there isn't one with the wanted name.

Definition at line 116 of file factory.hpp.

References GetBlitters(), IsUsable(), and name.

Referenced by SelectBlitter().

## ◆ GetBlitters()

static Blitters& BlitterFactory::GetBlitters | ( |  | ) |
| inlinestaticprivate

Get the map with currently known blitters.

Returns
  The known blitters.

Definition at line 34 of file factory.hpp.

Referenced by BlitterFactory(), GetBlitterFactory(), and GetBlittersInfo().

## ◆ GetBlittersInfo()

static char* BlitterFactory::GetBlittersInfo | ( | char * | p,
|  | const char * | last
| ) |  |
| inlinestatic

Fill a buffer with information about the blitters.

Parameters

  p | The buffer to fill.
  last | The last element of the buffer.

Returns
  p The location till where we filled the buffer.

Definition at line 152 of file factory.hpp.

References GetBlitters(), GetDescription(), name, and seprintf().

## ◆ IsUsable()

virtual bool BlitterFactory::IsUsable | ( |  | ) | const
| inlineprotectedvirtual

Is the blitter usable with the current drivers and hardware config?

Returns
  True if the blitter can be instantiated.

Reimplemented in FBlitter_40bppAnim.

Definition at line 81 of file factory.hpp.

Referenced by GetBlitterFactory().

## ◆ SelectBlitter()

static Blitter* BlitterFactory::SelectBlitter | ( | const std::string & | name | ) |
| inlinestatic

Find the requested blitter and return its class.

Parameters

  name | the blitter to select.

Postcondition
  Sets the blitter so GetCurrentBlitter() returns it too.

Definition at line 98 of file factory.hpp.

References CreateInstance(), Debug, GetActiveBlitter(), GetBlitterFactory(), Blitter::GetName(), and name.

The documentation for this class was generated from the following file:

- src/blitter/factory.hpp