亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? opengl.c

?? VLC Player Source Code
?? C
?? 第 1 頁 / 共 3 頁
字號:
    p_vout->output.i_chroma = VLC_FOURCC('R','V','1','6');#       if defined( WORDS_BIGENDIAN )    p_vout->output.i_rmask = 0x001f;    p_vout->output.i_gmask = 0x07e0;    p_vout->output.i_bmask = 0xf800;#       else    p_vout->output.i_rmask = 0xf800;    p_vout->output.i_gmask = 0x07e0;    p_vout->output.i_bmask = 0x001f;#       endif    i_pixel_pitch = 2;#   endif#else    p_vout->output.i_chroma = VLC_FOURCC('R','V','3','2');#       if defined( WORDS_BIGENDIAN )    p_vout->output.i_rmask = 0xff000000;    p_vout->output.i_gmask = 0x00ff0000;    p_vout->output.i_bmask = 0x0000ff00;#       else    p_vout->output.i_rmask = 0x000000ff;    p_vout->output.i_gmask = 0x0000ff00;    p_vout->output.i_bmask = 0x00ff0000;#       endif    i_pixel_pitch = 4;#endif    /* Since OpenGL can do rescaling for us, stick to the default     * coordinates and aspect. */    p_vout->output.i_width  = p_vout->render.i_width;    p_vout->output.i_height = p_vout->render.i_height;    p_vout->output.i_aspect = p_vout->render.i_aspect;    p_vout->fmt_out = p_vout->fmt_in;    p_vout->fmt_out.i_chroma = p_vout->output.i_chroma;    /* We know the chroma, allocate one buffer which will be used     * directly by the decoder */    p_sys->pp_buffer[0] =        malloc( p_sys->i_tex_width * p_sys->i_tex_height * i_pixel_pitch );    if( !p_sys->pp_buffer[0] )        return -1;    p_sys->pp_buffer[1] =        malloc( p_sys->i_tex_width * p_sys->i_tex_height * i_pixel_pitch );    if( !p_sys->pp_buffer[1] )        return -1;    p_vout->p_picture[0].i_planes = 1;    p_vout->p_picture[0].p->p_pixels = p_sys->pp_buffer[0];    p_vout->p_picture[0].p->i_lines = p_vout->output.i_height;    p_vout->p_picture[0].p->i_visible_lines = p_vout->output.i_height;    p_vout->p_picture[0].p->i_pixel_pitch = i_pixel_pitch;    p_vout->p_picture[0].p->i_pitch = p_vout->output.i_width *        p_vout->p_picture[0].p->i_pixel_pitch;    p_vout->p_picture[0].p->i_visible_pitch = p_vout->output.i_width *        p_vout->p_picture[0].p->i_pixel_pitch;    p_vout->p_picture[0].i_status = DESTROYED_PICTURE;    p_vout->p_picture[0].i_type   = DIRECT_PICTURE;    PP_OUTPUTPICTURE[ 0 ] = &p_vout->p_picture[0];    I_OUTPUTPICTURES = 1;    if( p_sys->p_vout->pf_lock &&        p_sys->p_vout->pf_lock( p_sys->p_vout ) )    {        msg_Warn( p_vout, "could not lock OpenGL provider" );        return 0;    }    InitTextures( p_vout );    glDisable(GL_BLEND);    glDisable(GL_DEPTH_TEST);    glDepthMask(GL_FALSE);    glDisable(GL_CULL_FACE);    glClearColor( 0.0f, 0.0f, 0.0f, 1.0f );    glClear( GL_COLOR_BUFFER_BIT );    /* Check if the user asked for useless visual effects */    var_Get( p_vout, "opengl-effect", &val );    if( !val.psz_string || !strcmp( val.psz_string, "none" ))    {        p_sys->i_effect = OPENGL_EFFECT_NONE;    }    else if( !strcmp( val.psz_string, "cube" ) )    {        p_sys->i_effect = OPENGL_EFFECT_CUBE;        glEnable( GL_CULL_FACE);    }    else if( !strcmp( val.psz_string, "transparent-cube" ) )    {        p_sys->i_effect = OPENGL_EFFECT_TRANSPARENT_CUBE;        glDisable( GL_DEPTH_TEST );        glEnable( GL_BLEND );        glBlendFunc( GL_SRC_ALPHA, GL_ONE );    }    else    {#ifdef OPENGL_MORE_EFFECT        p_sys->i_effect = 3;        while (( strcmp( val.psz_string, ppsz_effects[p_sys->i_effect]) ) && (pow(2,p_sys->i_effect) < INIFILE))        {            p_sys->i_effect ++;        }        if (pow(2,p_sys->i_effect) < INIFILE)            p_sys->i_effect = pow(2,p_sys->i_effect);        else if ( strcmp( val.psz_string, ppsz_effects[p_sys->i_effect]))        {            msg_Warn( p_vout, "no valid opengl effect provided, using "                      "\"none\"" );            p_sys->i_effect = OPENGL_EFFECT_NONE;        }#else        msg_Warn( p_vout, "no valid opengl effect provided, using "                  "\"none\"" );        p_sys->i_effect = OPENGL_EFFECT_NONE;#endif    }    free( val.psz_string );    if( p_sys->i_effect & ( OPENGL_EFFECT_CUBE |                OPENGL_EFFECT_TRANSPARENT_CUBE ) )    {        /* Set the perpective */        glMatrixMode( GL_PROJECTION );        glLoadIdentity();        glFrustum( -1.0, 1.0, -1.0, 1.0, 3.0, 20.0 );        glMatrixMode( GL_MODELVIEW );        glLoadIdentity();        glTranslatef( 0.0, 0.0, - 5.0 );    }#ifdef OPENGL_MORE_EFFECT    else    {        /* Set the perpective */        glMatrixMode( GL_PROJECTION );        glLoadIdentity();        glFrustum( -1.0, 1.0, -1.0, 1.0, 3.0, 20.0 );        glMatrixMode( GL_MODELVIEW );        glLoadIdentity();        glTranslatef( 0.0, 0.0, -3.0 );        float f_pov_x, f_pov_y, f_pov_z;        f_pov_x = var_CreateGetFloat( p_vout, "opengl-pov-x");        f_pov_y = var_CreateGetFloat( p_vout, "opengl-pov-y");        f_pov_z = var_CreateGetFloat( p_vout, "opengl-pov-z");        gluLookAt(0, 0, 0, f_pov_x, f_pov_y, f_pov_z, 0, 1, 0);    }#endif    if( p_sys->p_vout->pf_unlock )    {        p_sys->p_vout->pf_unlock( p_sys->p_vout );    }    return 0;}/***************************************************************************** * End: terminate GLX video thread output method *****************************************************************************/static void End( vout_thread_t *p_vout ){    vout_sys_t *p_sys = p_vout->p_sys;    if( p_sys->p_vout->pf_lock &&        p_sys->p_vout->pf_lock( p_sys->p_vout ) )    {        msg_Warn( p_vout, "could not lock OpenGL provider" );        return;    }    glFinish();    glFlush();    /* Free the texture buffer*/    glDeleteTextures( 2, p_sys->p_textures );    free( p_sys->pp_buffer[0] );    free( p_sys->pp_buffer[1] );    if( p_sys->p_vout->pf_unlock )    {        p_sys->p_vout->pf_unlock( p_sys->p_vout );    }}/***************************************************************************** * Destroy: destroy GLX video thread output method ***************************************************************************** * Terminate an output method created by CreateVout *****************************************************************************/static void DestroyVout( vlc_object_t *p_this ){    vout_thread_t *p_vout = (vout_thread_t *)p_this;    vout_sys_t *p_sys = p_vout->p_sys;    module_Unneed( p_sys->p_vout, p_sys->p_vout->p_module );    vlc_object_release( p_sys->p_vout );    free( p_sys );}/***************************************************************************** * Manage: handle Sys events ***************************************************************************** * This function should be called regularly by video output thread. It returns * a non null value if an error occurred. *****************************************************************************/static int Manage( vout_thread_t *p_vout ){    vout_sys_t *p_sys = p_vout->p_sys;    int i_ret, i_fullscreen_change;    i_fullscreen_change = ( p_vout->i_changes & VOUT_FULLSCREEN_CHANGE );    p_vout->fmt_out.i_x_offset = p_sys->p_vout->fmt_in.i_x_offset =        p_vout->fmt_in.i_x_offset;    p_vout->fmt_out.i_y_offset = p_sys->p_vout->fmt_in.i_y_offset =        p_vout->fmt_in.i_y_offset;    p_vout->fmt_out.i_visible_width = p_sys->p_vout->fmt_in.i_visible_width =        p_vout->fmt_in.i_visible_width;    p_vout->fmt_out.i_visible_height = p_sys->p_vout->fmt_in.i_visible_height =        p_vout->fmt_in.i_visible_height;    p_vout->fmt_out.i_aspect = p_sys->p_vout->fmt_in.i_aspect =        p_vout->fmt_in.i_aspect;    p_vout->fmt_out.i_sar_num = p_sys->p_vout->fmt_in.i_sar_num =        p_vout->fmt_in.i_sar_num;    p_vout->fmt_out.i_sar_den = p_sys->p_vout->fmt_in.i_sar_den =        p_vout->fmt_in.i_sar_den;    p_vout->output.i_aspect = p_vout->fmt_in.i_aspect;    p_sys->p_vout->i_changes = p_vout->i_changes;    i_ret = p_sys->p_vout->pf_manage( p_sys->p_vout );    p_vout->i_changes = p_sys->p_vout->i_changes;#ifdef __APPLE__    if( p_sys->p_vout->pf_lock &&        p_sys->p_vout->pf_lock( p_sys->p_vout ) )    {        msg_Warn( p_vout, "could not lock OpenGL provider" );        return i_ret;    }    /* On OS X, we create the window and the GL view when entering       fullscreen - the textures have to be inited again */    if( i_fullscreen_change )    {        InitTextures( p_vout );        switch( p_sys->i_effect )        {            case OPENGL_EFFECT_CUBE:#ifdef OPENGL_MORE_EFFECT            case CYLINDER:            case TORUS:            case SPHERE:            case SQUAREXY:            case SQUARER:            case ASINXY:            case ASINR:            case SINEXY:            case SINER:#endif                glEnable( GL_CULL_FACE );                break;            case OPENGL_EFFECT_TRANSPARENT_CUBE:                glDisable( GL_DEPTH_TEST );                glEnable( GL_BLEND );                glBlendFunc( GL_SRC_ALPHA, GL_ONE );                break;        }        if( p_sys->i_effect & ( OPENGL_EFFECT_CUBE |                    OPENGL_EFFECT_TRANSPARENT_CUBE ) )        {            /* Set the perpective */            glMatrixMode( GL_PROJECTION );            glLoadIdentity();            glFrustum( -1.0, 1.0, -1.0, 1.0, 3.0, 20.0 );            glMatrixMode( GL_MODELVIEW );            glLoadIdentity();            glTranslatef( 0.0, 0.0, - 5.0 );        }#ifdef OPENGL_MORE_EFFECT        else        {            glMatrixMode( GL_PROJECTION );            glLoadIdentity();            glFrustum( -1.0, 1.0, -1.0, 1.0, 3.0, 20.0 );            glMatrixMode( GL_MODELVIEW );            glLoadIdentity();            glTranslatef( 0.0, 0.0, -3.0 );             float f_pov_x, f_pov_y, f_pov_z;            f_pov_x = var_CreateGetFloat( p_vout, "opengl-pov-x");            f_pov_y = var_CreateGetFloat( p_vout, "opengl-pov-y");            f_pov_z = var_CreateGetFloat( p_vout, "opengl-pov-z");            gluLookAt(0, 0, 0, f_pov_x, f_pov_y, f_pov_z, 0, 1, 0);        }#endif    }    if( p_sys->p_vout->pf_unlock )    {        p_sys->p_vout->pf_unlock( p_sys->p_vout );    }#endif// to align in real time in OPENGL    if (p_sys->p_vout->i_alignment != p_vout->i_alignment)    {        p_vout->i_changes = VOUT_CROP_CHANGE;        //to force change        p_sys->p_vout->i_alignment = p_vout->i_alignment;        }    return i_ret;}/***************************************************************************** * Render: render previously calculated output *****************************************************************************/static void Render( vout_thread_t *p_vout, picture_t *p_pic ){    VLC_UNUSED(p_pic);    vout_sys_t *p_sys = p_vout->p_sys;    /* On Win32/GLX, we do this the usual way:       + Fill the buffer with new content,       + Reload the texture,       + Use the texture.       On OS X with VRAM or AGP texturing, the order has to be:       + Reload the texture,       + Fill the buffer with new content,       + Use the texture.       (Thanks to gcc from the Arstechnica forums for the tip)       Therefore, we have to use two buffers and textures. On Win32/GLX,       we reload the texture to be displayed and use it right away. On       OS X, we first render, then reload the texture to be used next       time. */    if( p_sys->p_vout->pf_lock &&        p_sys->p_vout->pf_lock( p_sys->p_vout ) )    {        msg_Warn( p_vout, "could not lock OpenGL provider" );        return;    }#ifdef __APPLE__    int i_new_index;    i_new_index = ( p_sys->i_index + 1 ) & 1;    /* Update the texture */    glBindTexture( VLCGL_TARGET, p_sys->p_textures[i_new_index] );    glTexSubImage2D( VLCGL_TARGET, 0, 0, 0,                     p_vout->fmt_out.i_width,                     p_vout->fmt_out.i_height,                     VLCGL_FORMAT, VLCGL_TYPE, p_sys->pp_buffer[i_new_index] );    /* Bind to the previous texture for drawing */    glBindTexture( VLCGL_TARGET, p_sys->p_textures[p_sys->i_index] );    /* Switch buffers */    p_sys->i_index = i_new_index;    p_pic->p->p_pixels = p_sys->pp_buffer[p_sys->i_index];

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲成人动漫一区| 精品国产一区二区三区久久久蜜月 | 色噜噜夜夜夜综合网| 国产精品第一页第二页第三页| 盗摄精品av一区二区三区| 国产夜色精品一区二区av| 成人激情视频网站| 一区二区在线看| 欧美午夜片在线观看| 日韩国产一二三区| 欧美精品一区二区三区很污很色的 | 成人久久18免费网站麻豆 | 一区二区久久久久久| 欧美片在线播放| 激情综合亚洲精品| 国产精品理论片在线观看| 欧美色偷偷大香| 久久精品国产一区二区| 欧美激情一区二区三区在线| 91免费看视频| 男男成人高潮片免费网站| 国产亚洲一二三区| 色狠狠一区二区三区香蕉| 日本少妇一区二区| 久久精品在这里| 欧美在线视频全部完| 狠狠v欧美v日韩v亚洲ⅴ| 亚洲欧洲韩国日本视频| 日韩一二三区视频| 99久久精品一区| 久久99国产精品久久99| 国产精品电影一区二区| 精品国产青草久久久久福利| 97久久超碰国产精品| 久久99国产精品免费网站| 国产精品福利在线播放| 制服丝袜亚洲精品中文字幕| 成人黄色大片在线观看| 美腿丝袜亚洲三区| 亚洲综合激情另类小说区| 国产日产欧美一区二区三区| 欧美中文字幕一区| 成人avav影音| 国产美女在线精品| 日日摸夜夜添夜夜添亚洲女人| 久久久国产综合精品女国产盗摄| 欧美日韩另类一区| 91蝌蚪porny成人天涯| 韩国理伦片一区二区三区在线播放| 一区二区三区四区国产精品| 国产日韩精品一区二区浪潮av | 精品久久人人做人人爰| 欧美天天综合网| 91同城在线观看| 国产剧情一区在线| 免费在线一区观看| 日韩国产精品久久久| 亚洲欧美国产三级| 中文乱码免费一区二区| 精品美女在线观看| 91精品在线观看入口| 日本高清不卡在线观看| 北条麻妃一区二区三区| 国产精品一区二区三区乱码 | 一个色妞综合视频在线观看| 国产蜜臀av在线一区二区三区| 日韩久久久久久| 91精品一区二区三区久久久久久| 欧美三级日韩三级国产三级| 在线视频你懂得一区| 91原创在线视频| 成人av网站免费| 成人精品免费看| 不卡一区二区三区四区| 成人av网站在线观看免费| 成人免费视频免费观看| 成人福利电影精品一区二区在线观看| 国产乱码精品一区二区三| 国产一区二区免费看| 国产福利视频一区二区三区| 国产成人a级片| 成人性生交大片| 91蜜桃网址入口| 91久久免费观看| 91久久精品一区二区| 欧美视频在线一区二区三区| 欧美三日本三级三级在线播放| 在线精品视频免费播放| 欧美猛男gaygay网站| 欧美一区二区黄| 精品国产凹凸成av人导航| 国产喷白浆一区二区三区| 中文字幕不卡在线| **欧美大码日韩| 一区二区三区不卡视频 | 亚洲精品乱码久久久久久| 一区二区免费看| 免费成人美女在线观看.| 精品中文字幕一区二区| 国产成人精品aa毛片| 99riav一区二区三区| 欧美日韩精品欧美日韩精品一综合| 欧美嫩在线观看| 久久青草欧美一区二区三区| 国产精品美女www爽爽爽| 亚洲黄色性网站| 免费看精品久久片| 福利电影一区二区| 欧美性大战久久久| 精品粉嫩aⅴ一区二区三区四区| 国产免费观看久久| 午夜精品视频一区| 国产精品1024| 欧美三级乱人伦电影| 久久影院电视剧免费观看| 《视频一区视频二区| 秋霞午夜av一区二区三区| 国产精品一级在线| 在线视频一区二区三| 久久综合网色—综合色88| 亚洲精品视频在线看| 毛片基地黄久久久久久天堂| 国产成人99久久亚洲综合精品| 欧美视频中文字幕| 亚洲国产精品av| 日韩电影在线免费看| 成人激情小说网站| 日韩欧美资源站| 亚洲精品老司机| 国产一区二区三区久久久| 欧美三级一区二区| 国产精品理伦片| 国内精品免费**视频| 在线观看视频欧美| 国产精品女主播在线观看| 日韩成人伦理电影在线观看| 99热这里都是精品| 国产片一区二区| 麻豆精品视频在线观看视频| 色综合 综合色| 欧美国产精品一区二区三区| 奇米色一区二区| 91国模大尺度私拍在线视频| 国产午夜亚洲精品理论片色戒| 日日夜夜精品免费视频| 91国产精品成人| 亚洲色图色小说| 东方欧美亚洲色图在线| 精品国产免费久久| 日韩成人午夜电影| 欧美日韩中文另类| 亚洲欧美一区二区三区久本道91 | 国产成人av一区二区| 日韩欧美卡一卡二| 奇米亚洲午夜久久精品| 欧美猛男gaygay网站| 亚洲一区二区三区四区在线观看| 成人久久18免费网站麻豆| 国产色产综合色产在线视频| 国产一区二区调教| 欧美xingq一区二区| 免费在线观看日韩欧美| 91精品国产综合久久香蕉麻豆 | 理论片日本一区| 欧美一区二区在线不卡| 日韩精品一二三四| 欧美精品久久99久久在免费线| 亚洲国产日韩一区二区| 欧美亚洲日本一区| 亚洲成av人片www| 欧美浪妇xxxx高跟鞋交| 婷婷久久综合九色国产成人| 宅男噜噜噜66一区二区66| 舔着乳尖日韩一区| 日韩欧美不卡在线观看视频| 韩国v欧美v日本v亚洲v| 久久影院午夜片一区| 国产 欧美在线| 中文字幕欧美一区| 91成人在线观看喷潮| 午夜国产精品一区| 欧美一区二区三区在线观看 | 成人精品免费网站| 亚洲欧洲日韩av| 欧美日韩激情在线| 日本成人在线电影网| 久久综合色综合88| proumb性欧美在线观看| 亚洲精品精品亚洲| 欧美精品1区2区3区| 九九精品视频在线看| 中文字幕精品三区| 欧美亚洲一区二区在线观看| 免播放器亚洲一区| 中文字幕 久热精品 视频在线 | 九九九精品视频| 中文字幕一区av| 欧美精品在线观看一区二区| 激情综合色综合久久综合| 国产精品青草综合久久久久99|