OSDN Git Service

#xxxxx DTXViewerのプロジェクトを追加。
[dtxmania/dtxmania.git] / DTXViewerプロジェクト / @FDK10プロジェクト / CSurfaceManager.h
1 #pragma once
2
3 #include "CSurface.h"
4
5 namespace FDK {
6         namespace Graphics {
7
8 class CSurfaceManager
9 {
10 public:
11         // \83L\83\83\83b\83V\83\85\82Ì\8eg\97p\83t\83\89\83O\82Ì\83\8a\83Z\83b\83g
12         void            ResetCache();
13
14         // \83L\83\83\83b\83V\83\85\82³\82ê\82½\83T\81[\83t\83F\83C\83X\82ð\95Ô\82·\81B
15         // \95Ô\82³\82ê\82½\83T\81[\83t\83F\83C\83X\82Í\81ARestoreDeviceObjects() \82Ü\82Å\8a®\97¹\82µ\82Ä\82¢\82é\8fó\91Ô\81B
16         CSurface*       GetCachedSurface( LPCTSTR name, LPCTSTR filename, DWORD width=0, DWORD height=0, LOADPLACE place=LOADTO_SYSTEM );
17
18         // \83L\83\83\83b\83V\83\85\93à\82Ì\96¢\8eg\97p\83T\81[\83t\83F\83C\83X\82Ì\8dí\8f\9c
19         void            RemoveUnusedSurfaces();
20
21         HRESULT OneTimeSceneInit();                                             // \93à\95\94\83\8a\83X\83g\82Ì\8f\89\8aú\89»
22         HRESULT InitDeviceObjects();                                    // \93à\95\94\83\8a\83X\83g\82Ì\8ae\83T\81[\83t\83F\83C\83X\82Ì\8f\89\8aú\89»
23         HRESULT RestoreDeviceObjects();                                 // \93à\95\94\83\8a\83X\83g\82Ì\8ae\83T\81[\83t\83F\83C\83X\82Ì\8d\\92z
24         HRESULT InvalidateDeviceObjects();                              // \93à\95\94\83\8a\83X\83g\82Ì\8ae\83T\81[\83t\83F\83C\83X\82Ì\96³\8cø\89»
25         HRESULT DeleteDeviceObjects();                                  // \93à\95\94\83\8a\83X\83g\82Ì\8ae\83T\81[\83t\83F\83C\83X\82Ì\94j\8aü
26         HRESULT FinalCleanup();                                                 // \93à\95\94\83\8a\83X\83g\82Ì\94j\8aü
27
28         CSurfaceManager();
29
30 protected:
31         struct SurfaceList {
32                 bool            bUse;                                                   // \8eg\97p\82·\82é\82È\82ç true
33                 TCHAR           strSurfaceName[ _MAX_PATH ];    // \83T\81[\83t\83F\83C\83X\96¼
34                 TCHAR           strFileName[ _MAX_PATH ];               // \83t\83@\83C\83\8b\96¼
35                 DWORD           width, height;                                  // \83T\83C\83Y
36                 LOADPLACE       place;                                                  // \90\90¬\8fê\8f\8a
37                 FILETIME        ftLastWriteTime;                                // \8dÅ\8fI\8dX\90V\8e\9e\8d\8f
38                 CSurface        surface;                                                // \83T\81[\83t\83F\83C\83X
39                 SurfaceList     *prev, *next;                                   // \91O\81^\8e\9f\82Ì\83Z\83\8b
40         } *pSurfaceList, *pSurfaceListLast;
41 };
42
43         }//Graphics
44 }//FDK
45
46 using namespace FDK::Graphics;