summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/Src/FramebufferManagerBase.h
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Core/VideoCommon/Src/FramebufferManagerBase.h')
-rw-r--r--Source/Core/VideoCommon/Src/FramebufferManagerBase.h184
1 files changed, 92 insertions, 92 deletions
diff --git a/Source/Core/VideoCommon/Src/FramebufferManagerBase.h b/Source/Core/VideoCommon/Src/FramebufferManagerBase.h
index a67346fe7b..14f2af1b51 100644
--- a/Source/Core/VideoCommon/Src/FramebufferManagerBase.h
+++ b/Source/Core/VideoCommon/Src/FramebufferManagerBase.h
@@ -1,92 +1,92 @@
-
-#ifndef _FRAMEBUFFERMANAGER_H
-#define _FRAMEBUFFERMANAGER_H
-
-#include <list>
-
-#include "VideoCommon.h"
-
-inline bool addrRangesOverlap(u32 aLower, u32 aUpper, u32 bLower, u32 bUpper)
-{
- return !((aLower >= bUpper) || (bLower >= aUpper));
-}
-
-struct XFBSourceBase
-{
- virtual ~XFBSourceBase() {}
-
- // TODO: only DX9 uses the width/height params
- virtual void Draw(const MathUtil::Rectangle<float> &sourcerc,
- const MathUtil::Rectangle<float> &drawrc, int width, int height) const = 0;
-
- virtual void DecodeToTexture(u32 xfbAddr, u32 fbWidth, u32 fbHeight) = 0;
-
- virtual void CopyEFB() = 0;
-
- u32 srcAddr;
- u32 srcWidth;
- u32 srcHeight;
-
- int texWidth;
- int texHeight;
-
- // TODO: only used by OGL
- TargetRectangle sourceRc;
-};
-
-class FramebufferManagerBase
-{
-public:
- enum
- {
- // There may be multiple XFBs in GameCube RAM. This is the maximum number to
- // virtualize.
- MAX_VIRTUAL_XFB = 8
- };
-
- FramebufferManagerBase();
- virtual ~FramebufferManagerBase();
-
- static void CopyToXFB(u32 xfbAddr, u32 fbWidth, u32 fbHeight, const EFBRectangle& sourceRc);
- static const XFBSourceBase* const* GetXFBSource(u32 xfbAddr, u32 fbWidth, u32 fbHeight, u32 &xfbCount);
-
-protected:
- struct VirtualXFB
- {
- VirtualXFB() : xfbSource(NULL) {}
-
- // Address and size in GameCube RAM
- u32 xfbAddr;
- u32 xfbWidth;
- u32 xfbHeight;
-
- XFBSourceBase *xfbSource;
- };
-
- typedef std::list<VirtualXFB> VirtualXFBListType;
-
-private:
- virtual XFBSourceBase* CreateXFBSource(unsigned int target_width, unsigned int target_height) = 0;
- // TODO: figure out why OGL is different for this guy
- virtual void GetTargetSize(unsigned int *width, unsigned int *height, const EFBRectangle& sourceRc) = 0;
-
- static VirtualXFBListType::iterator FindVirtualXFB(u32 xfbAddr, u32 width, u32 height);
-
- static void ReplaceVirtualXFB();
-
- // TODO: merge these virtual funcs, they are nearly all the same
- virtual void CopyToRealXFB(u32 xfbAddr, u32 fbWidth, u32 fbHeight, const EFBRectangle& sourceRc) = 0;
- static void CopyToVirtualXFB(u32 xfbAddr, u32 fbWidth, u32 fbHeight, const EFBRectangle& sourceRc);
-
- static const XFBSourceBase* const* GetRealXFBSource(u32 xfbAddr, u32 fbWidth, u32 fbHeight, u32 &xfbCount);
- static const XFBSourceBase* const* GetVirtualXFBSource(u32 xfbAddr, u32 fbWidth, u32 fbHeight, u32 &xfbCount);
-
- static XFBSourceBase *m_realXFBSource; // Only used in Real XFB mode
- static VirtualXFBListType m_virtualXFBList; // Only used in Virtual XFB mode
-
- static const XFBSourceBase* m_overlappingXFBArray[MAX_VIRTUAL_XFB];
-};
-
-extern FramebufferManagerBase *g_framebuffer_manager;
-
-#endif
+
+#ifndef _FRAMEBUFFERMANAGER_H
+#define _FRAMEBUFFERMANAGER_H
+
+#include <list>
+
+#include "VideoCommon.h"
+
+inline bool addrRangesOverlap(u32 aLower, u32 aUpper, u32 bLower, u32 bUpper)
+{
+ return !((aLower >= bUpper) || (bLower >= aUpper));
+}
+
+struct XFBSourceBase
+{
+ virtual ~XFBSourceBase() {}
+
+ // TODO: only DX9 uses the width/height params
+ virtual void Draw(const MathUtil::Rectangle<float> &sourcerc,
+ const MathUtil::Rectangle<float> &drawrc, int width, int height) const = 0;
+
+ virtual void DecodeToTexture(u32 xfbAddr, u32 fbWidth, u32 fbHeight) = 0;
+
+ virtual void CopyEFB() = 0;
+
+ u32 srcAddr;
+ u32 srcWidth;
+ u32 srcHeight;
+
+ unsigned int texWidth;
+ unsigned int texHeight;
+
+ // TODO: only used by OGL
+ TargetRectangle sourceRc;
+};
+
+class FramebufferManagerBase
+{
+public:
+ enum
+ {
+ // There may be multiple XFBs in GameCube RAM. This is the maximum number to
+ // virtualize.
+ MAX_VIRTUAL_XFB = 8
+ };
+
+ FramebufferManagerBase();
+ virtual ~FramebufferManagerBase();
+
+ static void CopyToXFB(u32 xfbAddr, u32 fbWidth, u32 fbHeight, const EFBRectangle& sourceRc);
+ static const XFBSourceBase* const* GetXFBSource(u32 xfbAddr, u32 fbWidth, u32 fbHeight, u32 &xfbCount);
+
+protected:
+ struct VirtualXFB
+ {
+ VirtualXFB() : xfbSource(NULL) {}
+
+ // Address and size in GameCube RAM
+ u32 xfbAddr;
+ u32 xfbWidth;
+ u32 xfbHeight;
+
+ XFBSourceBase *xfbSource;
+ };
+
+ typedef std::list<VirtualXFB> VirtualXFBListType;
+
+private:
+ virtual XFBSourceBase* CreateXFBSource(unsigned int target_width, unsigned int target_height) = 0;
+ // TODO: figure out why OGL is different for this guy
+ virtual void GetTargetSize(unsigned int *width, unsigned int *height, const EFBRectangle& sourceRc) = 0;
+
+ static VirtualXFBListType::iterator FindVirtualXFB(u32 xfbAddr, u32 width, u32 height);
+
+ static void ReplaceVirtualXFB();
+
+ // TODO: merge these virtual funcs, they are nearly all the same
+ virtual void CopyToRealXFB(u32 xfbAddr, u32 fbWidth, u32 fbHeight, const EFBRectangle& sourceRc) = 0;
+ static void CopyToVirtualXFB(u32 xfbAddr, u32 fbWidth, u32 fbHeight, const EFBRectangle& sourceRc);
+
+ static const XFBSourceBase* const* GetRealXFBSource(u32 xfbAddr, u32 fbWidth, u32 fbHeight, u32 &xfbCount);
+ static const XFBSourceBase* const* GetVirtualXFBSource(u32 xfbAddr, u32 fbWidth, u32 fbHeight, u32 &xfbCount);
+
+ static XFBSourceBase *m_realXFBSource; // Only used in Real XFB mode
+ static VirtualXFBListType m_virtualXFBList; // Only used in Virtual XFB mode
+
+ static const XFBSourceBase* m_overlappingXFBArray[MAX_VIRTUAL_XFB];
+};
+
+extern FramebufferManagerBase *g_framebuffer_manager;
+
+#endif