namespace mrpt::opengl

Overview

Backward-compat alias: mrpt::opengl::graph_tools == mrpt::viz::graph_tools.

namespace opengl {

// namespaces

namespace mrpt::opengl::internal;
namespace mrpt::opengl::testing;

// typedefs

typedef uint8_t shader_id_t;
typedef std::vector<shader_id_t> shader_list_t;
typedef unsigned int texture_name_t;
typedef int texture_unit_t;

// structs

struct CompilationStats;
struct DefaultShaderID;
struct FrameBufferBinding;
struct RenderContext;
struct RenderQueue;
struct RenderQueueElement;
struct TRenderMatrices;
struct ViewportRenderStats;
struct texture_name_unit_t;

// classes

class Buffer;
class CFBORender;
class CompiledScene;
class CompiledViewport;
class FrameBuffer;
class LinesProxy;
class LinesProxyBase;

template <int DEPTH_LUT_NUM_BITS = 18>
class OpenGLDepth2LinearLUTs;

template <class POINTCLOUD>
class PointCloudAdapter;

class PointsProxy;
class PointsProxyBase;
class Program;
class RenderableProxy;
class Shader;
class ShaderProgramManager;
class SkyBoxProxy;
class Texture;
class TexturedTrianglesProxy;
class TexturedTrianglesProxyBase;
class TrianglesProxy;
class TrianglesProxyBase;
class VertexArrayObject;

// global variables

static constexpr int MATERIAL_DIFFUSE_TEXTURE_UNIT = 0;
static constexpr int SHADOW_MAP_TEXTURE_UNIT = 1;
static constexpr int NORMAL_MAP_TEXTURE_UNIT = 2;
static constexpr int SSAO_NOISE_TEXTURE_UNIT = 3;
static constexpr int SSAO_TEXTURE_UNIT = 4;
static constexpr int EMISSIVE_MAP_TEXTURE_UNIT = 5;
static constexpr int POINT_SHADOW_MAP_TEXTURE_UNIT = 6;
static constexpr int INSTANCE_MATRIX_ATTRIB_LOCATION = 5;

// global functions

Program::Ptr LoadDefaultShader(shader_id_t id);
void setIdentityInstanceMatrix();
void registerAllClasses_mrpt_opengl();
bool boxIntersectsClipVolume(const mrpt::math::TBoundingBoxf& bb, const mrpt::math::CMatrixFloat44& clipFromLocal, unsigned int planes = 0x3F);
std::unique_ptr<ShaderProgramManager> createAndPreloadShaders();
texture_name_t getNewTextureNumber(const uint8_t* optionalRgbDataForAssociation = nullptr);
void releaseTextureName(const texture_name_t& t);

} // namespace opengl

Typedefs

typedef std::vector<shader_id_t> shader_list_t

A list of shader IDs.

typedef int texture_unit_t

the “i” in GL_TEXTUREi

Global Variables

static constexpr int INSTANCE_MATRIX_ATTRIB_LOCATION = 5

First of the 4 consecutive vertex attribute locations of the per-instance model matrix (a mat4, one column per location) of the triangle shaders.

Outside instanced draws, its arrays are disabled and their constant value is the identity matrix (see setIdentityInstanceMatrix()).

Global Functions

void setIdentityInstanceMatrix()

Sets the constant value of the per-instance model matrix attribute (INSTANCE_MATRIX_ATTRIB_LOCATION) to the identity, as needed by triangle shaders in non-instanced draws.

texture_name_t getNewTextureNumber(const uint8_t* optionalRgbDataForAssociation = nullptr)

Creates a new OpenGL texture name.

The argument is ignored: use Texture::Options::shareScope to share textures among users of the same image.