Mercurial > mm7
view Engine/Graphics/LightmapBuilder.h @ 2563:65c97624c047
Saving & loading works from both main menu and game
author | a.parshin |
---|---|
date | Tue, 19 May 2015 22:00:56 +0200 |
parents | b8a56afc6ba1 |
children | f2f2595fe308 |
line wrap: on
line source
#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); signed int NumVertices; RenderVertexSoft pVertices[64]; __int16 position_x; //позиция источника света __int16 position_y; __int16 position_z; __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); void DrawLightmapsType(int type); void 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 LightsData *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 LightsData *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 StationaryLights[512];//std__vector_000004 unsigned int StationaryLightsCount;//std__vector_000004_size Lightmap MobileLights[768];//std__vector_183808 unsigned int MobileLightsCount;//std__vector_183808_size float light_length_x; float light_length_y; float light_length_z; float light_length_x2; float light_length_y2; float light_length_z2; float tex_light_radius;//flt_3C8C24; float flt_3C8C28; float flt_3C8C2C_lightmaps_brightness; float light_radius; 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;