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
 

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.

#define CYLINDER_TRAILINGCAP   1
 

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.

#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 Fri Nov 8 02:45:59 2024 for VMD (current) by doxygen1.2.14 written by Dimitri van Heesch, © 1997-2002