Добавил:
Studfiles2
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Тихомиров Ю. Программирование трёхмерной графики / Files / Texture / TextureDoc
.cpp// TextureDoc.cpp : implementation of the CTextureDoc class
//
#include "stdafx.h"
#include "Texture.h"
#include "TextureView.h"
#include "TextureDoc.h"
#define MAXPALCOLORS 256
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CTextureDoc
IMPLEMENT_DYNCREATE(CTextureDoc, CDocument)
BEGIN_MESSAGE_MAP(CTextureDoc, CDocument)
//{{AFX_MSG_MAP(CTextureDoc)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CTextureDoc construction/destruction
CTextureDoc::CTextureDoc()
{
}
CTextureDoc::~CTextureDoc()
{
}
BOOL CTextureDoc::OnNewDocument()
{
if (!CDocument::OnNewDocument())
return FALSE;
return TRUE;
}
/////////////////////////////////////////////////////////////////////////////
// CTextureDoc serialization
void CTextureDoc::Serialize(CArchive& ar)
{
/* CFile *pFile;
WORD nNumColors;
DWORD dwLen, dwDWMasks;
HANDLE hbi;
BITMAPFILEHEADER bfh;
BITMAPINFOHEADER bih;
BITMAPCOREHEADER bch;
LPRGBQUAD lprgbq;
LPBITMAPINFOHEADER lpbih;
if (ar.IsStoring())
{
}
else
{
pFile = ar.GetFile();
dwLen = pFile->GetLength();
pFile->Seek(0L, (UINT)SEEK_CUR);
pFile->Read(&bfh, sizeof(BITMAPFILEHEADER));
if(bfh.bfType != 0x4D42)
return;
pFile->Read(&bih, sizeof(BITMAPFILEHEADER));
if(INT)bih.biSize) != sizeof (BITMAPINFOHEADER))
// Здесь можно вставить дополнительные проверки
// на формат файлов Presentation Manager
return;
}
*/ /* Fill in some default values if they are zero */
/* if(bih.biSizeImage == 0){
bih.biSizeImage =
((((DWORD)bih.biWidth * bih.biBitCount) * bih.biHeight) +
31) >> 5) << 2;
}
if(bih.biClrUsed == 0)
if(bih->biBitCount > 8)
bih.biClrUsed = 0;
else
bih.biClrUsed = (1 << lpbch->bcBitCount);
// Выделяем память для структуры BITMAPINFO и
// таблицы цветов
if((bih.biBitCount == 16) || (bih.biBitCount == 32))
dwDWMasks = sizeof(DWORD) * 3;
hbi = GlobalAlloc(GPTR,
(LONG)bih.biSize + bih.biClrUsed * sizeof(RGBQUAD) + dwDWMasks);
if(!hbi)
return;
lpbih = (LPBITMAPINFOHEADER)hbi;
*lpbih = bih;
*/
/* Get a pointer to the color table */
/* lprgbq = (LPRGBQUAD)((LPSTR)lpbih + bih.biSize);
if(bih.biClrUsed){
pFile->Read((LPSTR)lprgbq,
(UINT)bih.biClrUsed * sizeof(RGBQUAD));
}
else
if(dwDWMasks)
pFile->Read((LPSTR)lprgbq, dwDWMasks);
if(bfh.bfOffBits != 0L){
pFile->Seek(bf.bfOffBits, (UINT)SEEK_CUR);
}
//pFile->Read(&bfh.bfType, sizeof(WORD));
//pFile->Read(&bfh.bfSize, sizeof(DWORD)*3);
}
*/
}
/////////////////////////////////////////////////////////////////////////////
// CTextureDoc diagnostics
#ifdef _DEBUG
void CTextureDoc::AssertValid() const
{
CDocument::AssertValid();
}
void CTextureDoc::Dump(CDumpContext& dc) const
{
CDocument::Dump(dc);
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CTextureDoc commands
BOOL CTextureDoc::OnOpenDocument(LPCTSTR lpszPathName)
{
if (!CDocument::OnOpenDocument(lpszPathName))
return FALSE;
return TRUE;
}
Соседние файлы в папке Texture