233static unsigned type_count;
239static unsigned lensflare_count;
250bool DazzleRenderObjClass::_dazzle_rendering_enabled =
true;
253static void Init_Shaders()
304 if (section !=
NULL && entry !=
NULL) {
306 if (entryptr && entryptr->
Value !=
NULL) {
308 if ( sscanf( entryptr->
Value,
"%f,%f", &ret[0], &ret[1], &ret[2] ) == 2 ) {
318 if (section !=
NULL && entry !=
NULL) {
320 if (entryptr && entryptr->
Value !=
NULL) {
322 if ( sscanf( entryptr->
Value,
"%f,%f,%f", &ret[0], &ret[1], &ret[2] ) == 3 ) {
332 if (section !=
NULL && entry !=
NULL) {
334 if (entryptr && entryptr->
Value !=
NULL) {
336 if ( sscanf( entryptr->
Value,
"%f,%f,%f,%f", &ret[0], &ret[1], &ret[2], &ret[3] ) == 4 ) {
353LensflareTypeClass::~LensflareTypeClass()
370 float screen_x_scale,
371 float screen_y_scale,
372 float dazzle_intensity,
373 const Vector4& transformed_location)
378 float z=transformed_location[2];
380 float distance_multiplier=sqrt(transformed_location[0]*transformed_location[0]+transformed_location[1]*transformed_location[1])+1.0f;
382 for (
int a=0;a<lic.flare_count;++a) {
383 float x=lic.flare_locations[a]*transformed_location[0];
384 float y=lic.flare_locations[a]*transformed_location[1];
385 float size=lic.flare_sizes[a]*distance_multiplier;
386 float ix=size*screen_x_scale;
387 float iy=size*screen_y_scale;
389 Vector3 col=lic.flare_colors[a]*dazzle_intensity;
390 if (col[0]>1.0f) col[0]=1.0f;
391 if (col[1]>1.0f) col[1]=1.0f;
392 if (col[2]>1.0f) col[2]=1.0f;
398 vertex->
u1=lic.flare_uv[a][0];
399 vertex->
v1=lic.flare_uv[a][1];
406 vertex->
u1=lic.flare_uv[a][2];
407 vertex->
v1=lic.flare_uv[a][1];
414 vertex->
u1=lic.flare_uv[a][2];
415 vertex->
v1=lic.flare_uv[a][3];
422 vertex->
u1=lic.flare_uv[a][0];
423 vertex->
v1=lic.flare_uv[a][3];
436 dazzle_shader(default_dazzle_shader),
437 halo_shader(default_halo_shader),
438 primary_texture(
NULL),
439 secondary_texture(
NULL),
443 fadeout_end_sqr=ic.fadeout_end*ic.fadeout_end;
444 fadeout_start_sqr=ic.fadeout_start*ic.fadeout_start;
445 dazzle_test_color_integer=
447 (unsigned(255.0f*ic.dazzle_test_color[2])<<16)|
448 (unsigned(255.0f*ic.dazzle_test_color[1])<<8)|
449 (unsigned(255.0f*ic.dazzle_test_color[0]));
450 dazzle_test_mask_integer=dazzle_test_color_integer&0xf8f8f8f8;
453DazzleTypeClass::~DazzleTypeClass()
477 if (!primary_texture) {
479 if ( primary_texture ) {
483 return primary_texture;
490 if (!secondary_texture) {
492 if ( secondary_texture ) {
496 return secondary_texture;
502 float& dazzle_intensity,
504 float& halo_intensity,
508 float distance)
const
511 dazzle_intensity = dot;
513 if (ic.use_camera_translation && distance>(fadeout_end_sqr)) {
514 dazzle_intensity=0.0f;
518 dazzle_intensity-=1.0f-ic.dazzle_area;
519 dazzle_intensity/=ic.dazzle_area;
521 if (ic.dazzle_direction_area>0.0f) {
523 angle-=1.0f-ic.dazzle_direction_area;
524 angle/=ic.dazzle_direction_area;
526 dazzle_intensity*=angle;
529 if (dazzle_intensity>0.0f) {
530 dazzle_size=pow(dazzle_intensity,ic.dazzle_size_pow);
531 dazzle_intensity=pow(dazzle_intensity,ic.dazzle_intensity_pow);
534 dazzle_intensity=0.0f;
539 float scale = powf(dot, ic.halo_intensity_pow);
540 halo_intensity *=
scale;
542 halo_intensity = 0.0f;
546 dazzle_intensity*=ic.dazzle_intensity;
547 halo_intensity*=ic.halo_intensity;
550 if (ic.use_camera_translation) {
551 if (distance>(fadeout_start_sqr)) {
552 distance=sqrt(distance);
553 distance-=ic.fadeout_start;
554 distance/=ic.fadeout_end-ic.fadeout_start;
555 dazzle_intensity*=1.0f-distance;
556 halo_intensity*=1.0f-distance;
574 for ( entry = 0; entry < count; entry++ ) {
575 char section_name[80];
581 sizeof( section_name ));
619 lensflares[entry]->name=section_name;
623 for ( entry = 0; entry < count; entry++ ) {
624 char section_name[80];
630 sizeof( section_name ));
674 types[entry]->name=section_name;
684 if (i.
type>=type_count) {
685 unsigned new_count=i.
type+1;
687 for (
unsigned a=0;a<type_count;++a) {
688 new_types[a]=types[a];
690 for (;a<new_count;++a) {
695 type_count=new_count;
697 delete types[i.
type];
707 if (i.
type>=lensflare_count) {
708 unsigned new_count=i.
type+1;
710 for (
unsigned a=0;a<lensflare_count;++a) {
711 new_lensflares[a]=lensflares[a];
713 for (;a<new_count;++a) {
717 lensflares=new_lensflares;
718 lensflare_count=new_count;
720 delete lensflares[i.
type];
730 for (
unsigned a=0;a<type_count;++a) {
740 for (
unsigned a=0;a<lensflare_count;++a) {
741 delete lensflares[a];
752 if (visibility_handler ==
NULL) {
753 _VisibilityHandler = &_DefaultVisibilityHandler;
755 _VisibilityHandler = visibility_handler;
771 current_dazzle_intensity(0.0f),
772 current_dazzle_size(0.0f),
773 dazzle_color(1.0f,1.0f,1.0f),
774 halo_color(1.0f,1.0f,1.0f),
775 lensflare_intensity(1.0f),
780 if (types && types[t]) {
781 radius = types[t]->radius;
799 current_dazzle_intensity(0.0f),
800 current_dazzle_size(0.0f),
801 dazzle_color(1.0f,1.0f,1.0f),
802 halo_color(1.0f,1.0f,1.0f),
803 lensflare_intensity(1.0f),
809 if (types && types[
id]) {
810 radius = types[id]->radius;
828 current_dazzle_intensity(src.current_dazzle_intensity),
829 current_dazzle_size(src.current_dazzle_size),
830 current_dir(src.current_dir),
831 dazzle_color(src.dazzle_color),
832 halo_color(src.halo_color),
833 lensflare_intensity(src.lensflare_intensity),
835 visibility(src.visibility),
837 current_scale(src.current_scale)
845 current_dir=src.current_dir;
846 current_dazzle_intensity=src.current_dazzle_intensity;
847 current_dazzle_size=src.current_dazzle_size;
848 dazzle_color=src.dazzle_color;
849 halo_color=src.halo_color;
850 lensflare_intensity=src.lensflare_intensity;
851 visibility=src.visibility;
854 current_scale = src.current_scale;
861 sphere.
Radius = radius * current_scale;
868 box.
Extent *= current_scale;
883 if (type>=type_count)
return;
886 succ = layer->visible_lists[type];
887 layer->visible_lists[type] =
this;
894 current_dazzle_layer = layer;
920 _dazzle_rendering_enabled &&
929 float wrapped_time = fmodf(elapsed_time,ic.
blink_period);
938 if (is_on ==
false) {
945 Matrix4x4 view_transform,projection_transform;
949 Vector3 camera_dir(-view_transform[2][0],-view_transform[2][1],-view_transform[2][2]);
955 transformed_loc=view_transform*loc;
956 transformed_loc=projection_transform*transformed_loc;
957 transformed_loc[0]/=transformed_loc[3];
958 transformed_loc[1]/=transformed_loc[3];
959 transformed_loc[2]/=transformed_loc[3];
960 transformed_loc[3]=1.0f;
961 current_vloc=
Vector3(transformed_loc[0],transformed_loc[1],transformed_loc[2]);
963 float dazzle_intensity=1.0f;
966 current_distance=
dir.Length2();
970 current_halo_intensity=1.0f;
972 params->
Calculate_Intensities(dazzle_intensity,dazzle_size,current_halo_intensity,camera_dir,current_dir,
dir,current_distance);
975 if (time_ms==0) time_ms=1;
976 float weight=pow(params->ic.history_weight,time_ms);
978 if (dazzle_intensity>0.0f) {
979 visibility = _VisibilityHandler->Compute_Dazzle_Visibility(rinfo,
this,loc);
981 dazzle_intensity*=visibility;
986 if (visibility == 0.0f) {
988 float i=dazzle_intensity*(1.0f-weight)+current_dazzle_intensity*weight;
989 current_dazzle_intensity=i;
990 if (current_dazzle_intensity<0.05f) current_dazzle_intensity=0.0f;
993 float s=dazzle_size*(1.0f-weight)+current_dazzle_size*weight;
994 current_dazzle_size=s;
998 current_dazzle_intensity = dazzle_intensity;
999 current_dazzle_size = dazzle_size;
1005 if ( current_dazzle_intensity>0.0f || current_halo_intensity>0.0f) {
1015void DazzleRenderObjClass::Render_Dazzle(
CameraClass* camera)
1027 old_view_transform=view_transform;
1028 old_world_transform=world_transform;
1029 old_projection_transform=projection_transform;
1031 Vector3 camera_dir(-view_transform[2][0],-view_transform[2][1],-view_transform[2][2]);
1033 int display_width,display_height,display_bits;
1036 float w=float(display_width);
1037 float h=float(display_height);
1038 float screen_x_scale=1.0f;
1039 float screen_y_scale=1.0f;
1056 float dazzle_scale_x=types[type]->ic.
dazzle_scale_x * current_scale;
1057 float dazzle_scale_y=types[type]->ic.
dazzle_scale_y * current_scale;
1062 const DazzleTypeClass* params=types[type];
1064 int halo_vertex_count=0;
1065 int dazzle_vertex_count=0;
1066 int lensflare_vertex_count=0;
1070 int lens_max_verts=0;
1079 VertexFormatXYZNDUV2* verts=lock.Get_Formatted_Vertex_Array();
1081 float halo_size=1.0f;
1083 Vector3 dazzle_dxt(screen_x_scale,0.0f,0.0f);
1084 Vector3 halo_dxt=dazzle_dxt*halo_scale_x;
1085 dazzle_dxt*=dazzle_scale_x;
1087 Vector3 dazzle_dyt(0.0f,screen_y_scale,0.0f);
1088 Vector3 halo_dyt=dazzle_dyt*halo_scale_y;
1089 dazzle_dyt*=dazzle_scale_y;
1091 if (current_dazzle_intensity>0.0f) {
1092 VertexFormatXYZNDUV2* vertex=verts;
1093 dazzle_vertex_count+=4;
1099 col*=current_dazzle_intensity;
1101 if (col[0]>1.0f) col[0]=1.0f;
1102 if (col[1]>1.0f) col[1]=1.0f;
1103 if (col[2]>1.0f) col[2]=1.0f;
1107 dl=current_vloc+(dazzle_dxt-dazzle_dyt)*current_dazzle_size;
1108 reinterpret_cast<Vector3&
>(vertex->
x)=dl;
1114 dl=current_vloc+(dazzle_dxt+dazzle_dyt)*current_dazzle_size;
1115 reinterpret_cast<Vector3&
>(vertex->
x)=dl;
1121 dl=current_vloc-(dazzle_dxt-dazzle_dyt)*current_dazzle_size;
1122 reinterpret_cast<Vector3&
>(vertex->
x)=dl;
1128 dl=current_vloc-(dazzle_dxt+dazzle_dyt)*current_dazzle_size;
1129 reinterpret_cast<Vector3&
>(vertex->
x)=dl;
1135 if (current_halo_intensity) {
1136 VertexFormatXYZNDUV2* vertex=verts+dazzle_vertex_count;
1137 halo_vertex_count+=4;
1143 col*=current_halo_intensity;
1144 if (col[0]>1.0f) col[0]=1.0f;
1145 if (col[1]>1.0f) col[1]=1.0f;
1146 if (col[2]>1.0f) col[2]=1.0f;
1152 offset = (halo_dxt - halo_dyt) * halo_size;
1153 dl = current_vloc + offset;
1154 reinterpret_cast<Vector3&
>(vertex->
x)=dl;
1160 offset = (halo_dxt + halo_dyt) * halo_size;
1161 dl =current_vloc + offset;
1162 reinterpret_cast<Vector3&
>(vertex->
x)=dl;
1168 offset = -(halo_dxt - halo_dyt) * halo_size;
1169 dl = current_vloc + offset;
1170 reinterpret_cast<Vector3&
>(vertex->
x)=dl;
1176 offset = -(halo_dxt + halo_dyt) * halo_size;
1177 dl=current_vloc + offset;
1178 reinterpret_cast<Vector3&
>(vertex->
x)=dl;
1184 if (lensflare && current_dazzle_intensity>0.0f) {
1185 VertexFormatXYZNDUV2* vertex=verts+halo_vertex_count+dazzle_vertex_count;
1189 lensflare_vertex_count,
1192 current_dazzle_intensity * lensflare_intensity,
1194 vertex_count+=lensflare_vertex_count;
1198 int dazzle_poly_count=dazzle_vertex_count>>1;
1199 int halo_poly_count=halo_vertex_count>>1;
1200 int lensflare_poly_count=lensflare_vertex_count>>1;
1201 int poly_count=halo_poly_count>dazzle_poly_count ? halo_poly_count : dazzle_poly_count;
1202 if (lensflare_poly_count>poly_count) poly_count=lensflare_poly_count;
1212 unsigned short* inds=lock.Get_Index_Array();
1215 for (
int a=0;a<poly_count/2;a++) {
1217 *inds++=short(4*a+1);
1218 *inds++=short(4*a+2);
1220 *inds++=short(4*a+2);
1221 *inds++=short(4*a+3);
1229 if (halo_poly_count) {
1238 if (dazzle_poly_count) {
1242 SphereClass sphere(Vector3(0.0f,0.0f,0.0f),0.0f);
1246 if (lensflare_poly_count) {
1250 SphereClass sphere(Vector3(0.0f,0.0f,0.0f),0.0f);
1264 if (type<type_count) {
1278 for (
unsigned a=0;a<type_count;++a) {
1279 if (types[a] && types[a]->name==name)
return a;
1295 if ((
id < type_count) && (
id >= 0)) {
1296 return types[id]->name;
1312 if (
id>=type_count)
return NULL;
1325 for (
unsigned a=0;a<lensflare_count;++a) {
1326 if (lensflares[a] && lensflares[a]->name==name)
return a;
1341 if (
id>=lensflare_count)
return NULL;
1342 return lensflares[id];
1365 tm.
Look_At(daz_point,cam_point,0.0f);
1380 float scale_x=types[type]->ic.halo_scale_x;
1381 if ((scale_x < 0.001f) && (types[type]->ic.dazzle_scale_x > scale_x)) {
1382 scale_x = types[type]->ic.dazzle_scale_x;
1386 if ((scale_y < 0.001f) && (types[type]->ic.dazzle_scale_y > scale_y)) {
1390 float dist = (daz_point - cam_point).Length();
1391 Vector3 dxt(dist * scale_x / (view_max.
X - view_min.
X),0.0f,0.0f);
1392 Vector3 dyt(0.0f,dist * scale_y / (view_max.
Y - view_min.
Y),0.0f);
1394 verts[0].
Set(dxt+dyt);
1395 verts[1].
Set(dxt-dyt);
1396 verts[2].
Set(-dxt-dyt);
1397 verts[3].
Set(-dxt+dyt);
1400 float extent = 1.1f * (dxt+dyt).Length();
1401 bounds.
Center = daz_point;
1402 bounds.
Extent.
Set(extent,extent,extent);
1415 vis_render_dazzle(rinfo);
1434 virtual uint32 Chunk_ID(
void)
const;
1440 DAZZLEFACTORY_CHUNKID_VARIABLES = 1212000336,
1441 DAZZLEFACTORY_VARIABLE_OBJPOINTER = 0x00,
1442 OBSOLETE_DAZZLEFACTORY_VARIABLE_TYPE,
1443 DAZZLEFACTORY_VARIABLE_TRANSFORM,
1444 DAZZLEFACTORY_VARIABLE_TYPENAME,
1450uint32 DazzlePersistFactoryClass::Chunk_ID(
void)
const
1457 DazzleRenderObjClass * old_obj =
NULL;
1459 char dazzle_type[256];
1468 case DAZZLEFACTORY_CHUNKID_VARIABLES:
1481 WWDEBUG_SAY((
"Unhandled Chunk: 0x%X File: %s Line: %d\r\n",__FILE__,__LINE__));
1491 if (strlen(dazzle_type) > 0) {
1494 RenderObjClass * new_obj =
NEW_REF(DazzleRenderObjClass,(dazzle_type));
1499 if (new_obj ==
NULL) {
1500 static int count = 0;
1501 if ( ++count < 10 ) {
1502 WWDEBUG_SAY((
"DazzlePersistFactory failed to create dazzle of type: %s!!\r\n",dazzle_type));
1503 WWDEBUG_SAY((
"Replacing it with a NULL render object!\r\n"));
1522 DazzleRenderObjClass * robj = (DazzleRenderObjClass *)obj;
1527 csave.
Begin_Chunk(DAZZLEFACTORY_CHUNKID_VARIABLES);
1541 return _DazzleFactory;
1554 if (type_count != 0) {
1561 visible_lists =
W3DNEWARRAY DazzleRenderObjClass *[type_count];
1562 for (
unsigned int i = 0; i < type_count; i++) {
1563 visible_lists[i] =
NULL;
1573 for (
unsigned int i = 0; i < type_count; i++) {
1574 Clear_Visible_List(i);
1577 delete [] visible_lists;
1582 if (!camera)
return;
1587 if (time_ms==0) time_ms=1;
1591 for (
unsigned type=0;type<type_count;++type) {
1592 if (!types[type])
continue;
1593 int count = Get_Visible_Item_Count(type);
1595 if (!count)
continue;
1597 DazzleRenderObjClass* n = visible_lists[type];
1599 n->Render_Dazzle(camera);
1604 Clear_Visible_List(type);
1610int DazzleLayerClass::Get_Visible_Item_Count(
unsigned int type)
const
1612 if (type >= type_count) {
1619 DazzleRenderObjClass* n = visible_lists[type];
1629void DazzleLayerClass::Clear_Visible_List(
unsigned int type)
1631 if (type >= type_count) {
1637 DazzleRenderObjClass* n = visible_lists[type];
1644 visible_lists[type] =
NULL;
1667 while ((scene ==
NULL) && (container !=
NULL)) {
1675 if (scene !=
NULL) {
1713 if (DazzleType == UINT_MAX) {
Color scale(const Color &a, const Color &b)
@ W3D_CHUNK_DAZZLE_TYPENAME
#define WRITE_MICRO_CHUNK(csave, id, var)
#define READ_WWSTRING_CHUNK(cload, id, var)
#define READ_MICRO_CHUNK_STRING(cload, id, var, size)
#define WRITE_MICRO_CHUNK_STRING(csave, id, var)
#define READ_MICRO_CHUNK(cload, id, var)
void Get_View_Plane(Vector2 &set_min, Vector2 &set_max) const
uint32 Cur_Micro_Chunk_ID()
bool Begin_Chunk(uint32 id)
static void Set_World_Identity()
static void Set_Vertex_Buffer(const VertexBufferClass *vb, unsigned stream=0)
static void Set_Texture(unsigned stage, TextureBaseClass *texture)
static void Set_View_Identity()
static void Set_Index_Buffer(const IndexBufferClass *ib, unsigned short index_base_offset)
static Vector4 Convert_Color(unsigned color)
static void Draw_Triangles(unsigned buffer_type, unsigned short start_index, unsigned short polygon_count, unsigned short min_vertex_index, unsigned short vertex_count)
static void Set_Material(const VertexMaterialClass *material)
static void Set_Shader(const ShaderClass &shader)
static void Get_Transform(D3DTRANSFORMSTATETYPE transform, Matrix4x4 &m)
static void Set_Transform(D3DTRANSFORMSTATETYPE transform, const Matrix4x4 &m)
static bool Is_Render_To_Texture(void)
const Vector4 Get_Vector4(char const *section, char const *entry, const Vector4 &defvalue=Vector4(0, 0, 0, 0)) const
const Vector2 Get_Vector2(char const *section, char const *entry, const Vector2 &defvalue=Vector2(0, 0))
const Vector3 Get_Vector3(char const *section, char const *entry, const Vector3 &defvalue=Vector3(0, 0, 0))
DazzleINIClass(FileClass &file)
bool use_camera_translation
Vector3 dazzle_test_color
StringClass primary_texture_name
float size_optimization_limit
StringClass secondary_texture_name
float dazzle_intensity_pow
float dazzle_direction_area
StringClass lensflare_name
void Render(CameraClass *camera)
virtual PrototypeClass * Load_W3D(ChunkLoadClass &cload)
WW3DErrorType Load_W3D(ChunkLoadClass &cload)
virtual RenderObjClass * Create(void)
static void Init_Lensflare(const LensflareInitClass &i)
static void Set_Current_Dazzle_Layer(DazzleLayerClass *layer)
DazzleRenderObjClass * Succ()
virtual void Get_Obj_Space_Bounding_Box(AABoxClass &box) const
DazzleRenderObjClass(unsigned type)
virtual void Special_Render(SpecialRenderInfoClass &rinfo)
virtual void Render(RenderInfoClass &rinfo)
static unsigned Get_Lensflare_ID(const char *name)
DazzleRenderObjClass & operator=(const DazzleRenderObjClass &)
static void Init_From_INI(const INIClass *ini)
static void Init_Type(const DazzleInitClass &i)
static unsigned Get_Type_ID(const char *name)
static LensflareTypeClass * Get_Lensflare_Class(unsigned id)
virtual void Set_Transform(const Matrix3D &m)
static const char * Get_Type_Name(unsigned int id)
virtual const PersistFactoryClass & Get_Factory(void) const
virtual RenderObjClass * Clone(void) const
void Set_Layer(DazzleLayerClass *layer)
virtual void Get_Obj_Space_Bounding_Sphere(SphereClass &sphere) const
static void Install_Dazzle_Visibility_Handler(const DazzleVisibilityClass *visibility_handler)
unsigned int Get_Dazzle_Type(void)
static DazzleTypeClass * Get_Type_Class(unsigned id)
void Set_Dazzle_Shader(const ShaderClass &s)
TextureClass * Get_Dazzle_Texture()
TextureClass * Get_Halo_Texture()
virtual void Calculate_Intensities(float &dazzle_intensity, float &dazzle_size, float &halo_intensity, const Vector3 &camera_dir, const Vector3 &dazzle_dir, const Vector3 &dir_to_dazzle, float distance) const
void Set_Halo_Shader(const ShaderClass &s)
virtual float Compute_Dazzle_Visibility(RenderInfoClass &rinfo, DazzleRenderObjClass *dazzle, const Vector3 &point) const
TPoint3D< int > const Get_Point(char const *section, char const *entry, TPoint3D< int > const &defvalue) const
float Get_Float(char const *section, char const *entry, float defvalue=0.0f) const
char const * Get_Entry(char const *section, int index) const
int Section_Count(void) const
int Get_Int(char const *section, char const *entry, int defvalue=0) const
int Get_String(char const *section, char const *entry, char const *defvalue, char *buffer, int size) const
int Entry_Count(char const *section) const
INIEntry * Find_Entry(char const *section, char const *entry) const
TextureClass * Get_Texture()
void Generate_Vertex_Buffers(VertexFormatXYZNDUV2 *vertex, int &vertex_count, float screen_x_scale, float screen_y_scale, float dazzle_intensity, const Vector4 &transformed_location)
Vector3 Rotate_Vector(const Vector3 &vect) const
WWINLINE Vector3 Get_Translation(void) const
void Look_At(const Vector3 &p, const Vector3 &t, float roll)
PersistFactoryClass(void)
WWINLINE void Release_Ref(void) const
Vector3 Get_Position(void) const
virtual void Set_Transform(const Matrix3D &m)
virtual int Is_Not_Hidden_At_All(void)
virtual SceneClass * Get_Scene(void)
const Matrix3D & Get_Transform(void) const
RenderObjClass * Get_Container(void) const
static void Register_Pointer(void *old_pointer, void *new_pointer)
virtual float Compute_Point_Visibility(RenderInfoClass &rinfo, const Vector3 &point)
VisRasterizerClass * VisRasterizer
int _cdecl Format(const TCHAR *format,...)
TPoint3D< T > const Normalize(void) const
static WWINLINE float Dot_Product(const Vector3 &a, const Vector3 &b)
WWINLINE void Set(float x, float y, float z)
CameraClass * Peek_Camera(void)
void Enable_Two_Sided_Rendering(bool onoff)
void Set_Model_Transform(const Matrix3D &model)
bool Render_Triangles(const Vector3 *verts, int vcount, const TriIndex *tris, int tcount, const AABoxClass &bounds)
virtual TextureClass * Get_Texture(const char *filename, MipCountType mip_level_count=MIP_LEVELS_ALL, WW3DFormat texture_format=WW3D_FORMAT_UNKNOWN, bool allow_compression=true, TextureBaseClass::TexAssetType type=TextureBaseClass::TEX_REGULAR, bool allow_reduction=true)
virtual RenderObjClass * Create_Render_Obj(const char *name)
static WW3DAssetManager * Get_Instance(void)
static unsigned int Get_Sync_Time(void)
static unsigned int Get_Frame_Time(void)
static void Get_Device_Resolution(int &set_w, int &set_h, int &get_bits, bool &get_windowed)
static float Clamp(float val, float min=0.0f, float max=1.0f)
const char * DAZZLE_INTENSITY_STRING
const char * USE_CAMERA_TRANSLATION
const char * DAZZLE_TEST_COLOR_STRING
const char * HALO_COLOR_STRING
const char * HALO_INTENSITY_POW
const char * DAZZLE_TEXTURE_STRING
const char * HALO_TEXTURE_STRING
const char * DAZZLE_SCALE_X_STRING
const char * BLINK_ON_TIME_STRING
const char * FLARE_LOCATION_STRING
const char * DAZZLE_LIST_STRING
const char * DAZZLE_COLOR_STRING
const char * FLARE_UV_STRING
const char * BLINK_PERIOD_STRING
const char * DAZZLE_AREA_STRING
const char * DAZZLE_DIRECTION_AREA_STRING
const char * DAZZLE_LENSFLARE_STRING
const char * FLARE_SIZE_STRING
DazzleLoaderClass _DazzleLoader
const char * HISTORY_WEIGHT_STRING
const char * LENSFLARE_TEXTURE_STRING
const char * FLARE_COUNT_STRING
const char * DAZZLE_DIRECTION_STRING
const char * HALO_SCALE_Y_STRING
const char * DAZZLE_INTENSITY_POW_STRING
const char * FADEOUT_START_STRING
const char * HALO_INTENSITY_STRING
const char * FADEOUT_END_STRING
const char * HALO_SCALE_X_STRING
const char * SIZE_OPTIMIZATION_LIMIT_STRING
const char * FLARE_COLOR_STRING
const char * RADIUS_STRING
const char * DAZZLE_SCALE_Y_STRING
const char * LENSFLARE_LIST_STRING
const char * DAZZLE_SIZE_POW_STRING
const unsigned dynamic_fvf_type
@ BUFFER_TYPE_DYNAMIC_DX8
#define REF_PTR_RELEASE(x)
@ WW3D_PERSIST_CHUNKID_DAZZLE