Elaztek Developer Hub
Blamite Game Engine - blam!  00423.10.27.24.0533.blamite
The core library for the Blamite Game Engine.
rendering.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <stdint.h>
4 
5 #include <sdl2/SDL.h>
6 #include <sdl2/SDL_events.h>
7 
8 #include <OGRE/Hlms/Pbs/OgreHlmsPbsDatablock.h>
9 #include <OGRE/Hlms/Unlit/OgreHlmsUnlitDatablock.h>
10 #include <Strings/components/classes/map/map.h>
11 
12 #include <string>
13 #include <vector>
14 
18 #include "api/v1/types/tags.h"
20 
21 #ifndef BLAM
22 #define BLAM
23 #endif
24 
25 #define GUI_RENDER_QUEUE_GROUP_ID 200
26 #define BLAM_OGRE_RESOURCE_GROUP Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME
27 
28 struct material;
29 struct bitmap;
30 struct render_model;
31 struct light;
33 
41 {
43  std::string referencing_tag_path = "";
44  Ogre::HlmsDatablock* instance_datablock = nullptr;
45  material* tag_instance = nullptr;
46  bool needs_reload = false;
47  bool persistent_reload = false;
48 };
49 
57 {
58 public:
59  std::string tag_path = "";
60  Ogre::HlmsDatablock* datablock = nullptr;
61  bool needs_reload = false;
62  bool persistent_reload = false;
63  Ogre::HlmsTypes hlms_type = Ogre::HlmsTypes::HLMS_UNLIT;
64 
71  BlamMap<std::string, ogre_material_instance_data*> instances = BlamMap<std::string, ogre_material_instance_data*>();
72 
81 };
82 
87 {
88 
89 };
90 
94 namespace Blam::Rendering
95 {
102  BLAM bool Initialize();
103 
107  BLAM void RenderLoop();
108 
114  BLAM void RenderThread();
115 
126  BLAM void PauseRenderThread();
127 
131  BLAM void ResumeRenderThread();
132 
136  BLAM void Shutdown();
137 
143  BLAM void ProcessSDLEvents(SDL_Event* event);
144 
151 
160  BLAM void HandleWindowReisze(int width, int height);
161 
167  BLAM int GetRenderWidth();
168 
174  BLAM int GetRenderHeight();
175 
181  BLAM Ogre::Window* GetRenderWindow();
182 
188  BLAM double GetDeltaTime();
189 
193  BLAM void TakeScreenshot();
194 
198  BLAM void WriteScreenshot();
199 
205  BLAM Ogre::SceneManager* Get2DSceneManager();
206 
212  BLAM Ogre::Camera* Get2DCamera();
213 
221  BLAM void DisplayBasicCrashScreen(std::string additional_info = "");
222 
233  BLAM void DisplayDetailedCrashScreen(std::string expression, std::string file, int line, std::string message);
234 
240  BLAM bool GetImGuiHiddenState();
241 
242  BLAM BlamVector3 GetMousePosition3D();
243  BLAM BlamVector2 GetScreenPointFrom3DPoint(BlamVector3 point);
244  BLAM BlamVector3 GetGizmoMousePosition3D();
245 
251  BLAM std::vector<BlamWorldObject*> RaycastScreen(int screen_x, int screen_y, bool sort_by_distance = true,
252  uint16_t max_results = 0U, BlamQueryFlags query_flags = BlamQueryFlags::QF_EXCLUDE_GIZMOS);
253 
254  BLAM std::vector<BlamWorldObject*> RaycastScreenNormalized(float screen_normalized_x, float screen_normalized_y,
255  bool sort_by_distance = true, uint16_t max_results = 0U, BlamQueryFlags query_flags = BlamQueryFlags::QF_EXCLUDE_GIZMOS);
256 
257  BLAM std::vector<BlamWorldObject*> Raycast(BlamVector3 origin, BlamVector3 direction, bool sort_by_distance = true,
258  uint16_t max_results = 0U, BlamQueryFlags query_flags = BlamQueryFlags::QF_EXCLUDE_GIZMOS);
259 
263  namespace Materials
264  {
268  BLAM void RebuildDatablocks();
269 
278  BLAM bool BuildDatablockFromTag(material* material_tag, std::string tag_path);
279 
287 
295  BLAM Ogre::HlmsDatablock* GetDatablockFromTag(std::string tag_path);
296 
305  BLAM ogre_material_instance_data* GetDatablockInstanceFromTag(std::string tag_path, std::string referencing_tag_path);
306 
315  BLAM ogre_material_instance_data* CreateDatablockInstance(std::string tag_path, std::string referencing_tag_path);
316 
326  BLAM bool LoadPBSDatablockFromMaterialTag(Ogre::HlmsPbsDatablock* datablock, material* material_tag);
327 
337  BLAM bool LoadUnlitDatablockFromMaterialTag(Ogre::HlmsUnlitDatablock* datablock, material* material_tag);
338 
348  BLAM Ogre::HlmsUnlitDatablock* CreateDefaultUnlitDatablock(std::string id);
349 
360  BLAM Ogre::HlmsUnlitDatablock* CreateDefaultUnlitDatablockForPrimitives(std::string id);
361 
371  BLAM Ogre::HlmsPbsDatablock* CreateDefaultPbsDatablock(std::string id);
372 
383  BLAM Ogre::HlmsPbsDatablock* CreateDefaultPbsDatablockForPrimitives(std::string id);
384  }
385 
389  namespace Textures
390  {
397  BLAM void BuildTextureFromTag(bitmap* bitmap_tag, std::string tag_path);
398 
406  BLAM Ogre::TextureGpu* GetTextureFromTag(std::string tag_path);
407 
411  BLAM void ReloadPendingBitmaps();
412 
425  BLAM Ogre::TextureGpu* LoadTexture2D(std::string id, void* pixel_data, int width, int height, Ogre::PixelFormatGpu format, int bytes_per_line);
426  }
427 
428  namespace Models
429  {
430  BLAM void LoadModel(render_model* model, std::string tag_path);
431  BLAM Ogre::MeshPtr GetModelFromTagPath(std::string tag_path);
432  BLAM void LoadPendingModels();
433  BLAM void UnloadModels();
434  }
435 
436  namespace Lights
437  {
438  BLAM Ogre::Light* CreateLightFromTag(light* light);
439  }
440 
444  namespace Utils {}
445 }
Blam::Director::GetCamera
BLAM BlamDirector * GetCamera()
Retrieves the director instance.
Definition: director.cpp:31
Blam::World::GetWorldState
BLAM BlamWorldState * GetWorldState()
Retrieves the current world state.
Definition: world.cpp:40
ui.h
Blam::Input::GetMousePositionNormalized
BLAM BlamVector2 GetMousePositionNormalized()
Definition: mouse.cpp:88
Blam::Settings::Config::GetEngineConfiguration
BLAM BlamConfigurationFile * GetEngineConfiguration()
Retrieves the main engine configuration file.
Definition: config.cpp:60
tag_io.h
BlamWorldState::RenderObjects
void RenderObjects()
Definition: BlamWorldState.cpp:170
Blam::Rendering::Materials::CreateDefaultUnlitDatablockForPrimitives
BLAM Ogre::HlmsUnlitDatablock * CreateDefaultUnlitDatablockForPrimitives(std::string id)
Creates a default Unlit datablock for use with 2D and 3D primitives.
Definition: materials.cpp:997
gizmo_pos_3d
BlamVector3 gizmo_pos_3d
Definition: ogre.cpp:80
Demo::BaseSystem::createScene02
virtual void createScene02(void)
Definition: BaseSystem.cpp:40
Demo::GraphicsSystem::getRenderWindow
Ogre::Window * getRenderWindow(void) const
Definition: GraphicsSystem.h:146
ogre_material_instance_data::needs_reload
bool needs_reload
Whether or not this material instance needs to be reloaded.
Definition: rendering.h:46
Blam::Rendering::Materials::LoadUnlitDatablockFromMaterialTag
BLAM bool LoadUnlitDatablockFromMaterialTag(Ogre::HlmsUnlitDatablock *datablock, material *material_tag)
Loads an Unlit datablock from a material tag.
Definition: materials.cpp:234
ogre_material_instance_data::tag_instance
material * tag_instance
Pointer to the tag that uses this material instance.
Definition: rendering.h:45
Blam::Logger::LogEvent
BLAM void LogEvent(std::string message)
Logs a message to the log and/or console.
Definition: aliases.cpp:130
Blam::Rendering::Materials::CreateDefaultUnlitDatablock
BLAM Ogre::HlmsUnlitDatablock * CreateDefaultUnlitDatablock(std::string id)
Creates a default Unlit datablock.
Definition: materials.cpp:986
Blam::Rendering::Materials::RebuildDatablocks
BLAM void RebuildDatablocks()
Rebuilds ALL datablocks (including instances) from their original tags.
Definition: materials.cpp:673
BlamDirector::fov
float fov
The camera's current field of view.
Definition: director.h:91
screenshot_pending
bool screenshot_pending
Definition: ogre.cpp:64
BlamDirector::far_clip_plane_distance
float far_clip_plane_distance
Definition: director.h:114
render_model
Definition: render_model.h:25
Blam::Rendering::GetMousePosition3D
BLAM BlamVector3 GetMousePosition3D()
Definition: ogre.cpp:599
imgui_impl_sdl.h
logger.h
ogre_material_info_data::hlms_type
Ogre::HlmsTypes hlms_type
The HLMS type of this material.
Definition: rendering.h:63
Blam::UI::GetUIRoot
BLAM BlamUIWidget_Group * GetUIRoot()
Retrieves the root UI group widget.
Definition: ui.cpp:66
bitmap.h
ogre_material_instance_data::referencing_tag_path
std::string referencing_tag_path
The path of the tag that uses this material instance.
Definition: rendering.h:43
Blam::Rendering::GetRenderWindow
BLAM Ogre::Window * GetRenderWindow()
Retrieves the primary OGRE rendering window.
Definition: ogre.cpp:537
keyboard.h
world_objects.h
imgui.h
Blam::Rendering::HandleWindowReisze
BLAM void HandleWindowReisze(int width, int height)
Instructs OGRE to handle a window resize.
Definition: ogre.cpp:497
imgui_impl_dx11.h
ogre_material_info_data
Class used to store OGRE material information.
Definition: rendering.h:56
QF_EXCLUDE_GIZMOS
@ QF_EXCLUDE_GIZMOS
Definition: world_objects.h:70
render_thread_id
std::thread::id render_thread_id
Definition: ogre.cpp:70
Blam::Rendering::Materials::CreateDefaultPbsDatablockForPrimitives
BLAM Ogre::HlmsPbsDatablock * CreateDefaultPbsDatablockForPrimitives(std::string id)
Creates a default PBS datablock for use with 2D and 3D primitives.
Definition: materials.cpp:1038
BlamDirector::near_clip_plane_distance
float near_clip_plane_distance
Definition: director.h:113
Blam::Rendering::TakeScreenshot
BLAM void TakeScreenshot()
Instructs OGRE to save a screenshot on the next frame.
Definition: ogre.cpp:547
director.h
ogre_graphics_system
Demo::GraphicsSystem * ogre_graphics_system
Definition: ogre.cpp:52
Blam::Rendering::DisplayDetailedCrashScreen
BLAM void DisplayDetailedCrashScreen(std::string expression, std::string file, int line, std::string message)
Displays a detailed crash screen.
Definition: ogre.cpp:578
ogre_use_render_thread
bool ogre_use_render_thread
Definition: ogre.cpp:63
BlamUIWidget_Group::UpdateMetrics
void UpdateMetrics() override
Updates metrics for the widget.
Definition: group.cpp:155
Blam::UI::GetCrashScreenWidget
BLAM BlamUIWidget_CrashScreen * GetCrashScreenWidget()
Retrieves the built-in crash screen widget.
Definition: ui.cpp:279
Blam::Rendering::Get2DCamera
BLAM Ogre::Camera * Get2DCamera()
Retrieves the camera used to handle 2D rendering.
Definition: ogre.cpp:557
rendering.h
Blam::Diagnostics::Errors::ShowWin32ErrorDialog
BLAM int ShowWin32ErrorDialog(std::string message, BlamResult error, bool allow_continue, bool allow_safemode)
Shows an Error dialog with the specified error details and result handle.
Definition: errors.cpp:139
Blam::Rendering::GetScreenPointFrom3DPoint
BLAM BlamVector2 GetScreenPointFrom3DPoint(BlamVector3 point)
Definition: ogre.cpp:609
Blam::Rendering::RenderThread
BLAM void RenderThread()
Function used to handle the render thread.
Definition: ogre.cpp:422
Blam::UI::ImGUI::EndFrame
BLAM void EndFrame()
Ends ImGUI drawing for the current frame.
Definition: imgui.cpp:188
Blam::Rendering::Materials::CreateDefaultPbsDatablock
BLAM Ogre::HlmsPbsDatablock * CreateDefaultPbsDatablock(std::string id)
Creates a default PBS datablock.
Definition: materials.cpp:1027
__debug_floor_item
Ogre::Item * __debug_floor_item
Definition: ogre.cpp:74
Blam::Rendering::Materials::LoadPBSDatablockFromMaterialTag
BLAM bool LoadPBSDatablockFromMaterialTag(Ogre::HlmsPbsDatablock *datablock, material *material_tag)
Loads a PBS (Physically-Based Shading) datablock from a material tag.
Definition: materials.cpp:376
bitmap_filtering_mode::point
@ point
Blam::Director::PrepareCamera
BLAM void PrepareCamera()
Prepares the director for use.
Definition: director.cpp:5
Blam::Rendering::GetDeltaTime
BLAM double GetDeltaTime()
Retrieves delta time that has passed since the previous frame was completed.
Definition: ogre.cpp:542
Demo::GraphicsSystem::getSceneManager
Ogre::SceneManager * getSceneManager(void) const
Definition: GraphicsSystem.h:147
Blam::Rendering::ProcessSDLEvents
BLAM void ProcessSDLEvents(SDL_Event *event)
Function used to allow OGRE to handle SDL events.
Definition: ogre.cpp:476
Blam::Rendering::Textures::LoadTexture2D
BLAM Ogre::TextureGpu * LoadTexture2D(std::string id, void *pixel_data, int width, int height, Ogre::PixelFormatGpu format, int bytes_per_line)
Loads a 2D texture from data in memory.
Definition: textures.cpp:140
errors.h
BlamQueryFlags
BlamQueryFlags
Definition: world_objects.h:34
Demo::GraphicsSystem::debug_mode_thread_count
size_t debug_mode_thread_count
Definition: GraphicsSystem.h:99
Blam::Rendering::RaycastScreenNormalized
BLAM std::vector< BlamWorldObject * > RaycastScreenNormalized(float screen_normalized_x, float screen_normalized_y, bool sort_by_distance=true, uint16_t max_results=0U, BlamQueryFlags query_flags=BlamQueryFlags::QF_EXCLUDE_GIZMOS)
Definition: ogre.cpp:652
ogre_render_thread_stopped
bool ogre_render_thread_stopped
Definition: ogre.cpp:61
Blam::Content::Tags::NeedsWorldStateUpdate
BLAM bool NeedsWorldStateUpdate()
Checks if the world state needs to be re-prepared.
Definition: scenario.cpp:13
ogre_material_info_data::CreateNewInstance
ogre_material_instance_data * CreateNewInstance(BlamTagData *referencing_tag)
Creates a new instance of this material.
Definition: ogre_material_info_data.cpp:5
Blam::Rendering::GetGizmoMousePosition3D
BLAM BlamVector3 GetGizmoMousePosition3D()
Definition: ogre.cpp:604
Blam::Rendering::Materials::BuildDatablockFromTag
BLAM bool BuildDatablockFromTag(material *material_tag, std::string tag_path)
Creates an OGRE material datablock from a material tag.
Definition: materials.cpp:760
Blam::Rendering::Textures::GetTextureFromTag
BLAM Ogre::TextureGpu * GetTextureFromTag(std::string tag_path)
Retrieves an OGRE texture from a tag path.
Definition: textures.cpp:93
ogre_material_info_data::instances
BlamMap< std::string, ogre_material_instance_data * > instances
A map containing all instances of this material.
Definition: rendering.h:71
Blam::Rendering::Textures::BuildTextureFromTag
BLAM void BuildTextureFromTag(bitmap *bitmap_tag, std::string tag_path)
Loads a texture into OGRE from a bitmap tag.
Definition: textures.cpp:81
light
Definition: light.h:25
Blam::UI::Render
BLAM void Render()
Renders all UI to the screen.
Definition: ui.cpp:43
BlamUIWidget::SetSize
void SetSize(BlamVector2 new_size)
Sets the size of the widget.
Definition: BlamUIWidget.cpp:361
material.h
Blam::UI::Shutdown
BLAM void Shutdown()
Shuts down the UI system.
Definition: ui.cpp:57
Blam::Rendering::GetImGuiHiddenState
BLAM bool GetImGuiHiddenState()
Checks whether ImGUI is currently hidden or not.
Definition: ogre.cpp:594
Blam::Rendering::WriteScreenshot
BLAM void WriteScreenshot()
Saves a screenshot of the current frame to a file.
Definition: utils.cpp:25
QF_NONE
@ QF_NONE
Definition: world_objects.h:68
Demo::GraphicsSystem::getCamera
Ogre::Camera * getCamera(void) const
Definition: GraphicsSystem.h:148
Blam::Director::ShutdownCamera
BLAM void ShutdownCamera()
Destroys the director and cleans up any data related to it.
Definition: director.cpp:26
max_2d_z_depth
int max_2d_z_depth
Definition: ogre.cpp:66
material
Definition: material.h:52
raycast
std::vector< BlamWorldObject * > raycast(Ogre::Ray ray, bool sort_by_distance=true, uint16_t max_results=0U, BlamQueryFlags query_flags=BlamQueryFlags::QF_EXCLUDE_GIZMOS)
Definition: ogre.cpp:667
Demo::BaseSystem::destroyScene
virtual void destroyScene(void)
Definition: BaseSystem.cpp:48
ogre_material_info_data::needs_reload
bool needs_reload
Whether or not this material needs to be reloaded.
Definition: rendering.h:61
QF_ANY
@ QF_ANY
Definition: world_objects.h:69
ogre_material_instance_data::instance_datablock
Ogre::HlmsDatablock * instance_datablock
The datablock used for this material instance.
Definition: rendering.h:44
Demo::GraphicsSystem::deinitialize
void deinitialize(void)
Definition: GraphicsSystem.cpp:535
ogre_material_instance_data
Data structure used to store OGRE material instance data.
Definition: rendering.h:40
Blam::Rendering::GetGraphicsSystem
BLAM Demo::GraphicsSystem * GetGraphicsSystem()
Retrieves the graphics system used by OGRE.
Definition: ogre.cpp:492
Blam::Rendering::Initialize
BLAM bool Initialize()
Initializes the OGRE rendering library.
Definition: ogre.cpp:88
Blam::Rendering
Namespace for things relating to rendering.
Definition: rendering.h:94
BlamDirector
Class representing the Director.
Definition: director.h:27
Blam::Rendering::GetRenderHeight
BLAM int GetRenderHeight()
Retrieves the current height of the OGRE viewport.
Definition: ogre.cpp:532
QF_ENGINE_GIZMO
@ QF_ENGINE_GIZMO
Definition: world_objects.h:36
file
sock planetquake com All rights reserved Quake III Arena is a registered trademark of id Inc This level may be electronically distributed only at NO CHARGE to the recipient in its current MUST include this txt file
Definition: chiropteraDM.txt:95
imgui_impl_ogre2.h
Blam::Rendering::Models::LoadPendingModels
BLAM void LoadPendingModels()
Definition: models.cpp:207
renderWindow
Ogre::Window * renderWindow
Definition: ogre.cpp:53
BlamWorldObject
Class representing a world object.
Definition: world_objects.h:119
Blam::Rendering::Materials::ReloadPendingMaterials
BLAM void ReloadPendingMaterials()
Reloads all datablocks which are flagged as requiring a reload.
Definition: materials.cpp:856
Blam::Rendering::Textures::ReloadPendingBitmaps
BLAM void ReloadPendingBitmaps()
Reloads all bitmaps that are currently pending a reload.
Definition: textures.cpp:112
render_thread_paused
volatile bool render_thread_paused
Definition: ogre.cpp:69
camera
BlamDirector * camera
Definition: director.cpp:3
timeSinceLast
double timeSinceLast
Definition: ogre.cpp:56
WORLD_OBJECT_USER_KEY
#define WORLD_OBJECT_USER_KEY
Definition: world_objects.h:16
hide_imgui
bool hide_imgui
Definition: ogre.cpp:67
GraphicsSystem.h
Demo::GraphicsSystem
Definition: GraphicsSystem.h:27
Blam::Content::Tags::PrepareNewWorldState
BLAM void PrepareNewWorldState()
Prepares a new world state.
Definition: scenario.cpp:18
Blam::Rendering::Get2DSceneManager
BLAM Ogre::SceneManager * Get2DSceneManager()
Retrieves the scene manager used to handle 2D rendering.
Definition: ogre.cpp:552
SdlInputHandler.h
raycast_pending
volatile bool raycast_pending
Definition: ogre.cpp:71
BlamUIWidget_CrashScreen
Class used for the crash screen UI.
Definition: BlamUIWidget_CrashScreen.h:14
BlamUIWidget_CrashScreen::SetDetailedMessage
void SetDetailedMessage(std::string expression, std::string file, int line, std::string details)
Reconfigures the crash screen text to display a detailed message.
Definition: BlamUIWidget_CrashScreen.cpp:49
Demo::GraphicsSystem::update
void update(float timeSinceLast)
Definition: GraphicsSystem.cpp:569
imgui.h
Blam::Rendering::Models::GetModelFromTagPath
BLAM Ogre::MeshPtr GetModelFromTagPath(std::string tag_path)
Definition: models.cpp:221
Blam::Rendering::Lights::CreateLightFromTag
BLAM Ogre::Light * CreateLightFromTag(light *light)
Definition: lights.cpp:9
Demo::GraphicsSystem::getQuit
bool getQuit(void) const
Definition: GraphicsSystem.h:141
pause_render_thread
volatile bool pause_render_thread
Definition: ogre.cpp:68
Blam::Rendering::Materials::CreateDatablockInstance
BLAM ogre_material_instance_data * CreateDatablockInstance(std::string tag_path, std::string referencing_tag_path)
Creates a new datablock instance from a material tag path, and a referencing tag path.
Definition: materials.cpp:948
scenario.h
Blam::Rendering::DisplayBasicCrashScreen
BLAM void DisplayBasicCrashScreen(std::string additional_info="")
Displays a basic crash screen, with an optional message.
Definition: ogre.cpp:562
timer
Ogre::Timer timer
Definition: ogre.cpp:55
bitmap
Definition: bitmap.h:32
Demo::BaseSystem::createScene01
virtual void createScene01(void)
Definition: BaseSystem.cpp:32
startTime
Ogre::uint64 startTime
Definition: ogre.cpp:57
BlamUIWidget_CrashScreen::SetHidden
void SetHidden(bool new_hidden) override
Sets the hidden state of the widget.
Definition: BlamUIWidget_CrashScreen.cpp:57
Blam::Rendering::Raycast
BLAM std::vector< BlamWorldObject * > Raycast(BlamVector3 origin, BlamVector3 direction, bool sort_by_distance=true, uint16_t max_results=0U, BlamQueryFlags query_flags=BlamQueryFlags::QF_EXCLUDE_GIZMOS)
Definition: ogre.cpp:660
ogre_stop_render_thread
bool ogre_stop_render_thread
Definition: ogre.cpp:62
BLAM
#define BLAM
Definition: rendering.h:22
config.h
Blam::Rendering::RaycastScreen
BLAM std::vector< BlamWorldObject * > RaycastScreen(int screen_x, int screen_y, bool sort_by_distance=true, uint16_t max_results=0U, BlamQueryFlags query_flags=BlamQueryFlags::QF_EXCLUDE_GIZMOS)
Definition: ogre.cpp:622
post_init_needs_datablock_update
bool post_init_needs_datablock_update
Definition: ogre.cpp:65
Demo::GraphicsSystem::initialize
void initialize(const Ogre::String &windowTitle)
Definition: GraphicsSystem.cpp:120
tags.h
BlamUIWidget_CrashScreen::SetBasicMessage
void SetBasicMessage(std::string additional_info="")
Reconfigures the crash screen text to display a basic message.
Definition: BlamUIWidget_CrashScreen.cpp:39
Blam::UI::Initialize
BLAM bool Initialize()
Initializes the UI system.
Definition: ui.cpp:17
BlamTagData
Class used to contain and access tag data.
Definition: tags.h:124
ogre_material_info_data::persistent_reload
bool persistent_reload
Whether or not to continuously update this material (ie, live editing).
Definition: rendering.h:62
ogre_material_info_data::tag_path
std::string tag_path
The tag path that this material was loaded from.
Definition: rendering.h:59
compositor.h
camera2
Ogre::Camera * camera2
Definition: ogre.cpp:77
Blam::Rendering::Materials::GetDatablockFromTag
BLAM Ogre::HlmsDatablock * GetDatablockFromTag(std::string tag_path)
Retrieves an OGRE datablock from a material tag path.
Definition: materials.cpp:915
SDL_Event
Definition: SdlEmulationLayer.h:735
ogre_material_instance_data::original_material
ogre_material_info_data * original_material
Pointer to the original material information.
Definition: rendering.h:42
BlamUIWidget_CrashScreen.h
Blam::Rendering::Materials::GetDatablockInstanceFromTag
BLAM ogre_material_instance_data * GetDatablockInstanceFromTag(std::string tag_path, std::string referencing_tag_path)
Retrieves a datablock instance from a material tag path, and a referencing tag path.
Definition: materials.cpp:927
ogre_material_instance_data::persistent_reload
bool persistent_reload
Whether or not to continuously update this material (ie, live editing).
Definition: rendering.h:47
raycast_ready
volatile bool raycast_ready
Definition: ogre.cpp:72
Blam::Rendering::Models::LoadModel
BLAM void LoadModel(render_model *model, std::string tag_path)
Definition: models.cpp:184
Demo::GraphicsSystem::getRoot
Ogre::Root * getRoot(void) const
Definition: GraphicsSystem.h:145
BlamDirector::camera_front
BlamVector3 camera_front
The calculated point representing the front of the camera.
Definition: director.h:84
uint16_t
unsigned short uint16_t
Definition: stdint.h:16
Blam::Rendering::PauseRenderThread
BLAM void PauseRenderThread()
Pauses the render thread.
Definition: ogre.cpp:435
BlamDirector::camera_pos
BlamVector3 camera_pos
The current position of the camera.
Definition: director.h:80
Blam::Rendering::ResumeRenderThread
BLAM void ResumeRenderThread()
Resumes the render thread.
Definition: ogre.cpp:445
ogre_material_info_data::datablock
Ogre::HlmsDatablock * datablock
The datablock used for this material.
Definition: rendering.h:60
Demo::BaseSystem::beginFrameParallel
void beginFrameParallel(void)
Definition: BaseSystem.cpp:56
mouse_pos_3d
BlamVector3 mouse_pos_3d
Definition: ogre.cpp:79
scene_manager_2d
Ogre::SceneManager * scene_manager_2d
Definition: ogre.cpp:78
Blam::Rendering::Shutdown
BLAM void Shutdown()
Shuts down OGRE and cleans up any memory used by it.
Definition: ogre.cpp:451
Demo::BaseSystem::finishFrameParallel
void finishFrameParallel(void)
Definition: BaseSystem.cpp:72
Blam::Rendering::RenderLoop
BLAM void RenderLoop()
Function to handle the render loop.
Definition: ogre.cpp:273
Blam::Rendering::Models::UnloadModels
BLAM void UnloadModels()
Definition: models.cpp:244
BlamRaycast
Definition: rendering.h:86
ogre_initialized
bool ogre_initialized
Definition: ogre.cpp:59
Blam::Globals::GetGlobalAsInteger
BLAM int * GetGlobalAsInteger(std::string name)
Retrieves a global's value as an int.
Definition: globals.cpp:391
Blam::Rendering::GetRenderWidth
BLAM int GetRenderWidth()
Retrieves the current width of the OGRE viewport.
Definition: ogre.cpp:527
model
Definition: model.h:25