Reducing memory usage
This commit is contained in:
@@ -37,6 +37,8 @@ class ShaderExpression {
|
||||
ShaderExpression(std::string key);
|
||||
virtual ~ShaderExpression();
|
||||
virtual uint64 getIdentifier() const = 0;
|
||||
virtual uint64 getCPUSize() const { return 0; };
|
||||
virtual uint64 getGPUSize() const { return 0; };
|
||||
virtual std::string evaluate(Map<std::string, std::string>& varState) const = 0;
|
||||
virtual void save(ArchiveBuffer& buffer) const;
|
||||
virtual void load(ArchiveBuffer& buffer);
|
||||
@@ -50,6 +52,8 @@ struct ShaderParameter : public ShaderExpression {
|
||||
virtual ~ShaderParameter();
|
||||
virtual void updateDescriptorSet(uint32 textureOffset, uint32 samplerOffset, uint32 floatOffset) = 0;
|
||||
virtual uint64 getIdentifier() const override = 0;
|
||||
virtual uint64 getCPUSize() const override = 0;
|
||||
virtual uint64 getGPUSize() const override = 0;
|
||||
virtual std::string evaluate(Map<std::string, std::string>& varState) const = 0;
|
||||
virtual void save(ArchiveBuffer& buffer) const override;
|
||||
virtual void load(ArchiveBuffer& buffer) override;
|
||||
@@ -64,6 +68,8 @@ struct FloatParameter : public ShaderParameter {
|
||||
virtual void updateDescriptorSet(uint32 textureOffset, uint32 samplerOffset, uint32 floatOffset) override;
|
||||
virtual std::string evaluate(Map<std::string, std::string>& varState) const override;
|
||||
virtual uint64 getIdentifier() const override { return IDENTIFIER; }
|
||||
virtual uint64 getCPUSize() const { return sizeof(FloatParameter); }
|
||||
virtual uint64 getGPUSize() const { return sizeof(float); }
|
||||
virtual void save(ArchiveBuffer& buffer) const override;
|
||||
virtual void load(ArchiveBuffer& buffer) override;
|
||||
};
|
||||
@@ -77,6 +83,8 @@ struct VectorParameter : public ShaderParameter {
|
||||
virtual void updateDescriptorSet(uint32 textureOffset, uint32 samplerOffset, uint32 floatOffset) override;
|
||||
virtual std::string evaluate(Map<std::string, std::string>& varState) const override;
|
||||
virtual uint64 getIdentifier() const override { return IDENTIFIER; }
|
||||
virtual uint64 getCPUSize() const { return sizeof(VectorParameter); }
|
||||
virtual uint64 getGPUSize() const { return sizeof(Vector); }
|
||||
virtual void save(ArchiveBuffer& buffer) const override;
|
||||
virtual void load(ArchiveBuffer& buffer) override;
|
||||
};
|
||||
@@ -90,6 +98,8 @@ struct TextureParameter : public ShaderParameter {
|
||||
virtual void updateDescriptorSet(uint32 textureOffset, uint32 samplerOffset, uint32 floatOffset) override;
|
||||
virtual std::string evaluate(Map<std::string, std::string>& varState) const override;
|
||||
virtual uint64 getIdentifier() const override { return IDENTIFIER; }
|
||||
virtual uint64 getCPUSize() const { return sizeof(TextureParameter); }
|
||||
virtual uint64 getGPUSize() const { return sizeof(void*); } // TODO: technically this is just a ref, but idk
|
||||
virtual void save(ArchiveBuffer& buffer) const override;
|
||||
virtual void load(ArchiveBuffer& buffer) override;
|
||||
};
|
||||
@@ -104,6 +114,8 @@ struct SamplerParameter : public ShaderParameter {
|
||||
virtual void updateDescriptorSet(uint32 textureOffset, uint32 samplerOffset, uint32 floatOffset) override;
|
||||
virtual std::string evaluate(Map<std::string, std::string>& varState) const override;
|
||||
virtual uint64 getIdentifier() const override { return IDENTIFIER; }
|
||||
virtual uint64 getCPUSize() const { return sizeof(SamplerParameter); }
|
||||
virtual uint64 getGPUSize() const { return sizeof(void*); }
|
||||
virtual void save(ArchiveBuffer& buffer) const override;
|
||||
virtual void load(ArchiveBuffer& buffer) override;
|
||||
};
|
||||
@@ -118,6 +130,8 @@ struct CombinedTextureParameter : public ShaderParameter {
|
||||
virtual void updateDescriptorSet(uint32 textureOffset, uint32 samplerOffset, uint32 floatOffset) override;
|
||||
virtual std::string evaluate(Map<std::string, std::string>& varState) const override;
|
||||
virtual uint64 getIdentifier() const override { return IDENTIFIER; }
|
||||
virtual uint64 getCPUSize() const { return sizeof(CombinedTextureParameter); }
|
||||
virtual uint64 getGPUSize() const { return sizeof(void*); }
|
||||
virtual void save(ArchiveBuffer& buffer) const override;
|
||||
virtual void load(ArchiveBuffer& buffer) override;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user