|
Unofficial OpenGL Software Development Kit
0.5.0
|
#include <Shader.h>
Inherits noncopyable.
RAII object for managing a shader object.
This object manages the lifetime of a shader object. It represents a uniquely-owned shader 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 shader objects.
Public Member Functions | |
| UniqueShader () | |
| An empty UniqueShader, with shader name 0. | |
| UniqueShader (GLuint shader) | |
| Create a UniqueShader from an existing shader object. | |
| ~UniqueShader () | |
| Destroys the owned shader object, if any. | |
| void | swap (UniqueShader &other) |
| Exchanges shader ownership between the two objects. | |
| operator GLuint () const | |
| Implicit conversion to shader object. | |
| void | reset (GLuint newShader=0) |
| The given shader becomes the current shader; the old one is deleted. | |
| GLuint | release () |
| Abandons ownership of the currently-owned shader object. More... | |
|
inline |
Abandons ownership of the currently-owned shader object.
After calling this function, the shader object will be unowned. It will not have been destroyed.
1.8.3.1