mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-01-20 04:34:48 +00:00
Merge pull request #1494 from Nick-IronTower/development
Fixed major memory leak in GFXDevice::createStateBlock()
This commit is contained in:
commit
432d914e9d
|
|
@ -292,8 +292,9 @@ GFXStateBlockRef GFXDevice::createStateBlock(const GFXStateBlockDesc& desc)
|
|||
PROFILE_SCOPE( GFXDevice_CreateStateBlock );
|
||||
|
||||
U32 hashValue = desc.getHashValue();
|
||||
if (mCurrentStateBlocks[hashValue])
|
||||
return mCurrentStateBlocks[hashValue];
|
||||
auto it = mCurrentStateBlocks.find(hashValue);
|
||||
if (it != mCurrentStateBlocks.end())
|
||||
return it->value;
|
||||
|
||||
GFXStateBlockRef result = createStateBlockInternal(desc);
|
||||
result->registerResourceWithDevice(this);
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@
|
|||
#include "core/color.h"
|
||||
#endif
|
||||
|
||||
|
||||
#pragma pack(push, 1)
|
||||
struct GFXSamplerStateDesc
|
||||
{
|
||||
GFXTextureAddressMode addressModeU;
|
||||
|
|
@ -84,8 +84,10 @@ struct GFXSamplerStateDesc
|
|||
return !dMemcmp(this, &b, sizeof(GFXSamplerStateDesc));
|
||||
}
|
||||
};
|
||||
#pragma pack(pop)
|
||||
|
||||
/// GFXStateBlockDesc defines a render state, which is then used to create a GFXStateBlock instance.
|
||||
#pragma pack(push, 1)
|
||||
struct GFXStateBlockDesc
|
||||
{
|
||||
// Blending
|
||||
|
|
@ -189,6 +191,7 @@ struct GFXStateBlockDesc
|
|||
///
|
||||
void setColorWrites( bool red, bool green, bool blue, bool alpha );
|
||||
};
|
||||
#pragma pack(pop)
|
||||
|
||||
class GFXStateBlock : public StrongRefBase, public GFXResource
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in a new issue