游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3052|回复: 6

??,16?????????????????,????

[复制链接]

11

主题

16

帖子

22

积分

注册会员

Rank: 2

积分
22
发表于 2010-4-24 17:46:00 | 显示全部楼层 |阅读模式
HANDLE hFile;
        hFile = CreateFile(file,GENERIC_READ,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
        DWORD dwReads;

        BITMAPINFO info;
        BITMAPFILEHEADER bmfh;
        ReadFile(hFile,&bmfh,sizeof(BITMAPFILEHEADER),&dwReads,NULL);
        if(bmfh.bfType != 0x4d42)
        {
                MessageBox(0,"??????","",0);
                return false;
        }
        ReadFile(hFile,&info.bmiHeader,sizeof(BITMAPINFOHEADER),&dwReads,NULL);
        if(info.bmiHeader.biBitCount != 16)
        {
                MessageBox(0,"!=16","",0);
                return false;
        }
        int m=2;
        int size = info.bmiHeader.biWidth*info.bmiHeader.biHeight*m;                     //????
        char *pbuf =new char[size];                                  //????
        SetFilePointer(hFile,0,NULL,bmfh.bfOffBits);                 //???????????????   
        ReadFile(hFile,pbuf,size,&dwReads,NULL);                     //???????pbuf;   
    CloseHandle(hFile);
        char *pch;
       
    info.bmiColors[0].rgbRed   = (BYTE)0xF800;               //????
        info.bmiColors[0].rgbBlue  = (BYTE)0x001F;               //????
        info.bmiColors[0].rgbGreen = (BYTE)0x07E0;               //????
        info.bmiColors[0].rgbReserved = 0;
        if(m_D3D9Device->CreateTexture(info.bmiHeader.biWidth,info.bmiHeader.biHeight,1,0,D3DFMT_R5G6B5,D3DPOOL_MANAGED,&m_D3D9Texture,0)==D3D_OK)
        {
                D3DLOCKED_RECT stLockedRect;

                m_D3D9Texture->LockRect(0,&stLockedRect,0,0);
                pch = (char*) stLockedRect.pBits;

                for( int i=info.bmiHeader.biHeight-1;i>=0;i--)
                {
                        for(int j=0;j<info.bmiHeader.biWidth;j++)
                        {
                                pch[0]=pbuf[i*info.bmiHeader.biWidth*m+j*m];   //& 0xf800;// 1 & 0xf800;      // & 0xf800
                                pch[1]=pbuf[i*info.bmiHeader.biWidth*m+j*m+1] ;// & 0x07e0;      // & 0x07e0
                                pch[2]=pbuf[i*info.bmiHeader.biWidth*m+j*m+2]; // & 0x001f; //& 0x001f;      //& 0x001f
                                pch+=2;
                        }
                }

                m_D3D9Texture->UnlockRect(0);


                delete pbuf;
        }

HRESULT result=D3DXCreateSprite(m_D3D9Device,&(m_D3D9Sprite));  //??????
?? m_D3D9Sprite ?????...

0

主题

398

帖子

577

积分

高级会员

Rank: 4

积分
577
发表于 2010-4-26 10:58:00 | 显示全部楼层

Re:??,16?????????????????,????

??,????????!! [em16]

1

主题

266

帖子

280

积分

中级会员

Rank: 3Rank: 3

积分
280
发表于 2010-4-27 01:41:00 | 显示全部楼层

Re:??,16?????????????????,????

????????????? ???????

??????????????????????????????bmp??????
?????????????????
?? ????D3DTexture?16??????????alpha???????????
??????alpha?32?texture????????????????alpha???0? ???????

0

主题

398

帖子

577

积分

高级会员

Rank: 4

积分
577
发表于 2010-4-27 18:17:00 | 显示全部楼层

Re: Re:??,16?????????????????,??

onemoo: Re:??,16?????????????????,??????

????????????? ???????

????????????????????????????...

??????....

1

主题

266

帖子

280

积分

中级会员

Rank: 3Rank: 3

积分
280
发表于 2010-4-28 00:37:00 | 显示全部楼层

Re: Re: Re:??,16?????????????????,?

artint: Re: Re:??,16?????????????????,??????


??????....


??  ??
????????????????API?

11

主题

1238

帖子

1782

积分

金牌会员

Rank: 6Rank: 6

积分
1782
发表于 2010-4-28 09:09:00 | 显示全部楼层

Re:??,16?????????????????,????

??????????.......

1

主题

266

帖子

280

积分

中级会员

Rank: 3Rank: 3

积分
280
发表于 2010-4-28 10:47:00 | 显示全部楼层

Re: Re:??,16?????????????????,??

????: Re:??,16?????????????????,??????

??????????.......

??  ??????
??????
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-6-9 19:35

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表