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.