// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // File : W0Wvx.h // Purpose : The class that controls a 3D display (CWOWvx) // Path : // Created : 17.6.7 // Author : Phil Palmer (http://www.programmerart.org) // Info : // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #ifndef __H_WOWVX__ #define __H_WOWVX__ // ***********************> defines <*********************** // PP(13.9.7): number of bytes in the header code, including the EDC #define WOWVX_NUM_BYTES_IN_HEADER_CODE int( 10) // ***********************> prototypes <*********************** class CLockableTexture; // ***********************> classes, structs <*********************** // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Class : CWOWvx // Purpose : The class that controls a 3D display (CWOWvx) // Info : // Author : Phil Palmer (http://www.programmerart.org)(17.6.7) // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ class CWOWvx { CLockableTexture* pHeaderTexture; UCHAR headerCode[WOWVX_NUM_BYTES_IN_HEADER_CODE]; union { UINT allFlags; struct { UINT codeDirty : 1; UINT textureDirty : 1; }; } flags; public: // PP(17.6.7): constructor CWOWvx(void); // PP(17.6.7): destructor ~CWOWvx(void); // PP(18.9.7): Apply options void ApplyOptions(void); // PP(18.9.7): Generate the header code // PP(13.9.7): **** DON'T CALL THIS EVERY FRAME!!!! **** void GenerateHeaderCode(void); // PP(13.9.7): Generate the header texture // PP(13.9.7): **** DON'T CALL THIS EVERY FRAME!!!! **** void GenerateHeaderTexture(void); // PP(17.6.7): render the 3D display effect void Render(void); }; #endif// PP(17.6.7): ndef __H_WOWVX__