Go to the
documentation of this file.
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 namespace mudbox {
00015
00018 class MBDLL_DECL FileEventNotifier : public Node
00019 {
00020 DECLARE_CLASS;
00021
00022 enum Type
00023 {
00026 typeBrowseForRead,
00029 typeBrowseForWrite,
00032 typePreRead,
00034 typePostRead,
00037 typePreWrite,
00039 typePostWrite
00040 } m_eType;
00043 QString m_sFileName;
00044 };
00045
00046
00053 class MBDLL_DECL TextureUnprojector : public Node
00054 {
00055 DECLARE_CLASS;
00056
00057 public:
00061 virtual Texture* DoUnproject(int xSize, int ySize, bool want16BitFP = false);
00062 };
00063
00064
00065
00066 class Operation;
00067 class XRef;
00068
00072 class MBDLL_DECL Kernel : public Node
00073 {
00074 Q_DECLARE_TR_FUNCTIONS(mudbox::Kernel);
00075 DECLARE_CLASS;
00076 class XRef* m_pXRef;
00077 public:
00078
00080 Kernel( void );
00081
00088 void Log(const QString &sMessage);
00089
00091 void LogMemoryStatus(
00092 bool bCompact = true
00093 );
00094
00099 void LogMemoryBlocks(
00100 float fSizeLimit = 0.01
00101 );
00102
00106 bool CreateNewScene();
00107
00108
00109
00140 void RecordCommand( const QString &sCommand );
00141
00143 astring NextCommand;
00144
00146 class Scene *CreateDefaultScene( void );
00147
00148
00158 const ClassDesc *PreferredDescendant(
00159 const ClassDesc *pClass
00160 ) const;
00161
00166 Node *CreateClassInstance( const ClassDesc *pClass ) const;
00167
00173 Image *LoadImage(
00174 const QString &sFileName,
00175 bool tiled = false
00176 ) const;
00177
00179 void GLCheckError(
00180 const char *sSourceFileName,
00181 const char *sFunctionName,
00182 unsigned int iLine
00183 ) const;
00184
00186 void GLCheckStates(
00187 const char *sSourceFileName,
00188 const char *sFunctionName,
00189 unsigned int iLine
00190 ) const;
00191
00192
00196 void Redraw( void );
00197
00199 class Scene *Scene( void ) const;
00200
00202 mudbox::Preferences *Preferences( void ) const;
00203
00205 class mudbox::Interface *Interface( void ) const;
00206
00208 class Statistics *Statistics( void ) const;
00209
00211 class ViewPort *ViewPort( void ) const;
00212
00214 QString MudboxVersionName( void ) const;
00215
00217 void RegisterWindowPlugin(WindowPlugin* plugin) const;
00218
00220 mudbox::TrayAccessor *TrayAccessor( void ) const;
00221
00223 bool ExtractArchiveFile(QString sArchiveFilePath, QString sDestPath);
00224 bool CreateArchiveFile(QString sArchiveFilePath, QStringList files);
00225
00227 QString DataDirectory( void ) const;
00228
00230 QString ApplicationDirectory( void ) const;
00231
00233 QString ProjectFilesDirectory( void ) const;
00234
00236 QString SafeWritableDirectory( void ) const;
00237
00239 QString PluginDirectory( const QString& pluginName ) const;
00240
00243 bool IsTestModeOn( void ) const;
00244
00246 bool IsBetaVersion( void ) const;
00247
00254
00255 Image *ExtractUnprojectedTextures(const QString &sChannel,
00256 int iWidth,
00257 int iHeight,
00258 enum Image::Format fmt = Image::e8integer,
00259 bool bTiledImg = false,
00260 bool allLayers = false
00261 );
00262
00263 Image *ExtractUnprojectedTextures(int iWidth,
00264 int iHeight,
00265 enum Image::Format fmt = Image::e8integer,
00266 bool bTiledImg = false,
00267 bool allLayers = false
00268 );
00269
00270
00279
00280 Image *ExtractShadingMap(int iWidth,
00281 int iHeight,
00282 enum Image::Format fmt = Image::e8integer,
00283 bool bTiledImg = false
00284 );
00285
00286
00288 class XRef* XRef() const;
00289
00297 void ReportVideoMemoryUsage(
00298 qint64 iSize
00299 );
00300
00302 qint64 VideoMemoryUsage( void ) const;
00303
00305 qint64 TotalVideoMemory( void ) const;
00306
00311 bool DoOperation(
00312 Operation *pOp,
00313 bool bMerge = false
00314 );
00315
00316 const QList<class ImageIOHandler *> &ExternalImageIOHandlers();
00317
00321 void FlushUndoQueue();
00322
00324 aevent StrokeBeginEvent;
00325
00327 aevent StrokeEndEvent;
00328
00330 aevent TangentMirrorUpdateEvent;
00331
00336 aevent LowMemoryEvent;
00337
00340 aevent RestoreMemoryEvent;
00341
00343 aevent PostUndoRedoEvent;
00344
00358 QString TriggerFileEvent(
00359 FileEventNotifier::Type eType,
00360 const QString &sFileName
00361 ) const;
00362
00371 mutable aptr<FileEventNotifier> FileEvent;
00372
00374 aevent ScenePreDeletedEvent;
00375 };
00376
00378 MBDLL_DECL Kernel *Kernel( void );
00379
00381 class MBDLL_DECL Timer
00382 {
00383 int m_iIndex;
00384
00385 public:
00387 Timer( const char *sName, int &iIndex );
00388 ~Timer( void );
00390 static unsigned int Current( void );
00393 static void ResetAll( void );
00395 static void LogAll( void );
00396 };
00397
00398
00400 class MBDLL_DECL Statistics
00401 {
00402 public:
00403 void AddRenderedPolygonCount( unsigned int iPolygonCount );
00404 int FrameCount( void ) const;
00405 };
00406
00412 template < typename c >
00413 c* CreateInstance( void ) { return dynamic_cast<c *>( Kernel()->CreateClassInstance( c::StaticClass() ) ); };
00414
00452 template < typename c >
00453 class MBDLL_TEMPLATE_DECL Instance
00454 {
00455 c *m_pObject;
00456
00457 public:
00458 inline Instance( c* pObject ) : m_pObject( pObject ) {};
00459 inline Instance( void ) { m_pObject = CreateInstance<c>(); };
00460 inline ~Instance( void ) { if( m_pObject ) delete m_pObject; };
00461 inline c *operator ->( void ) { return m_pObject; };
00462 inline const c *operator ->( void ) const { return m_pObject; };
00463 inline operator c*( void ) const { return m_pObject; };
00464
00467 inline c * Release() { c* pTemp = m_pObject; m_pObject = 0; return pTemp; }
00468 };
00469
00471 class MBDLL_DECL Utility
00472 {
00473 public:
00474
00482 static QString SanitizeFileName(
00483 const QString& sName
00484 );
00485 };
00486
00487 };