青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆 - 505  文章 - 1034  trackbacks - 0
<2009年9月>
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910


子曾經曰過:編程無他,唯手熟爾!

常用鏈接

留言簿(94)

隨筆分類(649)

隨筆檔案(505)

相冊

BCB

Crytek

  • crymod
  • Crytek's Offical Modding Portal

Game Industry

OGRE

other

Programmers

Qt

WOW Stuff

搜索

  •  

積分與排名

  • 積分 - 918549
  • 排名 - 14

最新隨筆

最新評論

閱讀排行榜

評論排行榜

位置Microsoft Platform SDK for Windows Server 2003 R2\Samples\Multimedia\DirectShow\Players\Texture3D9\
看名字就知道是把dshow解碼出來的數據渲染到紋理上,但是這目錄里面沒有.proj項目文件,只有Makefile,為了方便,我們根據Makefile自己創建項目文件


附加包含目錄: ..\..\BaseClasses;..\..\Common
鏈接 
         附加庫目錄:  ..\..\BaseClasses\XP32_DEBUG
         附加依賴項: d3dx9.lib d3d9.lib winmm.lib strmbasd.lib shell32.lib

這個strmbasd.lib不是安裝了platform sdk就有了,要我們自己生成,如何生成呢?

選這個(Debug)的,進Samples目錄,然后nmake,要比較長時間,出去遛個彎回來就好了

看到這樣的畫面應該就是生成好了。

特殊項目配置:
         使用多字節字符集              用unicode的話有函數鏈接的時候找不到【重劍注:因為鏈接的strmbasd.lib不是unicode的,看這個玩玩DirectShow--(4)Platform SDK生成Unicode版本的strmbasd.lib
         多線程調試(/MTd)              不用這個就一堆link2005的錯誤
截圖:

核心源碼:
        hr = g_pd3dDevice->CreateTexture(uintWidth, uintHeight, 1D3DUSAGE_DYNAMIC,
                                         D3DFMT_X8R8G8B8,D3DPOOL_DEFAULT,
                                         
&g_pTexture, NULL);


         Using Dynamic Textures

          更新texture數據的部分

HRESULT CTextureRenderer::DoRenderSample( IMediaSample * pSample )
{
    BYTE  
*pBmpBuffer, *pTxtBuffer; // Bitmap buffer, texture buffer
    LONG  lTxtPitch;                // Pitch of bitmap, texture

    BYTE  
* pbS = NULL;
    DWORD 
* pdwS = NULL;
    DWORD 
* pdwD = NULL;
    UINT row, col, dwordWidth;

    CheckPointer(pSample,E_POINTER);
    CheckPointer(g_pTexture,E_UNEXPECTED);

    
// Get the video bitmap buffer
    pSample->GetPointer( &pBmpBuffer );

    
// Lock the Texture
    D3DLOCKED_RECT d3dlr;
    
if( m_bUseDynamicTextures )
    {
        
if( FAILED(g_pTexture->LockRect(0&d3dlr, 0, D3DLOCK_DISCARD)))
            
return E_FAIL;
    }
    
else
    {
        
if (FAILED(g_pTexture->LockRect(0&d3dlr, 00)))
            
return E_FAIL;
    }
    
// Get the texture buffer & pitch
    pTxtBuffer = static_cast<byte *>(d3dlr.pBits);
    lTxtPitch 
=
 d3dlr.Pitch;


    
// Copy the bits

    
if (g_TextureFormat == D3DFMT_X8R8G8B8)
    {
        
// Instead of copying data bytewise, we use DWORD alignment here.
        
// We also unroll loop by copying 4 pixels at once.
        
//
        
// original BYTE array is [b0][g0][r0][b1][g1][r1][b2][g2][r2][b3][g3][r3]
        
//
        
// aligned DWORD array is     [b1 r0 g0 b0][g2 b2 r1 g1][r3 g3 b3 r2]
        
//
        
// We want to transform it to [ff r0 g0 b0][ff r1 g1 b1][ff r2 g2 b2][ff r3 b3 g3]
        
// below, bitwise operations do exactly this.

        dwordWidth 
= m_lVidWidth / 4// aligned width of the row, in DWORDS
                                      
// (pixel by 3 bytes over sizeof(DWORD))

        
for( row = 0; row< (UINT)m_lVidHeight; row++)
        {
            pdwS 
= ( DWORD*)pBmpBuffer;
            pdwD 
= ( DWORD*)pTxtBuffer;

            
for( col = 0; col < dwordWidth; col ++ )
            {
                pdwD[
0=  pdwS[0| 0xFF000000;
                pdwD[
1= ((pdwS[1]<<8)  | 0xFF000000| (pdwS[0]>>24);
                pdwD[
2= ((pdwS[2]<<16| 0xFF000000| (pdwS[1]>>16);
                pdwD[
3= 0xFF000000 | (pdwS[2]>>8);
                pdwD 
+=4;
                pdwS 
+=3;
            }

            
// we might have remaining (misaligned) bytes here
            pbS = (BYTE*) pdwS;
            
for( col = 0; col < (UINT)m_lVidWidth % 4; col++)
            {
                
*pdwD = 0xFF000000     |
                        (pbS[
2<< 16|
                        (pbS[
1<<  8|
                        (pbS[
0]);
                pdwD
++;
                pbS 
+= 3;
            }

            pBmpBuffer  
+= m_lVidPitch;
            pTxtBuffer 
+= lTxtPitch;
        }
// for rows
    }

    
if (g_TextureFormat == D3DFMT_A1R5G5B5)
    {
        
for(int y = 0; y < m_lVidHeight; y++ )
        {
            BYTE 
*pBmpBufferOld = pBmpBuffer;
            BYTE 
*pTxtBufferOld = pTxtBuffer;

            
for (int x = 0; x < m_lVidWidth; x++)
            {
                
*(WORD *)pTxtBuffer = (WORD)
                    (
0x8000 +
                    ((pBmpBuffer[
2& 0xF8<< 7+
                    ((pBmpBuffer[
1& 0xF8<< 2+
                    (pBmpBuffer[
0>> 3));

                pTxtBuffer 
+= 2;
                pBmpBuffer 
+= 3;
            }

            pBmpBuffer 
= pBmpBufferOld + m_lVidPitch;
            pTxtBuffer 
= pTxtBufferOld + lTxtPitch;
        }
    }

    
// Unlock the Texture
    if (FAILED(g_pTexture->UnlockRect(0)))
        
return E_FAIL;

    
return S_OK;
}


 2009-1-9 這個例子用到了platform sdk中的BaseClasses,用到引擎中的時候麻煩多多,我搞了幾天,愣是編譯不過!我日!考慮放棄dshow,用xvid

在游戲中播放過場電影

posted on 2008-12-23 00:23 七星重劍 閱讀(1873) 評論(0)  編輯 收藏 引用 所屬分類: Game GraphicsIDE -- visual c++
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲精品综合精品自拍| 亚洲激情影院| av成人免费在线观看| 久久国产乱子精品免费女| 99国产精品久久| 欧美大尺度在线观看| 一区精品在线| 免费欧美在线视频| 久久精品一区蜜桃臀影院| 国产精品一区毛片| 亚洲欧美色婷婷| 在线视频欧美日韩| 国产精品麻豆va在线播放| 亚洲午夜av在线| 一区二区三区蜜桃网| 国产精品毛片a∨一区二区三区|国 | 国产精品视频| 亚洲欧美日韩国产中文在线| 99视频精品在线| 国产精品久久国产精麻豆99网站| 亚洲尤物在线| 欧美亚洲三区| 樱桃国产成人精品视频| 猫咪成人在线观看| 欧美 日韩 国产 一区| 亚洲麻豆视频| 亚洲少妇一区| 狠狠色综合日日| 亚洲国产高清自拍| 欧美日韩综合另类| 久久国产88| 欧美成人亚洲成人日韩成人| 亚洲性xxxx| 欧美一区二区三区精品电影| 亚洲国产成人高清精品| 亚洲精品综合久久中文字幕| 国产伦精品一区二区三区免费| 久久久久久亚洲精品杨幂换脸| 欧美承认网站| 欧美一区中文字幕| 久久婷婷国产综合尤物精品 | 亚洲一区中文字幕在线观看| 亚洲一区精品在线| 精品成人国产| 一本色道久久88综合日韩精品| 国产欧美日韩视频一区二区| 欧美成人激情在线| 国产精品久久一区二区三区| 美女图片一区二区| 欧美色精品在线视频| 久久综合久久久久88| 欧美人与性禽动交情品| 久久久久欧美精品| 欧美系列亚洲系列| 欧美激情第六页| 国产欧美日韩精品一区| 亚洲理论在线| 91久久久久久| 久久国产视频网| 亚洲午夜视频| 欧美大片免费观看在线观看网站推荐 | 亚洲免费电影在线观看| 性刺激综合网| 亚洲综合欧美日韩| 欧美激情91| 欧美成人免费在线| 国外成人性视频| 亚洲永久精品国产| 在线视频日本亚洲性| 美女任你摸久久| 久久精品亚洲精品| 国产精品永久| 亚洲一区欧美二区| 亚洲网友自拍| 欧美日韩综合精品| 日韩小视频在线观看| 亚洲美女毛片| 欧美国产综合视频| 欧美电影在线播放| 影音先锋国产精品| 久久久久9999亚洲精品| 久久精品成人一区二区三区| 国产精品午夜春色av| 在线亚洲欧美| 亚洲一本大道在线| 欧美午夜无遮挡| 中文在线资源观看视频网站免费不卡| 日韩图片一区| 欧美日韩国产在线看| 亚洲欧洲精品成人久久奇米网 | 亚洲综合欧美日韩| 欧美三级电影网| av成人福利| 亚洲一区二区三区中文字幕| 欧美日韩一级视频| 一区二区三区欧美日韩| 亚洲欧美国产毛片在线| 国产精品啊啊啊| 在线视频欧美日韩| 国产人成精品一区二区三| 久久精彩免费视频| 亚洲人成网站色ww在线| 欧美 日韩 国产一区二区在线视频 | 久久午夜精品一区二区| 欧美成人精品在线| 亚洲乱码国产乱码精品精天堂| 免费久久99精品国产自在现线 | 国产精品热久久久久夜色精品三区| 中日韩视频在线观看| 亚洲欧美成aⅴ人在线观看| 国产伦精品一区二区三| 欧美在线国产精品| 欧美国产日韩视频| 一区二区三区日韩精品| 国产精品日韩在线| 久久精品国产在热久久| 亚洲国产精品999| 亚洲一区二区在线播放| 国产亚洲欧美aaaa| 欧美黄免费看| 亚洲图片自拍偷拍| 欧美丰满少妇xxxbbb| 中文国产一区| 国产一区二区欧美日韩| 欧美freesex交免费视频| 国产精品99久久久久久有的能看| 久久精品最新地址| 9i看片成人免费高清| 国产日韩欧美电影在线观看| 欧美成人官网二区| 欧美一区视频在线| 亚洲精品久久久久久一区二区| 久久激五月天综合精品| 亚洲人线精品午夜| 国产精品综合av一区二区国产馆| 老司机免费视频一区二区| 在线视频精品| 亚洲丰满少妇videoshd| 久久久久久一区二区| 亚洲天堂久久| 亚洲人精品午夜| 韩国精品久久久999| 国产精品久久久久久久久果冻传媒| 麻豆91精品91久久久的内涵| 亚洲欧美综合精品久久成人| 亚洲精品一区在线| 亚洲大胆av| 免费看的黄色欧美网站| 欧美在线3区| 亚洲视频图片小说| 亚洲欧洲一区二区三区| 国内精品久久久久影院薰衣草| 国产精品videosex极品| 欧美丰满高潮xxxx喷水动漫| 久久国产精品久久久久久久久久| 一区二区日韩| 亚洲美女在线一区| 亚洲精品123区| 亚洲第一视频| 欧美国产一区二区| 免费观看亚洲视频大全| 久久理论片午夜琪琪电影网| 欧美在线视频一区二区| 午夜影院日韩| 午夜一区二区三区在线观看| 一本色道精品久久一区二区三区| 亚洲电影在线| 国产精品白丝av嫩草影院| 欧美一区三区三区高中清蜜桃| 亚洲乱码国产乱码精品精98午夜 | 亚洲国产日韩欧美| 在线成人免费视频| 伊人夜夜躁av伊人久久| 狠狠狠色丁香婷婷综合久久五月| 国产欧美精品一区aⅴ影院| 国产精品白丝黑袜喷水久久久| 欧美午夜不卡| 国产精品美女999| 国产精品欧美一区二区三区奶水| 国产精品sss| 国产日本欧美一区二区三区| 国产欧美二区| 国内外成人在线| 娇妻被交换粗又大又硬视频欧美| 精品av久久久久电影| 亚洲激情不卡| 99国产精品国产精品久久| 亚洲视频香蕉人妖| 午夜久久久久久久久久一区二区| 亚洲综合精品一区二区| 欧美中文字幕久久| 久久夜色精品国产亚洲aⅴ| 欧美v亚洲v综合ⅴ国产v| 欧美激情一区二区三区全黄| 亚洲人成在线播放网站岛国| 亚洲色在线视频| 久久久国产精品一区| 欧美精品v国产精品v日韩精品 | 午夜欧美不卡精品aaaaa| 久久久www|