mirror of
https://github.com/luanti-org/luanti.git
synced 2025-11-11 04:15:25 +01:00
Introduce EMT_INVALID as safe placeholder
This commit is contained in:
@@ -10,7 +10,7 @@ namespace video
|
||||
{
|
||||
|
||||
//! Abstracted and easy to use fixed function/programmable pipeline material modes.
|
||||
enum E_MATERIAL_TYPE
|
||||
enum E_MATERIAL_TYPE : u32
|
||||
{
|
||||
//! Standard solid material.
|
||||
/** Only first texture is used, which is supposed to be the
|
||||
@@ -51,15 +51,15 @@ enum E_MATERIAL_TYPE
|
||||
pack_textureBlendFunc (for 2D) or pack_textureBlendFuncSeparate (for 3D). */
|
||||
EMT_ONETEXTURE_BLEND,
|
||||
|
||||
//! This value is not used. It only forces this enumeration to compile to 32 bit.
|
||||
EMT_FORCE_32BIT = 0x7fffffff
|
||||
//! Invalid value
|
||||
EMT_INVALID = 0xffffffff,
|
||||
};
|
||||
|
||||
//! Array holding the built in material type names
|
||||
const char *const sBuiltInMaterialTypeNames[] = {
|
||||
"solid",
|
||||
"trans_alphach",
|
||||
"trans_alphach_ref",
|
||||
"trans_alpha",
|
||||
"trans_alpha_ref",
|
||||
"trans_vertex_alpha",
|
||||
"onetexture_blend",
|
||||
0,
|
||||
|
||||
@@ -38,16 +38,6 @@ IImageWriter *createImageWriterJPG();
|
||||
//! creates a writer which is able to save png images
|
||||
IImageWriter *createImageWriterPNG();
|
||||
|
||||
namespace
|
||||
{
|
||||
//! no-op material renderer
|
||||
class CDummyMaterialRenderer : public IMaterialRenderer
|
||||
{
|
||||
public:
|
||||
CDummyMaterialRenderer() {}
|
||||
};
|
||||
}
|
||||
|
||||
//! constructor
|
||||
CNullDriver::CNullDriver(io::IFileSystem *io, const core::dimension2d<u32> &screenSize) :
|
||||
SharedRenderTarget(0), CurrentRenderTarget(0), CurrentRenderTargetSize(0, 0), FileSystem(io), MeshManipulator(0),
|
||||
@@ -1505,7 +1495,7 @@ void CNullDriver::deleteShaderMaterial(s32 material)
|
||||
auto &ref = MaterialRenderers[idx];
|
||||
if (ref.Renderer)
|
||||
ref.Renderer->drop();
|
||||
ref.Renderer = new CDummyMaterialRenderer();
|
||||
ref.Renderer = new IMaterialRenderer();
|
||||
ref.Name.clear();
|
||||
}
|
||||
|
||||
|
||||
@@ -1700,6 +1700,8 @@ void COpenGLDriver::setRenderStates3DMode()
|
||||
if (static_cast<u32>(Material.MaterialType) < MaterialRenderers.size())
|
||||
MaterialRenderers[Material.MaterialType].Renderer->OnSetMaterial(
|
||||
Material, LastMaterial, ResetRenderStates, this);
|
||||
else
|
||||
os::Printer::log("Attempt to render with invalid material", ELL_WARNING);
|
||||
|
||||
LastMaterial = Material;
|
||||
CacheHandler->correctCacheMaterial(LastMaterial);
|
||||
|
||||
@@ -1176,6 +1176,8 @@ void COpenGL3DriverBase::setRenderStates3DMode()
|
||||
if (static_cast<u32>(Material.MaterialType) < MaterialRenderers.size())
|
||||
MaterialRenderers[Material.MaterialType].Renderer->OnSetMaterial(
|
||||
Material, LastMaterial, ResetRenderStates, this);
|
||||
else
|
||||
os::Printer::log("Attempt to render with invalid material", ELL_WARNING);
|
||||
|
||||
LastMaterial = Material;
|
||||
CacheHandler->correctCacheMaterial(LastMaterial);
|
||||
|
||||
Reference in New Issue
Block a user