27#ifndef EASY3D_RENDERER_OPENGL_UTIL_H
28#define EASY3D_RENDERER_OPENGL_UTIL_H
32#include <unordered_map>
142 static void viewport(
int &x,
int &y,
int &width,
int &height);
211 static void get_uniform_info(
unsigned int program,
const std::string &uniName);
224 static void _add_message(std::string format, ...);
228 static int _get_rows(
unsigned int type);
230 static int _get_columns(
unsigned int type);
232 static void _display_uniformf(
float *f,
int rows,
int columns);
234 static void _display_uniformi(
int *f,
int rows,
int columns);
236 static void _display_uniformui(
unsigned int *f,
int rows,
int columns);
238 static void _display_uniformd(
double *f,
int rows,
int columns);
240 static int _get_uniform_byte_size(
int size,
int uniType,
int arrayStride,
int matStride);
243 DONT_KNOW, INT, UNSIGNED_INT, FLOAT, DOUBLE
246 static Types _get_type(
unsigned int type);
249 static bool _glew_initialized;
253 static std::ostream *_output_stream;
255 static std::unordered_map<int, std::string> spBufferAccess;
256 static std::unordered_map<int, std::string> spBufferUsage;
257 static std::unordered_map<int, std::string> spBufferBinding;
258 static std::unordered_map<int, int> spBufferBound;
259 static std::unordered_map<int, int> spBoundBuffer;
260 static std::unordered_map<int, std::string> spDataF;
261 static std::unordered_map<int, std::string> spGLSLType;
262 static std::unordered_map<int, int> spGLSLTypeSize;
263 static std::unordered_map<int, std::string> spShaderType;
264 static std::unordered_map<int, std::string> spTransFeedBufferMode;
265 static std::unordered_map<int, std::string> spGLSLPrimitives;
266 static std::unordered_map<int, std::string> spTessGenSpacing;
267 static std::unordered_map<int, std::string> spVertexOrder;
Utilities for OpenGL initialization and states query.
Definition opengl_util.h:41
static bool has_extension(const std::string &name)
Check if a specific OpenGL extension is available.
Definition opengl_util.cpp:78
static std::string gl_extensions()
Get the OpenGL extensions.
Definition opengl_util.cpp:134
static void get_uniform_in_block_info(unsigned int program, const std::string &blockName, const std::string &uniName)
Get the values for a uniform in a named block.
Definition opengl_util.cpp:590
static std::string glsl_version()
Get the GLSL version.
Definition opengl_util.cpp:153
static float gl_version_number()
Get the OpenGL version number.
Definition opengl_util.cpp:190
static void get_vao_info(unsigned int buffer)
Get VAO information, including its attributes.
Definition opengl_util.cpp:351
static int gl_minor_version()
Get the minor version of OpenGL.
Definition opengl_util.cpp:169
static int samples()
Get the number of samples.
Definition opengl_util.cpp:215
static std::string gl_vendor()
Get the OpenGL vendor.
Definition opengl_util.cpp:108
static void set_output(std::ostream *out)
Set the output stream for the messages.
Definition opengl_util.cpp:260
static void get_uniform_info(unsigned int program, const std::string &uniName)
Get a uniform's value(s).
Definition opengl_util.cpp:543
static int total_gpu_memory()
Get the total GPU memory.
Definition opengl_util.cpp:232
static bool is_supported(const std::string &name)
Check if a specific OpenGL feature is supported.
Definition opengl_util.cpp:71
static std::string gl_version()
Get the OpenGL version.
Definition opengl_util.cpp:126
static float glew_version_number()
Get the GLEW version number.
Definition opengl_util.cpp:176
static void get_program_info(unsigned int program)
Get detailed info for a program.
Definition opengl_util.cpp:689
static bool is_initialized()
Check if OpenGL is initialized.
Definition opengl_util.cpp:66
static std::string gl_renderer()
Get the OpenGL renderer.
Definition opengl_util.cpp:117
static float glsl_version_number()
Get the GLSL version number.
Definition opengl_util.cpp:208
static int gl_major_version()
Get the major version of OpenGL.
Definition opengl_util.cpp:162
static void viewport(int &x, int &y, int &width, int &height)
Query the OpenGL viewport. The parameters are the same as in glViewport(x, y, width,...
Definition opengl_util.cpp:222
static void get_current_buffer_info()
Get current bound buffer info.
Definition opengl_util.cpp:288
static std::string glew_version()
Get the GLEW version.
Definition opengl_util.cpp:142
static int gl_profile()
Get the OpenGL profile.
Definition opengl_util.cpp:91
static int available_gpu_memory()
Get the available GPU memory.
Definition opengl_util.cpp:245
static void get_attributes_info(unsigned int program)
Get detailed info for attributes in a program.
Definition opengl_util.cpp:660
static void get_uniforms_info(unsigned int program)
Get info for all active uniforms in a program.
Definition opengl_util.cpp:414
static bool init()
Initialize OpenGL.
Definition opengl_util.cpp:49
static void get_buffer_info(unsigned int target, int bufferName)
Get the buffer information.
Definition opengl_util.cpp:322
Functions for updating render buffers.
Definition buffer.cpp:45
Definition collider.cpp:182