dedicated server nulltexturemanager work

also supress warning for imageassets not loading a texture in nulldevice, and early out of _determineFeatures shadergen methods under the same conditions
This commit is contained in:
AzaezelX 2022-10-01 12:44:45 -05:00
parent 02aee76fc9
commit 04f4a5fcf4
4 changed files with 17 additions and 3 deletions

View file

@ -48,6 +48,8 @@
#include <string>
#include "assetMacroHelpers.h"
#include "gfx/gfxDevice.h"
//-----------------------------------------------------------------------------
class ImageAsset : public AssetBase
{
@ -250,7 +252,8 @@ public: \
}\
else if (!m##name)\
{\
Con::errorf("%s(%s)::_set%s() - Couldn't load image \"%s\"", macroText(className), getName(), macroText(name), _in);\
if (GFX->getAdapterType() != NullDevice)\
Con::errorf("%s(%s)::_set%s() - Couldn't load image \"%s\"", macroText(className), getName(), macroText(name), _in);\
return false;\
}\
return true;\
@ -392,7 +395,8 @@ public: \
}\
else if (!m##name[index])\
{\
Con::errorf("%s(%s)::_set%s(%i) - Couldn't load image \"%s\"", macroText(className), getName(), macroText(name), index, _in);\
if (GFX->getAdapterType() != NullDevice)\
Con::errorf("%s(%s)::_set%s(%i) - Couldn't load image \"%s\"", macroText(className), getName(), macroText(name), index, _in);\
return false; \
}\
return true;\

View file

@ -87,8 +87,16 @@ GFXNullTextureObject::GFXNullTextureObject(GFXDevice * aDevice, GFXTextureProfil
class GFXNullTextureManager : public GFXTextureManager
{
public:
GFXTextureObject* createTexture(GBitmap* bmp, const String& resourceName, GFXTextureProfile* profile, bool deleteBmp) { return nullptr; } // _createNullTextureObject();}
GFXTextureObject* createTexture(DDSFile* dds, GFXTextureProfile* profile, bool deleteDDS) { return nullptr; }
GFXTextureObject* createTexture(const Torque::Path& path, GFXTextureProfile* profile) { return nullptr; }
GFXTextureObject* createTexture(U32 width, U32 height, void* pixels, GFXFormat format, GFXTextureProfile* profile) { return nullptr; }
GFXTextureObject* createTexture(U32 width, U32 height, U32 depth, GFXFormat format, GFXTextureProfile* profile, U32 numMipLevels = 1) { return nullptr; }
GFXTextureObject* createTexture(U32 width, U32 height, GFXFormat format, GFXTextureProfile* profile, U32 numMipLevels, S32 antialiasLevel) { return nullptr; }
GFXTextureObject* createCompositeTexture(GBitmap* bmp[4], U32 inputKey[4], const String& resourceName, GFXTextureProfile* profile, bool deleteBmp) { return nullptr; }
protected:
virtual GFXTextureObject *_createTextureObject( U32 height,
GFXTextureObject *_createTextureObject( U32 height,
U32 width,
U32 depth,
GFXFormat format,

View file

@ -295,6 +295,7 @@ void ProcessedShaderMaterial::_determineFeatures( U32 stageNum,
MaterialFeatureData &fd,
const FeatureSet &features )
{
if (GFX->getAdapterType() == NullDevice) return;
PROFILE_SCOPE( ProcessedShaderMaterial_DetermineFeatures );
const F32 shaderVersion = GFX->getPixelShaderVersion();

View file

@ -593,6 +593,7 @@ void ProcessedDeferredMaterial::_determineFeatures( U32 stageNum,
MaterialFeatureData &fd,
const FeatureSet &features )
{
if (GFX->getAdapterType() == NullDevice) return;
Parent::_determineFeatures( stageNum, fd, features );
if (fd.features.hasFeature(MFT_ForwardShading))
return;