1 #ifndef __GNUC__ 2 #pragma once 3 #endif 4 #ifndef __XR_SHADERS_XRLC_LIB_H__ 5 #define __XR_SHADERS_XRLC_LIB_H__ 6 7 #include <string> 8 #include <vector> 9 #include "xr_types.h" 10 11 namespace xray_re { 12 13 class xr_reader; 14 15 const size_t SHADER_XRLC_SIZE = 128 + 16; 16 17 struct xr_shader_xrlc { 18 std::string name; 19 union { 20 uint32_t dummy; 21 struct { 22 uint32_t collision:1; 23 uint32_t rendering:1; 24 uint32_t optimize_uv:1; 25 uint32_t light_vertex:1; 26 uint32_t light_cast_shadow:1; 27 uint32_t light_sharp:1; 28 uint32_t unused:26; 29 }; 30 }; 31 float vert_translucency; 32 float vert_ambient; 33 float lm_density; 34 }; 35 TYPEDEF_STD_VECTOR_PTR(xr_shader_xrlc)36TYPEDEF_STD_VECTOR_PTR(xr_shader_xrlc) 37 38 class xr_shaders_xrlc_lib { 39 public: 40 virtual ~xr_shaders_xrlc_lib(); 41 42 bool load(const char* path, const char* name); 43 void load(xr_reader& r); 44 45 const xr_shader_xrlc_vec& shaders() const; 46 47 private: 48 xr_shader_xrlc_vec m_shaders; 49 }; 50 shaders()51inline const xr_shader_xrlc_vec& xr_shaders_xrlc_lib::shaders() const { return m_shaders; } 52 53 } // end of namespace xray_re 54 55 #endif 56