Panda3D

- Main Page
- Packages
- Classes

- Class List
- Class Index
- Class Hierarchy
- Class Members

Static Public Member Functions

# ShaderPool Class Reference

This is the preferred interface for loading shaders for the TextNode system. More...

List of all members.

## Static Public Member Functions
static | addShader (Filename const filename, Shader shader)
| Adds the indicated already-loaded shader to the pool.
static int | garbageCollect ()
| Releases only those shaders in the pool that have a reference count of exactly 1; i.e.
static bool | hasShader (Filename const filename)
| Returns true if the shader has ever been loaded, false otherwise.
static | listContents (ostream out)
| Lists the contents of the shader pool to the indicated output stream.
static Shader const | loadShader (Filename const filename)
| Loads the given filename up into a shader, if it has not already been loaded, and returns the new shader.
static | releaseAllShaders ()
| Releases all shaders in the pool and restores the pool to the empty state.
static | releaseShader (Filename const filename)
| Removes the indicated shader from the pool, indicating it will never be loaded again; the shader may then be freed.
static bool | verifyShader (Filename const filename)
| Loads the given filename up into a shader, if it has not already been loaded, and returns true to indicate success, or false to indicate failure.
static | write (ostream out)
| Lists the contents of the shader pool to the indicated output stream.

## Detailed Description

This is the preferred interface for loading shaders for the TextNode system.

It is similar to ModelPool and TexturePool in that it unifies references to the same filename.

## Member Function Documentation

static addShader | ( | Filename const | filename,
|  | Shader | shader
| ) |  | `[static]`

Adds the indicated already-loaded shader to the pool.

The shader will always replace any previously-loaded shader in the pool that had the same filename.

static int garbageCollect | ( |  | ) | `[static]`

Releases only those shaders in the pool that have a reference count of exactly 1; i.e.

only those shaders that are not being used outside of the pool. Returns the number of shaders released.

static bool hasShader | ( | Filename const | filename | ) | `[static]`

Returns true if the shader has ever been loaded, false otherwise.

static listContents | ( | ostream | out | ) | `[static]`

Lists the contents of the shader pool to the indicated output stream.

static Shader const loadShader | ( | Filename const | filename | ) | `[static]`

Loads the given filename up into a shader, if it has not already been loaded, and returns the new shader.

If a shader with the same filename was previously loaded, returns that one instead. If the shader file cannot be found, returns NULL.

static releaseAllShaders | ( |  | ) | `[static]`

Releases all shaders in the pool and restores the pool to the empty state.

static releaseShader | ( | Filename const | filename | ) | `[static]`

Removes the indicated shader from the pool, indicating it will never be loaded again; the shader may then be freed.

If this function is never called, a reference count will be maintained on every shader every loaded, and shaders will never be freed.

static bool verifyShader | ( | Filename const | filename | ) | `[static]`

Loads the given filename up into a shader, if it has not already been loaded, and returns true to indicate success, or false to indicate failure.

If this returns true, it is guaranteed that a subsequent call to load_shader() with the same shader name will return a valid Shader pointer.

static write | ( | ostream | out | ) | `[static]`

Lists the contents of the shader pool to the indicated output stream.

All Classes Namespaces Functions Variables Enumerations Enumerator Properties