91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 1.17MB
    文件類型: .zip
    金幣: 2
    下載: 0 次
    發布日期: 2023-11-10
  • 語言: 其他
  • 標簽: qt??opengl??渲染??yuv??

資源簡介

qt opengl(after ver2.1) 渲染 nv12 qt opengl(after ver2.1) 渲染 nv12 qt opengl(after ver2.1) 渲染 nv12

資源截圖

代碼片段和文件信息

#include?

#include?
#include?

Gl_widget::Gl_widget(int?width?int?height?const?QString&?path?QWidget*?parent)
????:QGLWidget(QGLFormat(QGL::SampleBuffers)?parent)
?????video_width(width)
?????video_height(height)
?????y_texture(0)
?????uv_texture(0)
?????y_data(0)
?????uv_data(0)
?????file(path)
?????timer(this)
?????program(this)
{
????setFocusPolicy(Qt::StrongFocus);

????y_data?=?new?unsigned?char[(width*height*3)>>1];
????uv_data?=?y_data+(width*height);
????file.open(QIODevice::ReadOnly);
}

Gl_widget::~Gl_widget()
{
????file.close();

????glDeleteTextures(1?&y_texture);
????glDeleteTextures(1?&uv_texture);

????uv_data?=?0;
????delete?[]?y_data;
????y_data?=?0;
}
void?Gl_widget::initializeGL()
{
????qDebug()?<?????“uniform?sampler2D?y_texture;\n“
?????“uniform?sampler2D?uv_texture;\n“
?????“void?main(void)\n“
?????“{\n“
?????“???float?y?u?v?red?green?blue;\n“
?????“???y?=?texture2D(y_texture?gl_TexCoord[0].st).r?;\n“
?????“???y?=??1.1643?*?(y?-?0.0625);\n“
?????“???u?=?texture2D(uv_texture?gl_TexCoord[0].st).r?-?0.5;\n“
?????“???v?=?texture2D(uv_texture?gl_TexCoord[0].st).a?-?0.5;\n“
?????“???red?=?y+1.5958*v;\n“
?????“???green?=?y-0.39173*u-0.81290*v;\n“
?????“???blue?=?y+2.017*u;\n“
?????“???gl_FragColor?=?vec4(red?green?blue?1.0);\n“
?????“}“);

????qDebug()?<nk();
????qDebug()?<
????glGenTextures(1?&y_texture);
????glGenTextures(1?&uv_texture);

????glActiveTexture(GL_TEXTURE0);
????glBindTexture(GL_TEXTURE_2D?y_texture);
????glTexParameterf(GL_TEXTURE_2D?GL_TEXTURE_MAG_FILTER?GL_NEAREST);
????glTexParameterf(GL_TEXTURE_2D?GL_TEXTURE_MIN_FILTER?GL_NEAREST);
????glTexEnvf(GL_TEXTURE_ENVGL_TEXTURE_ENV_MODEGL_DECAL);
????glTexImage2D(GL_TEXTURE_2D?0?GL_LUMINANCE?video_width?video_height?0?GL_LUMINANCE?GL_UNSIGNED_BYTE?y_data);

????glActiveTexture(GL_TEXTURE1);
????glBindTexture(GL_TEXTURE_2D?uv_texture);
????glTexParameterf(GL_TEXTURE_2D?GL_TEXTURE_MAG_FILTER?GL_NEAREST);
????glTexParameterf(GL_TEXTURE_2D?GL_TEXTURE_MIN_FILTER?GL_NEAREST);
????glTexEnvf(GL_TEXTURE_ENVGL_TEXTURE_ENV_MODEGL_DECAL);
????glTexImage2D(GL_TEXTURE_2D?0?GL_LUMINANCE_ALPHA?video_width>>1?video_height>>1?0?GL_LUMINANCE_ALPHA?GL_UNSIGNED_BYTE?uv_data);

????program.setUniformValue(“y_texture“?0);
????program.setUniformValue(“uv_texture“?1);

????connect(&timer?SIGNAL(timeout())?this?SLOT(on_timeout()));
????timer.setInterval(25);
????timer.start();
}

void?Gl_widget::paintGL()
{
????file.read((char*)y_data?(video_width*video_height*3)>>1);

????glActiveTexture(GL_TEXTURE0);
????glTexSubImage2D(GL_TEXTURE_2D?0?0?0?video_width?video_height?GL_LUMINANCE?GL_UNSIGNED_BYTE?y_data);
????glActiveTexture(GL_TEXTURE1);
????glTexSubImage2D(GL_TEXTURE_2D?0?0?0?video_width>>1?video_height>>1?GL_LUMINANCE_ALPHA?GL_UNSIGNED_BYTE?uv_data);


????glClear(GL_COLOR_BUFFER_BIT);

????glEnable(

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2017-09-27?16:48??nv12_shader\
?????文件????????3605??2017-09-25?15:40??nv12_shader\gl_widget.cpp
?????文件?????????673??2017-09-25?15:40??nv12_shader\gl_widget.h
?????文件?????????280??2017-09-27?15:53??nv12_shader\main.cpp
?????文件?????????280??2017-09-27?15:53??nv12_shader\main.cpp~
?????文件?????4320000??2017-09-25?15:40??nv12_shader\test_yuv420p_320x180.yuv
?????文件?????3110400??2017-09-25?15:42??nv12_shader\videotestsrc_1920x1080.nv12
?????文件?????????363??2017-09-25?15:40??nv12_shader\yuv_shader.pro
?????文件???????44458??2017-09-25?15:40??nv12_shader\yuv_shader.pro.user
?????文件?????????315??2017-09-25?15:40??nv12_shader\yuv_window.cpp
?????文件?????????347??2017-09-25?15:40??nv12_shader\yuv_window.h
?????文件?????????433??2017-09-25?15:40??nv12_shader\yuv_window.ui

評論

共有 條評論