Skip to content

Commit

Permalink
Implemented c_rasterizer::shell_initialize
Browse files Browse the repository at this point in the history
  • Loading branch information
twist84 committed Oct 7, 2024
1 parent 06678d9 commit 25363a1
Show file tree
Hide file tree
Showing 17 changed files with 151 additions and 37 deletions.
8 changes: 8 additions & 0 deletions game/game.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -231,6 +231,10 @@ copy /b $(ProjectDir)source\config\version.cpp +,, $(ProjectDir)source\config\ve
<ClCompile Include="source\game\materials.cpp" />
<ClCompile Include="source\game\player_training.cpp" />
<ClCompile Include="source\game\survival_mode.cpp" />
<ClCompile Include="source\gpu_particle\beam_gpu.cpp" />
<ClCompile Include="source\gpu_particle\contrail_gpu.cpp" />
<ClCompile Include="source\gpu_particle\light_volume_gpu.cpp" />
<ClCompile Include="source\gpu_particle\particle_block.cpp" />
<ClCompile Include="source\interface\attract_mode.cpp" />
<ClCompile Include="source\interface\chud\chud_globals_definitions.cpp" />
<ClCompile Include="source\interface\chud\cortana_effect.cpp" />
Expand Down Expand Up @@ -301,11 +305,13 @@ copy /b $(ProjectDir)source\config\version.cpp +,, $(ProjectDir)source\config\ve
<ClCompile Include="source\physics\point_physics.cpp" />
<ClCompile Include="source\profiler\profiler.cpp" />
<ClCompile Include="source\profiler\profiler_stopwatch.cpp" />
<ClCompile Include="source\rasterizer\rasterizer_dynamic_render_targets.cpp" />
<ClCompile Include="source\rasterizer\rasterizer_memory.cpp" />
<ClCompile Include="source\rasterizer\rasterizer_render_targets.cpp" />
<ClCompile Include="source\render\camera_fx_settings.cpp" />
<ClCompile Include="source\render\depth_of_field.cpp" />
<ClCompile Include="source\render\render_game_state.cpp" />
<ClCompile Include="source\render\render_lens_flares.cpp" />
<ClCompile Include="source\render\render_transparents.cpp" />
<ClCompile Include="source\render\screen_postprocess.cpp" />
<ClCompile Include="source\render\simple_font.cpp" />
Expand Down Expand Up @@ -1121,8 +1127,10 @@ copy /b $(ProjectDir)source\config\version.cpp +,, $(ProjectDir)source\config\ve
<ClInclude Include="source\physics\point_physics.hpp" />
<ClInclude Include="source\profiler\profiler.hpp" />
<ClInclude Include="source\profiler\profiler_stopwatch.hpp" />
<ClInclude Include="source\rasterizer\rasterizer_dynamic_render_targets.hpp" />
<ClInclude Include="source\rasterizer\rasterizer_memory.hpp" />
<ClInclude Include="source\rasterizer\rasterizer_render_targets.hpp" />
<ClInclude Include="source\render\render_lens_flares.hpp" />
<ClInclude Include="source\render\render_transparents.hpp" />
<ClInclude Include="source\render\screen_postprocess.hpp" />
<ClInclude Include="source\render\simple_font.hpp" />
Expand Down
24 changes: 24 additions & 0 deletions game/game.vcxproj.filters
Original file line number Diff line number Diff line change
Expand Up @@ -1638,6 +1638,24 @@
<ClCompile Include="source\rasterizer\rasterizer_memory.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="source\gpu_particle\particle_block.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="source\gpu_particle\contrail_gpu.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="source\gpu_particle\light_volume_gpu.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="source\gpu_particle\beam_gpu.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="source\rasterizer\rasterizer_dynamic_render_targets.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="source\render\render_lens_flares.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="source\camera\camera.hpp">
Expand Down Expand Up @@ -3824,6 +3842,12 @@
<ClInclude Include="source\rasterizer\rasterizer_memory.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="source\rasterizer\rasterizer_dynamic_render_targets.hpp">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="source\render\render_lens_flares.hpp">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="resource\resource.rc">
Expand Down
7 changes: 7 additions & 0 deletions game/source/gpu_particle/beam_gpu.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#include "gpu_particle/beam_gpu.hpp"

void __cdecl c_beam_gpu::shell_initialize()
{
INVOKE(0x00A51B90, c_beam_gpu::shell_initialize);
}

3 changes: 3 additions & 0 deletions game/source/gpu_particle/beam_gpu.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@
struct c_beam_gpu :
s_datum_header
{
public:
static void __cdecl shell_initialize();

struct s_row :
s_datum_header
{
Expand Down
7 changes: 7 additions & 0 deletions game/source/gpu_particle/contrail_gpu.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#include "gpu_particle/contrail_gpu.hpp"

void __cdecl c_contrail_gpu::shell_initialize()
{
INVOKE(0x00A58460, c_contrail_gpu::shell_initialize);
}

3 changes: 3 additions & 0 deletions game/source/gpu_particle/contrail_gpu.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@
struct c_contrail_gpu :
s_datum_header
{
public:
static void __cdecl shell_initialize();

struct s_row :
s_datum_header
{
Expand Down
7 changes: 7 additions & 0 deletions game/source/gpu_particle/light_volume_gpu.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#include "gpu_particle/light_volume_gpu.hpp"

void __cdecl c_light_volume_gpu::shell_initialize()
{
INVOKE(0x00A5D6B0, c_light_volume_gpu::shell_initialize);
}

3 changes: 3 additions & 0 deletions game/source/gpu_particle/light_volume_gpu.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@
struct c_light_volume_gpu :
s_datum_header
{
public:
static void __cdecl shell_initialize();

struct s_row :
s_datum_header
{
Expand Down
7 changes: 7 additions & 0 deletions game/source/gpu_particle/particle_block.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#include "gpu_particle/particle_block.hpp"

void __cdecl c_particle_emitter_gpu::shell_initialize()
{
INVOKE(0x00A4E9F0, c_particle_emitter_gpu::shell_initialize);
}

3 changes: 3 additions & 0 deletions game/source/gpu_particle/particle_block.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@
struct c_particle_emitter_gpu :
s_datum_header
{
public:
static void __cdecl shell_initialize();

struct s_row :
s_datum_header
{
Expand Down
80 changes: 43 additions & 37 deletions game/source/rasterizer/rasterizer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,19 @@

#include "cseries/cseries.hpp"
#include "cseries/cseries_events.hpp"
#include "gpu_particle/beam_gpu.hpp"
#include "gpu_particle/contrail_gpu.hpp"
#include "gpu_particle/light_volume_gpu.hpp"
#include "gpu_particle/particle_block.hpp"
#include "main/global_preferences.hpp"
#include "main/main.hpp"
#include "memory/module.hpp"
#include "memory/thread_local.hpp"
#include "rasterizer/rasterizer_dynamic_render_targets.hpp"
#include "rasterizer/rasterizer_main.hpp"
#include "rasterizer/rasterizer_memory.hpp"
#include "rasterizer/rasterizer_resource_definitions.hpp"
#include "render/render_lens_flares.hpp"
#include "render/screen_postprocess.hpp"
#include "render_methods/render_method_submit.hpp"
#include "shell/shell.hpp"
Expand Down Expand Up @@ -301,44 +307,44 @@ void __cdecl c_rasterizer::shell_dispose()

void __cdecl c_rasterizer::shell_initialize(bool window_exists, bool windowed)
{
INVOKE(0x00A20370, shell_initialize, window_exists, windowed);
//INVOKE(0x00A20370, shell_initialize, window_exists, windowed);

//if (!c_rasterizer::initialized)
//{
// if (c_rasterizer::initialize_device(window_exists, windowed))
// {
// if (c_rasterizer::g_device)
// {
// c_particle_emitter_gpu::shell_initialize();
// c_contrail_gpu::shell_initialize();
// c_light_volume_gpu::shell_initialize();
// c_beam_gpu::shell_initialize();
// c_rasterizer_texture_ref::initialize();
// c_dynamic_render_targets::shell_initialize();
// c_rasterizer::initialize_after_device_creation_or_reset();
// rasterizer_memory_initialize();
// }
//
// c_rasterizer::initialized = true;
// }
//}
//else if (!c_rasterizer::initialized)
//{
// return;
//}
//
//TLS_DATA_GET_VALUE_REFERENCE(g_rasterizer_game_states);
//TLS_DATA_GET_VALUE_REFERENCE(g_hue_saturation_control_in_gamestate);
//
//g_rasterizer_game_states = (s_rasterizer_game_states*)g_rasterizer_game_states_allocator.allocate(sizeof(s_rasterizer_game_states), "rasterizer game states");
//g_rasterizer_game_states->motion_blur = true;
//g_rasterizer_game_states->atmosphere_fog = true;
//g_rasterizer_game_states->patchy_fog = true;
//g_rasterizer_game_states->weather = true;
//g_rasterizer_game_states->cinematic_motion_blur = false;
//
//g_hue_saturation_control_in_gamestate = (c_hue_saturation_control*)g_hue_saturation_control_allocator.allocate(sizeof(c_hue_saturation_control), "hue saturation control");
//*g_hue_saturation_control_in_gamestate = g_hue_saturation_control_default;
if (!c_rasterizer::initialized)
{
if (c_rasterizer::initialize_device(window_exists, windowed))
{
if (c_rasterizer::g_device)
{
c_particle_emitter_gpu::shell_initialize();
c_contrail_gpu::shell_initialize();
c_light_volume_gpu::shell_initialize();
c_beam_gpu::shell_initialize();
c_rasterizer_texture_ref::initialize();
c_dynamic_render_targets::shell_initialize();
c_rasterizer::initialize_after_device_creation_or_reset();
rasterizer_memory_initialize();
lens_flares_initialize();
}

c_rasterizer::initialized = true;
}

if (c_rasterizer::initialized)
{
TLS_DATA_GET_VALUE_REFERENCE(g_rasterizer_game_states);
TLS_DATA_GET_VALUE_REFERENCE(g_hue_saturation_control_in_gamestate);

g_rasterizer_game_states = (s_rasterizer_game_states*)g_rasterizer_game_states_allocator.allocate(sizeof(s_rasterizer_game_states), "rasterizer game states");
g_rasterizer_game_states->motion_blur = true;
g_rasterizer_game_states->atmosphere_fog = true;
g_rasterizer_game_states->patchy_fog = true;
g_rasterizer_game_states->weather = true;
g_rasterizer_game_states->cinematic_motion_blur = false;

g_hue_saturation_control_in_gamestate = (c_hue_saturation_control*)g_hue_saturation_control_allocator.allocate(sizeof(c_hue_saturation_control), "hue saturation control");
*g_hue_saturation_control_in_gamestate = g_hue_saturation_control_default;
}
}
}

void __cdecl c_rasterizer::set_render_resolution(long width, long height, bool fullscreen)
Expand Down
9 changes: 9 additions & 0 deletions game/source/rasterizer/rasterizer_dynamic_render_targets.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
#include "rasterizer/rasterizer_dynamic_render_targets.hpp"

#include "cseries/cseries.hpp"

void __cdecl c_dynamic_render_targets::shell_initialize()
{
INVOKE(0x00A750E0, c_dynamic_render_targets::shell_initialize);
}

8 changes: 8 additions & 0 deletions game/source/rasterizer/rasterizer_dynamic_render_targets.hpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#pragma once

struct c_dynamic_render_targets
{
public:
static void __cdecl shell_initialize();
};

5 changes: 5 additions & 0 deletions game/source/rasterizer/rasterizer_text.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,11 @@ IDirect3DTexture9* __cdecl c_rasterizer_texture_ref::get_d3d_texture() const
return DECLFUNC(0x00A6E8E0, IDirect3DTexture9*, __thiscall, c_rasterizer_texture_ref const*)(this);
}

void __cdecl c_rasterizer_texture_ref::initialize()
{
INVOKE(0x00A6E9C0, c_rasterizer_texture_ref::initialize);
}

void __cdecl c_rasterizer_texture_ref::release(c_rasterizer_texture_ref& texture_ref)
{
INVOKE(0x00A6EB10, c_rasterizer_texture_ref::release, texture_ref);
Expand Down
1 change: 1 addition & 0 deletions game/source/rasterizer/rasterizer_text.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ struct c_rasterizer_texture_ref
public:
static void __cdecl allocate(c_rasterizer_texture_ref& texture_ref, long width, long height, long levels, dword format, long a6, bool a7, long a8, long a9);
IDirect3DTexture9* __cdecl get_d3d_texture() const;
static void __cdecl initialize();
static void __cdecl release(c_rasterizer_texture_ref& texture_ref);

bool __cdecl valid();
Expand Down
9 changes: 9 additions & 0 deletions game/source/render/render_lens_flares.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
#include "render/render_lens_flares.hpp"

#include "cseries/cseries.hpp"

void __cdecl lens_flares_initialize()
{
INVOKE(0x00A5A8E0, lens_flares_initialize);
}

4 changes: 4 additions & 0 deletions game/source/render/render_lens_flares.hpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
#pragma once

extern void __cdecl lens_flares_initialize();

0 comments on commit 25363a1

Please sign in to comment.