cgv
cgv::render::render_info Class Reference

#include <render_info.h>

Inheritance diagram for cgv::render::render_info:
cgv::render::mesh_render_info

Public Types

typedef cgv::type::uint32_type idx_type
 define index type
 
typedef cgv::media::color< float, cgv::media::RGB > rgb
 declare rgb color type
 
typedef cgv::media::color< float, cgv::media::RGB, cgv::media::OPACITY > rgba
 declare rgba color type
 
typedef cgv::media::color< cgv::type::uint8_type, cgv::media::RGB > rgb8
 declare rgb color type
 
typedef cgv::media::color< cgv::type::uint8_type, cgv::media::RGB, cgv::media::OPACITY > rgba8
 declare rgba color type
 
typedef cgv::math::fvec< float, 2 > vec2
 declare type of 2d vectors
 
typedef cgv::math::fvec< float, 3 > vec3
 declare type of 3d vectors
 
typedef cgv::math::fvec< float, 4 > vec4
 declare type of homogeneous vectors
 
typedef cgv::math::vec< float > vecn
 declare type of vector with varying dimension
 
typedef cgv::math::fmat< float, 2, 2 > mat2
 declare type of 2x2 matrices
 
typedef cgv::math::fmat< float, 3, 3 > mat3
 declare type of 3x3 matrices
 
typedef cgv::math::fmat< float, 4, 4 > mat4
 declare type of 4x4 matrices
 
typedef cgv::math::fmat< float, 3, 4 > mat34
 declare type of 3x4 matrices which are often used to store a pose
 
typedef cgv::math::mat< float > matn
 declare type of matrices of varying dimensions
 
typedef cgv::math::fvec< double, 2 > dvec2
 declare type of 2d vectors
 
typedef cgv::math::fvec< double, 3 > dvec3
 declare type of 3d vectors
 
typedef cgv::math::fvec< double, 4 > dvec4
 declare type of homogeneous vectors
 
typedef cgv::math::vec< double > dvecn
 declare type of vector with varying dimension
 
typedef cgv::math::fmat< double, 2, 2 > dmat2
 declare type of 2x2 matrices
 
typedef cgv::math::fmat< double, 3, 3 > dmat3
 declare type of 3x3 matrices
 
typedef cgv::math::fmat< double, 4, 4 > dmat4
 declare type of 4x4 matrices
 
typedef cgv::math::fmat< double, 3, 4 > dmat34
 declare type of 3x4 matrices which are often used to store a pose
 
typedef cgv::math::mat< double > dmatn
 declare type of matrices of varying dimensions
 
typedef cgv::media::axis_aligned_box< float, 2 > box2
 declare type of 2d boxes
 
typedef cgv::media::axis_aligned_box< float, 3 > box3
 declare type of 3d boxes
 
typedef cgv::media::axis_aligned_box< float, 4 > box4
 declare type of 4d boxes
 
typedef cgv::media::axis_aligned_box< double, 2 > dbox2
 declare type of 2d boxes
 
typedef cgv::media::axis_aligned_box< double, 3 > dbox3
 declare type of 3d boxes
 
typedef cgv::media::axis_aligned_box< double, 4 > dbox4
 declare type of 4d boxes
 
typedef cgv::math::quaternion< float > quat
 declare type of quaternion
 
typedef cgv::math::quaternion< double > dquat
 declare type of double quaternion
 
typedef cgv::math::fvec< int32_t, 2 > ivec2
 declare type of 2d integer vectors
 
typedef cgv::math::fvec< int32_t, 3 > ivec3
 declare type of 3d integer vectors
 
typedef cgv::math::fvec< int32_t, 4 > ivec4
 declare type of 4d integer vectors
 
typedef cgv::math::fvec< uint32_t, 2 > uvec2
 declare type of 2d unsigned integer vectors
 
typedef cgv::math::fvec< uint32_t, 3 > uvec3
 declare type of 3d unsigned integer vectors
 
typedef cgv::math::fvec< uint32_t, 4 > uvec4
 declare type of 4d unsigned integer vectors
 

Public Member Functions

 render_info ()
 set vbo and vbe types
 
const std::vector< textured_material * > & get_materials () const
 give read access to materials
 
const std::vector< vertex_buffer * > & get_vbos () const
 give read access to vbos
 
const std::vector< attribute_array > & get_aas () const
 give read access to aabs
 
const std::vector< texture * > & get_textures () const
 give read access to texture
 
const std::vector< draw_call > & get_draw_calls () const
 give read access to draw calls
 
std::vector< textured_material * > & ref_materials ()
 give write access to materials
 
std::vector< vertex_buffer * > & ref_vbos ()
 give write access to vbos
 
std::vector< attribute_array > & ref_aas ()
 give write access to aabs
 
std::vector< texture * > & ref_textures ()
 give write access to texture
 
std::vector< draw_call > & ref_draw_calls ()
 give write access to draw calls
 
virtual bool bind (context &ctx, shader_program &prog, bool force_success, int aa_index=-1)
 bind all or specific aa to the passed shader program More...
 
void draw_all (context &ctx, bool skip_opaque=false, bool skip_blended=false, bool use_materials=true)
 execute all draw calls
 
void destruct (cgv::render::context &ctx)
 destruct render mesh info and free vertex buffer objects
 

Protected Member Functions

void draw (context &ctx, const draw_call &dc, const draw_call *prev_dc=0, const draw_call *next_dc=0, bool use_materials=true)
 perform a single render call
 

Protected Attributes

std::vector< textured_material * > materials
 store materials
 
std::vector< texture * > textures
 store textures
 
std::vector< vertex_buffer * > vbos
 store buffers
 
std::vector< attribute_array > aas
 store attribute bindings
 
std::vector< draw_call > draw_calls
 store vector of render calls
 

Detailed Description

the mesh_render_info structure manages vertex buffer objects for attribute and element buffers as well as an attribute array binding object. The vertex buffer can be constructed from a simple mesh and the attribute array binding is bound to a specific shader program which defines the attribute locations.

Member Function Documentation

◆ bind()

bool cgv::render::render_info::bind ( context ctx,
shader_program prog,
bool  force_success,
int  aa_index = -1 
)
virtual

bind all or specific aa to the passed shader program

bind all or specific draw call to the passed shader program

Reimplemented in cgv::render::mesh_render_info.


The documentation for this class was generated from the following files: