123 int instance_group =-1);
126 const char *attrib_name,
133 const char *attrib_name,
148 int instance_group = 0,
155 bool has_partial_visibility,
171 int &ret_bone_limit);
177 const char *attrib_name,
184 const char *attrib_name,
188 bool build_string_tables =
true);
236 bool is_offsets =
true);
266 bool is_offsets =
true,
267 bool build_selection =
true);
278 bool is_offsets =
true,
279 bool build_selection =
true);
320 bool is_offsets =
true,
321 int instances_per_prim = 1,
356 UT_Array<std::pair<gr_MatBucket *, int>> *&buckets);
359 std::ostream *os = NULL);
363 std::ostream *os = NULL);
365 std::ostream *os = NULL);
GR_API void printUpdateReason(GR_UpdateReason r, std::ostream *os=NULL)
GLenum GLuint GLenum GLsizei const GLchar * buf
GLenum GLuint GLsizei bufsize
GR_API void buildCenterPoints(RE_RenderContext r, const GT_PrimitiveHandle &handle, const GR_UpdateParms &p, const UT_Matrix4DArray &primxforms, const GT_DataArrayHandle &prim_ids, const GT_DataArrayHandle &pnt_ids, const GT_DataArrayHandle &vtx_ids, GR_GeoRender *gr, const char *cache_name, GT_PrimitiveHandle *pt_handle=nullptr, GR_SelectMode *pnt_sel_mode=NULL, bool is_offsets=true, bool build_selection=true)
GR_API GR_AttribMask hasSelection(const GR_UpdateParms &p)
Returns the selection type in p.geometry.
GR_API bool isRasterized(const UT_Matrix4F &objviewproj, const UT_Vector2F &min_proj_size, const UT_BoundingBoxF &bbox)
GR_API bool hasPrimTransform(const RE_Geometry *geo)
Return true if the geometry has a per-prim transform or per-prim visibility.
GR_API void buildBoneRegionsAndWeights(RE_Render *r, RE_VertexArray **bone_idx, RE_VertexArray **bone_weight, const GT_DataArrayHandle &dh, RE_CacheVersion version, int bone_limit, int &ret_bone_limit)
contributors are taken (to fit in a up to 3 vec4/ivec4 attribute pairs).
GR_API int getMaxTexture3DSize(RE_RenderContext rc)
GR_API bool inViewFrustumWithLOD(const UT_BoundingBoxF &bbox, const UT_Matrix4F &objviewproj, bool &has_bounds, UT_Vector2F &bounds_2d)
GR_API RE_CacheVersion getTopologyVersion(const GT_Primitive *prim, RE_CacheVersion geo_version)
Return the cache version for the topology of primitive 'prim'.
GR_API RE_Shader * getDepthCascadePrimTransformShader(RE_Render *r)
GR_API RE_Shader * getDepthCascadeShader(RE_Render *r)
GR_API RE_Shader * getDepthCubeDisplaceShader(RE_Render *r)
GR_API RE_Shader * getDepthPrimTransformShader(RE_Render *r)
GR_API RE_VertexArray * fillAttribArray(RE_Render *r, RE_Geometry *geo, const char *attrib_name, const GT_DataArrayHandle &h, const GR_DisplayOption &opts, RE_ArrayType atype, RE_CacheVersion geo_version)
A collection of vertex arrays defining a geometry object. This class acts as a wrapper around multipl...
GR_API RE_Shader * getDepthCascadeLineShader(RE_Render *r)
GR_API size_t format(char *buf, size_t bufsize, const GR_UpdateReason &r)
GT_API const UT_StringHolder cache_name
GR_API bool inPointSelection(const GR_UpdateParms &p, GA_Offset point_id, const GU_Detail *geo=nullptr)
Returns true if point_id is in the selection list for p.geometry.
GR_API void printDrawFlags(GR_RenderFlags flags, std::ostream *os=NULL)
**But if you need a result
GR_API void assignInstanceGroupArray(RE_Geometry *to_geo, const RE_VertexArray *array, int instance_group=-1)
GR_API RE_Shader * getRibbonShader(RE_Render *r)
Temporary container for either a RV_Render and an RE_Render.
GR_API RE_Shader * getColorShader(RE_Render *r)
GR_API void * fillAttribData(RE_Render *r, const char *attrib_name, const GT_DataArrayHandle &pa, const GR_DisplayOption &opts, RE_ArrayType array, bool build_string_tables=true)
GR_API RE_Shader * getDepthCubePointShader(RE_Render *r)
set of parameters sent to GR_Primitive::update()
GT_API const UT_StringHolder point_id
GR_API void cleanupBuckets(UT_Array< std::pair< gr_MatBucket *, int >> *&buckets)
GR_API RE_CacheVersion getAttribVersion(const GT_DataArrayHandle &ph, RE_CacheVersion geo_version)
Return the cache version for attribute 'ph'.
GR_API void buildInstancedCenterPoints(RE_RenderContext r, const GT_PrimitiveHandle &handle, const GR_UpdateParms &p, const UT_Matrix4DArray &primxforms, const GT_DataArrayHandle &prim_ids, const GT_DataArrayHandle &pnt_ids, const GT_DataArrayHandle &vtx_ids, const UT_Vector3F &point, RE_CacheVersion point_version, GR_GeoRender *gr, const char *cache_name, GT_PrimitiveHandle *pt_handle=nullptr, GR_SelectMode *pnt_sel_mode=NULL, bool is_offsets=true)
GR_API RE_Shader * getRibbonUVShader(RE_Render *r)
GR_API void drawFlagsString(GR_RenderFlags flags, UT_WorkBuffer &buf)
GR_API RE_Shader * getDepthLinearShader(RE_Render *r)
RE_GPUType getREType(GT_Storage s)
Convenience method to return an RE type from a GT storage type.
GR_API void buildCenterPointIDs(RE_Render *r, const GT_PrimitiveHandle &primh, const GR_UpdateParms &p, const GT_DataArrayHandle &prm_id, const GT_DataArrayHandle &pnt_id, const GT_DataArrayHandle &vtx_id, RE_Geometry *geo, bool is_offsets)
GR_API RE_Shader * getDepthCubePrimTransformShader(RE_Render *r)
GR_API bool inViewFrustum(const UT_BoundingBoxD &bbox, const UT_Matrix4D &objviewproj, const UT_Vector4D *frustum_area=NULL)
GR_API GU_Connectivity getConnectivityFromString(const char *str)
GR_API RE_Shader * getDepthCascadeDisplaceShader(RE_Render *r)
GR_API RE_Shader * getDepthWirePrimTransformShader(RE_Render *r)
GR_API bool inVertexSelection(const GR_UpdateParms &p, GA_Offset vert_id, const GU_Detail *geo=nullptr)
Returns true if vert_id is in the selection list for p.geometry.
GR_API bool buildInstanceObjectMatrix(RE_Render *r, const GT_PrimitiveHandle &h, const GR_UpdateParms &p, RE_Geometry *geo, RE_CacheVersion version, int instance_group=0, UT_Matrix4D *transform=NULL)
GR_API RE_Shader * getDepthCubeLineShader(RE_Render *r)
GR_API void buildCenterPointSelection(RE_Render *r, const GT_PrimitiveHandle &primh, const GR_UpdateParms &p, const GT_DataArrayHandle &prim_ids, const GT_DataArrayHandle &pnt_ids, const GT_DataArrayHandle &vert_ids, RE_Geometry *geo, GR_SelectMode *point_select_mode, bool is_offsets)
GR_API void buildCenterPoint(RE_Render *r, const GT_PrimitiveHandle &primh, const GR_UpdateParms &p, const UT_Matrix4DArray &prim_xforms, const GT_DataArrayHandle &prim_ids, const GT_DataArrayHandle &point_ids, const GT_DataArrayHandle &vert_ids, const UT_Vector3F &point, RE_CacheVersion point_version, RE_Geometry *geo, RE_VertexArrayRef *p_ref, RE_VertexArrayRef *inst_mat_ref, GR_SelectMode *point_select_mode, bool is_offsets)
GR_API GR_SelectMode buildSelection(UT_Array< uint8 > &selected, const GR_UpdateParms &p, GT_DataArrayHandle prim_id, GT_DataArrayHandle pnt_id, GT_DataArrayHandle vert_id, bool is_offset, int repeat_count)
GA_API const UT_StringHolder transform
The base class for all GT primitive types.
GR_API RE_Shader * getDepthShader(RE_Render *r)
GR_API RE_Shader * getConstPointShader(RE_Render *r)
GR_API int getMaxTextureSize(RE_RenderContext rc)
GR_API RE_Shader * getWireShader(RE_Render *r)
GT_API const UT_StringHolder version
GR_API RE_Shader * getDepthLinearPrimTransformShader(RE_Render *r)
GR_API bool removeInstanceGroupArray(RE_Geometry *from_geo, int instance_group, const char *attrib_name, RE_GenericAttribID id=RE_GENATTRIB_NONE)
GR_API void buildInstanceIndex(RE_Render *r, RE_Geometry *geo, bool has_partial_visibility, const UT_IntArray &inst_indices, int instance_group, int max_capacity)
GR_API void fillStringAttrib(RE_Render *r, const GT_DataArrayHandle &dh, RE_Geometry *geo, RE_VertexArray *array, const RE_CacheVersion &version)
GR_API void drawModeString(GR_RenderMode mode, UT_WorkBuffer &buf)
GLfloat GLfloat GLfloat GLfloat h
GR_API RE_Shader * getDepthWireShader(RE_Render *r)
GR_API RE_Shader * getDepthCascadePointShader(RE_Render *r)
GR_API RE_Shader * getDepthCubeShader(RE_Render *r)
GR_API RE_Shader * getDepthLinearDisplaceShader(RE_Render *r)
GR_API UT_Array< std::pair< gr_MatBucket *, int > > * bucketMaterials(const GT_DataArrayHandle &mat_id)
GR_API RE_GPUType getAttributeType(RE_Render *r, const char *attrib_name, int &vsize, const GT_DataArrayHandle &pa, const GR_DisplayOption &opts, RE_ArrayType array_type)
GR_API GR_SelectMode buildInstSelectInfo(RE_Render *r, RE_Geometry *geo, const GR_UpdateParms &p, RE_CacheVersion top_ver, GT_DataArrayHandle primid, GT_DataArrayHandle vtxid, GT_DataArrayHandle vertid, bool is_offsets=true, int instances_per_prim=1, UT_Array< uint8 > *result=NULL)
GR_API void setupGhosting(RE_RenderContext r, int opaque_data[3], fpreal transparency=0.25f)
GR_API void printDrawMode(GR_RenderMode mode, std::ostream *os=NULL)
GR_API bool inPrimitiveSelection(const GR_UpdateParms &p, GA_Offset prim_id, const GU_Detail *geo=nullptr)
GR_API void cleanupGhosting(RE_RenderContext r, int opaque_data[3])
Simple class for a mutli-integer cache tag.
GR_API RE_Shader * getMatteDisplaceShader(RE_Render *r)
GR_API RE_Shader * getMatteShader(RE_Render *r)
GR_API void updateReasonString(GR_UpdateReason r, UT_WorkBuffer &buf)
GR_API void createCenterPointAttribs(RE_Render *r, const GT_PrimitiveHandle &ph, const GR_UpdateParms &p, RE_Geometry *geo)