42 lines
1.4 KiB
C++
42 lines
1.4 KiB
C++
#ifndef _DDRAW_DIRECTTRITEXTURE_HPP_
|
|
#define _DDRAW_DIRECTTRITEXTURE_HPP_
|
|
#ifndef _ENGINE_TRIANGLE3D_HPP_
|
|
#include <engine/angle3d.hpp>
|
|
#endif
|
|
#ifndef _ENGINE_TRIANGLE_HPP_
|
|
#include <engine/angle.hpp>
|
|
#endif
|
|
#ifndef _DDRAW_TRIEDGE_HPP_
|
|
#include <ddraw/triedge.hpp>
|
|
#endif
|
|
|
|
class Bitmap;
|
|
class DrawingSurface;
|
|
class Device3D;
|
|
class DIBitmap;
|
|
|
|
extern "C"
|
|
{
|
|
void directTriSetSrcBitmapInfo(DWORD width,DWORD height,unsigned char *lpSrcBitmapImage);
|
|
void directTriSetDstBitmapInfo(DWORD width,DWORD height,DWORD pitch,unsigned char *lpDstBitmapImage);
|
|
void directTriMapTexture(DirectTriEdge *pDirectTriEdge);
|
|
void directTriSetPixelCallback(void (*PFNPIXELCALLBACK)(int ui,int vi,int x,int y));
|
|
void directTriSetEdgeCallback(void (*PFNEDGECALLBACK)(DirectTriEdge *pEdge));
|
|
}
|
|
|
|
class DirectTriTexture
|
|
{
|
|
public:
|
|
enum MapFrom{MapFromUpperRight,MapFromLowerLeft};
|
|
DirectTriTexture(const Triangle3D &angle3D,Bitmap &textureBitmap,DrawingSurface &drawingSurface,Device3D &displayDevice,MapFrom mapFrom=MapFromUpperRight);
|
|
DirectTriTexture(const Triangle3D &angle3D,Bitmap &textureBitmap,DIBitmap &drawingSurface,Device3D &displayDevice,MapFrom mapFrom=MapFromUpperRight);
|
|
virtual ~DirectTriTexture();
|
|
void mapTexture(void);
|
|
private:
|
|
static void pixelCallback(int ui,int vi,int x,int y);
|
|
static void edgeCallback(DirectTriEdge *pEdge);
|
|
Triangle3D mTriangle3D;
|
|
Triangle mTriangle;
|
|
DirectTriEdge mTriEdge;
|
|
};
|
|
#endif |