NvEglRenderer
是一个使用 EGL 和 OpenGL ES 2.0 进行渲染的辅助类。
渲染器需要缓冲区的文件描述符 (FD) 作为输入。渲染速率,以帧每秒 (fps) 为单位,是可配置的。
渲染器创建自己的 X Window 窗口。窗口的宽度、高度、水平偏移和垂直偏移是可配置的。
所有 EGL 调用都必须通过一个线程执行。此类在内部创建一个线程,该线程执行所有 EGL/GL 初始化、从 FD 获取 EGLImage
对象、渲染 EGLImage
对象,然后反初始化所有 EGL/GL 结构。
定义位于文件 74 行 NvEglRenderer.h。
公共成员函数 | |
~NvEglRenderer () | |
int | render (int fd) |
渲染缓冲区。 更多... | |
int | setFPS (float fps) |
设置渲染速率,以帧每秒 (fps) 为单位。 更多... | |
EGLDisplay | getEGLDisplay () |
获取底层 EGLDisplay。 更多... | |
int | setOverlayText (char *str, uint32_t x, uint32_t y) |
设置叠加字符串。 更多... | |
virtual int | isInError () |
指示元素在其操作期间是否遇到错误。 更多... | |
void | getProfilingData (NvElementProfiler::NvElementProfilerData &data) |
获取元素的性能分析数据。 更多... | |
void | printProfilingStats (std::ostream &out_stream=std::cout) |
将元素的性能分析数据打印到输出流。 更多... | |
virtual void | enableProfiling () |
启用元素的性能分析。 更多... | |
bool | isProfilingEnabled () |
检查是否为元素启用了性能分析。 更多... | |
静态公共成员函数 | |
static NvEglRenderer * | createEglRenderer (const char *name, uint32_t width, uint32_t height, uint32_t x_offset, uint32_t y_offset) |
创建一个新的基于 EGL 的渲染器,名为 name。 更多... | |
static int | getDisplayResolution (uint32_t &width, uint32_t &height) |
获取显示分辨率。 更多... | |
保护属性 | |
int | is_in_error |
指示元素操作期间是否遇到错误。 更多... | |
const char * | comp_name |
指定组件的名称,用于调试。 更多... | |
NvElementProfiler | profiler |
元素的性能分析器。 更多... | |
NvEglRenderer::~NvEglRenderer | ( | ) |
|
static |
创建一个新的基于 EGL 的渲染器,名为 name。
此方法创建一个新的 X window 窗口用于渲染,窗口大小为 width 和 height,并由 x_offset 和 y_offset 偏移。如果 width 或 height 为零,则会创建一个全屏窗口,且 x_offset 和 y_offset 设置为零。
它在内部初始化 EGL,创建 eglContext
,eglSurface
,GL 纹理和用于渲染的着色器。
[in] | name | 指定指向唯一名称的指针,以标识元素实例。 |
[in] | width | 指定窗口的宽度,以像素为单位。 |
[in] | height | 指定窗口的高度,以像素为单位。 |
[in] | x_offset | 指定窗口的水平偏移,以像素为单位。 |
[in] | y_offset | 指定窗口的垂直偏移,以像素为单位。 |
NULL
。
|
virtualinherited |
启用元素的性能分析。
在 NvV4l2Element 中重新实现。
|
static |
获取显示分辨率。
[out] | width | 指向全屏宽度的指针,以像素为单位。 |
[out] | height | 指向全屏高度的指针,以像素为单位。 |
|
inline |
|
inherited |
获取元素的性能分析数据。
|
inlinevirtualinherited |
|
inherited |
检查是否为元素启用了性能分析。
|
inherited |
将元素的性能分析数据打印到输出流。
[in] | out_stream | std::ostream 类型的输出流,用于将数据打印到该流。如果未指定,则采用默认值 std::cout。 |
int NvEglRenderer::render | ( | int | fd | ) |
渲染缓冲区。
此方法等待直到下一个缓冲区的渲染时间,该时间根据上一个缓冲区的渲染时间和帧每秒 (fps) 的渲染速率计算得出。这是一个阻塞调用。
[in] | fd | 指定要渲染的导出缓冲区的文件描述符 (FD)。 |
int NvEglRenderer::setFPS | ( | float | fps | ) |
设置渲染速率,以帧每秒 (fps) 为单位。
[in] | fps | 指定渲染速率,以 fps 为单位。 |
int NvEglRenderer::setOverlayText | ( | char * | str, |
uint32_t | x, | ||
uint32_t | y | ||
) |
设置叠加字符串。
[in] | str | 指向叠加文本的指针。 |
[in] | x | 水平偏移,以像素为单位。 |
[in] | y | 垂直偏移,以像素为单位。 |
|
protectedinherited |
指定组件的名称,用于调试。
定义位于文件 122 行 NvElement.h。
|
protectedinherited |
|
protectedinherited |
元素的性能分析器。
定义位于文件 124 行 NvElement.h。