This commit is contained in:
parent
8788076d39
commit
1c5c1b4011
59 changed files with 24871 additions and 56 deletions
183
Utils/Libs/GLib/Frame.hpp
Normal file
183
Utils/Libs/GLib/Frame.hpp
Normal file
|
@ -0,0 +1,183 @@
|
|||
/*=========================================================================
|
||||
|
||||
FRAME.CPP
|
||||
|
||||
Author: Gary Liddon @ Fareham
|
||||
Created:
|
||||
Project:
|
||||
Purpose:
|
||||
|
||||
Copyright (c) 1997 G R Liddon
|
||||
|
||||
===========================================================================*/
|
||||
|
||||
#ifndef __FRAME_HPP__
|
||||
#define __FRAME_HPP__
|
||||
|
||||
/*----------------------------------------------------------------------
|
||||
Includes
|
||||
-------- */
|
||||
|
||||
/* Std Lib
|
||||
------- */
|
||||
#include <iostream>
|
||||
#include <vector>
|
||||
|
||||
/* Glib
|
||||
---- */
|
||||
#include "gobject.hpp"
|
||||
#include "gtypes.h"
|
||||
#include "gstring.hpp"
|
||||
|
||||
/* Local
|
||||
----- */
|
||||
#include "pal.hpp"
|
||||
|
||||
/*----------------------------------------------------------------------
|
||||
Tyepdefs && Defines
|
||||
------------------- */
|
||||
|
||||
/*----------------------------------------------------------------------
|
||||
Structure defintions
|
||||
-------------------- */
|
||||
class GLIB_API Rect : public GObject
|
||||
{
|
||||
public:
|
||||
Rect(Rect const & R)
|
||||
{ MakeCopy(R);}
|
||||
|
||||
void operator=(Rect const & R)
|
||||
{ MakeCopy(R);}
|
||||
|
||||
Rect(void);
|
||||
Rect(int nX,int nY,int nW,int nH)
|
||||
{
|
||||
X=nX;
|
||||
Y=nY;
|
||||
W=nW;
|
||||
H=nH;
|
||||
}
|
||||
|
||||
/* Compare by volume */
|
||||
|
||||
bool operator< (Rect const & R) const
|
||||
{
|
||||
return((W*H)<(R.W*R.H));
|
||||
}
|
||||
|
||||
bool IsColiding(Rect const & NewRect) const;
|
||||
void ClipRect(Rect & RectToClip) const;
|
||||
int Area(void) const {return(W*H);}
|
||||
|
||||
operator int() const{return(W || H);}
|
||||
|
||||
GLIB_API friend std::ostream & operator<<(std::ostream & str,Rect const & Fr);
|
||||
|
||||
int X,Y;
|
||||
int W,H;
|
||||
|
||||
protected:
|
||||
void MakeCopy(Rect const & R)
|
||||
{
|
||||
X=R.X;
|
||||
Y=R.Y;
|
||||
W=R.W;
|
||||
H=R.H;
|
||||
}
|
||||
};
|
||||
|
||||
class GLIB_API Frame : public GObject
|
||||
{
|
||||
public:
|
||||
void ReduceColours(int TargColours);
|
||||
void Expand(int BorderWidth,bool DupeEdges);
|
||||
void AddPixelSurround(int Col);
|
||||
|
||||
void MakeRGBA(u8 * Dest,bool ZeroIsTrans=true);
|
||||
|
||||
Frame(void);
|
||||
Frame(Frame const &);
|
||||
~Frame(void);
|
||||
|
||||
void Plot(Frame & Dest,int X,int Y);
|
||||
void PlotTrans(Frame & Dest,int X,int Y,int TrCol=0);
|
||||
void PlotBox(Rect const & R,int Col);
|
||||
|
||||
|
||||
void operator=(Frame const &Fr){CopyFrame(Fr);}
|
||||
|
||||
operator Rect() const{return(Rect(X,Y,Width,Height));}
|
||||
|
||||
bool operator<(Frame const &Fr) const;
|
||||
bool operator==(Frame const &Fr) const;
|
||||
|
||||
void SetFrame(u8 const * nBuffa,int W,int H,Palette const & NewPal);
|
||||
|
||||
void ReduceSinglePixels(int Threshold);
|
||||
void SaveLbm(char const * Lbm);
|
||||
|
||||
void ReduceSize(void);
|
||||
Rect FindBoundingRect(void);
|
||||
void Crop(Rect const & RetRect);
|
||||
|
||||
bool Grab(Frame const & Fr,Rect const & RetRect);
|
||||
bool IsBlank(u8 BlankVal=0);
|
||||
|
||||
u8 const * SeeData(void) const {return(Buffa);}
|
||||
int GetWidth(void) const {return(Width);}
|
||||
int GetHeight(void)const {return(Height);}
|
||||
int GetNumOfCols(void) const;
|
||||
|
||||
bool DrawBox(Rect const & R,u8 Col);
|
||||
|
||||
const Palette & GetPal(void) const {return(MyPal);}
|
||||
|
||||
Palette & GetPal(void){return(MyPal);}
|
||||
|
||||
void SetPal(Palette const & NewPal){MyPal=NewPal;}
|
||||
void Remap(Palette const & P);
|
||||
void LoadLbm(char const * Lbm);
|
||||
void ReplaceColour(int ColNum,int RepNum);
|
||||
|
||||
void SetX(int nX) {X=nX;}
|
||||
void SetY(int nY) {Y=nY;}
|
||||
|
||||
int GetX(void) const {return(X);}
|
||||
int GetY(void) const {return(Y);}
|
||||
const char * GetName(void) const { return(Name); }
|
||||
|
||||
void SetName(const char * NewName) { Name=NewName; }
|
||||
void ReducePal(void);
|
||||
void Clear(int Col);
|
||||
|
||||
void LoadBMP(char const * Lbm);
|
||||
|
||||
void FlipX(void);
|
||||
void FlipY(void);
|
||||
|
||||
void Resize(int NewWidth,int NewHeight);
|
||||
|
||||
protected:
|
||||
void CopyFrame(Frame const &);
|
||||
|
||||
void DumpStuff(void);
|
||||
void InitFrame(void);
|
||||
|
||||
Palette MyPal;
|
||||
|
||||
GString Name;
|
||||
|
||||
u8 * Buffa;
|
||||
int Width;
|
||||
int Height;
|
||||
int X,Y;
|
||||
};
|
||||
|
||||
/*---------------------------------------------------------------------- */
|
||||
|
||||
#endif /* __FRAME_HPP__ */
|
||||
|
||||
/*===========================================================================
|
||||
end */
|
||||
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue