TDME2  1.9.200
VBOManager.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <string>
4 #include <unordered_map>
5 
6 #include <tdme/tdme.h>
11 
12 using std::string;
13 using std::unordered_map;
14 
18 
19 /**
20  * VBO manager
21  * @author Andreas Drewke
22  */
24 {
25  friend class VBOManager_VBOManaged;
26 
27 private:
28  Renderer* renderer { nullptr };
29  unordered_map<string, VBOManager_VBOManaged*> vbos;
31 
32 public:
33  // forbid class copy
35 
36  /**
37  * Public constructor
38  */
40 
41  /**
42  * Destructor
43  */
44  ~VBOManager();
45 
46  /**
47  * Adds a VBO to manager or retrieve VBO if existing
48  * @param vboId VBO id
49  * @param ids VBOs to allocate
50  * @param useGPUMemory use GPU memory
51  * @param shared shared between different threads
52  * @param created returns if VBO was just created
53  */
54  VBOManager_VBOManaged* addVBO(const string& vboId, int32_t ids, bool useGPUMemory, bool shared, bool& created);
55 
56  /**
57  * Retrieves a VBO managed from manager
58  * @param vboId VBO id
59  * @return VBO managed or nullptr
60  */
61  VBOManager_VBOManaged* getVBO(const string& vboId);
62 
63  /**
64  * Removes a VBO from manager
65  * @param vboId VBO id
66  */
67  void removeVBO(const string& vboId);
68 
69 };
VBOManager(Renderer *renderer)
Public constructor.
Definition: VBOManager.cpp:21
unordered_map< string, VBOManager_VBOManaged * > vbos
Definition: VBOManager.h:29
VBOManager_VBOManaged * addVBO(const string &vboId, int32_t ids, bool useGPUMemory, bool shared, bool &created)
Adds a VBO to manager or retrieve VBO if existing.
Definition: VBOManager.cpp:31
VBOManager_VBOManaged * getVBO(const string &vboId)
Retrieves a VBO managed from manager.
Definition: VBOManager.cpp:57
void removeVBO(const string &vboId)
Removes a VBO from manager.
Definition: VBOManager.cpp:73
Implementation for read/write lock.
Definition: ReadWriteLock.h:17
#define FORBID_CLASS_COPY(CLASS)
Definition: tdme.h:6