Panda3D
Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
GeomVertexArrayDataHandle Class Reference

This data object is returned by GeomVertexArrayData::get_handle() or modify_handle(). More...

Inheritance diagram for GeomVertexArrayDataHandle:
ReferenceCount GeomEnums

Public Member Functions

 clearRows ()
 
 copyDataFrom (const GeomVertexArrayDataHandle other)
 Copies the entire data array from the other object. More...
 
 copyDataFrom (object buffer)
 
 copySubdataFrom (int to_start, int to_size, const GeomVertexArrayDataHandle other, int from_start, int from_size)
 Copies a portion of the data array from the other object into a portion of the data array of this object. More...
 
 copySubdataFrom (int to_start, int to_size, object buffer)
 
 copySubdataFrom (int to_start, int to_size, object buffer, int from_start, int from_size)
 
const GeomVertexArrayFormat getArrayFormat ()
 
VectorUchar getData ()
 Returns the entire raw data of the GeomVertexArrayData object, formatted as a string. More...
 
int getDataSizeBytes ()
 
UpdateSeq getModified ()
 
int getNumRows ()
 
GeomVertexArrayData getObject ()
 
const GeomVertexArrayData getObject ()
 
VectorUchar getSubdata (int start, int size)
 Returns a subset of the raw data of the GeomVertexArrayData object, formatted as a string. More...
 
GeomEnums::UsageHint getUsageHint ()
 
 markUsed ()
 Marks the array data recently-used. More...
 
VertexBufferContext prepareNow (PreparedGraphicsObjects prepared_objects, GraphicsStateGuardianBase gsg)
 Creates a context for the data on the particular GSG, if it does not already exist. More...
 
bool requestResident ()
 Returns true if the vertex data is currently resident in memory. More...
 
bool reserveNumRows (int n)
 
 setData (VectorUchar data)
 Replaces the entire raw data array with the contents of the indicated string. More...
 
bool setNumRows (int n)
 
 setSubdata (int start, int size, VectorUchar data)
 Replaces a portion of the data array from the indicated string. More...
 
bool uncleanSetNumRows (int n)
 
- Public Member Functions inherited from ReferenceCount
int getRefCount ()
 Returns the current reference count. More...
 
 ref ()
 Explicitly increments the reference count. More...
 
bool testRefCountIntegrity ()
 Does some easy checks to make sure that the reference count isn't completely bogus. More...
 
bool testRefCountNonzero ()
 Does some easy checks to make sure that the reference count isn't zero, or completely bogus. More...
 
bool unref ()
 Explicitly decrements the reference count. More...
 
- Public Member Functions inherited from GeomEnums
 __init__ ()
 
 __init__ (const GeomEnums)
 

Static Public Member Functions

static TypeHandle getClassType ()
 
- Static Public Member Functions inherited from ReferenceCount
static TypeHandle getClassType ()
 

Public Attributes

const GeomVertexArrayFormat array_format
 
int data_size_bytes
 
UpdateSeq modified
 
GeomVertexArrayData object
 
GeomEnums::UsageHint usage_hint
 
- Public Attributes inherited from ReferenceCount
int ref_count
 The current reference count. More...
 

Additional Inherited Members

- Public Types inherited from GeomEnums
enum  AnimationType { AT_none = 0, AT_panda = 1, AT_hardware = 2 }
 
enum  Contents {
  C_other = 0, C_point = 1, C_clip_point = 2, C_vector = 3,
  C_texcoord = 4, C_color = 5, C_index = 6, C_morph_delta = 7,
  C_matrix = 8, C_normal = 9
}
 
enum  GeomRendering {
  GR_indexed_point = 1, GR_indexed_other = 65536, GR_indexed_bits = 65537, GR_point = 2,
  GR_point_uniform_size = 4, GR_per_point_size = 8, GR_point_perspective = 16, GR_point_aspect_ratio = 32,
  GR_point_scale = 64, GR_point_rotate = 128, GR_point_sprite = 256, GR_point_sprite_tex_matrix = 512,
  GR_point_bits = 1022, GR_triangle_strip = 1024, GR_triangle_fan = 2048, GR_line_strip = 4096,
  GR_composite_bits = 7168, GR_strip_cut_index = 131072, GR_flat_first_vertex = 8192, GR_flat_last_vertex = 16384,
  GR_shade_model_bits = 24576, GR_render_mode_wireframe = 262144, GR_render_mode_point = 524288, GR_adjacency = 1048576
}
 
enum  NumericType {
  NT_uint8 = 0, NT_uint16 = 1, NT_uint32 = 2, NT_packed_dcba = 3,
  NT_packed_dabc = 4, NT_float32 = 5, NT_float64 = 6, NT_stdfloat = 7,
  NT_int8 = 8, NT_int16 = 9, NT_int32 = 10, NT_packed_ufloat = 11
}
 
enum  PrimitiveType {
  PT_none = 0, PT_polygons = 1, PT_lines = 2, PT_points = 3,
  PT_patches = 4
}
 
enum  ShadeModel { SM_uniform = 0, SM_smooth = 1, SM_flat_first_vertex = 2, SM_flat_last_vertex = 3 }
 
enum  UsageHint {
  UH_client = 0, UH_stream = 1, UH_dynamic = 2, UH_static = 3,
  UH_unspecified = 4
}
 

Detailed Description

This data object is returned by GeomVertexArrayData::get_handle() or modify_handle().

As long as it exists, the data is locked; when the last of these destructs, the data is unlocked.

Only one thread at a time may lock the data; other threads attempting to lock the data will block. A given thread may simultaneously lock the data multiple times.

This class serves in lieu of a pair of GeomVertexArrayDataPipelineReader and GeomVertexArrayDataPipelineWriter classes

Member Function Documentation

◆ clearRows()

clearRows ( )

◆ copyDataFrom() [1/2]

copyDataFrom ( const GeomVertexArrayDataHandle  other)

Copies the entire data array from the other object.

◆ copyDataFrom() [2/2]

copyDataFrom ( object  buffer)

◆ copySubdataFrom() [1/3]

copySubdataFrom ( int  to_start,
int  to_size,
const GeomVertexArrayDataHandle  other,
int  from_start,
int  from_size 
)

Copies a portion of the data array from the other object into a portion of the data array of this object.

If to_size != from_size, the size of this data array is adjusted accordingly.

◆ copySubdataFrom() [2/3]

copySubdataFrom ( int  to_start,
int  to_size,
object  buffer 
)

◆ copySubdataFrom() [3/3]

copySubdataFrom ( int  to_start,
int  to_size,
object  buffer,
int  from_start,
int  from_size 
)

◆ getArrayFormat()

const GeomVertexArrayFormat getArrayFormat ( )

◆ getClassType()

static TypeHandle getClassType ( )
static

◆ getData()

VectorUchar getData ( )

Returns the entire raw data of the GeomVertexArrayData object, formatted as a string.

This is primarily for the benefit of high-level languages such as Python.

◆ getDataSizeBytes()

int getDataSizeBytes ( )

◆ getModified()

UpdateSeq getModified ( )

◆ getNumRows()

int getNumRows ( )

◆ getObject() [1/2]

GeomVertexArrayData getObject ( )

◆ getObject() [2/2]

const GeomVertexArrayData getObject ( )

◆ getSubdata()

VectorUchar getSubdata ( int  start,
int  size 
)

Returns a subset of the raw data of the GeomVertexArrayData object, formatted as a string.

This is primarily for the benefit of high-level languages such as Python.

◆ getUsageHint()

GeomEnums::UsageHint getUsageHint ( )

◆ markUsed()

markUsed ( )

Marks the array data recently-used.

◆ prepareNow()

VertexBufferContext prepareNow ( PreparedGraphicsObjects  prepared_objects,
GraphicsStateGuardianBase  gsg 
)

Creates a context for the data on the particular GSG, if it does not already exist.

Returns the new (or old) VertexBufferContext. This assumes that the GraphicsStateGuardian is the currently active rendering context and that it is ready to accept new datas. If this is not necessarily the case, you should use prepare() instead.

Normally, this is not called directly except by the GraphicsStateGuardian; a data does not need to be explicitly prepared by the user before it may be rendered.

◆ requestResident()

bool requestResident ( )

Returns true if the vertex data is currently resident in memory.

If this returns true, the next call to get_handle()->get_read_pointer() will probably not block. If this returns false, the vertex data will be brought back into memory shortly; try again later.

◆ reserveNumRows()

bool reserveNumRows ( int  n)

◆ setData()

setData ( VectorUchar  data)

Replaces the entire raw data array with the contents of the indicated string.

This is primarily for the benefit of high-level languages like Python.

◆ setNumRows()

bool setNumRows ( int  n)

◆ setSubdata()

setSubdata ( int  start,
int  size,
VectorUchar  data 
)

Replaces a portion of the data array from the indicated string.

If size != data.size(), the size of this data array is adjusted accordingly.

This is primarily for the benefit of high-level languages like Python.

◆ uncleanSetNumRows()

bool uncleanSetNumRows ( int  n)

Member Data Documentation

◆ array_format

const GeomVertexArrayFormat array_format

◆ data_size_bytes

int data_size_bytes

◆ modified

UpdateSeq modified

◆ object

◆ usage_hint