|
Unofficial OpenGL Software Development Kit
0.5.0
|
#include <Shader.h>
Inherits noncopyable.
RAII object for managing a program object.
This object manages the lifetime of a program object. It represents a uniquely-owned program object. It is implicitly convertible to GLuint, so you can use it more or less wherever you used a GLuint before.
It is explicitly non-copyable. C++11 would eventually allow move-semantics, but that's not widely available enough to directly support. If you need to transfer ownership, it is swappable, so you'll have to make due with using `swap`.
This RAII-style class makes it easy to be exception-safe with program objects.
Public Member Functions | |
| UniqueProgram () | |
| An empty UniqueProgram, with program name 0. | |
| UniqueProgram (GLuint program) | |
| Create a UniqueProgram from an existing program object. | |
| ~UniqueProgram () | |
| Destroys the owned program object, if any. | |
| void | swap (UniqueProgram &other) |
| Exchanges program ownership between the two objects. | |
| operator GLuint () const | |
| Implicit conversion to program object. | |
| void | reset (GLuint newProgram=0) |
| The given program becomes the current program; the old one is deleted. | |
| GLuint | release () |
| Abandons ownership of the currently-owned program object. More... | |
|
inline |
Abandons ownership of the currently-owned program object.
After calling this function, the program object will be unowned. It will not have been destroyed.
1.8.3.1