1 #ifndef __GNUC__ 2 #pragma once 3 #endif 4 #ifndef __XR_BLENDER_H__ 5 #define __XR_BLENDER_H__ 6 7 #include "xr_types.h" 8 9 namespace xray_re { 10 11 class xr_reader; 12 class xr_writer; 13 14 struct blender_desc { 15 uint64_t clsid; 16 char name[128]; 17 char owner[32]; 18 uint32_t time; 19 uint16_t version; 20 uint16_t __unused_; 21 }; 22 23 class xr_blender { 24 public: 25 virtual ~xr_blender(); 26 27 virtual void load(xr_reader& r); 28 virtual void save(xr_writer& w) const; 29 30 virtual const char* comment() const = 0; 31 virtual bool can_be_detailed() const; 32 virtual bool can_be_lmapped() const; 33 34 protected: 35 blender_desc m_desc; 36 }; 37 38 class xr_blender_accum_direct: public xr_blender { 39 public: 40 }; 41 42 class xr_blender_accum_direct_mask: public xr_blender { 43 public: 44 }; 45 46 class xr_blender_accum_point: public xr_blender { 47 public: 48 }; 49 50 class xr_blender_accum_reflected: public xr_blender { 51 public: 52 }; 53 54 class xr_blender_accum_spot: public xr_blender { 55 public: 56 }; 57 58 class xr_blender_bloom_build: public xr_blender { 59 public: 60 }; 61 62 class xr_blender_blur: public xr_blender { 63 public: 64 virtual const char* comment() const; 65 }; 66 67 class xr_blender_bmmd: public xr_blender { 68 public: 69 virtual const char* comment() const; 70 virtual bool can_be_detailed() const; 71 virtual bool can_be_lmapped() const; 72 }; 73 74 class xr_blender_combine: public xr_blender { 75 public: 76 }; 77 78 class xr_blender_default: public xr_blender { 79 public: 80 virtual const char* comment() const; 81 virtual bool can_be_detailed() const; 82 virtual bool can_be_lmapped() const; 83 }; 84 85 class xr_blender_default_aref: public xr_blender { 86 public: 87 virtual const char* comment() const; 88 virtual bool can_be_detailed() const; 89 virtual bool can_be_lmapped() const; 90 }; 91 92 class xr_blender_deffer_aref: public xr_blender { 93 public: 94 }; 95 96 class xr_blender_deffer_flat: public xr_blender { 97 public: 98 }; 99 100 class xr_blender_deffer_model: public xr_blender { 101 public: 102 }; 103 104 class xr_blender_detail_still: public xr_blender { 105 public: 106 virtual const char* comment() const; 107 }; 108 109 class xr_blender_editor_selection: public xr_blender { 110 public: 111 virtual const char* comment() const; 112 }; 113 114 class xr_blender_editor_wire: public xr_blender { 115 public: 116 virtual const char* comment() const; 117 }; 118 119 class xr_blender_la_em_b: public xr_blender { 120 public: 121 virtual const char* comment() const; 122 virtual bool can_be_lmapped() const; 123 }; 124 125 class xr_blender_light_occq: public xr_blender { 126 public: 127 }; 128 129 class xr_blender_lm_eb_b: public xr_blender { 130 public: 131 virtual const char* comment() const; 132 virtual bool can_be_lmapped() const; 133 }; 134 135 class xr_blender_luminance: public xr_blender { 136 public: 137 }; 138 139 class xr_blender_model: public xr_blender { 140 public: 141 virtual const char* comment() const; 142 }; 143 144 class xr_blender_model_eb_b: public xr_blender { 145 public: 146 virtual const char* comment() const; 147 }; 148 149 class xr_blender_particle: public xr_blender { 150 public: 151 virtual const char* comment() const; 152 }; 153 154 class xr_blender_screen_gray: public xr_blender { 155 public: 156 virtual const char* comment() const; 157 }; 158 159 class xr_blender_screen_set: public xr_blender { 160 public: 161 virtual const char* comment() const; 162 }; 163 164 class xr_blender_sh_world: public xr_blender { 165 public: 166 virtual const char* comment() const; 167 }; 168 169 class xr_blender_tree: public xr_blender { 170 public: 171 virtual const char* comment() const; 172 virtual bool can_be_detailed() const; 173 }; 174 175 class xr_blender_vertex: public xr_blender { 176 public: 177 virtual const char* comment() const; 178 virtual bool can_be_detailed() const; 179 }; 180 181 class xr_blender_vertex_aref: public xr_blender { 182 public: 183 virtual const char* comment() const; 184 }; 185 186 xr_blender* create_blender(uint64_t clsid); 187 188 } // end of namespace xray_re 189 190 #endif 191