MCPcopy Create free account
hub / github.com/OGSR/OGSR-Engine / level_Load

Method level_Load

ogsr_engine/Layers/xrRenderPC_R4/r4_loader.cpp:21–157  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

19#include "../xrRenderDX10/3DFluid/dx103DFluidVolume.h"
20
21void CRender::level_Load(IReader* fs)
22{
23 R_ASSERT(0 != g_pGameLevel);
24 R_ASSERT(!b_loaded);
25
26 u32 m_base, c_base, m_lmaps, c_lmaps;
27 Device.m_pRender->ResourcesGetMemoryUsage(m_base, c_base, m_lmaps, c_lmaps);
28
29 Msg("~ LevelResources load...");
30 Msg("~ LevelResources - base: %d, %d K", c_base, m_base / 1024);
31 Msg("~ LevelResources - lmap: %d, %d K", c_lmaps, m_lmaps / 1024);
32
33 // Begin
34 pApp->LoadBegin();
35 Device.m_pRender->DeferredLoad(TRUE);
36
37 IReader* chunk;
38
39 // Shaders
40 g_pGamePersistent->LoadTitle("st_loading_shaders");
41 {
42 chunk = fs->open_chunk(fsL_SHADERS);
43 R_ASSERT(chunk, "Level doesn't builded correctly.");
44 const u32 count = chunk->r_u32();
45 Shaders.resize(count);
46 for (u32 i = 0; i < count; i++) // skip first shader as "reserved" one
47 {
48 string512 n_sh, n_tlist;
49 LPCSTR n = LPCSTR(chunk->pointer());
50 chunk->skip_stringZ();
51 if (0 == n[0])
52 continue;
53 xr_strcpy(n_sh, n);
54 const LPSTR delim = strchr(n_sh, '/');
55 *delim = 0;
56 xr_strcpy(n_tlist, delim + 1);
57 Shaders[i] = dxRenderDeviceRender::Instance().Resources->Create(n_sh, n_tlist);
58 }
59 chunk->close();
60 }
61
62 // Components
63 Wallmarks = xr_new<CWallmarksEngine>();
64 Details = xr_new<CDetailManager>();
65
66 {
67 // VB,IB,SWI
68 g_pGamePersistent->LoadTitle("st_loading_geometry");
69 {
70 CStreamReader* geom = FS.rs_open(fsgame::level, fsgame::level_files::level_geom);
71 R_ASSERT(geom, "level.geom");
72 LoadBuffers(geom, FALSE);
73 LoadSWIs(geom);
74 FS.r_close(geom);
75 }
76
77 //...and alternate/fast geometry
78 {

Callers 1

LoadMethod · 0.80

Calls 15

MsgFunction · 0.85
fis_zeroFunction · 0.85
LoadBeginMethod · 0.80
DeferredLoadMethod · 0.80
LoadTitleMethod · 0.80
pointerMethod · 0.80
skip_stringZMethod · 0.80
rs_openMethod · 0.80
r_closeMethod · 0.80
existMethod · 0.80
line_existMethod · 0.80

Tested by

no test coverage detected