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

This is a generic buffer object that lives in graphics memory. More...

Inheritance diagram for ShaderBuffer:
TypedWritableReferenceCount Namable GeomEnums TypedWritable ReferenceCount TypedObject

Public Member Functions

 __init__ (const ShaderBuffer)
 
 __init__ (str name, uint64_t size, GeomEnums::UsageHint usage_hint)
 Creates an uninitialized buffer object with the given size. More...
 
 __init__ (str name, VectorUchar initial_data, GeomEnums::UsageHint usage_hint)
 Creates a buffer object initialized with the given data. More...
 
bool isPrepared (PreparedGraphicsObjects prepared_objects)
 Returns true if the data has already been prepared or enqueued for preparation on the indicated GSG, false otherwise. More...
 
 prepare (PreparedGraphicsObjects prepared_objects)
 Indicates that the data should be enqueued to be prepared in the indicated prepared_objects at the beginning of the next frame. More...
 
BufferContext prepareNow (PreparedGraphicsObjects prepared_objects, GraphicsStateGuardianBase gsg)
 Creates a context for the data on the particular GSG, if it does not already exist. More...
 
bool release (PreparedGraphicsObjects prepared_objects)
 Frees the data context only on the indicated object, if it exists there. More...
 
int releaseAll ()
 Frees the context allocated on all objects for which the data has been declared. More...
 
- Public Member Functions inherited from TypedWritable
object __reduce__ ()
 
object __reduce_persist__ (object pickler)
 
VectorUchar encodeToBamStream ()
 Converts the TypedWritable object into a single stream of data using a BamWriter, and returns that data as a bytes object. More...
 
bool encodeToBamStream (VectorUchar data, BamWriter writer)
 Converts the TypedWritable object into a single stream of data using a BamWriter, and stores that data in the indicated string. More...
 
 fillin (DatagramIterator scan, BamReader manager)
 This internal function is intended to be called by each class's make_from_bam() method to read in all of the relevant data from the BamFile for the new object. More...
 
UpdateSeq getBamModified ()
 Returns the current bam_modified counter. More...
 
 markBamModified ()
 Increments the bam_modified counter, so that this object will be invalidated and retransmitted on any open bam streams. More...
 
- Public Member Functions inherited from TypedObject
TypeHandle getType ()
 
int getTypeIndex ()
 Returns the internal index number associated with this object's TypeHandle, a unique number for each different type. More...
 
bool isExactType (TypeHandle handle)
 Returns true if the current object is the indicated type exactly. More...
 
bool isOfType (TypeHandle handle)
 Returns true if the current object is or derives from the indicated type. More...
 
- 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 Namable
 __init__ (const Namable)
 
 __init__ (str initial_name)
 
 clearName ()
 Resets the Namable's name to empty. More...
 
str getName ()
 
bool hasName ()
 Returns true if the Namable has a nonempty name set, false if the name is empty. More...
 
 output (Ostream out)
 Outputs the Namable. More...
 
 setName (str name)
 
- Public Member Functions inherited from GeomEnums
 __init__ ()
 
 __init__ (const GeomEnums)
 

Static Public Member Functions

static TypeHandle getClassType ()
 
- Static Public Member Functions inherited from TypedWritableReferenceCount
static TypedWritableReferenceCount decodeFromBamStream (VectorUchar data, BamReader reader)
 Reads the bytes created by a previous call to encode_to_bam_stream(), and extracts and returns the single object on those bytes. More...
 
static TypeHandle getClassType ()
 
- Static Public Member Functions inherited from TypedWritable
static TypeHandle getClassType ()
 
- Static Public Member Functions inherited from TypedObject
static TypeHandle getClassType ()
 
- Static Public Member Functions inherited from ReferenceCount
static TypeHandle getClassType ()
 
- Static Public Member Functions inherited from Namable
static TypeHandle getClassType ()
 

Public Attributes

uint64_t data_size_bytes
 Returns the buffer size in bytes. More...
 
GeomEnums::UsageHint usage_hint
 Returns the buffer usage hint. More...
 
- Public Attributes inherited from TypedObject
TypeHandle type
 Returns the TypeHandle representing this object's type. More...
 
- Public Attributes inherited from ReferenceCount
int ref_count
 The current reference count. More...
 
- Public Attributes inherited from Namable
const String name
 

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 is a generic buffer object that lives in graphics memory.

Since
1.10.0

Member Function Documentation

◆ __init__() [1/3]

__init__ ( const  ShaderBuffer)

◆ __init__() [2/3]

__init__ ( str  name,
uint64_t  size,
GeomEnums::UsageHint  usage_hint 
)

Creates an uninitialized buffer object with the given size.

For now, these parameters cannot be modified, but this may change in the future.

◆ __init__() [3/3]

__init__ ( str  name,
VectorUchar  initial_data,
GeomEnums::UsageHint  usage_hint 
)

Creates a buffer object initialized with the given data.

For now, these parameters cannot be modified, but this may change in the future.

◆ getClassType()

static TypeHandle getClassType ( )
static

◆ isPrepared()

bool isPrepared ( PreparedGraphicsObjects  prepared_objects)

Returns true if the data has already been prepared or enqueued for preparation on the indicated GSG, false otherwise.

◆ prepare()

prepare ( PreparedGraphicsObjects  prepared_objects)

Indicates that the data should be enqueued to be prepared in the indicated prepared_objects at the beginning of the next frame.

This will ensure the data is already loaded into the GSG if it is expected to be rendered soon.

Use this function instead of prepare_now() to preload datas from a user interface standpoint.

◆ prepareNow()

BufferContext 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) BufferContext. 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.

◆ release()

bool release ( PreparedGraphicsObjects  prepared_objects)

Frees the data context only on the indicated object, if it exists there.

Returns true if it was released, false if it had not been prepared.

◆ releaseAll()

int releaseAll ( )

Frees the context allocated on all objects for which the data has been declared.

Returns the number of contexts which have been freed.

Member Data Documentation

◆ data_size_bytes

uint64_t data_size_bytes

Returns the buffer size in bytes.

◆ usage_hint

Returns the buffer usage hint.