diff --git a/src/r_defs.h b/src/r_defs.h
index 1b979a0dfc842d231d9fbcc6d3a5b1555fefda53..65fd883c91a9ccb7b02fbcfa7864d1783ca987ef 100644
--- a/src/r_defs.h
+++ b/src/r_defs.h
@@ -25,6 +25,10 @@
 
 #include "screen.h" // MAXVIDWIDTH, MAXVIDHEIGHT
 
+#ifdef HWRENDER
+#include "m_aatree.h"
+#endif
+
 #include "taglist.h"
 
 //
@@ -902,6 +906,26 @@ typedef struct
 	// the [0] is &columnofs[width]
 } ATTRPACK softwarepatch_t;
 
+#ifdef _MSC_VER
+#pragma warning(disable :  4200)
+#endif
+
+// a pic is an unmasked block of pixels, stored in horizontal way
+typedef struct
+{
+	INT16 width;
+	UINT8 zero;       // set to 0 allow autodetection of pic_t
+	                 // mode instead of patch or raw
+	UINT8 mode;       // see pic_mode_t above
+	INT16 height;
+	INT16 reserved1; // set to 0
+	UINT8 data[0];
+} ATTRPACK pic_t;
+
+#ifdef _MSC_VER
+#pragma warning(default : 4200)
+#endif
+
 #if defined(_MSC_VER)
 #pragma pack()
 #endif