Files
Work/engine/ASMUTIL.HPP
2024-08-07 09:16:27 -04:00

101 lines
2.9 KiB
C++

#ifndef _ENGINE_ASMUTIL_HPP_
#define _ENGINE_ASMUTIL_HPP_
#ifndef _COMMON_WINDOWS_HPP_
#include <common/windows.hpp>
#endif
class Point;
class PureEdge;
class PureMap;
extern "C"
{
void clearBitmap(DWORD lpBitmapData,DWORD imageExtent);
void setBits(DWORD lpBitmapData,DWORD imageExtent,BYTE charByte);
void lineWINGBlt(DWORD lpWINGData,Point *lpFirstPoint,Point *lpSecondPoint,DWORD width,DWORD height,WORD value);
void initEdge(int edgeType,PureEdge *lpPureEdge);
void mapTexture(PureMap *lpEdgeMap);
void setMaskInfo(WORD useMask,BYTE maskValue);
void setSrcBitmapInfo(WORD width,WORD height,unsigned char *lpSrcBitmapImage);
void setDstBitmapInfo(WORD width,WORD height,unsigned char *lpDstBitmapImage);
void getSrcDataByte(WORD row,WORD col);
void resampleClip(char *lpIn,char *lpOut,DWORD inLen,DWORD outLen,DWORD outClip);
}
class ASMRoutines
{
public:
static void clearBitmap(DWORD lpBitmapData,DWORD imageExtent);
static void setBits(DWORD lpBitmapData,DWORD imageExtent,BYTE charByte);
static void line(DWORD lpWINGData,Point *lpFirstPoint,Point *lpSecondPoint,DWORD width,DWORD imageExtent,WORD value);
static void initEdge(int edgeType,PureEdge *lpPureEdge);
static void mapTexture(PureMap *lpEdgeMap);
static void setMaskInfo(WORD useMask,BYTE maskValue);
static void setSrcBitmapInfo(WORD width,WORD height,unsigned char *lpSrcBitmapImage);
static void setDstBitmapInfo(WORD width,WORD height,unsigned char *lpDstBitmapImage);
static void getSrcDataByte(WORD row,WORD col);
static void resampleClip(char *lpIn,char *lpOut,DWORD inLen,DWORD outLen,DWORD outClip);
};
inline
void ASMRoutines::clearBitmap(DWORD lpBitmapData,DWORD imageExtent)
{
::clearBitmap(lpBitmapData,imageExtent);
}
inline
void ASMRoutines::setBits(DWORD lpBitmapData,DWORD imageExtent,BYTE charByte)
{
::setBits(lpBitmapData,imageExtent,charByte);
}
inline
void ASMRoutines::line(DWORD ptrData,Point *lpFirstPoint,Point *lpSecondPoint,DWORD width,DWORD height,WORD value)
{
::lineWINGBlt(ptrData,lpFirstPoint,lpSecondPoint,width,height,value);
}
inline
void ASMRoutines::initEdge(int edgeType,PureEdge *lpPureEdge)
{
::initEdge(edgeType,lpPureEdge);
}
inline
void ASMRoutines::mapTexture(PureMap *lpEdgeMap)
{
::mapTexture(lpEdgeMap);
}
inline
void ASMRoutines::setMaskInfo(WORD useMask,BYTE maskValue)
{
::setMaskInfo(useMask,maskValue);
}
inline
void ASMRoutines::setSrcBitmapInfo(WORD width,WORD height,unsigned char *lpSrcBitmapImage)
{
::setSrcBitmapInfo(width,height,lpSrcBitmapImage);
}
inline
void ASMRoutines::setDstBitmapInfo(WORD width,WORD height,unsigned char *lpDstBitmapImage)
{
::setDstBitmapInfo(width,height,lpDstBitmapImage);
}
inline
void ASMRoutines::getSrcDataByte(WORD row,WORD col)
{
::getSrcDataByte(row,col);
}
inline
void ASMRoutines::resampleClip(char *lpIn,char *lpOut,DWORD inLen,DWORD outLen,DWORD outClip)
{
::resampleClip(lpIn,lpOut,inLen,outLen,outClip);
}
#endif