diff Engine/Graphics/LightmapBuilder.h @ 2496:5abd8fc8f1c6

for ITEM_ARTIFACT_LADYS_ESCORT
author Ritor1
date Thu, 18 Sep 2014 17:38:54 +0600
parents
children f6de3e15d4a5
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Engine/Graphics/LightmapBuilder.h	Thu Sep 18 17:38:54 2014 +0600
@@ -0,0 +1,93 @@
+#pragma once
+#include <vector>
+#include "Render.h"
+
+struct LightsStack_StationaryLight_;
+struct LightsStack_MobileLight_;
+
+/*  115 */
+#pragma pack(push, 1)
+struct Lightmap
+{
+  Lightmap();
+  virtual ~Lightmap() {}
+
+  //void ( ***vdestructor_ptr)(Lightmap *, bool);
+  unsigned int uNumVertices;
+  RenderVertexSoft pVertices[64];
+  __int16 field_C08;
+  __int16 field_C0A;
+  __int16 field_C0C;
+  __int16 field_C0E;
+  unsigned int uColorMask;
+  float fBrightness;
+  int field_C18;
+};
+#pragma pack(pop)
+
+
+/*  114 */
+#pragma pack(push, 1)
+class LightmapBuilder
+{
+public:
+  LightmapBuilder();
+  virtual ~LightmapBuilder() //----- (0045BBAA)
+  {}
+
+  void Draw_183808_Lightmaps();
+  //bool DrawLightmap(Lightmap *a1, Vec3_float_ *pColorMult, float z_bias);
+  bool DoDraw_183808_Lightmaps(float a2);
+  bool DrawLightmaps(int *indices = nullptr);
+  void DrawLightmapsType(int type);
+  bool DrawDebugOutlines(char bit_one_for_list1__bit_two_for_list2);
+  double _45D643_sw(struct Edge *a1, float a2);
+  //int _45D426_sw(struct Span *a1, struct Edge **a2, unsigned int a3, struct Edge *a4, int a5);
+  //bool _45D3C7_sw(struct Polygon *a1);
+  bool StackLight_TerrainFace(struct StationaryLight *pLight, struct Vec3_float_ *pNormal, float *a3, struct RenderVertexSoft *a1, unsigned int uStripType, int X, unsigned int *pSlot);
+  bool StackLights_TerrainFace(struct Vec3_float_ *pNormal, float *a3, struct RenderVertexSoft *a1, unsigned int uStripType, bool bLightBackfaces);
+  bool ApplyLight_ODM(struct StationaryLight *pLight, struct ODMFace *pFace, unsigned int *pSlot, char a4);
+  bool ApplyLights_OutdoorFace(struct ODMFace *pFace);
+  double _45CC0C_light(struct Vec3_float_ a1, float a2, float a3, struct Vec3_float_ *pNormal, float a5, int uLightType);
+  int _45CBD4(struct RenderVertexSoft *a2, int a3, int *a4, int *a5);
+  int _45CB89(struct RenderVertexSoft *a1, int a2);
+  int _45CA88(struct stru320 *a2, struct RenderVertexSoft *a3, int a4, struct Vec3_float_ *pNormal);
+  bool ApplyLight_BLV(struct StationaryLight *pLight, struct BLVFace *a2, unsigned int *pSlot, bool bLightBackfaces, char *a5);
+  bool ApplyLights_IndoorFace(unsigned int uFaceID);
+  int _45C6D6(int a2, struct RenderVertexSoft *a3, Lightmap *pLightmap);
+  int _45C4B9(int a2, struct RenderVertexSoft *a3, Lightmap *pLightmap);
+  bool _45BE86_build_light_polygon(Vec3_int_ *pos, float radius, unsigned int uColorMask, float dot_dist, int uLightType, struct stru314 *a7, unsigned int uNumVertices, RenderVertexSoft *a9, char uClipFlag);
+  bool ApplyLights(struct stru320 *a2, struct stru154 *a3, unsigned int uNumVertices, struct RenderVertexSoft *a5, struct IndoorCameraD3D_Vec4 *, char uClipFlag);
+
+
+  //void ( ***vdestructor_ptr)(LightmapBuilder *, bool);
+  //std::vector<Lightmap> std__vector_000004;
+  //std::vector<Lightmap> std__vector_183808;
+  Lightmap std__vector_000004[512];
+  unsigned int std__vector_000004_size;
+  Lightmap std__vector_183808[768];
+  unsigned int std__vector_183808_size;
+  float flt_3C8C0C;
+  float flt_3C8C10;
+  float flt_3C8C14;
+  float flt_3C8C18;
+  float flt_3C8C1C;
+  float flt_3C8C20;
+  float flt_3C8C24;
+  float flt_3C8C28;
+  float flt_3C8C2C_lightmaps_brightness;
+  float flt_3C8C30;
+  RenderVertexSoft field_3C8C34[256];
+  int uFlags;
+};
+#pragma pack(pop)
+
+
+
+
+extern LightsStack_StationaryLight_ *pStationaryLightsStack;
+//extern StationaryLight pStationaryLights[400];
+//extern int uNumStationaryLightsApplied; // weak
+extern LightsStack_MobileLight_ *pMobileLightsStack;
+//extern MobileLight pMobileLights[400];
+//extern int uNumMobileLightsApplied;
\ No newline at end of file