Main Page Namespace List Class Hierarchy Alphabetical List Compound List File List Namespace Members Compound Members File Members Related Pages

DispCmds.h File Reference

Display commands that marshall, pack, and store scene geometry in a VMDDisplayList object. More...

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 }

Detailed Description

Display commands that marshall, pack, and store scene geometry in a VMDDisplayList object.

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.


Define Documentation

#define CYLINDER_LEADINGCAP 2

#define CYLINDER_TRAILINGCAP 1

#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.

Definition at line 49 of file DispCmds.h.

Referenced by DispCmdPointArray::putdata.


Enumeration Type Documentation

anonymous enum

enum for all display commands draw commands with a _I suffix use indices into a DATA block, not the coordinates themselves.

Enumeration values:
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

Definition at line 54 of file DispCmds.h.

anonymous enum

enum with different sphere and line types.

Enumeration values:
SOLIDSPHERE
POINTSPHERE

Definition at line 72 of file DispCmds.h.

anonymous enum

Enumeration values:
SOLIDLINE
DASHEDLINE

Definition at line 73 of file DispCmds.h.


Generated on Tue Nov 18 02:48:31 2025 for VMD (current) by doxygen1.2.14 written by Dimitri van Heesch, © 1997-2002

AltStyle によって変換されたページ (->オリジナル) /