home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Game Programming for Teens / VBGPFT.cdr / DirectX8 / dx8a_sdk.exe / samples / multimedia / direct3d / dxtex / dxtexdoc.h < prev    next >
Encoding:
C/C++ Source or Header  |  2000-09-22  |  4.1 KB  |  107 lines

  1. // dxtexDoc.h : interface of the CDxtexDoc class
  2. //
  3. /////////////////////////////////////////////////////////////////////////////
  4.  
  5. #if !defined(AFX_DXTXDOC_H__712C53CF_D63B_11D1_A8B5_00C04FC2DC22__INCLUDED_)
  6. #define AFX_DXtxDOC_H__712C53CF_D63B_11D1_A8B5_00C04FC2DC22__INCLUDED_
  7.  
  8. #if _MSC_VER > 1000
  9. #pragma once
  10. #endif // _MSC_VER > 1000
  11.  
  12.  
  13. class CDxtexDoc : public CDocument
  14. {
  15. protected: // create from serialization only
  16.     CDxtexDoc();
  17.     DECLARE_DYNCREATE(CDxtexDoc)
  18.  
  19. public:
  20. // Overrides
  21.     // ClassWizard generated virtual function overrides
  22.     //{{AFX_VIRTUAL(CDxtexDoc)
  23.     public:
  24.     virtual BOOL OnNewDocument();
  25.     virtual void Serialize(CArchive& ar);
  26.     virtual void SetPathName(LPCTSTR lpszPathName, BOOL bAddToMRU = TRUE);
  27.     //}}AFX_VIRTUAL
  28.  
  29. // Implementation
  30. public:
  31.     HRESULT LoadAlphaBmp(CString& strPath);
  32.     VOID GenerateMipMaps(VOID);
  33.     HRESULT Compress(D3DFORMAT fmt, BOOL bSwitchView);
  34.     DWORD NumMips(VOID);
  35.     LPDIRECT3DBASETEXTURE8 PtexOrig(VOID) { return m_ptexOrig; }
  36.     LPDIRECT3DBASETEXTURE8 PtexNew(VOID) { return m_ptexNew; }
  37.     DWORD DwWidth(VOID) { return m_dwWidth; }
  38.     DWORD DwHeight(VOID) { return m_dwHeight; }
  39.     DWORD DwDepth(VOID) { return m_dwDepth; }
  40.     DWORD DwDepthAt(LONG lwMip);
  41.     BOOL TitleModsChanged(VOID) { return m_bTitleModsChanged; }
  42.     VOID ClearTitleModsChanged(VOID) { m_bTitleModsChanged = FALSE; }
  43.     virtual ~CDxtexDoc();
  44.     void OpenSubsurface(D3DCUBEMAP_FACES FaceType, LONG lwMip, LONG lwSlice);
  45.     void OpenAlphaSubsurface(D3DCUBEMAP_FACES FaceType, LONG lwMip, LONG lwSlice);
  46.     void OpenCubeFace(D3DCUBEMAP_FACES FaceType);
  47.     void OpenAlphaCubeFace(D3DCUBEMAP_FACES FaceType);
  48.     BOOL IsCubeMap(VOID) { return (m_dwCubeMapFlags > 0); }
  49.     BOOL IsVolumeMap(VOID) { return (m_dwDepth > 0); }
  50. #ifdef _DEBUG
  51.     virtual void AssertValid() const;
  52.     virtual void Dump(CDumpContext& dc) const;
  53. #endif
  54.  
  55. // Generated message map functions
  56. protected:
  57.     //{{AFX_MSG(CDxtexDoc)
  58.     afx_msg void OnFileOpenAlpha();
  59.     afx_msg void OnGenerateMipMaps();
  60.     afx_msg void OnFormatDxt1();
  61.     afx_msg void OnFormatDxt2();
  62.     afx_msg void OnFormatDxt3();
  63.     afx_msg void OnFormatDxt4();
  64.     afx_msg void OnFormatDxt5();
  65.     afx_msg void OnFormatChangeCubeMapFaces();
  66.     afx_msg void OnUpdateFileOpenAlpha(CCmdUI* pCmdUI);
  67.     afx_msg void OnUpdateFormatGenerateMipmaps(CCmdUI* pCmdUI);
  68.     afx_msg void OnUpdateFormatChangeCubeMapFaces(CCmdUI* pCmdUI);
  69.     afx_msg void OnFormatMakeIntoVolumeMap();
  70.     afx_msg void OnUpdateFormatMakeIntoVolumeMap(CCmdUI* pCmdUI);
  71.     afx_msg void OnFormatChangeSurfaceFmt();
  72.     //}}AFX_MSG
  73.     DECLARE_MESSAGE_MAP()
  74.  
  75. private:
  76.     LPDIRECT3DBASETEXTURE8 m_ptexOrig;
  77.     LPDIRECT3DBASETEXTURE8 m_ptexNew;
  78.     DWORD m_dwWidth;
  79.     DWORD m_dwHeight;
  80.     DWORD m_dwDepth; // For volume textures
  81.     DWORD m_numMips;
  82.     DWORD m_dwCubeMapFlags;
  83.     BOOL m_bTitleModsChanged;
  84.  
  85.     HRESULT LoadBmp(CString& strPath);
  86.     CDxtexApp* PDxtexApp(VOID) { return (CDxtexApp*)AfxGetApp(); }
  87.     HRESULT LoadAlphaIntoSurface(CString& strPath, LPDIRECT3DSURFACE8 psurf);
  88.     HRESULT LoadVolumeSliceFromSurface(LPDIRECT3DVOLUME8 pVolume, UINT iSlice, LPDIRECT3DSURFACE8 pSurf);
  89.     HRESULT LoadSurfaceFromVolumeSlice(LPDIRECT3DVOLUME8 pVolume, UINT iSlice, LPDIRECT3DSURFACE8 psurf);
  90.     HRESULT BltAllLevels(D3DCUBEMAP_FACES FaceType, LPDIRECT3DBASETEXTURE8 ptexSrc, 
  91.         LPDIRECT3DBASETEXTURE8 ptexDest);
  92.     BOOL PromptForBmp(CString* pstrPath);
  93.     HRESULT SaveDDS(LPDIRECT3DBASETEXTURE8 ptex, CArchive& ar);
  94.     HRESULT SaveAllMipSurfaces(LPDIRECT3DBASETEXTURE8 ptex, D3DCUBEMAP_FACES FaceType, CArchive& ar);
  95.     HRESULT SaveAllVolumeSurfaces(LPDIRECT3DVOLUMETEXTURE8 pvoltex, CArchive& ar);
  96.     HRESULT LoadDDS(LPDIRECT3DBASETEXTURE8* pptex, CArchive& ar);
  97.     HRESULT LoadAllMipSurfaces(LPDIRECT3DBASETEXTURE8 ptex, D3DCUBEMAP_FACES FaceType, CArchive& ar);
  98.     HRESULT LoadAllVolumeSurfaces(LPDIRECT3DVOLUMETEXTURE8 pvoltex, CArchive& ar);
  99. };
  100.  
  101. /////////////////////////////////////////////////////////////////////////////
  102.  
  103. //{{AFX_INSERT_LOCATION}}
  104. // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
  105.  
  106. #endif // !defined(AFX_DXTXDOC_H__712C53CF_D63B_11D1_A8B5_00C04FC2DC22__INCLUDED_)
  107.