欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      實習總結報告

      時間:2019-05-12 15:54:49下載本文作者:會員上傳
      簡介:寫寫幫文庫小編為你整理了多篇相關的《實習總結報告》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《實習總結報告》。

      第一篇:實習總結報告

      生 產習報

      實 告

      實習日程安排

      我從2004.8到2004.11在這家公司公司進行實習。

      1.剛開始的幾個星期,公司經(jīng)理安排我學習一些有關游戲方面的技術,幫我快速的對游戲行業(yè)入門。

      2.接下來的時間,經(jīng)理安排我進行一些實戰(zhàn)開發(fā),難度從簡單到難。所進行開發(fā)的項目我會在實習收獲和體會這段中具體闡述。

      實習收獲和體會

      我在公司主要開發(fā)了一個圖形轉換器,制作一個InstallShiled安裝程序和關于3D處理的MMX技術,下面我將介紹我的工作情況和工作收獲。

      一.圖形轉換器:

      1.設計文檔

      此軟件能將TGA,BMP等圖形格式轉換為任意制定的格式

      功能細化:

      1. 能顯示指定的圖片(TGA,RGBA等格式)

      2. 能顯示指定圖片的參數(shù)(長度,寬度,圖片的格式)

      3. 進行轉換的時候能檢查該圖片長,寬是否為2的冪次,如果不是則發(fā)出通知信息

      4. 具有批處理功能,給定一個文件目錄,能將該目錄下的所有圖片轉換為DDS格式

      5. 轉換為DDS時候可以指定MipMap值

      一:功能描述:

      二:模塊劃分: UI界面 + 轉換模塊

      轉換模塊:以DLL的形式,針對不同的平臺各寫一個

      其接口為:bool ChangeTo(const char* SrcName, const char* DestName,TYPE type)enum TYPE { BMP = 1, JPEG = 2, DDS = 3 };

      const char* SrcName, const char* DestName 應該換成一個結構體 SrcName:指定的圖片名字 DestName: 轉換的圖片名字

      UI界面:采取多文檔視圖結構 三:重要結構 struct DDS_PIXELFORMAT {

      DWORD dwSize;

      DWORD dwFlags;

      DWORD dwFourCC;

      DWORD dwRGBBitCount;

      DWORD dwRBitMask;

      DWORD dwGBitMask;

      DWORD dwBBitMask;

      DWORD dwABitMask;};

      struct DDS_HEADER {

      DWORD dwSize;

      DWORD dwHeaderFlags;

      DWORD dwHeight;

      DWORD dwWidth;

      DWORD dwPitchOrLinearSize;

      DWORD dwDepth;

      DWORD dwMipMapCount;

      DWORD dwReserved1[11];

      DDS_PIXELFORMAT ddspf;

      DWORD dwSurfaceFlags;

      DWORD dwCubemapFlags;

      DWORD dwReserved2[3];};

      四:開發(fā)平臺 VC6.0+DX9.0

      2.接口文檔

      接口說明

      一 接口代碼:

      class IImageChange { public: virtual bool ChangeTo(ImageInfo* pImageInfo)= 0;virtual char* GetDllName()= 0;virtual void SetDirectory(const char* szDirName)= 0;};

      上面是一個接口類,這里模仿COM的方法,設計一個抽象類。任何Image Change DLL 必須繼承以上接口類。Example: class CImageChangeToDDS: public IImageChange { public: CImagaChangeToDDS();~CImageChangeToDDS();virtual bool ChangeTo(ImageInfo* pImageInfo);virtual char* GetDllName();virtual void SetDirectory(const char* szDirName);};

      二 接口類成員函數(shù)說明:

      virtual bool ChangeTo(ImageInfo* pImageInfo)= 0;該接口函數(shù)傳入一個ImageInfo結構的指針(ImageInfo是中間圖象數(shù)據(jù)類型,詳見《中間數(shù)據(jù)結構文檔》)。用戶可以在自己類中override該函數(shù),該函數(shù)可以按自己意愿任意轉換為自己想要的格式。

      virtual char* GetDllName()= 0;該接口函數(shù)返回一個代表該該接口的字串,可以說明該接口類的功能和版本。

      virtual void SetDirectory(const char* szDirName)= 0;該接口函數(shù)設置批處理轉換功能時的目的文件夾。

      三 DLL說明:

      DLL一共導出2個函數(shù): extern “C” { IImageChange* CreateInstance();}

      extern “C” { void ReleaseInstance(IImageChange* pObj);} IImageChange* CreateInstance()產生一個派生自IimageChange的實例,該實例導入到應用程序進程中。

      void ReleaseInstance(IImageChange* pObj);釋放從CreateInstance()產生的實例資源。

      三 接口實現(xiàn)

      #define FILENAMELEN 128 #define PALNUM 256

      typedef unsigned char IMG_BYTE;typedef unsigned short IMG_WORD;typedef unsigned long IMG_DWORD;typedef long IMG_LONG;typedef bool IMG_BOOL;typedef DWORD IMG_ARGB;typedef void* IMG_LPVOID;

      enum IMAGE_DATA_TYPE { //depth 32bit

      IDT_A8R8G8B8 = 1,IDT_X8B8G8R8 = 2,//depth 24bit

      IDT_R8G8B8 = 3,//depth 16bit

      IDT_R5G6B5 = 4,IDT_X1R5G5B5 = 5,IDT_A4R4G4B4 = 6,IDT_X4R4G4B4 = 7,//depth 8bit

      IDT_A1R2G3B2 = 8,IDT_R3G3B2 = 9,IDT_INDEX8 = 10,//depth 4bit

      IDT_A1R1G1B1 = 11,IDT_X1R1G1B1

      = 12,IDT_INDEX4 = 13,//depth 1bit

      IDT_C1 = 14, // monochrome 0:BLACK 1:WHITE

      IDT_INDEX1

      = 15,IDT_UNKNOWN =-1, };

      struct ImageHeader { IMG_DWORD dwSize;IMG_LONG lWidth;IMG_LONG lHeight;

      IMG_BYTE bDepth;//象素的深度

      IMG_BYTE bReserve1[3];

      IMAGE_DATA_TYPE IDT_TYPE;

      IMG_WORD wPlanes;//Must Be Zero IMG_WORD wReserve2;

      IMG_DWORD dwReserve;//保留字,可以填充任意數(shù)據(jù),如:指向用戶分配的一段內存

      IMG_DWORD dwPalClrNum;//調色板的顏色數(shù),如果為-1,則不存在調色板;若為1,4,8,16

      //代表調色板的顏色總數(shù)

      IMG_ARGB PalColors[PALNUM];//調色板的數(shù)據(jù),dwPalClrNum如果為-1,則該數(shù)據(jù)無效 };

      struct ImageInfo { DWORD dwSize;LONG lOffset;//該結構與數(shù)據(jù)的偏移,以BYTE為單位

      ImageHeader iiInfo;LPVOID* pData;};

      轉換模塊:以DLL的形式,針對不同的平臺各寫一個

      其接口為:bool ChangeImage(ImageHeader * pImageHeader)

      3.中間數(shù)據(jù)格式說明

      一 中間數(shù)據(jù)格式:

      struct ImageInfo { DWORD dwSize;// ImageInfo結構大小

      LONG lOffset;//該結構與數(shù)據(jù)的偏移,以BYTE為單位

      TCHAR FileName[FILENAMELEN];//源圖形文件名

      ImageHeader header;//圖形中間數(shù)據(jù)的頭信息

      LONG lDataSize;//圖形的數(shù)據(jù)區(qū)大小

      LPVOID pData;//圖形的數(shù)據(jù)區(qū)指針 };

      struct ImageHeader { DWORD dwSize;// ImageHeader結構大小

      LONG lWidth;//位圖的寬度, 單位:pixel LONG lHeight;//位圖的高度, 單位:pixel

      WORD wDepth;//象素的深度,代表一個象素占多少位

      WORD wReserve1;//Must Be Zero

      IMAGE_DATA_TYPE IDT_TYPE;//位圖數(shù)據(jù)存儲類型

      WORD wPlanes;//Must Be Zero WORD wReserve2;//Must Be Zero

      DWORD dwReserve;//保留字,可以填充任意數(shù)據(jù),如:指向用戶分配的一段內存

      DWORD dwPalClrNum;//調色板的顏色數(shù),如果為0,則不存在調色板;若為1,4,// 代表調色板的顏色總數(shù)

      ARGB PalColors[PALNUM];//調色板的數(shù)據(jù)dwPalClrNum如果為0,則該數(shù)據(jù)無效

      };enum IMAGE_DATA_TYPE {

      //depth 32bit

      IDT_A8R8G8B8 = 1,IDT_X8B8G8R8 = 2,//depth 24bit

      IDT_R8G8B8 = 3,//depth 16bit

      IDT_R5G6B5 = 4,IDT_X1R5G5B5 = 5,IDT_A1R5G5B5 = 6,IDT_A4R4G4B4 = 7,IDT_X4R4G4B4 = 8,//depth 8bit

      IDT_R3G3B2 = 9,IDT_INDEX8 = 10,//depth 4bit

      //IDT_A1R1G1B1 = 11,//IDT_X1R1G1B1 = 12,IDT_INDEX4 = 13,//depth 1bit

      IDT_INDEX1 = 14,IDT_UNKNOWN =-1, };

      二.使用InstallShield制作安裝程序

      修改InstallShield對話框的過程:

      一:改變InstallShield自帶的對話框的方法

      1.首先用VC.NET打開_isres.dll資源DLL,該DLL是InstallShield自帶的DLL,里面存放了InstallShield中所有自帶對話框模板。

      2.在VC.NET中修改對話框(對話框ID可以通過Dialog Sampler工具得到)

      3.保存修改。

      注意:修改InstallShield自帶的對話框只能修改一些文本,和一些控件的相對位置,不能修改控件的ID和增加一些控件,不然會導致控件消息映射不正確。

      二:自制可以在InstallShield對話框:

      1.首先用VS.NET打開ExamplesCustom DialogVC++ 4 Project_isuser.rc,這是一個模板資源,可供用戶任意編輯.2.生成自己的對話框,保存DLL.3.寫對話框處理函數(shù)(跟windows下的對話框處理函數(shù)類似)

      注意: 一定要保存所有的控件ID-Value

      InstallShield總結文檔:

      1.制作自己的對話框作為自己的主界面(修改-isuser.dll,路徑為:C:Program FilesInstallShieldProfessionalStandard Edition

      RedistributableCompressed Files