Go to the source code of this file.
Compounds | |
struct | DispCmdBeginRepGeomGroup |
mark the beginning of a new representation This should only be called once per rep, or weird things can happen when exporting to external renderers, where we track unique rep group IDs, names, etc. Group names cannot contain spaces, but can allow underscores and all normal alphanumeric characters. More... | |
struct | DispCmdColorIndex |
set the current drawing color to the specified index. More... | |
struct | DispCmdComment |
add a comment to the display list, to make token output etc. meaningful. these are free-form and can occur anywhere. More... | |
struct | DispCmdCone |
plot a cone at the given position. More... | |
struct | DispCmdCylinder |
draw a cylinder between two endpoints. More... | |
struct | DispCmdLatticeCubeArray |
draw axis-aligned lattic cubes from the specified. More... | |
struct | DispCmdLine |
plot a line at the given position. More... | |
struct | DispCmdLineArray |
plot a series of lines, all with the same color the array should be of the form v1 v2 v1 v2 ... Note that the data is not stored in the struct; we copy directly into the display list. That way you don't have to keep this struct around after calling putdata. Kinda like DispCmdDataBlock. More... | |
struct | DispCmdLineType |
set the current line type. More... | |
struct | DispCmdLineWidth |
set the current line width. More... | |
struct | DispCmdLitPointArray |
draw points from the specified position, and color arrays, with given size. More... | |
struct | DispCmdPickPoint |
indicate a point which may be picked, and the associated 'tag'. More... | |
struct | DispCmdPickPointArray |
Create an array of indexed points which may be picked and their associated tags. More... | |
struct | DispCmdPoint |
plot a point at the given position. More... | |
struct | DispCmdPointArray |
draw points from the specified position, and color arrays, with given size. More... | |
struct | DispCmdPolyLineArray |
plot a series of connected polylines, all with the same color the array should be of the form v1 v2 v3 v4 ... Note that the data is not stored in the struct; we copy directly into the display list. That way you don't have to keep this struct around after calling putdata. Kinda like DispCmdDataBlock. More... | |
struct | DispCmdSphere |
draw a sphere of specified radius at the given position. More... | |
struct | DispCmdSphereArray |
draw spheres from the specified position, radii, and color arrays. More... | |
struct | DispCmdSphereRes |
set the current sphere resolution. More... | |
struct | DispCmdSphereType |
set the current sphere type. More... | |
struct | DispCmdSquare |
draw a square, given 3 of four points. More... | |
struct | DispCmdText |
display 3-D text at the given text coordinates. More... | |
struct | DispCmdTriangle |
draw a triangle, given the three points (computes the normals from the cross product) and all normals are the same -or- draw the triangle, given the three points and the three normals. More... | |
struct | DispCmdTriMesh |
draw a mesh consisting of vertices, facets, colors, normals etc. More... | |
struct | DispCmdTriStrips |
draw a set of triangle strips. More... | |
struct | DispCmdVolSlice |
apply a 3-D texture to a slice through the current volume texture. More... | |
struct | DispCmdVolumeTexture |
tell OpenGL to cache a 3D texture with the given unique ID. Memory for the texture is retained by the caller, not copied into the display list. More... | |
struct | DispCmdWireMesh |
draw a wire mesh consisting of vertices, facets, colors, normals etc. More... | |
Defines | |
#define | VMDMAXVERTEXBUFSZ (128*1024*1024) |
Macro used to mitigate the peak size of vertex buffers accumulated into single display commands, e.g., for line, point, and sphere arrays that could easily grow to the point of causing integer wraparound in renderer subclasses or back-end renderer implementations that might only be using 32-bit integers for various vertex indexing calculations. We go with 2^26 as a fairly conservative maximum vertex buffer size. More... | |
#define | CYLINDER_TRAILINGCAP 1 |
#define | CYLINDER_LEADINGCAP 2 |
Enumerations | |
enum | { DBEGINREPGEOMGROUP, DPOINT, DPOINTARRAY, DLITPOINTARRAY, DLINE, DLINEARRAY, DPOLYLINEARRAY, DCYLINDER, DSPHERE, DSPHEREARRAY, DCUBEARRAY, DTRIANGLE, DSQUARE, DCONE, DTRIMESH_C4F_N3F_V3F, DTRIMESH_C3F_N3F_V3F, DTRIMESH_C4U_N3F_V3F, DTRIMESH_C4U_N3B_V3F, DTRISTRIP, DWIREMESH, DCOLORINDEX, DMATERIALON, DMATERIALOFF, DTEXT, DCOMMENT, DCLIPPLANE, DVOLSLICE, DVOLTEXON, DVOLTEXOFF, DVOLUMETEXTURE, DSPHERERES, DSPHERETYPE, DLINEWIDTH, DLINESTYLE, DPICKPOINT_ARRAY, DLASTCOMMAND = -1 } |
enum for all display commands draw commands with a _I suffix use indices into a DATA block, not the coordinates themselves. More... | |
enum | { SOLIDSPHERE, POINTSPHERE } |
enum with different sphere and line types. More... | |
enum | { SOLIDLINE, DASHEDLINE } |
The original display list implementation in VMD was heavily stateful, (mirroring early IrisGL and OpenGL) which leads to unnecessary complexity, limited opportunities for exploiting parallel algorithms and parallel rendering, and a noteworthy exposure to strange and rare bugs related to persistent state management. Going forward, we want to resolve these lingering issues and this will require conversion of the old display commands and their packed representations to be more self-contained, without reference to significant external rendering state. This will directly permit parallel rendering of individual display tokens and yield inherently more localized and optimal loops in the back-end rendering code since there will no longer need to be concern for saving or restoring rendering state pre/post a given display command. This is an ongoing goal and the present implementation is still far from achieving it.
Definition in file DispCmds.h.
|
Definition at line 452 of file DispCmds.h. Referenced by FileRenderer::cone_trunc, TachyonDisplayDevice::cylinder, OSPRayDisplayDevice::cylinder, OSPRay2DisplayDevice::cylinder, OptiXDisplayDevice::cylinder, LibTachyonDisplayDevice::cylinder, FileRenderer::cylinder, cylinder_full, and vmd_DrawConic. |
|
Definition at line 451 of file DispCmds.h. Referenced by FileRenderer::cone_trunc, TachyonDisplayDevice::cylinder, OSPRayDisplayDevice::cylinder, OSPRay2DisplayDevice::cylinder, OptiXDisplayDevice::cylinder, LibTachyonDisplayDevice::cylinder, FileRenderer::cylinder, cylinder_full, and vmd_DrawConic. |
|
Macro used to mitigate the peak size of vertex buffers accumulated into single display commands, e.g., for line, point, and sphere arrays that could easily grow to the point of causing integer wraparound in renderer subclasses or back-end renderer implementations that might only be using 32-bit integers for various vertex indexing calculations. We go with 2^26 as a fairly conservative maximum vertex buffer size.
Definition at line 49 of file DispCmds.h. Referenced by DispCmdPointArray::putdata. |
|
enum for all display commands draw commands with a _I suffix use indices into a DATA block, not the coordinates themselves.
Definition at line 54 of file DispCmds.h. |
|
enum with different sphere and line types.
Definition at line 72 of file DispCmds.h. |
|
Definition at line 73 of file DispCmds.h. |