Elaztek Developer Hub
Blamite Game Engine - blam!  00406.12.10.23.1457.blamite
The core library for the Blamite Game Engine.
materials.cpp File Reference
#include "components/rendering/rendering.h"
#include <OGRE/OgreHlmsManager.h>
#include <OGRE/Hlms/Pbs/OgreHlmsPbs.h>
#include <OGRE/Hlms/Unlit/OgreHlmsUnlit.h>
#include <OGRE/OgreTextureGpuManager.h>
#include <OGRE/Hlms/Pbs/OgreHlmsPbsDatablock.h>
#include <OGRE/Hlms/Unlit/OgreHlmsUnlitDatablock.h>
#include <OGRE/OgreTextureFilters.h>
#include <Strings/components/classes/map/map.h>
#include "components/content/tags/tags.h"
#include "components/content/tags/classes/bitmap.h"
#include "components/content/tags/classes/material.h"
#include "components/diagnostics/logger/logger.h"
+ Include dependency graph for materials.cpp:

Functions

Ogre::PbsTextureTypes get_ogre_texture_type_from_material_type (material::pbr_material_entry::textures_entry::texture_type_enum texture_type)
 Converts a material tag texture type enum value to the equivalent OGRE texture type. More...
 
Ogre::FilterOptions parse_ogre_bitmap_filter_mode (bitmap_filtering_mode filter_mode)
 Converts a bitmap filtering mode enum value to the equivalent OGRE filtering mode value. More...
 
Ogre::FilterOptions parse_ogre_filter_mode (material_filter_modes filter_mode)
 Converts a material filtering mode enum value to the equivalent OGRE filtering mode value. More...
 
Ogre::TextureAddressingMode parse_texture_addressing_mode (material_wrap_modes wrap_mode)
 Converts a material texture wrapping mode enum value to the equivalent OGRE texture addressing mode. More...
 
Ogre::CompareFunction parse_material_comparison_function (material_comparison_function comparison_function)
 Converts a material comparison function enum value to the equivalent OGRE comparison function value. More...
 
void set_unlit_datablock_texture (Ogre::HlmsUnlitDatablock *datablock, Ogre::UnlitTextureTypes texture_type, tag_reference tagref)
 Assigns a bitmap tag's texture to an Unlit datablock. More...
 
void set_pbs_datablock_texture (Ogre::HlmsPbsDatablock *datablock, Ogre::PbsTextureTypes texture_type, tag_reference tagref)
 Assigns a bitmap tag's texture to a PBS datablock. More...
 

Variables

BlamMap< std::string, ogre_material_info_data * > ogre_material_map = BlamMap<std::string, ogre_material_info_data*>()
 The map containing all available OGRE materials. More...
 

Function Documentation

◆ get_ogre_texture_type_from_material_type()

Ogre::PbsTextureTypes get_ogre_texture_type_from_material_type ( material::pbr_material_entry::textures_entry::texture_type_enum  texture_type)

Converts a material tag texture type enum value to the equivalent OGRE texture type.

Parameters
texture_type- The texture type value to convert.
Returns
The equivalent texture type within OGRE. If no match is found, then Ogre::PbsTextureTypes::PBSM_DIFFUSE is returned.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ parse_material_comparison_function()

Ogre::CompareFunction parse_material_comparison_function ( material_comparison_function  comparison_function)

Converts a material comparison function enum value to the equivalent OGRE comparison function value.

Parameters
wrap_mode- The material comparison function value to convert.
Returns
The equivalent OGRE comparison function value. If no match is found, then Ogre::CompareFunction::CMPF_ALWAYS_FAIL is returned.
+ Here is the caller graph for this function:

◆ parse_ogre_bitmap_filter_mode()

Ogre::FilterOptions parse_ogre_bitmap_filter_mode ( bitmap_filtering_mode  filter_mode)

Converts a bitmap filtering mode enum value to the equivalent OGRE filtering mode value.

Parameters
filter_mode- The filtering mode value to convert.
Returns
The equivalent OGRE texture filtering mode. If no match is found, then Ogre::FilterOptions::FO_NONE is returned.
+ Here is the caller graph for this function:

◆ parse_ogre_filter_mode()

Ogre::FilterOptions parse_ogre_filter_mode ( material_filter_modes  filter_mode)

Converts a material filtering mode enum value to the equivalent OGRE filtering mode value.

Parameters
filter_mode- The filtering mode value to convert.
Returns
The equivalent OGRE texture filtering mode. If no match is found, then Ogre::FilterOptions::FO_NONE is returned.
+ Here is the caller graph for this function:

◆ parse_texture_addressing_mode()

Ogre::TextureAddressingMode parse_texture_addressing_mode ( material_wrap_modes  wrap_mode)

Converts a material texture wrapping mode enum value to the equivalent OGRE texture addressing mode.

Parameters
wrap_mode- The material texture wrapping mode value to convert.
Returns
The equivalent OGRE texture addressing mode. If no match is found, then Ogre::TextureAddressingMode::TAM_WRAP is returned.
+ Here is the caller graph for this function:

◆ set_pbs_datablock_texture()

void set_pbs_datablock_texture ( Ogre::HlmsPbsDatablock *  datablock,
Ogre::PbsTextureTypes  texture_type,
tag_reference  tagref 
)

Assigns a bitmap tag's texture to a PBS datablock.

Parameters
datablock- The datablock to assign the texture to.
texture_type- The type of texture to assign.
tagref- The tagref field that contains the reference to the desired bitmap tag.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ set_unlit_datablock_texture()

void set_unlit_datablock_texture ( Ogre::HlmsUnlitDatablock *  datablock,
Ogre::UnlitTextureTypes  texture_type,
tag_reference  tagref 
)

Assigns a bitmap tag's texture to an Unlit datablock.

Parameters
datablock- The datablock to assign the texture to.
texture_type- The type of texture to assign.
tagref- The tagref field that contains the reference to the desired bitmap tag.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Variable Documentation

◆ ogre_material_map

BlamMap<std::string, ogre_material_info_data*> ogre_material_map = BlamMap<std::string, ogre_material_info_data*>()

The map containing all available OGRE materials.

The key contains the tag path for the tag which the HLMS Datablock is created from, and the value contains the Ogre material information associated with it.