Hi EveryBody
Here is what I have implemented with MagicLibrary So far , of course there are still many functions that I will do.
Prototype of MagicDXManager Class
Code: Select all
enum BLENDTYPE
{
SOLIDBLEND = 1,
ALPHABLEND,
LIGHTBLEND
};
enum POINTORDER
{
TopLeft = 1,
TopRight,
BottomLeft,
BottomRight,
AllPoints
};
struct ImageData
{
TexturePtr tp;
float halfWidth;
float halfHeight;
};
typedef unsigned long ULONG ;
class MagicDXManager : public Ogre::Singleton<MagicDXManager>
{
private:
LPDIRECT3DDEVICE9 DX9Device;
Ogre::RenderWindow* mWindow;
Ogre::RenderSystem* rs;
Ogre::Viewport* mvp;
Ogre::Camera* mCamera;
Ogre::Matrix4 OrthoMat;
Ogre::Matrix4 ProjMat;
Ogre::LayerBlendModeEx colorBlendMode;
Ogre::LayerBlendModeEx alphaBlendMode;
Ogre::TextureUnitState::UVWAddressingMode uvwAddressMode;
bool Initialized;
// save render states
Ogre::CullingMode CullState;
//color and alpha
uchar alpha1,alpha2,alpha3,alpha4;
uchar red1,red2,red3,red4;
uchar green1,green2,green3,green4;
uchar blue1,blue2,blue3,blue4;
// transformation
float mRotate;
float mScaleX,mScaleY;
bool mHorizontalFlip,mVerticalFlip;
float mScreenWidth,mScreenHeight;
float mhalfScreenWidth,mhalfScreenHeight;
// fade variables
struct FadeData
{
float factor;
ULONG oldtick;
ULONG flag;
};
FadeData mFadeData[64];
public:
static MagicDXManager* getSingletonPtr(void);
static MagicDXManager& getSingleton(void);
MagicDXManager();
~MagicDXManager();
void Initialize(RenderWindow* mWin,Camera* mCam);
void Destroy();
float GetScreenWidth();
float GetScreenHeight();
float GetHalfScreenWidth();
float GetHalfScreenHeight();
void UseOrthogonalView();
void UsePerspectiveView();
void SetBlendMode(BLENDTYPE bm);
void SetColor(uchar r,uchar g,uchar b,POINTORDER po = AllPoints);
void SetAlpha(float a,POINTORDER po = AllPoints);
void SetScale(float Sx,float Sy);
void SetRotation(float Rot);
void SetHorizontalFlip(bool flag);
void SetVerticalFlip(bool flag);
void FadeIn(float time,int FadeID);
void FadeOut(float time,int FadeID);
void FadeInOut(float in,ULONG sty,float out,int FadeID);
void CycleFadeInOut(float in,ULONG sty,float out,int FadeID);
float GetFadeFactor(int FadeID);
void SetFadeFactor(float f,int FadeID);
ImageData* LoadStaticImage(const String &name, const String &group);
void SetImageColorKey(ImageData* image,ULONG color);
void SetImageColorKeyFromPoint(ImageData* image,int x, int y);
void SetImageTexture(ImageData* image);
void DrawImage(ImageData* image,float mTransX,float mTransY);
void DrawImageToFitArea(ImageData* image,float Left,float Top,float Width,float Height);
void DrawPartOfImage(ImageData* image,float mTransX,float mTransY,float Left,float Top,float Width,float Height);
};