Gray C++ Libraries  0.0.2
A set of C++ libraries for MSVC, GNU on Windows, WinCE, Linux
GrayLib::cSurfaceConv Class Reference

#include <cSurfaceConv.h>

Inheritance diagram for GrayLib::cSurfaceConv:
GrayLib::cColorConv

Public Member Functions

 cSurfaceConv (SURF_FORM_TYPE eFormatSrc=SURF_FORM_UNKNOWN, SURF_FORM_TYPE eFormatDst=SURF_FORM_UNKNOWN)
 
 ~cSurfaceConv ()
 
bool isInitForm () const noexcept
 
bool isScaling () const noexcept
 
HRESULT InitForm (SURF_FORM_TYPE eFormatSrc, SURF_FORM_TYPE eFormatDst=SURF_FORM_UNKNOWN)
 
bool SetScale (PIXELS_t nSrcWidth, PIXELS_t nSrcHeight, PIXELS_t nDstWidth, PIXELS_t nDstHeight)
 
void SetAlphaKey (COLOR_ELEM_t r, COLOR_ELEM_t g, COLOR_ELEM_t b)
 
void ConvertLines (const void *pvSrc, size_t nSrcPitchBytes, void *pvDst, size_t nDstPitchBytes, int nDstWidth, int iDstHeight, bool bTopDownFlip)
 
 UNITTEST_FRIEND (cSurfaceConv)
 
- Public Member Functions inherited from GrayLib::cColorConv
 cColorConv () noexcept
 
void Conv_RGB888_ARGB8888 (const COLOR_ELEM_t *pbSrc, COLOR_ELEM_t *pbDst) noexcept
 
void Conv_BGR888_ABGR8888 (const COLOR_ELEM_t *pbSrc, COLOR_ELEM_t *pbDst) noexcept
 
void Conv_BGR888_ARGB8888 (const COLOR_ELEM_t *pbSrc, COLOR_ELEM_t *pbDst) noexcept
 
void Conv_RGB888_ABGR8888 (const COLOR_ELEM_t *pbSrc, COLOR_ELEM_t *pbDst) noexcept
 

Static Public Attributes

static const int k_MaxLineWidth = 4096
 max width in pixels for a single line. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from GrayLib::cColorConv
static void Conv_XRGB8888_RGB888 (const COLOR_ELEM_t *pbSrc, COLOR_ELEM_t *pbDst) noexcept
 
static void Conv_BGR888_RGB888 (const COLOR_ELEM_t *pbSrc, COLOR_ELEM_t *pbDst) noexcept
 
static void Conv_ABGR8888_ARGB8888 (const COLOR_ELEM_t *pbSrc, COLOR_ELEM_t *pbDst) noexcept
 
static void Conv_BGR888_XBGR8888 (const COLOR_ELEM_t *pbSrc, COLOR_ELEM_t *pbDst) noexcept
 
static void Conv_BGR888_XRGB8888 (const COLOR_ELEM_t *pbSrc, COLOR_ELEM_t *pbDst) noexcept
 
static COLOR565_t Conv_BGR888_RGB565 (const COLOR_ELEM_t *pbSrc) noexcept
 
static COLOR565_t Conv_RGB888_RGB565 (const COLOR_ELEM_t *pbSrc) noexcept
 
static COLOR555_t Conv_BGR888_RGB1555 (const COLOR_ELEM_t *pbSrc, bool bOpaque) noexcept
 
static COLOR555_t Conv_RGB888_RGB1555 (const COLOR_ELEM_t *pbSrc, bool bOpaque) noexcept
 
static void Conv_RGB565_BGR888 (COLOR565_t c, COLOR_ELEM_t *pbDst) noexcept
 
static void Conv_RGB565_RGB888 (COLOR565_t c, COLOR_ELEM_t *pbDst) noexcept
 
static void Conv_RGB1555_BGR888 (COLOR565_t c, COLOR_ELEM_t *pbDst) noexcept
 
static void Conv_RGB1555_RGB888 (COLOR565_t c, COLOR_ELEM_t *pbDst) noexcept
 
static COLOR555_t Conv_RGB565_RGB1555 (COLOR565_t c, bool bOpaque) noexcept
 
- Public Attributes inherited from GrayLib::cColorConv
cColor888 m_cAlphaRef
 if >= 24 bit pixel source. use this color as alpha. More...
 
cColor555 m_cAlpha555
 if 16 bit pixel source. alpha if XRGB1555 More...
 
cColor565 m_cAlpha565
 if 16 bit pixel source. alpha if RGB565 More...
 

Detailed Description

Current State Info for converting pixels from one SURF_FORM_TYPE to another. also re-sample/rescale the image if needed. for cSurfaceInfo like D3DXLoadSurfaceFromSurface()

Constructor & Destructor Documentation

◆ cSurfaceConv()

GrayLib::cSurfaceConv::cSurfaceConv ( SURF_FORM_TYPE  eFormatSrc = SURF_FORM_UNKNOWN,
SURF_FORM_TYPE  eFormatDst = SURF_FORM_UNKNOWN 
)

◆ ~cSurfaceConv()

GrayLib::cSurfaceConv::~cSurfaceConv ( )

Member Function Documentation

◆ ConvertLines()

void GrayLib::cSurfaceConv::ConvertLines ( const void *  pvSrc,
size_t  nSrcPitchBytes,
void *  pvDst,
size_t  nDstPitchBytes,
int  nDstWidth,
int  iDstHeight,
bool  bTopDownFlip 
)

convert all the lines in an image.

◆ InitForm()

HRESULT GrayLib::cSurfaceConv::InitForm ( SURF_FORM_TYPE  eFormatSrc,
SURF_FORM_TYPE  eFormatDst = SURF_FORM_UNKNOWN 
)

define what formats we are converting from,to.

◆ isInitForm()

bool GrayLib::cSurfaceConv::isInitForm ( ) const
inlinenoexcept

did InitForm() work ?

◆ isScaling()

bool GrayLib::cSurfaceConv::isScaling ( ) const
inlinenoexcept

am i doing any scaling ? else just format convert or just copy.

◆ SetAlphaKey()

void GrayLib::cSurfaceConv::SetAlphaKey ( COLOR_ELEM_t  r,
COLOR_ELEM_t  g,
COLOR_ELEM_t  b 
)

Set the color key for conversion to alpha supporting dest formats.

◆ SetScale()

bool GrayLib::cSurfaceConv::SetScale ( PIXELS_t  nSrcWidth,
PIXELS_t  nSrcHeight,
PIXELS_t  nDstWidth,
PIXELS_t  nDstHeight 
)
Returns
false = no scale needed. ASSUME isInitForm()

◆ UNITTEST_FRIEND()

GrayLib::cSurfaceConv::UNITTEST_FRIEND ( cSurfaceConv  )

Member Data Documentation

◆ k_MaxLineWidth

const int GrayLib::cSurfaceConv::k_MaxLineWidth = 4096
static

max width in pixels for a single line.


The documentation for this class was generated from the following files: