public final class ShaderList extends java.lang.Object implements java.lang.Iterable<Shader>
Shader, using reference count.
// Creation
ShaderList shaders = new ShaderList();
shaders.setDeleteCodeOnLoadSuccess(); // Default: true
// Asset management
shaders.use(shader); // Increment referenced count
shader.release(); // Decrement referenced count
// Update loop
if(shaders.hasUnreferencedShaders()) {
shaders.destroyUnreferencedShaders();
}
if(shaders.hasPendingLoading()) {
shaders.loadShaders();
}
| Constructor and Description |
|---|
ShaderList() |
| Modifier and Type | Method and Description |
|---|---|
int |
destroyAll(IGL gl)
Deprecated.
|
int |
destroyUnreferenced(IGL gl)
Destroy (remove/unload) unreferenced shaders of this
ShaderList. |
Shader |
get(java.lang.String name) |
boolean |
hasPendingLoading() |
boolean |
hasUnreferencedShaders() |
boolean |
isDeleteCodeOnLoadSuccess() |
java.util.Iterator<Shader> |
iterator() |
int |
load(IGL gl)
Load all shaders from the list.
|
int |
load(IGL gl,
int maxNumToLoad)
Load all shader from this
ShaderList. |
boolean |
load(IGL gl,
Shader shader) |
void |
onContextLost()
Destroy this
ShaderList after the OpenGL context has been lost. |
void |
resetFailures()
Reset tracker of
Shader which have failed to be loaded |
void |
setDeleteCodeOnLoadSuccess(boolean deleteCodeOnLoadSuccess) |
int |
size() |
Shader |
use(Shader shader)
An associated
AbstractShader.release() call must match the use(Shader) call
to maintain valid reference count. |
Shader |
use(java.lang.String name) |
public final Shader use(Shader shader)
AbstractShader.release() call must match the use(Shader) call
to maintain valid reference count.public final Shader use(java.lang.String name)
get(String),
use(Shader)public final Shader get(java.lang.String name)
name - a Shader nameShader in this ShaderList with the specified namepublic final boolean hasPendingLoading()
ShaderList contains Shader not yet loaded.load(IGL)public final int load(IGL gl)
#load(IGLApi, int)public final int load(IGL gl, int maxNumToLoad)
ShaderList.maxNumToLoad - maximum number of shader to load.load(IGL)public final void resetFailures()
Shader which have failed to be loadedpublic final boolean hasUnreferencedShaders()
public final int destroyUnreferenced(IGL gl)
ShaderList.gl - opengl contextShader unloaded and removed from this ShaderListdestroyAll(IGL)@Deprecated public final int destroyAll(IGL gl)
ShaderList, even those who are still references
and therefore potentially still used.gl - opengl contextdestroyUnreferenced(IGL)public final void onContextLost()
ShaderList after the OpenGL context has been lost.public final int size()
ShaderListpublic final void setDeleteCodeOnLoadSuccess(boolean deleteCodeOnLoadSuccess)
deleteCodeOnLoadSuccess - true to delete shader code on successful loading.public final boolean isDeleteCodeOnLoadSuccess()
Bonzai Engine 1.3.4 11/12/2015 - A Java OpenGL engine and tools for Windows/Mac/Linux/Android
Copyright © 2007-2015 Jérôme Jouvie bonzaiengine.com contact@bonzaiengine.com