Vegastrike 0.5.1 rc1  1.0
Original sources for Vegastrike Evolved
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
DecalQueue Class Reference

#include <decalqueue.h>

Public Member Functions

 DecalQueue ()
 
TextureGetTexture (const unsigned int ref)
 
unsigned int AddTexture (const char *texname, enum FILTER mipmap)
 
bool DelTexture (unsigned int ref)
 

Detailed Description

Definition at line 4 of file decalqueue.h.

Constructor & Destructor Documentation

DecalQueue::DecalQueue ( )
inline

Definition at line 9 of file decalqueue.h.

9  : DecalQueue()
10  {
11  nullity = -1;
12  }

Member Function Documentation

unsigned int DecalQueue::AddTexture ( const char *  texname,
enum FILTER  mipmap 
)
inline

Definition at line 17 of file decalqueue.h.

References Texture::Exists(), g_game, GFXTRUE, i, Texture::LoadSuccess(), BaseUtil::Texture(), TEXTURE2D, TEXTURE_2D, and game_data_t::use_textures.

Referenced by Bolt::AddTexture(), Beam::Beam(), and Halo::Halo().

18  {
19  Texture *tmpDecal = Texture::Exists( std::string( texname ) );
20  if (nullity != -1 && tmpDecal == NULL && !g_game.use_textures)
21  tmpDecal = decal[nullity];
22  unsigned int i = 0;
23  unsigned int retval = 0;
24  int nullio = -1;
25  if (tmpDecal) {
26  for (; i < decal.size(); i++) {
27  if (decal[i]) {
28  if ( (*decal[i]) == (*tmpDecal) ) {
29  retval = i;
30  decalref[i]++;
31  break;
32  }
33  }
34  if (!decal[i] && decalref[i] == 0)
35  nullio = i;
36  }
37  }
38  if ( !tmpDecal || i == decal.size() ) {
39  //make sure we have our own to delete upon refcount =0
40  Texture *tex = new Texture( texname, 0, mipmap, TEXTURE2D, TEXTURE_2D, GFXTRUE );
41  if ( (nullity == -1) || tex->LoadSuccess() ) {
42  if (nullio != -1) {
43  retval = nullio;
44  decal[nullio] = tex;
45  decalref[nullio] = 1;
46  } else {
47  retval = decal.size();
48  decal.push_back( tex );
49  decalref.push_back( 1 );
50  }
51  }
52  if ( !tex->LoadSuccess() ) {
53  if (nullity == -1) {
54  nullity = retval;
55  } else {
56  delete tex;
57  tex = NULL;
58  retval = nullity;
59  decalref[nullity]++;
60  }
61  }
62  }
63  return retval;
64  }
bool DecalQueue::DelTexture ( unsigned int  ref)
inline

Definition at line 65 of file decalqueue.h.

Referenced by Bolt::Destroy(), Beam::~Beam(), bolt_draw::~bolt_draw(), and Halo::~Halo().

66  {
67  decalref[ref]--;
68  if (decalref[ref] <= 0) {
69  delete decal[ref];
70  decal[ref] = NULL;
71  return true;
72  }
73  return false;
74  }
Texture* DecalQueue::GetTexture ( const unsigned int  ref)
inline

Definition at line 13 of file decalqueue.h.

Referenced by Bolt::Draw(), Halo::ProcessDrawQueue(), and Beam::ProcessDrawQueue().

14  {
15  return decal[ref];
16  }

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