aboutsummaryrefslogtreecommitdiff
path: root/archive/include/hgedistort.h
diff options
context:
space:
mode:
Diffstat (limited to 'archive/include/hgedistort.h')
-rw-r--r--archive/include/hgedistort.h66
1 files changed, 66 insertions, 0 deletions
diff --git a/archive/include/hgedistort.h b/archive/include/hgedistort.h
new file mode 100644
index 0000000..3c8f449
--- /dev/null
+++ b/archive/include/hgedistort.h
@@ -0,0 +1,66 @@
+/*
+** Haaf's Game Engine 1.7
+** Copyright (C) 2003-2007, Relish Games
+** hge.relishgames.com
+**
+** hgeDistortionMesh helper class header
+*/
+
+
+#ifndef HGEDISTORT_H
+#define HGEDISTORT_H
+
+
+#include "hge.h"
+
+
+#define HGEDISP_NODE 0
+#define HGEDISP_TOPLEFT 1
+#define HGEDISP_CENTER 2
+
+/*
+** HGE Distortion mesh class
+*/
+class hgeDistortionMesh
+{
+public:
+ hgeDistortionMesh(int cols, int rows);
+ hgeDistortionMesh(const hgeDistortionMesh &dm);
+ ~hgeDistortionMesh();
+
+ hgeDistortionMesh& operator= (const hgeDistortionMesh &dm);
+
+ void Render(float x, float y);
+ void Clear(DWORD col=0xFFFFFFFF, float z=0.5f);
+
+ void SetTexture(HTEXTURE tex);
+ void SetTextureRect(float x, float y, float w, float h);
+ void SetBlendMode(int blend);
+ void SetZ(int col, int row, float z);
+ void SetColor(int col, int row, DWORD color);
+ void SetDisplacement(int col, int row, float dx, float dy, int ref);
+
+ HTEXTURE GetTexture() const {return quad.tex;}
+ void GetTextureRect(float *x, float *y, float *w, float *h) const { *x=tx; *y=ty; *w=width; *h=height; }
+ int GetBlendMode() const { return quad.blend; }
+ float GetZ(int col, int row) const;
+ DWORD GetColor(int col, int row) const;
+ void GetDisplacement(int col, int row, float *dx, float *dy, int ref) const;
+
+ int GetRows() { return nRows; }
+ int GetCols() { return nCols; }
+
+private:
+ hgeDistortionMesh();
+
+ static HGE *hge;
+
+ hgeVertex *disp_array;
+ int nRows, nCols;
+ float cellw,cellh;
+ float tx,ty,width,height;
+ hgeQuad quad;
+};
+
+
+#endif