https://github.com/shader-slang/slang
Raw File
Tip revision: efeda20ec280771348887ae4eb498a8b158c9c0c authored by Yong He on 30 March 2023, 21:34:54 UTC
Fix stdlib definitions for tensor interlocked methods. (#2761)
Tip revision: efeda20
slang-serialize-factory.h
// slang-serialize-factory.h
#ifndef SLANG_SERIALIZE_FACTORY_H
#define SLANG_SERIALIZE_FACTORY_H

#include "slang-serialize.h"

namespace Slang {

// !!!!!!!!!!!!!!!!!!!!! DefaultSerialObjectFactory !!!!!!!!!!!!!!!!!!!!!!!!!!!

class ASTBuilder;

class DefaultSerialObjectFactory : public SerialObjectFactory
{
public:

    virtual void* create(SerialTypeKind typeKind, SerialSubType subType) SLANG_OVERRIDE;

    DefaultSerialObjectFactory(ASTBuilder* astBuilder) :
        m_astBuilder(astBuilder)
    {
    }

protected:
    RefObject* _add(RefObject* obj)
    {
        m_scope.add(obj);
        return obj;
    }

    // We keep RefObjects in scope 
    List<RefPtr<RefObject>> m_scope;
    ASTBuilder* m_astBuilder;
};


struct SerialClassesUtil
{
        /// Add all types to serialClasses
    static SlangResult addSerialClasses(SerialClasses* serialClasses);
        /// Create SerialClasses with all the types added
    static SlangResult create(RefPtr<SerialClasses>& out);
};


} // namespace Slang

#endif
back to top