backporting...
[dosdemo] / src / 3dgfx.h
index 363a1b2..f6250d5 100644 (file)
@@ -2,6 +2,24 @@
 #define THREEDGFX_H_
 
 #include "inttypes.h"
+#include "gfxutil.h"
+
+#define G3D_PIXFMT16
+typedef uint16_t g3d_pixel;
+
+#ifdef G3D_PIXFMT16
+#define G3D_PACK_RGB(r, g, b)  PACK_RGB16(r, g, b)
+#define G3D_UNPACK_R(c)                        UNPACK_R16(c)
+#define G3D_UNPACK_G(c)                        UNPACK_G16(c)
+#define G3D_UNPACK_B(c)                        UNPACK_B16(c)
+#endif
+#ifdef G3D_PIXFMT32
+#define G3D_PACK_RGB(r, g, b)  PACK_RGB32(r, g, b)
+#define G3D_UNPACK_R(c)                        UNPACK_R32(c)
+#define G3D_UNPACK_G(c)                        UNPACK_G32(c)
+#define G3D_UNPACK_B(c)                        UNPACK_B32(c)
+#endif
+
 
 struct g3d_vertex {
        float x, y, z, w;
@@ -36,6 +54,7 @@ enum {
        G3D_CLIP_PLANE3 = 0x008000,
 
        G3D_TEXTURE_MAT = 0x010000,
+       G3D_SPECULAR    = 0x020000,
 
        G3D_ALL = 0x7fffffff
 };
@@ -47,9 +66,7 @@ enum { G3D_CCW, G3D_CW };
 enum {
        G3D_WIRE,
        G3D_FLAT,
-       G3D_GOURAUD,
-       G3D_TEX,
-       G3D_TEX_GOURAUD
+       G3D_GOURAUD
 };
 
 /* matrix stacks */
@@ -96,6 +113,7 @@ void g3d_perspective(float vfov, float aspect, float znear, float zfar);
 const float *g3d_get_matrix(int which, float *m);
 
 void g3d_light_pos(int idx, float x, float y, float z);
+void g3d_light_dir(int idx, float x, float y, float z);
 void g3d_light_color(int idx, float r, float g, float b);
 
 void g3d_light_ambient(float r, float g, float b);