Top Description Inners Fields Constructors Methods
jogamp.opengl.gl2

public Class GLObjectTracker

extends Object
Class Inheritance
Imports
jogamp.opengl.*, java.nio.*, com.jogamp.opengl.*

Tracks the creation of server-side OpenGL objects which can be shared between contexts. Ordinarily, when an OpenGL context is deleted and no other contexts are sharing server-side objects with it, all of the server-side objects are automatically deleted by the OpenGL implementation. It is not necessary for the end user to explicitly delete these objects. However, when the Java2D/OpenGL pipeline is active and frame buffer objects are being used for rendering, it is necessary for all OpenGL contexts created by JOGL to share server-side objects with the Java2D OpenGL context. This means that these objects "leak" into the namespace used by Java2D. In order to prevent memory leaks and to present the same programming model to the end user, it is necessary to track the creation and destruction of all of these server-side OpenGL objects and to explicitly release them when all of the JOGL-created contexts which can see them have been released.

The ref and unref methods should be used during the creation and destruction of OpenGL contexts by JOGL in order to update the liveness of the objects being tracked. The various other methods should be called by the OpenGL binding in the various named methods.

Nested and Inner Type Summary

Modifier and TypeClass and Description
pack-priv abstract static class
pack-priv static class

Field Summary

Modifier and TypeField and Description
private static final int
private static final int
private static final boolean
private boolean
private static final int
private static final int
private static final int
private static final int
private static final int
private GLObjectTracker.ObjectList[]
private static final int
private static final int
private static final int
private static final int
private static final int
private static final int
private static final int
private static final int
private int
private static final int
private static final int
private static final int
private static final int
private static final int

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
private void
private void
add(GLObjectTracker.ObjectList list, int n, int[] ids, int ids_offset)

private void
add(GLObjectTracker.ObjectList list, int start, int n)

public synchronized void
addBuffers(int n, IntBuffer ids)

public synchronized void
addBuffers(int n, int[] ids, int ids_offset)

public synchronized void
public synchronized void
addBuffersARB(int n, int[] ids, int ids_offset)

public synchronized void
public synchronized void
addFencesAPPLE(int n, int[] ids, int ids_offset)

public synchronized void
addFencesNV(int n, IntBuffer ids)

public synchronized void
addFencesNV(int n, int[] ids, int ids_offset)

public synchronized void
addFragmentShadersATI(int start, int n)

public synchronized void
public synchronized void
addFramebuffersEXT(int n, int[] ids, int ids_offset)

public synchronized void
addLists(int start, int n)

public synchronized void
public synchronized void
addOcclusionQueriesNV(int n, int[] ids, int ids_offset)

public synchronized void
public synchronized void
public synchronized void
public synchronized void
addProgramsARB(int n, int[] ids, int ids_offset)

public synchronized void
public synchronized void
addProgramsNV(int n, int[] ids, int ids_offset)

public synchronized void
addQueries(int n, IntBuffer ids)

public synchronized void
addQueries(int n, int[] ids, int ids_offset)

public synchronized void
public synchronized void
addQueriesARB(int n, int[] ids, int ids_offset)

public synchronized void
public synchronized void
addRenderbuffersEXT(int n, int[] ids, int ids_offset)

public synchronized void
addShaderObject(int obj)

public synchronized void
public synchronized void
addTextures(int n, IntBuffer ids)

public synchronized void
addTextures(int n, int[] ids, int ids_offset)

public synchronized void
public synchronized void
addVertexArraysAPPLE(int n, int[] ids, int ids_offset)

public synchronized void
addVertexShadersEXT(int start, int n)

public void
clean(GL2 gl)

private void
delete(GL2 gl)

private GLObjectTracker.ObjectList
getList(int which)

public synchronized void
ref()

private void
private void
remove(GLObjectTracker.ObjectList list, int n, int[] ids, int ids_offset)

private void
remove(GLObjectTracker.ObjectList list, int start, int n)

public synchronized void
public synchronized void
removeBuffers(int n, int[] ids, int ids_offset)

public synchronized void
public synchronized void
removeBuffersARB(int n, int[] ids, int ids_offset)

public synchronized void
public synchronized void
removeFencesAPPLE(int n, int[] ids, int ids_offset)

public synchronized void
public synchronized void
removeFencesNV(int n, int[] ids, int ids_offset)

public synchronized void
public synchronized void
public synchronized void
removeFramebuffersEXT(int n, int[] ids, int ids_offset)

public synchronized void
removeLists(int start, int n)

public synchronized void
public synchronized void
removeOcclusionQueriesNV(int n, int[] ids, int ids_offset)

public synchronized void
public synchronized void
public synchronized void
public synchronized void
removeProgramsARB(int n, int[] ids, int ids_offset)

public synchronized void
public synchronized void
removeProgramsNV(int n, int[] ids, int ids_offset)

public synchronized void
public synchronized void
removeQueries(int n, int[] ids, int ids_offset)

public synchronized void
public synchronized void
removeQueriesARB(int n, int[] ids, int ids_offset)

public synchronized void
public synchronized void
removeRenderbuffersEXT(int n, int[] ids, int ids_offset)

public synchronized void
public synchronized void
public synchronized void
removeTextures(int n, int[] ids, int ids_offset)

public synchronized void
public synchronized void
removeVertexArraysAPPLE(int n, int[] ids, int ids_offset)

public synchronized void
public synchronized void
public void
unref(GLObjectTracker deletedObjectPool)

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

BUFFERSback to summary
private static final int BUFFERS
BUFFERS_ARBback to summary
private static final int BUFFERS_ARB
DEBUGback to summary
private static final boolean DEBUG
dirtyback to summary
private boolean dirty
FENCES_APPLEback to summary
private static final int FENCES_APPLE
FENCES_NVback to summary
private static final int FENCES_NV
FRAGMENT_SHADERS_ATIback to summary
private static final int FRAGMENT_SHADERS_ATI
FRAMEBUFFERS_EXTback to summary
private static final int FRAMEBUFFERS_EXT
LISTSback to summary
private static final int LISTS
listsback to summary
private GLObjectTracker.ObjectList[] lists
NUM_OBJECT_TYPESback to summary
private static final int NUM_OBJECT_TYPES
OCCLUSION_QUERIES_NVback to summary
private static final int OCCLUSION_QUERIES_NV
PROGRAM_AND_SHADER_OBJECTS_ARBback to summary
private static final int PROGRAM_AND_SHADER_OBJECTS_ARB
PROGRAM_OBJECTSback to summary
private static final int PROGRAM_OBJECTS
PROGRAMS_ARBback to summary
private static final int PROGRAMS_ARB
PROGRAMS_NVback to summary
private static final int PROGRAMS_NV
QUERIESback to summary
private static final int QUERIES
QUERIES_ARBback to summary
private static final int QUERIES_ARB
refCountback to summary
private int refCount
RENDERBUFFERS_EXTback to summary
private static final int RENDERBUFFERS_EXT
SHADER_OBJECTSback to summary
private static final int SHADER_OBJECTS
TEXTURESback to summary
private static final int TEXTURES
VERTEX_ARRAYS_APPLEback to summary
private static final int VERTEX_ARRAYS_APPLE
VERTEX_SHADERS_EXTback to summary
private static final int VERTEX_SHADERS_EXT

Constructor Detail

GLObjectTrackerback to summary
public GLObjectTracker()

Method Detail

addback to summary
private void add(GLObjectTracker.ObjectList list, int n, IntBuffer ids)
addback to summary
private void add(GLObjectTracker.ObjectList list, int n, int[] ids, int ids_offset)
addback to summary
private void add(GLObjectTracker.ObjectList list, int start, int n)
addBuffersback to summary
public synchronized void addBuffers(int n, IntBuffer ids)
addBuffersback to summary
public synchronized void addBuffers(int n, int[] ids, int ids_offset)
addBuffersARBback to summary
public synchronized void addBuffersARB(int n, IntBuffer ids)
addBuffersARBback to summary
public synchronized void addBuffersARB(int n, int[] ids, int ids_offset)
addFencesAPPLEback to summary
public synchronized void addFencesAPPLE(int n, IntBuffer ids)
addFencesAPPLEback to summary
public synchronized void addFencesAPPLE(int n, int[] ids, int ids_offset)
addFencesNVback to summary
public synchronized void addFencesNV(int n, IntBuffer ids)
addFencesNVback to summary
public synchronized void addFencesNV(int n, int[] ids, int ids_offset)
addFragmentShadersATIback to summary
public synchronized void addFragmentShadersATI(int start, int n)
addFramebuffersEXTback to summary
public synchronized void addFramebuffersEXT(int n, IntBuffer ids)
addFramebuffersEXTback to summary
public synchronized void addFramebuffersEXT(int n, int[] ids, int ids_offset)
addListsback to summary
public synchronized void addLists(int start, int n)
addOcclusionQueriesNVback to summary
public synchronized void addOcclusionQueriesNV(int n, IntBuffer ids)
addOcclusionQueriesNVback to summary
public synchronized void addOcclusionQueriesNV(int n, int[] ids, int ids_offset)
addProgramObjectback to summary
public synchronized void addProgramObject(int obj)
addProgramObjectARBback to summary
public synchronized void addProgramObjectARB(int obj)
addProgramsARBback to summary
public synchronized void addProgramsARB(int n, IntBuffer ids)
addProgramsARBback to summary
public synchronized void addProgramsARB(int n, int[] ids, int ids_offset)
addProgramsNVback to summary
public synchronized void addProgramsNV(int n, IntBuffer ids)
addProgramsNVback to summary
public synchronized void addProgramsNV(int n, int[] ids, int ids_offset)
addQueriesback to summary
public synchronized void addQueries(int n, IntBuffer ids)
addQueriesback to summary
public synchronized void addQueries(int n, int[] ids, int ids_offset)
addQueriesARBback to summary
public synchronized void addQueriesARB(int n, IntBuffer ids)
addQueriesARBback to summary
public synchronized void addQueriesARB(int n, int[] ids, int ids_offset)
addRenderbuffersEXTback to summary
public synchronized void addRenderbuffersEXT(int n, IntBuffer ids)
addRenderbuffersEXTback to summary
public synchronized void addRenderbuffersEXT(int n, int[] ids, int ids_offset)
addShaderObjectback to summary
public synchronized void addShaderObject(int obj)
addShaderObjectARBback to summary
public synchronized void addShaderObjectARB(int obj)
addTexturesback to summary
public synchronized void addTextures(int n, IntBuffer ids)
addTexturesback to summary
public synchronized void addTextures(int n, int[] ids, int ids_offset)
addVertexArraysAPPLEback to summary
public synchronized void addVertexArraysAPPLE(int n, IntBuffer ids)
addVertexArraysAPPLEback to summary
public synchronized void addVertexArraysAPPLE(int n, int[] ids, int ids_offset)
addVertexShadersEXTback to summary
public synchronized void addVertexShadersEXT(int start, int n)
cleanback to summary
public void clean(GL2 gl)
deleteback to summary
private void delete(GL2 gl)
getListback to summary
private GLObjectTracker.ObjectList getList(int which)
refback to summary
public synchronized void ref()
removeback to summary
private void remove(GLObjectTracker.ObjectList list, int n, IntBuffer ids)
removeback to summary
private void remove(GLObjectTracker.ObjectList list, int n, int[] ids, int ids_offset)
removeback to summary
private void remove(GLObjectTracker.ObjectList list, int start, int n)
removeBuffersback to summary
public synchronized void removeBuffers(int n, IntBuffer ids)
removeBuffersback to summary
public synchronized void removeBuffers(int n, int[] ids, int ids_offset)
removeBuffersARBback to summary
public synchronized void removeBuffersARB(int n, IntBuffer ids)
removeBuffersARBback to summary
public synchronized void removeBuffersARB(int n, int[] ids, int ids_offset)
removeFencesAPPLEback to summary
public synchronized void removeFencesAPPLE(int n, IntBuffer ids)
removeFencesAPPLEback to summary
public synchronized void removeFencesAPPLE(int n, int[] ids, int ids_offset)
removeFencesNVback to summary
public synchronized void removeFencesNV(int n, IntBuffer ids)
removeFencesNVback to summary
public synchronized void removeFencesNV(int n, int[] ids, int ids_offset)
removeFragmentShaderATIback to summary
public synchronized void removeFragmentShaderATI(int obj)
removeFramebuffersEXTback to summary
public synchronized void removeFramebuffersEXT(int n, IntBuffer ids)
removeFramebuffersEXTback to summary
public synchronized void removeFramebuffersEXT(int n, int[] ids, int ids_offset)
removeListsback to summary
public synchronized void removeLists(int start, int n)
removeOcclusionQueriesNVback to summary
public synchronized void removeOcclusionQueriesNV(int n, IntBuffer ids)
removeOcclusionQueriesNVback to summary
public synchronized void removeOcclusionQueriesNV(int n, int[] ids, int ids_offset)
removeProgramObjectback to summary
public synchronized void removeProgramObject(int obj)
removeProgramOrShaderObjectARBback to summary
public synchronized void removeProgramOrShaderObjectARB(int obj)
removeProgramsARBback to summary
public synchronized void removeProgramsARB(int n, IntBuffer ids)
removeProgramsARBback to summary
public synchronized void removeProgramsARB(int n, int[] ids, int ids_offset)
removeProgramsNVback to summary
public synchronized void removeProgramsNV(int n, IntBuffer ids)
removeProgramsNVback to summary
public synchronized void removeProgramsNV(int n, int[] ids, int ids_offset)
removeQueriesback to summary
public synchronized void removeQueries(int n, IntBuffer ids)
removeQueriesback to summary
public synchronized void removeQueries(int n, int[] ids, int ids_offset)
removeQueriesARBback to summary
public synchronized void removeQueriesARB(int n, IntBuffer ids)
removeQueriesARBback to summary
public synchronized void removeQueriesARB(int n, int[] ids, int ids_offset)
removeRenderbuffersEXTback to summary
public synchronized void removeRenderbuffersEXT(int n, IntBuffer ids)
removeRenderbuffersEXTback to summary
public synchronized void removeRenderbuffersEXT(int n, int[] ids, int ids_offset)
removeShaderObjectback to summary
public synchronized void removeShaderObject(int obj)
removeTexturesback to summary
public synchronized void removeTextures(int n, IntBuffer ids)
removeTexturesback to summary
public synchronized void removeTextures(int n, int[] ids, int ids_offset)
removeVertexArraysAPPLEback to summary
public synchronized void removeVertexArraysAPPLE(int n, IntBuffer ids)
removeVertexArraysAPPLEback to summary
public synchronized void removeVertexArraysAPPLE(int n, int[] ids, int ids_offset)
removeVertexShaderEXTback to summary
public synchronized void removeVertexShaderEXT(int obj)
transferAllback to summary
public synchronized void transferAll(GLObjectTracker other)
unrefback to summary
public void unref(GLObjectTracker deletedObjectPool)
jogamp.opengl.gl2 back to summary

pack-priv abstract Class GLObjectTracker.Deleter

extends Object
Class Inheritance

Constructor Summary

AccessConstructor and Description
pack-priv

Method Summary

Modifier and TypeMethod and Description
public abstract void
delete(GL2 gl, int obj)

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Constructor Detail

Deleterback to summary
pack-priv Deleter()

Method Detail

deleteback to summary
public abstract void delete(GL2 gl, int obj)
jogamp.opengl.gl2 back to summary

pack-priv Class GLObjectTracker.ObjectList

extends Object
Class Inheritance

Field Summary

Modifier and TypeField and Description
private int
private int[]
private GLObjectTracker.Deleter
private static final int
private String
private int

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
public void
add(int obj)

public void
public void
public void
delete(GL2 gl)

public boolean
remove(int value)

public void
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

capacityback to summary
private int capacity
databack to summary
private int[] data
deleterback to summary
private GLObjectTracker.Deleter deleter
MIN_CAPACITYback to summary
private static final int MIN_CAPACITY
nameback to summary
private String name
sizeback to summary
private int size

Constructor Detail

ObjectListback to summary
public ObjectList(GLObjectTracker.Deleter deleter)

Method Detail

addback to summary
public void add(int obj)
addAllback to summary
public void addAll(GLObjectTracker.ObjectList other)
clearback to summary
public void clear()
deleteback to summary
public void delete(GL2 gl)
removeback to summary
public boolean remove(int value)
setNameback to summary
public void setName(String name)