23 CFBORender::CFBORender(
24 unsigned int width,
unsigned int height,
const bool skip_glut_window)
27 m_win_used(!skip_glut_window),
28 m_default_bk_color(.6f, .6f, .6f, 1)
30 #if MRPT_HAS_OPENCV && MRPT_HAS_OPENGL_GLUT 37 if (!glutGet(GLUT_INIT_STATE))
41 char* argv[1] = {
nullptr};
42 glutInit(&argc, argv);
46 m_win = glutCreateWindow(
"CFBORender");
55 #ifdef MRPT_OS_WINDOWS 59 "glDeleteFramebuffersEXT");
64 "glFramebufferTexture2DEXT");
86 #if defined(GL_TEXTURE_RECTANGLE_NV) 88 #elif defined(GL_TEXTURE_RECTANGLE_ARB) 120 #if MRPT_HAS_OPENGL_GLUT 158 #if MRPT_HAS_OPENCV && MRPT_HAS_OPENGL_GLUT 165 buffer.getChannelCount() != 3 ||
buffer.isOriginTopLeft() !=
false)
187 #if MRPT_HAS_OPENGL_GLUT 234 #if MRPT_HAS_OPENCV && MRPT_HAS_OPENGL_GLUT 250 #if defined(GL_TEXTURE_RECTANGLE_NV) 252 #elif defined(GL_TEXTURE_RECTANGLE_ARB) 283 #if MRPT_HAS_OPENGL_GLUT 287 const GLubyte* extensions =
nullptr;
292 where = (
GLubyte*)strchr(extension,
' ');
293 if (where || *extension ==
'\0')
return 0;
302 where = (
GLubyte*)strstr((
const char*)
start, extension);
304 terminator = where + strlen(extension);
305 if (where ==
start || *(where - 1) ==
' ')
306 if (*terminator ==
' ' || *terminator ==
'\0')
return 1;
#define ASSERT_EQUAL_(__A, __B)
GLAPI void GLAPIENTRY glDeleteTextures(GLsizei n, const GLuint *textures)
GLAPI void GLAPIENTRY glReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels)
Classes for serialization, sockets, ini-file manipulation, streams, list of properties-values, timewatch, extensions to STL.
int isExtensionSupported(const char *extension)
Provide information on Framebuffer object extension.
GLAPI void GLAPIENTRY glClearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha)
A class for storing images as grayscale or RGB bitmaps.
#define THROW_EXCEPTION(msg)
void(GLAPIENTRY * PFNGLGENFRAMEBUFFERSEXTPROC)(GLsizei n, GLuint *framebuffers)
void getFrame2(const COpenGLScene &scene, mrpt::utils::CImage &image)
Render the scene and get the rendered rgb image.
#define GL_TEXTURE_RECTANGLE_NV
mrpt::utils::TColorf m_default_bk_color
void(GLAPIENTRY * PFNGLDELETEFRAMEBUFFERSEXTPROC)(GLsizei n, const GLuint *framebuffers)
GLAPI void GLAPIENTRY glBindTexture(GLenum target, GLuint texture)
#define MRPT_UNUSED_PARAM(a)
Can be used to avoid "not used parameters" warnings from the compiler.
CCamera & getCamera(const COpenGLScene &scene)
Get a reference to the scene camera.
virtual ~CFBORender()
Destructor.
#define glDeleteFramebuffersEXT
void render_text_messages(const int w, const int h) const
Renders the messages to the current opengl rendering context (to be called OUT of MRPT mrpt::opengl r...
#define GL_COLOR_ATTACHMENT0_EXT
#define GL_TEXTURE_RECTANGLE_EXT
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.
GLAPI void GLAPIENTRY glViewport(GLint x, GLint y, GLsizei width, GLsizei height)
COpenGLViewport::Ptr getViewport(const std::string &viewportName=std::string("main")) const
Returns the viewport with the given name, or nullptr if it does not exist; note that the default view...
void setCamera(const COpenGLScene &scene, const CCamera &camera)
Change the scene camera.
void resize(unsigned int width, unsigned int height)
Resize the rendering canvas size.
GLAPI const GLubyte *GLAPIENTRY glGetString(GLenum name)
GLAPI void GLAPIENTRY glGenTextures(GLsizei n, GLuint *textures)
#define glFramebufferTexture2DEXT
#define glGenFramebuffersEXT
void render() const
Render this scene.
#define GL_FRAMEBUFFER_EXT
The namespace for 3D scene representation and rendering.
This class allows the user to create, load, save, and render 3D scenes using OpenGL primitives...
void(GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURE2DEXTPROC)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)
#define glBindFramebufferEXT
#define GL_TEXTURE_RECTANGLE_ARB
A camera: if added to a scene, the viewpoint defined by this camera will be used instead of the camer...
GLenum GLsizei GLsizei height
void(GLAPIENTRY * PFNGLBINDFRAMEBUFFEREXTPROC)(GLenum target, GLuint framebuffer)
GLAPI void GLAPIENTRY glTexImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels)
void getFrame(const COpenGLScene &scene, mrpt::utils::CImage &image)
Render the scene and get the rendered rgb image.